| |
| Quagga TODO list |
| 2013-03-29 |
| |
| |
| 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. |
| |
| 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. |
| |
| 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 |
| |
| "GSoC-Mentors:" listings are preliminary at this point. |
| |
| |
| 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: |
| |
| [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: |
| |
| [O600] fix ospf6d in general |
| Priority: high |
| State: patches tickling in from Cumulus Networks 2013-03-29 Dinesh Dutt |
| |
| [O601*] OSPFv3 autoconfiguration, prefix assignment and sourcedest routing |
| Priority: medium |
| State: work in progress 2013-03-29 Edward Seabrook |
| GSoC-Mentors: David Lamparter |
| |
| OSPFv3 application in the homenet is being designed to use several |
| extensions to the base protocol. In order of dependency, |
| autoconfiguration, prefix assignment and sourcedest routing should |
| be implemented. |
| |
| This task requires a good level of OSPF understanding plus proper |
| ability to follow IETF discussion about these points. Also, since work |
| has already started on this, improvements must obviously build on top |
| of that. |
| |
| 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... |
| |