9738a06c30a07e25ec0a59d2af658c69fbbeceff
[csit.git] / docs / report / vpp_performance_tests / packet_throughput_graphs / l2.rst
1 L2 Ethernet Switching
2 =====================
3
4 Following sections include summary graphs of VPP Phy-to-Phy performance
5 with L2 Ethernet switching, including NDR throughput (zero packet loss)
6 and PDR throughput (<0.5% packet loss). Performance is reported for VPP
7 running in multiple configurations of VPP worker thread(s), a.k.a. VPP
8 data plane thread(s), and their physical CPU core(s) placement.
9
10 NDR Throughput
11 ~~~~~~~~~~~~~~
12
13 VPP NDR 64B packet throughput in 1t1c setup (1thread, 1core) is presented
14 in the graph below.
15
16 .. raw:: html
17
18     <iframe width="700" height="1000" frameborder="0" scrolling="no" src="../../_static/vpp/64B-1t1c-l2-sel1-ndrdisc.html"></iframe>
19
20 .. raw:: latex
21
22     \begin{figure}[H]
23         \centering
24             \graphicspath{{../_build/_static/vpp/}}
25             \includegraphics[clip, trim=0cm 8cm 5cm 0cm, width=0.70\textwidth]{64B-1t1c-l2-sel1-ndrdisc}
26             \label{fig:64B-1t1c-l2-sel1-ndrdisc}
27     \end{figure}
28
29 CSIT source code for the test cases used for above plots can be found in CSIT
30 git repository:
31
32 .. only:: html
33
34    .. program-output:: cd ../../../../../ && set +x && grep -E "64B-1t1c-(eth|dot1q|dot1ad)-(l2xcbase|l2bdbasemaclrn|l2bdscale.*|l2dbscale.*)-(eth.*)*ndrdisc" tests/vpp/perf/l2/* && grep -E "64B-1t1c-(eth|dot1q|dot1ad)-(l2xcbase|l2bdbasemaclrn|l2bdscale.*)-(eth.*)*ndrdisc" tests/vpp/perf/container_memif/*
35       :shell:
36
37 .. only:: latex
38
39    .. code-block:: bash
40
41       $ grep -E "64B-1t1c-(eth|dot1q|dot1ad)-(l2xcbase|l2bdbasemaclrn|l2bdscale.*|l2dbscale.*)-(eth.*)*ndrdisc" tests/vpp/perf/l2/* && grep -E "64B-1t1c-(eth|dot1q|dot1ad)-(l2xcbase|l2bdbasemaclrn|l2bdscale.*)-(eth.*)*ndrdisc" tests/vpp/perf/container_memif/*
42
43 *Figure 1a. VPP 1thread 1core - NDR Throughput for Phy-to-Phy L2 Ethernet
44 Switching (base).*
45
46 .. raw:: html
47
48     <iframe width="700" height="1000" frameborder="0" scrolling="no" src="../../_static/vpp/64B-1t1c-l2-sel2-ndrdisc.html"></iframe>
49
50 .. raw:: latex
51
52     \begin{figure}[H]
53         \centering
54             \graphicspath{{../_build/_static/vpp/}}
55             \includegraphics[clip, trim=0cm 8cm 5cm 0cm, width=0.70\textwidth]{64B-1t1c-l2-sel2-ndrdisc}
56             \label{fig:64B-1t1c-l2-sel2-ndrdisc}
57     \end{figure}
58
59 *Figure 1b. VPP 1thread 1core - NDR Throughput for Phy-to-Phy L2 Ethernet
60 Switching (feature).*
61
62 CSIT source code for the test cases used for above plots can be found in CSIT
63 git repository:
64
65 .. only:: html
66
67    .. program-output:: cd ../../../../../ && set +x && cd tests/vpp/perf/l2 && grep -E "64B-1t1c-(eth|dot1q|dot1ad)-(l2xcbase|l2bdbasemaclrn).*-(iacl50(-state(ful|less)|sl)-(flows10k.*|10kflows.*)|oacl50-state(ful|less)-flows10k.*)-ndrdisc" *
68       :shell:
69
70 .. only:: latex
71
72    .. code-block:: bash
73
74       $ cd tests/vpp/perf/l2
75       $ grep -E "64B-1t1c-(eth|dot1q|dot1ad)-(l2xcbase|l2bdbasemaclrn).*-(iacl50(-state(ful|less)|sl)-(flows10k.*|10kflows.*)|oacl50-state(ful|less)-flows10k.*)-ndrdisc" *
76
77 VPP NDR 64B packet throughput in 2t2c setup (2thread, 2core) is presented
78 in the graph below.
79
80 .. raw:: html
81
82     <iframe width="700" height="1000" frameborder="0" scrolling="no" src="../../_static/vpp/64B-2t2c-l2-sel1-ndrdisc.html"></iframe>
83
84 .. raw:: latex
85
86     \begin{figure}[H]
87         \centering
88             \graphicspath{{../_build/_static/vpp/}}
89             \includegraphics[clip, trim=0cm 8cm 5cm 0cm, width=0.70\textwidth]{64B-2t2c-l2-sel1-ndrdisc}
90             \label{fig:64B-2t2c-l2-sel1-ndrdisc}
91     \end{figure}
92
93 CSIT source code for the test cases used for above plots can be found in CSIT
94 git repository:
95
96 .. only:: html
97
98    .. program-output:: cd ../../../../../ && set +x && grep -E "64B-2t2c-(eth|dot1q|dot1ad)-(l2xcbase|l2bdbasemaclrn|l2bdscale.*|l2dbscale.*)-(eth.*)*ndrdisc" tests/vpp/perf/l2/* && grep -E "64B-2t2c-(eth|dot1q|dot1ad)-(l2xcbase|l2bdbasemaclrn|l2bdscale.*)-(eth.*)*ndrdisc" tests/vpp/perf/container_memif/*
99       :shell:
100
101 .. only:: latex
102
103    .. code-block:: bash
104
105       $ grep -E "64B-2t2c-(eth|dot1q|dot1ad)-(l2xcbase|l2bdbasemaclrn|l2bdscale.*|l2dbscale.*)-(eth.*)*ndrdisc" tests/vpp/perf/l2/* && grep -E "64B-2t2c-(eth|dot1q|dot1ad)-(l2xcbase|l2bdbasemaclrn|l2bdscale.*)-(eth.*)*ndrdisc" tests/vpp/perf/container_memif/*
106
107 *Figure 2a. VPP 2threads 2cores - NDR Throughput for Phy-to-Phy L2 Ethernet
108 Switching (base).*
109
110 .. raw:: html
111
112     <iframe width="700" height="1000" frameborder="0" scrolling="no" src="../../_static/vpp/64B-2t2c-l2-sel2-ndrdisc.html"></iframe>
113
114 .. raw:: latex
115
116     \begin{figure}[H]
117         \centering
118             \graphicspath{{../_build/_static/vpp/}}
119             \includegraphics[clip, trim=0cm 8cm 5cm 0cm, width=0.70\textwidth]{64B-2t2c-l2-sel2-ndrdisc}
120             \label{fig:64B-2t2c-l2-sel2-ndrdisc}
121     \end{figure}
122
123 *Figure 2b. VPP 2threads 2cores - NDR Throughput for Phy-to-Phy L2 Ethernet
124 Switching (feature).*
125
126 CSIT source code for the test cases used for above plots can be found in CSIT
127 git repository:
128
129 .. only:: html
130
131    .. program-output:: cd ../../../../../ && set +x && cd tests/vpp/perf/l2 && grep -E "64B-2t2c-(eth|dot1q|dot1ad)-(l2xcbase|l2bdbasemaclrn).*-(iacl50(-state(ful|less)|sl)-(flows10k.*|10kflows.*)|oacl50-state(ful|less)-flows10k.*)-ndrdisc" *
132       :shell:
133
134 .. only:: latex
135
136    .. code-block:: bash
137
138       $ cd tests/vpp/perf/l2
139       $ grep -E "64B-2t2c-(eth|dot1q|dot1ad)-(l2xcbase|l2bdbasemaclrn).*-(iacl50(-state(ful|less)|sl)-(flows10k.*|10kflows.*)|oacl50-state(ful|less)-flows10k.*)-ndrdisc" *
140
141
142 PDR Throughput
143 ~~~~~~~~~~~~~~
144
145 VPP PDR 64B packet throughput in 1t1c setup (1thread, 1core) is presented
146 in the graph below. PDR measured for 0.5% packet loss ratio.
147
148 .. raw:: html
149
150     <iframe width="700" height="1000" frameborder="0" scrolling="no" src="../../_static/vpp/64B-1t1c-l2-sel1-pdrdisc.html"></iframe>
151
152 .. raw:: latex
153
154     \begin{figure}[H]
155         \centering
156             \graphicspath{{../_build/_static/vpp/}}
157             \includegraphics[clip, trim=0cm 8cm 5cm 0cm, width=0.70\textwidth]{64B-1t1c-l2-sel1-pdrdisc}
158             \label{fig:64B-1t1c-l2-sel1-pdrdisc}
159     \end{figure}
160
161 CSIT source code for the test cases used for above plots can be found in CSIT
162 git repository:
163
164 .. only:: html
165
166    .. program-output:: cd ../../../../../ && set +x && grep -E "64B-1t1c-(eth|dot1q|dot1ad)-(l2xcbase|l2bdbasemaclrn|l2bdscale.*|l2dbscale.*)-(eth.*)*ndrdisc" tests/vpp/perf/l2/* && grep -E "64B-1t1c-(eth|dot1q|dot1ad)-(l2xcbase|l2bdbasemaclrn|l2bdscale.*)-(eth.*)*pdrdisc" tests/vpp/perf/container_memif/*
167       :shell:
168
169 .. only:: latex
170
171    .. code-block:: bash
172
173       $ grep -E "64B-1t1c-(eth|dot1q|dot1ad)-(l2xcbase|l2bdbasemaclrn|l2bdscale.*|l2dbscale.*)-(eth.*)*ndrdisc" tests/vpp/perf/l2/* && grep -E "64B-1t1c-(eth|dot1q|dot1ad)-(l2xcbase|l2bdbasemaclrn|l2bdscale.*)-(eth.*)*pdrdisc" tests/vpp/perf/container_memif/*
174
175 *Figure 3a. VPP 1thread 1core - PDR Throughput for Phy-to-Phy L2 Ethernet
176 Switching (base).*
177
178 .. raw:: html
179
180     <iframe width="700" height="1000" frameborder="0" scrolling="no" src="../../_static/vpp/64B-1t1c-l2-sel2-pdrdisc.html"></iframe>
181
182 .. raw:: latex
183
184     \begin{figure}[H]
185         \centering
186             \graphicspath{{../_build/_static/vpp/}}
187             \includegraphics[clip, trim=0cm 8cm 5cm 0cm, width=0.70\textwidth]{64B-1t1c-l2-sel2-pdrdisc}
188             \label{fig:64B-1t1c-l2-sel2-pdrdisc}
189     \end{figure}
190
191 *Figure 3b. VPP 1thread 1core - PDR Throughput for Phy-to-Phy L2 Ethernet
192 Switching (feature).*
193
194 CSIT source code for the test cases used for above plots can be found in CSIT
195 git repository:
196
197 .. only:: html
198
199    .. program-output:: cd ../../../../../ && set +x && cd tests/vpp/perf/l2 && grep -E "64B-1t1c-(eth|dot1q|dot1ad)-(l2xcbase|l2bdbasemaclrn).*-(iacl50(-state(ful|less)|sl)-(flows10k.*|10kflows.*)|oacl50-state(ful|less)-flows10k.*)-pdrdisc" *
200       :shell:
201
202 .. only:: latex
203
204    .. code-block:: bash
205
206       $ cd tests/vpp/perf/l2
207       $ grep -E "64B-1t1c-(eth|dot1q|dot1ad)-(l2xcbase|l2bdbasemaclrn).*-(iacl50(-state(ful|less)|sl)-(flows10k.*|10kflows.*)|oacl50-state(ful|less)-flows10k.*)-pdrdisc" *
208
209 VPP PDR 64B packet throughput in 2t2c setup (2thread, 2core) is presented
210 in the graph below. PDR measured for 0.5% packet loss ratio.
211
212 .. raw:: html
213
214     <iframe width="700" height="1000" frameborder="0" scrolling="no" src="../../_static/vpp/64B-2t2c-l2-sel1-pdrdisc.html"></iframe>
215
216 .. raw:: latex
217
218     \begin{figure}[H]
219         \centering
220             \graphicspath{{../_build/_static/vpp/}}
221             \includegraphics[clip, trim=0cm 8cm 5cm 0cm, width=0.70\textwidth]{64B-2t2c-l2-sel1-pdrdisc}
222             \label{fig:64B-2t2c-l2-sel1-pdrdisc}
223     \end{figure}
224
225 CSIT source code for the test cases used for above plots can be found in CSIT
226 git repository:
227
228 .. only:: html
229
230    .. program-output:: cd ../../../../../ && set +x && grep -E "64B-2t2c-(eth|dot1q|dot1ad)-(l2xcbase|l2bdbasemaclrn|l2bdscale.*|l2dbscale.*)-(eth.*)*ndrdisc" tests/vpp/perf/l2/* && grep -E "64B-2t2c-(eth|dot1q|dot1ad)-(l2xcbase|l2bdbasemaclrn|l2bdscale.*)-(eth.*)*pdrdisc" tests/vpp/perf/container_memif/*
231       :shell:
232
233 .. only:: latex
234
235    .. code-block:: bash
236
237       $ grep -E "64B-2t2c-(eth|dot1q|dot1ad)-(l2xcbase|l2bdbasemaclrn|l2bdscale.*|l2dbscale.*)-(eth.*)*ndrdisc" tests/vpp/perf/l2/* && grep -E "64B-2t2c-(eth|dot1q|dot1ad)-(l2xcbase|l2bdbasemaclrn|l2bdscale.*)-(eth.*)*pdrdisc" tests/vpp/perf/container_memif/*
238
239 *Figure 4a. VPP 2thread 2core - PDR Throughput for Phy-to-Phy L2 Ethernet
240 Switching (base).*
241
242 .. raw:: html
243
244     <iframe width="700" height="1000" frameborder="0" scrolling="no" src="../../_static/vpp/64B-2t2c-l2-sel2-pdrdisc.html"></iframe>
245
246 .. raw:: latex
247
248     \begin{figure}[H]
249         \centering
250             \graphicspath{{../_build/_static/vpp/}}
251             \includegraphics[clip, trim=0cm 8cm 5cm 0cm, width=0.70\textwidth]{64B-2t2c-l2-sel2-pdrdisc}
252             \label{fig:64B-2t2c-l2-sel2-pdrdisc}
253     \end{figure}
254
255 *Figure 4b. VPP 2thread 2core - PDR Throughput for Phy-to-Phy L2 Ethernet
256 Switching (feature).*
257
258 .. only:: html
259
260    .. program-output:: cd ../../../../../ && set +x && cd tests/vpp/perf/l2 && grep -E "64B-2t2c-(eth|dot1q|dot1ad)-(l2xcbase|l2bdbasemaclrn).*-(iacl50(-state(ful|less)|sl)-(flows10k.*|10kflows.*)|oacl50-state(ful|less)-flows10k.*)-pdrdisc" *
261       :shell:
262
263 .. only:: latex
264
265    .. code-block:: bash
266
267       $ cd tests/vpp/perf/l2
268       $ grep -E "64B-2t2c-(eth|dot1q|dot1ad)-(l2xcbase|l2bdbasemaclrn).*-(iacl50(-state(ful|less)|sl)-(flows10k.*|10kflows.*)|oacl50-state(ful|less)-flows10k.*)-pdrdisc" *