6eb8547fea0d001356d9b8eb8d1aefad453e39ca
[csit.git] / tests / perf / Long_Xconnect_Vhost_Intel-X520-DA2.robot
1 # Copyright (c) 2016 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 | PERFTEST_LONG
18 | ...        | PERFTEST_VHOST | NIC_Intel-X520-DA2
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.
39 | ... | *[Cfg] DUT configuration:* DUT1 and DUT2 are configured with L2 cross-
40 | ... | connect. Qemu Guest is connected to VPP via vhost-user interfaces.
41 | ... | Guest is running DPDK testpmd interconnecting vhost-user interfaces
42 | ... | using 3 cores pinned to cpus 5,6,7 and 2048M memory. Testpmd is using
43 | ... | socket-mem=1024M (512x2M hugepages), 3 cores (1 main core and 2 cores
44 | ... | 2 cores dedicated for io), forwarding mode is set to io, rxq/txq=2048,
45 | ... | burst=64. DUT1, DUT2 are tested with 2p10GE NIC X520 Niantic by Intel.
46 | ... | *[Ver] TG verification:* TG finds and reports throughput NDR (Non Drop
47 | ... | Rate) with zero packet loss tolerance or throughput PDR (Partial Drop
48 | ... | Rate) with non-zero packet loss tolerance (LT) expressed in percentage
49 | ... | of packets transmitted. NDR and PDR are discovered for different
50 | ... | Ethernet L2 frame sizes using either binary search or linear search
51 | ... | algorithms with configured starting rate and final step that determines
52 | ... | throughput measurement resolution. Test packets are generated by TG on
53 | ... | links to DUTs. TG traffic profile contains two L3 flow-groups
54 | ... | (flow-group per direction, 253 flows per flow-group) with all packets
55 | ... | containing Ethernet header, IPv4 header with IP protocol=61 and static
56 | ... | payload. MAC addresses are matching MAC addresses of the TG node
57 | ... | interfaces.
58 | ... | *[Ref] Applicable standard specifications:* RFC2544.
59
60 *** Variables ***
61 | ${bd_id1}= | 1
62 | ${bd_id2}= | 2
63 | ${sock1}= | /tmp/sock-1-${bd_id1}
64 | ${sock2}= | /tmp/sock-1-${bd_id2}
65 #X520-DA2 bandwidth limit
66 | ${s_limit} | ${10000000000}
67
68 *** Test Cases ***
69 | TC01: 64B NDR binary search - DUT L2XC-VHOST - 1thread 1core 1rxq
70 | | [Documentation]
71 | | ... | [Cfg] DUT runs L2XC switching config with 1 thread, 1 phy core, \
72 | | ... | 1 receive queue per NIC port. [Ver] Find NDR for 64 Byte frames \
73 | | ... | using binary search start at 10GE linerate, step 10kpps.
74 | | [Tags] | 1_THREAD_NOHTT_RXQUEUES_1 | SINGLE_THREAD | NDR
75 | | ${framesize}= | Set Variable | ${64}
76 | | ${min_rate}= | Set Variable | ${10000}
77 | | ${max_rate}= | Calculate pps | ${s_limit} | ${framesize}
78 | | ${binary_min}= | Set Variable | ${min_rate}
79 | | ${binary_max}= | Set Variable | ${max_rate}
80 | | ${threshold}= | Set Variable | ${min_rate}
81 | | ${dut1_vm_refs}= | Create Dictionary
82 | | ${dut2_vm_refs}= | Create Dictionary
83 | | Given Add '1' worker threads and rxqueues '1' in 3-node single-link topo
84 | | And   Add PCI devices to DUTs from 3-node single link topology
85 | | And   Add No Multi Seg to all DUTs
86 | | And   Apply startup configuration on all VPP DUTs
87 | | When  L2 xconnect with Vhost-User initialized in a 3-node circular topology
88 | | ...   | ${sock1} | ${sock2}
89 | | ${vm1}= | And Guest VM with dpdk-testpmd connected via vhost-user is setup
90 | | ...     | ${dut1} | ${sock1} | ${sock2} | DUT1_VM1
91 | | Set To Dictionary | ${dut1_vm_refs} | DUT1_VM1 | ${vm1}
92 | | ${vm2}= | And Guest VM with dpdk-testpmd connected via vhost-user is setup
93 | | ...     | ${dut2} | ${sock1} | ${sock2} | DUT2_VM1
94 | | Set To Dictionary | ${dut2_vm_refs} | DUT2_VM1 | ${vm2}
95 | | And Setup scheduler policy for VPP on all DUTs
96 | | Then Find NDR using binary search and pps | ${framesize} | ${binary_min}
97 | | ...                                       | ${binary_max} | 3-node-bridge
98 | | ...                                       | ${min_rate} | ${max_rate}
99 | | ...                                       | ${threshold}
100
101 | TC02: 64B PDR binary search - DUT L2XC-VHOST - 1thread 1core 1rxq
102 | | [Documentation]
103 | | ... | [Cfg] DUT runs L2XC switching config with 1 thread, 1 phy core, \
104 | | ... | 1 receive queue per NIC port. [Ver] Find PDR for 64 Byte frames \
105 | | ... | using binary search start at 10GE linerate, step 10kpps, LT=0.5%.
106 | | [Tags] | 1_THREAD_NOHTT_RXQUEUES_1 | SINGLE_THREAD | PDR | SKIP_PATCH
107 | | ${framesize}= | Set Variable | ${64}
108 | | ${min_rate}= | Set Variable | ${10000}
109 | | ${max_rate}= | Calculate pps | ${s_limit} | ${framesize}
110 | | ${binary_min}= | Set Variable | ${min_rate}
111 | | ${binary_max}= | Set Variable | ${max_rate}
112 | | ${threshold}= | Set Variable | ${min_rate}
113 | | ${dut1_vm_refs}= | Create Dictionary
114 | | ${dut2_vm_refs}= | Create Dictionary
115 | | Given Add '1' worker threads and rxqueues '1' in 3-node single-link topo
116 | | And   Add PCI devices to DUTs from 3-node single link topology
117 | | And   Add No Multi Seg to all DUTs
118 | | And   Apply startup configuration on all VPP DUTs
119 | | When  L2 xconnect with Vhost-User initialized in a 3-node circular topology
120 | | ...   | ${sock1} | ${sock2}
121 | | ${vm1}= | And Guest VM with dpdk-testpmd connected via vhost-user is setup
122 | | ...     | ${dut1} | ${sock1} | ${sock2} | DUT1_VM1
123 | | Set To Dictionary | ${dut1_vm_refs} | DUT1_VM1 | ${vm1}
124 | | ${vm2}= | And Guest VM with dpdk-testpmd connected via vhost-user is setup
125 | | ...     | ${dut2} | ${sock1} | ${sock2} | DUT2_VM1
126 | | Set To Dictionary | ${dut2_vm_refs} | DUT2_VM1 | ${vm2}
127 | | And Setup scheduler policy for VPP on all DUTs
128 | | Then Find PDR using binary search and pps | ${framesize} | ${binary_min}
129 | | ...                                       | ${binary_max} | 3-node-bridge
130 | | ...                                       | ${min_rate} | ${max_rate}
131 | | ...                                       | ${threshold}
132 | | ...                                       | ${glob_loss_acceptance}
133 | | ...                                       | ${glob_loss_acceptance_type}
134
135 | TC03: 1518B NDR binary search - DUT L2XC-VHOST - 1thread 1core 1rxq
136 | | [Documentation]
137 | | ... | [Cfg] DUT runs L2XC switching config with 1 thread, 1 phy core, \
138 | | ... | 1 receive queue per NIC port. [Ver] Find NDR for 1518 Byte frames \
139 | | ... | using binary search start at 10GE linerate, step 10kpps.
140 | | [Tags] | 1_THREAD_NOHTT_RXQUEUES_1 | SINGLE_THREAD | NDR
141 | | ${framesize}= | Set Variable | ${1518}
142 | | ${min_rate}= | Set Variable | ${10000}
143 | | ${max_rate}= | Calculate pps | ${s_limit} | ${framesize}
144 | | ${binary_min}= | Set Variable | ${min_rate}
145 | | ${binary_max}= | Set Variable | ${max_rate}
146 | | ${threshold}= | Set Variable | ${min_rate}
147 | | ${dut1_vm_refs}= | Create Dictionary
148 | | ${dut2_vm_refs}= | Create Dictionary
149 | | Given Add '1' worker threads and rxqueues '1' in 3-node single-link topo
150 | | And   Add PCI devices to DUTs from 3-node single link topology
151 | | And   Add No Multi Seg to all DUTs
152 | | And   Apply startup configuration on all VPP DUTs
153 | | When  L2 xconnect with Vhost-User initialized in a 3-node circular topology
154 | | ...   | ${sock1} | ${sock2}
155 | | ${vm1}= | And Guest VM with dpdk-testpmd connected via vhost-user is setup
156 | | ...     | ${dut1} | ${sock1} | ${sock2} | DUT1_VM1
157 | | Set To Dictionary | ${dut1_vm_refs} | DUT1_VM1 | ${vm1}
158 | | ${vm2}= | And Guest VM with dpdk-testpmd connected via vhost-user is setup
159 | | ...     | ${dut2} | ${sock1} | ${sock2} | DUT2_VM1
160 | | Set To Dictionary | ${dut2_vm_refs} | DUT2_VM1 | ${vm2}
161 | | And Setup scheduler policy for VPP on all DUTs
162 | | Then Find NDR using binary search and pps | ${framesize} | ${binary_min}
163 | | ...                                       | ${binary_max} | 3-node-bridge
164 | | ...                                       | ${min_rate} | ${max_rate}
165 | | ...                                       | ${threshold}
166
167 | TC04: 1518B PDR binary search - DUT L2XC-VHOST - 1thread 1core 1rxq
168 | | [Documentation]
169 | | ... | [Cfg] DUT runs L2XC switching config with 1 thread, 1 phy core, \
170 | | ... | 1 receive queue per NIC port. [Ver] Find PDR for 1518 Byte frames \
171 | | ... | using binary search start at 10GE linerate, step 10kpps, LT=0.5%.
172 | | [Tags] | 1_THREAD_NOHTT_RXQUEUES_1 | SINGLE_THREAD | PDR | SKIP_PATCH
173 | | ${framesize}= | Set Variable | ${1518}
174 | | ${min_rate}= | Set Variable | ${10000}
175 | | ${max_rate}= | Calculate pps | ${s_limit} | ${framesize}
176 | | ${binary_min}= | Set Variable | ${min_rate}
177 | | ${binary_max}= | Set Variable | ${max_rate}
178 | | ${threshold}= | Set Variable | ${min_rate}
179 | | ${dut1_vm_refs}= | Create Dictionary
180 | | ${dut2_vm_refs}= | Create Dictionary
181 | | Given Add '1' worker threads and rxqueues '1' in 3-node single-link topo
182 | | And   Add PCI devices to DUTs from 3-node single link topology
183 | | And   Add No Multi Seg to all DUTs
184 | | And   Apply startup configuration on all VPP DUTs
185 | | When  L2 xconnect with Vhost-User initialized in a 3-node circular topology
186 | | ...   | ${sock1} | ${sock2}
187 | | ${vm1}= | And Guest VM with dpdk-testpmd connected via vhost-user is setup
188 | | ...     | ${dut1} | ${sock1} | ${sock2} | DUT1_VM1
189 | | Set To Dictionary | ${dut1_vm_refs} | DUT1_VM1 | ${vm1}
190 | | ${vm2}= | And Guest VM with dpdk-testpmd connected via vhost-user is setup
191 | | ...     | ${dut2} | ${sock1} | ${sock2} | DUT2_VM1
192 | | Set To Dictionary | ${dut2_vm_refs} | DUT2_VM1 | ${vm2}
193 | | And Setup scheduler policy for VPP on all DUTs
194 | | Then Find PDR using binary search and pps | ${framesize} | ${binary_min}
195 | | ...                                       | ${binary_max} | 3-node-bridge
196 | | ...                                       | ${min_rate} | ${max_rate}
197 | | ...                                       | ${threshold}
198 | | ...                                       | ${glob_loss_acceptance}
199 | | ...                                       | ${glob_loss_acceptance_type}
200
201 | TC05: IMIX_v4_1 NDR binary search - DUT L2XC-VHOST - 1thread 1core 1rxq
202 | | [Documentation]
203 | | ... | [Cfg] DUT runs L2XC switching config with 1 thread, 1 phy core, \
204 | | ... | 1 receive queue per NIC port. [Ver] Find NDR for IMIX_v4_1 frame \
205 | | ... | size using binary search start at 10GE linerate, step 5kpps.
206 | | ... | IMIX_v4_1 = (28x64B;16x570B;4x1518B)
207 | | [Tags] | 1_THREAD_NOHTT_RXQUEUES_1 | SINGLE_THREAD | NDR
208 | | ${framesize}= | Set Variable | IMIX_v4_1
209 | | ${min_rate}= | Set Variable | ${10000}
210 | | ${max_rate}= | Calculate pps | ${s_limit} | ${framesize}
211 | | ${binary_min}= | Set Variable | ${min_rate}
212 | | ${binary_max}= | Set Variable | ${max_rate}
213 | | ${threshold}= | Set Variable | ${min_rate}
214 | | ${dut1_vm_refs}= | Create Dictionary
215 | | ${dut2_vm_refs}= | Create Dictionary
216 | | Given Add '1' worker threads and rxqueues '1' in 3-node single-link topo
217 | | And   Add PCI devices to DUTs from 3-node single link topology
218 | | And   Add No Multi Seg to all DUTs
219 | | And   Apply startup configuration on all VPP DUTs
220 | | When  L2 xconnect with Vhost-User initialized in a 3-node circular topology
221 | | ...   | ${sock1} | ${sock2}
222 | | ${vm1}= | And Guest VM with dpdk-testpmd connected via vhost-user is setup
223 | | ...     | ${dut1} | ${sock1} | ${sock2} | DUT1_VM1
224 | | Set To Dictionary | ${dut1_vm_refs} | DUT1_VM1 | ${vm1}
225 | | ${vm2}= | And Guest VM with dpdk-testpmd connected via vhost-user is setup
226 | | ...     | ${dut2} | ${sock1} | ${sock2} | DUT2_VM1
227 | | Set To Dictionary | ${dut2_vm_refs} | DUT2_VM1 | ${vm2}
228 | | And Setup scheduler policy for VPP on all DUTs
229 | | Then Find NDR using binary search and pps | ${framesize} | ${binary_min}
230 | | ...                                       | ${binary_max} | 3-node-bridge
231 | | ...                                       | ${min_rate} | ${max_rate}
232 | | ...                                       | ${threshold}
233
234 | TC06: IMIX_v4_1 PDR binary search - DUT L2XC-VHOST - 1thread 1core 1rxq
235 | | [Documentation]
236 | | ... | [Cfg] DUT runs L2XC switching config with 1 thread, 1 phy core, \
237 | | ... | 1 receive queue per NIC port. [Ver] Find PDR for IMIX_v4_1 frame \
238 | | ... | size using binary search start at 10GE linerate, step 5kpps, LT=0.5%.
239 | | ... | IMIX_v4_1 = (28x64B;16x570B;4x1518B)
240 | | [Tags] | 1_THREAD_NOHTT_RXQUEUES_1 | SINGLE_THREAD | PDR | SKIP_PATCH
241 | | ${framesize}= | Set Variable | IMIX_v4_1
242 | | ${min_rate}= | Set Variable | ${10000}
243 | | ${max_rate}= | Calculate pps | ${s_limit} | ${framesize}
244 | | ${binary_min}= | Set Variable | ${min_rate}
245 | | ${binary_max}= | Set Variable | ${max_rate}
246 | | ${threshold}= | Set Variable | ${min_rate}
247 | | ${dut1_vm_refs}= | Create Dictionary
248 | | ${dut2_vm_refs}= | Create Dictionary
249 | | Given Add '1' worker threads and rxqueues '1' in 3-node single-link topo
250 | | And   Add PCI devices to DUTs from 3-node single link topology
251 | | And   Add No Multi Seg to all DUTs
252 | | And   Apply startup configuration on all VPP DUTs
253 | | When  L2 xconnect with Vhost-User initialized in a 3-node circular topology
254 | | ...   | ${sock1} | ${sock2}
255 | | ${vm1}= | And Guest VM with dpdk-testpmd connected via vhost-user is setup
256 | | ...     | ${dut1} | ${sock1} | ${sock2} | DUT1_VM1
257 | | Set To Dictionary | ${dut1_vm_refs} | DUT1_VM1 | ${vm1}
258 | | ${vm2}= | And Guest VM with dpdk-testpmd connected via vhost-user is setup
259 | | ...     | ${dut2} | ${sock1} | ${sock2} | DUT2_VM1
260 | | Set To Dictionary | ${dut2_vm_refs} | DUT2_VM1 | ${vm2}
261 | | And Setup scheduler policy for VPP on all DUTs
262 | | Then Find PDR using binary search and pps | ${framesize} | ${binary_min}
263 | | ...                                       | ${binary_max} | 3-node-bridge
264 | | ...                                       | ${min_rate} | ${max_rate}
265 | | ...                                       | ${threshold}
266 | | ...                                       | ${glob_loss_acceptance}
267 | | ...                                       | ${glob_loss_acceptance_type}
268
269 | TC07: 64B NDR binary search - DUT L2XC-VHOST - 2threads 2cores 1rxq
270 | | [Documentation]
271 | | ... | [Cfg] DUT runs L2XC switching config with 2 threads, 2 phy cores, \
272 | | ... | 1 receive queue per NIC port. [Ver] Find NDR for 64 Byte frames \
273 | | ... | using binary search start at 10GE linerate, step 10kpps.
274 | | [Tags] | 2_THREAD_NOHTT_RXQUEUES_1 | MULTI_THREAD | NDR
275 | | ${framesize}= | Set Variable | ${64}
276 | | ${min_rate}= | Set Variable | ${10000}
277 | | ${max_rate}= | Calculate pps | ${s_limit} | ${framesize}
278 | | ${binary_min}= | Set Variable | ${min_rate}
279 | | ${binary_max}= | Set Variable | ${max_rate}
280 | | ${threshold}= | Set Variable | ${min_rate}
281 | | ${dut1_vm_refs}= | Create Dictionary
282 | | ${dut2_vm_refs}= | Create Dictionary
283 | | Given Add '2' worker threads and rxqueues '1' in 3-node single-link topo
284 | | And   Add PCI devices to DUTs from 3-node single link topology
285 | | And   Add No Multi Seg to all DUTs
286 | | And   Apply startup configuration on all VPP DUTs
287 | | When  L2 xconnect with Vhost-User initialized in a 3-node circular topology
288 | | ...   | ${sock1} | ${sock2}
289 | | ${vm1}= | And Guest VM with dpdk-testpmd connected via vhost-user is setup
290 | | ...     | ${dut1} | ${sock1} | ${sock2} | DUT1_VM1
291 | | Set To Dictionary | ${dut1_vm_refs} | DUT1_VM1 | ${vm1}
292 | | ${vm2}= | And Guest VM with dpdk-testpmd connected via vhost-user is setup
293 | | ...     | ${dut2} | ${sock1} | ${sock2} | DUT2_VM1
294 | | Set To Dictionary | ${dut2_vm_refs} | DUT2_VM1 | ${vm2}
295 | | And Setup scheduler policy for VPP on all DUTs
296 | | Then Find NDR using binary search and pps | ${framesize} | ${binary_min}
297 | | ...                                       | ${binary_max} | 3-node-bridge
298 | | ...                                       | ${min_rate} | ${max_rate}
299 | | ...                                       | ${threshold}
300
301 | TC08: 64B PDR binary search - DUT L2XC-VHOST - 2threads 2cores 1rxq
302 | | [Documentation]
303 | | ... | [Cfg] DUT runs L2XC switching config with 2 threads, 2 phy cores, \
304 | | ... | 1 receive queue per NIC port. [Ver] Find PDR for 64 Byte frames \
305 | | ... | using binary search start at 10GE linerate, step 10kpps, LT=0.5%.
306 | | [Tags] | 2_THREAD_NOHTT_RXQUEUES_1 | MULTI_THREAD | PDR | SKIP_PATCH
307 | | ${framesize}= | Set Variable | ${64}
308 | | ${min_rate}= | Set Variable | ${10000}
309 | | ${max_rate}= | Calculate pps | ${s_limit} | ${framesize}
310 | | ${binary_min}= | Set Variable | ${min_rate}
311 | | ${binary_max}= | Set Variable | ${max_rate}
312 | | ${threshold}= | Set Variable | ${min_rate}
313 | | ${dut1_vm_refs}= | Create Dictionary
314 | | ${dut2_vm_refs}= | Create Dictionary
315 | | Given Add '2' worker threads and rxqueues '1' in 3-node single-link topo
316 | | And   Add PCI devices to DUTs from 3-node single link topology
317 | | And   Add No Multi Seg to all DUTs
318 | | And   Apply startup configuration on all VPP DUTs
319 | | When  L2 xconnect with Vhost-User initialized in a 3-node circular topology
320 | | ...   | ${sock1} | ${sock2}
321 | | ${vm1}= | And Guest VM with dpdk-testpmd connected via vhost-user is setup
322 | | ...     | ${dut1} | ${sock1} | ${sock2} | DUT1_VM1
323 | | Set To Dictionary | ${dut1_vm_refs} | DUT1_VM1 | ${vm1}
324 | | ${vm2}= | And Guest VM with dpdk-testpmd connected via vhost-user is setup
325 | | ...     | ${dut2} | ${sock1} | ${sock2} | DUT2_VM1
326 | | Set To Dictionary | ${dut2_vm_refs} | DUT2_VM1 | ${vm2}
327 | | And Setup scheduler policy for VPP on all DUTs
328 | | Then Find PDR using binary search and pps | ${framesize} | ${binary_min}
329 | | ...                                       | ${binary_max} | 3-node-bridge
330 | | ...                                       | ${min_rate} | ${max_rate}
331 | | ...                                       | ${threshold}
332 | | ...                                       | ${glob_loss_acceptance}
333 | | ...                                       | ${glob_loss_acceptance_type}
334
335 | TC09: 1518B NDR binary search - DUT L2XC-VHOST - 2threads 2cores 1rxq
336 | | [Documentation]
337 | | ... | [Cfg] DUT runs L2XC switching config with 2 threads, 2 phy cores, \
338 | | ... | 1 receive queue per NIC port. [Ver] Find NDR for 1518 Byte frames \
339 | | ... | using binary search start at 10GE linerate, step 10kpps.
340 | | [Tags] | 2_THREAD_NOHTT_RXQUEUES_1 | MULTI_THREAD | NDR | SKIP_PATCH
341 | | ${framesize}= | Set Variable | ${1518}
342 | | ${min_rate}= | Set Variable | ${10000}
343 | | ${max_rate}= | Calculate pps | ${s_limit} | ${framesize}
344 | | ${binary_min}= | Set Variable | ${min_rate}
345 | | ${binary_max}= | Set Variable | ${max_rate}
346 | | ${threshold}= | Set Variable | ${min_rate}
347 | | ${dut1_vm_refs}= | Create Dictionary
348 | | ${dut2_vm_refs}= | Create Dictionary
349 | | Given Add '2' worker threads and rxqueues '1' in 3-node single-link topo
350 | | And   Add PCI devices to DUTs from 3-node single link topology
351 | | And   Add No Multi Seg to all DUTs
352 | | And   Apply startup configuration on all VPP DUTs
353 | | When  L2 xconnect with Vhost-User initialized in a 3-node circular topology
354 | | ...   | ${sock1} | ${sock2}
355 | | ${vm1}= | And Guest VM with dpdk-testpmd connected via vhost-user is setup
356 | | ...     | ${dut1} | ${sock1} | ${sock2} | DUT1_VM1
357 | | Set To Dictionary | ${dut1_vm_refs} | DUT1_VM1 | ${vm1}
358 | | ${vm2}= | And Guest VM with dpdk-testpmd connected via vhost-user is setup
359 | | ...     | ${dut2} | ${sock1} | ${sock2} | DUT2_VM1
360 | | Set To Dictionary | ${dut2_vm_refs} | DUT2_VM1 | ${vm2}
361 | | And Setup scheduler policy for VPP on all DUTs
362 | | Then Find NDR using binary search and pps | ${framesize} | ${binary_min}
363 | | ...                                       | ${binary_max} | 3-node-bridge
364 | | ...                                       | ${min_rate} | ${max_rate}
365 | | ...                                       | ${threshold}
366
367 | TC10: 1518B PDR binary search - DUT L2XC-VHOST - 2threads 2cores 1rxq
368 | | [Documentation]
369 | | ... | [Cfg] DUT runs L2XC switching config with 2 threads, 2 phy cores, \
370 | | ... | 1 receive queue per NIC port. [Ver] Find PDR for 1518 Byte frames \
371 | | ... | using binary search start at 10GE linerate, step 10kpps, LT=0.5%.
372 | | [Tags] | 2_THREAD_NOHTT_RXQUEUES_1 | MULTI_THREAD | PDR | SKIP_PATCH
373 | | ${framesize}= | Set Variable | ${1518}
374 | | ${min_rate}= | Set Variable | ${10000}
375 | | ${max_rate}= | Calculate pps | ${s_limit} | ${framesize}
376 | | ${binary_min}= | Set Variable | ${min_rate}
377 | | ${binary_max}= | Set Variable | ${max_rate}
378 | | ${threshold}= | Set Variable | ${min_rate}
379 | | ${dut1_vm_refs}= | Create Dictionary
380 | | ${dut2_vm_refs}= | Create Dictionary
381 | | Given Add '2' worker threads and rxqueues '1' in 3-node single-link topo
382 | | And   Add PCI devices to DUTs from 3-node single link topology
383 | | And   Add No Multi Seg to all DUTs
384 | | And   Apply startup configuration on all VPP DUTs
385 | | When  L2 xconnect with Vhost-User initialized in a 3-node circular topology
386 | | ...   | ${sock1} | ${sock2}
387 | | ${vm1}= | And Guest VM with dpdk-testpmd connected via vhost-user is setup
388 | | ...     | ${dut1} | ${sock1} | ${sock2} | DUT1_VM1
389 | | Set To Dictionary | ${dut1_vm_refs} | DUT1_VM1 | ${vm1}
390 | | ${vm2}= | And Guest VM with dpdk-testpmd connected via vhost-user is setup
391 | | ...     | ${dut2} | ${sock1} | ${sock2} | DUT2_VM1
392 | | Set To Dictionary | ${dut2_vm_refs} | DUT2_VM1 | ${vm2}
393 | | And Setup scheduler policy for VPP on all DUTs
394 | | Then Find PDR using binary search and pps | ${framesize} | ${binary_min}
395 | | ...                                       | ${binary_max} | 3-node-bridge
396 | | ...                                       | ${min_rate} | ${max_rate}
397 | | ...                                       | ${threshold}
398 | | ...                                       | ${glob_loss_acceptance}
399 | | ...                                       | ${glob_loss_acceptance_type}
400
401 | TC11: IMIX_v4_1 NDR binary search - DUT L2XC-VHOST - 2threads 2cores 1rxq
402 | | [Documentation]
403 | | ... | [Cfg] DUT runs L2XC switching config with 2 threads, 2 phy cores, \
404 | | ... | 1 receive queue per NIC port. [Ver] Find NDR for IMIX_v4_1 frame \
405 | | ... | size using binary search start at 10GE linerate, step 5kpps.
406 | | ... | IMIX_v4_1 = (28x64B;16x570B;4x1518B)
407 | | [Tags] | 2_THREAD_NOHTT_RXQUEUES_1 | MULTI_THREAD | NDR | SKIP_PATCH
408 | | ${framesize}= | Set Variable | IMIX_v4_1
409 | | ${min_rate}= | Set Variable | ${10000}
410 | | ${max_rate}= | Calculate pps | ${s_limit} | ${framesize}
411 | | ${binary_min}= | Set Variable | ${min_rate}
412 | | ${binary_max}= | Set Variable | ${max_rate}
413 | | ${threshold}= | Set Variable | ${min_rate}
414 | | ${dut1_vm_refs}= | Create Dictionary
415 | | ${dut2_vm_refs}= | Create Dictionary
416 | | Given Add '2' worker threads and rxqueues '1' in 3-node single-link topo
417 | | And   Add PCI devices to DUTs from 3-node single link topology
418 | | And   Add No Multi Seg to all DUTs
419 | | And   Apply startup configuration on all VPP DUTs
420 | | When  L2 xconnect with Vhost-User initialized in a 3-node circular topology
421 | | ...   | ${sock1} | ${sock2}
422 | | ${vm1}= | And Guest VM with dpdk-testpmd connected via vhost-user is setup
423 | | ...     | ${dut1} | ${sock1} | ${sock2} | DUT1_VM1
424 | | Set To Dictionary | ${dut1_vm_refs} | DUT1_VM1 | ${vm1}
425 | | ${vm2}= | And Guest VM with dpdk-testpmd connected via vhost-user is setup
426 | | ...     | ${dut2} | ${sock1} | ${sock2} | DUT2_VM1
427 | | Set To Dictionary | ${dut2_vm_refs} | DUT2_VM1 | ${vm2}
428 | | And Setup scheduler policy for VPP on all DUTs
429 | | Then Find NDR using binary search and pps | ${framesize} | ${binary_min}
430 | | ...                                       | ${binary_max} | 3-node-bridge
431 | | ...                                       | ${min_rate} | ${max_rate}
432 | | ...                                       | ${threshold}
433
434 | TC12: IMIX_v4_1 PDR binary search - DUT L2XC-VHOST - 2threads 2cores 1rxq
435 | | [Documentation]
436 | | ... | [Cfg] DUT runs L2XC switching config with 2 threads, 2 phy cores, \
437 | | ... | 1 receive queue per NIC port. [Ver] Find PDR for IMIX_v4_1 frame \
438 | | ... | size using binary search start at 10GE linerate, step 5kpps, LT=0.5%.
439 | | ... | IMIX_v4_1 = (28x64B;16x570B;4x1518B)
440 | | [Tags] | 2_THREAD_NOHTT_RXQUEUES_1 | MULTI_THREAD | PDR | SKIP_PATCH
441 | | ${framesize}= | Set Variable | IMIX_v4_1
442 | | ${min_rate}= | Set Variable | ${10000}
443 | | ${max_rate}= | Calculate pps | ${s_limit} | ${framesize}
444 | | ${binary_min}= | Set Variable | ${min_rate}
445 | | ${binary_max}= | Set Variable | ${max_rate}
446 | | ${threshold}= | Set Variable | ${min_rate}
447 | | ${dut1_vm_refs}= | Create Dictionary
448 | | ${dut2_vm_refs}= | Create Dictionary
449 | | Given Add '2' worker threads and rxqueues '1' in 3-node single-link topo
450 | | And   Add PCI devices to DUTs from 3-node single link topology
451 | | And   Add No Multi Seg to all DUTs
452 | | And   Apply startup configuration on all VPP DUTs
453 | | When  L2 xconnect with Vhost-User initialized in a 3-node circular topology
454 | | ...   | ${sock1} | ${sock2}
455 | | ${vm1}= | And Guest VM with dpdk-testpmd connected via vhost-user is setup
456 | | ...     | ${dut1} | ${sock1} | ${sock2} | DUT1_VM1
457 | | Set To Dictionary | ${dut1_vm_refs} | DUT1_VM1 | ${vm1}
458 | | ${vm2}= | And Guest VM with dpdk-testpmd connected via vhost-user is setup
459 | | ...     | ${dut2} | ${sock1} | ${sock2} | DUT2_VM1
460 | | Set To Dictionary | ${dut2_vm_refs} | DUT2_VM1 | ${vm2}
461 | | And Setup scheduler policy for VPP on all DUTs
462 | | Then Find PDR using binary search and pps | ${framesize} | ${binary_min}
463 | | ...                                       | ${binary_max} | 3-node-bridge
464 | | ...                                       | ${min_rate} | ${max_rate}
465 | | ...                                       | ${threshold}
466 | | ...                                       | ${glob_loss_acceptance}
467 | | ...                                       | ${glob_loss_acceptance_type}
468
469 | TC13: 64B NDR binary search - DUT L2XC-VHOST - 4threads 4cores 2rxq
470 | | [Documentation]
471 | | ... | [Cfg] DUT runs L2XC switching config with 4 threads, 4 phy cores, \
472 | | ... | 2 receive queues per NIC port. [Ver] Find NDR for 64 Byte frames \
473 | | ... | using binary search start at 10GE linerate, step 10kpps.
474 | | [Tags] | 4_THREAD_NOHTT_RXQUEUES_2 | MULTI_THREAD | NDR
475 | | ${framesize}= | Set Variable | ${64}
476 | | ${min_rate}= | Set Variable | ${10000}
477 | | ${max_rate}= | Calculate pps | ${s_limit} | ${framesize}
478 | | ${binary_min}= | Set Variable | ${min_rate}
479 | | ${binary_max}= | Set Variable | ${max_rate}
480 | | ${threshold}= | Set Variable | ${min_rate}
481 | | ${dut1_vm_refs}= | Create Dictionary
482 | | ${dut2_vm_refs}= | Create Dictionary
483 | | Given Add '4' worker threads and rxqueues '2' in 3-node single-link topo
484 | | And   Add PCI devices to DUTs from 3-node single link topology
485 | | And   Add No Multi Seg to all DUTs
486 | | And   Apply startup configuration on all VPP DUTs
487 | | When  L2 xconnect with Vhost-User initialized in a 3-node circular topology
488 | | ...   | ${sock1} | ${sock2}
489 | | ${vm1}= | And Guest VM with dpdk-testpmd connected via vhost-user is setup
490 | | ...     | ${dut1} | ${sock1} | ${sock2} | DUT1_VM1
491 | | Set To Dictionary | ${dut1_vm_refs} | DUT1_VM1 | ${vm1}
492 | | ${vm2}= | And Guest VM with dpdk-testpmd connected via vhost-user is setup
493 | | ...     | ${dut2} | ${sock1} | ${sock2} | DUT2_VM1
494 | | Set To Dictionary | ${dut2_vm_refs} | DUT2_VM1 | ${vm2}
495 | | And Setup scheduler policy for VPP on all DUTs
496 | | Then Find NDR using binary search and pps | ${framesize} | ${binary_min}
497 | | ...                                       | ${binary_max} | 3-node-bridge
498 | | ...                                       | ${min_rate} | ${max_rate}
499 | | ...                                       | ${threshold}
500
501 | TC14: 64B PDR binary search - DUT L2XC-VHOST - 4threads 4cores 2rxq
502 | | [Documentation]
503 | | ... | [Cfg] DUT runs L2XC switching config with 4 threads, 4 phy cores, \
504 | | ... | 2 receive queues per NIC port. [Ver] Find PDR for 64 Byte frames \
505 | | ... | using binary search start at 10GE linerate, step 10kpps, LT=0.5%.
506 | | [Tags] | 4_THREAD_NOHTT_RXQUEUES_2 | MULTI_THREAD | PDR | SKIP_PATCH
507 | | ${framesize}= | Set Variable | ${64}
508 | | ${min_rate}= | Set Variable | ${10000}
509 | | ${max_rate}= | Calculate pps | ${s_limit} | ${framesize}
510 | | ${binary_min}= | Set Variable | ${min_rate}
511 | | ${binary_max}= | Set Variable | ${max_rate}
512 | | ${threshold}= | Set Variable | ${min_rate}
513 | | ${dut1_vm_refs}= | Create Dictionary
514 | | ${dut2_vm_refs}= | Create Dictionary
515 | | Given Add '4' worker threads and rxqueues '2' in 3-node single-link topo
516 | | And   Add PCI devices to DUTs from 3-node single link topology
517 | | And   Add No Multi Seg to all DUTs
518 | | And   Apply startup configuration on all VPP DUTs
519 | | When  L2 xconnect with Vhost-User initialized in a 3-node circular topology
520 | | ...   | ${sock1} | ${sock2}
521 | | ${vm1}= | And Guest VM with dpdk-testpmd connected via vhost-user is setup
522 | | ...     | ${dut1} | ${sock1} | ${sock2} | DUT1_VM1
523 | | Set To Dictionary | ${dut1_vm_refs} | DUT1_VM1 | ${vm1}
524 | | ${vm2}= | And Guest VM with dpdk-testpmd connected via vhost-user is setup
525 | | ...     | ${dut2} | ${sock1} | ${sock2} | DUT2_VM1
526 | | Set To Dictionary | ${dut2_vm_refs} | DUT2_VM1 | ${vm2}
527 | | And Setup scheduler policy for VPP on all DUTs
528 | | Then Find PDR using binary search and pps | ${framesize} | ${binary_min}
529 | | ...                                       | ${binary_max} | 3-node-bridge
530 | | ...                                       | ${min_rate} | ${max_rate}
531 | | ...                                       | ${threshold}
532 | | ...                                       | ${glob_loss_acceptance}
533 | | ...                                       | ${glob_loss_acceptance_type}
534
535 | TC15: 1518B NDR binary search - DUT L2XC-VHOST - 4threads 4cores 2rxq
536 | | [Documentation]
537 | | ... | [Cfg] DUT runs L2XC switching config with 4 threads, 4 phy cores, \
538 | | ... | 2 receive queues per NIC port. [Ver] Find NDR for 1518 Byte frames \
539 | | ... | using binary search start at 10GE linerate, step 10kpps.
540 | | [Tags] | 4_THREAD_NOHTT_RXQUEUES_2 | MULTI_THREAD | NDR | SKIP_PATCH
541 | | ${framesize}= | Set Variable | ${1518}
542 | | ${min_rate}= | Set Variable | ${10000}
543 | | ${max_rate}= | Calculate pps | ${s_limit} | ${framesize}
544 | | ${binary_min}= | Set Variable | ${min_rate}
545 | | ${binary_max}= | Set Variable | ${max_rate}
546 | | ${threshold}= | Set Variable | ${min_rate}
547 | | ${dut1_vm_refs}= | Create Dictionary
548 | | ${dut2_vm_refs}= | Create Dictionary
549 | | Given Add '4' worker threads and rxqueues '2' in 3-node single-link topo
550 | | And   Add PCI devices to DUTs from 3-node single link topology
551 | | And   Add No Multi Seg to all DUTs
552 | | And   Apply startup configuration on all VPP DUTs
553 | | When  L2 xconnect with Vhost-User initialized in a 3-node circular topology
554 | | ...   | ${sock1} | ${sock2}
555 | | ${vm1}= | And Guest VM with dpdk-testpmd connected via vhost-user is setup
556 | | ...     | ${dut1} | ${sock1} | ${sock2} | DUT1_VM1
557 | | Set To Dictionary | ${dut1_vm_refs} | DUT1_VM1 | ${vm1}
558 | | ${vm2}= | And Guest VM with dpdk-testpmd connected via vhost-user is setup
559 | | ...     | ${dut2} | ${sock1} | ${sock2} | DUT2_VM1
560 | | Set To Dictionary | ${dut2_vm_refs} | DUT2_VM1 | ${vm2}
561 | | And Setup scheduler policy for VPP on all DUTs
562 | | Then Find NDR using binary search and pps | ${framesize} | ${binary_min}
563 | | ...                                       | ${binary_max} | 3-node-bridge
564 | | ...                                       | ${min_rate} | ${max_rate}
565 | | ...                                       | ${threshold}
566
567 | TC16: 1518B PDR binary search - DUT L2XC-VHOST - 4threads 4cores 2rxq
568 | | [Documentation]
569 | | ... | [Cfg] DUT runs L2XC switching config with 4 threads, 4 phy cores, \
570 | | ... | 2 receive queues per NIC port. [Ver] Find PDR for 1518 Byte frames \
571 | | ... | using binary search start at 10GE linerate, step 10kpps, LT=0.5%.
572 | | [Tags] | 4_THREAD_NOHTT_RXQUEUES_2 | MULTI_THREAD | PDR | SKIP_PATCH
573 | | ${framesize}= | Set Variable | ${1518}
574 | | ${min_rate}= | Set Variable | ${10000}
575 | | ${max_rate}= | Calculate pps | ${s_limit} | ${framesize}
576 | | ${binary_min}= | Set Variable | ${min_rate}
577 | | ${binary_max}= | Set Variable | ${max_rate}
578 | | ${threshold}= | Set Variable | ${min_rate}
579 | | ${dut1_vm_refs}= | Create Dictionary
580 | | ${dut2_vm_refs}= | Create Dictionary
581 | | Given Add '4' worker threads and rxqueues '2' in 3-node single-link topo
582 | | And   Add PCI devices to DUTs from 3-node single link topology
583 | | And   Add No Multi Seg to all DUTs
584 | | And   Apply startup configuration on all VPP DUTs
585 | | When  L2 xconnect with Vhost-User initialized in a 3-node circular topology
586 | | ...   | ${sock1} | ${sock2}
587 | | ${vm1}= | And Guest VM with dpdk-testpmd connected via vhost-user is setup
588 | | ...     | ${dut1} | ${sock1} | ${sock2} | DUT1_VM1
589 | | Set To Dictionary | ${dut1_vm_refs} | DUT1_VM1 | ${vm1}
590 | | ${vm2}= | And Guest VM with dpdk-testpmd connected via vhost-user is setup
591 | | ...     | ${dut2} | ${sock1} | ${sock2} | DUT2_VM1
592 | | Set To Dictionary | ${dut2_vm_refs} | DUT2_VM1 | ${vm2}
593 | | And Setup scheduler policy for VPP on all DUTs
594 | | Then Find PDR using binary search and pps | ${framesize} | ${binary_min}
595 | | ...                                       | ${binary_max} | 3-node-bridge
596 | | ...                                       | ${min_rate} | ${max_rate}
597 | | ...                                       | ${threshold}
598 | | ...                                       | ${glob_loss_acceptance}
599 | | ...                                       | ${glob_loss_acceptance_type}
600
601 | TC17: IMIX_v4_1 NDR binary search - DUT L2XC-VHOST - 4threads 4cores 2rxq
602 | | [Documentation]
603 | | ... | [Cfg] DUT runs L2XC switching config with 4 threads, 4 phy cores, \
604 | | ... | 2 receive queues per NIC port. [Ver] Find NDR for IMIX_v4_1 frame \
605 | | ... | size using binary search start at 10GE linerate, step 5kpps.
606 | | ... | IMIX_v4_1 = (28x64B;16x570B;4x1518B)
607 | | [Tags] | 4_THREAD_NOHTT_RXQUEUES_2 | MULTI_THREAD | NDR | SKIP_PATCH
608 | | ${framesize}= | Set Variable | IMIX_v4_1
609 | | ${min_rate}= | Set Variable | ${10000}
610 | | ${max_rate}= | Calculate pps | ${s_limit} | ${framesize}
611 | | ${binary_min}= | Set Variable | ${min_rate}
612 | | ${binary_max}= | Set Variable | ${max_rate}
613 | | ${threshold}= | Set Variable | ${min_rate}
614 | | ${dut1_vm_refs}= | Create Dictionary
615 | | ${dut2_vm_refs}= | Create Dictionary
616 | | Given Add '4' worker threads and rxqueues '2' in 3-node single-link topo
617 | | And   Add PCI devices to DUTs from 3-node single link topology
618 | | And   Add No Multi Seg to all DUTs
619 | | And   Apply startup configuration on all VPP DUTs
620 | | When  L2 xconnect with Vhost-User initialized in a 3-node circular topology
621 | | ...   | ${sock1} | ${sock2}
622 | | ${vm1}= | And Guest VM with dpdk-testpmd connected via vhost-user is setup
623 | | ...     | ${dut1} | ${sock1} | ${sock2} | DUT1_VM1
624 | | Set To Dictionary | ${dut1_vm_refs} | DUT1_VM1 | ${vm1}
625 | | ${vm2}= | And Guest VM with dpdk-testpmd connected via vhost-user is setup
626 | | ...     | ${dut2} | ${sock1} | ${sock2} | DUT2_VM1
627 | | Set To Dictionary | ${dut2_vm_refs} | DUT2_VM1 | ${vm2}
628 | | And Setup scheduler policy for VPP on all DUTs
629 | | Then Find NDR using binary search and pps | ${framesize} | ${binary_min}
630 | | ...                                       | ${binary_max} | 3-node-bridge
631 | | ...                                       | ${min_rate} | ${max_rate}
632 | | ...                                       | ${threshold}
633
634 | TC18: IMIX_v4_1 PDR binary search - DUT L2XC-VHOST - 4threads 4cores 2rxq
635 | | [Documentation]
636 | | ... | [Cfg] DUT runs L2XC switching config with 4 threads, 4 phy cores, \
637 | | ... | 2 receive queues per NIC port. [Ver] Find PDR for IMIX_v4_1 frame \
638 | | ... | size using binary search start at 10GE linerate, step 5kpps, LT=0.5%.
639 | | ... | IMIX_v4_1 = (28x64B;16x570B;4x1518B)
640 | | [Tags] | 4_THREAD_NOHTT_RXQUEUES_2 | MULTI_THREAD | PDR | SKIP_PATCH
641 | | ${framesize}= | Set Variable | IMIX_v4_1
642 | | ${min_rate}= | Set Variable | ${10000}
643 | | ${max_rate}= | Calculate pps | ${s_limit} | ${framesize}
644 | | ${binary_min}= | Set Variable | ${min_rate}
645 | | ${binary_max}= | Set Variable | ${max_rate}
646 | | ${threshold}= | Set Variable | ${min_rate}
647 | | ${dut1_vm_refs}= | Create Dictionary
648 | | ${dut2_vm_refs}= | Create Dictionary
649 | | Given Add '4' worker threads and rxqueues '2' in 3-node single-link topo
650 | | And   Add PCI devices to DUTs from 3-node single link topology
651 | | And   Add No Multi Seg to all DUTs
652 | | And   Apply startup configuration on all VPP DUTs
653 | | When  L2 xconnect with Vhost-User initialized in a 3-node circular topology
654 | | ...   | ${sock1} | ${sock2}
655 | | ${vm1}= | And Guest VM with dpdk-testpmd connected via vhost-user is setup
656 | | ...     | ${dut1} | ${sock1} | ${sock2} | DUT1_VM1
657 | | Set To Dictionary | ${dut1_vm_refs} | DUT1_VM1 | ${vm1}
658 | | ${vm2}= | And Guest VM with dpdk-testpmd connected via vhost-user is setup
659 | | ...     | ${dut2} | ${sock1} | ${sock2} | DUT2_VM1
660 | | Set To Dictionary | ${dut2_vm_refs} | DUT2_VM1 | ${vm2}
661 | | And Setup scheduler policy for VPP on all DUTs
662 | | Then Find PDR using binary search and pps | ${framesize} | ${binary_min}
663 | | ...                                       | ${binary_max} | 3-node-bridge
664 | | ...                                       | ${min_rate} | ${max_rate}
665 | | ...                                       | ${threshold}
666 | | ...                                       | ${glob_loss_acceptance}
667 | | ...                                       | ${glob_loss_acceptance_type}
668