forked from Quagga/quagga
-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
the TODO was last touched in 2006. This is a first pass at cleaning it up, motivated primarily by the need for an up-to-date idea list for the Google Summer of Code 2013. Signed-off-by: David Lamparter <equinox@opensourcerouting.org>
- Loading branch information
Showing
1 changed file
with
173 additions
and
63 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,78 +1,188 @@ | ||
|
||
Quagga TODO list | ||
2004/11/24 | ||
2013-03-29 | ||
|
||
zebra: | ||
|
||
o Pointopoint address configuration. | ||
o Multiple (alias) address configuration for the interface when kernel | ||
support it [just starting]. | ||
o improve rtnetlink to handle sequence number tracking and reconciliation | ||
and resyncs. | ||
o Add support for valid and preferred lifetimes to IPv6 addresses | ||
o proper support for (at least) 1-level recursive routes | ||
o Ability to set src on routes, where systems support it. | ||
o Ability to apply route-maps to daemon route updates. | ||
This is the Quagga primary TODO list. It is on git because that way changes | ||
pass through the usual process just like code does, therefore they will have | ||
the same visibility. | ||
|
||
bgpd: | ||
If you are working on something beyond a simple fix, to avoid double work it | ||
is a good idea to submit a patch to this TODO list when you are starting, | ||
listing what you're doing. Also, as others may have done just that, check | ||
the list before starting. | ||
|
||
o BGP TCP MD5 authentication by password command. | ||
o HUP signal support (reload configuration file). | ||
o BGP multi-path extension | ||
o move FSM state to be per-connection, not per-peer. | ||
o Add support for internal and minimum-metric MED setting | ||
Google Summer of Code 2013 note: this list double-serves as idea list for the | ||
Summer of Code. Ideas considered suitable for students are marked with a star | ||
after the number, like this: "[Q999*] achieve world peace". They will also | ||
have extended descriptions. Nevertheless, if you'd like to do something else, | ||
just write a mail to the mailing list: quagga-dev@lists.quagga.net | ||
|
||
ripd: | ||
"GSoC-Mentors:" listings are preliminary at this point. | ||
|
||
o Multipath support. | ||
|
||
Overall | ||
======= | ||
|
||
[Q000] improve unit test architecture | ||
|
||
[Q001] kick invalid runtime tests from configure.ac, use list of supported | ||
OSes and their APIs instead. | ||
Priority: low | ||
State: patch half-done 2013-03-29 David Lamparter | ||
|
||
[Q002*] clean up zebra IPC, remove code duplication, align to common API | ||
Priority: high | ||
GSoC-Mentors: David Lamparter, Christian Franke | ||
|
||
Quagga posesses an IPC mechanism to exchange route information among | ||
the different daemons and Zebra, the kernel-interface. This mechanism | ||
is implemented in libzebra, but is currently used in all sorts of | ||
different ways in the individual protocol daemons. Also, in the future | ||
the entire protocol needs to be redone in an extensible way, so we're | ||
able to support MPLS, BFD, Multi-Topology/Instance, VRFs, ... | ||
|
||
This TODO entry only refers to the first-step API cleanup. All the | ||
daemons need to use a single, well-defined libzebra API. Only after | ||
this has been addressed can we look upon changing the protocol itself, | ||
since by then it will be encapsulated inside libzebra. | ||
|
||
[Q003] add multi-instance / multi-topology support to the individual protocols | ||
|
||
[Q004] MPLS support | ||
State: work in progress 2013-03-29 Renato Westphal, Timo Teräs | ||
|
||
[Q005] BFD support | ||
State: two old implementations exist, contact Hasso Tepper | ||
|
||
|
||
library | ||
======= | ||
|
||
[L000] improve route_table speed, eg strided lookups for common prefix depths. | ||
|
||
[L001] ipv6 addresses need concept of valid/preferred | ||
|
||
[L002] implement a generic daemon access/control protocol (eg D-Bus like? | ||
simplified SNMP-a-like? NETCONF?) | ||
|
||
[L003] extend vty command definitions to allow them to be self-documenting | ||
i18n command help strings | ||
|
||
[L004] create a common libspf (for ospfd, ospf6d and possibly isisd and more). | ||
cf. TODO item [O000] for the ospfd/ospf6d specific variant | ||
|
||
[L005] stabilise the API (possibly including symbol/library versioning voodoo) | ||
|
||
[L006] Document the exported API (DocBook/Doxygen?) | ||
|
||
[LE00] incorporate library changes from Euro-IX branch, except threading | ||
|
||
[LE01] incorporate threading library support from Euro-IX branch | ||
|
||
|
||
zebra | ||
===== | ||
|
||
[Z000] Pointopoint address configuration. | ||
Priority: low | ||
State: patch done & tested 2013-03-29 David Lamparter | ||
|
||
[Z001] Add support for valid and preferred lifetimes to IPv6 addresses | ||
|
||
[Z002] proper support for (at least) 1-level recursive routes | ||
Priority: high | ||
|
||
[Z003] Ability to set src on routes, where systems support it. | ||
|
||
[Z004] Ability to apply route-maps to daemon route updates. | ||
|
||
|
||
bgpd | ||
==== | ||
|
||
[B000] HUP signal support (reload configuration file). | ||
|
||
[B001] BGP multi-path extension, relaxed mode | ||
Priority: medium | ||
|
||
[B002] move FSM state to be per-connection, not per-peer. | ||
|
||
[B003] Add support for internal and minimum-metric MED setting | ||
|
||
|
||
ripd | ||
==== | ||
|
||
[R000] Multipath support. | ||
|
||
|
||
ospfd/ospf6d | ||
============ | ||
|
||
[O000] move SPF to common code | ||
|
||
[O001] extend code sharing between ospfd and ospf6d beyond SPF | ||
|
||
[O002*] OSPF testing replay tool | ||
Priority: medium | ||
GSoC-Mentors: Martin Winter, Christian Franke, David Lamparter | ||
|
||
In order to extensively test OSPF implementations, a tool to fake an | ||
OSPF neighbor is immensely useful. This tool needs to be capable of | ||
forming an adjacency and pushing LSAs to the device to be tested. To | ||
maintain the adjacency, some minimal state tracking is useful. | ||
|
||
In total, the tool needs to form an adjacency, read and push LSAs, and | ||
output received LSAs. Additional tools to generate LSAs from | ||
specifications as well as verify received LSA correctness can then be | ||
built on top of that. | ||
|
||
The tool needs to support IPv4 and IPv6, possibly split into 2 tools | ||
with some code sharing. | ||
|
||
ospfd: | ||
|
||
o Rewrite the incremental RT update code. | ||
o Demand circuits. | ||
o Multiple instances. | ||
o OSPF MIB [SNMP get is amost finished]. | ||
o HUP signal treatment. | ||
o Fragment Oversized LSAs | ||
o move SPF to common code | ||
o NSSA priority rules (RFC3101 2.4) | ||
o Type-7 address ranges (RFC3101 2.2) | ||
o Originating Type-7 default into area (RFC3101 2.7) | ||
[O400] Demand circuits. | ||
Priority: very low | ||
|
||
[O401] Multiple instances. | ||
Priority: medium | ||
|
||
[O402] HUP signal treatment. | ||
Priority: medium | ||
State: patch on ML needs review 2012-06-04 Mattias Walström | ||
|
||
ospf6d: | ||
|
||
o move SPF to common code | ||
o add router-id lookups | ||
|
||
isisd: | ||
|
||
o finish SPF | ||
o select nearest L2 when running SPF for L1 | ||
o remove the routes when holding time for nexthop expires | ||
o redistribution | ||
o autosummary | ||
|
||
o Mesh groups (RFC2973) | ||
o Crypto authentication (RFC3567) | ||
|
||
lib: | ||
o improve route_table speed, eg strided lookups for common prefix depths. | ||
o improve hash tables, eg auto-growing hash tables | ||
o move performance sensitive users of hashes over to jhash | ||
o clean up linked lists | ||
o ipv6 addresses need concept of valid/preferred | ||
o implement a generic daemon access/control protocol (eg D-Bus like? | ||
simplified SNMP-a-like?) | ||
o merge SPF code from ospfd and ospf6d into a common libspf | ||
o depends-on(generic A/C protocol) move snmp to seperate daemon | ||
o extend command definitions to allow them to be self-documenting | ||
o i18n command help strings | ||
o Document the exported API (DocBook/Doxygen?) | ||
|
||
vtysh: | ||
o untangle readline specific bits | ||
o add a vtyd with a vty (ie telnet) frontend (as opposed to readline) | ||
o depends-on(generic A/C protocol) use such | ||
o better AAA support than just PAM, eg krb5, SASL, LDAP.. | ||
----------------------------- | ||
[O600] fix ospf6d in general | ||
Priority: high | ||
State: patches tickling in from Cumulus Networks 2013-03-29 Dinesh Dutt | ||
|
||
isisd | ||
===== | ||
|
||
[I000] reassess isisd TODO | ||
|
||
[I001*] IS-IS testing replay tool | ||
Priority: medium | ||
GSoC-Mentors: Martin Winter, Christian Franke, David Lamparter | ||
|
||
see [O002*]. | ||
|
||
[I002] Mesh groups (RFC2973) | ||
|
||
[I003] Crypto authentication (RFC3567) | ||
|
||
|
||
vtysh | ||
===== | ||
|
||
[V000] untangle readline specific bits | ||
|
||
[V001] add a vtyd with a vty (ie telnet) frontend (as opposed to readline) | ||
|
||
[V002] (=> [L002]) use daemon control protocol | ||
|
||
[V003] better AAA support than just PAM, eg krb5, SASL, LDAP... | ||
|