Annotation of embedaddon/quagga/TODO, revision 1.1.1.2
1.1 misho 1:
2: Quagga TODO list
1.1.1.2 ! misho 3: 2013-03-29
1.1 misho 4:
5:
1.1.1.2 ! misho 6: This is the Quagga primary TODO list. It is on git because that way changes
! 7: pass through the usual process just like code does, therefore they will have
! 8: the same visibility.
1.1 misho 9:
1.1.1.2 ! misho 10: If you are working on something beyond a simple fix, to avoid double work it
! 11: is a good idea to submit a patch to this TODO list when you are starting,
! 12: listing what you're doing. Also, as others may have done just that, check
! 13: the list before starting.
1.1 misho 14:
1.1.1.2 ! misho 15: Google Summer of Code 2013 note: this list double-serves as idea list for the
! 16: Summer of Code. Ideas considered suitable for students are marked with a star
! 17: after the number, like this: "[Q999*] achieve world peace". They will also
! 18: have extended descriptions. Nevertheless, if you'd like to do something else,
! 19: just write a mail to the mailing list: quagga-dev@lists.quagga.net
! 20:
! 21: "GSoC-Mentors:" listings are preliminary at this point.
! 22:
! 23:
! 24: Overall
! 25: =======
! 26:
! 27: [Q000] improve unit test architecture
! 28:
! 29: [Q001] kick invalid runtime tests from configure.ac, use list of supported
! 30: OSes and their APIs instead.
! 31: Priority: low
! 32: State: patch half-done 2013-03-29 David Lamparter
! 33:
! 34: [Q002*] clean up zebra IPC, remove code duplication, align to common API
! 35: Priority: high
! 36: GSoC-Mentors: David Lamparter, Christian Franke
! 37:
! 38: Quagga posesses an IPC mechanism to exchange route information among
! 39: the different daemons and Zebra, the kernel-interface. This mechanism
! 40: is implemented in libzebra, but is currently used in all sorts of
! 41: different ways in the individual protocol daemons. Also, in the future
! 42: the entire protocol needs to be redone in an extensible way, so we're
! 43: able to support MPLS, BFD, Multi-Topology/Instance, VRFs, ...
! 44:
! 45: This TODO entry only refers to the first-step API cleanup. All the
! 46: daemons need to use a single, well-defined libzebra API. Only after
! 47: this has been addressed can we look upon changing the protocol itself,
! 48: since by then it will be encapsulated inside libzebra.
! 49:
! 50: [Q003] add multi-instance / multi-topology support to the individual protocols
! 51:
! 52: [Q004] MPLS support
! 53: State: work in progress 2013-03-29 Renato Westphal, Timo Teräs
! 54:
! 55: [Q005] BFD support
! 56: State: two old implementations exist, contact Hasso Tepper
! 57:
! 58:
! 59: library
! 60: =======
! 61:
! 62: [L000] improve route_table speed, eg strided lookups for common prefix depths.
! 63:
! 64: [L001] ipv6 addresses need concept of valid/preferred
! 65:
! 66: [L002] implement a generic daemon access/control protocol (eg D-Bus like?
! 67: simplified SNMP-a-like? NETCONF?)
! 68:
! 69: [L003] extend vty command definitions to allow them to be self-documenting
! 70: i18n command help strings
! 71:
! 72: [L004] create a common libspf (for ospfd, ospf6d and possibly isisd and more).
! 73: cf. TODO item [O000] for the ospfd/ospf6d specific variant
! 74:
! 75: [L005] stabilise the API (possibly including symbol/library versioning voodoo)
! 76:
! 77: [L006] Document the exported API (DocBook/Doxygen?)
! 78:
! 79: [LE00] incorporate library changes from Euro-IX branch, except threading
! 80:
! 81: [LE01] incorporate threading library support from Euro-IX branch
! 82:
! 83:
! 84: zebra
! 85: =====
! 86:
! 87: [Z000] Pointopoint address configuration.
! 88: Priority: low
! 89: State: patch done & tested 2013-03-29 David Lamparter
! 90:
! 91: [Z001] Add support for valid and preferred lifetimes to IPv6 addresses
! 92:
! 93: [Z002] proper support for (at least) 1-level recursive routes
! 94: Priority: high
! 95:
! 96: [Z003] Ability to set src on routes, where systems support it.
! 97:
! 98: [Z004] Ability to apply route-maps to daemon route updates.
! 99:
! 100:
! 101: bgpd
! 102: ====
! 103:
! 104: [B000] HUP signal support (reload configuration file).
! 105:
! 106: [B001*] BGP multi-path extension, relaxed mode
! 107: Priority: medium
! 108: Implemented, patch will be sent shortly
! 109: Pradosh Mohapatra, Cumulus Networks
! 110:
! 111: [B002] move FSM state to be per-connection, not per-peer.
! 112:
! 113: [B003] Add support for internal and minimum-metric MED setting
! 114:
! 115:
! 116: ripd
! 117: ====
! 118:
! 119: [R000] Multipath support.
! 120:
! 121:
! 122: ospfd/ospf6d
! 123: ============
! 124:
! 125: [O000] move SPF to common code
! 126:
! 127: [O001] extend code sharing between ospfd and ospf6d beyond SPF
! 128:
! 129: [O002*] OSPF testing replay tool
! 130: Priority: medium
! 131: GSoC-Mentors: Martin Winter, Christian Franke, David Lamparter
! 132:
! 133: In order to extensively test OSPF implementations, a tool to fake an
! 134: OSPF neighbor is immensely useful. This tool needs to be capable of
! 135: forming an adjacency and pushing LSAs to the device to be tested. To
! 136: maintain the adjacency, some minimal state tracking is useful.
! 137:
! 138: In total, the tool needs to form an adjacency, read and push LSAs, and
! 139: output received LSAs. Additional tools to generate LSAs from
! 140: specifications as well as verify received LSA correctness can then be
! 141: built on top of that.
! 142:
! 143: The tool needs to support IPv4 and IPv6, possibly split into 2 tools
! 144: with some code sharing.
1.1 misho 145:
146: ospfd:
147:
1.1.1.2 ! misho 148: [O400] Demand circuits.
! 149: Priority: very low
! 150:
! 151: [O401] Multiple instances.
! 152: Priority: medium
! 153:
! 154: [O402] HUP signal treatment.
! 155: Priority: medium
! 156: State: patch on ML needs review 2012-06-04 Mattias Walström
1.1 misho 157:
158: ospf6d:
159:
1.1.1.2 ! misho 160: [O600*] fix ospf6d in general
! 161: Priority: high
! 162: State: patches tickling in from Cumulus Networks 2013-03-29 Dinesh Dutt
! 163: Implemented: p2p link support, ABR, Stub area/Totally Stubby area,
! 164: SPF throttling, Improving state machine to get performance/scale,
! 165: max-metric support, Improving ECMP to be > 4, Various other bug fixes
! 166:
! 167:
! 168: [O601*] OSPFv3 autoconfiguration, prefix assignment and sourcedest routing
! 169: Priority: medium
! 170: State: work in progress 2013-03-29 Edward Seabrook
! 171: GSoC-Mentors: David Lamparter
! 172:
! 173: OSPFv3 application in the homenet is being designed to use several
! 174: extensions to the base protocol. In order of dependency,
! 175: autoconfiguration, prefix assignment and sourcedest routing should
! 176: be implemented.
! 177:
! 178: This task requires a good level of OSPF understanding plus proper
! 179: ability to follow IETF discussion about these points. Also, since work
! 180: has already started on this, improvements must obviously build on top
! 181: of that.
! 182:
! 183: isisd
! 184: =====
! 185:
! 186: [I000] reassess isisd TODO
! 187:
! 188: [I001*] IS-IS testing replay tool
! 189: Priority: medium
! 190: GSoC-Mentors: Martin Winter, Christian Franke, David Lamparter
! 191:
! 192: see [O002*].
! 193:
! 194: [I002] Mesh groups (RFC2973)
! 195:
! 196: [I003] Crypto authentication (RFC3567)
! 197:
! 198:
! 199: vtysh
! 200: =====
! 201:
! 202: [V000] untangle readline specific bits
! 203:
! 204: [V001] add a vtyd with a vty (ie telnet) frontend (as opposed to readline)
1.1 misho 205:
1.1.1.2 ! misho 206: [V002] (=> [L002]) use daemon control protocol
1.1 misho 207:
1.1.1.2 ! misho 208: [V003] better AAA support than just PAM, eg krb5, SASL, LDAP...
1.1 misho 209:
FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>