1. Summary
  2. Files
  3. Support
  4. Report Spam
  5. Create account
  6. Log in

Main Page

From mpls-linux

Jump to: navigation, search

Contents

Project

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

Status

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:

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)

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)

History

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 (www.laurelnetworks.com). 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 (www.internetnoc.com) where I have been encouraged to continuing working on this project and be involved in the standardization bodies associated with MPLS.

RPM Support

I'm in the process of converting my development/testing platform to Fedora 10. The existing Fedora 8 RPMs can be found here and the latest tarballs can be found here

If you choose to use the RPMs, there are a lot to choose from, here is a guide to help you figure out which ones you should grab, the list is cumulative, so those who are developers will need all of the RPMs:

If you want to experiment with the existing MPLS functionality, or are just itching to find bugs for me. Grab my MPLS enable i386 RPMs for:

  • kernel
  • iproute2
  • iptables
  • iptables-ipv6
  • ebtables
  • ppp
  • quagga

If you want to compile other MPLS enable applications, grab my MPLS enable i386 RPMS for:

  • kernel-devel

You want the source, but you still want to produce RPMS, grab my SRPMs for:

  • kernel
  • iproute2
  • iptables
  • ebtables
  • ppp
  • quagga

If you are a hard core hacker and want to add features or fix the plethora of bugs that are out there, just grab the tarballs for:

  • mpls-linux
  • ldp-portable
  • quagga-mpls


Examples

Go here for some simple Examples

Development repo

I've recently converted my development trees to git and the core repos are being mirrored at repo.or.cz:

  • mpls-kernel.git
  • mpls-ebtables.git
  • mpls-iptables.git
  • mpls-iproute2.git
  • mpls-quagga.git
  • mpls-ldp-portable.git

Example: git clone git://repo.or.cz/mpls-kernel.git

Links

  • Go to the MPLS for Linux project page http://sourceforge.net/projects/mpls-linux/
  • The MPLS for Linux general mailing list is can be reached at Sourceforge
  • The MPLS for Linux development mailing list is can be reached at Sourceforge
  • MPLS Linux Lab examples by Irina Dumitrascu and Adrian Popa (mpls-linux 1.950) These experiments were developed as a part of a graduation project and had the purpose of helping teaching MPLS to university students. The experiments are independent and can be used selectively, but they all rely on the same testbed. (local archive of the labs can be found here)
  • Live MPLS CD Creation Guide (mpls-linux 1.946) This tarball contains the scripts and README for creating the KnoppixMpls ISO. This work was contributed by Bertrand Thomas and Julien Cayssol from the school INSA Lyon, d?partement telecom services et usages. Any questions about it's usage can be directed to the mpls-linux-general mailing list.
Personal tools