2. 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
5. 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
6. 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
7. 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
8. 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
9. 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
10. 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?
11. 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
12. 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
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
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 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