CSIT/PerfTestPlan/SRv6

From fd.io
Jump to: navigation, search

End-to-End use-case: SRv6 L3VPN for IPv6 traffic

SRv6 L3VPN IPv6 traffic.png

In this example what we will do is on C1 create a SR Policy with only one SID list. This SID list will be <C2::, C4::6>. The SR policy will be using encapsulation (insertion is also available).

On C1 I will add an steering policy to steer all the L3 traffic destined to B::/112 via the BindingSID of the SR policy we just created before.

On C2 I will create one SR LocalSID with behavior End. (Endpoint)

On C4 I will create one SR LocalSID with behavior End.DX6 (Endpoint with Decapsulation and IPv6 cross-connect).

Note that this is a L3VPN for all traffic from A:: to B::. In this example the returning path is not shown. The user must create another SR policy at C4 with the appropriate SR LocalSIDs at the different nodes for the returning path.

CSIT tests

Behaviors to test:

Test 1: (C1) T.Encaps (Transit with Encapsulation in SR policy).

Input is IPv6 packet with no additional extension headers...i.e. ping to B::
Output is an IPv6 header, with an SRH containing two segments. Inner IPv6 header (received header) unmodified.

Test 2: (C2) End behavior (Endpoint behavior).

Input IPv6 packet with SR header. 
Output: IPv6 DA updated with the next active segment. Segment Left field in the SRH decremented.

Test 3: (C4) End.DX6 (Endpoint with decapsulation and IPv6 cross-connect).

Input: IPv6 packet with SRH with Segment Left = 0.
Output: Outer IPv6 header with the SRH removed. Inner IPv6 packet cross-connected to the configured interface.

(C3 is just a transit node doing plain IPv6 routing.)

Test 1: T.Encaps

TG-SUT1 (C1) – SUT2 – TG

SUT1 is doing the T.Encaps behavior.

SUT2 is doing plain IPv6 forwarding.

TG: sent packet with IPv6 header and payload. Receives a packet with IPv6,SRH,IPv6,Payload.

vpp# set sr encaps source addr C1::
vpp# sr policy add bsid C1::999:1 next C2:: next C4::6 encap
vpp# sr steer l3 B::/112 via sr policy bsid C1::999:1

This configuration can be verified with the CLI:

vpp# show sr pol
SR policies:
[0].-	BSID: c1::999:1
	Behavior: Encapsulation
	Type: Default
	FIB table: 0
	Segment Lists:
  	[0].- < c2::, c4::6 > weight: 1
-----------
vpp# show sr steering policies
SR steering policies:
Traffic		SR policy BSID
L3 b::/112	c1::999:1

Show run:

DBGvpp# show run
Time 42.6, average vectors/node 1.00, last 128 main loops 0.00 per node 0.00
  vector rates in 5.6506e1, out 5.6506e1, drop 4.6951e-2, punt 0.0000e0
             Name                 State         Calls          Vectors        Suspends         Clocks       Vectors/Call
