1 L2 Ethernet Switching
\r
2 =====================
\r
4 Following sections provide a summary of VPP Phy-to-Phy L2 Ethernet switching
\r
5 performance illustrating NDR throughput (zero packet loss) and PDR throughput
\r
6 (<0.5% packet loss). Performance is reported for VPP running in multiple
\r
7 configurations of VPP worker thread(s), a.k.a. VPP data plane thread (s), and
\r
8 their physical CPU core(s) placement.
\r
10 Title of each graph is a regex (regular expression) matching all plotted
\r
11 test case throughput measurements.
\r
15 Data sources for reported test results: i) FD.io test executor jobs
\r
16 `csit-vpp-perf-1701-all
\r
17 <https://jenkins.fd.io/view/csit/job/csit-vpp-perf-1701-all/>`_ and
\r
18 `csit-vpp-perf-1701-long
\r
19 <https://jenkins.fd.io/view/csit/job/csit-vpp-perf-1701-long/>`_
\r
20 , ii) archived FD.io jobs test result output files
\r
21 `csit-vpp-perf-1701-all#job-number <https://nexus.fd.io/link>`_.
\r
26 VPP NDR Throughput - running in configuration of **one worker thread (1t) on
\r
27 one physical core (1c)** - is presented in the figure below.
\r
31 <iframe width="700" height="700" frameborder="0" scrolling="no" src="../../_static/vpp/64B-1t1c-l2-ndrdisc.html"></iframe>
\r
33 *Figure 1. VPP 1thread 1core - NDR Throughput for Phy-to-Phy L2 Ethernet
\r
36 CSIT test cases used to generate results presented above can be found in CSIT
\r
37 git repository by filtering with specified regex as follows:
\r
39 .. code-block:: bash
\r
42 $ grep -E "64B-1t1c-(eth|dot1q|dot1ad)-(l2xcbase|l2bdbasemaclrn)-ndrdisc" *
\r
44 10ge2p1vic1227-eth-l2bdbasemaclrn-ndrdisc.robot:| tc01-64B-1t1c-eth-l2bdbasemaclrn-ndrdisc
\r
45 10ge2p1x520-dot1ad-l2xcbase-ndrdisc.robot:| tc01-64B-1t1c-dot1ad-l2xcbase-ndrdisc
\r
46 10ge2p1x520-dot1q-l2xcbase-ndrdisc.robot:| tc01-64B-1t1c-dot1q-l2xcbase-ndrdisc
\r
47 10ge2p1x520-eth-l2bdbasemaclrn-ndrdisc.robot:| tc01-64B-1t1c-eth-l2bdbasemaclrn-ndrdisc
\r
48 10ge2p1x520-eth-l2xcbase-ndrdisc.robot:| tc01-64B-1t1c-eth-l2xcbase-ndrdisc
\r
49 10ge2p1x710-eth-l2bdbasemaclrn-ndrdisc.robot:| tc01-64B-1t1c-eth-l2bdbasemaclrn-ndrdisc
\r
50 40ge2p1vic1385-eth-l2bdbasemaclrn-ndrdisc.robot:| tc01-64B-1t1c-eth-l2bdbasemaclrn-ndrdisc
\r
51 40ge2p1xl710-eth-l2bdbasemaclrn-ndrdisc.robot:| tc01-64B-1t1c-eth-l2bdbasemaclrn-ndrdisc
\r
52 40ge2p1xl710-eth-l2xcbase-ndrdisc.robot:| tc01-64B-1t1c-eth-l2xcbase-ndrdisc
\r
54 VPP NDR Throughput - running in configuration of **two worker threads (2t) on two
\r
55 physical cores (2c)** - is presented in the figure below.
\r
59 <iframe width="700" height="700" frameborder="0" scrolling="no" src="../../_static/vpp/64B-2t2c-l2-ndrdisc.html"></iframe>
\r
61 *Figure 2. VPP 2threads 2cores - NDR Throughput for Phy-to-Phy L2 Ethernet
\r
64 CSIT test cases used to generate results presented above can be found in CSIT
\r
65 git repository by filtering with specified regex as follows:
\r
67 .. code-block:: bash
\r
70 $ grep -E "64B-2t2c-(eth|dot1q|dot1ad)-(l2xcbase|l2bdbasemaclrn)-ndrdisc" *
\r
72 10ge2p1vic1227-eth-l2bdbasemaclrn-ndrdisc.robot:| tc07-64B-2t2c-eth-l2bdbasemaclrn-ndrdisc
\r
73 10ge2p1x520-dot1ad-l2xcbase-ndrdisc.robot:| tc07-64B-2t2c-dot1ad-l2xcbase-ndrdisc
\r
74 10ge2p1x520-dot1q-l2xcbase-ndrdisc.robot:| tc07-64B-2t2c-dot1q-l2xcbase-ndrdisc
\r
75 10ge2p1x520-eth-l2bdbasemaclrn-ndrdisc.robot:| tc07-64B-2t2c-eth-l2bdbasemaclrn-ndrdisc
\r
76 10ge2p1x520-eth-l2xcbase-ndrdisc.robot:| tc07-64B-2t2c-eth-l2xcbase-ndrdisc
\r
77 10ge2p1x710-eth-l2bdbasemaclrn-ndrdisc.robot:| tc07-64B-2t2c-eth-l2bdbasemaclrn-ndrdisc
\r
78 40ge2p1vic1385-eth-l2bdbasemaclrn-ndrdisc.robot:| tc07-64B-2t2c-eth-l2bdbasemaclrn-ndrdisc
\r
79 40ge2p1xl710-eth-l2bdbasemaclrn-ndrdisc.robot:| tc07-64B-2t2c-eth-l2bdbasemaclrn-ndrdisc
\r
80 40ge2p1xl710-eth-l2xcbase-ndrdisc.robot:| tc07-64B-2t2c-eth-l2xcbase-ndrdisc
\r
82 VPP NDR Throughput - running in configuration of **four worker threads (4t) on
\r
83 four physical cores (4c)** - is presented in the figure below.
\r
87 <iframe width="700" height="700" frameborder="0" scrolling="no" src="../../_static/vpp/64B-4t4c-l2-ndrdisc.html"></iframe>
\r
89 *Figure 3. VPP 4threads 4cores - NDR Throughput for Phy-to-Phy L2 Ethernet
\r
92 CSIT test cases used to generate results presented above can be found in CSIT
\r
93 git repository by filtering with specified regex as follows:
\r
95 .. code-block:: bash
\r
98 $ grep -E "64B-4t4c-(eth|dot1q|dot1ad)-(l2xcbase|l2bdbasemaclrn)-ndrdisc" *
\r
100 10ge2p1vic1227-eth-l2bdbasemaclrn-ndrdisc.robot:| tc13-64B-4t4c-eth-l2bdbasemaclrn-ndrdisc
\r
101 10ge2p1x520-dot1ad-l2xcbase-ndrdisc.robot:| tc13-64B-4t4c-dot1ad-l2xcbase-ndrdisc
\r
102 10ge2p1x520-dot1q-l2xcbase-ndrdisc.robot:| tc13-64B-4t4c-dot1q-l2xcbase-ndrdisc
\r
103 10ge2p1x520-eth-l2bdbasemaclrn-ndrdisc.robot:| tc13-64B-4t4c-eth-l2bdbasemaclrn-ndrdisc
\r
104 10ge2p1x520-eth-l2xcbase-ndrdisc.robot:| tc13-64B-4t4c-eth-l2xcbase-ndrdisc
\r
105 10ge2p1x710-eth-l2bdbasemaclrn-ndrdisc.robot:| tc13-64B-4t4c-eth-l2bdbasemaclrn-ndrdisc
\r
106 40ge2p1vic1385-eth-l2bdbasemaclrn-ndrdisc.robot:| tc13-64B-4t4c-eth-l2bdbasemaclrn-ndrdisc
\r
107 40ge2p1xl710-eth-l2bdbasemaclrn-ndrdisc.robot:| tc13-64B-4t4c-eth-l2bdbasemaclrn-ndrdisc
\r
108 40ge2p1xl710-eth-l2xcbase-ndrdisc.robot:| tc13-64B-4t4c-eth-l2xcbase-ndrdisc
\r
113 VPP PDR Throughput - running in configuration of **one worker thread (1t) on one
\r
114 physical core (1c)** - is presented in the figure below. PDR at below 0.5% packet
\r
119 <iframe width="700" height="700" frameborder="0" scrolling="no" src="../../_static/vpp/64B-1t1c-l2-pdrdisc.html"></iframe>
\r
121 *Figure 4. VPP 1thread 1core - PDR Throughput for Phy-to-Phy L2 Ethernet
\r
124 CSIT test cases used to generate results presented above can be found in CSIT
\r
125 git repository by filtering with specified regex as follows:
\r
127 .. code-block:: bash
\r
130 $ grep -E "64B-1t1c-(eth|dot1q|dot1ad)-(l2xcbase|l2bdbasemaclrn)-pdrdisc" *
\r
132 10ge2p1vic1227-eth-l2bdbasemaclrn-ndrdisc.robot:| tc02-64B-1t1c-eth-l2bdbasemaclrn-pdrdisc
\r
133 10ge2p1x520-dot1ad-l2xcbase-ndrdisc.robot:| tc02-64B-1t1c-dot1ad-l2xcbase-pdrdisc
\r
134 10ge2p1x520-dot1q-l2xcbase-ndrdisc.robot:| tc02-64B-1t1c-dot1q-l2xcbase-pdrdisc
\r
135 10ge2p1x520-eth-l2bdbasemaclrn-ndrdisc.robot:| tc02-64B-1t1c-eth-l2bdbasemaclrn-pdrdisc
\r
136 10ge2p1x520-eth-l2xcbase-ndrdisc.robot:| tc02-64B-1t1c-eth-l2xcbase-pdrdisc
\r
137 10ge2p1x710-eth-l2bdbasemaclrn-ndrdisc.robot:| tc02-64B-1t1c-eth-l2bdbasemaclrn-pdrdisc
\r
138 40ge2p1vic1385-eth-l2bdbasemaclrn-ndrdisc.robot:| tc02-64B-1t1c-eth-l2bdbasemaclrn-pdrdisc
\r
140 VPP PDR Throughput - running in configuration of **two worker threads (2t) on
\r
141 two physical cores (2c)** - is presented in the figure below.
\r
145 <iframe width="700" height="700" frameborder="0" scrolling="no" src="../../_static/vpp/64B-2t2c-l2-pdrdisc.html"></iframe>
\r
147 *Figure 5. VPP 2thread 2core - PDR Throughput for Phy-to-Phy L2 Ethernet
\r
150 CSIT test cases used to generate results presented above can be found in CSIT
\r
151 git repository by filtering with specified regex as follows:
\r
153 .. code-block:: bash
\r
156 $ grep -E "64B-2t2c-(eth|dot1q|dot1ad)-(l2xcbase|l2bdbasemaclrn)-pdrdisc" *
\r
158 10ge2p1vic1227-eth-l2bdbasemaclrn-ndrdisc.robot:| tc08-64B-2t2c-eth-l2bdbasemaclrn-pdrdisc
\r
159 10ge2p1x520-dot1ad-l2xcbase-ndrdisc.robot:| tc08-64B-2t2c-dot1ad-l2xcbase-pdrdisc
\r
160 10ge2p1x520-dot1q-l2xcbase-ndrdisc.robot:| tc08-64B-2t2c-dot1q-l2xcbase-pdrdisc
\r
161 10ge2p1x520-eth-l2bdbasemaclrn-ndrdisc.robot:| tc08-64B-2t2c-eth-l2bdbasemaclrn-pdrdisc
\r
162 10ge2p1x520-eth-l2xcbase-ndrdisc.robot:| tc08-64B-2t2c-eth-l2xcbase-pdrdisc
\r
163 10ge2p1x710-eth-l2bdbasemaclrn-ndrdisc.robot:| tc08-64B-2t2c-eth-l2bdbasemaclrn-pdrdisc
\r
164 40ge2p1vic1385-eth-l2bdbasemaclrn-ndrdisc.robot:| tc08-64B-2t2c-eth-l2bdbasemaclrn-pdrdisc
\r
166 VPP PDR Throughput - running in configuration of **four worker threads (4t) on
\r
167 four physical cores (4c)** - is presented in the figure below.
\r
171 <iframe width="700" height="700" frameborder="0" scrolling="no" src="../../_static/vpp/64B-4t4c-l2-pdrdisc.html"></iframe>
\r
173 *Figure 6. VPP 4thread 4core - PDR Throughput for Phy-to-Phy L2 Ethernet
\r
176 CSIT test cases used to generate results presented above can be found in CSIT
\r
177 git repository by filtering with specified regex as follows:
\r
179 .. code-block:: bash
\r
182 $ grep -E "64B-4t4c-(eth|dot1q|dot1ad)-(l2xcbase|l2bdbasemaclrn)-pdrdisc" *
\r
184 10ge2p1vic1227-eth-l2bdbasemaclrn-ndrdisc.robot:| tc14-64B-4t4c-eth-l2bdbasemaclrn-pdrdisc
\r
185 10ge2p1x520-dot1ad-l2xcbase-ndrdisc.robot:| tc14-64B-4t4c-dot1ad-l2xcbase-pdrdisc
\r
186 10ge2p1x520-dot1q-l2xcbase-ndrdisc.robot:| tc14-64B-4t4c-dot1q-l2xcbase-pdrdisc
\r
187 10ge2p1x520-eth-l2bdbasemaclrn-ndrdisc.robot:| tc14-64B-4t4c-eth-l2bdbasemaclrn-pdrdisc
\r
188 10ge2p1x520-eth-l2xcbase-ndrdisc.robot:| tc14-64B-4t4c-eth-l2xcbase-pdrdisc
\r
189 10ge2p1x710-eth-l2bdbasemaclrn-ndrdisc.robot:| tc14-64B-4t4c-eth-l2bdbasemaclrn-pdrdisc
\r