MPLS 1.962

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, 12:05 GMT
license type:
GPL (GNU General Public License) 
developed by:
James R. Leu
ROOT \ System \ Networking
Download Button

In a hurry? Add it to your Download Basket!

user rating 21



Rate it!
What's New in This Release:
  • Assorted enhancements and bugfixes.
read full changelog

Add your review!