GigabitEthernet0/4/0-output      active               2402            2404               0          2.70e3            1.00
GigabitEthernet0/4/0-tx          active               2402            2404               0          6.73e4            1.00
GigabitEthernet0/5/0-output      active                  2               2               0          3.06e3            1.00
GigabitEthernet0/5/0-tx          active                  2               2               0          5.20e4            1.00
GigabitEthernet0/7/0-output      active                  1               1               0          5.38e3            1.00
GigabitEthernet0/7/0-tx          active                  1               1               0          1.55e5            1.00
api-rx-from-ring                any wait                 0               0               2          1.33e4            0.00
cdp-input                        active                  1               1               0          1.89e4            1.00
cdp-process                     any wait                 0               0               8          1.23e4            0.00
dhcp-client-process             any wait                 0               0               1          8.08e3            0.00
dpdk-input                       polling          20613046            2407               0          1.55e7            0.00
dpdk-process                    any wait                 0               0              14          5.99e6            0.00
error-drop                       active                  2               2               0          1.73e4            1.00
ethernet-input                   active                  1               1               0          2.15e4            1.00
fib-walk                        any wait                 0               0           21237          3.27e3            0.00
gmon-process                    time wait                0               0               9          6.49e3            0.00
icmp6-neighbor-solicitation      active                  2               2               0          2.85e4            1.00
icmp6-router-advertisement       active                  1               1               0          2.24e4            1.00
icmp6-router-solicitation        active                  1               1               0          3.12e4            1.00
ikev2-manager-process           any wait                 0               0              43          1.04e4            0.00
interface-output                 active               2404            2406               0          3.72e3            1.00
ip6-icmp-input                   active                  3               3               0          9.71e3            1.00
ip6-icmp-neighbor-discovery-ev  any wait                 0               0              43          1.29e4            0.00
ip6-input                        active               2404            2406               0          7.25e3            1.00
ip6-load-balance                 active               4802            4806               0          2.30e3            1.00
ip6-local                        active                  3               3               0          6.51e3            1.00
ip6-lookup                       active               4804            4808               0          4.22e3            1.00
ip6-mfib-forward-lookup          active                  1               1               0          1.25e4            1.00
ip6-mfib-forward-rpf             active                  1               1               0          1.71e4            1.00
ip6-replicate                    active                  1               1               0          1.72e4            1.00
ip6-rewrite                      active               2401            2403               0          3.83e3            1.00
ip6-rewrite-mcast                active                  1               1               0          2.68e4            1.00
lisp-retry-service              any wait                 0               0              21          1.52e4            0.00
llc-input                        active                  1               1               0          6.58e3            1.00
snap-input                       active                  1               1               0          2.52e4            1.00
sr-pl-rewrite-encaps             active               2401            2403               0          4.95e3            1.00
unix-cli-144.254.198.56:61759    active                  0               0              66          5.06e5            0.00
unix-epoll-input                 polling          20613046               0               0          1.41e3            0.00
vpe-oam-process                 any wait                 0               0              20          9.42e3            0.00
vpe-route-resolver-process      any wait                 0               0               1          6.75e3            0.00

Test 2: End

TG-SUT1 (C2) – SUT2 – TG

SUT1 is doing the End behavior.

SUT2 is doing plain IPv6 forwarding.

TG: sent packet with IPv6, SRH(SL=n), IPv6, Payload. Receives a packet with IPv6(updated DA to next segment),SRH(SL=n-1)Pv6,Payload.

vpp# sr localsid address C2:: behavior end

This configuration can be verified with the CLI:

vpp# show sr localsid
SRv6 - My LocalSID Table:
=========================
	Address: 	c2::
	Behavior: 	End
	Good traffic: 	[0 packets : 0 bytes]
	Bad traffic:  	[0 packets : 0 bytes]
--------------------

Show run:

vpp# show run
Time 38.9, average vectors/node 1.00, last 128 main loops 0.00 per node 0.00
  vector rates in 6.5538e1, out 6.5512e1, drop 7.7103e-2, punt 0.0000e0
             Name                 State         Calls          Vectors        Suspends         Clocks       Vectors/Call
GigabitEthernet0/5/0-output      active                  2               2               0          2.11e3            1.00
GigabitEthernet0/5/0-tx          active                  2               2               0          7.51e4            1.00
GigabitEthernet0/6/0-output      active               2546            2546               0          8.79e2            1.00
GigabitEthernet0/6/0-tx          active               2546            2546               0          6.99e4            1.00
GigabitEthernet0/a/0-output      active                  1               1               0          1.61e3            1.00
GigabitEthernet0/a/0-tx          active                  1               1               0          1.67e5            1.00
api-rx-from-ring                any wait                 0               0               2          8.21e3            0.00
cdp-input                        active                  1               1               0          1.49e4            1.00
cdp-process                     any wait                 0               0              29          1.69e3            0.00
dhcp-client-process             any wait                 0               0               1          4.59e3            0.00
dpdk-input                       polling          62505649            2550               0          1.43e7            0.00
dpdk-process                    any wait                 0               0              13          9.73e6            0.00
error-drop                       active                  3               3               0          4.05e3            1.00
ethernet-input                   active                  1               1               0          5.77e3            1.00
fib-walk                        any wait                 0               0           39023          8.45e2            0.00 
gmon-process                    time wait                0               0               8          6.11e3            0.00
icmp6-neighbor-solicitation      active                  1               1               0          8.68e3            1.00
icmp6-router-advertisement       active                  2               2               0          3.80e3            1.00
icmp6-router-solicitation        active                  1               1               0          9.20e3            1.00
ikev2-manager-process           any wait                 0               0              39          5.79e3            0.00
interface-output                 active                  1               1               0          3.91e3            1.00
ip6-icmp-input                   active                  3               3               0          1.98e3            1.00
ip6-icmp-neighbor-discovery-ev  any wait                 0               0              39          6.85e3            0.00
ip6-input                        active               2549            2549               0          2.79e3            1.00
ip6-load-balance                 active               2546            2546               0          6.16e2            1.00
ip6-local                        active                  3               3               0          1.94e3            1.00
ip6-lookup                       active               5093            5093               0          1.07e3            1.00
ip6-mfib-forward-lookup          active                  2               2               0          3.42e3            1.00
ip6-mfib-forward-rpf             active                  2               2               0          3.81e3            1.00
ip6-replicate                    active                  2               2               0          2.92e3            1.00
ip6-rewrite                      active               2546            2546               0          8.49e2            1.00
ip6-rewrite-mcast                active                  1               1               0          3.58e3            1.00
lisp-retry-service              any wait                 0               0              20          7.52e3            0.00
llc-input                        active                  1               1               0          3.12e3            1.00
snap-input                       active                  1               1               0          9.84e3            1.00
sr-localsid                      active               2546            2546               0          8.92e2            1.00
unix-cli-144.254.198.56:61896    active                  0               0             102          2.75e5            0.00
unix-epoll-input                 polling          62505649               0               0          6.45e2            0.00
vpe-oam-process                 any wait                 0               0              20          5.41e3            0.00

