123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209 |
- 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
- Implemented, patch will be sent shortly
- Pradosh Mohapatra, Cumulus Networks
- [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
- Implemented: p2p link support, ABR, Stub area/Totally Stubby area,
- SPF throttling, Improving state machine to get performance/scale,
- max-metric support, Improving ECMP to be > 4, Various other bug fixes
- [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...
|