blob: ccf4d03ddb56002cb141e3bef3d52d40685cfb8a [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
106[B001] BGP multi-path extension, relaxed mode
107 Priority: medium
108
109[B002] move FSM state to be per-connection, not per-peer.
110
111[B003] Add support for internal and minimum-metric MED setting
112
113
114ripd
115====
116
117[R000] Multipath support.
118
119
120ospfd/ospf6d
121============
122
123[O000] move SPF to common code
124
125[O001] extend code sharing between ospfd and ospf6d beyond SPF
126
127[O002*] OSPF testing replay tool
128 Priority: medium
129 GSoC-Mentors: Martin Winter, Christian Franke, David Lamparter
130
131 In order to extensively test OSPF implementations, a tool to fake an
132 OSPF neighbor is immensely useful. This tool needs to be capable of
133 forming an adjacency and pushing LSAs to the device to be tested. To
134 maintain the adjacency, some minimal state tracking is useful.
135
136 In total, the tool needs to form an adjacency, read and push LSAs, and
137 output received LSAs. Additional tools to generate LSAs from
138 specifications as well as verify received LSA correctness can then be
139 built on top of that.
140
141 The tool needs to support IPv4 and IPv6, possibly split into 2 tools
142 with some code sharing.
paul718e3742002-12-13 20:15:29 +0000143
144ospfd:
145
David Lamparter3d1e5792013-03-29 19:31:55 +0100146[O400] Demand circuits.
147 Priority: very low
148
149[O401] Multiple instances.
150 Priority: medium
151
152[O402] HUP signal treatment.
153 Priority: medium
154 State: patch on ML needs review 2012-06-04 Mattias Walström
paul7a939e12004-07-27 16:57:09 +0000155
156ospf6d:
157
David Lamparter3d1e5792013-03-29 19:31:55 +0100158[O600] fix ospf6d in general
159 Priority: high
160 State: patches tickling in from Cumulus Networks 2013-03-29 Dinesh Dutt
paul7a939e12004-07-27 16:57:09 +0000161
David Lamparter24c6bb82013-03-29 19:40:39 +0100162[O601*] OSPFv3 autoconfiguration, prefix assignment and sourcedest routing
163 Priority: medium
164 State: work in progress 2013-03-29 Edward Seabrook
165 GSoC-Mentors: David Lamparter
166
167 OSPFv3 application in the homenet is being designed to use several
168 extensions to the base protocol. In order of dependency,
169 autoconfiguration, prefix assignment and sourcedest routing should
170 be implemented.
171
172 This task requires a good level of OSPF understanding plus proper
173 ability to follow IETF discussion about these points. Also, since work
174 has already started on this, improvements must obviously build on top
175 of that.
176
David Lamparter3d1e5792013-03-29 19:31:55 +0100177isisd
178=====
hassob1b57e22005-01-01 21:02:13 +0000179
David Lamparter3d1e5792013-03-29 19:31:55 +0100180[I000] reassess isisd TODO
hassob1b57e22005-01-01 21:02:13 +0000181
David Lamparter3d1e5792013-03-29 19:31:55 +0100182[I001*] IS-IS testing replay tool
183 Priority: medium
184 GSoC-Mentors: Martin Winter, Christian Franke, David Lamparter
hassob1b57e22005-01-01 21:02:13 +0000185
David Lamparter3d1e5792013-03-29 19:31:55 +0100186 see [O002*].
paul7a939e12004-07-27 16:57:09 +0000187
David Lamparter3d1e5792013-03-29 19:31:55 +0100188[I002] Mesh groups (RFC2973)
189
190[I003] Crypto authentication (RFC3567)
191
192
193vtysh
194=====
195
196[V000] untangle readline specific bits
197
198[V001] add a vtyd with a vty (ie telnet) frontend (as opposed to readline)
199
200[V002] (=> [L002]) use daemon control protocol
201
202[V003] better AAA support than just PAM, eg krb5, SASL, LDAP...
paul7a939e12004-07-27 16:57:09 +0000203