MANDATORY REQUIREMENTS |
| Interface fibs |
We need fib (VRF, really) to be applied to any interface. This simplifies CE-PE implementation (ipfw setfib is not needed) and enables AToM. ether_input(), vlan_ether_input() and all other related L2 input routines (e.g. tun/tap/gif/gre/ng_iface/etc..) will be affected. Kernel interface and interface flag is also needed. This will probably be done with ifconfig |
wiki |
100% |
| In-kernel label storage (lfib) |
We need the possibility to get/set MPLS lfib information (add/remove/assign label) |
wiki |
80% |
| Simple hash for AF_MPLS instead of RADIX |
Hash table and very simple hash function should improve label switching performace |
wiki |
10% |
| MPLS unicast input/output |
We need PE router implementation (e.g. pass packets to/from MPLS cloud) plus simple MPLS forwarding |
wiki |
30% |
| Routing socket |
kern/134931 and ABI keeping are showstoppers. We need FIB and MPLS info in routing messages |
wiki |
60% |
| Reasonable amount of fibs |
At the moment, only 16 fibs can be used |
x |
10% |
| MPLS traceroute |
Normal network diagnosting tools will not work (as expected) in MPLS domain. We should implement
RFC 4379 (Detecting Multi-Protocol Label Switched (MPLS) Data Plane Failures) and?
RFC 4950 (ICMP Extensions for Multiprotocol Label Switching)
|
x |
0% |
| Netgraph: ng_mpls |
Pass AF_MPLS mbufs to netgraph nodes based on local label |
wiki |
55% |
| Netgraph: ng_setfib |
Just for testing and binding |
wiki |
95% |
| bird: LDP |
Implement LDP RFC 5036 protocol in BIRD routing software |
wiki |
80% |
| bird: multiprotocol core |
Implement general support for abstact address tables (MPLS, VPNvX) |
wiki |
100% |
Layer 3 VPNS |
| Kernel: L3VPNs |
Permit L3 VPN label popping without routing lookup |
wiki |
30% |
| Netgraph: ng_netflow |
VRF-aware traffic accounting |
wiki |
99% |
| bird: BGP L3 VPNS (VPNv4) |
Implement VPN extensions described in RFC 4364 |
x |
80% |
| bird: BGP L3 VPNS (VPNv6) |
Implement VPN extensions described in RFC 4364 |
x |
10% |
| bird: L3VPN protocol |
Implement l3vpn protocol for VPNvX routes convertation |
x |
80% |
| bird: protocols interaction |
Implement protocols interaction (request LDP labels for prefixes) |
x |
99% |
AToM / VPLS |
| Netgraph: ng_eompls |
Node popping/pushing tunnel label and EoMPLS header |
wiki |
10% |
MPLS QoS |
| Netgraph: ng_car |
Implement packet color marking via mbuf tags |
wiki |
10% |
| Netgraph: ng_qc |
Qos classifier (IP ToS, IP DSCP, MPLS TC -> DSCP mbuf) |
wiki |
10% |
| Netgraph: ng_qa |
Apply Traffic class policy found in mbuf_tag |
wiki |
10% |
Traffic Engineering |
| Netgraph: ng_te |
Netgraph-base TE interfaces |
wiki |
0% |
OTHER |
| MPLS multicast input/output |
We have to implement it some day.. |
x |
0% |
| IPv6 fib support |
We definitely needs this |
x |
99% |