2.4.1. L2 Ethernet SwitchingΒΆ

This section includes summary graphs of VPP Phy-to-Phy packet latency with L2 Ethernet switching measured at 50% of discovered NDR throughput rate. Latency is reported for VPP running in multiple configurations of VPP worker thread(s), a.k.a. VPP data plane thread(s), and their physical CPU core(s) placement.

VPP packet latency in 1t1c setup (1thread, 1core) is presented in the graph below.

Figure 1a. VPP 1thread 1core - packet latency for Phy-to-Phy L2 Ethernet Switching (base).

Figure 1b. VPP 1thread 1core - packet latency for Phy-to-Phy L2 Ethernet Switching (feature).

CSIT source code for the test cases used for above plots can be found in CSIT git repository:

+ cd tests/vpp/perf/l2
+ grep -E 64B-1t1c-(eth|dot1q|dot1ad)-(l2xcbase|l2bdbasemaclrn)-(iacl50-state(ful|less)-flows10k.*|oacl50-state(ful|less)-flows10k.*|eth.*)*ndrdisc 10ge2p1vic1227-eth-l2bdbasemaclrn-ndrpdrdisc.robot 10ge2p1x520-dot1ad-l2xcbase-ndrchk.robot 10ge2p1x520-dot1ad-l2xcbase-ndrpdrdisc.robot 10ge2p1x520-dot1q-l2xcbase-ndrchk.robot 10ge2p1x520-dot1q-l2xcbase-ndrpdrdisc.robot 10ge2p1x520-eth-l2bdbasemaclrn-iacl10sf-100flows-ndrpdrdisc.robot 10ge2p1x520-eth-l2bdbasemaclrn-iacl10sf-100kflows-ndrpdrdisc.robot 10ge2p1x520-eth-l2bdbasemaclrn-iacl10sf-10kflows-ndrpdrdisc.robot 10ge2p1x520-eth-l2bdbasemaclrn-iacl10sl-100flows-ndrpdrdisc.robot 10ge2p1x520-eth-l2bdbasemaclrn-iacl10sl-100kflows-ndrpdrdisc.robot 10ge2p1x520-eth-l2bdbasemaclrn-iacl10sl-10kflows-ndrpdrdisc.robot 10ge2p1x520-eth-l2bdbasemaclrn-iacl1sf-100flows-ndrpdrdisc.robot 10ge2p1x520-eth-l2bdbasemaclrn-iacl1sf-100kflows-ndrpdrdisc.robot 10ge2p1x520-eth-l2bdbasemaclrn-iacl1sf-10kflows-ndrpdrdisc.robot 10ge2p1x520-eth-l2bdbasemaclrn-iacl1sl-100flows-ndrpdrdisc.robot 10ge2p1x520-eth-l2bdbasemaclrn-iacl1sl-100kflows-ndrpdrdisc.robot 10ge2p1x520-eth-l2bdbasemaclrn-iacl1sl-10kflows-ndrpdrdisc.robot 10ge2p1x520-eth-l2bdbasemaclrn-iacl50sf-100flows-ndrpdrdisc.robot 10ge2p1x520-eth-l2bdbasemaclrn-iacl50sf-100kflows-ndrpdrdisc.robot 10ge2p1x520-eth-l2bdbasemaclrn-iacl50sf-10kflows-ndrpdrdisc.robot 10ge2p1x520-eth-l2bdbasemaclrn-iacl50sl-100flows-ndrpdrdisc.robot 10ge2p1x520-eth-l2bdbasemaclrn-iacl50sl-100kflows-ndrpdrdisc.robot 10ge2p1x520-eth-l2bdbasemaclrn-iacl50sl-10kflows-ndrpdrdisc.robot 10ge2p1x520-eth-l2bdbasemaclrn-ndrchk.robot 10ge2p1x520-eth-l2bdbasemaclrn-ndrpdrdisc.robot 10ge2p1x520-eth-l2bdbasemaclrn-oacl10sf-100flows-ndrpdrdisc.robot 10ge2p1x520-eth-l2bdbasemaclrn-oacl10sf-100kflows-ndrpdrdisc.robot 10ge2p1x520-eth-l2bdbasemaclrn-oacl10sf-10kflows-ndrpdrdisc.robot 10ge2p1x520-eth-l2bdbasemaclrn-oacl10sl-100flows-ndrpdrdisc.robot 10ge2p1x520-eth-l2bdbasemaclrn-oacl10sl-100kflows-ndrpdrdisc.robot 10ge2p1x520-eth-l2bdbasemaclrn-oacl10sl-10kflows-ndrpdrdisc.robot 10ge2p1x520-eth-l2bdbasemaclrn-oacl1sf-100flows-ndrpdrdisc.robot 10ge2p1x520-eth-l2bdbasemaclrn-oacl1sf-100kflows-ndrpdrdisc.robot 10ge2p1x520-eth-l2bdbasemaclrn-oacl1sf-10kflows-ndrpdrdisc.robot 10ge2p1x520-eth-l2bdbasemaclrn-oacl1sl-100flows-ndrpdrdisc.robot 10ge2p1x520-eth-l2bdbasemaclrn-oacl1sl-100kflows-ndrpdrdisc.robot 10ge2p1x520-eth-l2bdbasemaclrn-oacl1sl-10kflows-ndrpdrdisc.robot 10ge2p1x520-eth-l2bdbasemaclrn-oacl50sf-100flows-ndrpdrdisc.robot 10ge2p1x520-eth-l2bdbasemaclrn-oacl50sf-100kflows-ndrpdrdisc.robot 10ge2p1x520-eth-l2bdbasemaclrn-oacl50sf-10kflows-ndrpdrdisc.robot 10ge2p1x520-eth-l2bdbasemaclrn-oacl50sl-100flows-ndrpdrdisc.robot 10ge2p1x520-eth-l2bdbasemaclrn-oacl50sl-100kflows-ndrpdrdisc.robot 10ge2p1x520-eth-l2bdbasemaclrn-oacl50sl-10kflows-ndrpdrdisc.robot 10ge2p1x520-eth-l2bdbasemaclrn-pdrchk.robot 10ge2p1x520-eth-l2xcbase-eth-2memif-1lxc-ndrpdrdisc.robot 10ge2p1x520-eth-l2xcbase-ndrchk.robot 10ge2p1x520-eth-l2xcbase-ndrpdrdisc.robot 10ge2p1x520-eth-l2xcbase-pdrchk.robot 10ge2p1x710-eth-l2bdbasemaclrn-ndrpdrdisc.robot 40ge2p1vic1385-eth-l2bdbasemaclrn-ndrpdrdisc.robot 40ge2p1xl710-eth-l2bdbasemaclrn-ndrpdrdisc.robot 40ge2p1xl710-eth-l2xcbase-ndrpdrdisc.robot
10ge2p1vic1227-eth-l2bdbasemaclrn-ndrpdrdisc.robot:| tc01-64B-1t1c-eth-l2bdbasemaclrn-ndrdisc
10ge2p1x520-dot1ad-l2xcbase-ndrpdrdisc.robot:| tc01-64B-1t1c-dot1ad-l2xcbase-ndrdisc
10ge2p1x520-dot1q-l2xcbase-ndrpdrdisc.robot:| tc01-64B-1t1c-dot1q-l2xcbase-ndrdisc
10ge2p1x520-eth-l2bdbasemaclrn-iacl50sf-10kflows-ndrpdrdisc.robot:| tc01-64B-1t1c-eth-l2bdbasemaclrn-iacl50-stateful-flows10k-ndrdisc
10ge2p1x520-eth-l2bdbasemaclrn-iacl50sl-10kflows-ndrpdrdisc.robot:| tc01-64B-1t1c-eth-l2bdbasemaclrn-iacl50-stateless-flows10k-ndrdisc
10ge2p1x520-eth-l2bdbasemaclrn-ndrpdrdisc.robot:| tc01-64B-1t1c-eth-l2bdbasemaclrn-ndrdisc
10ge2p1x520-eth-l2bdbasemaclrn-oacl50sf-10kflows-ndrpdrdisc.robot:| tc01-64B-1t1c-eth-l2bdbasemaclrn-oacl50-stateful-flows10k-ndrdisc
10ge2p1x520-eth-l2bdbasemaclrn-oacl50sl-10kflows-ndrpdrdisc.robot:| tc01-64B-1t1c-eth-l2bdbasemaclrn-oacl50-stateless-flows10k-ndrdisc
10ge2p1x520-eth-l2xcbase-eth-2memif-1lxc-ndrpdrdisc.robot:| tc01-64B-1t1c-eth-l2xcbase-eth-2memif-1lxc-ndrdisc
10ge2p1x520-eth-l2xcbase-ndrpdrdisc.robot:| tc01-64B-1t1c-eth-l2xcbase-ndrdisc
10ge2p1x710-eth-l2bdbasemaclrn-ndrpdrdisc.robot:| tc01-64B-1t1c-eth-l2bdbasemaclrn-ndrdisc
40ge2p1vic1385-eth-l2bdbasemaclrn-ndrpdrdisc.robot:| tc01-64B-1t1c-eth-l2bdbasemaclrn-ndrdisc
40ge2p1xl710-eth-l2bdbasemaclrn-ndrpdrdisc.robot:| tc01-64B-1t1c-eth-l2bdbasemaclrn-ndrdisc
40ge2p1xl710-eth-l2xcbase-ndrpdrdisc.robot:| tc01-64B-1t1c-eth-l2xcbase-ndrdisc

