|
@@ -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...
|
|
|
|