1 2 Quagga TODO list 3 2013-03-29 4 5 6This 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. 9 10If 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. 14 15Google 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 20 21"GSoC-Mentors:" listings are preliminary at this point. 22 23 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 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 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. 145 146ospfd: 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 158ospf6d: 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 183isisd 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 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... 209 210