CSIT-509: Add perf tests for vlan + l2 + vhost
[csit.git] / tests / perf / 10ge2p1x520-dot1q-l2xcbase-eth-2vhost-1vm-ndrdisc.robot
1 # Copyright (c) 2017 Cisco and/or its affiliates.
2 # Licensed under the Apache License, Version 2.0 (the "License");
3 # you may not use this file except in compliance with the License.
4 # You may obtain a copy of the License at:
5 #
6 #     http://www.apache.org/licenses/LICENSE-2.0
7 #
8 # Unless required by applicable law or agreed to in writing, software
9 # distributed under the License is distributed on an "AS IS" BASIS,
10 # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
11 # See the License for the specific language governing permissions and
12 # limitations under the License.
13
14 *** Settings ***
15 | Resource | resources/libraries/robot/performance.robot
16 | Library | resources.libraries.python.NodePath
17 | Force Tags | 3_NODE_SINGLE_LINK_TOPO | PERFTEST | HW_ENV | NDRPDRDISC
18 | ...        | NIC_Intel-X520-DA2 | DOT1Q | L2XCFWD | BASE | VHOST | VM
19 | Suite Setup | 3-node Performance Suite Setup with DUT's NIC model
20 | ... | L2 | Intel-X520-DA2
21 | Suite Teardown | 3-node Performance Suite Teardown
22 | Test Setup | Setup all DUTs before test
23 | Test Teardown | Run Keywords
24 | ...           | Run Keyword If Test Failed
25 | ...           | Traffic should pass with no loss | 10
26 | ...           | ${min_rate}pps | ${framesize} | 3-node-bridge
27 | ...           | fail_on_loss=${False}
28 | ...           | AND | Show Vpp Vhost On All DUTs
29 | ...           | AND |  Remove startup configuration of VPP from all DUTs
30 | ...           | AND | Guest VM with dpdk-testpmd Teardown | ${dut1}
31 | ...                 | ${dut1_vm_refs}
32 | ...           | AND | Guest VM with dpdk-testpmd Teardown | ${dut2}
33 | ...                 | ${dut2_vm_refs}
34 | Documentation | *RFC2544: Pkt throughput L2XC test cases with vhost*
35 | ...
36 | ... | *[Top] Network Topologies:* TG-DUT1-DUT2-TG 3-node circular topology
37 | ... | with single links between nodes.
38 | ... | *[Enc] Packet Encapsulations:* Eth-IPv4 for L2 cross connect. 802.1q
39 | ... | tagging is applied on link between DUT1 and DUT2.
40 | ... | *[Cfg] DUT configuration:* DUT1 and DUT2 are configured with L2 cross-
41 | ... | connect. Qemu Guest is connected to VPP via vhost-user interfaces.
42 | ... | Guest is running DPDK testpmd interconnecting vhost-user interfaces
43 | ... | using 5 cores pinned to cpus 5-9 and 2048M memory. Testpmd is using
44 | ... | socket-mem=1024M (512x2M hugepages), 5 cores (1 main core and 4 cores
45 | ... | dedicated for io), forwarding mode is set to io, rxd/txd=256,
46 | ... | burst=64. DUT1, DUT2 are tested with 2p10GE NIC X520 Niantic by Intel.
47 | ... | *[Ver] TG verification:* TG finds and reports throughput NDR (Non Drop
48 | ... | Rate) with zero packet loss tolerance or throughput PDR (Partial Drop
49 | ... | Rate) with non-zero packet loss tolerance (LT) expressed in percentage
50 | ... | of packets transmitted. NDR and PDR are discovered for different
51 | ... | Ethernet L2 frame sizes using either binary search or linear search
52 | ... | algorithms with configured starting rate and final step that determines
53 | ... | throughput measurement resolution. Test packets are generated by TG on
54 | ... | links to DUTs. TG traffic profile contains two L3 flow-groups
55 | ... | (flow-group per direction, 253 flows per flow-group) with all packets
56 | ... | containing Ethernet header, IPv4 header with IP protocol=61 and static
57 | ... | payload. MAC addresses are matching MAC addresses of the TG node
58 | ... | interfaces.
59 | ... | *[Ref] Applicable standard specifications:* RFC2544.
60
61 *** Variables ***
62 | ${subid}= | 10
63 | ${tag_rewrite}= | pop-1
64 | ${vlan_overhead}= | ${4}
65 # Socket names
66 | ${sock1}= | /tmp/sock-1
67 | ${sock2}= | /tmp/sock-2
68 # X520-DA2 bandwidth limit
69 | ${s_limit}= | ${10000000000}
70
71 *** Test Cases ***
72 | tc01-64B-1t1c-eth-l2xcbase-eth-2vhost-1vm-ndrdisc
73 | | [Documentation]
74 | | ... | [Cfg] DUT runs L2XC switching config with 1 thread, 1 phy core,\
75 | | ... | 1 receive queue per NIC port.
76 | | ... | [Ver] Find NDR for 64 Byte frames using binary search start at 10GE\
77 | | ... | linerate, step 10kpps.
78 | | ...
79 | | [Tags] | 1T1C | STHREAD | NDRDISC
80 | | ...
81 | | ${framesize}= | Set Variable | ${64}
82 | | ${min_rate}= | Set Variable | ${10000}
83 | | ${max_rate}= | Calculate pps | ${s_limit} | ${framesize + ${vlan_overhead}}
84 | | ${binary_min}= | Set Variable | ${min_rate}
85 | | ${binary_max}= | Set Variable | ${max_rate}
86 | | ${threshold}= | Set Variable | ${min_rate}
87 | | ${dut1_vm_refs}= | Create Dictionary
88 | | ${dut2_vm_refs}= | Create Dictionary
89 | | Given Add '1' worker threads and rxqueues '1' in 3-node single-link topo
90 | | And Add PCI devices to DUTs from 3-node single link topology
91 | | And Add No Multi Seg to all DUTs
92 | | And Apply startup configuration on all VPP DUTs
93 | | When L2 xconnect with Vhost-User and VLAN initialized in a 3-node circular topology
94 | | ... | ${sock1} | ${sock2} | ${subid} | ${tag_rewrite}
95 | | ${vm1}= | And Guest VM with dpdk-testpmd connected via vhost-user is setup
96 | | ... | ${dut1} | ${sock1} | ${sock2} | DUT1_VM1
97 | | Set To Dictionary | ${dut1_vm_refs} | DUT1_VM1 | ${vm1}
98 | | ${vm2}= | And Guest VM with dpdk-testpmd connected via vhost-user is setup
99 | | ... | ${dut2} | ${sock1} | ${sock2} | DUT2_VM1
100 | | Set To Dictionary | ${dut2_vm_refs} | DUT2_VM1 | ${vm2}
101 | | And Setup scheduler policy for VPP on all DUTs
102 | | Then Find NDR using binary search and pps | ${framesize} | ${binary_min}
103 | | ... | ${binary_max} | 3-node-bridge | ${min_rate} | ${max_rate}
104 | | ... | ${threshold}
105
106 | tc02-64B-1t1c-eth-l2xcbase-eth-2vhost-1vm-pdrdisc
107 | | [Documentation]
108 | | ... | [Cfg] DUT runs L2BD switching config with 1 thread, 1 phy core,\
109 | | ... | 1 receive queue per NIC port.
110 | | ... | [Ver] Find PDR for 64 Byte frames using binary search start at 10GE\
111 | | ... | linerate, step 10kpps, LT=0.5%.
112 | | ...
113 | | [Tags] | 1T1C | STHREAD | PDRDISC | SKIP_PATCH
114 | | ...
115 | | ${framesize}= | Set Variable | ${64}
116 | | ${min_rate}= | Set Variable | ${10000}
117 | | ${max_rate}= | Calculate pps | ${s_limit} | ${framesize + ${vlan_overhead}}
118 | | ${binary_min}= | Set Variable | ${min_rate}
119 | | ${binary_max}= | Set Variable | ${max_rate}
120 | | ${threshold}= | Set Variable | ${min_rate}
121 | | ${dut1_vm_refs}= | Create Dictionary
122 | | ${dut2_vm_refs}= | Create Dictionary
123 | | Given Add '1' worker threads and rxqueues '1' in 3-node single-link topo
124 | | And Add PCI devices to DUTs from 3-node single link topology
125 | | And Add No Multi Seg to all DUTs
126 | | And Apply startup configuration on all VPP DUTs
127 | | When L2 xconnect with Vhost-User and VLAN initialized in a 3-node circular topology
128 | | ... | ${sock1} | ${sock2} | ${subid} | ${tag_rewrite}
129 | | ${vm1}= | And Guest VM with dpdk-testpmd connected via vhost-user is setup
130 | | ... | ${dut1} | ${sock1} | ${sock2} | DUT1_VM1
131 | | Set To Dictionary | ${dut1_vm_refs} | DUT1_VM1 | ${vm1}
132 | | ${vm2}= | And Guest VM with dpdk-testpmd connected via vhost-user is setup
133 | | ... | ${dut2} | ${sock1} | ${sock2} | DUT2_VM1
134 | | Set To Dictionary | ${dut2_vm_refs} | DUT2_VM1 | ${vm2}
135 | | And Setup scheduler policy for VPP on all DUTs
136 | | Then Find PDR using binary search and pps | ${framesize} | ${binary_min}
137 | | ... | ${binary_max} | 3-node-bridge | ${min_rate} | ${max_rate}
138 | | ... | ${threshold} | ${glob_loss_acceptance} | ${glob_loss_acceptance_type}
139
140 | tc03-1518B-1t1c-eth-l2xcbase-eth-2vhost-1vm-ndrdisc
141 | | [Documentation]
142 | | ... | [Cfg] DUT runs L2XC switching config with 1 thread, 1 phy core,\
143 | | ... | 1 receive queue per NIC port.
144 | | ... | [Ver] Find NDR for 1518 Byte frames using binary search start at 10GE\
145 | | ... | linerate, step 10kpps.
146 | | ...
147 | | [Tags] | 1T1C | STHREAD | NDRDISC
148 | | ...
149 | | ${framesize}= | Set Variable | ${1518}
150 | | ${min_rate}= | Set Variable | ${10000}
151 | | ${max_rate}= | Calculate pps | ${s_limit} | ${framesize + ${vlan_overhead}}
152 | | ${binary_min}= | Set Variable | ${min_rate}
153 | | ${binary_max}= | Set Variable | ${max_rate}
154 | | ${threshold}= | Set Variable | ${min_rate}
155 | | ${dut1_vm_refs}= | Create Dictionary
156 | | ${dut2_vm_refs}= | Create Dictionary
157 | | Given Add '1' worker threads and rxqueues '1' in 3-node single-link topo
158 | | And Add PCI devices to DUTs from 3-node single link topology
159 | | And Add No Multi Seg to all DUTs
160 | | And Apply startup configuration on all VPP DUTs
161 | | When L2 xconnect with Vhost-User and VLAN initialized in a 3-node circular topology
162 | | ... | ${sock1} | ${sock2} | ${subid} | ${tag_rewrite}
163 | | ${vm1}= | And Guest VM with dpdk-testpmd connected via vhost-user is setup
164 | | ... | ${dut1} | ${sock1} | ${sock2} | DUT1_VM1
165 | | Set To Dictionary | ${dut1_vm_refs} | DUT1_VM1 | ${vm1}
166 | | ${vm2}= | And Guest VM with dpdk-testpmd connected via vhost-user is setup
167 | | ... | ${dut2} | ${sock1} | ${sock2} | DUT2_VM1
168 | | Set To Dictionary | ${dut2_vm_refs} | DUT2_VM1 | ${vm2}
169 | | And Setup scheduler policy for VPP on all DUTs
170 | | Then Find NDR using binary search and pps | ${framesize} | ${binary_min}
171 | | ... | ${binary_max} | 3-node-bridge | ${min_rate} | ${max_rate}
172 | | ... | ${threshold}
173
174 | tc04-1518B-1t1c-eth-l2xcbase-eth-2vhost-1vm-pdrdisc
175 | | [Documentation]
176 | | ... | [Cfg] DUT runs L2BD switching config with 1 thread, 1 phy core,\
177 | | ... | 1 receive queue per NIC port.
178 | | ... | [Ver] Find PDR for 1518 Byte frames using binary search start at 10GE\
179 | | ... | linerate, step 10kpps, LT=0.5%.
180 | | ...
181 | | [Tags] | 1T1C | STHREAD | PDRDISC | SKIP_PATCH
182 | | ...
183 | | ${framesize}= | Set Variable | ${1518}
184 | | ${min_rate}= | Set Variable | ${10000}
185 | | ${max_rate}= | Calculate pps | ${s_limit} | ${framesize + ${vlan_overhead}}
186 | | ${binary_min}= | Set Variable | ${min_rate}
187 | | ${binary_max}= | Set Variable | ${max_rate}
188 | | ${threshold}= | Set Variable | ${min_rate}
189 | | ${dut1_vm_refs}= | Create Dictionary
190 | | ${dut2_vm_refs}= | Create Dictionary
191 | | Given Add '1' worker threads and rxqueues '1' in 3-node single-link topo
192 | | And Add PCI devices to DUTs from 3-node single link topology
193 | | And Add No Multi Seg to all DUTs
194 | | And Apply startup configuration on all VPP DUTs
195 | | When L2 xconnect with Vhost-User and VLAN initialized in a 3-node circular topology
196 | | ... | ${sock1} | ${sock2} | ${subid} | ${tag_rewrite}
197 | | ${vm1}= | And Guest VM with dpdk-testpmd connected via vhost-user is setup
198 | | ... | ${dut1} | ${sock1} | ${sock2} | DUT1_VM1
199 | | Set To Dictionary | ${dut1_vm_refs} | DUT1_VM1 | ${vm1}
200 | | ${vm2}= | And Guest VM with dpdk-testpmd connected via vhost-user is setup
201 | | ... | ${dut2} | ${sock1} | ${sock2} | DUT2_VM1
202 | | Set To Dictionary | ${dut2_vm_refs} | DUT2_VM1 | ${vm2}
203 | | And Setup scheduler policy for VPP on all DUTs
204 | | Then Find PDR using binary search and pps | ${framesize} | ${binary_min}
205 | | ... | ${binary_max} | 3-node-bridge | ${min_rate} | ${max_rate}
206 | | ... | ${threshold} | ${glob_loss_acceptance} | ${glob_loss_acceptance_type}
207
208 | tc05-IMIX-1t1c-eth-l2xcbase-eth-2vhost-1vm-ndrdisc
209 | | [Documentation]
210 | | ... | [Cfg] DUT runs L2BD switching config with 1 thread, 1 phy core,\
211 | | ... | 1 receive queue per NIC port.
212 | | ... | [Ver] Find NDR for IMIX_v4_1 framesize using binary search start at\
213 | | ... | 10GE linerate, step 10kpps.
214 | | ... | IMIX_v4_1 = (28x64B; 16x570B; 4x1518B)
215 | | ...
216 | | [Tags] | 1T1C | STHREAD | NDRDISC
217 | | ...
218 | | ${framesize}= | Set Variable | IMIX_v4_1
219 | | ${avg_framesize}= | Set Variable | ${357.833}
220 | | ${min_rate}= | Set Variable | ${10000}
221 | | ${max_rate}= | Calculate pps | ${s_limit} | ${avg_framesize}
222 | | ${binary_min}= | Set Variable | ${min_rate}
223 | | ${binary_max}= | Set Variable | ${max_rate}
224 | | ${threshold}= | Set Variable | ${min_rate}
225 | | ${dut1_vm_refs}= | Create Dictionary
226 | | ${dut2_vm_refs}= | Create Dictionary
227 | | Given Add '1' worker threads and rxqueues '1' in 3-node single-link topo
228 | | And Add PCI devices to DUTs from 3-node single link topology
229 | | And Add No Multi Seg to all DUTs
230 | | And Apply startup configuration on all VPP DUTs
231 | | When L2 xconnect with Vhost-User and VLAN initialized in a 3-node circular topology
232 | | ... | ${sock1} | ${sock2} | ${subid} | ${tag_rewrite}
233 | | ${vm1}= | And Guest VM with dpdk-testpmd connected via vhost-user is setup
234 | | ... | ${dut1} | ${sock1} | ${sock2} | DUT1_VM1
235 | | Set To Dictionary | ${dut1_vm_refs} | DUT1_VM1 | ${vm1}
236 | | ${vm2}= | And Guest VM with dpdk-testpmd connected via vhost-user is setup
237 | | ... | ${dut2} | ${sock1} | ${sock2} | DUT2_VM1
238 | | Set To Dictionary | ${dut2_vm_refs} | DUT2_VM1 | ${vm2}
239 | | And Setup scheduler policy for VPP on all DUTs
240 | | Then Find NDR using binary search and pps | ${framesize} | ${binary_min}
241 | | ... | ${binary_max} | 3-node-bridge | ${min_rate} | ${max_rate}
242 | | ... | ${threshold}
243
244 | tc06-IMIX-1t1c-eth-l2xcbase-eth-2vhost-1vm-pdrdisc
245 | | [Documentation]
246 | | ... | [Cfg] DUT runs L2BD switching config with 1 thread, 1 phy core,\
247 | | ... | 1 receive queue per NIC port.
248 | | ... | [Ver] Find PDR for IMIX_v4_1 framesize using binary search start at\
249 | | ... | 10GE linerate, step 10kpps, LT=0.5%.
250 | | ... | IMIX_v4_1 = (28x64B; 16x570B; 4x1518B)
251 | | ...
252 | | [Tags] | 1T1C | STHREAD | PDRDISC | SKIP_PATCH
253 | | ...
254 | | ${framesize}= | Set Variable | IMIX_v4_1
255 | | ${avg_framesize}= | Set Variable | ${357.833}
256 | | ${min_rate}= | Set Variable | ${10000}
257 | | ${max_rate}= | Calculate pps | ${s_limit} | ${avg_framesize}
258 | | ${binary_min}= | Set Variable | ${min_rate}
259 | | ${binary_max}= | Set Variable | ${max_rate}
260 | | ${threshold}= | Set Variable | ${min_rate}
261 | | ${dut1_vm_refs}= | Create Dictionary
262 | | ${dut2_vm_refs}= | Create Dictionary
263 | | Given Add '1' worker threads and rxqueues '1' in 3-node single-link topo
264 | | And Add PCI devices to DUTs from 3-node single link topology
265 | | And Add No Multi Seg to all DUTs
266 | | And Apply startup configuration on all VPP DUTs
267 | | When L2 xconnect with Vhost-User and VLAN initialized in a 3-node circular topology
268 | | ... | ${sock1} | ${sock2} | ${subid} | ${tag_rewrite}
269 | | ${vm1}= | And Guest VM with dpdk-testpmd connected via vhost-user is setup
270 | | ... | ${dut1} | ${sock1} | ${sock2} | DUT1_VM1
271 | | Set To Dictionary | ${dut1_vm_refs} | DUT1_VM1 | ${vm1}
272 | | ${vm2}= | And Guest VM with dpdk-testpmd connected via vhost-user is setup
273 | | ... | ${dut2} | ${sock1} | ${sock2} | DUT2_VM1
274 | | Set To Dictionary | ${dut2_vm_refs} | DUT2_VM1 | ${vm2}
275 | | And Setup scheduler policy for VPP on all DUTs
276 | | Then Find PDR using binary search and pps | ${framesize} | ${binary_min}
277 | | ... | ${binary_max} | 3-node-bridge | ${min_rate} | ${max_rate}
278 | | ... | ${threshold} | ${glob_loss_acceptance} | ${glob_loss_acceptance_type}
279
280 | tc07-64B-2t2c-eth-l2xcbase-eth-2vhost-1vm-ndrdisc
281 | | [Documentation]
282 | | ... | [Cfg] DUT runs L2XC switching config with 2 threads, 2 phy cores,\
283 | | ... | 1 receive queue per NIC port.
284 | | ... | [Ver] Find NDR for 64 Byte frames using binary search start at 10GE\
285 | | ... | linerate, step 10kpps.
286 | | ...
287 | | [Tags] | 2T2C | STHREAD | NDRDISC
288 | | ...
289 | | ${framesize}= | Set Variable | ${64}
290 | | ${min_rate}= | Set Variable | ${10000}
291 | | ${max_rate}= | Calculate pps | ${s_limit} | ${framesize + ${vlan_overhead}}
292 | | ${binary_min}= | Set Variable | ${min_rate}
293 | | ${binary_max}= | Set Variable | ${max_rate}
294 | | ${threshold}= | Set Variable | ${min_rate}
295 | | ${dut1_vm_refs}= | Create Dictionary
296 | | ${dut2_vm_refs}= | Create Dictionary
297 | | Given Add '2' worker threads and rxqueues '1' in 3-node single-link topo
298 | | And Add PCI devices to DUTs from 3-node single link topology
299 | | And Add No Multi Seg to all DUTs
300 | | And Apply startup configuration on all VPP DUTs
301 | | When L2 xconnect with Vhost-User and VLAN initialized in a 3-node circular topology
302 | | ... | ${sock1} | ${sock2} | ${subid} | ${tag_rewrite}
303 | | ${vm1}= | And Guest VM with dpdk-testpmd connected via vhost-user is setup
304 | | ... | ${dut1} | ${sock1} | ${sock2} | DUT1_VM1
305 | | Set To Dictionary | ${dut1_vm_refs} | DUT1_VM1 | ${vm1}
306 | | ${vm2}= | And Guest VM with dpdk-testpmd connected via vhost-user is setup
307 | | ... | ${dut2} | ${sock1} | ${sock2} | DUT2_VM1
308 | | Set To Dictionary | ${dut2_vm_refs} | DUT2_VM1 | ${vm2}
309 | | And Setup scheduler policy for VPP on all DUTs
310 | | Then Find NDR using binary search and pps | ${framesize} | ${binary_min}
311 | | ... | ${binary_max} | 3-node-bridge | ${min_rate} | ${max_rate}
312 | | ... | ${threshold}
313
314 | tc08-64B-2t2c-eth-l2xcbase-eth-2vhost-1vm-pdrdisc
315 | | [Documentation]
316 | | ... | [Cfg] DUT runs L2BD switching config with 2 threads, 2 phy cores,\
317 | | ... | 1 receive queue per NIC port.
318 | | ... | [Ver] Find PDR for 64 Byte frames using binary search start at 10GE\
319 | | ... | linerate, step 10kpps, LT=0.5%.
320 | | ...
321 | | [Tags] | 2T2C | STHREAD | PDRDISC | SKIP_PATCH
322 | | ...
323 | | ${framesize}= | Set Variable | ${64}
324 | | ${min_rate}= | Set Variable | ${10000}
325 | | ${max_rate}= | Calculate pps | ${s_limit} | ${framesize + ${vlan_overhead}}
326 | | ${binary_min}= | Set Variable | ${min_rate}
327 | | ${binary_max}= | Set Variable | ${max_rate}
328 | | ${threshold}= | Set Variable | ${min_rate}
329 | | ${dut1_vm_refs}= | Create Dictionary
330 | | ${dut2_vm_refs}= | Create Dictionary
331 | | Given Add '2' worker threads and rxqueues '1' in 3-node single-link topo
332 | | And Add PCI devices to DUTs from 3-node single link topology
333 | | And Add No Multi Seg to all DUTs
334 | | And Apply startup configuration on all VPP DUTs
335 | | When L2 xconnect with Vhost-User and VLAN initialized in a 3-node circular topology
336 | | ... | ${sock1} | ${sock2} | ${subid} | ${tag_rewrite}
337 | | ${vm1}= | And Guest VM with dpdk-testpmd connected via vhost-user is setup
338 | | ... | ${dut1} | ${sock1} | ${sock2} | DUT1_VM1
339 | | Set To Dictionary | ${dut1_vm_refs} | DUT1_VM1 | ${vm1}
340 | | ${vm2}= | And Guest VM with dpdk-testpmd connected via vhost-user is setup
341 | | ... | ${dut2} | ${sock1} | ${sock2} | DUT2_VM1
342 | | Set To Dictionary | ${dut2_vm_refs} | DUT2_VM1 | ${vm2}
343 | | And Setup scheduler policy for VPP on all DUTs
344 | | Then Find PDR using binary search and pps | ${framesize} | ${binary_min}
345 | | ... | ${binary_max} | 3-node-bridge | ${min_rate} | ${max_rate}
346 | | ... | ${threshold} | ${glob_loss_acceptance} | ${glob_loss_acceptance_type}
347
348 | tc09-1518B-2t2c-eth-l2xcbase-eth-2vhost-1vm-ndrdisc
349 | | [Documentation]
350 | | ... | [Cfg] DUT runs L2XC switching config with 2 threads, 2 phy cores,\
351 | | ... | 1 receive queue per NIC port.
352 | | ... | [Ver] Find NDR for 1518 Byte frames using binary search start at 10GE\
353 | | ... | linerate, step 10kpps.
354 | | ...
355 | | [Tags] | 2T2C | STHREAD | NDRDISC | SKIP_PATCH
356 | | ...
357 | | ${framesize}= | Set Variable | ${1518}
358 | | ${min_rate}= | Set Variable | ${10000}
359 | | ${max_rate}= | Calculate pps | ${s_limit} | ${framesize + ${vlan_overhead}}
360 | | ${binary_min}= | Set Variable | ${min_rate}
361 | | ${binary_max}= | Set Variable | ${max_rate}
362 | | ${threshold}= | Set Variable | ${min_rate}
363 | | ${dut1_vm_refs}= | Create Dictionary
364 | | ${dut2_vm_refs}= | Create Dictionary
365 | | Given Add '2' worker threads and rxqueues '1' in 3-node single-link topo
366 | | And Add PCI devices to DUTs from 3-node single link topology
367 | | And Add No Multi Seg to all DUTs
368 | | And Apply startup configuration on all VPP DUTs
369 | | When L2 xconnect with Vhost-User and VLAN initialized in a 3-node circular topology
370 | | ... | ${sock1} | ${sock2} | ${subid} | ${tag_rewrite}
371 | | ${vm1}= | And Guest VM with dpdk-testpmd connected via vhost-user is setup
372 | | ... | ${dut1} | ${sock1} | ${sock2} | DUT1_VM1
373 | | Set To Dictionary | ${dut1_vm_refs} | DUT1_VM1 | ${vm1}
374 | | ${vm2}= | And Guest VM with dpdk-testpmd connected via vhost-user is setup
375 | | ... | ${dut2} | ${sock1} | ${sock2} | DUT2_VM1
376 | | Set To Dictionary | ${dut2_vm_refs} | DUT2_VM1 | ${vm2}
377 | | And Setup scheduler policy for VPP on all DUTs
378 | | Then Find NDR using binary search and pps | ${framesize} | ${binary_min}
379 | | ... | ${binary_max} | 3-node-bridge | ${min_rate} | ${max_rate}
380 | | ... | ${threshold}
381
382 | tc10-1518B-2t2c-eth-l2xcbase-eth-2vhost-1vm-pdrdisc
383 | | [Documentation]
384 | | ... | [Cfg] DUT runs L2BD switching config with 2 threads, 2 phy cores,\
385 | | ... | 1 receive queue per NIC port.
386 | | ... | [Ver] Find PDR for 1518 Byte frames using binary search start at 10GE\
387 | | ... | linerate, step 10kpps, LT=0.5%.
388 | | ...
389 | | [Tags] | 2T2C | STHREAD | PDRDISC | SKIP_PATCH
390 | | ...
391 | | ${framesize}= | Set Variable | ${1518}
392 | | ${min_rate}= | Set Variable | ${10000}
393 | | ${max_rate}= | Calculate pps | ${s_limit} | ${framesize + ${vlan_overhead}}
394 | | ${binary_min}= | Set Variable | ${min_rate}
395 | | ${binary_max}= | Set Variable | ${max_rate}
396 | | ${threshold}= | Set Variable | ${min_rate}
397 | | ${dut1_vm_refs}= | Create Dictionary
398 | | ${dut2_vm_refs}= | Create Dictionary
399 | | Given Add '2' worker threads and rxqueues '1' in 3-node single-link topo
400 | | And Add PCI devices to DUTs from 3-node single link topology
401 | | And Add No Multi Seg to all DUTs
402 | | And Apply startup configuration on all VPP DUTs
403 | | When L2 xconnect with Vhost-User and VLAN initialized in a 3-node circular topology
404 | | ... | ${sock1} | ${sock2} | ${subid} | ${tag_rewrite}
405 | | ${vm1}= | And Guest VM with dpdk-testpmd connected via vhost-user is setup
406 | | ... | ${dut1} | ${sock1} | ${sock2} | DUT1_VM1
407 | | Set To Dictionary | ${dut1_vm_refs} | DUT1_VM1 | ${vm1}
408 | | ${vm2}= | And Guest VM with dpdk-testpmd connected via vhost-user is setup
409 | | ... | ${dut2} | ${sock1} | ${sock2} | DUT2_VM1
410 | | Set To Dictionary | ${dut2_vm_refs} | DUT2_VM1 | ${vm2}
411 | | And Setup scheduler policy for VPP on all DUTs
412 | | Then Find PDR using binary search and pps | ${framesize} | ${binary_min}
413 | | ... | ${binary_max} | 3-node-bridge | ${min_rate} | ${max_rate}
414 | | ... | ${threshold} | ${glob_loss_acceptance} | ${glob_loss_acceptance_type}
415
416 | tc11-IMIX-2t2c-eth-l2xcbase-eth-2vhost-1vm-ndrdisc
417 | | [Documentation]
418 | | ... | [Cfg] DUT runs L2BD switching config with 2 threads, 2 phy cores,\
419 | | ... | 1 receive queue per NIC port.
420 | | ... | [Ver] Find NDR for IMIX_v4_1 framesize using binary search start at\
421 | | ... | 10GE linerate, step 10kpps.
422 | | ... | IMIX_v4_1 = (28x64B; 16x570B; 4x1518B)
423 | | ...
424 | | [Tags] | 2T2C | STHREAD | NDRDISC | SKIP_PATCH
425 | | ...
426 | | ${framesize}= | Set Variable | IMIX_v4_1
427 | | ${avg_framesize}= | Set Variable | ${357.833}
428 | | ${min_rate}= | Set Variable | ${10000}
429 | | ${max_rate}= | Calculate pps | ${s_limit} | ${avg_framesize}
430 | | ${binary_min}= | Set Variable | ${min_rate}
431 | | ${binary_max}= | Set Variable | ${max_rate}
432 | | ${threshold}= | Set Variable | ${min_rate}
433 | | ${dut1_vm_refs}= | Create Dictionary
434 | | ${dut2_vm_refs}= | Create Dictionary
435 | | Given Add '2' worker threads and rxqueues '1' in 3-node single-link topo
436 | | And Add PCI devices to DUTs from 3-node single link topology
437 | | And Add No Multi Seg to all DUTs
438 | | And Apply startup configuration on all VPP DUTs
439 | | When L2 xconnect with Vhost-User and VLAN initialized in a 3-node circular topology
440 | | ... | ${sock1} | ${sock2} | ${subid} | ${tag_rewrite}
441 | | ${vm1}= | And Guest VM with dpdk-testpmd connected via vhost-user is setup
442 | | ... | ${dut1} | ${sock1} | ${sock2} | DUT1_VM1
443 | | Set To Dictionary | ${dut1_vm_refs} | DUT1_VM1 | ${vm1}
444 | | ${vm2}= | And Guest VM with dpdk-testpmd connected via vhost-user is setup
445 | | ... | ${dut2} | ${sock1} | ${sock2} | DUT2_VM1
446 | | Set To Dictionary | ${dut2_vm_refs} | DUT2_VM1 | ${vm2}
447 | | And Setup scheduler policy for VPP on all DUTs
448 | | Then Find NDR using binary search and pps | ${framesize} | ${binary_min}
449 | | ... | ${binary_max} | 3-node-bridge | ${min_rate} | ${max_rate}
450 | | ... | ${threshold}
451
452 | tc12-IMIX-2t2c-eth-l2xcbase-eth-2vhost-1vm-pdrdisc
453 | | [Documentation]
454 | | ... | [Cfg] DUT runs L2BD switching config with 2 threads, 2 phy cores,\
455 | | ... | 1 receive queue per NIC port.
456 | | ... | [Ver] Find PDR for IMIX_v4_1 framesize using binary search start at\
457 | | ... | 10GE linerate, step 10kpps, LT=0.5%.
458 | | ... | IMIX_v4_1 = (28x64B; 16x570B; 4x1518B)
459 | | ...
460 | | [Tags] | 2T2C | STHREAD | PDRDISC | SKIP_PATCH
461 | | ...
462 | | ${framesize}= | Set Variable | IMIX_v4_1
463 | | ${avg_framesize}= | Set Variable | ${357.833}
464 | | ${min_rate}= | Set Variable | ${10000}
465 | | ${max_rate}= | Calculate pps | ${s_limit} | ${avg_framesize}
466 | | ${binary_min}= | Set Variable | ${min_rate}
467 | | ${binary_max}= | Set Variable | ${max_rate}
468 | | ${threshold}= | Set Variable | ${min_rate}
469 | | ${dut1_vm_refs}= | Create Dictionary
470 | | ${dut2_vm_refs}= | Create Dictionary
471 | | Given Add '2' worker threads and rxqueues '1' in 3-node single-link topo
472 | | And Add PCI devices to DUTs from 3-node single link topology
473 | | And Add No Multi Seg to all DUTs
474 | | And Apply startup configuration on all VPP DUTs
475 | | When L2 xconnect with Vhost-User and VLAN initialized in a 3-node circular topology
476 | | ... | ${sock1} | ${sock2} | ${subid} | ${tag_rewrite}
477 | | ${vm1}= | And Guest VM with dpdk-testpmd connected via vhost-user is setup
478 | | ... | ${dut1} | ${sock1} | ${sock2} | DUT1_VM1
479 | | Set To Dictionary | ${dut1_vm_refs} | DUT1_VM1 | ${vm1}
480 | | ${vm2}= | And Guest VM with dpdk-testpmd connected via vhost-user is setup
481 | | ... | ${dut2} | ${sock1} | ${sock2} | DUT2_VM1
482 | | Set To Dictionary | ${dut2_vm_refs} | DUT2_VM1 | ${vm2}
483 | | And Setup scheduler policy for VPP on all DUTs
484 | | Then Find PDR using binary search and pps | ${framesize} | ${binary_min}
485 | | ... | ${binary_max} | 3-node-bridge | ${min_rate} | ${max_rate}
486 | | ... | ${threshold} | ${glob_loss_acceptance} | ${glob_loss_acceptance_type}
487
488 | tc13-64B-4t4c-eth-l2xcbase-eth-2vhost-1vm-ndrdisc
489 | | [Documentation]
490 | | ... | [Cfg] DUT runs L2XC switching config with 4 threads, 4 phy cores,\
491 | | ... | 2 receive queues per NIC port.
492 | | ... | [Ver] Find NDR for 64 Byte frames using binary search start at 10GE\
493 | | ... | linerate, step 10kpps.
494 | | ...
495 | | [Tags] | 4T4C | STHREAD | NDRDISC
496 | | ...
497 | | ${framesize}= | Set Variable | ${64}
498 | | ${min_rate}= | Set Variable | ${10000}
499 | | ${max_rate}= | Calculate pps | ${s_limit} | ${framesize + ${vlan_overhead}}
500 | | ${binary_min}= | Set Variable | ${min_rate}
501 | | ${binary_max}= | Set Variable | ${max_rate}
502 | | ${threshold}= | Set Variable | ${min_rate}
503 | | ${dut1_vm_refs}= | Create Dictionary
504 | | ${dut2_vm_refs}= | Create Dictionary
505 | | Given Add '4' worker threads and rxqueues '2' in 3-node single-link topo
506 | | And Add PCI devices to DUTs from 3-node single link topology
507 | | And Add No Multi Seg to all DUTs
508 | | And Apply startup configuration on all VPP DUTs
509 | | When L2 xconnect with Vhost-User and VLAN initialized in a 3-node circular topology
510 | | ... | ${sock1} | ${sock2} | ${subid} | ${tag_rewrite}
511 | | ${vm1}= | And Guest VM with dpdk-testpmd connected via vhost-user is setup
512 | | ... | ${dut1} | ${sock1} | ${sock2} | DUT1_VM1
513 | | Set To Dictionary | ${dut1_vm_refs} | DUT1_VM1 | ${vm1}
514 | | ${vm2}= | And Guest VM with dpdk-testpmd connected via vhost-user is setup
515 | | ... | ${dut2} | ${sock1} | ${sock2} | DUT2_VM1
516 | | Set To Dictionary | ${dut2_vm_refs} | DUT2_VM1 | ${vm2}
517 | | And Setup scheduler policy for VPP on all DUTs
518 | | Then Find NDR using binary search and pps | ${framesize} | ${binary_min}
519 | | ... | ${binary_max} | 3-node-bridge | ${min_rate} | ${max_rate}
520 | | ... | ${threshold}
521
522 | tc14-64B-4t4c-eth-l2xcbase-eth-2vhost-1vm-pdrdisc
523 | | [Documentation]
524 | | ... | [Cfg] DUT runs L2XC switching config with 4 threads, 4 phy cores,\
525 | | ... | 2 receive queues per NIC port.
526 | | ... | [Ver] Find PDR for 64 Byte frames using binary search start at 10GE\
527 | | ... | linerate, step 10kpps, LT=0.5%.
528 | | ...
529 | | [Tags] | 4T4C | STHREAD | PDRDISC | SKIP_PATCH
530 | | ...
531 | | ${framesize}= | Set Variable | ${64}
532 | | ${min_rate}= | Set Variable | ${10000}
533 | | ${max_rate}= | Calculate pps | ${s_limit} | ${framesize + ${vlan_overhead}}
534 | | ${binary_min}= | Set Variable | ${min_rate}
535 | | ${binary_max}= | Set Variable | ${max_rate}
536 | | ${threshold}= | Set Variable | ${min_rate}
537 | | ${dut1_vm_refs}= | Create Dictionary
538 | | ${dut2_vm_refs}= | Create Dictionary
539 | | Given Add '4' worker threads and rxqueues '2' in 3-node single-link topo
540 | | And Add PCI devices to DUTs from 3-node single link topology
541 | | And Add No Multi Seg to all DUTs
542 | | And Apply startup configuration on all VPP DUTs
543 | | When L2 xconnect with Vhost-User and VLAN initialized in a 3-node circular topology
544 | | ... | ${sock1} | ${sock2} | ${subid} | ${tag_rewrite}
545 | | ${vm1}= | And Guest VM with dpdk-testpmd connected via vhost-user is setup
546 | | ... | ${dut1} | ${sock1} | ${sock2} | DUT1_VM1
547 | | Set To Dictionary | ${dut1_vm_refs} | DUT1_VM1 | ${vm1}
548 | | ${vm2}= | And Guest VM with dpdk-testpmd connected via vhost-user is setup
549 | | ... | ${dut2} | ${sock1} | ${sock2} | DUT2_VM1
550 | | Set To Dictionary | ${dut2_vm_refs} | DUT2_VM1 | ${vm2}
551 | | And Setup scheduler policy for VPP on all DUTs
552 | | Then Find PDR using binary search and pps | ${framesize} | ${binary_min}
553 | | ... | ${binary_max} | 3-node-bridge | ${min_rate} | ${max_rate}
554 | | ... | ${threshold} | ${glob_loss_acceptance} | ${glob_loss_acceptance_type}
555
556 | tc15-1518B-4t4c-eth-l2xcbase-eth-2vhost-1vm-ndrdisc
557 | | [Documentation]
558 | | ... | [Cfg] DUT runs L2XC switching config with 4 threads, 4 phy cores,\
559 | | ... | 2 receive queues per NIC port.
560 | | ... | [Ver] Find NDR for 1518 Byte frames using binary search start at 10GE\
561 | | ... | linerate, step 10kpps.
562 | | ...
563 | | [Tags] | 4T4C | STHREAD | NDRDISC | SKIP_PATCH
564 | | ...
565 | | ${framesize}= | Set Variable | ${1518}
566 | | ${min_rate}= | Set Variable | ${10000}
567 | | ${max_rate}= | Calculate pps | ${s_limit} | ${framesize + ${vlan_overhead}}
568 | | ${binary_min}= | Set Variable | ${min_rate}
569 | | ${binary_max}= | Set Variable | ${max_rate}
570 | | ${threshold}= | Set Variable | ${min_rate}
571 | | ${dut1_vm_refs}= | Create Dictionary
572 | | ${dut2_vm_refs}= | Create Dictionary
573 | | Given Add '4' worker threads and rxqueues '2' in 3-node single-link topo
574 | | And Add PCI devices to DUTs from 3-node single link topology
575 | | And Add No Multi Seg to all DUTs
576 | | And Apply startup configuration on all VPP DUTs
577 | | When L2 xconnect with Vhost-User and VLAN initialized in a 3-node circular topology
578 | | ... | ${sock1} | ${sock2} | ${subid} | ${tag_rewrite}
579 | | ${vm1}= | And Guest VM with dpdk-testpmd connected via vhost-user is setup
580 | | ... | ${dut1} | ${sock1} | ${sock2} | DUT1_VM1
581 | | Set To Dictionary | ${dut1_vm_refs} | DUT1_VM1 | ${vm1}
582 | | ${vm2}= | And Guest VM with dpdk-testpmd connected via vhost-user is setup
583 | | ... | ${dut2} | ${sock1} | ${sock2} | DUT2_VM1
584 | | Set To Dictionary | ${dut2_vm_refs} | DUT2_VM1 | ${vm2}
585 | | And Setup scheduler policy for VPP on all DUTs
586 | | Then Find NDR using binary search and pps | ${framesize} | ${binary_min}
587 | | ... | ${binary_max} | 3-node-bridge | ${min_rate} | ${max_rate}
588 | | ... | ${threshold}
589
590 | tc16-1518B-4t4c-eth-l2xcbase-eth-2vhost-1vm-pdrdisc
591 | | [Documentation]
592 | | ... | [Cfg] DUT runs L2XC switching config with 4 threads, 4 phy cores,\
593 | | ... | 2 receive queues per NIC port.
594 | | ... | [Ver] Find PDR for 1518 Byte frames using binary search start at 10GE\
595 | | ... | linerate, step 10kpps, LT=0.5%.
596 | | ...
597 | | [Tags] | 4T4C | STHREAD | PDRDISC | SKIP_PATCH
598 | | ...
599 | | ${framesize}= | Set Variable | ${1518}
600 | | ${min_rate}= | Set Variable | ${10000}
601 | | ${max_rate}= | Calculate pps | ${s_limit} | ${framesize + ${vlan_overhead}}
602 | | ${binary_min}= | Set Variable | ${min_rate}
603 | | ${binary_max}= | Set Variable | ${max_rate}
604 | | ${threshold}= | Set Variable | ${min_rate}
605 | | ${dut1_vm_refs}= | Create Dictionary
606 | | ${dut2_vm_refs}= | Create Dictionary
607 | | Given Add '4' worker threads and rxqueues '2' in 3-node single-link topo
608 | | And Add PCI devices to DUTs from 3-node single link topology
609 | | And Add No Multi Seg to all DUTs
610 | | And Apply startup configuration on all VPP DUTs
611 | | When L2 xconnect with Vhost-User and VLAN initialized in a 3-node circular topology
612 | | ... | ${sock1} | ${sock2} | ${subid} | ${tag_rewrite}
613 | | ${vm1}= | And Guest VM with dpdk-testpmd connected via vhost-user is setup
614 | | ... | ${dut1} | ${sock1} | ${sock2} | DUT1_VM1
615 | | Set To Dictionary | ${dut1_vm_refs} | DUT1_VM1 | ${vm1}
616 | | ${vm2}= | And Guest VM with dpdk-testpmd connected via vhost-user is setup
617 | | ... | ${dut2} | ${sock1} | ${sock2} | DUT2_VM1
618 | | Set To Dictionary | ${dut2_vm_refs} | DUT2_VM1 | ${vm2}
619 | | And Setup scheduler policy for VPP on all DUTs
620 | | Then Find PDR using binary search and pps | ${framesize} | ${binary_min}
621 | | ... | ${binary_max} | 3-node-bridge | ${min_rate} | ${max_rate}
622 | | ... | ${threshold} | ${glob_loss_acceptance} | ${glob_loss_acceptance_type}
623
624 | tc17-IMIX-4t4c-eth-l2xcbase-eth-2vhost-1vm-ndrdisc
625 | | [Documentation]
626 | | ... | [Cfg] DUT runs L2XC switching config with 4 threads, 4 phy cores,\
627 | | ... | 2 receive queues per NIC port.
628 | | ... | [Ver] Find NDR for IMIX_v4_1 framesize using binary search start at\
629 | | ... | 10GE linerate, step 10kpps.
630 | | ... | IMIX_v4_1 = (28x64B; 16x570B; 4x1518B)
631 | | ...
632 | | [Tags] | 4T4C | STHREAD | NDRDISC | SKIP_PATCH
633 | | ...
634 | | ${framesize}= | Set Variable | IMIX_v4_1
635 | | ${avg_framesize}= | Set Variable | ${357.833}
636 | | ${min_rate}= | Set Variable | ${10000}
637 | | ${max_rate}= | Calculate pps | ${s_limit} | ${avg_framesize}
638 | | ${binary_min}= | Set Variable | ${min_rate}
639 | | ${binary_max}= | Set Variable | ${max_rate}
640 | | ${threshold}= | Set Variable | ${min_rate}
641 | | ${dut1_vm_refs}= | Create Dictionary
642 | | ${dut2_vm_refs}= | Create Dictionary
643 | | Given Add '4' worker threads and rxqueues '2' in 3-node single-link topo
644 | | And Add PCI devices to DUTs from 3-node single link topology
645 | | And Add No Multi Seg to all DUTs
646 | | And Apply startup configuration on all VPP DUTs
647 | | When L2 xconnect with Vhost-User and VLAN initialized in a 3-node circular topology
648 | | ... | ${sock1} | ${sock2} | ${subid} | ${tag_rewrite}
649 | | ${vm1}= | And Guest VM with dpdk-testpmd connected via vhost-user is setup
650 | | ... | ${dut1} | ${sock1} | ${sock2} | DUT1_VM1
651 | | Set To Dictionary | ${dut1_vm_refs} | DUT1_VM1 | ${vm1}
652 | | ${vm2}= | And Guest VM with dpdk-testpmd connected via vhost-user is setup
653 | | ... | ${dut2} | ${sock1} | ${sock2} | DUT2_VM1
654 | | Set To Dictionary | ${dut2_vm_refs} | DUT2_VM1 | ${vm2}
655 | | And Setup scheduler policy for VPP on all DUTs
656 | | Then Find NDR using binary search and pps | ${framesize} | ${binary_min}
657 | | ... | ${binary_max} | 3-node-bridge | ${min_rate} | ${max_rate}
658 | | ... | ${threshold}
659
660 | tc18-IMIX-4t4c-eth-l2xcbase-eth-2vhost-1vm-pdrdisc
661 | | [Documentation]
662 | | ... | [Cfg] DUT runs L2XC switching config with 4 threads, 4 phy cores,\
663 | | ... | 2 receive queues per NIC port.
664 | | ... | [Ver] Find PDR for IMIX_v4_1 framesize using binary search start at\
665 | | ... | 10GE linerate, step 10kpps, LT=0.5%.
666 | | ... | IMIX_v4_1 = (28x64B; 16x570B; 4x1518B)
667 | | ...
668 | | [Tags] | 4T4C | STHREAD | PDRDISC | SKIP_PATCH
669 | | ...
670 | | ${framesize}= | Set Variable | IMIX_v4_1
671 | | ${avg_framesize}= | Set Variable | ${357.833}
672 | | ${min_rate}= | Set Variable | ${10000}
673 | | ${max_rate}= | Calculate pps | ${s_limit} | ${avg_framesize}
674 | | ${binary_min}= | Set Variable | ${min_rate}
675 | | ${binary_max}= | Set Variable | ${max_rate}
676 | | ${threshold}= | Set Variable | ${min_rate}
677 | | ${dut1_vm_refs}= | Create Dictionary
678 | | ${dut2_vm_refs}= | Create Dictionary
679 | | Given Add '4' worker threads and rxqueues '2' in 3-node single-link topo
680 | | And Add PCI devices to DUTs from 3-node single link topology
681 | | And Add No Multi Seg to all DUTs
682 | | And Apply startup configuration on all VPP DUTs
683 | | When L2 xconnect with Vhost-User and VLAN initialized in a 3-node circular topology
684 | | ... | ${sock1} | ${sock2} | ${subid} | ${tag_rewrite}
685 | | ${vm1}= | And Guest VM with dpdk-testpmd connected via vhost-user is setup
686 | | ... | ${dut1} | ${sock1} | ${sock2} | DUT1_VM1
687 | | Set To Dictionary | ${dut1_vm_refs} | DUT1_VM1 | ${vm1}
688 | | ${vm2}= | And Guest VM with dpdk-testpmd connected via vhost-user is setup
689 | | ... | ${dut2} | ${sock1} | ${sock2} | DUT2_VM1
690 | | Set To Dictionary | ${dut2_vm_refs} | DUT2_VM1 | ${vm2}
691 | | And Setup scheduler policy for VPP on all DUTs
692 | | Then Find PDR using binary search and pps | ${framesize} | ${binary_min}
693 | | ... | ${binary_max} | 3-node-bridge | ${min_rate} | ${max_rate}
694 | | ... | ${threshold} | ${glob_loss_acceptance} | ${glob_loss_acceptance_type}