Service Function Chaining
=========================
-OpenDaylight Service Function Chaining (SFC) Overiew
-----------------------------------------------------
+OpenDaylight Service Function Chaining (SFC) Overview
+-----------------------------------------------------
OpenDaylight Service Function Chaining (SFC) provides the ability to
define an ordered list of a network services (e.g. firewalls, load
assuming VLAN is used for the SFF-SF, and the other where the RSP
ingress tunnel is NSH GRE (UDP port 4789):
-+-------------+--------------------------------------+--------------------------+
-| Priority | Match | Action |
-+=============+======================================+==========================+
-| 256 | EtherType==0x8847 (MPLS unicast) | Goto Table 2 |
-+-------------+--------------------------------------+--------------------------+
-| 256 | EtherType==0x8100 (VLAN) | Goto Table 2 |
-+-------------+--------------------------------------+--------------------------+
-| 256 | EtherType==0x0800,udp,tp\_dst==4789 | Goto Table 2 |
-| | (IP v4) | |
-+-------------+--------------------------------------+--------------------------+
-| 5 | Match Any | Drop |
-+-------------+--------------------------------------+--------------------------+
++----------+-------------------------------------+--------------+
+| Priority | Match | Action |
++==========+=====================================+==============+
+| 256 | EtherType==0x8847 (MPLS unicast) | Goto Table 2 |
++----------+-------------------------------------+--------------+
+| 256 | EtherType==0x8100 (VLAN) | Goto Table 2 |
++----------+-------------------------------------+--------------+
+| 256 | EtherType==0x0800,udp,tp\_dst==4789 | Goto Table 2 |
+| | (IP v4) | |
++----------+-------------------------------------+--------------+
+| 5 | Match Any | Drop |
++----------+-------------------------------------+--------------+
Table: Table Transport Ingress
- The RSP Path 2 (symmetric downlink path) uses MPLS label 101 for
ingress and 100 for egress
-+--------------------------+--------------------------+--------------------------+
-| Priority | Match | Action |
-+==========================+==========================+==========================+
-| 256 | MPLS Label==100 | RSP Path=1, Pop MPLS, |
-| | | Goto Table 4 |
-+--------------------------+--------------------------+--------------------------+
-| 256 | MPLS Label==101 | RSP Path=2, Pop MPLS, |
-| | | Goto Table 4 |
-+--------------------------+--------------------------+--------------------------+
-| 256 | VLAN ID==1000, IP | RSP Path=1, Pop VLAN, |
-| | DSCP==1 | Goto Table 4 |
-+--------------------------+--------------------------+--------------------------+
-| 256 | VLAN ID==1000, IP | RSP Path=2, Pop VLAN, |
-| | DSCP==2 | Goto Table 4 |
-+--------------------------+--------------------------+--------------------------+
-| 5 | Match Any | Goto Table 3 |
-+--------------------------+--------------------------+--------------------------+
++----------+-------------------+-----------------------+
+| Priority | Match | Action |
++==========+===================+=======================+
+| 256 | MPLS Label==100 | RSP Path=1, Pop MPLS, |
+| | | Goto Table 4 |
++----------+-------------------+-----------------------+
+| 256 | MPLS Label==101 | RSP Path=2, Pop MPLS, |
+| | | Goto Table 4 |
++----------+-------------------+-----------------------+
+| 256 | VLAN ID==1000, IP | RSP Path=1, Pop VLAN, |
+| | DSCP==1 | Goto Table 4 |
++----------+-------------------+-----------------------+
+| 256 | VLAN ID==1000, IP | RSP Path=2, Pop VLAN, |
+| | DSCP==2 | Goto Table 4 |
++----------+-------------------+-----------------------+
+| 5 | Match Any | Goto Table 3 |
++----------+-------------------+-----------------------+
Table: Table Path Mapper
NSH paths. RSP Path 1 ingress packets come from external to SFC, for
which we don’t have the source MAC address (MacSrc).
-+------------+--------------------------------+--------------------------------+
-| Priority | Match | Action |
-+============+================================+================================+
-| 256 | RSP Path==1, MacSrc==SF1 | MacDst=SFF2, Goto Table 10 |
-+------------+--------------------------------+--------------------------------+
-| 256 | RSP Path==2, MacSrc==SF1 | Goto Table 10 |
-+------------+--------------------------------+--------------------------------+
-| 256 | RSP Path==2, MacSrc==SFF2 | MacDst=SF1, Goto Table 10 |
-+------------+--------------------------------+--------------------------------+
-| 246 | RSP Path==1 | MacDst=SF1, Goto Table 10 |
-+------------+--------------------------------+--------------------------------+
-| 256 | nsp=3,nsi=255 (SFF Ingress RSP | load:0xa000002→NXM\_NX\_TUN\_I |
-| | 3) | PV4\_DST[], |
-| | | Goto Table 10 |
-+------------+--------------------------------+--------------------------------+
-| 256 | nsp=3,nsi=254 (SFF Ingress | load:0xa00000a→NXM\_NX\_TUN\_I |
-| | from SF, RSP 3) | PV4\_DST[], |
-| | | Goto Table 10 |
-+------------+--------------------------------+--------------------------------+
-| 256 | nsp=4,nsi=254 (SFF1 Ingress | load:0xa00000a→NXM\_NX\_TUN\_I |
-| | from SFF2) | PV4\_DST[], |
-| | | Goto Table 10 |
-+------------+--------------------------------+--------------------------------+
-| 5 | Match Any | Drop |
-+------------+--------------------------------+--------------------------------+
++----------+--------------------------------+--------------------------------+
+| Priority | Match | Action |
++==========+================================+================================+
+| 256 | RSP Path==1, MacSrc==SF1 | MacDst=SFF2, Goto Table 10 |
++----------+--------------------------------+--------------------------------+
+| 256 | RSP Path==2, MacSrc==SF1 | Goto Table 10 |
++----------+--------------------------------+--------------------------------+
+| 256 | RSP Path==2, MacSrc==SFF2 | MacDst=SF1, Goto Table 10 |
++----------+--------------------------------+--------------------------------+
+| 246 | RSP Path==1 | MacDst=SF1, Goto Table 10 |
++----------+--------------------------------+--------------------------------+
+| 256 | nsp=3,nsi=255 (SFF Ingress RSP | load:0xa000002→NXM\_NX\_TUN\_I |
+| | 3) | PV4\_DST[], |
+| | | Goto Table 10 |
++----------+--------------------------------+--------------------------------+
+| 256 | nsp=3,nsi=254 (SFF Ingress | load:0xa00000a→NXM\_NX\_TUN\_I |
+| | from SF, RSP 3) | PV4\_DST[], |
+| | | Goto Table 10 |
++----------+--------------------------------+--------------------------------+
+| 256 | nsp=4,nsi=254 (SFF1 Ingress | load:0xa00000a→NXM\_NX\_TUN\_I |
+| | from SFF2) | PV4\_DST[], |
+| | | Goto Table 10 |
++----------+--------------------------------+--------------------------------+
+| 5 | Match Any | Drop |
++----------+--------------------------------+--------------------------------+
Table: Table Next Hop
paths. Since it is assumed that switches used for NSH will only have one
VXLANport, the NSH packets are just sent back where they came from.
-+------------+--------------------------------+--------------------------------+
-| Priority | Match | Action |
-+============+================================+================================+
-| 256 | RSP Path==1, MacDst==SF1 | Push VLAN ID 1000, Port=SF1 |
-+------------+--------------------------------+--------------------------------+
-| 256 | RSP Path==1, MacDst==SFF2 | Push MPLS Label 101, Port=SFF2 |
-+------------+--------------------------------+--------------------------------+
-| 256 | RSP Path==2, MacDst==SF1 | Push VLAN ID 1000, Port=SF1 |
-+------------+--------------------------------+--------------------------------+
-| 246 | RSP Path==2 | Push MPLS Label 100, |
-| | | Port=Ingress |
-+------------+--------------------------------+--------------------------------+
-| 256 | nsp=3,nsi=255 (SFF Ingress RSP | IN\_PORT |
-| | 3) | |
-+------------+--------------------------------+--------------------------------+
-| 256 | nsp=3,nsi=254 (SFF Ingress | IN\_PORT |
-| | from SF, RSP 3) | |
-+------------+--------------------------------+--------------------------------+
-| 256 | nsp=4,nsi=254 (SFF1 Ingress | IN\_PORT |
-| | from SFF2) | |
-+------------+--------------------------------+--------------------------------+
-| 5 | Match Any | Drop |
-+------------+--------------------------------+--------------------------------+
++----------+--------------------------------+--------------------------------+
+| Priority | Match | Action |
++==========+================================+================================+
+| 256 | RSP Path==1, MacDst==SF1 | Push VLAN ID 1000, Port=SF1 |
++----------+--------------------------------+--------------------------------+
+| 256 | RSP Path==1, MacDst==SFF2 | Push MPLS Label 101, Port=SFF2 |
++----------+--------------------------------+--------------------------------+
+| 256 | RSP Path==2, MacDst==SF1 | Push VLAN ID 1000, Port=SF1 |
++----------+--------------------------------+--------------------------------+
+| 246 | RSP Path==2 | Push MPLS Label 100, |
+| | | Port=Ingress |
++----------+--------------------------------+--------------------------------+
+| 256 | nsp=3,nsi=255 (SFF Ingress RSP | IN\_PORT |
+| | 3) | |
++----------+--------------------------------+--------------------------------+
+| 256 | nsp=3,nsi=254 (SFF Ingress | IN\_PORT |
+| | from SF, RSP 3) | |
++----------+--------------------------------+--------------------------------+
+| 256 | nsp=4,nsi=254 (SFF1 Ingress | IN\_PORT |
+| | from SFF2) | |
++----------+--------------------------------+--------------------------------+
+| 5 | Match Any | Drop |
++----------+--------------------------------+--------------------------------+
Table: Table Transport Egress