testcase: scalability - configurable installation of flows to the vswitch
[vswitchperf.git] / conf / 01_testcases.conf
1 # Copyright 2015 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 # This file describes a list of testcases.  Each testcase is described as a
16 # dictionary in a list of dictionaries.
17 #
18 # The dictionary keys, their meanings and available values are:
19 #
20 # "Name": "phy2phy_burst",         # A human-readable string identifying the
21 #                                  # test.
22 # "Traffic Type": "rfc2544",       # One of the supported traffic types.
23 # "Deployment": "p2p",             # One of the supported deployment scenarios.
24 # "Description": "Lorem ipsum..."  # Optional. A human-readable string
25 #                                  # describing the test.
26 # "Frame Modification": "vlan"     # One of the supported frame modifications:
27 #                                  # vlan, mpls, mac, dscp, ttl, ip_addr,
28 #                                  # ip_port.
29 # "biDirectional": [true|false],   # Specifies if genearted traffic will be
30 #                                  # full-duplex (true) or half-duplex (false)
31 # "MultiStream": 0-65535           # Optional. Defines number of flows simulated
32 #                                  # by traffic generator. Value 0 disables
33 #                                  # MultiStream feature
34 #                                  # It can be overridden by cli option multistream.
35 # "Stream Type": ["L2"|"L3"|"L4"]  # Optional. Stream Type is an extension
36 #                                  # of the "MultiStream" feature. If MultiStream
37 #                                  # is disabled, then Stream Type will be ignored.
38 #                                  # Stream Type defines ISO OSI network layer
39 #                                  # used for simulation of multiple streams.
40 #                                  # It can be overridden by cli option stream_type.
41 #                                  # Values:
42 #                                  #    "L2" - iteration of destination MAC address
43 #                                  #    "L3" - iteration of destination IP address
44 #                                  #    "L4" - iteration of destination UDP port
45 #                                  # Default value is "L4".
46 # "Pre-installed Flows": ["Yes"|"No"]
47 #                                  # Optional. Pre-installed Flows is an extension
48 #                                  # of the "MultiStream" feature. If MultiStream
49 #                                  # is disabled, then Pre-installed Flows will be
50 #                                  # ignored. It defines if stream specific flows
51 #                                  # will be inserted into OVS or not.
52 #                                  # It can be overridden by cli option
53 #                                  # pre-installed_flows
54 #                                  # Values:
55 #                                  #    "Yes" - flows will be inserted into OVS
56 #                                  #    "No"  - flows won't be inserted into OVS
57 #                                  # Default value is "No".
58 # "Flow Type": ["port"|"IP"]       # Optional. Defines flows complexity. In case
59 #                                  # it isn't specified, then "port" will be used.
60 #                                  # Values:
61 #                                  #    "port" - flow is defined by ingress ports
62 #                                  #    "IP"   - flow is defined by ingress ports
63 #                                  #             and src and dst IP addresses
64 # "iLoad": 0-100                   # Optional. Defines desired percentage
65 #                                  # of frame rate used during continuous stream
66 #                                  # tests. Can be overridden by cli option
67 #                                  # iload.
68 # "Load": dictionary               # Optional. Configures background load
69 #                                  # during testcase execution.
70 #   Description of "Load" dictionary keys, their meanings and available values:
71 #
72 #   "tool": "stress"               # One of the supported load generators.
73 #   "load": 0-100                  # percentage of cores which should be
74 #                                  # utilized by load generator
75 #                                  # e.g. load = 70%, detected cpu cores = 14 =>
76 #                                  # round(14*0.7)=10, i.e. 10 instances of load
77 #                                  # generator will be executed
78 #   "reserved": 0- (Default 0)     # Optional. Defines number of cores reserved
79 #                                  # for vsperf
80 #                                  # e.g. load = 80%, detected cpu cores = 14,
81 #                                  # reserved = 4 => round((14-4)*0.8)=8,
82 #                                  # i.e. 8 load gen. instances will be executed
83 #   "pattern" : "c"                # stress/stress-ng specific; Number of 'c',
84 #                                  # 'm' and 'i' defines ratio between cpu, mem
85 #                                  # and io workers respectively
86 #                                  # e.g. "ccccmmi" => ratio among workers types
87 #                                  # will be 3:2:1, so in case that 12 stress
88 #                                  # instances should be executed, then 6 cpu,
89 #                                  # 4 memory and 2 io workers will be executed
90 #   "load_memory": 0-100           # Optional. Defines percentage of the system
91 #                                  # memory, which should be utilized by memory
92 #                                  # workers (if they are part of "pattern").
93 #                                  # if not specified then default stress(-ng)
94 #                                  # value will be used
95 #   "options": ""                  # Optional. Additional command line options
96 #                                  # to be passed to the load generator.
97 # "Test Modifier": [FrameMod|Other],
98 # "Dependency": [Test_Case_Name |None],
99
100 PERFORMANCE_TESTS = [
101     {
102         "Name": "phy2phy_tput",
103         "Traffic Type": "rfc2544",
104         "Deployment": "p2p",
105         "biDirectional": "True",
106         "Description": "LTD.Throughput.RFC2544.PacketLossRatio",
107     },
108     {
109         "Name": "back2back",
110         "Traffic Type": "back2back",
111         "Deployment": "p2p",
112         "biDirectional": "True",
113         "Description": "LTD.Throughput.RFC2544.BackToBackFrames",
114     },
115     {
116         "Name": "phy2phy_tput_mod_vlan",
117         "Traffic Type": "rfc2544",
118         "Deployment": "p2p",
119         "Frame Modification": "vlan",
120         "biDirectional": "False",
121         "Description": "LTD.Throughput.RFC2544.PacketLossRatioFrameModification"
122     },
123     {
124         "Name": "phy2phy_cont",
125         "Traffic Type": "continuous",
126         "Deployment": "p2p",
127         "Description": "Phy2Phy Continuous Stream",
128         "biDirectional": "True",
129         "iLoad": "90",
130     },
131     {
132         "Name": "pvp_cont",
133         "Traffic Type": "continuous",
134         "Deployment": "pvp",
135         "Description": "PVP Continuous Stream",
136         "biDirectional": "True",
137         "iLoad": "90",
138     },
139     {
140         "Name": "pvvp_cont",
141         "Traffic Type": "continuous",
142         "Deployment": "pvvp",
143         "Description": "PVVP Continuous Stream",
144         "biDirectional": "True",
145         "iLoad": "90",
146     },
147     {
148         "Name": "phy2phy_scalability",
149         "Traffic Type": "rfc2544",
150         "Deployment": "p2p",
151         "biDirectional": "True",
152         "Description": "LTD.Scalability.RFC2544.0PacketLoss",
153         "MultiStream": "8000",
154     },
155     {
156         "Name": "pvp_tput",
157         "Traffic Type": "rfc2544",
158         "Deployment": "pvp",
159         "Description": "LTD.Throughput.RFC2544.PacketLossRatio",
160         "biDirectional": "True",
161     },
162     {
163         "Name": "pvp_back2back",
164         "Traffic Type": "back2back",
165         "Deployment": "pvp",
166         "Description": "LTD.Throughput.RFC2544.BackToBackFrames",
167         "biDirectional": "True",
168     },
169     {
170         "Name": "pvvp_tput",
171         "Traffic Type": "rfc2544",
172         "Collector": "cpu",
173         "Deployment": "pvvp",
174         "Description": "LTD.Throughput.RFC2544.PacketLossRatio",
175         "biDirectional": "True",
176     },
177     {
178         "Name": "pvvp_back2back",
179         "Traffic Type": "back2back",
180         "Collector": "cpu",
181         "Deployment": "pvvp",
182         "Description": "LTD.Throughput.RFC2544.BackToBackFrames",
183         "biDirectional": "True",
184     },
185     {
186         "Name": "phy2phy_cpu_load",
187         "Traffic Type": "rfc2544",
188         "Deployment": "p2p",
189         "biDirectional": "True",
190         "Description": "LTD.CPU.RFC2544.0PacketLoss",
191         "Load" : {
192             "tool" : "stress-ng",
193             "load" : 100,
194             "reserved" : 4,
195             "pattern" : "c",
196         }
197     },
198     {
199         "Name": "phy2phy_mem_load",
200         "Traffic Type": "rfc2544",
201         "Deployment": "p2p",
202         "biDirectional": "True",
203         "Description": "LTD.Memory.RFC2544.0PacketLoss",
204         "Load" : {
205             "tool" : "stress-ng",
206             "load" : 50,
207             "pattern" : "m",
208             "load_memory" : 80,
209         }
210     },
211
212 ]