diff options
Diffstat (limited to 'conf/integration')
-rw-r--r-- | conf/integration/01_testcases.conf | 235 | ||||
-rw-r--r-- | conf/integration/02_vswitch.conf | 12 |
2 files changed, 244 insertions, 3 deletions
diff --git a/conf/integration/01_testcases.conf b/conf/integration/01_testcases.conf index e050e358..a67702f8 100644 --- a/conf/integration/01_testcases.conf +++ b/conf/integration/01_testcases.conf @@ -72,7 +72,7 @@ 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 3 vm1 ports ['vswitch', 'add_vport', 'int_br0'], # STEP 4 ] @@ -100,12 +100,12 @@ STEP_VSWITCH_PVP_FLOWS_FINIT = [ ] + 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 5 vm2 ports ['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[5][0]'], # vm2 ports ['vswitch', 'del_port', 'int_br0', '#STEP[6][0]'], ] + STEP_VSWITCH_PVP_FINIT @@ -128,11 +128,166 @@ STEP_VSWITCH_PVVP_FLOWS_FINIT = [ ['vswitch', 'del_flow', 'int_br0', {'in_port': '#STEP[3][1]'}], ] + STEP_VSWITCH_PVVP_FINIT +STEP_VSWITCH_2PHY_2VM_INIT = STEP_VSWITCH_PVVP_INIT + +STEP_VSWITCH_2PHY_2VM_FINIT = STEP_VSWITCH_PVVP_FINIT + +STEP_VSWITCH_2_PARALLEL_VM_FLOWS_INIT = [ + # Setup Flows to reply ICMPv6 and similar packets, so to + # avoid flooding the internal port with their re-transmissions + ['vswitch', 'add_flow', 'int_br0', \ + {'priority': '1', 'dl_src': '00:00:00:00:00:01', \ + 'actions': ['output:#STEP[3][1]'], 'idle_timeout': '0'}], + ['vswitch', 'add_flow', 'int_br0', \ + {'priority': '1', 'dl_src': '00:00:00:00:00:02', \ + 'actions': ['output:#STEP[4][1]'], 'idle_timeout': '0'}], + ['vswitch', 'add_flow', 'int_br0', \ + {'priority': '1', 'dl_src': '00:00:00:00:00:03', \ + 'actions': ['output:#STEP[5][1]'], 'idle_timeout': '0'}], + ['vswitch', 'add_flow', 'int_br0', \ + {'priority': '1', 'dl_src': '00:00:00:00:00:04', \ + 'actions': ['output:#STEP[6][1]'], 'idle_timeout': '0'}], + # Forward UDP packets depending on dest port + ['vswitch', 'add_flow', 'int_br0', {'in_port': '#STEP[1][1]', \ + 'dl_type': '0x0800', 'nw_proto': '17', 'udp_dst': '0', \ + 'actions': ['output:#STEP[3][1]'], 'idle_timeout': '0'}], + ['vswitch', 'add_flow', 'int_br0', {'in_port': '#STEP[1][1]', \ + 'dl_type': '0x0800', 'nw_proto': '17', 'udp_dst': '1', \ + 'actions': ['output:#STEP[5][1]'], 'idle_timeout': '0'}], + # Send VM outputs to phy port #2 + ['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[6][1]', \ + 'actions': ['output:#STEP[2][1]'], 'idle_timeout': '0'}], +] + +STEP_VSWITCH_2PHY_4VM_INIT = STEP_VSWITCH_2PHY_2VM_INIT + [ + ['vswitch', 'add_vport', 'int_br0'], # STEP 7 vm3 ports + ['vswitch', 'add_vport', 'int_br0'], # STEP 8 + ['vswitch', 'add_vport', 'int_br0'], # STEP 9 vm4 ports + ['vswitch', 'add_vport', 'int_br0'], # STEP 10 +] + +STEP_VSWITCH_2PHY_4VM_FINIT = [ + ['vswitch', 'del_port', 'int_br0', '#STEP[7][0]'], # vm3 ports + ['vswitch', 'del_port', 'int_br0', '#STEP[8][0]'], + ['vswitch', 'del_port', 'int_br0', '#STEP[9][0]'], # vm4 ports + ['vswitch', 'del_port', 'int_br0', '#STEP[10][0]'], +] + STEP_VSWITCH_2PHY_2VM_FINIT + +STEP_VSWITCH_FLOWS_FINIT = [ + ['vswitch', 'dump_flows', 'int_br0'], + ['vswitch', 'del_flow', 'int_br0'], +] + +STEP_VSWITCH_4_PARALLEL_VM_FLOWS_INIT = [ + # Setup Flows to reply ICMPv6 and similar packets, so to + # avoid flooding the internal port with their re-transmissions + ['vswitch', 'add_flow', 'int_br0', \ + {'priority': '1', 'dl_src': '00:00:00:00:00:01', \ + 'actions': ['output:#STEP[3][1]'], 'idle_timeout': '0'}], + ['vswitch', 'add_flow', 'int_br0', \ + {'priority': '1', 'dl_src': '00:00:00:00:00:02', \ + 'actions': ['output:#STEP[4][1]'], 'idle_timeout': '0'}], + ['vswitch', 'add_flow', 'int_br0', \ + {'priority': '1', 'dl_src': '00:00:00:00:00:03', \ + 'actions': ['output:#STEP[5][1]'], 'idle_timeout': '0'}], + ['vswitch', 'add_flow', 'int_br0', \ + {'priority': '1', 'dl_src': '00:00:00:00:00:04', \ + 'actions': ['output:#STEP[6][1]'], 'idle_timeout': '0'}], + ['vswitch', 'add_flow', 'int_br0', \ + {'priority': '1', 'dl_src': '00:00:00:00:00:05', \ + 'actions': ['output:#STEP[7][1]'], 'idle_timeout': '0'}], + ['vswitch', 'add_flow', 'int_br0', \ + {'priority': '1', 'dl_src': '00:00:00:00:00:06', \ + 'actions': ['output:#STEP[8][1]'], 'idle_timeout': '0'}], + ['vswitch', 'add_flow', 'int_br0', \ + {'priority': '1', 'dl_src': '00:00:00:00:00:07', \ + 'actions': ['output:#STEP[9][1]'], 'idle_timeout': '0'}], + ['vswitch', 'add_flow', 'int_br0', \ + {'priority': '1', 'dl_src': '00:00:00:00:00:08', \ + 'actions': ['output:#STEP[10][1]'], 'idle_timeout': '0'}], + # Forward UDP packets depending on dest port + ['vswitch', 'add_flow', 'int_br0', {'in_port': '#STEP[1][1]', \ + 'dl_type': '0x0800', 'nw_proto': '17', 'udp_dst': '0', \ + 'actions': ['output:#STEP[3][1]'], 'idle_timeout': '0'}], + ['vswitch', 'add_flow', 'int_br0', {'in_port': '#STEP[1][1]', \ + 'dl_type': '0x0800', 'nw_proto': '17', 'udp_dst': '1', \ + 'actions': ['output:#STEP[5][1]'], 'idle_timeout': '0'}], + ['vswitch', 'add_flow', 'int_br0', {'in_port': '#STEP[1][1]', \ + 'dl_type': '0x0800', 'nw_proto': '17', 'udp_dst': '2', \ + 'actions': ['output:#STEP[7][1]'], 'idle_timeout': '0'}], + ['vswitch', 'add_flow', 'int_br0', {'in_port': '#STEP[1][1]', \ + 'dl_type': '0x0800', 'nw_proto': '17', 'udp_dst': '3', \ + 'actions': ['output:#STEP[9][1]'], 'idle_timeout': '0'}], + # Send VM outputs to phy port #2 + ['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[6][1]', \ + 'actions': ['output:#STEP[2][1]'], 'idle_timeout': '0'}], + ['vswitch', 'add_flow', 'int_br0', {'in_port': '#STEP[8][1]', \ + 'actions': ['output:#STEP[2][1]'], 'idle_timeout': '0'}], + ['vswitch', 'add_flow', 'int_br0', {'in_port': '#STEP[10][1]', \ + 'actions': ['output:#STEP[2][1]'], 'idle_timeout': '0'}], +] + +STEP_VSWITCH_2PHY_6VM_INIT = STEP_VSWITCH_2PHY_4VM_INIT + [ + ['vswitch', 'add_vport', 'int_br0'], # STEP 11 vm5 vhu8 + ['vswitch', 'add_vport', 'int_br0'], # STEP 12 vhu9 + ['vswitch', 'add_vport', 'int_br0'], # STEP 13 vm6 vhu10 + ['vswitch', 'add_vport', 'int_br0'], # STEP 14 vhu11 +] + +STEP_VSWITCH_6_PARALLEL_VM_FLOWS_INIT = STEP_VSWITCH_4_PARALLEL_VM_FLOWS_INIT + [ + ['vswitch', 'add_flow', 'int_br0', \ + {'priority': '1', 'dl_src': '00:00:00:00:00:09', \ + 'actions': ['output:#STEP[11][1]'], 'idle_timeout': '0'}], + ['vswitch', 'add_flow', 'int_br0', \ + {'priority': '1', 'dl_src': '00:00:00:00:00:0a', \ + 'actions': ['output:#STEP[12][1]'], 'idle_timeout': '0'}], + ['vswitch', 'add_flow', 'int_br0', \ + {'priority': '1', 'dl_src': '00:00:00:00:00:0b', \ + 'actions': ['output:#STEP[13][1]'], 'idle_timeout': '0'}], + ['vswitch', 'add_flow', 'int_br0', \ + {'priority': '1', 'dl_src': '00:00:00:00:00:0c', \ + 'actions': ['output:#STEP[14][1]'], 'idle_timeout': '0'}], + # Forward UDP packets depending on dest port + ['vswitch', 'add_flow', 'int_br0', {'in_port': '#STEP[1][1]', \ + 'dl_type': '0x0800', 'nw_proto': '17', 'udp_dst': '4', \ + 'actions': ['output:#STEP[11][1]'], 'idle_timeout': '0'}], + ['vswitch', 'add_flow', 'int_br0', {'in_port': '#STEP[1][1]', \ + 'dl_type': '0x0800', 'nw_proto': '17', 'udp_dst': '5', \ + 'actions': ['output:#STEP[13][1]'], 'idle_timeout': '0'}], + # Send VM outputs to phy port #2 + ['vswitch', 'add_flow', 'int_br0', {'in_port': '#STEP[12][1]', \ + 'actions': ['output:#STEP[2][1]'], 'idle_timeout': '0'}], + ['vswitch', 'add_flow', 'int_br0', {'in_port': '#STEP[14][1]', \ + 'actions': ['output:#STEP[2][1]'], 'idle_timeout': '0'}], +] + +STEP_VSWITCH_2PHY_6VM_FINIT = [ + ['vswitch', 'del_port', 'int_br0', '#STEP[11][0]'], # vm5 ports + ['vswitch', 'del_port', 'int_br0', '#STEP[12][0]'], + ['vswitch', 'del_port', 'int_br0', '#STEP[13][0]'], # vm6 ports + ['vswitch', 'del_port', 'int_br0', '#STEP[14][0]'], +] + STEP_VSWITCH_2PHY_4VM_FINIT + # # Definition of integration tests # INTEGRATION_TESTS = [ { + "Name": "overlay_p2p_mod_tput", + "Traffic Type": "rfc2544", + "Deployment": "ptunp", + "biDirectional": 'True', + "Tunnel Type": "vxlan", + "Description": ("Tunneling Throughput RFC2544 Test." + "The encap and decap are performed inside the " + "virtual switch itself in each direction to avoid " + "the need of ingress overlay traffic."), + }, + { "Name": "overlay_p2p_tput", "Traffic Type": "rfc2544", "Deployment": "op2p", @@ -420,6 +575,80 @@ INTEGRATION_TESTS = [ ] + STEP_VSWITCH_PVVP_FLOWS_FINIT }, + { + # Topology: 2 Parallel PVP connections + # To run a Linux bridge as a loopback in the Guest use: + # --test-params "guest_loopback=linux_bridge" --integration 2pvp_udp_dest_flows + "Name": "2pvp_udp_dest_flows", + "Description": "Continuous TC with 2 Parallel VMs, flows on UDP Dest Port", + "Deployment": "clean", + "Stream Type": "L4", + "MultiStream": 2, + "TestSteps": STEP_VSWITCH_2PHY_2VM_INIT + + STEP_VSWITCH_2_PARALLEL_VM_FLOWS_INIT + [ + # Start 2 VMs + ['vnf1', 'start'], + ['vnf2', 'start'], + ['trafficgen', 'send_traffic', {'traffic_type' : 'continuous', 'bidir' : 'False'}], + ['vnf1', 'stop'], + ['vnf2', 'stop'], + # Clean up + ] + STEP_VSWITCH_FLOWS_FINIT + + STEP_VSWITCH_2PHY_2VM_FINIT + }, + { + # Topology: 4 Parallel PVP connections + # To run a Linux bridge as a loopback in the Guest use: + # --test-params "guest_loopback=linux_bridge" --integration 4pvp_udp_dest_flows + "Name": "4pvp_udp_dest_flows", + "Description": "Continuous TC with 4 Parallel VMs, flows on UDP Dest Port", + "Deployment": "clean", + "Stream Type": "L4", + "MultiStream": 4, + "TestSteps": STEP_VSWITCH_2PHY_4VM_INIT + + STEP_VSWITCH_4_PARALLEL_VM_FLOWS_INIT + [ + # Start 4 VMs + ['vnf1', 'start'], + ['vnf2', 'start'], + ['vnf3', 'start'], + ['vnf4', 'start'], + ['trafficgen', 'send_traffic', {'traffic_type' : 'continuous', 'bidir' : 'False'}], + ['vnf1', 'stop'], + ['vnf2', 'stop'], + ['vnf3', 'stop'], + ['vnf4', 'stop'], + # Clean up + ] + STEP_VSWITCH_FLOWS_FINIT + + STEP_VSWITCH_2PHY_4VM_FINIT + }, + { + # Topology: 6 Parallel PVP connections + # To run a Linux bridge as a loopback in the Guest use: + # --test-params "guest_loopback=linux_bridge" --integration 6pvp_udp_dest_flows + "Name": "6pvp_udp_dest_flows", + "Description": "Continuous TC with 6 Parallel VMs, flows on UDP Dest Port", + "Deployment": "clean", + "Stream Type": "L4", + "MultiStream": 6, + "TestSteps": STEP_VSWITCH_2PHY_6VM_INIT + + STEP_VSWITCH_6_PARALLEL_VM_FLOWS_INIT + [ + # Start VMs + ['vnf1', 'start'], + ['vnf2', 'start'], + ['vnf3', 'start'], + ['vnf4', 'start'], + ['vnf5', 'start'], + ['vnf6', 'start'], + ['trafficgen', 'send_traffic', {'traffic_type' : 'continuous', 'bidir' : 'False'}], + ['vnf1', 'stop'], + ['vnf2', 'stop'], + ['vnf3', 'stop'], + ['vnf4', 'stop'], + ['vnf5', 'stop'], + ['vnf6', 'stop'], + ] + STEP_VSWITCH_FLOWS_FINIT + + STEP_VSWITCH_2PHY_6VM_FINIT + }, ] # Example of TC definition with exact vSwitch, VNF and TRAFFICGEN values. diff --git a/conf/integration/02_vswitch.conf b/conf/integration/02_vswitch.conf index 6bdf79d3..68eaf73e 100644 --- a/conf/integration/02_vswitch.conf +++ b/conf/integration/02_vswitch.conf @@ -28,3 +28,15 @@ TUNNEL_TYPE = 'vxlan' DUT_NIC1_MAC = '' # Used for OVS DPDK Decap DUT_NIC2_MAC = '' + +#Tunnel bridge configuration for P-TUN-P(VxLAN) deployment scenario +# to test VxLAN performance without any overlay ingress traffic by doing the +# encap decap inside the virtual switch itself. +TUNNEL_EXTERNAL_BRIDGE1 = 'br-phy1' +TUNNEL_EXTERNAL_BRIDGE2 = 'br-phy2' +TUNNEL_MODIFY_BRIDGE1 = 'br-mod1' +TUNNEL_MODIFY_BRIDGE2 = 'br-mod2' +TUNNEL_MODIFY_BRIDGE_MAC1 = '00:00:10:00:00:01' +TUNNEL_MODIFY_BRIDGE_MAC2 = '00:00:20:00:00:01' +TUNNEL_MODIFY_BRIDGE_IP1 = '10.0.0.1/24' +TUNNEL_MODIFY_BRIDGE_IP2 = '20.0.0.1/24' |