Segment Routing Tutorial
Steven Chiu
Winlab, NCTU CS
Agenda
• Background
• Multi-Protocol Label Switching (MPLS)
• Software-Defined Network (SDN)
• Segment Routing (SR)
• SR in ONOS
• Trellis Usecase
• 2x2 Leaf Spine Fabric
2
Background
Multi-Protocol Label Switching (MPLS)
Software-Defined Network (SDN)
3
Background
• In legacy network, MPLS with 1RSVP-TE is used to provide
• Traffic engineering (TE)
• Fast rerouting (FRR)
• Software-defined network (SDN) was proposed for centralized network
intelligence
Segment routing was introduced based on the two network technologies
41 Resource Reservation Protocol - Traffic Engineering
Multi-Protocol Label Switching (MPLS)
• Source Routing
• Label Switching
• Between layer 2 and layer 3
Layer 2 Header MPLS Header Layer 3 Header Layer 3 Payload
Label Exp S TTL
0 19 22 23 31
Label: Label Value
Exp: Experimental Use for QoS
S: Bottom of Stack
TTL: Time to Live
5
Terminology
• Label Edge Router (LER)
• Label Switching Router (LSR)
• Label Switching Path (LSP)
• Label Distribution Protocol (LDP)
6
How MPLS works?
ℎ1
ℎ2
7
Add labels1
MPLS lookup2 MPLS lookup3
MPLS & IP lookup4
Penultimate Hop Popping
• Egress LSR double lookup problem
• MPLS table lookup
• IP table lookup
Pop labels at penultimate nodes
• Only IP table Lookup at egress nodes
8
Software-Defined Network (SDN)
9
Underlying infrastructure is abstracted
for applications and network services
* Cited from https://www.opennetworking.org/sdn-definition/
Network control become directly
programmable
Network intelligence is (logically)
centralized with a global view of network
Segment Routing (SR)
10
What problems are we trying to solve?
• Two main control protocols for MPLS
• LDP for scaling and simplicity
• RSVP-TE for traffic engineering (TE) and fast rerouting (FRR)
• RSVP-TE is hard to deploy, manage and scale
11
Segment Routing (SR)
• A source routing mechanism support traffic engineering
• Without requiring mid-point state
• Addressed by IETF SPRING (Source Packet Routing In NetworkinG)
• 1RFC 8402
121 Ref. [1]
More Precise…
A source-routing architecture that seeks the right balance between
distributed intelligence and centralized optimization.
The application steers its packets through an ordered list of instructions and
realizes end-to-end policy without creating any per-flow state in the network.
13* Cited from http://www.segment-routing.net/
Implementation
• Two implementations on data plane
• MPLS (SR-MPLS)
• IPv6 (SRv6)
• Two types of 1IGP segment
• Prefix/Node
• Adjacency
141 Interior Gateway Protocol
IGP Prefix/Node Segment
• Global unique within a SR domain
• Typically multi-hop
• ECMP-aware shortest-path first (SPF) route to designated node
15
IGP Adjacency Segment
• Locally unique within a SR router
• Typically single-hop
16
Combining IGP Segments
17
A
F
C
B
E
D
24134 14006
14003
ℎ1
ℎ2
Packet
14006
24134
14003
Packet
14006
Packet
14006
24134
14003
Packet
14006
Packet
POP [14003, 24134]
POP [14006]
Packet
Prefix/Node Segment
Adjacency Segment
Comparison – MPLS
18
• Each node on the new path should update MPLS table
• Per-flow state
• Only the edge switch has to be updated
• Update added labels
Comparison – SR
19
SR in ONOS
20
1Network Programming API in ONOS
211 Ref. [4]
Topology Independent
Abstraction
Pipeline Independent
Abstraction
Control Protocol Independent
Abstraction
1SR in ONOS Architecture
22
OpenFlow NetconfP4Runtime ...more
OVS Arista Barefoot Cavium Mellanox Ciena Cisco Corsa
Fujitsu HP Huawei Juniper Lumentum Microsemi Polatis ...
FlowRule APITopology API FlowObjective API Intent API Packet API ...
Distributed core
State management, notifications, high-availability & scale-out
Northbound API
Device/protocol-agnostic
Java, REST, CLI, gRPC
Device driver
Allow device-specific variants of
standard protocols
Shared protocol libraries
AppsAppsApps
Control and configure the network
using a global topology view
and independently of the device-specific details
Segment
Routing
Take OpenFlow and
OvS for example
1 Ref. [4]
Trellis Usecase
2x2 Leaf Spine Fabric
23
Trellis Usecase (I)
• 2x2 leaf spine fabric
24
Spine Switch
Leaf Switch
1 Node segment ID (SID)
1
Trellis Usecase (II)
25
Dst B
1OF-DPA Pipeline (Simplified View)
1 Ref. [5] 26
L3 Unicast at Source Leaf
27
OF-DPA Pipeline – Source Leaf (I)
28
MPLS
Interface
Group
Ingress Port Table
Table ID Selector Treatment
0 (No traffic selector criteria for this flow) Transition: TABLE: 10 (VLAN Table)
29
OF-DPA Pipeline – Source Leaf (II)
30
MPLS
Interface
Group
VLAN Table
Table ID Selector Treatment
10
IN_PORT: 3 (Edge port)
VLAN_VID: None
VLAN_PUSH: vlan
VLAN_ID: 20 (vlan-untagged
configuration from users)
Transition: TABLE: 20 (Termination
MAC Table)
31
OF-DPA Pipeline – Source Leaf (III)
32
MPLS
Interface
Group
Termination MAC Table
Table ID Selector Treatment
20
IN_PORT: 3
ETH_DST: 00:00:00:00:01:80 (Current node
MAC)
ETH_TYPE: ipv4
VLAN_VID: 20
Transition: TABLE: 30 (Unicast
Routing Table)
33
OF-DPA Pipeline – Source Leaf (IV)
34
MPLS
Interface
Group
Unicast Routing Table
Table ID Selector Treatment
30
ETH_TYPE: ipv4
IPV4_DST: 10.6.2.0/24 (Destination IP subnet)
Def[GROUP:0x70000021] (Deferred)
Transition: TABLE: 60 (ACL Policy
Table)
35
OF-DPA Pipeline – Source Leaf (V)
36
MPLS
Interface
Group
ACL Policy Table
Table ID Selector Treatment
60 (No traffic selector criteria for this flow) NOACTION
37
OF-DPA Pipeline – Source Leaf (VI)
38
MPLS
Interface
Group
L3 ECMP Group
Group ID Type Bucket Action
0x70000021 Select
GROUP: 0x92000020 (MPLS Label Group)
GROUP: 0x9200002d (MPLS Label Group)
39
OF-DPA Pipeline – Source Leaf (VII)
40
MPLS
Interface
Group
MPLS Label Group
Group ID Type Bucket Action
0x92000020 Indirect
VLAN_POP
MPLS_PUSH: mpls_unicast
MPLS_LABEL: 202 (Destination node SID configuration from user)
GROUP: 0x9000001f (MPLS Interface Group)
VLAN_PUSH: vlan
VLAN_ID: 4095
41
OF-DPA Pipeline – Source Leaf (VIII)
42
MPLS
Interface
Group
MPLS Interface Group
Group ID Type Bucket Action
0x9000001f Indirect
ETH_DST: 00:00:00:00:03:80 (Next hop spine node MAC)
ETH_SRC: 00:00:00:00:01:80 (Current leaf node MAC)
VLAN_ID: 4094
GROUP: 0xffe0001 (L2 Interface Group)
VLAN_ID 4094 is served as internal default VLAN tag 43
OF-DPA Pipeline – Source Leaf (IX)
44
MPLS
Interface
Group
L2 Interface Group
Group ID Type Bucket Action
0xffe0001 Indirect
VLAN_POP
OUTPUT: 1 (Next hop output port)
45
L3 Unicast at Spine
46
OF-DPA Pipeline – Spine (I)
47
MPLS
Interface
Group
Ingress Port Table
Table ID Selector Treatment
0 (No traffic selector criteria for this flow) Transition: TABLE: 10 (VLAN Table)
48
OF-DPA Pipeline – Spine (II)
49
MPLS
Interface
Group
VLAN Table
Table ID Selector Treatment
10
IN_PORT: 1 (Leaf node connected port)
VLAN_VID: None
VLAN_PUSH: vlan
VLAN_ID: 4094
Transition: TABLE: 20 (Termination
MAC Table)
50
OF-DPA Pipeline – Spine (III)
51
MPLS
Interface
Group
Termination MAC Table
Table ID Selector Treatment
20
IN_PORT: 1
ETH_DST: 00:00:00:00:03:80 (Current node
MAC)
ETH_TYPE: mpls_unicast
VLAN_VID: 4094
Transition: TABLE: 23 (MPLS Table)
52
OF-DPA Pipeline – Spine (IV)
53
MPLS
Interface
Group
MPLS 0 Flow Table
Table ID Selector Treatment
23 (No traffic selector criteria for this flow)
Transition: TABLE: 24 (MPLS 1 Flow
Table)
54
OF-DPA Pipeline – Spine (V)
55
MPLS
Interface
Group
MPLS 1 Flow Table
Table ID Selector Treatment
24
ETH_TYPE: mpls_unicast
MPLS_LABEL: 202 (Destination node SID
configuration from user)
MPLS_BOS: true
Def[MPLS_POP:ipv4, DEC_TTL,
GROUP:0x7000001e] (Deferred)
Transition: TABLE: 60 (ACL Policy
Table)
56
OF-DPA Pipeline – Spine (VI)
57
MPLS
Interface
Group
ACL Policy Table
Table ID Selector Treatment
60 (No traffic selector criteria for this flow) NOACTION
58
OF-DPA Pipeline – Spine (VII)
59
MPLS
Interface
Group
L3 ECMP Group
Group ID Type Bucket Action
0x7000001e Select GROUP: 0x2000001c (MPLS Label Group)
60
OF-DPA Pipeline – Spine (VIII)
61
MPLS
Interface
Group
L3 Unicast Group
Group ID Type Bucket Action
0x2000001c Indirect
ETH_DST: 00:00:00:00:02:80 (Next hop leaf switch MAC)
ETH_SRC: 00:00:00:00:03:80 (Current spine switch MAC)
VLAN_ID: 4094
GROUP: 0xffe0002 (L2 Interface Group)
62
OF-DPA Pipeline – Spine (IX)
63
MPLS
Interface
Group
L2 Interface Group
Group ID Type Bucket Action
0xffe0002 Indirect
VLAN_POP
OUTPUT: 2 (Next hop output port)
64
L3 Unicast at Destination Leaf
65
OF-DPA Pipeline – Destination Leaf (I)
66
MPLS
Interface
Group
Ingress Port Table
Table ID Selector Treatment
0 (No traffic selector criteria for this flow) Transition: TABLE: 10 (VLAN Table)
67
OF-DPA Pipeline – Destination Leaf (II)
68
MPLS
Interface
Group
VLAN Table
Table ID Selector Treatment
10
IN_PORT: 1 (Spine node connected port)
VLAN_VID: None
VLAN_PUSH: vlan
VLAN_ID: 4094
Transition: TABLE: 20 (Termination
MAC Table)
69
OF-DPA Pipeline – Destination Leaf (III)
70
MPLS
Interface
Group
Termination MAC Table
Table ID Selector Treatment
20
IN_PORT: 1
ETH_DST: 00:00:00:00:02:80 (Current node
MAC)
ETH_TYPE: ipv4
VLAN_VID: 4094
Transition: TABLE: 30 (Unicast
Routing Table)
71
OF-DPA Pipeline – Destination Leaf (IV)
72
MPLS
Interface
Group
Unicast Routing Table
Table ID Selector Treatment
30
ETH_TYPE: ipv4
IPV4_DST: 10.6.2.1/32 (Destination IP)
Def[GROUP: 0x20000031] (Deferred)
Transition: TABLE: 60 (ACL Policy
Table)
73
OF-DPA Pipeline – Destination Leaf (V)
74
MPLS
Interface
Group
ACL Policy Table
Table ID Selector Treatment
60 (No traffic selector criteria for this flow) NOACTION
75
OF-DPA Pipeline – Destination Leaf (VI)
76
MPLS
Interface
Group
L3 Unicast Group
Group ID Type Bucket Action
0x20000031 Indirect
ETH_DST: 00:00:00:00:00:03 (Destination MAC)
ETH_SRC: 00:00:00:00:02:80 (Current leaf switch MAC)
VLAN_ID: 40
GROUP: 0x280003 (L2 Interface Group)
77
OF-DPA Pipeline – Destination Leaf (VII)
78
MPLS
Interface
Group
L2 Interface Group
Group ID Type Bucket Action
0x280003 Indirect
VLAN_POP
OUTPUT: 3 (Destination output port)
79
Thank You
80
Reference
[1] “Segment Routing Architecture.” IETF. [Online]. Available: rfc8402
[2] “Segment Routing: A Tutorial.” APNIC, 22 Feb. 2016. [Online]. Available:
https://www.slideshare.net/apnic/segment-routing-a-tutorial
[3] “Segment Routing with MPLS data plane.” IETF. [Online]. Available: draft-ietf-
spring-segment-routing-mpls-14
[4] “ONOS+P4 tutorial (master).” ONF. [Online]. Available: http://bit.ly/onos-p4-
tutorial-slides
[5] “Fabric Design Note.” OpenCORD Wiki. [Online]. Available:
https://wiki.opencord.org/display/CORD/Fabric+Design+Note
[6] “OpenFlow™ Data Plane Abstraction (OF-DPA): Abstract Switch Specification.”
Broadcom. [Online]. Available: https://docs.broadcom.com/docs/12378911
81

