From 8fe33363488d044c98650b4f9b778ea3d3e33327 Mon Sep 17 00:00:00 2001 From: Miroslav Miklus Date: Thu, 18 Feb 2016 22:59:16 +0100 Subject: [PATCH] T-REX: change relative rate values to absolute units Instead of using realative values expressed in percentage of linerate rather use absolute values to assure consistency of results across NICs with various speeds (10G, 40G, 100G, ...) Change-Id: Ifd455d823e80002c277deaf8cb8295c81b59bf4a Signed-off-by: Miroslav Miklus --- resources/libraries/python/TrafficGenerator.py | 6 +-- tests/suites/performance/short.robot | 67 ++++++++++++-------------- 2 files changed, 34 insertions(+), 39 deletions(-) diff --git a/resources/libraries/python/TrafficGenerator.py b/resources/libraries/python/TrafficGenerator.py index bc9678b399..4b71b59cc7 100644 --- a/resources/libraries/python/TrafficGenerator.py +++ b/resources/libraries/python/TrafficGenerator.py @@ -83,7 +83,7 @@ class TrafficGenerator(object): :param nodes_info: Dictionary containing information on all nodes in topology. :param duration: Duration of test traffic generation in seconds - :param rate: Percentage of linerate + :param rate: Offered load per interface (e.g. 1%, 3gbps, 4mpps, ...) :param framesize: Frame size (L2) in Bytes :param traffic_type: Traffic profile :type nodes_info: dict @@ -110,7 +110,7 @@ class TrafficGenerator(object): if traffic_type in ["3-node-xconnect", "3-node-bridge"]: (ret, stdout, stderr) = ssh.exec_command( "sh -c '/tmp/openvpp-testing/resources/tools/t-rex-stateless.py " - "-d {0} -r {1}% -s {2} " + "-d {0} -r {1} -s {2} " "--p1_src_start_ip 10.10.10.1 " "--p1_src_end_ip 10.10.10.254 " "--p1_dst_start_ip 20.20.20.1 " @@ -121,7 +121,7 @@ class TrafficGenerator(object): elif traffic_type in ["3-node-IPv4"]: (ret, stdout, stderr) = ssh.exec_command( "sh -c '/tmp/openvpp-testing/resources/tools/t-rex-stateless.py " - "-d {0} -r {1}% -s {2} " + "-d {0} -r {1} -s {2} " "--p1_src_start_ip 10.10.10.2 " "--p1_src_end_ip 10.10.10.254 " "--p1_dst_start_ip 20.20.20.2 " diff --git a/tests/suites/performance/short.robot b/tests/suites/performance/short.robot index 15143778ab..9497aa208e 100644 --- a/tests/suites/performance/short.robot +++ b/tests/suites/performance/short.robot @@ -15,8 +15,9 @@ | Resource | resources/libraries/robot/interfaces.robot | Resource | resources/libraries/robot/bridge_domain.robot | Resource | resources/libraries/robot/ipv4.robot +| Resource | resources/libraries/robot/l2_xconnect.robot | Library | resources/libraries/python/TrafficGenerator.py -| Library | resources/libraries/python/CrossConnectSetup.py +| Library | resources.libraries.python.NodePath | Force Tags | topo-3node | PERFTEST | Test Setup | Setup all DUTs before test | Suite Setup | Initialize traffic generator | ${nodes['TG']} @@ -25,29 +26,29 @@ | Suite Teardown | Teardown traffic generator | ${nodes['TG']} *** Test Cases *** -| VPP passes 64B frames through L2 cross connect at 30% of linerate in 3-node-topology +| VPP passes 64B frames through L2 cross connect at 3.5mpps in 3-node topology | | Given L2 xconnect initialized in a 3-node topology -| | Then Traffic should pass with no loss | 10 | 30 | 64 | 3-node-xconnect +| | Then Traffic should pass with no loss | 10 | 3.5mpps | 64 | 3-node-xconnect -| VPP passes 1518B frames through L2 cross connect at 100% of linerate in 3-node-topology +| VPP passes 1518B frames through L2 cross connect at 10gbps in 3-node topology | | Given L2 xconnect initialized in a 3-node topology -| | Then Traffic should pass with no loss | 10 | 100 | 1518 | 3-node-xconnect +| | Then Traffic should pass with no loss | 10 | 10gbps | 1518 | 3-node-xconnect -| VPP passes 9000B frames through L2 cross connect at 100% of linerate in 3-node-topology +| VPP passes 9000B frames through L2 cross connect at 10gbps in 3-node topology | | Given L2 xconnect initialized in a 3-node topology -| | Then Traffic should pass with no loss | 10 | 100 | 9000 | 3-node-xconnect +| | Then Traffic should pass with no loss | 10 | 10gbps | 9000 | 3-node-xconnect -| VPP passes 64B frames through bridge domain at 30% in 3-node topology -| | Given L2 bridge domain initialized in a 3-node topology -| | Then Traffic should pass with no loss | 10 | 30 | 64 | 3-node-bridge +| VPP passes 64B frames through bridge domain at 3.5mpps in 3-node topology +| | Given L2 bridge domain initialized in a 3-node circular topology +| | Then Traffic should pass with no loss | 10 | 3.5mpps | 64 | 3-node-bridge -| VPP passes 1518B frames through bridge domain at 100% in 3-node topology -| | Given L2 bridge domain initialized in a 3-node topology -| | Then Traffic should pass with no loss | 10 | 100 | 1518 | 3-node-bridge +| VPP passes 1518B frames through bridge domain at 10gbps in 3-node topology +| | Given L2 bridge domain initialized in a 3-node circular topology +| | Then Traffic should pass with no loss | 10 | 10gbps | 1518 | 3-node-bridge -| VPP passes 9000B frames through bridge domain at 100% in 3-node topology -| | Given L2 bridge domain initialized in a 3-node topology -| | Then Traffic should pass with no loss | 10 | 100 | 9000 | 3-node-bridge +| VPP passes 9000B frames through bridge domain at 10gbps in 3-node topology +| | Given L2 bridge domain initialized in a 3-node circular topology +| | Then Traffic should pass with no loss | 10 | 10gbps | 9000 | 3-node-bridge #| VPP passes 64B frames through IPv4 forwarding at 30% in 3-node topology #| | Given IPv4 forwarding initialized in a 3-node topology @@ -66,31 +67,25 @@ | L2 xconnect initialized in a 3-node topology -| | Interfaces on DUT are in "up" state +| | Interfaces on all DUTs are in "up" state | | L2 setup xconnect on DUTs -| L2 setup xconnect on DUTs -| | Vpp Setup Bidirectional Cross Connect | ${nodes['DUT1']} -| | ... | ${nodes['DUT1']['interfaces']['port1']['name']} -| | ... | ${nodes['DUT1']['interfaces']['port3']['name']} -| | Vpp Setup Bidirectional Cross Connect | ${nodes['DUT2']} -| | ... | ${nodes['DUT2']['interfaces']['port1']['name']} -| | ... | ${nodes['DUT2']['interfaces']['port3']['name']} - -| L2 bridge domain initialized in a 3-node topology -| | ${tg}= | Set Variable | ${nodes['TG']} -| | ${dut1}= | Set Variable | ${nodes['DUT1']} -| | ${dut2}= | Set Variable | ${nodes['DUT2']} -| | ${tg_links}= | bridge_domain.Setup TG "${tg}" DUT1 "${dut1}" And DUT2 "${dut2}" For 3 Node L2 Bridge Domain Test - | IPv4 forwarding initialized in a 3-node topology | | Setup DUT nodes for IPv4 testing -| Interfaces on DUT are in "${state}" state -| | Node "${nodes['DUT1']}" interface "${nodes['DUT1']['interfaces']['port1']['name']}" is in "${state}" state -| | Node "${nodes['DUT1']}" interface "${nodes['DUT1']['interfaces']['port3']['name']}" is in "${state}" state -| | Node "${nodes['DUT2']}" interface "${nodes['DUT2']['interfaces']['port1']['name']}" is in "${state}" state -| | Node "${nodes['DUT2']}" interface "${nodes['DUT2']['interfaces']['port3']['name']}" is in "${state}" state +| L2 bridge domain initialized in a 3-node circular topology +| | Append Nodes | ${nodes['TG']} | ${nodes['DUT1']} | ${nodes['DUT2']} +| | ... | ${nodes['TG']} +| | Compute Path +| | ${src_if} | ${tg}= | Next Interface +| | ${dut1_if1} | ${dut1}= | Next Interface +| | ${dut1_if2} | ${dut1}= | Next Interface +| | ${dut2_if1} | ${dut2}= | Next Interface +| | ${dut2_if2} | ${dut2}= | Next Interface +| | ${dst_if} | ${tg}= | Next Interface +| | Vpp l2bd forwarding setup | ${dut1} | ${dut1_if1} | ${dut1_if2} +| | Vpp l2bd forwarding setup | ${dut2} | ${dut2_if1} | ${dut2_if2} + | Traffic should pass with no loss | | [Arguments] | ${duration} | ${rate} | ${framesize} | ${topology_type} -- 2.16.6