]> git.proxmox.com Git - mirror_frr.git/blob - TODO
Merge remote-tracking branch 'origin/cmaster' into cmaster-next
[mirror_frr.git] / TODO
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