Test 3: End.DX6

TG-SUT1 (C2) – SUT2 – TG

SUT1 is doing the End.DX6 behavior. (decapsulation with IPv6 cross-connect)

SUT2 is doing plain IPv6 forwarding.

TG: sent packet with IPv6, SRH(SL=0), IPv6, Payload. Receives a packet with IPv6,Payload.

vpp# sr localsid address C4::6 behavior end.dx6 GigabitEthernet0/5/0 B:C5::B
vpp# show sr localsid
SRv6 - My LocalSID Table:
=========================
	Address: 	c4::6
	Behavior: 	DX6 (Endpoint with decapsulation and IPv6 cross-connect)
	Iface:  	GigabitEthernet0/5/0
	Next hop: 	b:c5::b
	Good traffic: 	[6686 packets : 678832 bytes]
	Bad traffic:  	[0 packets : 0 bytes]
--------------------

Show run:

DBGvpp# show run
Time 32.5, average vectors/node 1.00, last 128 main loops 0.00 per node 0.00
  vector rates in 8.3034e1, out 8.3034e1, drop 0.0000e0, punt 0.0000e0
             Name                 State         Calls          Vectors        Suspends         Clocks       Vectors/Call
GigabitEthernet0/5/0-output      active               2695            2695               0          2.86e3            1.00
GigabitEthernet0/5/0-tx          active               2695            2695               0          9.41e4            1.00
api-rx-from-ring                any wait                 0               0               2          1.38e4            0.00
cdp-process                     any wait                 0               0               9          4.41e3            0.00
dhcp-client-process             any wait                 0               0               1          1.01e4            0.00
dpdk-input                       polling          32857948            2695               0          9.16e6            0.00
dpdk-process                    any wait                 0               0              11          3.41e6            0.00
fib-walk                        any wait                 0               0           32293          3.24e3            0.00
gmon-process                    time wait                0               0               6          9.53e3            0.00
ikev2-manager-process           any wait                 0               0              33          1.15e4            0.00
interface-output                 active               2695            2695               0          3.89e3            1.00
ip6-icmp-neighbor-discovery-ev  any wait                 0               0              32          1.19e4            0.00
ip6-input                        active               2695            2695               0          7.15e3            1.00
ip6-lookup                       active               2695            2695               0          6.77e3            1.00
ip6-rewrite                      active               2695            2695               0          4.31e3            1.00
lisp-retry-service              any wait                 0               0              16          1.66e4            0.00
sr-localsid-d                    active               2695            2695               0          4.57e3            1.00
unix-cli-144.254.198.56:61894    active                  0               0              96          3.45e5            0.00
unix-epoll-input                 polling          32857948               0               0          7.23e2            0.00
vpe-oam-process                 any wait                 0               0              16          9.72e3            0.00
vpe-route-resolver-process      any wait                 0               0               1          5.71e3            0.00