Annotation of embedaddon/quagga/TODO, revision 1.1.1.2

1.1       misho       1: 
                      2:                           Quagga TODO list
1.1.1.2 ! misho       3:                              2013-03-29
1.1       misho       4: 
                      5: 
1.1.1.2 ! misho       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.
1.1       misho       9: 
1.1.1.2 ! misho      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.
1.1       misho      14: 
1.1.1.2 ! misho      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.
1.1       misho     145: 
                    146: ospfd:
                    147: 
1.1.1.2 ! misho     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
1.1       misho     157: 
                    158: ospf6d:
                    159: 
1.1.1.2 ! misho     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)
1.1       misho     205: 
1.1.1.2 ! misho     206: [V002] (=> [L002]) use daemon control protocol
1.1       misho     207: 
1.1.1.2 ! misho     208: [V003] better AAA support than just PAM, eg krb5, SASL, LDAP...
1.1       misho     209: 

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