integration: Support of integration testcases
[vswitchperf.git] / conf / integration / 01_testcases.conf
1 # Copyright 2015-2016 Intel Corporation.
2 #
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
6 #
7 #   http://www.apache.org/licenses/LICENSE-2.0
8 #
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.
14
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']
18
19 # Required for OP2P tests
20 # "Tunnel Type": ["vxlan"|"gre"|"geneve"]   # Tunnel Type defines tunneling protocol to use.
21 #                                   # It can be overridden by cli option tunnel_type.
22 #                                   # Values:
23 #                                   #    "vxlan" - iteration of destination MAC address
24 #                                   #    "gre" - iteration of destination IP address
25 #                                   #    "geneve" - iteration of destination UDP port
26 #                                   # Default value is "vxlan".
27 #
28 # biDirectional testing for OP2P is not yet supported.
29 # biDirectional must be set to False.
30 #
31 # "TestSteps": []                   # Definition of integration test steps.
32 #                                   # In case that this list is defined, then
33 #                                   # vsperf will execute defined test steps
34 #                                   # one by one. It can be used to configure
35 #                                   # vswitch, insert flows and transmit traffic.
36 #                                   # It is possible to refer to result of any
37 #                                   # previous step through #STEP[i][j] macro.
38 #                                   # Where i is a number of step (starts from 0)
39 #                                   # and j is index of result returned by step i.
40
41 INTEGRATION_TESTS = [
42     {
43         "Name": "overlay_p2p_tput",
44         "Traffic Type": "rfc2544",
45         "Deployment": "op2p",
46         "biDirectional": False,
47         "Tunnel Type": SUPPORTED_TUNNELING_PROTO[0],
48         "Tunnel Operation": "encapsulation",
49         "Description": "Overlay Encapsulation Throughput RFC2544 Test",
50     },
51     {
52         "Name": "overlay_p2p_cont",
53         "Traffic Type": "continuous",
54         "Deployment": "op2p",
55         "biDirectional": False,
56         "Tunnel Type": SUPPORTED_TUNNELING_PROTO[0],
57         "Tunnel Operation": "encapsulation",
58         "Description": "Overlay Encapsulation Continuous Stream",
59     },
60     {
61         "Name": "overlay_p2p_decap_tput",
62         "Traffic Type": "rfc2544",
63         "Deployment": "op2p",
64         "biDirectional": False,
65         "Tunnel Type": SUPPORTED_TUNNELING_PROTO[0],
66         "Tunnel Operation": "decapsulation",
67         "Description": "Overlay Decapsulation Throughput RFC2544 Test",
68     },
69     {
70         "Name": "overlay_p2p_decap_cont",
71         "Traffic Type": "continuous",
72         "Deployment": "op2p",
73         "biDirectional": False,
74         "Tunnel Type": SUPPORTED_TUNNELING_PROTO[0],
75         "Tunnel Operation": "decapsulation",
76         "Description": "Overlay Decapsulation Continuous Stream",
77     },
78     {
79         "Name": "vswitch_add_del_bridge",
80         "Deployment": "clean",
81         "Description": "vSwitch - add and delete bridge",
82         "TestSteps": [
83                         ['vswitch', 'add_switch', 'int_br0'],
84                         ['vswitch', 'del_switch', 'int_br0'],
85                      ]
86     },
87     {
88         "Name": "vswitch_add_del_bridges",
89         "Deployment": "clean",
90         "Description": "vSwitch - add and delete bridges",
91         "TestSteps": [
92                         ['vswitch', 'add_switch', 'int_br0'],
93                         ['vswitch', 'add_switch', 'int_br1'],
94                         ['vswitch', 'del_switch', 'int_br0'],
95                         ['vswitch', 'del_switch', 'int_br1'],
96                      ]
97     },
98     {
99         "Name": "vswitch_add_del_phy_port",
100         "Deployment": "clean",
101         "Description": "vSwitch - add and delete physical port",
102         "TestSteps": [
103                         ['vswitch', 'add_switch', 'int_br0'],
104                         ['vswitch', 'add_phy_port', 'int_br0'],
105                         ['vswitch', 'del_port', 'int_br0', '#STEP[1][0]'],
106                         ['vswitch', 'del_switch', 'int_br0'],
107                      ]
108     },
109     {
110         "Name": "vswitch_add_del_phy_ports",
111         "Deployment": "clean",
112         "Description": "vSwitch - add and delete physical ports",
113         "TestSteps": [
114                         ['vswitch', 'add_switch', 'int_br0'],
115                         ['vswitch', 'add_phy_port', 'int_br0'],
116                         ['vswitch', 'add_phy_port', 'int_br0'],
117                         ['vswitch', 'del_port', 'int_br0', '#STEP[1][0]'],
118                         ['vswitch', 'del_port', 'int_br0', '#STEP[2][0]'],
119                         ['vswitch', 'del_switch', 'int_br0'],
120                      ]
121     },
122     {
123         "Name": "vswitch_add_del_vport",
124         "Deployment": "clean",
125         "Description": "vSwitch - add and delete virtual port",
126         "TestSteps": [
127                         ['vswitch', 'add_switch', 'int_br0'],
128                         ['vswitch', 'add_vport', 'int_br0'],
129                         ['vswitch', 'del_port', 'int_br0', '#STEP[1][0]'],
130                         ['vswitch', 'del_switch', 'int_br0'],
131                      ]
132     },
133     {
134         "Name": "vswitch_add_del_vports",
135         "Deployment": "clean",
136         "Description": "vSwitch - add and delete virtual ports",
137         "TestSteps": [
138                         ['vswitch', 'add_switch', 'int_br0'],
139                         ['vswitch', 'add_vport', 'int_br0'],
140                         ['vswitch', 'add_vport', 'int_br0'],
141                         ['vswitch', 'del_port', 'int_br0', '#STEP[1][0]'],
142                         ['vswitch', 'del_port', 'int_br0', '#STEP[2][0]'],
143                         ['vswitch', 'del_switch', 'int_br0'],
144                      ]
145     },
146     {
147         "Name": "vswitch_add_del_flow",
148         "Deployment": "clean",
149         "Description": "vSwitch - add and delete flow",
150         "TestSteps": [
151                         ['vswitch', 'add_switch', 'int_br0'],
152                         ['vswitch', 'add_phy_port', 'int_br0'],
153                         ['vswitch', 'add_phy_port', 'int_br0'],
154                         ['vswitch', 'add_flow', 'int_br0', {'in_port': '#STEP[1][1]', 'actions': ['output:#STEP[2][1]'], 'idle_timeout': '0'}],
155                         ['vswitch', 'del_flow', 'int_br0', {'in_port': '#STEP[1][1]'}],
156                         ['vswitch', 'del_port', 'int_br0', '#STEP[1][0]'],
157                         ['vswitch', 'del_port', 'int_br0', '#STEP[2][0]'],
158                         ['vswitch', 'del_switch', 'int_br0'],
159                      ]
160     },
161     {
162         "Name": "vswitch_add_del_flows",
163         "Deployment": "clean",
164         "Description": "vSwitch - add and delete flows",
165         "TestSteps": [
166                         ['vswitch', 'add_switch', 'int_br0'],
167                         ['vswitch', 'add_phy_port', 'int_br0'],
168                         ['vswitch', 'add_phy_port', 'int_br0'],
169                         ['vswitch', 'add_flow', 'int_br0', {'in_port': '#STEP[1][1]', 'actions': ['output:#STEP[2][1]'], 'idle_timeout': '0'}],
170                         ['vswitch', 'add_flow', 'int_br0', {'in_port': '#STEP[2][1]', 'actions': ['output:#STEP[1][1]'], 'idle_timeout': '0'}],
171                         ['vswitch', 'dump_flows', 'int_br0'],
172                         ['vswitch', 'del_flow', 'int_br0', {'in_port': '#STEP[1][1]'}],
173                         ['vswitch', 'del_flow', 'int_br0', {'in_port': '#STEP[2][1]'}],
174                         ['vswitch', 'del_port', 'int_br0', '#STEP[1][0]'],
175                         ['vswitch', 'del_port', 'int_br0', '#STEP[2][0]'],
176                         ['vswitch', 'del_switch', 'int_br0'],
177                      ]
178     },
179     {
180         "Name": "vswitch_throughput",
181         "Deployment": "clean",
182         "Description": "vSwitch - configure switch and execute RFC2544 throughput test",
183         "TestSteps": [
184                         ['vswitch', 'add_switch', 'int_br0'],
185                         ['vswitch', 'add_phy_port', 'int_br0'],
186                         ['vswitch', 'add_phy_port', 'int_br0'],
187                         ['vswitch', 'add_flow', 'int_br0', {'in_port': '#STEP[1][1]', 'actions': ['output:#STEP[2][1]'], 'idle_timeout': '0'}],
188                         ['vswitch', 'add_flow', 'int_br0', {'in_port': '#STEP[2][1]', 'actions': ['output:#STEP[1][1]'], 'idle_timeout': '0'}],
189                         ['trafficgen', 'send_traffic', {'traffic_type' : 'throughput', 'bidir' : True, 'frame_rate' : 100, 'multistream' : 0, 'stream_type' : 'L4'}],
190                         ['vswitch', 'dump_flows', 'int_br0'],
191                         ['vswitch', 'del_flow', 'int_br0', {'in_port': '#STEP[1][1]'}],
192                         ['vswitch', 'del_flow', 'int_br0', {'in_port': '#STEP[2][1]'}],
193                         ['vswitch', 'del_port', 'int_br0', '#STEP[1][0]'],
194                         ['vswitch', 'del_port', 'int_br0', '#STEP[2][0]'],
195                         ['vswitch', 'del_switch', 'int_br0'],
196                      ]
197     },
198     {
199         "Name": "vswitch_back2back",
200         "Deployment": "clean",
201         "Description": "vSwitch - configure switch and execute RFC2544 back2back test",
202         "TestSteps": [
203                         ['vswitch', 'add_switch', 'int_br0'],
204                         ['vswitch', 'add_phy_port', 'int_br0'],
205                         ['vswitch', 'add_phy_port', 'int_br0'],
206                         ['vswitch', 'add_flow', 'int_br0', {'in_port': '#STEP[1][1]', 'actions': ['output:#STEP[2][1]'], 'idle_timeout': '0'}],
207                         ['vswitch', 'add_flow', 'int_br0', {'in_port': '#STEP[2][1]', 'actions': ['output:#STEP[1][1]'], 'idle_timeout': '0'}],
208                         ['trafficgen', 'send_traffic', {'traffic_type' : 'back2back', 'bidir' : True, 'frame_rate' : 100, 'multistream' : 0, 'stream_type' : 'L4'}],
209                         ['vswitch', 'dump_flows', 'int_br0'],
210                         ['vswitch', 'del_flow', 'int_br0', {'in_port': '#STEP[1][1]'}],
211                         ['vswitch', 'del_flow', 'int_br0', {'in_port': '#STEP[2][1]'}],
212                         ['vswitch', 'del_port', 'int_br0', '#STEP[1][0]'],
213                         ['vswitch', 'del_port', 'int_br0', '#STEP[2][0]'],
214                         ['vswitch', 'del_switch', 'int_br0'],
215                      ]
216     },
217     {
218         "Name": "vswitch_continuous",
219         "Deployment": "clean",
220         "Description": "vSwitch - configure switch and execute continuous stream test",
221         "TestSteps": [
222                         ['vswitch', 'add_switch', 'int_br0'],
223                         ['vswitch', 'add_phy_port', 'int_br0'],
224                         ['vswitch', 'add_phy_port', 'int_br0'],
225                         ['vswitch', 'add_flow', 'int_br0', {'in_port': '#STEP[1][1]', 'actions': ['output:#STEP[2][1]'], 'idle_timeout': '0'}],
226                         ['vswitch', 'add_flow', 'int_br0', {'in_port': '#STEP[2][1]', 'actions': ['output:#STEP[1][1]'], 'idle_timeout': '0'}],
227                         ['trafficgen', 'send_traffic', {'traffic_type' : 'continuous', 'bidir' : True, 'frame_rate' : 100, 'multistream' : 0, 'stream_type' : 'L4'}],
228                         ['vswitch', 'dump_flows', 'int_br0'],
229                         ['vswitch', 'del_flow', 'int_br0', {'in_port': '#STEP[1][1]'}],
230                         ['vswitch', 'del_flow', 'int_br0', {'in_port': '#STEP[2][1]'}],
231                         ['vswitch', 'del_port', 'int_br0', '#STEP[1][0]'],
232                         ['vswitch', 'del_port', 'int_br0', '#STEP[2][0]'],
233                         ['vswitch', 'del_switch', 'int_br0'],
234                      ]
235     },
236 ]
237