Segment routing tutorial

  • 1.
    Segment Routing Tutorial StevenChiu Winlab, NCTU CS
  • 2.
    Agenda • Background • Multi-ProtocolLabel Switching (MPLS) • Software-Defined Network (SDN) • Segment Routing (SR) • SR in ONOS • Trellis Usecase • 2x2 Leaf Spine Fabric 2
  • 3.
    Background Multi-Protocol Label Switching(MPLS) Software-Defined Network (SDN) 3
  • 4.
    Background • In legacynetwork, MPLS with 1RSVP-TE is used to provide • Traffic engineering (TE) • Fast rerouting (FRR) • Software-defined network (SDN) was proposed for centralized network intelligence Segment routing was introduced based on the two network technologies 41 Resource Reservation Protocol - Traffic Engineering
  • 5.
    Multi-Protocol Label Switching(MPLS) • Source Routing • Label Switching • Between layer 2 and layer 3 Layer 2 Header MPLS Header Layer 3 Header Layer 3 Payload Label Exp S TTL 0 19 22 23 31 Label: Label Value Exp: Experimental Use for QoS S: Bottom of Stack TTL: Time to Live 5
  • 6.
    Terminology • Label EdgeRouter (LER) • Label Switching Router (LSR) • Label Switching Path (LSP) • Label Distribution Protocol (LDP) 6
  • 7.
    How MPLS works? ℎ1 ℎ2 7 Addlabels1 MPLS lookup2 MPLS lookup3 MPLS & IP lookup4
  • 8.
    Penultimate Hop Popping •Egress LSR double lookup problem • MPLS table lookup • IP table lookup Pop labels at penultimate nodes • Only IP table Lookup at egress nodes 8
  • 9.
    Software-Defined Network (SDN) 9 Underlyinginfrastructure is abstracted for applications and network services * Cited from https://www.opennetworking.org/sdn-definition/ Network control become directly programmable Network intelligence is (logically) centralized with a global view of network
  • 10.
  • 11.
    What problems arewe trying to solve? • Two main control protocols for MPLS • LDP for scaling and simplicity • RSVP-TE for traffic engineering (TE) and fast rerouting (FRR) • RSVP-TE is hard to deploy, manage and scale 11
  • 12.
    Segment Routing (SR) •A source routing mechanism support traffic engineering • Without requiring mid-point state • Addressed by IETF SPRING (Source Packet Routing In NetworkinG) • 1RFC 8402 121 Ref. [1]
  • 13.
    More Precise… A source-routingarchitecture that seeks the right balance between distributed intelligence and centralized optimization. The application steers its packets through an ordered list of instructions and realizes end-to-end policy without creating any per-flow state in the network. 13* Cited from http://www.segment-routing.net/
  • 14.
    Implementation • Two implementationson data plane • MPLS (SR-MPLS) • IPv6 (SRv6) • Two types of 1IGP segment • Prefix/Node • Adjacency 141 Interior Gateway Protocol
  • 15.
    IGP Prefix/Node Segment •Global unique within a SR domain • Typically multi-hop • ECMP-aware shortest-path first (SPF) route to designated node 15
  • 16.
    IGP Adjacency Segment •Locally unique within a SR router • Typically single-hop 16
  • 17.
    Combining IGP Segments 17 A F C B E D 2413414006 14003 ℎ1 ℎ2 Packet 14006 24134 14003 Packet 14006 Packet 14006 24134 14003 Packet 14006 Packet POP [14003, 24134] POP [14006] Packet Prefix/Node Segment Adjacency Segment
  • 18.
    Comparison – MPLS 18 •Each node on the new path should update MPLS table • Per-flow state
  • 19.
    • Only theedge switch has to be updated • Update added labels Comparison – SR 19
  • 20.
  • 21.
    1Network Programming APIin ONOS 211 Ref. [4] Topology Independent Abstraction Pipeline Independent Abstraction Control Protocol Independent Abstraction
  • 22.
    1SR in ONOSArchitecture 22 OpenFlow NetconfP4Runtime ...more OVS Arista Barefoot Cavium Mellanox Ciena Cisco Corsa Fujitsu HP Huawei Juniper Lumentum Microsemi Polatis ... FlowRule APITopology API FlowObjective API Intent API Packet API ... Distributed core State management, notifications, high-availability & scale-out Northbound API Device/protocol-agnostic Java, REST, CLI, gRPC Device driver Allow device-specific variants of standard protocols Shared protocol libraries AppsAppsApps Control and configure the network using a global topology view and independently of the device-specific details Segment Routing Take OpenFlow and OvS for example 1 Ref. [4]
  • 23.
    Trellis Usecase 2x2 LeafSpine Fabric 23
  • 24.
    Trellis Usecase (I) •2x2 leaf spine fabric 24 Spine Switch Leaf Switch 1 Node segment ID (SID) 1
  • 25.
  • 26.
    1OF-DPA Pipeline (SimplifiedView) 1 Ref. [5] 26
  • 27.
    L3 Unicast atSource Leaf 27
  • 28.
    OF-DPA Pipeline –Source Leaf (I) 28 MPLS Interface Group
  • 29.
    Ingress Port Table TableID Selector Treatment 0 (No traffic selector criteria for this flow) Transition: TABLE: 10 (VLAN Table) 29
  • 30.
    OF-DPA Pipeline –Source Leaf (II) 30 MPLS Interface Group
  • 31.
    VLAN Table Table IDSelector Treatment 10 IN_PORT: 3 (Edge port) VLAN_VID: None VLAN_PUSH: vlan VLAN_ID: 20 (vlan-untagged configuration from users) Transition: TABLE: 20 (Termination MAC Table) 31
  • 32.
    OF-DPA Pipeline –Source Leaf (III) 32 MPLS Interface Group
  • 33.
    Termination MAC Table TableID Selector Treatment 20 IN_PORT: 3 ETH_DST: 00:00:00:00:01:80 (Current node MAC) ETH_TYPE: ipv4 VLAN_VID: 20 Transition: TABLE: 30 (Unicast Routing Table) 33
  • 34.
    OF-DPA Pipeline –Source Leaf (IV) 34 MPLS Interface Group
  • 35.
    Unicast Routing Table TableID Selector Treatment 30 ETH_TYPE: ipv4 IPV4_DST: 10.6.2.0/24 (Destination IP subnet) Def[GROUP:0x70000021] (Deferred) Transition: TABLE: 60 (ACL Policy Table) 35
  • 36.
    OF-DPA Pipeline –Source Leaf (V) 36 MPLS Interface Group
  • 37.
    ACL Policy Table TableID Selector Treatment 60 (No traffic selector criteria for this flow) NOACTION 37
  • 38.
    OF-DPA Pipeline –Source Leaf (VI) 38 MPLS Interface Group
  • 39.
    L3 ECMP Group GroupID Type Bucket Action 0x70000021 Select GROUP: 0x92000020 (MPLS Label Group) GROUP: 0x9200002d (MPLS Label Group) 39
  • 40.
    OF-DPA Pipeline –Source Leaf (VII) 40 MPLS Interface Group
  • 41.
    MPLS Label Group GroupID Type Bucket Action 0x92000020 Indirect VLAN_POP MPLS_PUSH: mpls_unicast MPLS_LABEL: 202 (Destination node SID configuration from user) GROUP: 0x9000001f (MPLS Interface Group) VLAN_PUSH: vlan VLAN_ID: 4095 41
  • 42.
    OF-DPA Pipeline –Source Leaf (VIII) 42 MPLS Interface Group
  • 43.
    MPLS Interface Group GroupID Type Bucket Action 0x9000001f Indirect ETH_DST: 00:00:00:00:03:80 (Next hop spine node MAC) ETH_SRC: 00:00:00:00:01:80 (Current leaf node MAC) VLAN_ID: 4094 GROUP: 0xffe0001 (L2 Interface Group) VLAN_ID 4094 is served as internal default VLAN tag 43
  • 44.
    OF-DPA Pipeline –Source Leaf (IX) 44 MPLS Interface Group
  • 45.
    L2 Interface Group GroupID Type Bucket Action 0xffe0001 Indirect VLAN_POP OUTPUT: 1 (Next hop output port) 45
  • 46.
    L3 Unicast atSpine 46
  • 47.
    OF-DPA Pipeline –Spine (I) 47 MPLS Interface Group
  • 48.
    Ingress Port Table TableID Selector Treatment 0 (No traffic selector criteria for this flow) Transition: TABLE: 10 (VLAN Table) 48
  • 49.
    OF-DPA Pipeline –Spine (II) 49 MPLS Interface Group
  • 50.
    VLAN Table Table IDSelector Treatment 10 IN_PORT: 1 (Leaf node connected port) VLAN_VID: None VLAN_PUSH: vlan VLAN_ID: 4094 Transition: TABLE: 20 (Termination MAC Table) 50
  • 51.
    OF-DPA Pipeline –Spine (III) 51 MPLS Interface Group
  • 52.
    Termination MAC Table TableID Selector Treatment 20 IN_PORT: 1 ETH_DST: 00:00:00:00:03:80 (Current node MAC) ETH_TYPE: mpls_unicast VLAN_VID: 4094 Transition: TABLE: 23 (MPLS Table) 52
  • 53.
    OF-DPA Pipeline –Spine (IV) 53 MPLS Interface Group
  • 54.
    MPLS 0 FlowTable Table ID Selector Treatment 23 (No traffic selector criteria for this flow) Transition: TABLE: 24 (MPLS 1 Flow Table) 54
  • 55.
    OF-DPA Pipeline –Spine (V) 55 MPLS Interface Group
  • 56.
    MPLS 1 FlowTable Table ID Selector Treatment 24 ETH_TYPE: mpls_unicast MPLS_LABEL: 202 (Destination node SID configuration from user) MPLS_BOS: true Def[MPLS_POP:ipv4, DEC_TTL, GROUP:0x7000001e] (Deferred) Transition: TABLE: 60 (ACL Policy Table) 56
  • 57.
    OF-DPA Pipeline –Spine (VI) 57 MPLS Interface Group
  • 58.
    ACL Policy Table TableID Selector Treatment 60 (No traffic selector criteria for this flow) NOACTION 58
  • 59.
    OF-DPA Pipeline –Spine (VII) 59 MPLS Interface Group
  • 60.
    L3 ECMP Group GroupID Type Bucket Action 0x7000001e Select GROUP: 0x2000001c (MPLS Label Group) 60
  • 61.
    OF-DPA Pipeline –Spine (VIII) 61 MPLS Interface Group
  • 62.
    L3 Unicast Group GroupID Type Bucket Action 0x2000001c Indirect ETH_DST: 00:00:00:00:02:80 (Next hop leaf switch MAC) ETH_SRC: 00:00:00:00:03:80 (Current spine switch MAC) VLAN_ID: 4094 GROUP: 0xffe0002 (L2 Interface Group) 62
  • 63.
    OF-DPA Pipeline –Spine (IX) 63 MPLS Interface Group
  • 64.
    L2 Interface Group GroupID Type Bucket Action 0xffe0002 Indirect VLAN_POP OUTPUT: 2 (Next hop output port) 64
  • 65.
    L3 Unicast atDestination Leaf 65
  • 66.
    OF-DPA Pipeline –Destination Leaf (I) 66 MPLS Interface Group
  • 67.
    Ingress Port Table TableID Selector Treatment 0 (No traffic selector criteria for this flow) Transition: TABLE: 10 (VLAN Table) 67
  • 68.
    OF-DPA Pipeline –Destination Leaf (II) 68 MPLS Interface Group
  • 69.
    VLAN Table Table IDSelector Treatment 10 IN_PORT: 1 (Spine node connected port) VLAN_VID: None VLAN_PUSH: vlan VLAN_ID: 4094 Transition: TABLE: 20 (Termination MAC Table) 69
  • 70.
    OF-DPA Pipeline –Destination Leaf (III) 70 MPLS Interface Group
  • 71.
    Termination MAC Table TableID Selector Treatment 20 IN_PORT: 1 ETH_DST: 00:00:00:00:02:80 (Current node MAC) ETH_TYPE: ipv4 VLAN_VID: 4094 Transition: TABLE: 30 (Unicast Routing Table) 71
  • 72.
    OF-DPA Pipeline –Destination Leaf (IV) 72 MPLS Interface Group
  • 73.
    Unicast Routing Table TableID Selector Treatment 30 ETH_TYPE: ipv4 IPV4_DST: 10.6.2.1/32 (Destination IP) Def[GROUP: 0x20000031] (Deferred) Transition: TABLE: 60 (ACL Policy Table) 73
  • 74.
    OF-DPA Pipeline –Destination Leaf (V) 74 MPLS Interface Group
  • 75.
    ACL Policy Table TableID Selector Treatment 60 (No traffic selector criteria for this flow) NOACTION 75
  • 76.
    OF-DPA Pipeline –Destination Leaf (VI) 76 MPLS Interface Group
  • 77.
    L3 Unicast Group GroupID Type Bucket Action 0x20000031 Indirect ETH_DST: 00:00:00:00:00:03 (Destination MAC) ETH_SRC: 00:00:00:00:02:80 (Current leaf switch MAC) VLAN_ID: 40 GROUP: 0x280003 (L2 Interface Group) 77
  • 78.
    OF-DPA Pipeline –Destination Leaf (VII) 78 MPLS Interface Group
  • 79.
    L2 Interface Group GroupID Type Bucket Action 0x280003 Indirect VLAN_POP OUTPUT: 3 (Destination output port) 79
  • 80.
  • 81.
    Reference [1] “Segment RoutingArchitecture.” IETF. [Online]. Available: rfc8402 [2] “Segment Routing: A Tutorial.” APNIC, 22 Feb. 2016. [Online]. Available: https://www.slideshare.net/apnic/segment-routing-a-tutorial [3] “Segment Routing with MPLS data plane.” IETF. [Online]. Available: draft-ietf- spring-segment-routing-mpls-14 [4] “ONOS+P4 tutorial (master).” ONF. [Online]. Available: http://bit.ly/onos-p4- tutorial-slides [5] “Fabric Design Note.” OpenCORD Wiki. [Online]. Available: https://wiki.opencord.org/display/CORD/Fabric+Design+Note [6] “OpenFlow™ Data Plane Abstraction (OF-DPA): Abstract Switch Specification.” Broadcom. [Online]. Available: https://docs.broadcom.com/docs/12378911 81