L2 Ethernet Switching ===================== Following sections provide a summary of VPP Phy-to-Phy L2 Ethernet switching performance illustrating 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. Title of each graph is a regex (regular expression) matching all plotted test case throughput measurements. .. note:: Data sources for reported test results: i) FD.io test executor jobs `csit-vpp-perf-1701-all `_ and `csit-vpp-perf-1701-long `_ , ii) archived FD.io jobs test result `output files <../../_static/archive/>`_. NDR Throughput ~~~~~~~~~~~~~~ VPP NDR Throughput - running in configuration of **one worker thread (1t) on one physical core (1c)** - is presented in the figure below. .. raw:: html *Figure 1. VPP 1thread 1core - NDR Throughput for Phy-to-Phy L2 Ethernet Switching.* CSIT test cases used to generate results presented above can be found in CSIT git repository by filtering with specified regex as follows: .. code-block:: bash $ csit/tests/perf $ grep -E "64B-1t1c-(eth|dot1q|dot1ad)-(l2xcbase|l2bdbasemaclrn)-ndrdisc" * 10ge2p1vic1227-eth-l2bdbasemaclrn-ndrdisc.robot:| tc01-64B-1t1c-eth-l2bdbasemaclrn-ndrdisc 10ge2p1x520-dot1ad-l2xcbase-ndrdisc.robot:| tc01-64B-1t1c-dot1ad-l2xcbase-ndrdisc 10ge2p1x520-dot1q-l2xcbase-ndrdisc.robot:| tc01-64B-1t1c-dot1q-l2xcbase-ndrdisc 10ge2p1x520-eth-l2bdbasemaclrn-ndrdisc.robot:| tc01-64B-1t1c-eth-l2bdbasemaclrn-ndrdisc 10ge2p1x520-eth-l2xcbase-ndrdisc.robot:| tc01-64B-1t1c-eth-l2xcbase-ndrdisc 10ge2p1x710-eth-l2bdbasemaclrn-ndrdisc.robot:| tc01-64B-1t1c-eth-l2bdbasemaclrn-ndrdisc 40ge2p1vic1385-eth-l2bdbasemaclrn-ndrdisc.robot:| tc01-64B-1t1c-eth-l2bdbasemaclrn-ndrdisc 40ge2p1xl710-eth-l2bdbasemaclrn-ndrdisc.robot:| tc01-64B-1t1c-eth-l2bdbasemaclrn-ndrdisc 40ge2p1xl710-eth-l2xcbase-ndrdisc.robot:| tc01-64B-1t1c-eth-l2xcbase-ndrdisc VPP NDR Throughput - running in configuration of **two worker threads (2t) on two physical cores (2c)** - is presented in the figure below. .. raw:: html *Figure 2. VPP 2threads 2cores - NDR Throughput for Phy-to-Phy L2 Ethernet Switching.* CSIT test cases used to generate results presented above can be found in CSIT git repository by filtering with specified regex as follows: .. code-block:: bash $ csit/tests/perf $ grep -E "64B-2t2c-(eth|dot1q|dot1ad)-(l2xcbase|l2bdbasemaclrn)-ndrdisc" * 10ge2p1vic1227-eth-l2bdbasemaclrn-ndrdisc.robot:| tc07-64B-2t2c-eth-l2bdbasemaclrn-ndrdisc 10ge2p1x520-dot1ad-l2xcbase-ndrdisc.robot:| tc07-64B-2t2c-dot1ad-l2xcbase-ndrdisc 10ge2p1x520-dot1q-l2xcbase-ndrdisc.robot:| tc07-64B-2t2c-dot1q-l2xcbase-ndrdisc 10ge2p1x520-eth-l2bdbasemaclrn-ndrdisc.robot:| tc07-64B-2t2c-eth-l2bdbasemaclrn-ndrdisc 10ge2p1x520-eth-l2xcbase-ndrdisc.robot:| tc07-64B-2t2c-eth-l2xcbase-ndrdisc 10ge2p1x710-eth-l2bdbasemaclrn-ndrdisc.robot:| tc07-64B-2t2c-eth-l2bdbasemaclrn-ndrdisc 40ge2p1vic1385-eth-l2bdbasemaclrn-ndrdisc.robot:| tc07-64B-2t2c-eth-l2bdbasemaclrn-ndrdisc 40ge2p1xl710-eth-l2bdbasemaclrn-ndrdisc.robot:| tc07-64B-2t2c-eth-l2bdbasemaclrn-ndrdisc 40ge2p1xl710-eth-l2xcbase-ndrdisc.robot:| tc07-64B-2t2c-eth-l2xcbase-ndrdisc VPP NDR Throughput - running in configuration of **four worker threads (4t) on four physical cores (4c)** - is presented in the figure below. .. raw:: html *Figure 3. VPP 4threads 4cores - NDR Throughput for Phy-to-Phy L2 Ethernet Switching.* CSIT test cases used to generate results presented above can be found in CSIT git repository by filtering with specified regex as follows: .. code-block:: bash $ csit/tests/perf $ grep -E "64B-4t4c-(eth|dot1q|dot1ad)-(l2xcbase|l2bdbasemaclrn)-ndrdisc" * 10ge2p1vic1227-eth-l2bdbasemaclrn-ndrdisc.robot:| tc13-64B-4t4c-eth-l2bdbasemaclrn-ndrdisc 10ge2p1x520-dot1ad-l2xcbase-ndrdisc.robot:| tc13-64B-4t4c-dot1ad-l2xcbase-ndrdisc 10ge2p1x520-dot1q-l2xcbase-ndrdisc.robot:| tc13-64B-4t4c-dot1q-l2xcbase-ndrdisc 10ge2p1x520-eth-l2bdbasemaclrn-ndrdisc.robot:| tc13-64B-4t4c-eth-l2bdbasemaclrn-ndrdisc 10ge2p1x520-eth-l2xcbase-ndrdisc.robot:| tc13-64B-4t4c-eth-l2xcbase-ndrdisc 10ge2p1x710-eth-l2bdbasemaclrn-ndrdisc.robot:| tc13-64B-4t4c-eth-l2bdbasemaclrn-ndrdisc 40ge2p1vic1385-eth-l2bdbasemaclrn-ndrdisc.robot:| tc13-64B-4t4c-eth-l2bdbasemaclrn-ndrdisc 40ge2p1xl710-eth-l2bdbasemaclrn-ndrdisc.robot:| tc13-64B-4t4c-eth-l2bdbasemaclrn-ndrdisc 40ge2p1xl710-eth-l2xcbase-ndrdisc.robot:| tc13-64B-4t4c-eth-l2xcbase-ndrdisc PDR Throughput ~~~~~~~~~~~~~~ VPP PDR Throughput - running in configuration of **one worker thread (1t) on one physical core (1c)** - is presented in the figure below. PDR at below 0.5% packet loss ratio. .. raw:: html *Figure 4. VPP 1thread 1core - PDR Throughput for Phy-to-Phy L2 Ethernet Switching.* CSIT test cases used to generate results presented above can be found in CSIT git repository by filtering with specified regex as follows: .. code-block:: bash $ csit/tests/perf $ grep -E "64B-1t1c-(eth|dot1q|dot1ad)-(l2xcbase|l2bdbasemaclrn)-pdrdisc" * 10ge2p1vic1227-eth-l2bdbasemaclrn-ndrdisc.robot:| tc02-64B-1t1c-eth-l2bdbasemaclrn-pdrdisc 10ge2p1x520-dot1ad-l2xcbase-ndrdisc.robot:| tc02-64B-1t1c-dot1ad-l2xcbase-pdrdisc 10ge2p1x520-dot1q-l2xcbase-ndrdisc.robot:| tc02-64B-1t1c-dot1q-l2xcbase-pdrdisc 10ge2p1x520-eth-l2bdbasemaclrn-ndrdisc.robot:| tc02-64B-1t1c-eth-l2bdbasemaclrn-pdrdisc 10ge2p1x520-eth-l2xcbase-ndrdisc.robot:| tc02-64B-1t1c-eth-l2xcbase-pdrdisc 10ge2p1x710-eth-l2bdbasemaclrn-ndrdisc.robot:| tc02-64B-1t1c-eth-l2bdbasemaclrn-pdrdisc 40ge2p1vic1385-eth-l2bdbasemaclrn-ndrdisc.robot:| tc02-64B-1t1c-eth-l2bdbasemaclrn-pdrdisc VPP PDR Throughput - running in configuration of **two worker threads (2t) on two physical cores (2c)** - is presented in the figure below. .. raw:: html *Figure 5. VPP 2thread 2core - PDR Throughput for Phy-to-Phy L2 Ethernet Switching.* CSIT test cases used to generate results presented above can be found in CSIT git repository by filtering with specified regex as follows: .. code-block:: bash $ csit/tests/perf $ grep -E "64B-2t2c-(eth|dot1q|dot1ad)-(l2xcbase|l2bdbasemaclrn)-pdrdisc" * 10ge2p1vic1227-eth-l2bdbasemaclrn-ndrdisc.robot:| tc08-64B-2t2c-eth-l2bdbasemaclrn-pdrdisc 10ge2p1x520-dot1ad-l2xcbase-ndrdisc.robot:| tc08-64B-2t2c-dot1ad-l2xcbase-pdrdisc 10ge2p1x520-dot1q-l2xcbase-ndrdisc.robot:| tc08-64B-2t2c-dot1q-l2xcbase-pdrdisc 10ge2p1x520-eth-l2bdbasemaclrn-ndrdisc.robot:| tc08-64B-2t2c-eth-l2bdbasemaclrn-pdrdisc 10ge2p1x520-eth-l2xcbase-ndrdisc.robot:| tc08-64B-2t2c-eth-l2xcbase-pdrdisc 10ge2p1x710-eth-l2bdbasemaclrn-ndrdisc.robot:| tc08-64B-2t2c-eth-l2bdbasemaclrn-pdrdisc 40ge2p1vic1385-eth-l2bdbasemaclrn-ndrdisc.robot:| tc08-64B-2t2c-eth-l2bdbasemaclrn-pdrdisc VPP PDR Throughput - running in configuration of **four worker threads (4t) on four physical cores (4c)** - is presented in the figure below. .. raw:: html *Figure 6. VPP 4thread 4core - PDR Throughput for Phy-to-Phy L2 Ethernet Switching.* CSIT test cases used to generate results presented above can be found in CSIT git repository by filtering with specified regex as follows: .. code-block:: bash $ csit/tests/perf $ grep -E "64B-4t4c-(eth|dot1q|dot1ad)-(l2xcbase|l2bdbasemaclrn)-pdrdisc" * 10ge2p1vic1227-eth-l2bdbasemaclrn-ndrdisc.robot:| tc14-64B-4t4c-eth-l2bdbasemaclrn-pdrdisc 10ge2p1x520-dot1ad-l2xcbase-ndrdisc.robot:| tc14-64B-4t4c-dot1ad-l2xcbase-pdrdisc 10ge2p1x520-dot1q-l2xcbase-ndrdisc.robot:| tc14-64B-4t4c-dot1q-l2xcbase-pdrdisc 10ge2p1x520-eth-l2bdbasemaclrn-ndrdisc.robot:| tc14-64B-4t4c-eth-l2bdbasemaclrn-pdrdisc 10ge2p1x520-eth-l2xcbase-ndrdisc.robot:| tc14-64B-4t4c-eth-l2xcbase-pdrdisc 10ge2p1x710-eth-l2bdbasemaclrn-ndrdisc.robot:| tc14-64B-4t4c-eth-l2bdbasemaclrn-pdrdisc