13.07.2015 Views

Chapter 5 Introducing SDN Control in MPLS Networks - High ...

Chapter 5 Introducing SDN Control in MPLS Networks - High ...

Chapter 5 Introducing SDN Control in MPLS Networks - High ...

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

200 CHAPTER 5. INTRODUCING <strong>SDN</strong> CONTROL IN <strong>MPLS</strong> NETWORKS(a)(b)Fig. 5.11 (a) Open vSwitch Software Architecture [119] (b) OFTest Framework [120]Fig. 5.11a shows the OVS software architecture. Details can be found <strong>in</strong> [119]. Herewe focus on the parts we changed to add <strong>MPLS</strong> data-plane capabilities. OVS can be usedpurely as an OpenFlow switch, or it can be used with added functionality that is part ofOVS. We chose to use it as an OpenFlow switch us<strong>in</strong>g the ovs-openflowd program<strong>in</strong>stead of the ovs-vswitchd program. The former does not require communication withan ovsdb-server. Next <strong>in</strong> the stack shown <strong>in</strong> Fig. 5.11a, the ofproto module communicateswith an external <strong>Control</strong>ler. We changed this module to work with our additions toversion 1.0 of the OpenFlow protocol borrowed from version 1.1 (for <strong>MPLS</strong> support).The ofproto module communicates with the switch us<strong>in</strong>g the ofproto-dpif <strong>in</strong>terface.The OVS switch datapath can be <strong>in</strong> kernel space (as shown <strong>in</strong> the figure) or <strong>in</strong>userspace. We chose the userspace datapath implemented <strong>in</strong> the dpif-netdev module,which also <strong>in</strong>stantiates the datapath-<strong>in</strong>terface (dpif) provider class. We added support forthe <strong>MPLS</strong> data plane <strong>in</strong> the dpif-netdev module [120]. This <strong>in</strong>cluded the ability to matchon the outermost <strong>MPLS</strong> label (id and traffic-class bits) and perform the actions ofpush<strong>in</strong>g, chang<strong>in</strong>g and popp<strong>in</strong>g off multiple labels from packets together with TTLmanipulations. S<strong>in</strong>ce our software switch was hosted <strong>in</strong> L<strong>in</strong>ux, we used the built-<strong>in</strong>

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!