CSIT/PerfTestPlan/SRv6
Contents
End-to-End use-case: SRv6 L3VPN for IPv6 traffic
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