Openflow Mpls and The Open Source Label Switched Router
Openflow Mpls and The Open Source Label Switched Router
Router
James Kempf, Scott Whyte, Jonathan Ellithorpe, Peyman Kazemian,
Mart Haitjema, Neda Beheshti, Stephen Stuart, Howard Green
james.kempf@ericsson.com, swhyte@google.com, jdellit@stanford.edu,
peyman.kazemian@stanford.edu, mah5@cec.wustl.edu, neda.beheshti@ericsson.com,
sstuart@google.com, howard.green@ericsson.com
ABSTRACT
Multiprotocol Label Switching (MPLS) [3] is a protocol widely
1. INTRODUCTION
The OpenFlow 1.0 control protocol [1] provides a vendor agnostic
used in commercial operator networks to forward packets by
flow-based routing interface for controlling network forwarding
matching link-specific labels in the packet header to outgoing
elements. The essence of OpenFlow is the separation of the
links rather than through standard IP longest prefix matching.
control plane and data plane in routing and switching gear. In
However, in existing networks, MPLS is implemented by full IP
traditional routers and switches, the control and data plane are
routers, since the MPLS control plane protocols such as LDP [8]
tightly intertwined, limiting the implementation and deployment
utilize IP routing to set up the label switched paths, even though
options. Networks deployed with traditional routing and
the MPLS data plane does not require IP routing. OpenFlow 1.0 is
switching gear have a distributed control plane, and the control
an interface for controlling a routing or switching box by inserting
and data plane hardware and software for the routing and
flow specifications into the box’s flow table [1]. While
switching gear is contained in a single box. The OpenFlow
OpenFlow 1.0 does not support MPLS 1, MPLS label-based
interface simplifies the control plane on network forwarding
forwarding seems conceptually a good match with OpenFlow’s
hardware in which the control and data plane are bundled by
flow-based routing paradigm. In this paper we describe the design
providing a standardized interface between the control and data
and implementation of an experimental extension of OpenFlow
planes, simplifying the interface between the on-box control and
1.0 to support MPLS. The extension allows an OpenFlow switch
data plane software and hardware. Alternatively, the control plane
without IP routing capability to forward MPLS on the data plane.
can be deployed on a centralized controller that controls multiple
We also describe the implementation of a prototype open source
forwarding elements, or it can be deployed on a single forwarding
MPLS label switched router, based on the NetFPGA hardware
element like traditional routers and switches, but with OpenFlow
platform [4], utilizing OpenFlow MPLS. The prototype is capable
acting as a the control to data plane interface.
of forwarding data plane packets at line speed without IP
forwarding, though IP forwarding is still used on the control In this paper, we describe an extension of OpenFlow to
plane. We provide some performance measurements comparing incorporate MPLS and its use in implementing a open source
the prototype to software routers. The measurements indicate that MPLS label switched router (LSR). As far as we are aware, this is
the prototype is an appropriate tool for achieving line speed the first implementation of MPLS in OpenFlow 1.0. After a brief
forwarding in testbeds and other experimental networks where review of the OpenFlow 1.0 architecture, we describe a
flexibility is a key attribute, as a substitute for software routers. modification to the OpenFlow switch data plane model - the
virtual port - which supports MPLS encapsulation and
Categories and Subject Descriptors decapsulation. We briefly describe the design of OpenFlow
MPLS, and the hardware implementation, in NetFPGA [4].
C.2.6 [Computer-Communication Networks]: Internet- Extensions to OpenVSwitch [6], and the Stanford user space and
working—Routers; C.2.2 [Computer-Communication Linux kernel space OpenFlow reference software switch were
Networks]: Network Protocols; C.2.1 [Computer- also implemented but are not described here. An initial report of
Communication Networks]: Network Architecture and Design; this work appeared at MPLS 2010 [7]. We then describe the
C.2.5 [Computer-Communication Networks]: Local and Wide- control plane for the open source LSR that was constructed using
Area Networks; C.2.6 [Computer-Communication Networks]: the Linux Quagga MPLS distribution [5]. The MPLS Label
Internetworking. Distribution Protocol (LDP) [8] is used as a control plane for
distributing label switched paths in a network consisting of
General Terms standard IP/MPLS routers and a collection of OpenFlow MPLS
Design, Experimentation, Management, Performance. NetFPGA devices configured as LSRs. The on-box OpenFlow
controller programs the NetFPGA hardware using the labels
Keywords distributed by LDP. Unlike standard IP/MPLS networks, the
NetFPGA LSRs only utilize IP forwarding on the control plane, to
OpenFlow, MPLS, NetFPGA, open source LSR.
allow communication between the controller and the LSRs. All
data plane forwarding is done with MPLS. We provide
performance measurements comparing the open source LSR
1
switching performance with Quagga Linux software MPLS
The latest version of OpenFlow, OpenFlow 1.1, does contain forwarding performance. We then conclude the paper with some
support for MPLS. remarks about the future potential of OpenFlow MPLS.
2. OpenFlow MPLS Architecture
Since OpenFlow MPLS is built on top of OpenFlow 1.0, we
briefly review the OpenFlow architecture here, and compare it
with previous control/data plane separation work before
describing the OpenFlow MPLS architecture.
800
Megabits/Second
400
200
100
10
0
68 Bytes 1504 Bytes
Packet Size
5. ACKNOWLEDGMENTS
The authors would like to thank Andre Khan for his founding
contribution during the initial phases of the design, and Nick
McKeown for his helpful direction during the design of the virtual
port abstraction.
6. REFERENCES
[1] “OpenFlow: Enabling Innovation in Campus Networks”,
McKeown, N., et. al., March, 2008,
http://www.openflowswitch.org//documents/openflow-wp-
Fig. 9: Core Interoperability Test Network latest.pdf.
[2] Doria, A., Hellstrand, F., Sundell, K., Worster, T., ”General
4. Summary and Conclusions Switch Management Protocol (GSMP)”, RFC 3292, June
In this paper, we described an extension of the OpenFlow 2002.
forwarding element control interface and model to include MPLS.
The extension involves modifying the OpenFlow flow table [3] Rosen, E., Viswanathan, A., and Callon, R., “Multiprotocol
entries to include two MPLS labels and defining an extension of Label Switching Architecture”, RFC 3031, Internet
the OpenFlow port model to allow definition of virtual ports. The Engineering Task Force, January, 2001.
virtual ports implement the MPLS per packet processing [4] http://www.netfpga.org.
operations. An extension to the OpenFlow protocol allows the
controller to program the OpenFlow MPLS forwarding element to [5] http://www.quagga.net.
match and process MPLS flows.
[6] http://openvswitch.org.
The extension to OpenFlow was implemented on OpenVSwitch,
the Stanford reference software switch (both user and kernel
[7] http://www.isocore.com/mpls2010/program/abstracts.htm#w
ed1_5.
modules), and on the NetFPGA hardware. The NetFPGA
implementation supports up to 2 virtual ports for MPLS. A [8] Andersson, L., Minei, I., Thomas, B., “LDP Specification”,
demonstration system, the open source LSR, was built using RFC 5036, Internet Engineering Task Force, October, 2007.
OpenFlow as the control/data plane interface for a NetFPGA
running on the same PC as the control plane. This use of [9] OpenFlow Switch Specification V1.0.0,
OpenFlow is in contrast to the canonical architecture in which a http://www.openflowswitch.org/documents/openflow-spec-
whole network of switches is controlled by one OpenFlow v1.0.0.pdf.
controller. [10] Doria, A., Ed., Salim, J., Ed., Haas, R., Ed., Khosravi, H.,
Some simple performance tests were run comparing the open Ed., and Wang, W., Ed., “Forwarding and Control Element
source LSR to MPLS Linux for prototyping purposes. The tests Separation (ForCES) Protocol Specification”, RFC 5810,
demonstrated that the open source LSR could significantly Internet Engineering Task Force, March 2010.
improve the performance of forwarding in prototype networks. [11] Halpern, J., and Salim, J., “ForCES Forwarding Element
An interoperability demonstration system was built using the Model”, RFC 5812, Internet Engineering Task Force, March
open source LSR and two standard Internet routers capable of 2010.
MPLS routing. The routers exchange LDP with the open source
LSRs and each other to set up LSPs through the network. Finally,
[12] Greenberg, A. et. al., “A Clean Slate 4D Approach to
Network Control and Management,” Proceedings of ACM
SIGCOMM, 2005.
[13] Yan, H., Maltz, D., Ng, E., Gogineni, H., Zhang, H., and
Cai, Z., “Tesseract: A 4D Network Control Plane”,
Proceedings of the 4th USENIX Symposium on Networked
Systems Design & Implementation, pp. 369–382, March,
2007.
[14] Kohler, E., Morris, R., Chen, B., Jannotti, J., and Kasshoek,
F., “The Click Modular Router”, Operating Systems Review,
34(5), pp 217{231, December, 1999.
[15] Handley, M., Hodson, O., and Kohler, E., “XORP goals and
architecture” , Proceedings of the ACM SIGCOMM Hot
Topics in Networking, 2002.
[16] Ballani, H., and Francis, P., “CONMan: A Step Towards
Network Manageability”, Proceedings of the ACM
SIGCOMM Workshop on Internet Network Management,
September, 2006.
[17] Gude, N., Koponen, T., Pettit, J., Pfaff, B., Casado, M.,
McKeown, N., Shenker, S., “NOX: Towards an Operating
System for Networks”, Computer Communications Review,
July, 2008.
[18] IEEE standard 802.1ab, “802.1ab rev – Station and Media
Access Control Connectivity Discovery”, September, 2009.
[19] Farrel, A. ad Bryskin, I., GMPLS: Architecture and
Applications, Morgan Kaufmann Publishers, Amsterdam,
412pp., 2006.
[20] http://www.ericsson.com/ourportfolio/network-
areas/se100?nav=networkareacategory002%7Cfgb_101_504
%7Cfgb_101_647.
[21] http://netfpga.org/foswiki/NetFPGA/TenGig/Netfpga10gInitI
nfoSite.
[22] http://sourceforge.net/apps/mediawiki/mpls-
linux/index.php?title=Main_Page.