1:
2: Quagga TODO list
3: 2013-03-29
4:
5:
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.
9:
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.
14:
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.
145:
146: ospfd:
147:
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
157:
158: ospf6d:
159:
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)
205:
206: [V002] (=> [L002]) use daemon control protocol
207:
208: [V003] better AAA support than just PAM, eg krb5, SASL, LDAP...
209:
FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>