Eric Choi
echoi@brocade.com
Product Management and Strategy,
March 2015
Implementing MPLS Services
using Openflow
Why MPLS and Openflow for SP ?
Telcos are
struggling with
long lead-times for
their core services
Source: http://www.t1shopper.com/carriers/sla/#
Source :
https://www.nanog.org/sites/default/files/wednesday_general_migrating_be
zerra_63.10.pdf
1
• Breaking Silo
2
• Openness
• Open-source
• Programmability
3
•Agility
•New Services
•Better tie to
application
•Analytics
Source: https://www.opennetworking.org/images/stories/downloads/sdn-
resources/customer-case-studies/cs-googlesdn.pdf
ENABLING SDN WAN VIRTUALIZATION FOR SP with Openflow MPLS
 EMS, NMS, CLI andAPIs specific to the switch or router
vendor
 Proprietary control plane per device
 Communication protocols standardized for
interoperability© 2014 BROCADE COMMUNICATIONS SYSTEMS, INC. COMPANY PROPRIETARY
INFORMATION 3
SDN Architecture for SP
Software Defined Networking Logically Centralizes the Control Plane
3/2/2015
CLI/API
EMS/NMS
Vendor A
CLI/API
EMS/NMS
Vendor B
Vendor
Specific
Management
Captive
Control
Plane
Industry
Standard
Protocols
Vendor C
CLI/API
EMS/NMS
Monitoring
Management
Operation
Vendor A Vendor B Vendor C
Open Source SDN
Controller (ODL,
Ryu)
Northbound API
Industry Standard
Control Protocols
Standard
Modeling
Languag
e
• Logically centralized open control plane, non-vendor
specific
• Normalized programming interface
• Standard control protocols and modeling language
Implementing MPLS Services using OF1.3
Openflow
Controller
Implementing MPLS Services using OF1.3
Match L2/L3
Push two Tags
Match on Outer
Tag
Rewrite and Fwd
Match on Outer
Tag
Pop and Fwd
Match on Inner
Tag
Pop and Fwd
• Inserting and removing label works the same way for single label and double label cas
Implementing MPLS Services using OF1.3
Ethertype changed to 0x8847. Label
matching can take place in subsequent
nodes
Ethertype
rewrite
• Ethernet Type cannot be retained across the network
Implementing MPLS Services using OF1.3
 Workaround
 Implement MPLS label
per Ethernet Type
 Matching EthernetType
on the ingress side and
place them in different
circuit
 Not scalable .
 impossible from service
provider point of view
How can we transport the user frame without altering the ethernet type?
Advertise labels Y from label range for L2VPN
2. Pop the label and restore frame
 How is it done today with L2VPN?
A B
 How can it be achieved it with standard openflow controller?
