1.962 GPL (GNU General Public License)    
2.9/5 21
An open source effort to create a set of MPLS signaling protocols and an MPLS forwarding plane for the Linux OS





MPLS for Linux is a open source effort to create a set of MPLS signaling protocols and an MPLS forwarding plane for the Linux OS.

So far a MPLS forwarding plane for the Linux 2.6.x kernel tree and an implementation of RFC3036 (LDP) have been created.

MPLS for Linux is made up of two projects:

1. mpls-linux -- MPLS forwarding for the Linux Kernel

· Ethernet interfaces
· PPP interfaces
· Virtual MPLS tunnel interface
· Global or interface specific labelspaces
· Label stacking
· Recursive label lookups
· Any entry in the Linux routing table can have an outgoing label associated with it (this include multiple table support, TOS, and per interface routing)
· Integration with Linux QoS model
· DiffServ support (E-LSPs and L-LSPs)
· Ethernet over MPLS (via ebtables)
· Penultimate Hop Popping - PHP (can also be used to avoid IPv4 lookup on egress LER)
· (Support for ATM interfaces was removed)

2. ldp-portable -- a portable implementation of RFC3036

· Unsolicited and on demand modes are implemented
· Direct and indirect peers
· Distribution of labels controlled by policy
· Integration with quagga routing platform (see quagga-mpls below)
· Flexible configuration API (mimics LDP-MIB)


MPLS for Linux started out as a protocol analyzer for the LDP protocol. It utilized a set of encode and decode functions developed by Nortel Networks. It was originally developed for the N+I Las Vegas '99 MPLS iLab. By the time N+I Atlanta '99 rolled around it had matured in to a make shift implementation of LDP-03. During N+I Atlanta '99 it was re-written to follow the procedures from Appendix A of LDP-05. In April of 2000 I joined Laurel Networks ( I was allowed to continue development of LDP as long as I made it portable. With this in mind the linux-mpls-ldp package was split into two packages: mpls-linux (the Linux Kernel based forwarding plane released under the GPL) and ldp-portable (a portable version of the LDP protocol released under the LGPL). The project moved to Sourceforge on 11/30/2000. In January of 2003 I started working for iNOC ( where I have been encouraged to continuing working on this project and be involved in the standardization bodies associated with MPLS.
Last updated on February 17th, 2009

0 User reviews so far.