2.3.1. L2 Ethernet Switching¶
Following sections include summary graphs of VPP Phy-to-Phy performance with L2 Ethernet switching, including NDR throughput (zero packet loss) and PDR throughput (<0.5% packet loss). Performance 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.
2.3.1.1. NDR Throughput¶
VPP NDR 64B packet throughput in 1t1c setup (1thread, 1core) is presented in the graph below.
CSIT source code for the test cases used for above plots can be found in CSIT git repository:
tests/vpp/perf/l2/10ge2p1vic1227-eth-l2bdbasemaclrn-ndrpdrdisc.robot:| tc01-64B-1t1c-eth-l2bdbasemaclrn-ndrdisc
tests/vpp/perf/l2/10ge2p1x520-dot1ad-l2xcbase-ndrpdrdisc.robot:| tc01-64B-1t1c-dot1ad-l2xcbase-ndrdisc
tests/vpp/perf/l2/10ge2p1x520-dot1q-l2bdbasemaclrn-ndrpdrdisc.robot:| tc01-64B-1t1c-dot1q-l2bdbasemaclrn-ndrdisc
tests/vpp/perf/l2/10ge2p1x520-dot1q-l2xcbase-ndrpdrdisc.robot:| tc01-64B-1t1c-dot1q-l2xcbase-ndrdisc
tests/vpp/perf/l2/10ge2p1x520-eth-l2bdbasemaclrn-ndrpdrdisc.robot:| tc01-64B-1t1c-eth-l2bdbasemaclrn-ndrdisc
tests/vpp/perf/l2/10ge2p1x520-eth-l2bdscale100kmaclrn-ndrpdrdisc.robot:| tc01-64B-1t1c-eth-l2bdscale100kmaclrn-ndrdisc
tests/vpp/perf/l2/10ge2p1x520-eth-l2bdscale10kmaclrn-ndrpdrdisc.robot:| tc01-64B-1t1c-eth-l2dbscale10kmaclrn-ndrdisc
tests/vpp/perf/l2/10ge2p1x520-eth-l2bdscale1mmaclrn-ndrpdrdisc.robot:| tc01-64B-1t1c-eth-l2bdscale1mmaclrn-ndrdisc
tests/vpp/perf/l2/10ge2p1x520-eth-l2xcbase-ndrpdrdisc.robot:| tc01-64B-1t1c-eth-l2xcbase-ndrdisc
tests/vpp/perf/l2/10ge2p1x710-eth-l2bdbasemaclrn-ndrpdrdisc.robot:| tc01-64B-1t1c-eth-l2bdbasemaclrn-ndrdisc
tests/vpp/perf/l2/40ge2p1vic1385-eth-l2bdbasemaclrn-ndrpdrdisc.robot:| tc01-64B-1t1c-eth-l2bdbasemaclrn-ndrdisc
tests/vpp/perf/l2/40ge2p1xl710-eth-l2bdbasemaclrn-ndrpdrdisc.robot:| tc01-64B-1t1c-eth-l2bdbasemaclrn-ndrdisc
tests/vpp/perf/l2/40ge2p1xl710-eth-l2xcbase-ndrpdrdisc.robot:| tc01-64B-1t1c-eth-l2xcbase-ndrdisc
Figure 1a. VPP 1thread 1core - NDR Throughput for Phy-to-Phy L2 Ethernet Switching (base).
Figure 1b. VPP 1thread 1core - NDR Throughput 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:
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-macip-iacl50sl-10kflows-ndrpdrdisc.robot:| tc01-64B-1t1c-eth-l2bdbasemaclrn-macip-iacl50sl-10kflows-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
VPP NDR 64B packet throughput in 2t2c setup (2thread, 2core) is presented in the graph below.
CSIT source code for the test cases used for above plots can be found in CSIT git repository:
tests/vpp/perf/l2/10ge2p1vic1227-eth-l2bdbasemaclrn-ndrpdrdisc.robot:| tc07-64B-2t2c-eth-l2bdbasemaclrn-ndrdisc
tests/vpp/perf/l2/10ge2p1x520-dot1ad-l2xcbase-ndrpdrdisc.robot:| tc07-64B-2t2c-dot1ad-l2xcbase-ndrdisc
tests/vpp/perf/l2/10ge2p1x520-dot1q-l2bdbasemaclrn-ndrpdrdisc.robot:| tc07-64B-2t2c-dot1q-l2bdbasemaclrn-ndrdisc
tests/vpp/perf/l2/10ge2p1x520-dot1q-l2xcbase-ndrpdrdisc.robot:| tc07-64B-2t2c-dot1q-l2xcbase-ndrdisc
tests/vpp/perf/l2/10ge2p1x520-eth-l2bdbasemaclrn-ndrpdrdisc.robot:| tc07-64B-2t2c-eth-l2bdbasemaclrn-ndrdisc
tests/vpp/perf/l2/10ge2p1x520-eth-l2bdscale100kmaclrn-ndrpdrdisc.robot:| tc07-64B-2t2c-eth-l2bdscale100kmaclrn-ndrdisc
tests/vpp/perf/l2/10ge2p1x520-eth-l2bdscale10kmaclrn-ndrpdrdisc.robot:| tc07-64B-2t2c-eth-l2dbscale10kmaclrn-ndrdisc
tests/vpp/perf/l2/10ge2p1x520-eth-l2bdscale1mmaclrn-ndrpdrdisc.robot:| tc07-64B-2t2c-eth-l2bdscale1mmaclrn-ndrdisc
tests/vpp/perf/l2/10ge2p1x520-eth-l2xcbase-ndrpdrdisc.robot:| tc07-64B-2t2c-eth-l2xcbase-ndrdisc
tests/vpp/perf/l2/10ge2p1x710-eth-l2bdbasemaclrn-ndrpdrdisc.robot:| tc07-64B-2t2c-eth-l2bdbasemaclrn-ndrdisc
tests/vpp/perf/l2/40ge2p1vic1385-eth-l2bdbasemaclrn-ndrpdrdisc.robot:| tc07-64B-2t2c-eth-l2bdbasemaclrn-ndrdisc
tests/vpp/perf/l2/40ge2p1xl710-eth-l2bdbasemaclrn-ndrpdrdisc.robot:| tc07-64B-2t2c-eth-l2bdbasemaclrn-ndrdisc
tests/vpp/perf/l2/40ge2p1xl710-eth-l2xcbase-ndrpdrdisc.robot:| tc07-64B-2t2c-eth-l2xcbase-ndrdisc
Figure 2a. VPP 2threads 2cores - NDR Throughput for Phy-to-Phy L2 Ethernet Switching (base).
Figure 2b. VPP 2threads 2cores - NDR Throughput 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:
10ge2p1x520-eth-l2bdbasemaclrn-iacl50sf-10kflows-ndrpdrdisc.robot:| tc03-64B-2t2c-eth-l2bdbasemaclrn-iacl50-stateful-flows10k-ndrdisc
10ge2p1x520-eth-l2bdbasemaclrn-iacl50sl-10kflows-ndrpdrdisc.robot:| tc03-64B-2t2c-eth-l2bdbasemaclrn-iacl50-stateless-flows10k-ndrdisc
10ge2p1x520-eth-l2bdbasemaclrn-macip-iacl50sl-10kflows-ndrpdrdisc.robot:| tc03-64B-2t2c-eth-l2bdbasemaclrn-macip-iacl50sl-10kflows-ndrdisc
10ge2p1x520-eth-l2bdbasemaclrn-oacl50sf-10kflows-ndrpdrdisc.robot:| tc03-64B-2t2c-eth-l2bdbasemaclrn-oacl50-stateful-flows10k-ndrdisc
10ge2p1x520-eth-l2bdbasemaclrn-oacl50sl-10kflows-ndrpdrdisc.robot:| tc03-64B-2t2c-eth-l2bdbasemaclrn-oacl50-stateless-flows10k-ndrdisc
2.3.1.2. PDR Throughput¶
VPP PDR 64B packet throughput in 1t1c setup (1thread, 1core) is presented in the graph below. PDR measured for 0.5% packet loss ratio.
CSIT source code for the test cases used for above plots can be found in CSIT git repository:
tests/vpp/perf/l2/10ge2p1vic1227-eth-l2bdbasemaclrn-ndrpdrdisc.robot:| tc02-64B-1t1c-eth-l2bdbasemaclrn-pdrdisc
tests/vpp/perf/l2/10ge2p1x520-dot1ad-l2xcbase-ndrpdrdisc.robot:| tc02-64B-1t1c-dot1ad-l2xcbase-pdrdisc
tests/vpp/perf/l2/10ge2p1x520-dot1q-l2bdbasemaclrn-ndrpdrdisc.robot:| tc02-64B-1t1c-dot1q-l2bdbasemaclrn-pdrdisc
tests/vpp/perf/l2/10ge2p1x520-dot1q-l2xcbase-ndrpdrdisc.robot:| tc02-64B-1t1c-dot1q-l2xcbase-pdrdisc
tests/vpp/perf/l2/10ge2p1x520-eth-l2bdbasemaclrn-ndrpdrdisc.robot:| tc02-64B-1t1c-eth-l2bdbasemaclrn-pdrdisc
tests/vpp/perf/l2/10ge2p1x520-eth-l2bdscale100kmaclrn-ndrpdrdisc.robot:| tc02-64B-1t1c-eth-l2bdscale100kmaclrn-pdrdisc
tests/vpp/perf/l2/10ge2p1x520-eth-l2bdscale10kmaclrn-ndrpdrdisc.robot:| tc02-64B-1t1c-eth-l2dbscale10kmaclrn-pdrdisc
tests/vpp/perf/l2/10ge2p1x520-eth-l2bdscale1mmaclrn-ndrpdrdisc.robot:| tc02-64B-1t1c-eth-l2bdscale1mmaclrn-pdrdisc
tests/vpp/perf/l2/10ge2p1x520-eth-l2xcbase-ndrpdrdisc.robot:| tc02-64B-1t1c-eth-l2xcbase-pdrdisc
tests/vpp/perf/l2/10ge2p1x710-eth-l2bdbasemaclrn-ndrpdrdisc.robot:| tc02-64B-1t1c-eth-l2bdbasemaclrn-pdrdisc
tests/vpp/perf/l2/40ge2p1vic1385-eth-l2bdbasemaclrn-ndrpdrdisc.robot:| tc02-64B-1t1c-eth-l2bdbasemaclrn-pdrdisc
Figure 3a. VPP 1thread 1core - PDR Throughput for Phy-to-Phy L2 Ethernet Switching (base).
Figure 3b. VPP 1thread 1core - PDR Throughput 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:
10ge2p1x520-eth-l2bdbasemaclrn-iacl50sf-10kflows-ndrpdrdisc.robot:| tc02-64B-1t1c-eth-l2bdbasemaclrn-iacl50-stateful-flows10k-pdrdisc
10ge2p1x520-eth-l2bdbasemaclrn-iacl50sl-10kflows-ndrpdrdisc.robot:| tc02-64B-1t1c-eth-l2bdbasemaclrn-iacl50-stateless-flows10k-pdrdisc
10ge2p1x520-eth-l2bdbasemaclrn-macip-iacl50sl-10kflows-ndrpdrdisc.robot:| tc02-64B-1t1c-eth-l2bdbasemaclrn-macip-iacl50sl-10kflows-pdrdisc
10ge2p1x520-eth-l2bdbasemaclrn-oacl50sf-10kflows-ndrpdrdisc.robot:| tc02-64B-1t1c-eth-l2bdbasemaclrn-oacl50-stateful-flows10k-pdrdisc
10ge2p1x520-eth-l2bdbasemaclrn-oacl50sl-10kflows-ndrpdrdisc.robot:| tc02-64B-1t1c-eth-l2bdbasemaclrn-oacl50-stateless-flows10k-pdrdisc
VPP PDR 64B packet throughput in 2t2c setup (2thread, 2core) is presented in the graph below. PDR measured for 0.5% packet loss ratio.
CSIT source code for the test cases used for above plots can be found in CSIT git repository:
tests/vpp/perf/l2/10ge2p1vic1227-eth-l2bdbasemaclrn-ndrpdrdisc.robot:| tc08-64B-2t2c-eth-l2bdbasemaclrn-pdrdisc
tests/vpp/perf/l2/10ge2p1x520-dot1ad-l2xcbase-ndrpdrdisc.robot:| tc08-64B-2t2c-dot1ad-l2xcbase-pdrdisc
tests/vpp/perf/l2/10ge2p1x520-dot1q-l2bdbasemaclrn-ndrpdrdisc.robot:| tc08-64B-2t2c-dot1q-l2bdbasemaclrn-pdrdisc
tests/vpp/perf/l2/10ge2p1x520-dot1q-l2xcbase-ndrpdrdisc.robot:| tc08-64B-2t2c-dot1q-l2xcbase-pdrdisc
tests/vpp/perf/l2/10ge2p1x520-eth-l2bdbasemaclrn-ndrpdrdisc.robot:| tc08-64B-2t2c-eth-l2bdbasemaclrn-pdrdisc
tests/vpp/perf/l2/10ge2p1x520-eth-l2bdscale100kmaclrn-ndrpdrdisc.robot:| tc08-64B-2t2c-eth-l2bdscale100kmaclrn-pdrdisc
tests/vpp/perf/l2/10ge2p1x520-eth-l2bdscale10kmaclrn-ndrpdrdisc.robot:| tc08-64B-2t2c-eth-l2dbscale10kmaclrn-pdrdisc
tests/vpp/perf/l2/10ge2p1x520-eth-l2bdscale1mmaclrn-ndrpdrdisc.robot:| tc08-64B-2t2c-eth-l2bdscale1mmaclrn-pdrdisc
tests/vpp/perf/l2/10ge2p1x520-eth-l2xcbase-ndrpdrdisc.robot:| tc08-64B-2t2c-eth-l2xcbase-pdrdisc
tests/vpp/perf/l2/10ge2p1x710-eth-l2bdbasemaclrn-ndrpdrdisc.robot:| tc08-64B-2t2c-eth-l2bdbasemaclrn-pdrdisc
tests/vpp/perf/l2/40ge2p1vic1385-eth-l2bdbasemaclrn-ndrpdrdisc.robot:| tc08-64B-2t2c-eth-l2bdbasemaclrn-pdrdisc
Figure 4a. VPP 2thread 2core - PDR Throughput for Phy-to-Phy L2 Ethernet Switching (base).
Figure 4b. VPP 2thread 2core - PDR Throughput for Phy-to-Phy L2 Ethernet Switching (feature).
10ge2p1x520-eth-l2bdbasemaclrn-iacl50sf-10kflows-ndrpdrdisc.robot:| tc04-64B-2t2c-eth-l2bdbasemaclrn-iacl50-stateful-flows10k-pdrdisc
10ge2p1x520-eth-l2bdbasemaclrn-iacl50sl-10kflows-ndrpdrdisc.robot:| tc04-64B-2t2c-eth-l2bdbasemaclrn-iacl50-stateless-flows10k-pdrdisc
10ge2p1x520-eth-l2bdbasemaclrn-macip-iacl50sl-10kflows-ndrpdrdisc.robot:| tc04-64B-2t2c-eth-l2bdbasemaclrn-macip-iacl50sl-10kflows-pdrdisc
10ge2p1x520-eth-l2bdbasemaclrn-oacl50sf-10kflows-ndrpdrdisc.robot:| tc04-64B-2t2c-eth-l2bdbasemaclrn-oacl50-stateful-flows10k-pdrdisc
10ge2p1x520-eth-l2bdbasemaclrn-oacl50sl-10kflows-ndrpdrdisc.robot:| tc04-64B-2t2c-eth-l2bdbasemaclrn-oacl50-stateless-flows10k-pdrdisc