VPP packet latency in 2t2c setup (2thread, 2core) is presented in the graph below.

Figure 2a. VPP 2threads 2cores - packet latency for Phy-to-Phy L2 Ethernet Switching (base).

Figure 2b. VPP 2threads 2cores - packet latency for Phy-to-Phy L2 Ethernet Switching (feature).

CSIT source code for the test cases used for above plots can be found in CSIT git repository:

+ cd tests/vpp/perf/l2
+ grep -E 64B-1t1c-(eth|dot1q|dot1ad)-(l2xcbase|l2bdbasemaclrn)-(iacl50-state(ful|less)-flows10k.*|oacl50-state(ful|less)-flows10k.*|eth.*)*ndrdisc 10ge2p1vic1227-eth-l2bdbasemaclrn-ndrpdrdisc.robot 10ge2p1x520-dot1ad-l2xcbase-ndrchk.robot 10ge2p1x520-dot1ad-l2xcbase-ndrpdrdisc.robot 10ge2p1x520-dot1q-l2xcbase-ndrchk.robot 10ge2p1x520-dot1q-l2xcbase-ndrpdrdisc.robot 10ge2p1x520-eth-l2bdbasemaclrn-iacl10sf-100flows-ndrpdrdisc.robot 10ge2p1x520-eth-l2bdbasemaclrn-iacl10sf-100kflows-ndrpdrdisc.robot 10ge2p1x520-eth-l2bdbasemaclrn-iacl10sf-10kflows-ndrpdrdisc.robot 10ge2p1x520-eth-l2bdbasemaclrn-iacl10sl-100flows-ndrpdrdisc.robot 10ge2p1x520-eth-l2bdbasemaclrn-iacl10sl-100kflows-ndrpdrdisc.robot 10ge2p1x520-eth-l2bdbasemaclrn-iacl10sl-10kflows-ndrpdrdisc.robot 10ge2p1x520-eth-l2bdbasemaclrn-iacl1sf-100flows-ndrpdrdisc.robot 10ge2p1x520-eth-l2bdbasemaclrn-iacl1sf-100kflows-ndrpdrdisc.robot 10ge2p1x520-eth-l2bdbasemaclrn-iacl1sf-10kflows-ndrpdrdisc.robot 10ge2p1x520-eth-l2bdbasemaclrn-iacl1sl-100flows-ndrpdrdisc.robot 10ge2p1x520-eth-l2bdbasemaclrn-iacl1sl-100kflows-ndrpdrdisc.robot 10ge2p1x520-eth-l2bdbasemaclrn-iacl1sl-10kflows-ndrpdrdisc.robot 10ge2p1x520-eth-l2bdbasemaclrn-iacl50sf-100flows-ndrpdrdisc.robot 10ge2p1x520-eth-l2bdbasemaclrn-iacl50sf-100kflows-ndrpdrdisc.robot 10ge2p1x520-eth-l2bdbasemaclrn-iacl50sf-10kflows-ndrpdrdisc.robot 10ge2p1x520-eth-l2bdbasemaclrn-iacl50sl-100flows-ndrpdrdisc.robot 10ge2p1x520-eth-l2bdbasemaclrn-iacl50sl-100kflows-ndrpdrdisc.robot 10ge2p1x520-eth-l2bdbasemaclrn-iacl50sl-10kflows-ndrpdrdisc.robot 10ge2p1x520-eth-l2bdbasemaclrn-ndrchk.robot 10ge2p1x520-eth-l2bdbasemaclrn-ndrpdrdisc.robot 10ge2p1x520-eth-l2bdbasemaclrn-oacl10sf-100flows-ndrpdrdisc.robot 10ge2p1x520-eth-l2bdbasemaclrn-oacl10sf-100kflows-ndrpdrdisc.robot 10ge2p1x520-eth-l2bdbasemaclrn-oacl10sf-10kflows-ndrpdrdisc.robot 10ge2p1x520-eth-l2bdbasemaclrn-oacl10sl-100flows-ndrpdrdisc.robot 10ge2p1x520-eth-l2bdbasemaclrn-oacl10sl-100kflows-ndrpdrdisc.robot 10ge2p1x520-eth-l2bdbasemaclrn-oacl10sl-10kflows-ndrpdrdisc.robot 10ge2p1x520-eth-l2bdbasemaclrn-oacl1sf-100flows-ndrpdrdisc.robot 10ge2p1x520-eth-l2bdbasemaclrn-oacl1sf-100kflows-ndrpdrdisc.robot 10ge2p1x520-eth-l2bdbasemaclrn-oacl1sf-10kflows-ndrpdrdisc.robot 10ge2p1x520-eth-l2bdbasemaclrn-oacl1sl-100flows-ndrpdrdisc.robot 10ge2p1x520-eth-l2bdbasemaclrn-oacl1sl-100kflows-ndrpdrdisc.robot 10ge2p1x520-eth-l2bdbasemaclrn-oacl1sl-10kflows-ndrpdrdisc.robot 10ge2p1x520-eth-l2bdbasemaclrn-oacl50sf-100flows-ndrpdrdisc.robot 10ge2p1x520-eth-l2bdbasemaclrn-oacl50sf-100kflows-ndrpdrdisc.robot 10ge2p1x520-eth-l2bdbasemaclrn-oacl50sf-10kflows-ndrpdrdisc.robot 10ge2p1x520-eth-l2bdbasemaclrn-oacl50sl-100flows-ndrpdrdisc.robot 10ge2p1x520-eth-l2bdbasemaclrn-oacl50sl-100kflows-ndrpdrdisc.robot 10ge2p1x520-eth-l2bdbasemaclrn-oacl50sl-10kflows-ndrpdrdisc.robot 10ge2p1x520-eth-l2bdbasemaclrn-pdrchk.robot 10ge2p1x520-eth-l2xcbase-eth-2memif-1lxc-ndrpdrdisc.robot 10ge2p1x520-eth-l2xcbase-ndrchk.robot 10ge2p1x520-eth-l2xcbase-ndrpdrdisc.robot 10ge2p1x520-eth-l2xcbase-pdrchk.robot 10ge2p1x710-eth-l2bdbasemaclrn-ndrpdrdisc.robot 40ge2p1vic1385-eth-l2bdbasemaclrn-ndrpdrdisc.robot 40ge2p1xl710-eth-l2bdbasemaclrn-ndrpdrdisc.robot 40ge2p1xl710-eth-l2xcbase-ndrpdrdisc.robot
10ge2p1vic1227-eth-l2bdbasemaclrn-ndrpdrdisc.robot:| tc01-64B-1t1c-eth-l2bdbasemaclrn-ndrdisc
10ge2p1x520-dot1ad-l2xcbase-ndrpdrdisc.robot:| tc01-64B-1t1c-dot1ad-l2xcbase-ndrdisc
10ge2p1x520-dot1q-l2xcbase-ndrpdrdisc.robot:| tc01-64B-1t1c-dot1q-l2xcbase-ndrdisc
10ge2p1x520-eth-l2bdbasemaclrn-iacl50sf-10kflows-ndrpdrdisc.robot:| tc01-64B-1t1c-eth-l2bdbasemaclrn-iacl50-stateful-flows10k-ndrdisc
10ge2p1x520-eth-l2bdbasemaclrn-iacl50sl-10kflows-ndrpdrdisc.robot:| tc01-64B-1t1c-eth-l2bdbasemaclrn-iacl50-stateless-flows10k-ndrdisc
10ge2p1x520-eth-l2bdbasemaclrn-ndrpdrdisc.robot:| tc01-64B-1t1c-eth-l2bdbasemaclrn-ndrdisc
10ge2p1x520-eth-l2bdbasemaclrn-oacl50sf-10kflows-ndrpdrdisc.robot:| tc01-64B-1t1c-eth-l2bdbasemaclrn-oacl50-stateful-flows10k-ndrdisc
10ge2p1x520-eth-l2bdbasemaclrn-oacl50sl-10kflows-ndrpdrdisc.robot:| tc01-64B-1t1c-eth-l2bdbasemaclrn-oacl50-stateless-flows10k-ndrdisc
10ge2p1x520-eth-l2xcbase-eth-2memif-1lxc-ndrpdrdisc.robot:| tc01-64B-1t1c-eth-l2xcbase-eth-2memif-1lxc-ndrdisc
10ge2p1x520-eth-l2xcbase-ndrpdrdisc.robot:| tc01-64B-1t1c-eth-l2xcbase-ndrdisc
10ge2p1x710-eth-l2bdbasemaclrn-ndrpdrdisc.robot:| tc01-64B-1t1c-eth-l2bdbasemaclrn-ndrdisc
40ge2p1vic1385-eth-l2bdbasemaclrn-ndrpdrdisc.robot:| tc01-64B-1t1c-eth-l2bdbasemaclrn-ndrdisc
40ge2p1xl710-eth-l2bdbasemaclrn-ndrpdrdisc.robot:| tc01-64B-1t1c-eth-l2bdbasemaclrn-ndrdisc
40ge2p1xl710-eth-l2xcbase-ndrpdrdisc.robot:| tc01-64B-1t1c-eth-l2xcbase-ndrdisc