blob: 246cc2572ccb468f2223ca1fa33ea9b34bf38dd0 [file] [log] [blame]
paul718e3742002-12-13 20:15:29 +00001
paul7a939e12004-07-27 16:57:09 +00002 Quagga TODO list
David Lamparter3d1e5792013-03-29 19:31:55 +01003 2013-03-29
paul718e3742002-12-13 20:15:29 +00004
paul718e3742002-12-13 20:15:29 +00005
David Lamparter3d1e5792013-03-29 19:31:55 +01006This is the Quagga primary TODO list. It is on git because that way changes
7pass through the usual process just like code does, therefore they will have
8the same visibility.
paul718e3742002-12-13 20:15:29 +00009
David Lamparter3d1e5792013-03-29 19:31:55 +010010If you are working on something beyond a simple fix, to avoid double work it
11is a good idea to submit a patch to this TODO list when you are starting,
12listing what you're doing. Also, as others may have done just that, check
13the list before starting.
paul718e3742002-12-13 20:15:29 +000014
David Lamparter3d1e5792013-03-29 19:31:55 +010015Google Summer of Code 2013 note: this list double-serves as idea list for the
16Summer of Code. Ideas considered suitable for students are marked with a star
17after the number, like this: "[Q999*] achieve world peace". They will also
18have extended descriptions. Nevertheless, if you'd like to do something else,
19just write a mail to the mailing list: quagga-dev@lists.quagga.net
paul718e3742002-12-13 20:15:29 +000020
David Lamparter3d1e5792013-03-29 19:31:55 +010021"GSoC-Mentors:" listings are preliminary at this point.
paul718e3742002-12-13 20:15:29 +000022
David Lamparter3d1e5792013-03-29 19:31:55 +010023
24Overall
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
59library
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
84zebra
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
101bgpd
102====
103
104[B000] HUP signal support (reload configuration file).
105
Dinesh G Dutt77ef0132013-04-12 01:37:15 +0000106[B001*] BGP multi-path extension, relaxed mode
David Lamparter3d1e5792013-03-29 19:31:55 +0100107 Priority: medium
Dinesh G Dutt77ef0132013-04-12 01:37:15 +0000108 Implemented, patch will be sent shortly
109 Pradosh Mohapatra, Cumulus Networks
David Lamparter3d1e5792013-03-29 19:31:55 +0100110
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
116ripd
117====
118
119[R000] Multipath support.
120
121
122ospfd/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.
paul718e3742002-12-13 20:15:29 +0000145
146ospfd:
147
David Lamparter3d1e5792013-03-29 19:31:55 +0100148[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
paul7a939e12004-07-27 16:57:09 +0000157
158ospf6d:
159
Dinesh G Dutt77ef0132013-04-12 01:37:15 +0000160[O600*] fix ospf6d in general
David Lamparter3d1e5792013-03-29 19:31:55 +0100161 Priority: high
162 State: patches tickling in from Cumulus Networks 2013-03-29 Dinesh Dutt
Dinesh G Dutt77ef0132013-04-12 01:37:15 +0000163 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
paul7a939e12004-07-27 16:57:09 +0000167
David Lamparter24c6bb82013-03-29 19:40:39 +0100168[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
David Lamparter3d1e5792013-03-29 19:31:55 +0100183isisd
184=====
hassob1b57e22005-01-01 21:02:13 +0000185
David Lamparter3d1e5792013-03-29 19:31:55 +0100186[I000] reassess isisd TODO
hassob1b57e22005-01-01 21:02:13 +0000187
David Lamparter3d1e5792013-03-29 19:31:55 +0100188[I001*] IS-IS testing replay tool
189 Priority: medium
190 GSoC-Mentors: Martin Winter, Christian Franke, David Lamparter
hassob1b57e22005-01-01 21:02:13 +0000191
David Lamparter3d1e5792013-03-29 19:31:55 +0100192 see [O002*].
paul7a939e12004-07-27 16:57:09 +0000193
David Lamparter3d1e5792013-03-29 19:31:55 +0100194[I002] Mesh groups (RFC2973)
195
196[I003] Crypto authentication (RFC3567)
197
198
199vtysh
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...
paul7a939e12004-07-27 16:57:09 +0000209