1. Push Inner label from label range for
L2VPN
2. Push outer label from default label
range
Pop the label and restore frame
MPLS
APP
Openflow
Controller
How can we transport the user frame without altering the ethernet type?
A B
Ryu
Openflow
Controller
Openflow
Device
App
Flow
table
restapi
An Example on
NTTCom Ryu
ControllerIngress Node
curl -X POST -d '{ "dpid":
"10195376623583232",
"priority": "23997", "match": {"in_port": "50",
"dl_vlan": "100" },
"actions": [{"type": "PUSH_MPLS",
"ethertype":34887},
{"type":"SET_FIELD","field":"mpls_label","va
lue":368929}, {"type": "PUSH_MPLS",
"ethertype":34887},
{"type":"SET_FIELD","field":"mpls_label","va
lue":499999},{"type": "OUTPUT", "port":
"50"}]}'
http://127.0.0.1:8080/stats/flowentry/add
Flow ID: 11 Priority: 23997 Status: Active
Rule:
In Port: e2/2
In Vlan: Tagged[100]
..
Instructions: Apply-Actions
Action: FORWARD
Out Port: e2/2
PUSH MPLS TAG: Label 368929, EXP 0,
BOS 0, TTL 0
PUSH MPLS TAG: Label 499999, EXP 0,
BOS 0, TTL 0
Transit Node
curl -X POST -d '{ "dpid":
"10195376623583232",
"priority": "23994",
"match": {"in_port": "50", "eth_type":
"34887", "mpls_label": “368929" },
"actions": [{"type": "POP_MPLS",
"ethertype":34887}, {"type": "OUTPUT",
"port": "50"}]}'
http://127.0.0.1:8080/stats/flowentry/add
Flow ID: 14 Priority: 23994 Status: Active
Rule:
In Port: e2/2
Ether type: 0x00008847
MPLS Label: 368929
Instructions: Apply-Actions
Action: FORWARD
Out Port: e2/2
POP MPLS TAG
Egress Node
curl -X POST -d '{ "dpid":
"10195376623583232",
"priority": "23996",
"match": {"in_port": "50", "eth_type":
"34887", "mpls_label": “499999" },
"actions": [{"type": "POP_MPLS",
"ethertype":34887}, {"type": "OUTPUT",
"port": "50"}]}'
http://127.0.0.1:8080/stats/flowentry/add
Flow ID: 12 Priority: 23996 Status: Active
Rule:
In Port: e2/2
Ether type: 0x00008847
MPLS Label: 499999
…
Instructions: Apply-Actions
Action: FORWARD
Out Port: e2/2
POP MPLS TAG
How can we transport the user frame without altering the ethernet type?
Frequently Ask Questions
Flow Table Matching
search
Ingres
s
EgressR1
R2
User Circuit
Ingres
s
EgressR1
R2
 Fast reroute on transit node and link. e1/1
e1/2
e1/1
e1/2
PriorityMatching Fields ActionCounters
100Match LBL 1000 Forward 1/11000/1000
101Match LBL 1000 Forward 1/20/0
R1 needs to report e1/1 link down and App/Controller
will remove the rule 100 and therefore slow
convergence
Frequently Ask Questions
Flow Table Matching
search
Ingres
s
EgressR1
R2
User Circuit
Ingres
s
EgressR1
R2
 Fast reroute on transit node and link. e1/1
e1/2
e1/1
e1/2
PriorityMatching Fields ActionCounters
100Match LBL 1000
Forward
Port-Group 1
1000/1000
Output e 1/1GID 1 Mode
Failover Output e 1/2
Group Table
After link e1/1 went down, traffic will forward to e1/2 without
waiting for controller instruction. Fast convergence
Frequently Ask Questions
 Integrating with Existing MPLS Network
13
Data Center
L2/L3 MPLS/VPN L2/L3
OpenFlow MPLS
Separate MPLS Label
Range
Transport Label LBL A > LBL B
L3VPN Label LBL B > LBL C
L2VPN Label LBL C > LBL D
OF Transport LBL D > LBL E
OF L2VPN Label LBL E > LBL F
Data Center
OpenFlow L2/L3OpenFlow L2/L3
Reducing Operational Complexity
 NSR and ISSU
 How is it done using routing protocol within the device?
Master
Control
Forwarding
Standby
Control Protocol
Routing
DB Sync so as to
maintain
persistence
topology view
across controller
Reducing Operational Complexity
 NSR and ISSU
Old
Release
Forwarding
OF
Client
Openflow
Controller
cluster
OF
C
OF
C
OF
C
OF
C
Forwarding
OF
Client
OF
C
OF
C
OF
C
OF
C
New
Release
Forwarding
OF
Client
Flow
table
sync
Modify
If needed
OF
C
OF
C
OF
C
OF
C
Reducing Operational Complexity
 E-OAM – complexity grows exponentially as more devices are added to the E-OAM
domain
Reducing Operational Complexity
 OAM for both Ethernet and MPLS domain using Openflow
Data Center Data Center
OAM
APP
Openflow
Controller
Packet out
Action:
forward e1/1
Push label 1000,2000(TTL=1)
Full probe message
Flow table
…
Match MPLS TTL=1, for-controller
…
A B C D
• How Openflow MPLS work
• How some of the difficult problem in
service provider network can be
addressed with Openflow
• Network is no longer a standalone
resources
Implementi
ng MPLS
using
Openflow
Implementing MPLS Services using Openflow

