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


From OpenFlow Wiki

Jump to: navigation, search



OpenFlow MPLS is a project at Ericsson Research on extending OpenFlow with MPLS capabilities. It is NOT related to the official OpenFlow project!


Ericsson Research is working on supporting MPLS with OpenFlow. The goal is to turn an OpenFlow enabled switch (which has the necessary capabilities) into an MPLS switch.

The basics of MPLS involves pushing, popping, and swapping one or more labels that reside in a "label stack" between the link layer and network layer header of a packet (see the figure below). As of version 0.8.9 and 1.0 the OpenFlow specification does not provide the features needed to describe this functionality. As part of this project, we define a set of additions to the OpenFlow specification that allow us to perform all of the basic MPLS functionality.

MPLS label stack in Ethernet/IP packet

As part of the project the OpenFlow software switch and controller reference and the NetFPGA implementation has also been modified to support MPLS.

Wiki Pages

The project is described in details on the following wiki pages. Downloadable materials are also available on the appropriate pages.

OpenFlowMPLS_Description: provides an in-depth description of the approach taken in extending the OpenFlow specification with MPLS support.

OpenFlowMPLS_Implementation: the modified openflow reference implementation, including the reference controller, reference switch, netfpga sources as well as a wireshark dissector.

OpenFlowMPLS_NOX: a NOX controller modified based on the above specification in order to allow sending MPLS commands to switches