File:  [ELWIX - Embedded LightWeight unIX -] / embedaddon / quagga / TODO
Revision 1.1.1.2 (vendor branch): download - view: text, annotated - select for diffs - revision graph
Wed Nov 2 10:09:09 2016 UTC (7 years, 7 months ago) by misho
Branches: quagga, MAIN
CVS tags: v1_0_20160315, HEAD
quagga 1.0.20160315

    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: 

FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>