Implementing MPLS Services using Openflow

  • 1.
    Eric Choi echoi@brocade.com Product Managementand Strategy, March 2015 Implementing MPLS Services using Openflow
  • 2.
    Why MPLS andOpenflow for SP ? Telcos are struggling with long lead-times for their core services Source: http://www.t1shopper.com/carriers/sla/# Source : https://www.nanog.org/sites/default/files/wednesday_general_migrating_be zerra_63.10.pdf 1 • Breaking Silo 2 • Openness • Open-source • Programmability 3 •Agility •New Services •Better tie to application •Analytics Source: https://www.opennetworking.org/images/stories/downloads/sdn- resources/customer-case-studies/cs-googlesdn.pdf ENABLING SDN WAN VIRTUALIZATION FOR SP with Openflow MPLS
  • 3.
     EMS, NMS,CLI andAPIs specific to the switch or router vendor  Proprietary control plane per device  Communication protocols standardized for interoperability© 2014 BROCADE COMMUNICATIONS SYSTEMS, INC. COMPANY PROPRIETARY INFORMATION 3 SDN Architecture for SP Software Defined Networking Logically Centralizes the Control Plane 3/2/2015 CLI/API EMS/NMS Vendor A CLI/API EMS/NMS Vendor B Vendor Specific Management Captive Control Plane Industry Standard Protocols Vendor C CLI/API EMS/NMS Monitoring Management Operation Vendor A Vendor B Vendor C Open Source SDN Controller (ODL, Ryu) Northbound API Industry Standard Control Protocols Standard Modeling Languag e • Logically centralized open control plane, non-vendor specific • Normalized programming interface • Standard control protocols and modeling language
  • 4.
    Implementing MPLS Servicesusing OF1.3 Openflow Controller
  • 5.
    Implementing MPLS Servicesusing OF1.3 Match L2/L3 Push two Tags Match on Outer Tag Rewrite and Fwd Match on Outer Tag Pop and Fwd Match on Inner Tag Pop and Fwd • Inserting and removing label works the same way for single label and double label cas
  • 6.
    Implementing MPLS Servicesusing OF1.3 Ethertype changed to 0x8847. Label matching can take place in subsequent nodes Ethertype rewrite • Ethernet Type cannot be retained across the network
  • 7.
    Implementing MPLS Servicesusing OF1.3  Workaround  Implement MPLS label per Ethernet Type  Matching EthernetType on the ingress side and place them in different circuit  Not scalable .  impossible from service provider point of view
  • 8.
    How can wetransport the user frame without altering the ethernet type? Advertise labels Y from label range for L2VPN 2. Pop the label and restore frame  How is it done today with L2VPN? A B
  • 9.
     How canit be achieved it with standard openflow controller? 1. Push Inner label from label range for L2VPN 2. Push outer label from default label range Pop the label and restore frame MPLS APP Openflow Controller How can we transport the user frame without altering the ethernet type? A B
  • 10.
    Ryu Openflow Controller Openflow Device App Flow table restapi An Example on NTTComRyu ControllerIngress Node curl -X POST -d '{ "dpid": "10195376623583232", "priority": "23997", "match": {"in_port": "50", "dl_vlan": "100" }, "actions": [{"type": "PUSH_MPLS", "ethertype":34887}, {"type":"SET_FIELD","field":"mpls_label","va lue":368929}, {"type": "PUSH_MPLS", "ethertype":34887}, {"type":"SET_FIELD","field":"mpls_label","va lue":499999},{"type": "OUTPUT", "port": "50"}]}' http://127.0.0.1:8080/stats/flowentry/add Flow ID: 11 Priority: 23997 Status: Active Rule: In Port: e2/2 In Vlan: Tagged[100] .. Instructions: Apply-Actions Action: FORWARD Out Port: e2/2 PUSH MPLS TAG: Label 368929, EXP 0, BOS 0, TTL 0 PUSH MPLS TAG: Label 499999, EXP 0, BOS 0, TTL 0 Transit Node curl -X POST -d '{ "dpid": "10195376623583232", "priority": "23994", "match": {"in_port": "50", "eth_type": "34887", "mpls_label": “368929" }, "actions": [{"type": "POP_MPLS", "ethertype":34887}, {"type": "OUTPUT", "port": "50"}]}' http://127.0.0.1:8080/stats/flowentry/add Flow ID: 14 Priority: 23994 Status: Active Rule: In Port: e2/2 Ether type: 0x00008847 MPLS Label: 368929 Instructions: Apply-Actions Action: FORWARD Out Port: e2/2 POP MPLS TAG Egress Node curl -X POST -d '{ "dpid": "10195376623583232", "priority": "23996", "match": {"in_port": "50", "eth_type": "34887", "mpls_label": “499999" }, "actions": [{"type": "POP_MPLS", "ethertype":34887}, {"type": "OUTPUT", "port": "50"}]}' http://127.0.0.1:8080/stats/flowentry/add Flow ID: 12 Priority: 23996 Status: Active Rule: In Port: e2/2 Ether type: 0x00008847 MPLS Label: 499999 … Instructions: Apply-Actions Action: FORWARD Out Port: e2/2 POP MPLS TAG How can we transport the user frame without altering the ethernet type?
  • 11.
    Frequently Ask Questions FlowTable Matching search Ingres s EgressR1 R2 User Circuit Ingres s EgressR1 R2  Fast reroute on transit node and link. e1/1 e1/2 e1/1 e1/2 PriorityMatching Fields ActionCounters 100Match LBL 1000 Forward 1/11000/1000 101Match LBL 1000 Forward 1/20/0 R1 needs to report e1/1 link down and App/Controller will remove the rule 100 and therefore slow convergence
  • 12.
    Frequently Ask Questions FlowTable Matching search Ingres s EgressR1 R2 User Circuit Ingres s EgressR1 R2  Fast reroute on transit node and link. e1/1 e1/2 e1/1 e1/2 PriorityMatching Fields ActionCounters 100Match LBL 1000 Forward Port-Group 1 1000/1000 Output e 1/1GID 1 Mode Failover Output e 1/2 Group Table After link e1/1 went down, traffic will forward to e1/2 without waiting for controller instruction. Fast convergence
  • 13.
    Frequently Ask Questions Integrating with Existing MPLS Network 13 Data Center L2/L3 MPLS/VPN L2/L3 OpenFlow MPLS Separate MPLS Label Range Transport Label LBL A > LBL B L3VPN Label LBL B > LBL C L2VPN Label LBL C > LBL D OF Transport LBL D > LBL E OF L2VPN Label LBL E > LBL F Data Center OpenFlow L2/L3OpenFlow L2/L3
  • 14.
    Reducing Operational Complexity NSR and ISSU  How is it done using routing protocol within the device? Master Control Forwarding Standby Control Protocol Routing DB Sync so as to maintain persistence topology view across controller
  • 15.
    Reducing Operational Complexity NSR and ISSU Old Release Forwarding OF Client Openflow Controller cluster OF C OF C OF C OF C Forwarding OF Client OF C OF C OF C OF C New Release Forwarding OF Client Flow table sync Modify If needed OF C OF C OF C OF C
  • 16.
    Reducing Operational Complexity E-OAM – complexity grows exponentially as more devices are added to the E-OAM domain
  • 17.
    Reducing Operational Complexity OAM for both Ethernet and MPLS domain using Openflow Data Center Data Center OAM APP Openflow Controller Packet out Action: forward e1/1 Push label 1000,2000(TTL=1) Full probe message Flow table … Match MPLS TTL=1, for-controller … A B C D
  • 18.
    • How OpenflowMPLS work • How some of the difficult problem in service provider network can be addressed with Openflow • Network is no longer a standalone resources Implementi ng MPLS using Openflow