Please Note: This website has been archived and is no longer maintained.
See the Open Networking Foundation for current OpenFlow-related information.

MPLS with OpenFlow/SDN

From OpenFlow Wiki

Jump to: navigation, search



MPLS networks have evolved over the last 10-15 years to become critically important for ISPs. They provide two key services: traffic engineering in IP networks and L2 or L3 enterprise VPNs. However as carriers deploy MPLS networks, they find that (a) even though the MPLS data plane was meant to be simple, vendors end up supporting MPLS as an additional feature on complex, energy hogging, expensive core routers; and (b) the IP/MPLS control plane has become exceedingly complex with a wide variety of protocols tightly intertwined with the associated data-plane mechanisms.

Today's IP/MPLS Networks
SDN based MPLS

We propose a new approach to MPLS that uses the standard MPLS data-plane with a simpler and extensible control-plane based on OpenFlow and SDN.There are significant advantages in using this approach. The control-plane is greatly simplified and is de-coupled from a simple data-plane. And we can still provide all the services that MPLS networks provide today. More importantly we can do much more: we can globally optimize the services; make them more dynamic; or create new services by simply programming networking applications on top of the SDN Controller.

Changes to the OpenFlow protocol

There are none. The current version of the OpenFlow protocol (version 1.1) already gives the ability to push, pop and swap MPLS labels. This is all we need!

At the time this work was done (Oct 2010- June 2011), there weren't any software or hardware switches fully compliant with the 1.1 specification. Neither were there any controllers. We took existing controllers (NOX) and software-switches(Open vSwitch) fully compliant with version 1.0 of the OpenFlow spec, and modified them with just the MPLS related features from version 1.1.


To demonstrate the simplicity of our SDN based approach, we show nearly every major feature of MPLS-TE and MPLS L3 VPNs, that we have implemented in just a few thousand lines of code; compared to nearly two orders-of-magnitude greater code-lines required in traditional distributed approaches.

MPLS-TE demo

We have shown MPLS Traffic-Engineering based on admission-control of TE-LSPs (tunnels) using a CSPF algorithm. Further we have implemented a number of TE features such as bandwidth reservation at different priority levels; Autoroute of IP traffic into the tunnels; AutoBandwidth of tunnel reservations and their interactions with tunnel priorities; traffic-type specific tunnels (aka DS-TE); and load-balancing of traffic-flows over IP links and TE tunnels.

A video of the demonstration can be seen here. Demo details as well as instructions on recreating the demo, and downloading controller & application reference code can be found here


Next, building on our TE work, we recently demonstrated MPLS L3-VPNs. We interactively created multiple isolated VPNs, with overlapping private-IP address spaces. The VPNs have customer specified topologies, and are supported by TE tunnels in the backbone.

Both of our demos were showcased at the Open Networking Summit from Oct 17th-19th, 2011 (related press)




  • Saurav Das
  • Ali Reza Sharafat