diff options
-rw-r--r-- | conf/02_vswitch.conf | 2 | ||||
-rw-r--r-- | conf/integration/01_testcases.conf | 381 | ||||
-rw-r--r-- | conf/integration/01a_testcases_l34_vxlan.conf | 18 | ||||
-rw-r--r-- | conf/integration/01b_dpdk_regression_tests.conf | 47 | ||||
-rw-r--r-- | conf/integration/02_vswitch.conf | 6 | ||||
-rw-r--r-- | docs/testing/user/userguide/integration.rst | 4 | ||||
-rw-r--r-- | docs/testing/user/userguide/testlist.rst | 15 | ||||
-rw-r--r-- | docs/testing/user/userguide/teststeps.rst | 16 | ||||
-rw-r--r-- | docs/testing/user/userguide/trafficcapture.rst | 8 |
9 files changed, 100 insertions, 397 deletions
diff --git a/conf/02_vswitch.conf b/conf/02_vswitch.conf index 873b5bca..84ef71cb 100644 --- a/conf/02_vswitch.conf +++ b/conf/02_vswitch.conf @@ -172,7 +172,7 @@ OVS_OLD_STYLE_MQ = False VSWITCHD_VANILLA_ARGS = [] # Bridge name to be used by VSWTICH -VSWITCH_BRIDGE_NAME = 'br0' +VSWITCH_BRIDGE_NAME = 'vsperf-br0' # A tunnel type used by OP2P and PTUNP deployments # Supported values: 'vxlan', 'gre' or 'geneve' diff --git a/conf/integration/01_testcases.conf b/conf/integration/01_testcases.conf index 4e3c192e..7daff217 100644 --- a/conf/integration/01_testcases.conf +++ b/conf/integration/01_testcases.conf @@ -169,192 +169,6 @@ STEP_VSWITCH_PVVP_FLOWS_FINIT = [ ['vswitch', 'del_flow', 'int_br0', {'in_port': '#STEP[3][1]'}], ] + STEP_VSWITCH_PVVP_FINIT -STEP_VSWITCH_P4VP_INIT = STEP_VSWITCH_PVVP_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_P4VP_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_PVVP_FINIT - -STEP_VSWITCH_P4VP_FLOWS_INIT = STEP_VSWITCH_P4VP_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[7][1]'], 'idle_timeout': '0'}], - ['vswitch', 'add_flow', 'int_br0', {'in_port': '#STEP[8][1]', \ - 'actions': ['output:#STEP[9][1]'], 'idle_timeout': '0'}], - ['vswitch', 'add_flow', 'int_br0', {'in_port': '#STEP[10][1]', \ - 'actions': ['output:#STEP[2][1]'], 'idle_timeout': '0'}], - ['vswitch', 'add_flow', 'int_br0', {'in_port': '#STEP[2][1]', \ - 'actions': ['output:#STEP[10][1]'], 'idle_timeout': '0'}], - ['vswitch', 'add_flow', 'int_br0', {'in_port': '#STEP[9][1]', \ - 'actions': ['output:#STEP[8][1]'], 'idle_timeout': '0'}], - ['vswitch', 'add_flow', 'int_br0', {'in_port': '#STEP[7][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_P4VP_FLOWS_FINIT = [ - ['vswitch', 'dump_flows', 'int_br0'], - ['vswitch', 'del_flow', 'int_br0'], -] + STEP_VSWITCH_P4VP_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 # @@ -750,101 +564,45 @@ INTEGRATION_TESTS = [ STEP_VSWITCH_PVVP_CONNECTIONS_FINIT }, { - "Name": "vswitch_p4vp", - "Description": "Just configure 4 chained vnfs", - "Deployment": "clean", - "TestSteps": STEP_VSWITCH_P4VP_FLOWS_INIT + - [ - ['vnf1', 'start'], - ['vnf2', 'start'], - ['vnf3', 'start'], - ['vnf4', 'start'], - ['vnf1', 'stop'], - ['vnf2', 'stop'], - ['vnf3', 'stop'], - ['vnf4', 'stop'], - ] + - STEP_VSWITCH_P4VP_FLOWS_FINIT - }, - { "Name": "vswitch_p4vp_tput", - "Description": "4 chained vnfs, execute RFC2544 throughput test", - "Deployment": "clean", - "TestSteps": STEP_VSWITCH_P4VP_FLOWS_INIT + - [ - ['vnf1', 'start'], - ['vnf2', 'start'], - ['vnf3', 'start'], - ['vnf4', 'start'], - ['trafficgen', 'send_traffic', {'traffic_type' : 'rfc2544_throughput', \ - 'bidir' : 'True'}], - ['vnf1', 'stop'], - ['vnf2', 'stop'], - ['vnf3', 'stop'], - ['vnf4', 'stop'], - ] + - STEP_VSWITCH_P4VP_FLOWS_FINIT + "Description": "4 chained vnfs, execute RFC2544 throughput test, deployment pvvp4", + "Deployment": "pvvp4", + "Parameters" : { + "TRAFFIC" : { + "traffic_type" : "rfc2544_throughput", + }, + }, }, { "Name": "vswitch_p4vp_back2back", - "Description": "4 chained vnfs, execute RFC2544 back2back test", - "Deployment": "clean", - "TestSteps": STEP_VSWITCH_P4VP_FLOWS_INIT + - [ - ['vnf1', 'start'], - ['vnf2', 'start'], - ['vnf3', 'start'], - ['vnf4', 'start'], - ['trafficgen', 'send_traffic', {'traffic_type' : 'rfc2544_back2back', \ - 'bidir' : 'True'}], - ['vnf1', 'stop'], - ['vnf2', 'stop'], - ['vnf3', 'stop'], - ['vnf4', 'stop'], - ] + - STEP_VSWITCH_P4VP_FLOWS_FINIT + "Description": "4 chained vnfs, execute RFC2544 back2back test, deployment pvvp4", + "Deployment": "pvvp4", + "Parameters" : { + "TRAFFIC" : { + "traffic_type" : "rfc2544_back2back", + }, + }, }, { "Name": "vswitch_p4vp_cont", - "Description": "4 chained vnfs, execute RFC2544 continuous stream test", - "Deployment": "clean", - "TestSteps": STEP_VSWITCH_P4VP_FLOWS_INIT + - [ - ['vnf1', 'start'], - ['vnf2', 'start'], - ['vnf3', 'start'], - ['vnf4', 'start'], - ['trafficgen', 'send_traffic', {'traffic_type' : 'rfc2544_continuous', \ - 'bidir' : 'True'}], - ['vnf1', 'stop'], - ['vnf2', 'stop'], - ['vnf3', 'stop'], - ['vnf4', 'stop'], - ] + - STEP_VSWITCH_P4VP_FLOWS_FINIT + "Description": "4 chained vnfs, execute RFC2544 continuous stream test, deployment pvvp4", + "Deployment": "pvvp4", + "Parameters" : { + "TRAFFIC" : { + "traffic_type" : "rfc2544_continuous", + }, + }, }, { "Name": "vswitch_p4vp_all", - "Description": "4 chained vnfs, execute RFC2544 throughput test", - "Deployment": "clean", - "TestSteps": STEP_VSWITCH_P4VP_FLOWS_INIT + + "Description": "4 chained vnfs, execute RFC2544 throughput tests, deployment pvvp4", + "Deployment": "pvvp4", + "TestSteps": [ - ['vnf1', 'start'], - ['vnf2', 'start'], - ['vnf3', 'start'], - ['vnf4', 'start'], - ['trafficgen', 'send_traffic', {'traffic_type' : 'rfc2544_throughput', \ - 'bidir' : 'True'}], - ['trafficgen', 'send_traffic', {'traffic_type' : 'rfc2544_back2back', \ - 'bidir' : 'True'}], - ['trafficgen', 'send_traffic', {'traffic_type' : 'rfc2544_continuous', \ - 'bidir' : 'True'}], - ['vnf1', 'stop'], - ['vnf2', 'stop'], - ['vnf3', 'stop'], - ['vnf4', 'stop'], - ] + - STEP_VSWITCH_P4VP_FLOWS_FINIT + ['trafficgen', 'send_traffic', {'traffic_type' : 'rfc2544_throughput'}], + ['trafficgen', 'send_traffic', {'traffic_type' : 'rfc2544_back2back'}], + ['trafficgen', 'send_traffic', {'traffic_type' : 'rfc2544_continuous'}], + ] }, { # Topology: 2 Parallel PVP connections @@ -853,25 +611,13 @@ INTEGRATION_TESTS = [ # or add "Parameters" option to the test definition: # "Parameters" : {'GUEST_LOOPBACK' : ['linux_bridge'],}, "Name": "2pvp_udp_dest_flows", - "Description": "RFC2544 Continuous TC with 2 Parallel VMs, flows on UDP Dest Port", - "Deployment": "clean", + "Description": "RFC2544 Continuous TC with 2 Parallel VMs, flows on UDP Dest Port, deployment pvpv2", + "Deployment": "pvpv2", "Parameters" : { "TRAFFIC" : { - "multistream" : 2, - "stream_type" : "L4", + "traffic_type" : "rfc2544_continuous", }, }, - "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' : 'rfc2544_continuous', 'bidir' : 'False'}], - ['vnf1', 'stop'], - ['vnf2', 'stop'], - # Clean up - ] + STEP_VSWITCH_FLOWS_FINIT + - STEP_VSWITCH_2PHY_2VM_FINIT }, { # Topology: 4 Parallel PVP connections @@ -880,29 +626,13 @@ INTEGRATION_TESTS = [ # or add "Parameters" option to the test definition: # "Parameters" : {'GUEST_LOOPBACK' : ['linux_bridge'],}, "Name": "4pvp_udp_dest_flows", - "Description": "RFC2544 Continuous TC with 4 Parallel VMs, flows on UDP Dest Port", - "Deployment": "clean", + "Description": "RFC2544 Continuous TC with 4 Parallel VMs, flows on UDP Dest Port, deployment pvpv4", + "Deployment": "pvpv4", "Parameters" : { "TRAFFIC" : { - "multistream" : 4, - "stream_type" : "L4", + "traffic_type" : "rfc2544_continuous", }, }, - "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' : 'rfc2544_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 @@ -911,32 +641,13 @@ INTEGRATION_TESTS = [ # or add "Parameters" option to the test definition: # "Parameters" : {'GUEST_LOOPBACK' : ['linux_bridge'],}, "Name": "6pvp_udp_dest_flows", - "Description": "RFC2544 Continuous TC with 6 Parallel VMs, flows on UDP Dest Port", - "Deployment": "clean", + "Description": "RFC2544 Continuous TC with 6 Parallel VMs, flows on UDP Dest Port, deployment pvpv6", + "Deployment": "pvpv6", "Parameters" : { "TRAFFIC" : { - "multistream" : 6, - "stream_type" : "L4", + "traffic_type" : "rfc2544_continuous", }, }, - "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' : 'rfc2544_continuous', 'bidir' : 'False'}], - ['vnf1', 'stop'], - ['vnf2', 'stop'], - ['vnf3', 'stop'], - ['vnf4', 'stop'], - ['vnf5', 'stop'], - ['vnf6', 'stop'], - ] + STEP_VSWITCH_FLOWS_FINIT + - STEP_VSWITCH_2PHY_6VM_FINIT }, { # Testcase for verification of vHost User NUMA awareness feature @@ -1097,9 +808,9 @@ INTEGRATION_TESTS = [ }, "TestSteps": [ # replace original flows with vlan ID modification - ['!vswitch', 'add_flow', 'br0', {'in_port': '1', 'actions': ['mod_vlan_vid:4','output:3']}], - ['!vswitch', 'add_flow', 'br0', {'in_port': '2', 'actions': ['mod_vlan_vid:4','output:4']}], - ['vswitch', 'dump_flows', 'br0'], + ['!vswitch', 'add_flow', '$VSWITCH_BRIDGE_NAME', {'in_port': '1', 'actions': ['mod_vlan_vid:4','output:3']}], + ['!vswitch', 'add_flow', '$VSWITCH_BRIDGE_NAME', {'in_port': '2', 'actions': ['mod_vlan_vid:4','output:4']}], + ['vswitch', 'dump_flows', '$VSWITCH_BRIDGE_NAME'], # verify that received frames have modified vlan ID ['VNF0', 'execute_and_wait', 'tcpdump -i eth0 -c 5 -w dump.pcap vlan 4 &'], ['trafficgen', 'send_traffic',{}], @@ -1125,14 +836,14 @@ _CAPTURE_P2P2P_SETUP = [ # create and configure two bridges to forward traffic through NIC under # the test and back to the traffic generator # 1st bridge: - ['vswitch', 'add_switch', 'br0'], + ['vswitch', 'add_switch', '$VSWITCH_BRIDGE_NAME'], ['tools', 'exec_shell', 'sudo ip addr flush dev $NICS[0]["device"]'], ['tools', 'exec_shell', 'sudo ip link set dev $NICS[0]["device"] up'], - ['tools', 'exec_shell', '$TOOLS["ovs-vsctl"] add-port br0 $NICS[0]["device"]'], + ['tools', 'exec_shell', '$TOOLS["ovs-vsctl"] add-port $VSWITCH_BRIDGE_NAME $NICS[0]["device"]'], ['tools', 'exec_shell', 'sudo $TOOLS["bind-tool"] --bind igb_uio $NICS[3]["pci"]'], - ['tools', 'exec_shell', '$TOOLS["ovs-vsctl"] add-port br0 dpdk0 -- ' + ['tools', 'exec_shell', '$TOOLS["ovs-vsctl"] add-port $VSWITCH_BRIDGE_NAME dpdk0 -- ' 'set Interface dpdk0 type=dpdk options:dpdk-devargs=$NICS[3]["pci"]'], - ['tools', 'exec_shell', '$TOOLS["ovs-ofctl"] add-flow br0 in_port=1,action=' + ['tools', 'exec_shell', '$TOOLS["ovs-ofctl"] add-flow $VSWITCH_BRIDGE_NAME in_port=1,action=' '$_CAPTURE_P2P2P_OVS_ACTION,output:2'], # 2nd bridge: ['vswitch', 'add_switch', 'br1'], @@ -1144,7 +855,7 @@ _CAPTURE_P2P2P_SETUP = [ ['tools', 'exec_shell', '$TOOLS["ovs-vsctl"] add-port br1 $NICS[1]["device"]'], ['vswitch', 'add_flow', 'br1', {'in_port': '1', 'actions': ['output:2']}], # log flow details - ['vswitch', 'dump_flows', 'br0'], + ['vswitch', 'dump_flows', '$VSWITCH_BRIDGE_NAME'], ['vswitch', 'dump_flows', 'br1'], ] INTEGRATION_TESTS += [ @@ -1178,7 +889,7 @@ INTEGRATION_TESTS += [ ['tools', 'exec_shell_background', 'tcpdump -i $NICS[2]["device"] -c 5 -w capture.pcap ' 'ether src $TRAFFIC["l2"]["srcmac"]'], ['trafficgen', 'send_traffic', {}], - ['vswitch', 'dump_flows', 'br0'], + ['vswitch', 'dump_flows', '$VSWITCH_BRIDGE_NAME'], ['vswitch', 'dump_flows', 'br1'], # there must be 5 captured frames... ['tools', 'exec_shell', 'tcpdump -r capture.pcap | wc -l', '|^(\d+)$'], diff --git a/conf/integration/01a_testcases_l34_vxlan.conf b/conf/integration/01a_testcases_l34_vxlan.conf index 17c0d6ff..b42a14d1 100644 --- a/conf/integration/01a_testcases_l34_vxlan.conf +++ b/conf/integration/01a_testcases_l34_vxlan.conf @@ -1,4 +1,4 @@ -# Copyright 2017 Intel Corporation. +# Copyright 2017-2018 Intel Corporation and Tieto. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. @@ -63,7 +63,6 @@ INTEGRATION_TESTS = INTEGRATION_TESTS + [ 'cmds.close()'], ['tools', 'exec_shell', "sudo $TOOLS['ovs-ofctl'] -O OpenFlow13 --bundle add-flows int_br0 /tmp/ovsofctl_cmds.txt"], ['trafficgen', 'send_traffic', {}], - ['vswitch', 'del_flow', 'int_br0'], ] + STEP_VSWITCH_P2P_FINIT }, @@ -93,7 +92,6 @@ INTEGRATION_TESTS = INTEGRATION_TESTS + [ 'actions': ['output:#STEP[2][1]'], 'idle_timeout': '0' }], ['trafficgen', 'send_traffic', {}], ['vswitch', 'dump_flows', 'int_br0'], - ['vswitch', 'del_flow', 'int_br0'], ] + STEP_VSWITCH_P2P_FINIT }, @@ -130,7 +128,6 @@ INTEGRATION_TESTS = INTEGRATION_TESTS + [ ['trafficgen', 'send_traffic', {}], ['vswitch', 'dump_flows', 'int_br0'], ['vnf', 'stop'], - ['vswitch', 'del_flow', 'int_br0'], ] + STEP_VSWITCH_PVP_FINIT }, { @@ -172,7 +169,6 @@ INTEGRATION_TESTS = INTEGRATION_TESTS + [ ['vswitch', 'dump_flows', 'int_br0'], ['vnf2', 'stop'], ['vnf1', 'stop'], - ['vswitch', 'del_flow', 'int_br0'], ] + STEP_VSWITCH_PVVP_FINIT }, @@ -213,7 +209,6 @@ INTEGRATION_TESTS = INTEGRATION_TESTS + [ ['tools', 'exec_shell', "sudo $TOOLS['ovs-ofctl'] -O OpenFlow13 --bundle " "add-flows int_br0 /tmp/ovsofctl_cmds.txt"], ['trafficgen', 'send_traffic', {}], - ['vswitch', 'del_flow', 'int_br0'], ] + STEP_VSWITCH_P2P_FINIT }, @@ -249,7 +244,6 @@ INTEGRATION_TESTS = INTEGRATION_TESTS + [ 'actions': ['output:#STEP[2][1]'], 'idle_timeout': '0'}], ['trafficgen', 'send_traffic', {}], ['vswitch', 'dump_flows', 'int_br0'], - ['vswitch', 'del_flow', 'int_br0'], ] + STEP_VSWITCH_P2P_FINIT }, @@ -293,7 +287,6 @@ INTEGRATION_TESTS = INTEGRATION_TESTS + [ ['trafficgen', 'send_traffic', {}], ['vswitch', 'dump_flows', 'int_br0'], ['vnf', 'stop'], - ['vswitch', 'del_flow', 'int_br0'], ] + STEP_VSWITCH_PVP_FINIT }, @@ -344,7 +337,6 @@ INTEGRATION_TESTS = INTEGRATION_TESTS + [ ['vswitch', 'dump_flows', 'int_br0'], ['vnf2', 'stop'], ['vnf1', 'stop'], - ['vswitch', 'del_flow', 'int_br0'], ] + STEP_VSWITCH_PVVP_FINIT }, @@ -888,13 +880,13 @@ INTEGRATION_TESTS = INTEGRATION_TESTS + [ }, }, "TestSteps": [ - ['vswitch', 'del_flow', 'br0', {'in_port': '1'}], - ['vswitch', 'add_flow', 'br0', + ['vswitch', 'del_flow', '$TUNNEL_INTEGRATION_BRIDGE', {'in_port': '1'}], + ['vswitch', 'add_flow', '$TUNNEL_INTEGRATION_BRIDGE', {'in_port': '1', 'dl_type': '0x800', 'nw_proto': '17', 'nw_dst': '$TRAFFICGEN_PORT2_IP/8', 'actions': ['output:2'], 'idle_timeout': '0'}], - ['vswitch', 'dump_flows', 'br0'], - ['vswitch', 'dump_flows', 'br-ext'], + ['vswitch', 'dump_flows', '$TUNNEL_INTEGRATION_BRIDGE'], + ['vswitch', 'dump_flows', '$TUNNEL_EXTERNAL_BRIDGE'], ], }, { diff --git a/conf/integration/01b_dpdk_regression_tests.conf b/conf/integration/01b_dpdk_regression_tests.conf index 7e4fe74f..abc56c28 100644 --- a/conf/integration/01b_dpdk_regression_tests.conf +++ b/conf/integration/01b_dpdk_regression_tests.conf @@ -1,4 +1,4 @@ -# Copyright 2017-2018 Intel Corporation. +# Copyright 2017-2018 Intel Corporation., Tieto # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. @@ -170,9 +170,6 @@ INTEGRATION_TESTS = INTEGRATION_TESTS + [ ['tools', 'exec_shell', 'sudo $TOOLS["ovs-vsctl"] show', '|Error attaching device.*$NICS[0]["pci"]'], ['tools', 'assert', 'not len(#STEP[-1])'], - # clean up - ['vswitch', 'del_port', 'int_br0', '#STEP[port2][0]'], - ['vswitch', 'del_switch', 'int_br0'], ] }, { @@ -344,14 +341,14 @@ INTEGRATION_TESTS = INTEGRATION_TESTS + [ # frame loss with small packets should be detected ['tools', 'assert', '#STEP[-1][0]["frame_loss_percent"] > 10'], # delete phy ports so they can be created with flow control - ['vswitch', 'del_flow', 'br0', {}], - ['vswitch', 'del_port', 'br0', 'dpdk0'], - ['vswitch', 'del_port', 'br0', 'dpdk1'], + ['vswitch', 'del_flow', '$VSWITCH_BRIDGE_NAME', {}], + ['vswitch', 'del_port', '$VSWITCH_BRIDGE_NAME', 'dpdk0'], + ['vswitch', 'del_port', '$VSWITCH_BRIDGE_NAME', 'dpdk1'], # turn on flow control - ['tools', 'exec_shell', 'sudo $TOOLS["ovs-vsctl"] add-port br0 dpdk0 -- set Interface dpdk0 type=dpdk options:dpdk-devargs=$NICS[0]["pci"] options:rx-flow-ctrl=true'], - ['tools', 'exec_shell', 'sudo $TOOLS["ovs-vsctl"] add-port br0 dpdk1 -- set Interface dpdk1 type=dpdk options:dpdk-devargs=$NICS[1]["pci"] options:rx-flow-ctrl=true'], - ['vswitch', 'add_flow', 'br0', {'in_port': '3', 'actions': ['output:4'], 'idle_timeout': '0'}], - ['vswitch', 'add_flow', 'br0', {'in_port': '4', 'actions': ['output:3'], 'idle_timeout': '0'}], + ['tools', 'exec_shell', 'sudo $TOOLS["ovs-vsctl"] add-port $VSWITCH_BRIDGE_NAME dpdk0 -- set Interface dpdk0 type=dpdk options:dpdk-devargs=$NICS[0]["pci"] options:rx-flow-ctrl=true'], + ['tools', 'exec_shell', 'sudo $TOOLS["ovs-vsctl"] add-port $VSWITCH_BRIDGE_NAME dpdk1 -- set Interface dpdk1 type=dpdk options:dpdk-devargs=$NICS[1]["pci"] options:rx-flow-ctrl=true'], + ['vswitch', 'add_flow', '$VSWITCH_BRIDGE_NAME', {'in_port': '3', 'actions': ['output:4'], 'idle_timeout': '0'}], + ['vswitch', 'add_flow', '$VSWITCH_BRIDGE_NAME', {'in_port': '4', 'actions': ['output:3'], 'idle_timeout': '0'}], ['tools', 'exec_shell', 'sudo $TOOLS["ovs-vsctl"] show'], ['trafficgen', 'send_traffic', {}], ['trafficgen', 'get_results'], @@ -671,15 +668,17 @@ INTEGRATION_TESTS = INTEGRATION_TESTS + [ "TestSteps": [ # send traffic to verify correct PVP configuration ['trafficgen', 'send_traffic', {}], - ['vswitch', 'dump_flows', 'br0'], + ['vswitch', 'dump_flows', '$VSWITCH_BRIDGE_NAME'], # restart vswitchd, ovsdb is kept untouched, so ovs configuration # (except flows) will be restored ['vswitch', 'restart'], - ['vswitch', 'del_flow', 'br0'], - ['vswitch', 'add_flow', 'br0', {'in_port': '1', 'actions': ['output:3'], 'idle_timeout': '0'}], - ['vswitch', 'add_flow', 'br0', {'in_port': '3', 'actions': ['output:1'], 'idle_timeout': '0'}], - ['vswitch', 'add_flow', 'br0', {'in_port': '2', 'actions': ['output:4'], 'idle_timeout': '0'}], - ['vswitch', 'add_flow', 'br0', {'in_port': '4', 'actions': ['output:2'], 'idle_timeout': '0'}], + ['vswitch', 'del_flow', '$VSWITCH_BRIDGE_NAME', {}], + ['vswitch', 'dump_flows', '$VSWITCH_BRIDGE_NAME'], + ['vswitch', 'add_flow', '$VSWITCH_BRIDGE_NAME', {'in_port': '1', 'actions': ['output:3'], 'idle_timeout': '0'}], + ['vswitch', 'add_flow', '$VSWITCH_BRIDGE_NAME', {'in_port': '3', 'actions': ['output:1'], 'idle_timeout': '0'}], + ['vswitch', 'add_flow', '$VSWITCH_BRIDGE_NAME', {'in_port': '2', 'actions': ['output:4'], 'idle_timeout': '0'}], + ['vswitch', 'add_flow', '$VSWITCH_BRIDGE_NAME', {'in_port': '4', 'actions': ['output:2'], 'idle_timeout': '0'}], + ['vswitch', 'dump_flows', '$VSWITCH_BRIDGE_NAME'], # send traffic to verify that OVS works correctly after restart ['trafficgen', 'send_traffic', {}], ], @@ -718,13 +717,13 @@ INTEGRATION_TESTS = INTEGRATION_TESTS + [ "VSWITCH_VHOSTUSER_SERVER_MODE" : True, }, "TestSteps": [ - ['vswitch', 'add_switch', 'br0'], + ['vswitch', 'add_switch', '$VSWITCH_BRIDGE_NAME'], ['tools', 'exec_shell', 'sudo $TOOLS["ovs-vsctl"] set Open_vSwitch . ' 'other_config:vhost-sock-dir=test_dir'], # enforce vswitchd to read new configuration ['vswitch', 'restart'], ['tools', 'exec_shell', 'sudo mkdir $TOOLS["ovs_var_tmp"]/test_dir'], - ['vswitch', 'add_vport', 'br0'], + ['vswitch', 'add_vport', '$VSWITCH_BRIDGE_NAME'], ['tools', 'exec_shell', 'ls -1 $TOOLS["ovs_var_tmp"]/test_dir', '|dpdkvhostuser0'], ['tools', 'assert', 'len(#STEP[-1])'], @@ -1297,7 +1296,7 @@ _OVSDPDK_RATE_confirm_multiple_rate_limit_setup = \ # check that traffic rate is no longer limited ['trafficgen', 'get_results'], ['tools', 'assert', 'int(#STEP[-1][0]["throughput_rx_mbps"])>500'], - ['vswitch', 'dump_flows', 'br0'], + ['vswitch', 'dump_flows', '$VSWITCH_BRIDGE_NAME'], ] INTEGRATION_TESTS = INTEGRATION_TESTS + [ @@ -1603,8 +1602,8 @@ INTEGRATION_TESTS = INTEGRATION_TESTS + [ "Parameters" : {}, "TestSteps": [ # Setup switch,port and logs - ['vswitch', 'add_switch', 'br0'], - ['vswitch', 'add_vport', 'br0'], + ['vswitch', 'add_switch', '$VSWITCH_BRIDGE_NAME'], + ['vswitch', 'add_vport', '$VSWITCH_BRIDGE_NAME'], ['#LOG_MARK', 'tools', 'exec_shell', 'echo $((1+`wc -l $_OVSDPDK_VSWITCH_LOG | cut -d" " -f1`))', '(\d+)'], @@ -1633,8 +1632,8 @@ INTEGRATION_TESTS = INTEGRATION_TESTS + [ "Parameters" : {}, "TestSteps": [ # Setup switch,port and logs - ['vswitch', 'add_switch', 'br0'], - ['vswitch', 'add_vport', 'br0'], + ['vswitch', 'add_switch', '$VSWITCH_BRIDGE_NAME'], + ['vswitch', 'add_vport', '$VSWITCH_BRIDGE_NAME'], ['#LOG_MARK', 'tools', 'exec_shell', 'echo $((1+`wc -l $_OVSDPDK_VSWITCH_LOG | cut -d" " -f1`))', '(\d+)'], diff --git a/conf/integration/02_vswitch.conf b/conf/integration/02_vswitch.conf index 63ffe1bc..9477a1d0 100644 --- a/conf/integration/02_vswitch.conf +++ b/conf/integration/02_vswitch.conf @@ -1,4 +1,4 @@ -# Copyright 2015-2016 Intel Corporation. +# Copyright 2015-2018 Intel Corporation., Tieto # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. @@ -16,8 +16,8 @@ VTEP_IP1 = '192.168.0.1/24' VTEP_IP2 = '192.168.240.10' VTEP_IP2_SUBNET = '192.168.240.0/24' -TUNNEL_INTEGRATION_BRIDGE = 'br0' -TUNNEL_EXTERNAL_BRIDGE = 'br-ext' +TUNNEL_INTEGRATION_BRIDGE = 'vsperf-br0' +TUNNEL_EXTERNAL_BRIDGE = 'vsperf-br-ext' TUNNEL_EXTERNAL_BRIDGE_IP = '192.168.240.1/24' # vxlan|gre|geneve diff --git a/docs/testing/user/userguide/integration.rst b/docs/testing/user/userguide/integration.rst index 2b2246db..9d847fd8 100644 --- a/docs/testing/user/userguide/integration.rst +++ b/docs/testing/user/userguide/integration.rst @@ -69,8 +69,8 @@ the following variables in you user_settings.py file: VTEP_IP2_SUBNET = '192.168.240.0/24' # Bridge names - TUNNEL_INTEGRATION_BRIDGE = 'br0' - TUNNEL_EXTERNAL_BRIDGE = 'br-ext' + TUNNEL_INTEGRATION_BRIDGE = 'vsperf-br0' + TUNNEL_EXTERNAL_BRIDGE = 'vsperf-br-ext' # IP of br-ext TUNNEL_EXTERNAL_BRIDGE_IP = '192.168.240.1/24' diff --git a/docs/testing/user/userguide/testlist.rst b/docs/testing/user/userguide/testlist.rst index 3d4c28cf..fe8c840a 100644 --- a/docs/testing/user/userguide/testlist.rst +++ b/docs/testing/user/userguide/testlist.rst @@ -68,14 +68,13 @@ vswitch_pvvp_tput vSwitch - configure switch, two chained v vswitch_pvvp_back2back vSwitch - configure switch, two chained vnfs and execute RFC2544 back2back test vswitch_pvvp_cont vSwitch - configure switch, two chained vnfs and execute RFC2544 continuous stream test vswitch_pvvp_all vSwitch - configure switch, two chained vnfs and execute all test types -vswitch_p4vp Just configure 4 chained vnfs -vswitch_p4vp_tput 4 chained vnfs, execute RFC2544 throughput test -vswitch_p4vp_back2back 4 chained vnfs, execute RFC2544 back2back test -vswitch_p4vp_cont 4 chained vnfs, execute RFC2544 continuous stream test -vswitch_p4vp_all 4 chained vnfs, execute RFC2544 throughput test -2pvp_udp_dest_flows RFC2544 Continuous TC with 2 Parallel VMs, flows on UDP Dest Port -4pvp_udp_dest_flows RFC2544 Continuous TC with 4 Parallel VMs, flows on UDP Dest Port -6pvp_udp_dest_flows RFC2544 Continuous TC with 6 Parallel VMs, flows on UDP Dest Port +vswitch_p4vp_tput 4 chained vnfs, execute RFC2544 throughput test, deployment pvvp4 +vswitch_p4vp_back2back 4 chained vnfs, execute RFC2544 back2back test, deployment pvvp4 +vswitch_p4vp_cont 4 chained vnfs, execute RFC2544 continuous stream test, deployment pvvp4 +vswitch_p4vp_all 4 chained vnfs, execute RFC2544 throughput tests, deployment pvvp4 +2pvp_udp_dest_flows RFC2544 Continuous TC with 2 Parallel VMs, flows on UDP Dest Port, deployment pvpv2 +4pvp_udp_dest_flows RFC2544 Continuous TC with 4 Parallel VMs, flows on UDP Dest Port, deployment pvpv4 +6pvp_udp_dest_flows RFC2544 Continuous TC with 6 Parallel VMs, flows on UDP Dest Port, deployment pvpv6 vhost_numa_awareness vSwitch DPDK - verify that PMD threads are served by the same NUMA slot as QEMU instances ixnet_pvp_tput_1nic PVP Scenario with 1 port towards IXIA vswitch_vports_add_del_connection_vpp VPP: vSwitch - configure switch with vports, add and delete connection diff --git a/docs/testing/user/userguide/teststeps.rst b/docs/testing/user/userguide/teststeps.rst index e7ccce9a..cb627bc5 100644 --- a/docs/testing/user/userguide/teststeps.rst +++ b/docs/testing/user/userguide/teststeps.rst @@ -764,6 +764,8 @@ destination UDP port. ] }, +The same test can be written in a shorter form using "Deployment" : "pvpv". + To run the test: .. code-block:: console @@ -796,20 +798,20 @@ and available in both csv and rst report files. }, }, "TestSteps": [ - ['vswitch', 'add_vport', 'br0'], - ['vswitch', 'add_vport', 'br0'], + ['vswitch', 'add_vport', '$VSWITCH_BRIDGE_NAME'], + ['vswitch', 'add_vport', '$VSWITCH_BRIDGE_NAME'], # priority must be higher than default 32768, otherwise flows won't match - ['vswitch', 'add_flow', 'br0', + ['vswitch', 'add_flow', '$VSWITCH_BRIDGE_NAME', {'in_port': '1', 'actions': ['output:#STEP[-2][1]'], 'idle_timeout': '0', 'dl_type':'0x0800', 'nw_proto':'17', 'tp_dst':'0', 'priority': '33000'}], - ['vswitch', 'add_flow', 'br0', + ['vswitch', 'add_flow', '$VSWITCH_BRIDGE_NAME', {'in_port': '2', 'actions': ['output:#STEP[-2][1]'], 'idle_timeout': '0', 'dl_type':'0x0800', 'nw_proto':'17', 'tp_dst':'0', 'priority': '33000'}], - ['vswitch', 'add_flow', 'br0', {'in_port': '#STEP[-4][1]', 'actions': ['output:1'], + ['vswitch', 'add_flow', '$VSWITCH_BRIDGE_NAME', {'in_port': '#STEP[-4][1]', 'actions': ['output:1'], 'idle_timeout': '0'}], - ['vswitch', 'add_flow', 'br0', {'in_port': '#STEP[-4][1]', 'actions': ['output:2'], + ['vswitch', 'add_flow', '$VSWITCH_BRIDGE_NAME', {'in_port': '#STEP[-4][1]', 'actions': ['output:2'], 'idle_timeout': '0'}], - ['vswitch', 'dump_flows', 'br0'], + ['vswitch', 'dump_flows', '$VSWITCH_BRIDGE_NAME'], ['vnf1', 'start'], ] }, diff --git a/docs/testing/user/userguide/trafficcapture.rst b/docs/testing/user/userguide/trafficcapture.rst index fa09bfed..8a224dcb 100644 --- a/docs/testing/user/userguide/trafficcapture.rst +++ b/docs/testing/user/userguide/trafficcapture.rst @@ -92,9 +92,9 @@ An example of Traffic Capture in VM test: }, TestSteps: [ # replace original flows with vlan ID modification - ['!vswitch', 'add_flow', 'br0', {'in_port': '1', 'actions': ['mod_vlan_vid:4','output:3']}], - ['!vswitch', 'add_flow', 'br0', {'in_port': '2', 'actions': ['mod_vlan_vid:4','output:4']}], - ['vswitch', 'dump_flows', 'br0'], + ['!vswitch', 'add_flow', '$VSWITCH_BRIDGE_NAME', {'in_port': '1', 'actions': ['mod_vlan_vid:4','output:3']}], + ['!vswitch', 'add_flow', '$VSWITCH_BRIDGE_NAME', {'in_port': '2', 'actions': ['mod_vlan_vid:4','output:4']}], + ['vswitch', 'dump_flows', '$VSWITCH_BRIDGE_NAME'], # verify that received frames have modified vlan ID ['VNF0', 'execute_and_wait', 'tcpdump -i eth0 -c 5 -w dump.pcap vlan 4 &'], ['trafficgen', 'send_traffic',{}], @@ -199,7 +199,7 @@ An example of Traffic Capture for testing NICs with HW offloading test: ['tools', 'exec_shell_background', 'tcpdump -i [2][device] -c 5 -w capture.pcap ' 'ether src [l2][srcmac]'], ['trafficgen', 'send_traffic', {}], - ['vswitch', 'dump_flows', 'br0'], + ['vswitch', 'dump_flows', '$VSWITCH_BRIDGE_NAME'], ['vswitch', 'dump_flows', 'br1'], # there must be 5 captured frames... ['tools', 'exec_shell', 'tcpdump -r capture.pcap | wc -l', '|^(\d+)$'], |