]>
Commit | Line | Data |
---|---|---|
718e3744 | 1 | |
7a939e12 | 2 | Quagga TODO list |
3d1e5791 | 3 | 2013-03-29 |
718e3744 | 4 | |
718e3744 | 5 | |
3d1e5791 DL |
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. | |
718e3744 | 9 | |
3d1e5791 DL |
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. | |
718e3744 | 14 | |
3d1e5791 DL |
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 | |
718e3744 | 20 | |
3d1e5791 | 21 | "GSoC-Mentors:" listings are preliminary at this point. |
718e3744 | 22 | |
3d1e5791 DL |
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 | ||
77ef0139 | 106 | [B001*] BGP multi-path extension, relaxed mode |
3d1e5791 | 107 | Priority: medium |
77ef0139 DD |
108 | Implemented, patch will be sent shortly |
109 | Pradosh Mohapatra, Cumulus Networks | |
3d1e5791 DL |
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. | |
718e3744 | 145 | |
146 | ospfd: | |
147 | ||
3d1e5791 DL |
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 | |
7a939e12 | 157 | |
158 | ospf6d: | |
159 | ||
77ef0139 | 160 | [O600*] fix ospf6d in general |
3d1e5791 DL |
161 | Priority: high |
162 | State: patches tickling in from Cumulus Networks 2013-03-29 Dinesh Dutt | |
77ef0139 DD |
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 | ||
3d1e5791 | 167 | |
24c6bb86 DL |
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 | ||
3d1e5791 DL |
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... | |
7a939e12 | 209 |