dpdk: Support of DPDK16.07
[vswitchperf.git] / conf / integration / 01_testcases.conf
index fff148d..2edbe08 100644 (file)
 # tunneling protocol for OP2P tests.
 SUPPORTED_TUNNELING_PROTO = ['vxlan', 'gre', 'geneve']
 
+#
+# Generic test configuration options are described at conf/01_testcases.conf
+#
+
+#
+# Options specific to integration testcases are described below:
+#
 # Required for OP2P tests
 # "Tunnel Type": ["vxlan"|"gre"|"geneve"]   # Tunnel Type defines tunneling protocol to use.
 #                                   # It can be overridden by cli option tunnel_type.
@@ -38,12 +45,98 @@ SUPPORTED_TUNNELING_PROTO = ['vxlan', 'gre', 'geneve']
 #                                   # Where i is a number of step (starts from 0)
 #                                   # and j is index of result returned by step i.
 
+#
+# Common TestSteps parts ("macros")
+#
+
+# P2P macros
+STEP_VSWITCH_P2P_FLOWS_INIT = [
+    ['vswitch', 'add_switch', 'int_br0'],           # STEP 0
+    ['vswitch', 'add_phy_port', 'int_br0'],         # STEP 1
+    ['vswitch', 'add_phy_port', 'int_br0'],         # STEP 2
+    ['vswitch', 'add_flow', 'int_br0', {'in_port': '#STEP[1][1]', 'actions': ['output:#STEP[2][1]'], 'idle_timeout': '0'}],
+    ['vswitch', 'add_flow', 'int_br0', {'in_port': '#STEP[2][1]', 'actions': ['output:#STEP[1][1]'], 'idle_timeout': '0'}],
+]
+
+STEP_VSWITCH_P2P_FLOWS_FINIT = [
+    ['vswitch', 'dump_flows', 'int_br0'],
+    ['vswitch', 'del_flow', 'int_br0', {'in_port': '#STEP[1][1]'}],
+    ['vswitch', 'del_flow', 'int_br0', {'in_port': '#STEP[2][1]'}],
+    ['vswitch', 'del_port', 'int_br0', '#STEP[1][0]'],
+    ['vswitch', 'del_port', 'int_br0', '#STEP[2][0]'],
+    ['vswitch', 'del_switch', 'int_br0'],
+]
+
+# PVP and PVVP macros
+STEP_VSWITCH_PVP_INIT = [
+    ['vswitch', 'add_switch', 'int_br0'],           # STEP 0
+    ['vswitch', 'add_phy_port', 'int_br0'],         # STEP 1
+    ['vswitch', 'add_phy_port', 'int_br0'],         # STEP 2
+    ['vswitch', 'add_vport', 'int_br0'],            # STEP 3
+    ['vswitch', 'add_vport', 'int_br0'],            # STEP 4
+]
+
+STEP_VSWITCH_PVP_FINIT = [
+    ['vswitch', 'del_port', 'int_br0', '#STEP[1][0]'],
+    ['vswitch', 'del_port', 'int_br0', '#STEP[2][0]'],
+    ['vswitch', 'del_port', 'int_br0', '#STEP[3][0]'],
+    ['vswitch', 'del_port', 'int_br0', '#STEP[4][0]'],
+    ['vswitch', 'del_switch', 'int_br0'],
+]
+
+STEP_VSWITCH_PVP_FLOWS_INIT = STEP_VSWITCH_PVP_INIT + [
+    ['vswitch', 'add_flow', 'int_br0', {'in_port': '#STEP[1][1]', 'actions': ['output:#STEP[3][1]'], 'idle_timeout': '0'}],
+    ['vswitch', 'add_flow', 'int_br0', {'in_port': '#STEP[4][1]', 'actions': ['output:#STEP[2][1]'], 'idle_timeout': '0'}],
+    ['vswitch', 'add_flow', 'int_br0', {'in_port': '#STEP[2][1]', 'actions': ['output:#STEP[4][1]'], 'idle_timeout': '0'}],
+    ['vswitch', 'add_flow', 'int_br0', {'in_port': '#STEP[3][1]', 'actions': ['output:#STEP[1][1]'], 'idle_timeout': '0'}],
+]
+
+STEP_VSWITCH_PVP_FLOWS_FINIT = [
+    ['vswitch', 'dump_flows', 'int_br0'],
+    ['vswitch', 'del_flow', 'int_br0', {'in_port': '#STEP[1][1]'}],
+    ['vswitch', 'del_flow', 'int_br0', {'in_port': '#STEP[4][1]'}],
+    ['vswitch', 'del_flow', 'int_br0', {'in_port': '#STEP[2][1]'}],
+    ['vswitch', 'del_flow', 'int_br0', {'in_port': '#STEP[3][1]'}],
+] + STEP_VSWITCH_PVP_FINIT
+
+STEP_VSWITCH_PVVP_INIT = STEP_VSWITCH_PVP_INIT + [
+    ['vswitch', 'add_vport', 'int_br0'],            # STEP 5
+    ['vswitch', 'add_vport', 'int_br0'],            # STEP 6
+]
+
+STEP_VSWITCH_PVVP_FINIT = [
+    ['vswitch', 'del_port', 'int_br0', '#STEP[5][0]'],
+    ['vswitch', 'del_port', 'int_br0', '#STEP[6][0]'],
+] + STEP_VSWITCH_PVP_FINIT
+
+STEP_VSWITCH_PVVP_FLOWS_INIT = STEP_VSWITCH_PVVP_INIT + [
+    ['vswitch', 'add_flow', 'int_br0', {'in_port': '#STEP[1][1]', 'actions': ['output:#STEP[3][1]'], 'idle_timeout': '0'}],
+    ['vswitch', 'add_flow', 'int_br0', {'in_port': '#STEP[4][1]', 'actions': ['output:#STEP[5][1]'], 'idle_timeout': '0'}],
+    ['vswitch', 'add_flow', 'int_br0', {'in_port': '#STEP[6][1]', 'actions': ['output:#STEP[2][1]'], 'idle_timeout': '0'}],
+    ['vswitch', 'add_flow', 'int_br0', {'in_port': '#STEP[2][1]', 'actions': ['output:#STEP[6][1]'], 'idle_timeout': '0'}],
+    ['vswitch', 'add_flow', 'int_br0', {'in_port': '#STEP[5][1]', 'actions': ['output:#STEP[4][1]'], 'idle_timeout': '0'}],
+    ['vswitch', 'add_flow', 'int_br0', {'in_port': '#STEP[3][1]', 'actions': ['output:#STEP[1][1]'], 'idle_timeout': '0'}],
+]
+
+STEP_VSWITCH_PVVP_FLOWS_FINIT = [
+    ['vswitch', 'dump_flows', 'int_br0'],
+    ['vswitch', 'del_flow', 'int_br0', {'in_port': '#STEP[1][1]'}],
+    ['vswitch', 'del_flow', 'int_br0', {'in_port': '#STEP[4][1]'}],
+    ['vswitch', 'del_flow', 'int_br0', {'in_port': '#STEP[6][1]'}],
+    ['vswitch', 'del_flow', 'int_br0', {'in_port': '#STEP[2][1]'}],
+    ['vswitch', 'del_flow', 'int_br0', {'in_port': '#STEP[5][1]'}],
+    ['vswitch', 'del_flow', 'int_br0', {'in_port': '#STEP[3][1]'}],
+] + STEP_VSWITCH_PVVP_FINIT
+
+#
+# Definition of integration tests
+#
 INTEGRATION_TESTS = [
     {
         "Name": "overlay_p2p_tput",
         "Traffic Type": "rfc2544",
         "Deployment": "op2p",
-        "biDirectional": False,
+        "biDirectional": 'False',
         "Tunnel Type": SUPPORTED_TUNNELING_PROTO[0],
         "Tunnel Operation": "encapsulation",
         "Description": "Overlay Encapsulation Throughput RFC2544 Test",
@@ -52,7 +145,7 @@ INTEGRATION_TESTS = [
         "Name": "overlay_p2p_cont",
         "Traffic Type": "continuous",
         "Deployment": "op2p",
-        "biDirectional": False,
+        "biDirectional": 'False',
         "Tunnel Type": SUPPORTED_TUNNELING_PROTO[0],
         "Tunnel Operation": "encapsulation",
         "Description": "Overlay Encapsulation Continuous Stream",
@@ -61,7 +154,7 @@ INTEGRATION_TESTS = [
         "Name": "overlay_p2p_decap_tput",
         "Traffic Type": "rfc2544",
         "Deployment": "op2p",
-        "biDirectional": False,
+        "biDirectional": 'False',
         "Tunnel Type": SUPPORTED_TUNNELING_PROTO[0],
         "Tunnel Operation": "decapsulation",
         "Description": "Overlay Decapsulation Throughput RFC2544 Test",
@@ -70,7 +163,7 @@ INTEGRATION_TESTS = [
         "Name": "overlay_p2p_decap_cont",
         "Traffic Type": "continuous",
         "Deployment": "op2p",
-        "biDirectional": False,
+        "biDirectional": 'False',
         "Tunnel Type": SUPPORTED_TUNNELING_PROTO[0],
         "Tunnel Operation": "decapsulation",
         "Description": "Overlay Decapsulation Continuous Stream",
@@ -162,76 +255,187 @@ INTEGRATION_TESTS = [
         "Name": "vswitch_add_del_flows",
         "Deployment": "clean",
         "Description": "vSwitch - add and delete flows",
-        "TestSteps": [
-                        ['vswitch', 'add_switch', 'int_br0'],
-                        ['vswitch', 'add_phy_port', 'int_br0'],
-                        ['vswitch', 'add_phy_port', 'int_br0'],
-                        ['vswitch', 'add_flow', 'int_br0', {'in_port': '#STEP[1][1]', 'actions': ['output:#STEP[2][1]'], 'idle_timeout': '0'}],
-                        ['vswitch', 'add_flow', 'int_br0', {'in_port': '#STEP[2][1]', 'actions': ['output:#STEP[1][1]'], 'idle_timeout': '0'}],
-                        ['vswitch', 'dump_flows', 'int_br0'],
-                        ['vswitch', 'del_flow', 'int_br0', {'in_port': '#STEP[1][1]'}],
-                        ['vswitch', 'del_flow', 'int_br0', {'in_port': '#STEP[2][1]'}],
-                        ['vswitch', 'del_port', 'int_br0', '#STEP[1][0]'],
-                        ['vswitch', 'del_port', 'int_br0', '#STEP[2][0]'],
-                        ['vswitch', 'del_switch', 'int_br0'],
-                     ]
+        "TestSteps": STEP_VSWITCH_P2P_FLOWS_INIT +
+                     STEP_VSWITCH_P2P_FLOWS_FINIT
     },
     {
-        "Name": "vswitch_throughput",
+        "Name": "vswitch_p2p_tput",
         "Deployment": "clean",
         "Description": "vSwitch - configure switch and execute RFC2544 throughput test",
-        "TestSteps": [
-                        ['vswitch', 'add_switch', 'int_br0'],
-                        ['vswitch', 'add_phy_port', 'int_br0'],
-                        ['vswitch', 'add_phy_port', 'int_br0'],
-                        ['vswitch', 'add_flow', 'int_br0', {'in_port': '#STEP[1][1]', 'actions': ['output:#STEP[2][1]'], 'idle_timeout': '0'}],
-                        ['vswitch', 'add_flow', 'int_br0', {'in_port': '#STEP[2][1]', 'actions': ['output:#STEP[1][1]'], 'idle_timeout': '0'}],
-                        ['trafficgen', 'send_traffic', {'traffic_type' : 'throughput', 'bidir' : True, 'frame_rate' : 100, 'multistream' : 0, 'stream_type' : 'L4'}],
-                        ['vswitch', 'dump_flows', 'int_br0'],
-                        ['vswitch', 'del_flow', 'int_br0', {'in_port': '#STEP[1][1]'}],
-                        ['vswitch', 'del_flow', 'int_br0', {'in_port': '#STEP[2][1]'}],
-                        ['vswitch', 'del_port', 'int_br0', '#STEP[1][0]'],
-                        ['vswitch', 'del_port', 'int_br0', '#STEP[2][0]'],
-                        ['vswitch', 'del_switch', 'int_br0'],
-                     ]
+        "TestSteps": STEP_VSWITCH_P2P_FLOWS_INIT +
+                     [
+                        ['trafficgen', 'send_traffic', {'traffic_type' : 'throughput', 'bidir' : 'True'}],
+                     ] +
+                     STEP_VSWITCH_P2P_FLOWS_FINIT
     },
     {
-        "Name": "vswitch_back2back",
+        "Name": "vswitch_p2p_back2back",
         "Deployment": "clean",
         "Description": "vSwitch - configure switch and execute RFC2544 back2back test",
-        "TestSteps": [
-                        ['vswitch', 'add_switch', 'int_br0'],
-                        ['vswitch', 'add_phy_port', 'int_br0'],
-                        ['vswitch', 'add_phy_port', 'int_br0'],
-                        ['vswitch', 'add_flow', 'int_br0', {'in_port': '#STEP[1][1]', 'actions': ['output:#STEP[2][1]'], 'idle_timeout': '0'}],
-                        ['vswitch', 'add_flow', 'int_br0', {'in_port': '#STEP[2][1]', 'actions': ['output:#STEP[1][1]'], 'idle_timeout': '0'}],
-                        ['trafficgen', 'send_traffic', {'traffic_type' : 'back2back', 'bidir' : True, 'frame_rate' : 100, 'multistream' : 0, 'stream_type' : 'L4'}],
-                        ['vswitch', 'dump_flows', 'int_br0'],
-                        ['vswitch', 'del_flow', 'int_br0', {'in_port': '#STEP[1][1]'}],
-                        ['vswitch', 'del_flow', 'int_br0', {'in_port': '#STEP[2][1]'}],
-                        ['vswitch', 'del_port', 'int_br0', '#STEP[1][0]'],
-                        ['vswitch', 'del_port', 'int_br0', '#STEP[2][0]'],
-                        ['vswitch', 'del_switch', 'int_br0'],
-                     ]
+        "TestSteps": STEP_VSWITCH_P2P_FLOWS_INIT +
+                     [
+                        ['trafficgen', 'send_traffic', {'traffic_type' : 'back2back', 'bidir' : 'True'}],
+                     ] +
+                     STEP_VSWITCH_P2P_FLOWS_FINIT
     },
     {
-        "Name": "vswitch_continuous",
+        "Name": "vswitch_p2p_cont",
         "Deployment": "clean",
         "Description": "vSwitch - configure switch and execute continuous stream test",
-        "TestSteps": [
-                        ['vswitch', 'add_switch', 'int_br0'],
-                        ['vswitch', 'add_phy_port', 'int_br0'],
-                        ['vswitch', 'add_phy_port', 'int_br0'],
-                        ['vswitch', 'add_flow', 'int_br0', {'in_port': '#STEP[1][1]', 'actions': ['output:#STEP[2][1]'], 'idle_timeout': '0'}],
-                        ['vswitch', 'add_flow', 'int_br0', {'in_port': '#STEP[2][1]', 'actions': ['output:#STEP[1][1]'], 'idle_timeout': '0'}],
-                        ['trafficgen', 'send_traffic', {'traffic_type' : 'continuous', 'bidir' : True, 'frame_rate' : 100, 'multistream' : 0, 'stream_type' : 'L4'}],
-                        ['vswitch', 'dump_flows', 'int_br0'],
-                        ['vswitch', 'del_flow', 'int_br0', {'in_port': '#STEP[1][1]'}],
-                        ['vswitch', 'del_flow', 'int_br0', {'in_port': '#STEP[2][1]'}],
-                        ['vswitch', 'del_port', 'int_br0', '#STEP[1][0]'],
-                        ['vswitch', 'del_port', 'int_br0', '#STEP[2][0]'],
-                        ['vswitch', 'del_switch', 'int_br0'],
-                     ]
+        "TestSteps": STEP_VSWITCH_P2P_FLOWS_INIT +
+                     [
+                        ['trafficgen', 'send_traffic', {'traffic_type' : 'continuous', 'bidir' : 'True'}],
+                     ] +
+                     STEP_VSWITCH_P2P_FLOWS_FINIT
+    },
+    {
+        "Name": "vswitch_pvp",
+        "Deployment": "clean",
+        "Description": "vSwitch - configure switch and one vnf",
+        "TestSteps": STEP_VSWITCH_PVP_INIT +
+                     [
+                        ['vnf', 'start'],
+                        ['vnf', 'stop'],
+                     ] +
+                     STEP_VSWITCH_PVP_FINIT
+    },
+    {
+        "Name": "vswitch_pvp_tput",
+        "Deployment": "clean",
+        "Description": "vSwitch - configure switch, vnf and execute RFC2544 throughput test",
+        "TestSteps": STEP_VSWITCH_PVP_FLOWS_INIT +
+                     [
+                        ['vnf', 'start'],
+                        ['trafficgen', 'send_traffic', {'traffic_type' : 'throughput', 'bidir' : 'True'}],
+                        ['vnf', 'stop'],
+                     ] +
+                     STEP_VSWITCH_PVP_FLOWS_FINIT
+    },
+    {
+        "Name": "vswitch_pvp_back2back",
+        "Deployment": "clean",
+        "Description": "vSwitch - configure switch, vnf and execute RFC2544 back2back test",
+        "TestSteps": STEP_VSWITCH_PVP_FLOWS_INIT +
+                     [
+                        ['vnf', 'start'],
+                        ['trafficgen', 'send_traffic', {'traffic_type' : 'back2back', 'bidir' : 'True'}],
+                        ['vnf', 'stop'],
+                     ] +
+                     STEP_VSWITCH_PVP_FLOWS_FINIT
+    },
+    {
+        "Name": "vswitch_pvp_cont",
+        "Deployment": "clean",
+        "Description": "vSwitch - configure switch, vnf and execute continuous stream test",
+        "TestSteps": STEP_VSWITCH_PVP_FLOWS_INIT +
+                     [
+                        ['vnf', 'start'],
+                        ['trafficgen', 'send_traffic', {'traffic_type' : 'continuous', 'bidir' : 'True'}],
+                        ['vnf', 'stop'],
+                     ] +
+                     STEP_VSWITCH_PVP_FLOWS_FINIT
+    },
+    {
+        "Name": "vswitch_pvp_all",
+        "Deployment": "clean",
+        "Description": "vSwitch - configure switch, vnf and execute all test types",
+        "TestSteps": STEP_VSWITCH_PVP_FLOWS_INIT +
+                     [
+                        ['vnf', 'start'],
+                        ['trafficgen', 'send_traffic', {'traffic_type' : 'throughput', 'bidir' : 'True'}],
+                        ['trafficgen', 'send_traffic', {'traffic_type' : 'back2back', 'bidir' : 'True'}],
+                        ['trafficgen', 'send_traffic', {'traffic_type' : 'continuous', 'bidir' : 'True'}],
+                        ['vnf', 'stop'],
+                     ] +
+                     STEP_VSWITCH_PVP_FLOWS_FINIT
+    },
+    {
+        "Name": "vswitch_pvvp",
+        "Deployment": "clean",
+        "Description": "vSwitch - configure switch and two vnfs",
+        "TestSteps": STEP_VSWITCH_PVVP_INIT +
+                     [
+                        ['vnf1', 'start'],
+                        ['vnf2', 'start'],
+                        ['vnf1', 'stop'],
+                        ['vnf2', 'stop'],
+                     ] +
+                     STEP_VSWITCH_PVVP_FINIT
+    },
+    {
+        "Name": "vswitch_pvvp_tput",
+        "Deployment": "clean",
+        "Description": "vSwitch - configure switch, two chained vnfs and execute RFC2544 throughput test",
+        "TestSteps": STEP_VSWITCH_PVVP_FLOWS_INIT +
+                     [
+                        ['vnf1', 'start'],
+                        ['vnf2', 'start'],
+                        ['trafficgen', 'send_traffic', {'traffic_type' : 'throughput', 'bidir' : 'True'}],
+                        ['vnf1', 'stop'],
+                        ['vnf2', 'stop'],
+                     ] +
+                     STEP_VSWITCH_PVVP_FLOWS_FINIT
+    },
+    {
+        "Name": "vswitch_pvvp_back2back",
+        "Deployment": "clean",
+        "Description": "vSwitch - configure switch, two chained vnfs and execute RFC2544 back2back test",
+        "TestSteps": STEP_VSWITCH_PVVP_FLOWS_INIT +
+                     [
+                        ['vnf1', 'start'],
+                        ['vnf2', 'start'],
+                        ['trafficgen', 'send_traffic', {'traffic_type' : 'back2back', 'bidir' : 'True'}],
+                        ['vnf1', 'stop'],
+                        ['vnf2', 'stop'],
+                     ] +
+                     STEP_VSWITCH_PVVP_FLOWS_FINIT
+    },
+    {
+        "Name": "vswitch_pvvp_cont",
+        "Deployment": "clean",
+        "Description": "vSwitch - configure switch, two chained vnfs and execute continuous stream test",
+        "TestSteps": STEP_VSWITCH_PVVP_FLOWS_INIT +
+                     [
+                        ['vnf1', 'start'],
+                        ['vnf2', 'start'],
+                        ['trafficgen', 'send_traffic', {'traffic_type' : 'continuous', 'bidir' : 'True'}],
+                        ['vnf1', 'stop'],
+                        ['vnf2', 'stop'],
+                     ] +
+                     STEP_VSWITCH_PVVP_FLOWS_FINIT
+    },
+    {
+        "Name": "vswitch_pvvp_all",
+        "Deployment": "clean",
+        "Description": "vSwitch - configure switch, two chained vnfs and execute all test types",
+        "TestSteps": STEP_VSWITCH_PVVP_FLOWS_INIT +
+                     [
+                        ['vnf1', 'start'],
+                        ['vnf2', 'start'],
+                        ['trafficgen', 'send_traffic', {'traffic_type' : 'throughput', 'bidir' : 'True'}],
+                        ['trafficgen', 'send_traffic', {'traffic_type' : 'back2back', 'bidir' : 'True'}],
+                        ['trafficgen', 'send_traffic', {'traffic_type' : 'continuous', 'bidir' : 'True'}],
+                        ['vnf1', 'stop'],
+                        ['vnf2', 'stop'],
+                     ] +
+                     STEP_VSWITCH_PVVP_FLOWS_FINIT
     },
 ]
 
+# Example of TC definition with exact vSwitch, VNF and TRAFFICGEN values.
+#    {
+#        "Name": "ovs_vanilla_linux_bridge_pvp_cont",
+#        "Deployment": "clean",
+#        "Description": "vSwitch - configure OVS Vanilla, QemuVirtioNet with linux bridge and execute continuous stream test",
+#        "vSwitch" : "OvsVanilla",
+#        "VNF" : "QemuVirtioNet",
+#        "Trafficgen": "IxNet",
+#        "Test Parameters": {"guest_loopback" : "linux_bridge"},
+#        "TestSteps": STEP_VSWITCH_PVP_FLOWS_INIT +
+#                     [
+#                        ['vnf', 'start'],
+#                        ['trafficgen', 'send_traffic', {'traffic_type' : 'continuous', 'bidir' : 'True'}],
+#                        ['vnf', 'stop'],
+#                     ] +
+#                     STEP_VSWITCH_PVP_FLOWS_FINIT
+#    },