1 # Copyright 2015-2016 Intel Corporation.
3 # Licensed under the Apache License, Version 2.0 (the "License");
4 # you may not use this file except in compliance with the License.
5 # You may obtain a copy of the License at
7 # http://www.apache.org/licenses/LICENSE-2.0
9 # Unless required by applicable law or agreed to in writing, software
10 # distributed under the License is distributed on an "AS IS" BASIS,
11 # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12 # See the License for the specific language governing permissions and
13 # limitations under the License.
15 # The 1st value of SUPPORTED_TUNNELING_PROTO is used as the default
16 # tunneling protocol for OP2P tests.
17 SUPPORTED_TUNNELING_PROTO = ['vxlan', 'gre', 'geneve']
20 # Generic test configuration options are described at conf/01_testcases.conf
24 # Options specific to integration testcases are described below:
26 # Required for OP2P tests
27 # "Tunnel Type": ["vxlan"|"gre"|"geneve"] # Tunnel Type defines tunneling protocol to use.
28 # # It can be overridden by cli option tunnel_type.
30 # # "vxlan" - iteration of destination MAC address
31 # # "gre" - iteration of destination IP address
32 # # "geneve" - iteration of destination UDP port
33 # # Default value is "vxlan".
35 # biDirectional testing for OP2P is not yet supported.
36 # biDirectional must be set to False.
38 # "TestSteps": [] # Definition of integration test steps.
39 # # In case that this list is defined, then
40 # # vsperf will execute defined test steps
41 # # one by one. It can be used to configure
42 # # vswitch, insert flows and transmit traffic.
43 # # It is possible to refer to result of any
44 # # previous step through #STEP[i][j] macro.
45 # # Where i is a number of step (starts from 0)
46 # # and j is index of result returned by step i.
49 # Common TestSteps parts ("macros")
53 STEP_VSWITCH_P2P_FLOWS_INIT = [
54 ['vswitch', 'add_switch', 'int_br0'], # STEP 0
55 ['vswitch', 'add_phy_port', 'int_br0'], # STEP 1
56 ['vswitch', 'add_phy_port', 'int_br0'], # STEP 2
57 ['vswitch', 'add_flow', 'int_br0', {'in_port': '#STEP[1][1]', 'actions': ['output:#STEP[2][1]'], 'idle_timeout': '0'}],
58 ['vswitch', 'add_flow', 'int_br0', {'in_port': '#STEP[2][1]', 'actions': ['output:#STEP[1][1]'], 'idle_timeout': '0'}],
61 STEP_VSWITCH_P2P_FLOWS_FINIT = [
62 ['vswitch', 'dump_flows', 'int_br0'],
63 ['vswitch', 'del_flow', 'int_br0', {'in_port': '#STEP[1][1]'}],
64 ['vswitch', 'del_flow', 'int_br0', {'in_port': '#STEP[2][1]'}],
65 ['vswitch', 'del_port', 'int_br0', '#STEP[1][0]'],
66 ['vswitch', 'del_port', 'int_br0', '#STEP[2][0]'],
67 ['vswitch', 'del_switch', 'int_br0'],
71 STEP_VSWITCH_PVP_INIT = [
72 ['vswitch', 'add_switch', 'int_br0'], # STEP 0
73 ['vswitch', 'add_phy_port', 'int_br0'], # STEP 1
74 ['vswitch', 'add_phy_port', 'int_br0'], # STEP 2
75 ['vswitch', 'add_vport', 'int_br0'], # STEP 3 vm1 ports
76 ['vswitch', 'add_vport', 'int_br0'], # STEP 4
79 STEP_VSWITCH_PVP_FINIT = [
80 ['vswitch', 'del_port', 'int_br0', '#STEP[1][0]'],
81 ['vswitch', 'del_port', 'int_br0', '#STEP[2][0]'],
82 ['vswitch', 'del_port', 'int_br0', '#STEP[3][0]'],
83 ['vswitch', 'del_port', 'int_br0', '#STEP[4][0]'],
84 ['vswitch', 'del_switch', 'int_br0'],
87 STEP_VSWITCH_PVP_FLOWS_INIT = STEP_VSWITCH_PVP_INIT + [
88 ['vswitch', 'add_flow', 'int_br0', {'in_port': '#STEP[1][1]', 'actions': ['output:#STEP[3][1]'], 'idle_timeout': '0'}],
89 ['vswitch', 'add_flow', 'int_br0', {'in_port': '#STEP[4][1]', 'actions': ['output:#STEP[2][1]'], 'idle_timeout': '0'}],
90 ['vswitch', 'add_flow', 'int_br0', {'in_port': '#STEP[2][1]', 'actions': ['output:#STEP[4][1]'], 'idle_timeout': '0'}],
91 ['vswitch', 'add_flow', 'int_br0', {'in_port': '#STEP[3][1]', 'actions': ['output:#STEP[1][1]'], 'idle_timeout': '0'}],
94 STEP_VSWITCH_PVP_FLOWS_FINIT = [
95 ['vswitch', 'dump_flows', 'int_br0'],
96 ['vswitch', 'del_flow', 'int_br0', {'in_port': '#STEP[1][1]'}],
97 ['vswitch', 'del_flow', 'int_br0', {'in_port': '#STEP[4][1]'}],
98 ['vswitch', 'del_flow', 'int_br0', {'in_port': '#STEP[2][1]'}],
99 ['vswitch', 'del_flow', 'int_br0', {'in_port': '#STEP[3][1]'}],
100 ] + STEP_VSWITCH_PVP_FINIT
102 STEP_VSWITCH_PVVP_INIT = STEP_VSWITCH_PVP_INIT + [
103 ['vswitch', 'add_vport', 'int_br0'], # STEP 5 vm2 ports
104 ['vswitch', 'add_vport', 'int_br0'], # STEP 6
107 STEP_VSWITCH_PVVP_FINIT = [
108 ['vswitch', 'del_port', 'int_br0', '#STEP[5][0]'], # vm2 ports
109 ['vswitch', 'del_port', 'int_br0', '#STEP[6][0]'],
110 ] + STEP_VSWITCH_PVP_FINIT
112 STEP_VSWITCH_PVVP_FLOWS_INIT = STEP_VSWITCH_PVVP_INIT + [
113 ['vswitch', 'add_flow', 'int_br0', {'in_port': '#STEP[1][1]', 'actions': ['output:#STEP[3][1]'], 'idle_timeout': '0'}],
114 ['vswitch', 'add_flow', 'int_br0', {'in_port': '#STEP[4][1]', 'actions': ['output:#STEP[5][1]'], 'idle_timeout': '0'}],
115 ['vswitch', 'add_flow', 'int_br0', {'in_port': '#STEP[6][1]', 'actions': ['output:#STEP[2][1]'], 'idle_timeout': '0'}],
116 ['vswitch', 'add_flow', 'int_br0', {'in_port': '#STEP[2][1]', 'actions': ['output:#STEP[6][1]'], 'idle_timeout': '0'}],
117 ['vswitch', 'add_flow', 'int_br0', {'in_port': '#STEP[5][1]', 'actions': ['output:#STEP[4][1]'], 'idle_timeout': '0'}],
118 ['vswitch', 'add_flow', 'int_br0', {'in_port': '#STEP[3][1]', 'actions': ['output:#STEP[1][1]'], 'idle_timeout': '0'}],
121 STEP_VSWITCH_PVVP_FLOWS_FINIT = [
122 ['vswitch', 'dump_flows', 'int_br0'],
123 ['vswitch', 'del_flow', 'int_br0', {'in_port': '#STEP[1][1]'}],
124 ['vswitch', 'del_flow', 'int_br0', {'in_port': '#STEP[4][1]'}],
125 ['vswitch', 'del_flow', 'int_br0', {'in_port': '#STEP[6][1]'}],
126 ['vswitch', 'del_flow', 'int_br0', {'in_port': '#STEP[2][1]'}],
127 ['vswitch', 'del_flow', 'int_br0', {'in_port': '#STEP[5][1]'}],
128 ['vswitch', 'del_flow', 'int_br0', {'in_port': '#STEP[3][1]'}],
129 ] + STEP_VSWITCH_PVVP_FINIT
131 STEP_VSWITCH_P4VP_INIT = STEP_VSWITCH_PVVP_INIT + [
132 ['vswitch', 'add_vport', 'int_br0'], # STEP 7 vm3 ports
133 ['vswitch', 'add_vport', 'int_br0'], # STEP 8
134 ['vswitch', 'add_vport', 'int_br0'], # STEP 9 vm4 ports
135 ['vswitch', 'add_vport', 'int_br0'], # STEP 10
138 STEP_VSWITCH_P4VP_FINIT = [
139 ['vswitch', 'del_port', 'int_br0', '#STEP[7][0]'], # vm3 ports
140 ['vswitch', 'del_port', 'int_br0', '#STEP[8][0]'],
141 ['vswitch', 'del_port', 'int_br0', '#STEP[9][0]'], # vm4 ports
142 ['vswitch', 'del_port', 'int_br0', '#STEP[10][0]'],
143 ] + STEP_VSWITCH_PVVP_FINIT
145 STEP_VSWITCH_P4VP_FLOWS_INIT = STEP_VSWITCH_P4VP_INIT + [
146 ['vswitch', 'add_flow', 'int_br0', {'in_port': '#STEP[1][1]', \
147 'actions': ['output:#STEP[3][1]'], 'idle_timeout': '0'}],
148 ['vswitch', 'add_flow', 'int_br0', {'in_port': '#STEP[4][1]', \
149 'actions': ['output:#STEP[5][1]'], 'idle_timeout': '0'}],
150 ['vswitch', 'add_flow', 'int_br0', {'in_port': '#STEP[6][1]', \
151 'actions': ['output:#STEP[7][1]'], 'idle_timeout': '0'}],
152 ['vswitch', 'add_flow', 'int_br0', {'in_port': '#STEP[8][1]', \
153 'actions': ['output:#STEP[9][1]'], 'idle_timeout': '0'}],
154 ['vswitch', 'add_flow', 'int_br0', {'in_port': '#STEP[10][1]', \
155 'actions': ['output:#STEP[2][1]'], 'idle_timeout': '0'}],
156 ['vswitch', 'add_flow', 'int_br0', {'in_port': '#STEP[2][1]', \
157 'actions': ['output:#STEP[10][1]'], 'idle_timeout': '0'}],
158 ['vswitch', 'add_flow', 'int_br0', {'in_port': '#STEP[9][1]', \
159 'actions': ['output:#STEP[8][1]'], 'idle_timeout': '0'}],
160 ['vswitch', 'add_flow', 'int_br0', {'in_port': '#STEP[7][1]', \
161 'actions': ['output:#STEP[6][1]'], 'idle_timeout': '0'}],
162 ['vswitch', 'add_flow', 'int_br0', {'in_port': '#STEP[5][1]', \
163 'actions': ['output:#STEP[4][1]'], 'idle_timeout': '0'}],
164 ['vswitch', 'add_flow', 'int_br0', {'in_port': '#STEP[3][1]', \
165 'actions': ['output:#STEP[1][1]'], 'idle_timeout': '0'}],
168 STEP_VSWITCH_P4VP_FLOWS_FINIT = [
169 ['vswitch', 'dump_flows', 'int_br0'],
170 ['vswitch', 'del_flow', 'int_br0'],
171 ] + STEP_VSWITCH_P4VP_FINIT
173 STEP_VSWITCH_2PHY_2VM_INIT = STEP_VSWITCH_PVVP_INIT
175 STEP_VSWITCH_2PHY_2VM_FINIT = STEP_VSWITCH_PVVP_FINIT
177 STEP_VSWITCH_2_PARALLEL_VM_FLOWS_INIT = [
178 # Setup Flows to reply ICMPv6 and similar packets, so to
179 # avoid flooding the internal port with their re-transmissions
180 ['vswitch', 'add_flow', 'int_br0', \
181 {'priority': '1', 'dl_src': '00:00:00:00:00:01', \
182 'actions': ['output:#STEP[3][1]'], 'idle_timeout': '0'}],
183 ['vswitch', 'add_flow', 'int_br0', \
184 {'priority': '1', 'dl_src': '00:00:00:00:00:02', \
185 'actions': ['output:#STEP[4][1]'], 'idle_timeout': '0'}],
186 ['vswitch', 'add_flow', 'int_br0', \
187 {'priority': '1', 'dl_src': '00:00:00:00:00:03', \
188 'actions': ['output:#STEP[5][1]'], 'idle_timeout': '0'}],
189 ['vswitch', 'add_flow', 'int_br0', \
190 {'priority': '1', 'dl_src': '00:00:00:00:00:04', \
191 'actions': ['output:#STEP[6][1]'], 'idle_timeout': '0'}],
192 # Forward UDP packets depending on dest port
193 ['vswitch', 'add_flow', 'int_br0', {'in_port': '#STEP[1][1]', \
194 'dl_type': '0x0800', 'nw_proto': '17', 'udp_dst': '0', \
195 'actions': ['output:#STEP[3][1]'], 'idle_timeout': '0'}],
196 ['vswitch', 'add_flow', 'int_br0', {'in_port': '#STEP[1][1]', \
197 'dl_type': '0x0800', 'nw_proto': '17', 'udp_dst': '1', \
198 'actions': ['output:#STEP[5][1]'], 'idle_timeout': '0'}],
199 # Send VM outputs to phy port #2
200 ['vswitch', 'add_flow', 'int_br0', {'in_port': '#STEP[4][1]', \
201 'actions': ['output:#STEP[2][1]'], 'idle_timeout': '0'}],
202 ['vswitch', 'add_flow', 'int_br0', {'in_port': '#STEP[6][1]', \
203 'actions': ['output:#STEP[2][1]'], 'idle_timeout': '0'}],
206 STEP_VSWITCH_2PHY_4VM_INIT = STEP_VSWITCH_2PHY_2VM_INIT + [
207 ['vswitch', 'add_vport', 'int_br0'], # STEP 7 vm3 ports
208 ['vswitch', 'add_vport', 'int_br0'], # STEP 8
209 ['vswitch', 'add_vport', 'int_br0'], # STEP 9 vm4 ports
210 ['vswitch', 'add_vport', 'int_br0'], # STEP 10
213 STEP_VSWITCH_2PHY_4VM_FINIT = [
214 ['vswitch', 'del_port', 'int_br0', '#STEP[7][0]'], # vm3 ports
215 ['vswitch', 'del_port', 'int_br0', '#STEP[8][0]'],
216 ['vswitch', 'del_port', 'int_br0', '#STEP[9][0]'], # vm4 ports
217 ['vswitch', 'del_port', 'int_br0', '#STEP[10][0]'],
218 ] + STEP_VSWITCH_2PHY_2VM_FINIT
220 STEP_VSWITCH_FLOWS_FINIT = [
221 ['vswitch', 'dump_flows', 'int_br0'],
222 ['vswitch', 'del_flow', 'int_br0'],
225 STEP_VSWITCH_4_PARALLEL_VM_FLOWS_INIT = [
226 # Setup Flows to reply ICMPv6 and similar packets, so to
227 # avoid flooding the internal port with their re-transmissions
228 ['vswitch', 'add_flow', 'int_br0', \
229 {'priority': '1', 'dl_src': '00:00:00:00:00:01', \
230 'actions': ['output:#STEP[3][1]'], 'idle_timeout': '0'}],
231 ['vswitch', 'add_flow', 'int_br0', \
232 {'priority': '1', 'dl_src': '00:00:00:00:00:02', \
233 'actions': ['output:#STEP[4][1]'], 'idle_timeout': '0'}],
234 ['vswitch', 'add_flow', 'int_br0', \
235 {'priority': '1', 'dl_src': '00:00:00:00:00:03', \
236 'actions': ['output:#STEP[5][1]'], 'idle_timeout': '0'}],
237 ['vswitch', 'add_flow', 'int_br0', \
238 {'priority': '1', 'dl_src': '00:00:00:00:00:04', \
239 'actions': ['output:#STEP[6][1]'], 'idle_timeout': '0'}],
240 ['vswitch', 'add_flow', 'int_br0', \
241 {'priority': '1', 'dl_src': '00:00:00:00:00:05', \
242 'actions': ['output:#STEP[7][1]'], 'idle_timeout': '0'}],
243 ['vswitch', 'add_flow', 'int_br0', \
244 {'priority': '1', 'dl_src': '00:00:00:00:00:06', \
245 'actions': ['output:#STEP[8][1]'], 'idle_timeout': '0'}],
246 ['vswitch', 'add_flow', 'int_br0', \
247 {'priority': '1', 'dl_src': '00:00:00:00:00:07', \
248 'actions': ['output:#STEP[9][1]'], 'idle_timeout': '0'}],
249 ['vswitch', 'add_flow', 'int_br0', \
250 {'priority': '1', 'dl_src': '00:00:00:00:00:08', \
251 'actions': ['output:#STEP[10][1]'], 'idle_timeout': '0'}],
252 # Forward UDP packets depending on dest port
253 ['vswitch', 'add_flow', 'int_br0', {'in_port': '#STEP[1][1]', \
254 'dl_type': '0x0800', 'nw_proto': '17', 'udp_dst': '0', \
255 'actions': ['output:#STEP[3][1]'], 'idle_timeout': '0'}],
256 ['vswitch', 'add_flow', 'int_br0', {'in_port': '#STEP[1][1]', \
257 'dl_type': '0x0800', 'nw_proto': '17', 'udp_dst': '1', \
258 'actions': ['output:#STEP[5][1]'], 'idle_timeout': '0'}],
259 ['vswitch', 'add_flow', 'int_br0', {'in_port': '#STEP[1][1]', \
260 'dl_type': '0x0800', 'nw_proto': '17', 'udp_dst': '2', \
261 'actions': ['output:#STEP[7][1]'], 'idle_timeout': '0'}],
262 ['vswitch', 'add_flow', 'int_br0', {'in_port': '#STEP[1][1]', \
263 'dl_type': '0x0800', 'nw_proto': '17', 'udp_dst': '3', \
264 'actions': ['output:#STEP[9][1]'], 'idle_timeout': '0'}],
265 # Send VM outputs to phy port #2
266 ['vswitch', 'add_flow', 'int_br0', {'in_port': '#STEP[4][1]', \
267 'actions': ['output:#STEP[2][1]'], 'idle_timeout': '0'}],
268 ['vswitch', 'add_flow', 'int_br0', {'in_port': '#STEP[6][1]', \
269 'actions': ['output:#STEP[2][1]'], 'idle_timeout': '0'}],
270 ['vswitch', 'add_flow', 'int_br0', {'in_port': '#STEP[8][1]', \
271 'actions': ['output:#STEP[2][1]'], 'idle_timeout': '0'}],
272 ['vswitch', 'add_flow', 'int_br0', {'in_port': '#STEP[10][1]', \
273 'actions': ['output:#STEP[2][1]'], 'idle_timeout': '0'}],
276 STEP_VSWITCH_2PHY_6VM_INIT = STEP_VSWITCH_2PHY_4VM_INIT + [
277 ['vswitch', 'add_vport', 'int_br0'], # STEP 11 vm5 vhu8
278 ['vswitch', 'add_vport', 'int_br0'], # STEP 12 vhu9
279 ['vswitch', 'add_vport', 'int_br0'], # STEP 13 vm6 vhu10
280 ['vswitch', 'add_vport', 'int_br0'], # STEP 14 vhu11
283 STEP_VSWITCH_6_PARALLEL_VM_FLOWS_INIT = STEP_VSWITCH_4_PARALLEL_VM_FLOWS_INIT + [
284 ['vswitch', 'add_flow', 'int_br0', \
285 {'priority': '1', 'dl_src': '00:00:00:00:00:09', \
286 'actions': ['output:#STEP[11][1]'], 'idle_timeout': '0'}],
287 ['vswitch', 'add_flow', 'int_br0', \
288 {'priority': '1', 'dl_src': '00:00:00:00:00:0a', \
289 'actions': ['output:#STEP[12][1]'], 'idle_timeout': '0'}],
290 ['vswitch', 'add_flow', 'int_br0', \
291 {'priority': '1', 'dl_src': '00:00:00:00:00:0b', \
292 'actions': ['output:#STEP[13][1]'], 'idle_timeout': '0'}],
293 ['vswitch', 'add_flow', 'int_br0', \
294 {'priority': '1', 'dl_src': '00:00:00:00:00:0c', \
295 'actions': ['output:#STEP[14][1]'], 'idle_timeout': '0'}],
296 # Forward UDP packets depending on dest port
297 ['vswitch', 'add_flow', 'int_br0', {'in_port': '#STEP[1][1]', \
298 'dl_type': '0x0800', 'nw_proto': '17', 'udp_dst': '4', \
299 'actions': ['output:#STEP[11][1]'], 'idle_timeout': '0'}],
300 ['vswitch', 'add_flow', 'int_br0', {'in_port': '#STEP[1][1]', \
301 'dl_type': '0x0800', 'nw_proto': '17', 'udp_dst': '5', \
302 'actions': ['output:#STEP[13][1]'], 'idle_timeout': '0'}],
303 # Send VM outputs to phy port #2
304 ['vswitch', 'add_flow', 'int_br0', {'in_port': '#STEP[12][1]', \
305 'actions': ['output:#STEP[2][1]'], 'idle_timeout': '0'}],
306 ['vswitch', 'add_flow', 'int_br0', {'in_port': '#STEP[14][1]', \
307 'actions': ['output:#STEP[2][1]'], 'idle_timeout': '0'}],
310 STEP_VSWITCH_2PHY_6VM_FINIT = [
311 ['vswitch', 'del_port', 'int_br0', '#STEP[11][0]'], # vm5 ports
312 ['vswitch', 'del_port', 'int_br0', '#STEP[12][0]'],
313 ['vswitch', 'del_port', 'int_br0', '#STEP[13][0]'], # vm6 ports
314 ['vswitch', 'del_port', 'int_br0', '#STEP[14][0]'],
315 ] + STEP_VSWITCH_2PHY_4VM_FINIT
318 # Definition of integration tests
320 INTEGRATION_TESTS = [
322 "Name": "overlay_p2p_mod_tput",
323 "Traffic Type": "rfc2544",
324 "Deployment": "ptunp",
325 "biDirectional": 'True',
326 "Tunnel Type": "vxlan",
327 "Description": ("Tunneling Throughput RFC2544 Test."
328 "The encap and decap are performed inside the "
329 "virtual switch itself in each direction to avoid "
330 "the need of ingress overlay traffic."),
333 "Name": "overlay_p2p_tput",
334 "Traffic Type": "rfc2544",
335 "Deployment": "op2p",
336 "biDirectional": 'False',
337 "Tunnel Type": SUPPORTED_TUNNELING_PROTO[0],
338 "Tunnel Operation": "encapsulation",
339 "Description": "Overlay Encapsulation Throughput RFC2544 Test",
342 "Name": "overlay_p2p_cont",
343 "Traffic Type": "continuous",
344 "Deployment": "op2p",
345 "biDirectional": 'False',
346 "Tunnel Type": SUPPORTED_TUNNELING_PROTO[0],
347 "Tunnel Operation": "encapsulation",
348 "Description": "Overlay Encapsulation Continuous Stream",
351 "Name": "overlay_p2p_decap_tput",
352 "Traffic Type": "rfc2544",
353 "Deployment": "op2p",
354 "biDirectional": 'False',
355 "Tunnel Type": SUPPORTED_TUNNELING_PROTO[0],
356 "Tunnel Operation": "decapsulation",
357 "Description": "Overlay Decapsulation Throughput RFC2544 Test",
360 "Name": "overlay_p2p_decap_cont",
361 "Traffic Type": "continuous",
362 "Deployment": "op2p",
363 "biDirectional": 'False',
364 "Tunnel Type": SUPPORTED_TUNNELING_PROTO[0],
365 "Tunnel Operation": "decapsulation",
366 "Description": "Overlay Decapsulation Continuous Stream",
369 "Name": "vswitch_add_del_bridge",
370 "Deployment": "clean",
371 "Description": "vSwitch - add and delete bridge",
373 ['vswitch', 'add_switch', 'int_br0'],
374 ['vswitch', 'del_switch', 'int_br0'],
378 "Name": "vswitch_add_del_bridges",
379 "Deployment": "clean",
380 "Description": "vSwitch - add and delete bridges",
382 ['vswitch', 'add_switch', 'int_br0'],
383 ['vswitch', 'add_switch', 'int_br1'],
384 ['vswitch', 'del_switch', 'int_br0'],
385 ['vswitch', 'del_switch', 'int_br1'],
389 "Name": "vswitch_add_del_phy_port",
390 "Deployment": "clean",
391 "Description": "vSwitch - add and delete physical port",
393 ['vswitch', 'add_switch', 'int_br0'],
394 ['vswitch', 'add_phy_port', 'int_br0'],
395 ['vswitch', 'del_port', 'int_br0', '#STEP[1][0]'],
396 ['vswitch', 'del_switch', 'int_br0'],
400 "Name": "vswitch_add_del_phy_ports",
401 "Deployment": "clean",
402 "Description": "vSwitch - add and delete physical ports",
404 ['vswitch', 'add_switch', 'int_br0'],
405 ['vswitch', 'add_phy_port', 'int_br0'],
406 ['vswitch', 'add_phy_port', 'int_br0'],
407 ['vswitch', 'del_port', 'int_br0', '#STEP[1][0]'],
408 ['vswitch', 'del_port', 'int_br0', '#STEP[2][0]'],
409 ['vswitch', 'del_switch', 'int_br0'],
413 "Name": "vswitch_add_del_vport",
414 "Deployment": "clean",
415 "Description": "vSwitch - add and delete virtual port",
417 ['vswitch', 'add_switch', 'int_br0'],
418 ['vswitch', 'add_vport', 'int_br0'],
419 ['vswitch', 'del_port', 'int_br0', '#STEP[1][0]'],
420 ['vswitch', 'del_switch', 'int_br0'],
424 "Name": "vswitch_add_del_vports",
425 "Deployment": "clean",
426 "Description": "vSwitch - add and delete virtual ports",
428 ['vswitch', 'add_switch', 'int_br0'],
429 ['vswitch', 'add_vport', 'int_br0'],
430 ['vswitch', 'add_vport', 'int_br0'],
431 ['vswitch', 'del_port', 'int_br0', '#STEP[1][0]'],
432 ['vswitch', 'del_port', 'int_br0', '#STEP[2][0]'],
433 ['vswitch', 'del_switch', 'int_br0'],
437 "Name": "vswitch_add_del_flow",
438 "Deployment": "clean",
439 "Description": "vSwitch - add and delete flow",
441 ['vswitch', 'add_switch', 'int_br0'],
442 ['vswitch', 'add_phy_port', 'int_br0'],
443 ['vswitch', 'add_phy_port', 'int_br0'],
444 ['vswitch', 'add_flow', 'int_br0', {'in_port': '#STEP[1][1]', 'actions': ['output:#STEP[2][1]'], 'idle_timeout': '0'}],
445 ['vswitch', 'del_flow', 'int_br0', {'in_port': '#STEP[1][1]'}],
446 ['vswitch', 'del_port', 'int_br0', '#STEP[1][0]'],
447 ['vswitch', 'del_port', 'int_br0', '#STEP[2][0]'],
448 ['vswitch', 'del_switch', 'int_br0'],
452 "Name": "vswitch_add_del_flows",
453 "Deployment": "clean",
454 "Description": "vSwitch - add and delete flows",
455 "TestSteps": STEP_VSWITCH_P2P_FLOWS_INIT +
456 STEP_VSWITCH_P2P_FLOWS_FINIT
459 "Name": "vswitch_p2p_tput",
460 "Deployment": "clean",
461 "Description": "vSwitch - configure switch and execute RFC2544 throughput test",
462 "TestSteps": STEP_VSWITCH_P2P_FLOWS_INIT +
464 ['trafficgen', 'send_traffic', {'traffic_type' : 'throughput', 'bidir' : 'True'}],
466 STEP_VSWITCH_P2P_FLOWS_FINIT
469 "Name": "vswitch_p2p_back2back",
470 "Deployment": "clean",
471 "Description": "vSwitch - configure switch and execute RFC2544 back2back test",
472 "TestSteps": STEP_VSWITCH_P2P_FLOWS_INIT +
474 ['trafficgen', 'send_traffic', {'traffic_type' : 'back2back', 'bidir' : 'True'}],
476 STEP_VSWITCH_P2P_FLOWS_FINIT
479 "Name": "vswitch_p2p_cont",
480 "Deployment": "clean",
481 "Description": "vSwitch - configure switch and execute continuous stream test",
482 "TestSteps": STEP_VSWITCH_P2P_FLOWS_INIT +
484 ['trafficgen', 'send_traffic', {'traffic_type' : 'continuous', 'bidir' : 'True'}],
486 STEP_VSWITCH_P2P_FLOWS_FINIT
489 "Name": "vswitch_pvp",
490 "Deployment": "clean",
491 "Description": "vSwitch - configure switch and one vnf",
492 "TestSteps": STEP_VSWITCH_PVP_INIT +
497 STEP_VSWITCH_PVP_FINIT
500 "Name": "vswitch_pvp_tput",
501 "Deployment": "clean",
502 "Description": "vSwitch - configure switch, vnf and execute RFC2544 throughput test",
503 "TestSteps": STEP_VSWITCH_PVP_FLOWS_INIT +
506 ['trafficgen', 'send_traffic', {'traffic_type' : 'throughput', 'bidir' : 'True'}],
509 STEP_VSWITCH_PVP_FLOWS_FINIT
512 "Name": "vswitch_pvp_back2back",
513 "Deployment": "clean",
514 "Description": "vSwitch - configure switch, vnf and execute RFC2544 back2back test",
515 "TestSteps": STEP_VSWITCH_PVP_FLOWS_INIT +
518 ['trafficgen', 'send_traffic', {'traffic_type' : 'back2back', 'bidir' : 'True'}],
521 STEP_VSWITCH_PVP_FLOWS_FINIT
524 "Name": "vswitch_pvp_cont",
525 "Deployment": "clean",
526 "Description": "vSwitch - configure switch, vnf and execute continuous stream test",
527 "TestSteps": STEP_VSWITCH_PVP_FLOWS_INIT +
530 ['trafficgen', 'send_traffic', {'traffic_type' : 'continuous', 'bidir' : 'True'}],
533 STEP_VSWITCH_PVP_FLOWS_FINIT
536 "Name": "vswitch_pvp_all",
537 "Deployment": "clean",
538 "Description": "vSwitch - configure switch, vnf and execute all test types",
539 "TestSteps": STEP_VSWITCH_PVP_FLOWS_INIT +
542 ['trafficgen', 'send_traffic', {'traffic_type' : 'throughput', 'bidir' : 'True'}],
543 ['trafficgen', 'send_traffic', {'traffic_type' : 'back2back', 'bidir' : 'True'}],
544 ['trafficgen', 'send_traffic', {'traffic_type' : 'continuous', 'bidir' : 'True'}],
547 STEP_VSWITCH_PVP_FLOWS_FINIT
550 "Name": "vswitch_pvvp",
551 "Deployment": "clean",
552 "Description": "vSwitch - configure switch and two vnfs",
553 "TestSteps": STEP_VSWITCH_PVVP_INIT +
560 STEP_VSWITCH_PVVP_FINIT
563 "Name": "vswitch_pvvp_tput",
564 "Deployment": "clean",
565 "Description": "vSwitch - configure switch, two chained vnfs and execute RFC2544 throughput test",
566 "TestSteps": STEP_VSWITCH_PVVP_FLOWS_INIT +
570 ['trafficgen', 'send_traffic', {'traffic_type' : 'throughput', 'bidir' : 'True'}],
574 STEP_VSWITCH_PVVP_FLOWS_FINIT
577 "Name": "vswitch_pvvp_back2back",
578 "Deployment": "clean",
579 "Description": "vSwitch - configure switch, two chained vnfs and execute RFC2544 back2back test",
580 "TestSteps": STEP_VSWITCH_PVVP_FLOWS_INIT +
584 ['trafficgen', 'send_traffic', {'traffic_type' : 'back2back', 'bidir' : 'True'}],
588 STEP_VSWITCH_PVVP_FLOWS_FINIT
591 "Name": "vswitch_pvvp_cont",
592 "Deployment": "clean",
593 "Description": "vSwitch - configure switch, two chained vnfs and execute continuous stream test",
594 "TestSteps": STEP_VSWITCH_PVVP_FLOWS_INIT +
598 ['trafficgen', 'send_traffic', {'traffic_type' : 'continuous', 'bidir' : 'True'}],
602 STEP_VSWITCH_PVVP_FLOWS_FINIT
605 "Name": "vswitch_pvvp_all",
606 "Deployment": "clean",
607 "Description": "vSwitch - configure switch, two chained vnfs and execute all test types",
608 "TestSteps": STEP_VSWITCH_PVVP_FLOWS_INIT +
612 ['trafficgen', 'send_traffic', {'traffic_type' : 'throughput', 'bidir' : 'True'}],
613 ['trafficgen', 'send_traffic', {'traffic_type' : 'back2back', 'bidir' : 'True'}],
614 ['trafficgen', 'send_traffic', {'traffic_type' : 'continuous', 'bidir' : 'True'}],
618 STEP_VSWITCH_PVVP_FLOWS_FINIT
621 "Name": "vswitch_p4vp",
622 "Description": "Just configure 4 chained vnfs",
623 "Deployment": "clean",
624 "TestSteps": STEP_VSWITCH_P4VP_FLOWS_INIT +
635 STEP_VSWITCH_P4VP_FLOWS_FINIT
638 "Name": "vswitch_p4vp_tput",
639 "Description": "4 chained vnfs, execute RFC2544 throughput test",
640 "Deployment": "clean",
641 "TestSteps": STEP_VSWITCH_P4VP_FLOWS_INIT +
647 ['trafficgen', 'send_traffic', {'traffic_type' : 'throughput', \
654 STEP_VSWITCH_P4VP_FLOWS_FINIT
657 "Name": "vswitch_p4vp_back2back",
658 "Description": "4 chained vnfs, execute RFC2544 back2back test",
659 "Deployment": "clean",
660 "TestSteps": STEP_VSWITCH_P4VP_FLOWS_INIT +
666 ['trafficgen', 'send_traffic', {'traffic_type' : 'back2back', \
673 STEP_VSWITCH_P4VP_FLOWS_FINIT
676 "Name": "vswitch_p4vp_cont",
677 "Description": "4 chained vnfs, execute continuous stream test",
678 "Deployment": "clean",
679 "TestSteps": STEP_VSWITCH_P4VP_FLOWS_INIT +
685 ['trafficgen', 'send_traffic', {'traffic_type' : 'continuous', \
692 STEP_VSWITCH_P4VP_FLOWS_FINIT
695 "Name": "vswitch_p4vp_all",
696 "Description": "4 chained vnfs, execute RFC2544 throughput test",
697 "Deployment": "clean",
698 "TestSteps": STEP_VSWITCH_P4VP_FLOWS_INIT +
704 ['trafficgen', 'send_traffic', {'traffic_type' : 'throughput', \
706 ['trafficgen', 'send_traffic', {'traffic_type' : 'back2back', \
708 ['trafficgen', 'send_traffic', {'traffic_type' : 'continuous', \
715 STEP_VSWITCH_P4VP_FLOWS_FINIT
718 # Topology: 2 Parallel PVP connections
719 # To run a Linux bridge as a loopback in the Guest use:
720 # --test-params "guest_loopback=linux_bridge" --integration 2pvp_udp_dest_flows
721 "Name": "2pvp_udp_dest_flows",
722 "Description": "Continuous TC with 2 Parallel VMs, flows on UDP Dest Port",
723 "Deployment": "clean",
726 "TestSteps": STEP_VSWITCH_2PHY_2VM_INIT +
727 STEP_VSWITCH_2_PARALLEL_VM_FLOWS_INIT + [
731 ['trafficgen', 'send_traffic', {'traffic_type' : 'continuous', 'bidir' : 'False'}],
735 ] + STEP_VSWITCH_FLOWS_FINIT +
736 STEP_VSWITCH_2PHY_2VM_FINIT
739 # Topology: 4 Parallel PVP connections
740 # To run a Linux bridge as a loopback in the Guest use:
741 # --test-params "guest_loopback=linux_bridge" --integration 4pvp_udp_dest_flows
742 "Name": "4pvp_udp_dest_flows",
743 "Description": "Continuous TC with 4 Parallel VMs, flows on UDP Dest Port",
744 "Deployment": "clean",
747 "TestSteps": STEP_VSWITCH_2PHY_4VM_INIT +
748 STEP_VSWITCH_4_PARALLEL_VM_FLOWS_INIT + [
754 ['trafficgen', 'send_traffic', {'traffic_type' : 'continuous', 'bidir' : 'False'}],
760 ] + STEP_VSWITCH_FLOWS_FINIT +
761 STEP_VSWITCH_2PHY_4VM_FINIT
764 # Topology: 6 Parallel PVP connections
765 # To run a Linux bridge as a loopback in the Guest use:
766 # --test-params "guest_loopback=linux_bridge" --integration 6pvp_udp_dest_flows
767 "Name": "6pvp_udp_dest_flows",
768 "Description": "Continuous TC with 6 Parallel VMs, flows on UDP Dest Port",
769 "Deployment": "clean",
772 "TestSteps": STEP_VSWITCH_2PHY_6VM_INIT +
773 STEP_VSWITCH_6_PARALLEL_VM_FLOWS_INIT + [
781 ['trafficgen', 'send_traffic', {'traffic_type' : 'continuous', 'bidir' : 'False'}],
788 ] + STEP_VSWITCH_FLOWS_FINIT +
789 STEP_VSWITCH_2PHY_6VM_FINIT
793 # Example of TC definition with exact vSwitch, VNF and TRAFFICGEN values.
795 # "Name": "ovs_vanilla_linux_bridge_pvp_cont",
796 # "Deployment": "clean",
797 # "Description": "vSwitch - configure OVS Vanilla, QemuVirtioNet with linux bridge and execute continuous stream test",
798 # "vSwitch" : "OvsVanilla",
799 # "VNF" : "QemuVirtioNet",
800 # "Trafficgen": "IxNet",
801 # "Parameters": {"guest_loopback" : "linux_bridge"},
802 # "TestSteps": STEP_VSWITCH_PVP_FLOWS_INIT +
805 # ['trafficgen', 'send_traffic', {'traffic_type' : 'continuous', 'bidir' : 'True'}],
808 # STEP_VSWITCH_PVP_FLOWS_FINIT