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