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