CSIT-678: Re-organize L2 libraries - performance 34/7134/13
authorTibor Frank <tifrank@cisco.com>
Wed, 14 Jun 2017 07:12:56 +0000 (09:12 +0200)
committerTibor Frank <tifrank@cisco.com>
Tue, 20 Jun 2017 07:03:29 +0000 (07:03 +0000)
Change-Id: Ic4e37df31fbc10f15351e3671b541e6f047405bc
Signed-off-by: Tibor Frank <tifrank@cisco.com>
99 files changed:
dpdk-tests/perf/10ge2p1x520-eth-l2xcbase-testpmd-ndrpdrdisc.robot
dpdk-tests/perf/10ge2p1x520-ethip4-ip4base-l3fwd-ndrpdrdisc.robot
dpdk-tests/perf/10ge2p1x710-eth-l2xcbase-testpmd-ndrpdrdisc.robot
dpdk-tests/perf/40ge2p1xl710-eth-l2xcbase-testpmd-ndrpdrdisc.robot
resources/libraries/robot/performance_configuration.robot [moved from resources/libraries/robot/performance.robot with 58% similarity]
resources/libraries/robot/performance_setup.robot [new file with mode: 0644]
resources/libraries/robot/performance_utils.robot [new file with mode: 0644]
tests/perf/10ge2p1vic1227-eth-l2bdbasemaclrn-ndrpdrdisc.robot
tests/perf/10ge2p1x520-dot1ad-l2xcbase-ndrchk.robot
tests/perf/10ge2p1x520-dot1ad-l2xcbase-ndrpdrdisc.robot
tests/perf/10ge2p1x520-dot1q-l2bdbasemaclrn-eth-2vhost-1vm-ndrpdrdisc.robot
tests/perf/10ge2p1x520-dot1q-l2xcbase-eth-2vhost-1vm-ndrpdrdisc.robot
tests/perf/10ge2p1x520-dot1q-l2xcbase-ndrchk.robot
tests/perf/10ge2p1x520-dot1q-l2xcbase-ndrpdrdisc.robot
tests/perf/10ge2p1x520-eth-l2bdbasemaclrn-eth-2vhost-1vm-ndrpdrdisc.robot
tests/perf/10ge2p1x520-eth-l2bdbasemaclrn-eth-4vhost-2vm-ndrpdrdisc.robot
tests/perf/10ge2p1x520-eth-l2bdbasemaclrn-ndrchk.robot
tests/perf/10ge2p1x520-eth-l2bdbasemaclrn-ndrpdrdisc.robot
tests/perf/10ge2p1x520-eth-l2bdbasemaclrn-pdrchk.robot
tests/perf/10ge2p1x520-eth-l2xcbase-eth-2vhost-1vm-ndrpdrdisc.robot
tests/perf/10ge2p1x520-eth-l2xcbase-eth-4vhost-2vm-ndrpdrdisc.robot
tests/perf/10ge2p1x520-eth-l2xcbase-ndrchk.robot
tests/perf/10ge2p1x520-eth-l2xcbase-ndrpdrdisc.robot
tests/perf/10ge2p1x520-eth-l2xcbase-pdrchk.robot
tests/perf/10ge2p1x520-ethip4-ip4base-copwhtlistbase-ndrchk.robot
tests/perf/10ge2p1x520-ethip4-ip4base-copwhtlistbase-ndrpdrdisc.robot
tests/perf/10ge2p1x520-ethip4-ip4base-eth-2vhost-1vm-ndrpdrdisc.robot
tests/perf/10ge2p1x520-ethip4-ip4base-eth-4vhost-2vm-ndrpdrdisc.robot
tests/perf/10ge2p1x520-ethip4-ip4base-iacldstbase-ndrchk.robot
tests/perf/10ge2p1x520-ethip4-ip4base-iacldstbase-ndrpdrdisc.robot
tests/perf/10ge2p1x520-ethip4-ip4base-ipolicemarkbase-ndrchk.robot
tests/perf/10ge2p1x520-ethip4-ip4base-ipolicemarkbase-ndrpdrdisc.robot
tests/perf/10ge2p1x520-ethip4-ip4base-ndrchk.robot
tests/perf/10ge2p1x520-ethip4-ip4base-ndrpdrdisc.robot
tests/perf/10ge2p1x520-ethip4-ip4base-pdrchk.robot
tests/perf/10ge2p1x520-ethip4-ip4base-snat-ndrpdrdisc.robot
tests/perf/10ge2p1x520-ethip4-ip4scale200k-ndrchk.robot
tests/perf/10ge2p1x520-ethip4-ip4scale200k-ndrpdrdisc.robot
tests/perf/10ge2p1x520-ethip4-ip4scale20k-ndrchk.robot
tests/perf/10ge2p1x520-ethip4-ip4scale20k-ndrpdrdisc.robot
tests/perf/10ge2p1x520-ethip4-ip4scale2m-ndrchk.robot
tests/perf/10ge2p1x520-ethip4-ip4scale2m-ndrpdrdisc.robot
tests/perf/10ge2p1x520-ethip4lispip4-ip4base-ndrchk.robot
tests/perf/10ge2p1x520-ethip4lispip4-ip4base-ndrpdrdisc.robot
tests/perf/10ge2p1x520-ethip4lispip4-ip4base-pdrchk.robot
tests/perf/10ge2p1x520-ethip4lispip6-ip4base-ndrchk.robot
tests/perf/10ge2p1x520-ethip4lispip6-ip4base-ndrpdrdisc.robot
tests/perf/10ge2p1x520-ethip4lispip6-ip4base-pdrchk.robot
tests/perf/10ge2p1x520-ethip4udp-ip4base-udpsrcscale15-snat-ndrpdrdisc.robot
tests/perf/10ge2p1x520-ethip4udp-ip4scale10-udpsrcscale15-snat-ndrpdrdisc.robot
tests/perf/10ge2p1x520-ethip4udp-ip4scale100-udpsrcscale15-snat-ndrpdrdisc.robot
tests/perf/10ge2p1x520-ethip4udp-ip4scale1000-udpsrcscale15-snat-ndrpdrdisc.robot
tests/perf/10ge2p1x520-ethip4udp-ip4scale2000-udpsrcscale15-snat-ndrpdrdisc.robot
tests/perf/10ge2p1x520-ethip4udp-ip4scale4000-udpsrcscale15-snat-ndrpdrdisc.robot
tests/perf/10ge2p1x520-ethip4vxlan-l2bdbasemaclrn-eth-2vhost-1vm-ndrpdrdisc.robot
tests/perf/10ge2p1x520-ethip4vxlan-l2bdbasemaclrn-ndrpdrdisc.robot
tests/perf/10ge2p1x520-ethip4vxlan-l2xcbase-ndrchk.robot
tests/perf/10ge2p1x520-ethip4vxlan-l2xcbase-ndrpdrdisc.robot
tests/perf/10ge2p1x520-ethip4vxlan-l2xcbase-pdrchk.robot
tests/perf/10ge2p1x520-ethip6-ip6base-copwhtlistbase-ndrchk.robot
tests/perf/10ge2p1x520-ethip6-ip6base-copwhtlistbase-ndrpdrdisc.robot
tests/perf/10ge2p1x520-ethip6-ip6base-iacldstbase-ndrchk.robot
tests/perf/10ge2p1x520-ethip6-ip6base-iacldstbase-ndrpdrdisc.robot
tests/perf/10ge2p1x520-ethip6-ip6base-ndrchk.robot
tests/perf/10ge2p1x520-ethip6-ip6base-ndrpdrdisc.robot
tests/perf/10ge2p1x520-ethip6-ip6base-pdrchk.robot
tests/perf/10ge2p1x520-ethip6-ip6scale200k-ndrchk.robot
tests/perf/10ge2p1x520-ethip6-ip6scale200k-ndrpdrdisc.robot
tests/perf/10ge2p1x520-ethip6-ip6scale20k-ndrchk.robot
tests/perf/10ge2p1x520-ethip6-ip6scale20k-ndrpdrdisc.robot
tests/perf/10ge2p1x520-ethip6-ip6scale2m-ndrchk.robot
tests/perf/10ge2p1x520-ethip6-ip6scale2m-ndrpdrdisc.robot
tests/perf/10ge2p1x520-ethip6-ip6scale2m-pdrchk.robot
tests/perf/10ge2p1x520-ethip6lispip4-ip6base-ndrchk.robot
tests/perf/10ge2p1x520-ethip6lispip4-ip6base-ndrpdrdisc.robot
tests/perf/10ge2p1x520-ethip6lispip4-ip6base-pdrchk.robot
tests/perf/10ge2p1x520-ethip6lispip6-ip6Base-pdrchk.robot
tests/perf/10ge2p1x520-ethip6lispip6-ip6base-ndrchk.robot
tests/perf/10ge2p1x520-ethip6lispip6-ip6base-ndrpdrdisc.robot
tests/perf/10ge2p1x710-eth-l2bdbasemaclrn-eth-2vhost-1vm-ndrpdrdisc.robot
tests/perf/10ge2p1x710-eth-l2bdbasemaclrn-ndrpdrdisc.robot
tests/perf/40ge2p1vic1385-eth-l2bdbasemaclrn-ndrpdrdisc.robot
tests/perf/40ge2p1xl710-eth-l2bdbasemaclrn-eth-2vhost-1vm-ndrpdrdisc.robot
tests/perf/40ge2p1xl710-eth-l2bdbasemaclrn-eth-4vhost-2vm-ndrpdrdisc.robot
tests/perf/40ge2p1xl710-eth-l2bdbasemaclrn-ndrpdrdisc.robot
tests/perf/40ge2p1xl710-eth-l2xcbase-eth-4vhost-2vm-ndrpdrdisc.robot
tests/perf/40ge2p1xl710-eth-l2xcbase-ndrpdrdisc.robot
tests/perf/40ge2p1xl710-ethip4-ip4base-eth-4vhost-2vm-ndrpdrdisc.robot
tests/perf/40ge2p1xl710-ethip4-ip4base-ndrpdrdisc.robot
tests/perf/40ge2p1xl710-ethip4ipsecbasetnl-ip4base-int-aes-gcm-ndrpdrdisc.robot
tests/perf/40ge2p1xl710-ethip4ipsecbasetnl-ip4base-int-cbc-sha1-ndrpdrdisc.robot
tests/perf/40ge2p1xl710-ethip4ipsecbasetnl-ip4base-tnl-aes-gcm-ndrpdrdisc.robot
tests/perf/40ge2p1xl710-ethip4ipsecbasetnl-ip4base-tnl-cbc-sha1-ndrpdrdisc.robot
tests/perf/40ge2p1xl710-ethip4ipsecscale1000tnl-ip4base-int-aes-gcm-ndrpdrdisc.robot
tests/perf/40ge2p1xl710-ethip4ipsecscale1000tnl-ip4base-int-cbc-sha1-ndrpdrdisc.robot
tests/perf/40ge2p1xl710-ethip4ipsecscale1000tnl-ip4base-tnl-aes-gcm-ndrpdrdisc.robot
tests/perf/40ge2p1xl710-ethip4ipsecscale1000tnl-ip4base-tnl-cbc-sha1-ndrpdrdisc.robot
tests/perf/40ge2p1xl710-ethip4ipsectptlispgpe-ip4base-cbc-sha1-ndrpdrdisc.robot
tests/perf/40ge2p1xl710-ethip6-ip6base-ndrpdrdisc.robot

index 00b40be..45a67bb 100644 (file)
@@ -12,7 +12,7 @@
 # limitations under the License.
 
 *** Settings ***
-| Resource | resources/libraries/robot/performance.robot
+| Resource | resources/libraries/robot/performance_setup.robot
 | Resource | resources/libraries/robot/DPDK/default.robot
 | Library | resources.libraries.python.topology.Topology
 | Library | resources.libraries.python.NodePath
index 5112c18..31afdc1 100644 (file)
@@ -12,7 +12,7 @@
 # limitations under the License.
 
 *** Settings ***
-| Resource | resources/libraries/robot/performance.robot
+| Resource | resources/libraries/robot/performance_setup.robot
 | Resource | resources/libraries/robot/DPDK/default.robot
 | Library | resources.libraries.python.topology.Topology
 | Library | resources.libraries.python.NodePath
index e39c9f5..6c4d19a 100644 (file)
@@ -12,7 +12,7 @@
 # limitations under the License.
 
 *** Settings ***
-| Resource | resources/libraries/robot/performance.robot
+| Resource | resources/libraries/robot/performance_setup.robot
 | Resource | resources/libraries/robot/DPDK/default.robot
 | Library | resources.libraries.python.topology.Topology
 | Library | resources.libraries.python.NodePath
index cc1a294..a878d31 100644 (file)
@@ -12,7 +12,7 @@
 # limitations under the License.
 
 *** Settings ***
-| Resource | resources/libraries/robot/performance.robot
+| Resource | resources/libraries/robot/performance_setup.robot
 | Resource | resources/libraries/robot/DPDK/default.robot
 | Library | resources.libraries.python.topology.Topology
 | Library | resources.libraries.python.NodePath
 | Resource | resources/libraries/robot/ipv6.robot
 | Resource | resources/libraries/robot/qemu.robot
 | Resource | resources/libraries/robot/tagging.robot
-| Documentation | Performance suite keywords
+| Documentation | Performance suite keywords - configuration.
 
 *** Keywords ***
-| Calculate pps
-| | [Documentation]
-| | ... | Calculate pps for given rate and L2 frame size,
-| | ... | additional 20B are added to L2 frame size as padding.
-| | ...
-| | ... | *Arguments*
-| | ... | - bps - Rate in bps. Type: integer
-| | ... | - framesize - L2 frame size in Bytes. Type: integer
-| | ...
-| | ... | *Return*
-| | ... | - Calculated pps. Type: integer
-| | ...
-| | ... | *Example:*
-| | ...
-| | ... | \| Calculate pps \| 10000000000 \| 64 \|
-| | ...
-| | [Arguments] | ${bps} | ${framesize}
-| | ...
-| | ${framesize}= | Get Frame Size | ${framesize}
-| | ${ret}= | Evaluate | (${bps}/((${framesize}+20)*8)).__trunc__()
-| | Return From Keyword | ${ret}
-
-| Get Frame Size
-| | [Documentation]
-| | ... | Framesize can be either integer in case of a single packet
-| | ... | in stream, or set of packets in case of IMIX type or simmilar.
-| | ... | This keyword returns average framesize.
-| | ...
-| | ... | *Arguments:*
-| | ... | - framesize - Framesize. Type: integer or string
-| | ...
-| | ... | *Example:*
-| | ...
-| | ... | \| Get Frame Size \| IMIX_v4_1 \|
-| | ...
-| | [Arguments] | ${framesize}
-| | ...
-| | Run Keyword If | '${framesize}' == 'IMIX_v4_1'
-| | ... | Return From Keyword | 353.83333
-| | Return From Keyword | ${framesize}
-
-| Set variables in 2-node circular topology
-| | [Documentation]
-| | ... | Compute path for testing on two given nodes in circular
-| | ... | topology and set corresponding suite variables.
-| | ...
-| | ... | _NOTE:_ This KW sets following suite variables:
-| | ... | - tg - TG node
-| | ... | - tg_if1 - 1st TG interface towards DUT.
-| | ... | - tg_if2 - 2nd TG interface towards DUT.
-| | ... | - dut1 - DUT1 node
-| | ... | - dut1_if1 - 1st DUT interface towards TG.
-| | ... | - dut1_if2 - 2nd DUT interface towards TG.
-| | ...
-| | Append Nodes | ${nodes['TG']} | ${nodes['DUT1']} | ${nodes['TG']}
-| | Compute Path | always_same_link=${FALSE}
-| | ${tg_if1} | ${tg}= | First Interface
-| | ${dut1_if1} | ${dut1}= | First Ingress Interface
-| | ${dut1_if2} | ${dut1}= | Last Egress Interface
-| | ${tg_if2} | ${tg}= | Last Interface
-| | Set Suite Variable | ${tg}
-| | Set Suite Variable | ${tg_if1}
-| | Set Suite Variable | ${tg_if2}
-| | Set Suite Variable | ${dut1}
-| | Set Suite Variable | ${dut1_if1}
-| | Set Suite Variable | ${dut1_if2}
-
-| Set variables in 3-node circular topology
-| | [Documentation]
-| | ... | Compute path for testing on three given nodes in circular
-| | ... | topology and set corresponding suite variables.
-| | ...
-| | ... | _NOTE:_ This KW sets following suite variables:
-| | ... | - tg - TG node
-| | ... | - tg_if1 - TG interface towards DUT1.
-| | ... | - tg_if2 - TG interface towards DUT2.
-| | ... | - dut1 - DUT1 node
-| | ... | - dut1_if1 - DUT1 interface towards TG.
-| | ... | - dut1_if2 - DUT1 interface towards DUT2.
-| | ... | - dut2 - DUT2 node
-| | ... | - dut2_if1 - DUT2 interface towards DUT1.
-| | ... | - dut2_if2 - DUT2 interface towards TG.
-| | ...
-| | Append Nodes | ${nodes['TG']} | ${nodes['DUT1']} | ${nodes['DUT2']}
-| | ... | ${nodes['TG']}
-| | Compute Path
-| | ${tg_if1} | ${tg}= | Next Interface
-| | ${dut1_if1} | ${dut1}= | Next Interface
-| | ${dut1_if2} | ${dut1}= | Next Interface
-| | ${dut2_if1} | ${dut2}= | Next Interface
-| | ${dut2_if2} | ${dut2}= | Next Interface
-| | ${tg_if2} | ${tg}= | Next Interface
-| | Set Suite Variable | ${tg}
-| | Set Suite Variable | ${tg_if1}
-| | Set Suite Variable | ${tg_if2}
-| | Set Suite Variable | ${dut1}
-| | Set Suite Variable | ${dut1_if1}
-| | Set Suite Variable | ${dut1_if2}
-| | Set Suite Variable | ${dut2}
-| | Set Suite Variable | ${dut2_if1}
-| | Set Suite Variable | ${dut2_if2}
-
-| Set variables in 2-node circular topology with DUT interface model
-| | [Documentation]
-| | ... | Compute path for testing on two given nodes in circular topology
-| | ... | based on interface model provided as an argument and set
-| | ... | corresponding suite variables.
-| | ...
-| | ... | *Arguments:*
-| | ... | - iface_model - Interface model. Type: string
-| | ...
-| | ... | _NOTE:_ This KW sets following suite variables:
-| | ... | - tg - TG node
-| | ... | - tg_if1 - 1st TG interface towards DUT.
-| | ... | - tg_if2 - 2nd TG interface towards DUT.
-| | ... | - dut1 - DUT1 node
-| | ... | - dut1_if1 - 1st DUT interface towards TG.
-| | ... | - dut1_if2 - 2nd DUT interface towards TG.
-| | ...
-| | ... | *Example:*
-| | ...
-| | ... | \| Set variables in 2-node circular topology with DUT interface model\
-| | ... | \| Intel-X520-DA2 \|
-| | ...
-| | [Arguments] | ${iface_model}
-| | ...
-| | ${iface_model_list}= | Create list | ${iface_model}
-| | Append Node | ${nodes['TG']}
-| | Append Node | ${nodes['DUT1']} | filter_list=${iface_model_list}
-| | Append Node | ${nodes['TG']}
-| | Compute Path | always_same_link=${FALSE}
-| | ${tg_if1} | ${tg}= | First Interface
-| | ${dut1_if1} | ${dut1}= | First Ingress Interface
-| | ${dut1_if2} | ${dut1}= | Last Egress Interface
-| | ${tg_if2} | ${tg}= | Last Interface
-| | Set Suite Variable | ${tg}
-| | Set Suite Variable | ${tg_if1}
-| | Set Suite Variable | ${tg_if2}
-| | Set Suite Variable | ${dut1}
-| | Set Suite Variable | ${dut1_if1}
-| | Set Suite Variable | ${dut1_if2}
-
-| Set variables in 3-node circular topology with DUT interface model
-| | [Documentation]
-| | ... | Compute path for testing on three given nodes in circular topology
-| | ... | based on interface model provided as an argument and set
-| | ... | corresponding suite variables.
-| | ...
-| | ... | *Arguments:*
-| | ... | - iface_model - Interface model. Type: string
-| | ...
-| | ... | _NOTE:_ This KW sets following suite variables:
-| | ... | - tg - TG node
-| | ... | - tg_if1 - TG interface towards DUT1.
-| | ... | - tg_if2 - TG interface towards DUT2.
-| | ... | - dut1 - DUT1 node
-| | ... | - dut1_if1 - DUT1 interface towards TG.
-| | ... | - dut1_if2 - DUT1 interface towards DUT2.
-| | ... | - dut2 - DUT2 node
-| | ... | - dut2_if1 - DUT2 interface towards TG.
-| | ... | - dut2_if2 - DUT2 interface towards DUT1.
-| | ...
-| | ... | *Example:*
-| | ...
-| | ... | \| Set variables in 3-node circular topology with DUT interface model\
-| | ... | \| Intel-X520-DA2 \|
-| | ...
-| | [Arguments] | ${iface_model}
-| | ...
-| | ${iface_model_list}= | Create list | ${iface_model}
-| | Append Node | ${nodes['TG']}
-| | Append Node | ${nodes['DUT1']} | filter_list=${iface_model_list}
-| | Append Node | ${nodes['DUT2']} | filter_list=${iface_model_list}
-| | Append Node | ${nodes['TG']}
-| | Compute Path
-| | ${tg_if1} | ${tg}= | Next Interface
-| | ${dut1_if1} | ${dut1}= | Next Interface
-| | ${dut1_if2} | ${dut1}= | Next Interface
-| | ${dut2_if1} | ${dut2}= | Next Interface
-| | ${dut2_if2} | ${dut2}= | Next Interface
-| | ${tg_if2} | ${tg}= | Next Interface
-| | Set Suite Variable | ${tg}
-| | Set Suite Variable | ${tg_if1}
-| | Set Suite Variable | ${tg_if2}
-| | Set Suite Variable | ${dut1}
-| | Set Suite Variable | ${dut1_if1}
-| | Set Suite Variable | ${dut1_if2}
-| | Set Suite Variable | ${dut2}
-| | Set Suite Variable | ${dut2_if1}
-| | Set Suite Variable | ${dut2_if2}
-
 | Set interfaces in path in 2-node circular topology up
 | | [Documentation]
 | | ... | *Set UP state on VPP interfaces in path on nodes in 2-node circular
 | | ... | vrf=${fib_table_2}
 | | ${ip_base_start}= | Set Variable | ${4}
 | | :FOR | ${number} | IN RANGE | 1 | ${nr}+1
-| |      | ${sock1}= | Set Variable | /tmp/sock-${number}-1
-| |      | ${sock2}= | Set Variable | /tmp/sock-${number}-2
-| |      | ${fib_table_1}= | Evaluate | ${100}+${number}
-| |      | ${fib_table_2}= | Evaluate | ${fib_table_1}+${1}
-| |      | ${ip_base_vif1}= | Evaluate | ${ip_base_start}+(${number}-1)*2
-| |      | ${ip_base_vif2}= | Evaluate | ${ip_base_vif1}+1
-| |      | ${ip_net_vif1}= | Set Variable
-| |      | ... | ${ip_base_vif1}.${ip_base_vif1}.${ip_base_vif1}
-| |      | ${ip_net_vif2}= | Set Variable
-| |      | ... | ${ip_base_vif2}.${ip_base_vif2}.${ip_base_vif2}
-| |      | Configure vhost interfaces for L2BD forwarding | ${dut1}
-| |      | ... | ${sock1} | ${sock2} | dut1-vhost-${number}-if1
-| |      | ... | dut1-vhost-${number}-if2
-| |      | Set Interface State | ${dut1} | ${dut1-vhost-${number}-if1} | up
-| |      | Set Interface State | ${dut1} | ${dut1-vhost-${number}-if2} | up
-| |      | ${dut1_vif1_idx}= | Get Interface SW Index | ${dut1}
-| |      | ... | ${dut1-vhost-${number}-if1}
-| |      | ${dut1_vif2_idx}= | Get Interface SW Index | ${dut1}
-| |      | ... | ${dut1-vhost-${number}-if2}
-| |      | Configure vhost interfaces for L2BD forwarding | ${dut2}
-| |      | ... | ${sock1} | ${sock2} | dut2-vhost-${number}-if1
-| |      | ... | dut2-vhost-${number}-if2
-| |      | Set Interface State | ${dut2} | ${dut2-vhost-${number}-if1} | up
-| |      | Set Interface State | ${dut2} | ${dut2-vhost-${number}-if2} | up
-| |      | ${dut2_vif1_idx}= | Get Interface SW Index | ${dut2}
-| |      | ... | ${dut2-vhost-${number}-if1}
-| |      | ${dut2_vif2_idx}= | Get Interface SW Index | ${dut2}
-| |      | ... | ${dut2-vhost-${number}-if2}
-| |      | Add fib table | ${dut1} | 20.20.20.0 | 24 | ${fib_table_1}
-| |      | ... | via ${ip_net_vif1}.1 sw_if_index ${dut1_vif1_idx} multipath
-| |      | Add fib table | ${dut1} | 10.10.10.0 | 24 | ${fib_table_2}
-| |      | ... | via ${ip_net_vif2}.2 sw_if_index ${dut1_vif2_idx} multipath
-| |      | Add fib table | ${dut2} | 20.20.20.0 | 24 | ${fib_table_1}
-| |      | ... | via ${ip_net_vif1}.1 sw_if_index ${dut2_vif1_idx} multipath
-| |      | Add fib table | ${dut2} | 10.10.10.0 | 24 | ${fib_table_2}
-| |      | ... | via ${ip_net_vif2}.2 sw_if_index ${dut2_vif2_idx} multipath
-| |      | Assign Interface To Fib Table | ${dut1} | ${dut1-vhost-${number}-if1}
-| |      | ... | ${fib_table_1}
-| |      | Assign Interface To Fib Table | ${dut1} | ${dut1-vhost-${number}-if2}
-| |      | ... | ${fib_table_2}
-| |      | Assign Interface To Fib Table | ${dut2} | ${dut2-vhost-${number}-if1}
-| |      | ... | ${fib_table_1}
-| |      | Assign Interface To Fib Table | ${dut2} | ${dut2-vhost-${number}-if2}
-| |      | ... | ${fib_table_2}
-| |      | Configure IP addresses on interfaces
-| |      | ... | ${dut1} | ${dut1-vhost-${number}-if1} | ${ip_net_vif1}.1 | 30
-| |      | ... | ${dut1} | ${dut1-vhost-${number}-if2} | ${ip_net_vif2}.1 | 30
-| |      | ... | ${dut2} | ${dut2-vhost-${number}-if1} | ${ip_net_vif1}.1 | 30
-| |      | ... | ${dut2} | ${dut2-vhost-${number}-if2} | ${ip_net_vif2}.1 | 30
-| |      | ${dut1_vif1_mac}= | Get Vhost User Mac By Sw Index | ${dut1}
-| |      | ... | ${dut1_vif1_idx}
-| |      | ${dut1_vif2_mac}= | Get Vhost User Mac By Sw Index | ${dut1}
-| |      | ... | ${dut1_vif2_idx}
-| |      | ${dut2_vif1_mac}= | Get Vhost User Mac By Sw Index | ${dut2}
-| |      | ... | ${dut2_vif1_idx}
-| |      | ${dut2_vif2_mac}= | Get Vhost User Mac By Sw Index | ${dut2}
-| |      | ... | ${dut2_vif2_idx}
-| |      | Set Test Variable | ${dut1-vhost-${number}-if1_mac}
-| |      | ... | ${dut1_vif1_mac}
-| |      | Set Test Variable | ${dut1-vhost-${number}-if2_mac}
-| |      | ... | ${dut1_vif2_mac}
-| |      | Set Test Variable | ${dut2-vhost-${number}-if1_mac}
-| |      | ... | ${dut2_vif1_mac}
-| |      | Set Test Variable | ${dut2-vhost-${number}-if2_mac}
-| |      | ... | ${dut2_vif2_mac}
-| |      | ${qemu_id}= | Set Variable If | ${number} < 10 | 0${number}
-| |      | ... | ${number}
-| |      | Add arp on dut | ${dut1} | ${dut1-vhost-${number}-if1}
-| |      | ... | ${ip_net_vif1}.2 | 52:54:00:00:${qemu_id}:01
-| |      | Add arp on dut | ${dut1} | ${dut1-vhost-${number}-if2}
-| |      | ... | ${ip_net_vif2}.2 | 52:54:00:00:${qemu_id}:02
-| |      | Add arp on dut | ${dut2} | ${dut2-vhost-${number}-if1}
-| |      | ... | ${ip_net_vif1}.2 | 52:54:00:00:${qemu_id}:01
-| |      | Add arp on dut | ${dut2} | ${dut2-vhost-${number}-if2}
-| |      | ... | ${ip_net_vif2}.2 | 52:54:00:00:${qemu_id}:02
-| |      | Vpp Route Add | ${dut1} | 20.20.20.0 | 24 | ${ip_net_vif1}.2
-| |      | ... | ${dut1-vhost-${number}-if1} | vrf=${fib_table_1}
-| |      | Vpp Route Add | ${dut1} | 10.10.10.0 | 24 | ${ip_net_vif2}.2
-| |      | ... | ${dut1-vhost-${number}-if2} | vrf=${fib_table_2}
-| |      | Vpp Route Add | ${dut2} | 20.20.20.0 | 24 | ${ip_net_vif1}.2
-| |      | ... | ${dut2-vhost-${number}-if1} | vrf=${fib_table_1}
-| |      | Vpp Route Add | ${dut2} | 10.10.10.0 | 24 | ${ip_net_vif2}.2
-| |      | ... | ${dut2-vhost-${number}-if2} | vrf=${fib_table_2}
+| | | ${sock1}= | Set Variable | /tmp/sock-${number}-1
+| | | ${sock2}= | Set Variable | /tmp/sock-${number}-2
+| | | ${fib_table_1}= | Evaluate | ${100}+${number}
+| | | ${fib_table_2}= | Evaluate | ${fib_table_1}+${1}
+| | | ${ip_base_vif1}= | Evaluate | ${ip_base_start}+(${number}-1)*2
+| | | ${ip_base_vif2}= | Evaluate | ${ip_base_vif1}+1
+| | | ${ip_net_vif1}= | Set Variable
+| | | ... | ${ip_base_vif1}.${ip_base_vif1}.${ip_base_vif1}
+| | | ${ip_net_vif2}= | Set Variable
+| | | ... | ${ip_base_vif2}.${ip_base_vif2}.${ip_base_vif2}
+| | | Configure vhost interfaces for L2BD forwarding | ${dut1}
+| | | ... | ${sock1} | ${sock2} | dut1-vhost-${number}-if1
+| | | ... | dut1-vhost-${number}-if2
+| | | Set Interface State | ${dut1} | ${dut1-vhost-${number}-if1} | up
+| | | Set Interface State | ${dut1} | ${dut1-vhost-${number}-if2} | up
+| | | ${dut1_vif1_idx}= | Get Interface SW Index | ${dut1}
+| | | ... | ${dut1-vhost-${number}-if1}
+| | | ${dut1_vif2_idx}= | Get Interface SW Index | ${dut1}
+| | | ... | ${dut1-vhost-${number}-if2}
+| | | Configure vhost interfaces for L2BD forwarding | ${dut2}
+| | | ... | ${sock1} | ${sock2} | dut2-vhost-${number}-if1
+| | | ... | dut2-vhost-${number}-if2
+| | | Set Interface State | ${dut2} | ${dut2-vhost-${number}-if1} | up
+| | | Set Interface State | ${dut2} | ${dut2-vhost-${number}-if2} | up
+| | | ${dut2_vif1_idx}= | Get Interface SW Index | ${dut2}
+| | | ... | ${dut2-vhost-${number}-if1}
+| | | ${dut2_vif2_idx}= | Get Interface SW Index | ${dut2}
+| | | ... | ${dut2-vhost-${number}-if2}
+| | | Add fib table | ${dut1} | 20.20.20.0 | 24 | ${fib_table_1}
+| | | ... | via ${ip_net_vif1}.1 sw_if_index ${dut1_vif1_idx} multipath
+| | | Add fib table | ${dut1} | 10.10.10.0 | 24 | ${fib_table_2}
+| | | ... | via ${ip_net_vif2}.2 sw_if_index ${dut1_vif2_idx} multipath
+| | | Add fib table | ${dut2} | 20.20.20.0 | 24 | ${fib_table_1}
+| | | ... | via ${ip_net_vif1}.1 sw_if_index ${dut2_vif1_idx} multipath
+| | | Add fib table | ${dut2} | 10.10.10.0 | 24 | ${fib_table_2}
+| | | ... | via ${ip_net_vif2}.2 sw_if_index ${dut2_vif2_idx} multipath
+| | | Assign Interface To Fib Table | ${dut1} | ${dut1-vhost-${number}-if1}
+| | | ... | ${fib_table_1}
+| | | Assign Interface To Fib Table | ${dut1} | ${dut1-vhost-${number}-if2}
+| | | ... | ${fib_table_2}
+| | | Assign Interface To Fib Table | ${dut2} | ${dut2-vhost-${number}-if1}
+| | | ... | ${fib_table_1}
+| | | Assign Interface To Fib Table | ${dut2} | ${dut2-vhost-${number}-if2}
+| | | ... | ${fib_table_2}
+| | | Configure IP addresses on interfaces
+| | | ... | ${dut1} | ${dut1-vhost-${number}-if1} | ${ip_net_vif1}.1 | 30
+| | | ... | ${dut1} | ${dut1-vhost-${number}-if2} | ${ip_net_vif2}.1 | 30
+| | | ... | ${dut2} | ${dut2-vhost-${number}-if1} | ${ip_net_vif1}.1 | 30
+| | | ... | ${dut2} | ${dut2-vhost-${number}-if2} | ${ip_net_vif2}.1 | 30
+| | | ${dut1_vif1_mac}= | Get Vhost User Mac By Sw Index | ${dut1}
+| | | ... | ${dut1_vif1_idx}
+| | | ${dut1_vif2_mac}= | Get Vhost User Mac By Sw Index | ${dut1}
+| | | ... | ${dut1_vif2_idx}
+| | | ${dut2_vif1_mac}= | Get Vhost User Mac By Sw Index | ${dut2}
+| | | ... | ${dut2_vif1_idx}
+| | | ${dut2_vif2_mac}= | Get Vhost User Mac By Sw Index | ${dut2}
+| | | ... | ${dut2_vif2_idx}
+| | | Set Test Variable | ${dut1-vhost-${number}-if1_mac}
+| | | ... | ${dut1_vif1_mac}
+| | | Set Test Variable | ${dut1-vhost-${number}-if2_mac}
+| | | ... | ${dut1_vif2_mac}
+| | | Set Test Variable | ${dut2-vhost-${number}-if1_mac}
+| | | ... | ${dut2_vif1_mac}
+| | | Set Test Variable | ${dut2-vhost-${number}-if2_mac}
+| | | ... | ${dut2_vif2_mac}
+| | | ${qemu_id}= | Set Variable If | ${number} < 10 | 0${number}
+| | | ... | ${number}
+| | | Add arp on dut | ${dut1} | ${dut1-vhost-${number}-if1}
+| | | ... | ${ip_net_vif1}.2 | 52:54:00:00:${qemu_id}:01
+| | | Add arp on dut | ${dut1} | ${dut1-vhost-${number}-if2}
+| | | ... | ${ip_net_vif2}.2 | 52:54:00:00:${qemu_id}:02
+| | | Add arp on dut | ${dut2} | ${dut2-vhost-${number}-if1}
+| | | ... | ${ip_net_vif1}.2 | 52:54:00:00:${qemu_id}:01
+| | | Add arp on dut | ${dut2} | ${dut2-vhost-${number}-if2}
+| | | ... | ${ip_net_vif2}.2 | 52:54:00:00:${qemu_id}:02
+| | | Vpp Route Add | ${dut1} | 20.20.20.0 | 24 | ${ip_net_vif1}.2
+| | | ... | ${dut1-vhost-${number}-if1} | vrf=${fib_table_1}
+| | | Vpp Route Add | ${dut1} | 10.10.10.0 | 24 | ${ip_net_vif2}.2
+| | | ... | ${dut1-vhost-${number}-if2} | vrf=${fib_table_2}
+| | | Vpp Route Add | ${dut2} | 20.20.20.0 | 24 | ${ip_net_vif1}.2
+| | | ... | ${dut2-vhost-${number}-if1} | vrf=${fib_table_1}
+| | | Vpp Route Add | ${dut2} | 10.10.10.0 | 24 | ${ip_net_vif2}.2
+| | | ... | ${dut2-vhost-${number}-if2} | vrf=${fib_table_2}
 
 | Initialize IPv4 policer 2r3c-${t} in 3-node circular topology
 | | [Documentation]
 | | ... | circular topology \|
 | | ...
 | | :FOR | ${number} | IN RANGE | 1 | ${nr}+1
-| |      | ${sock1}= | Set Variable | /tmp/sock-${number}-1
-| |      | ${sock2}= | Set Variable | /tmp/sock-${number}-2
-| |      | ${prev_index}= | Evaluate | ${number}-1
-| |      | Configure vhost interfaces for L2BD forwarding | ${dut1}
-| |      | ... | ${sock1} | ${sock2} | dut1-vhost-${number}-if1
-| |      | ... | dut1-vhost-${number}-if2
-| |      | ${dut1_xconnect_if1}= | Set Variable If | ${number}==1 | ${dut1_if1}
-| |      | ... | ${dut1-vhost-${prev_index}-if2}
-| |      | Configure L2XC | ${dut1} | ${dut1_xconnect_if1}
-| |      | ... | ${dut1-vhost-${number}-if1}
-| |      | Configure vhost interfaces for L2BD forwarding | ${dut2}
-| |      | ... | ${sock1} | ${sock2} | dut2-vhost-${number}-if1
-| |      | ... | dut2-vhost-${number}-if2
-| |      | ${dut2_xconnect_if1}= | Set Variable If | ${number}==1 | ${dut2_if1}
-| |      | ... | ${dut2-vhost-${prev_index}-if2}
-| |      | Configure L2XC | ${dut2} | ${dut2_xconnect_if1}
-| |      | ... | ${dut2-vhost-${number}-if1}
-| |      | Run Keyword If | ${number}==${nr} | Configure L2XC
-| |      | ... | ${dut1} | ${dut1-vhost-${number}-if2} | ${dut1_if2}
-| |      | Run Keyword If | ${number}==${nr} | Configure L2XC
-| |      | ... | ${dut2} | ${dut2-vhost-${number}-if2} | ${dut2_if2}
+| | | ${sock1}= | Set Variable | /tmp/sock-${number}-1
+| | | ${sock2}= | Set Variable | /tmp/sock-${number}-2
+| | | ${prev_index}= | Evaluate | ${number}-1
+| | | Configure vhost interfaces for L2BD forwarding | ${dut1}
+| | | ... | ${sock1} | ${sock2} | dut1-vhost-${number}-if1
+| | | ... | dut1-vhost-${number}-if2
+| | | ${dut1_xconnect_if1}= | Set Variable If | ${number}==1 | ${dut1_if1}
+| | | ... | ${dut1-vhost-${prev_index}-if2}
+| | | Configure L2XC | ${dut1} | ${dut1_xconnect_if1}
+| | | ... | ${dut1-vhost-${number}-if1}
+| | | Configure vhost interfaces for L2BD forwarding | ${dut2}
+| | | ... | ${sock1} | ${sock2} | dut2-vhost-${number}-if1
+| | | ... | dut2-vhost-${number}-if2
+| | | ${dut2_xconnect_if1}= | Set Variable If | ${number}==1 | ${dut2_if1}
+| | | ... | ${dut2-vhost-${prev_index}-if2}
+| | | Configure L2XC | ${dut2} | ${dut2_xconnect_if1}
+| | | ... | ${dut2-vhost-${number}-if1}
+| | | Run Keyword If | ${number}==${nr} | Configure L2XC
+| | | ... | ${dut1} | ${dut1-vhost-${number}-if2} | ${dut1_if2}
+| | | Run Keyword If | ${number}==${nr} | Configure L2XC
+| | | ... | ${dut2} | ${dut2-vhost-${number}-if2} | ${dut2_if2}
 
 | Initialize L2 xconnect with Vhost-User and VLAN in 3-node circular topology
 | | [Documentation]
 | | Add interface to bridge domain | ${dut2} | ${dut2_if1} | ${1}
 | | Add interface to bridge domain | ${dut2} | ${dut2_if2} | ${bd_id2}
 | | :FOR | ${number} | IN RANGE | 1 | ${nr}+1
-| |      | ${sock1}= | Set Variable | /tmp/sock-${number}-1
-| |      | ${sock2}= | Set Variable | /tmp/sock-${number}-2
-| |      | Configure vhost interfaces for L2BD forwarding | ${dut1}
-| |      | ... | ${sock1} | ${sock2} | dut1-vhost-${number}-if1
-| |      | ... | dut1-vhost-${number}-if2
-| |      | ${bd_id2}= | Evaluate | ${number}+1
-| |      | Add interface to bridge domain | ${dut1}
-| |      | ... | ${dut1-vhost-${number}-if1} | ${number}
-| |      | Add interface to bridge domain | ${dut1}
-| |      | ... | ${dut1-vhost-${number}-if2} | ${bd_id2}
-| |      | Configure vhost interfaces for L2BD forwarding | ${dut2}
-| |      | ... | ${sock1} | ${sock2} | dut2-vhost-${number}-if1
-| |      | ... | dut2-vhost-${number}-if2
-| |      | Add interface to bridge domain | ${dut2}
-| |      | ... | ${dut2-vhost-${number}-if1} | ${number}
-| |      | Add interface to bridge domain | ${dut2}
-| |      | ... | ${dut2-vhost-${number}-if2} | ${bd_id2}
+| | | ${sock1}= | Set Variable | /tmp/sock-${number}-1
+| | | ${sock2}= | Set Variable | /tmp/sock-${number}-2
+| | | Configure vhost interfaces for L2BD forwarding | ${dut1}
+| | | ... | ${sock1} | ${sock2} | dut1-vhost-${number}-if1
+| | | ... | dut1-vhost-${number}-if2
+| | | ${bd_id2}= | Evaluate | ${number}+1
+| | | Add interface to bridge domain | ${dut1}
+| | | ... | ${dut1-vhost-${number}-if1} | ${number}
+| | | Add interface to bridge domain | ${dut1}
+| | | ... | ${dut1-vhost-${number}-if2} | ${bd_id2}
+| | | Configure vhost interfaces for L2BD forwarding | ${dut2}
+| | | ... | ${sock1} | ${sock2} | dut2-vhost-${number}-if1
+| | | ... | dut2-vhost-${number}-if2
+| | | Add interface to bridge domain | ${dut2}
+| | | ... | ${dut2-vhost-${number}-if1} | ${number}
+| | | Add interface to bridge domain | ${dut2}
+| | | ... | ${dut2-vhost-${number}-if2} | ${bd_id2}
 
 | Initialize L2 bridge domain with VXLANoIPv4 in 3-node circular topology
 | | [Documentation]
 | | ... | interfaces.
 | | ...
 | | Set interfaces in path in 3-node circular topology up
-| | Configure IP addresses on interfaces | ${dut1} | ${dut1_if2} | 172.16.0.1 | 24
-| | Configure IP addresses on interfaces | ${dut2} | ${dut2_if1} | 172.16.0.2 | 24
+| | Configure IP addresses on interfaces | ${dut1} | ${dut1_if2} | 172.16.0.1
+| | ... | 24
+| | Configure IP addresses on interfaces | ${dut2} | ${dut2_if1} | 172.16.0.2
+| | ... | 24
 | | ${dut1_if2_mac}= | Get Interface MAC | ${dut1} | ${dut1_if2}
 | | ${dut2_if1_mac}= | Get Interface MAC | ${dut2} | ${dut2_if1}
 | | Add arp on dut | ${dut1} | ${dut1_if2} | 172.16.0.2 | ${dut2_if1_mac}
 | | [Arguments] | ${bd_id1} | ${bd_id2} | ${sock1} | ${sock2}
 | | ...
 | | Set interfaces in path in 3-node circular topology up
-| | Configure IP addresses on interfaces | ${dut1} | ${dut1_if2} | 172.16.0.1 | 24
-| | Configure IP addresses on interfaces | ${dut2} | ${dut2_if1} | 172.16.0.2 | 24
+| | Configure IP addresses on interfaces | ${dut1} | ${dut1_if2} | 172.16.0.1
+| | ... | 24
+| | Configure IP addresses on interfaces | ${dut2} | ${dut2_if1} | 172.16.0.2
+| | ... | 24
 | | ${dut1s_vxlan}= | Create VXLAN interface | ${dut1} | 24
 | | ... | 172.16.0.1 | 172.16.0.2
 | | ${dut2s_vxlan}= | Create VXLAN interface | ${dut2} | 24
 | | Add interface to bridge domain | ${dut2} | ${dut2_if2} | ${bd_id2}
 | | All Vpp Interfaces Ready Wait | ${nodes}
 
-| Set up 2-node performance topology with DUT's NIC model
-| | [Documentation]
-| | ... | Suite preparation phase that setup default startup configuration of
-| | ... | VPP on all DUTs. Updates interfaces on all nodes and setup global
-| | ... | variables used in test cases based on interface model provided as an
-| | ... | argument. Initializes traffic generator.
-| | ...
-| | ... | *Arguments:*
-| | ... | - topology_type - Topology type. Type: string
-| | ... | - nic_model - Interface model. Type: string
-| | ...
-| | ... | *Example:*
-| | ...
-| | ... | \| 2-node Performance Suite Setup \| L2 \| Intel-X520-DA2 \|
-| | ...
-| | [Arguments] | ${topology_type} | ${nic_model}
-| | ...
-| | Show vpp version on all DUTs
-| | Set variables in 2-node circular topology with DUT interface model
-| | ... | ${nic_model}
-| | Initialize traffic generator | ${tg} | ${tg_if1} | ${tg_if2}
-| | ... | ${dut1} | ${dut1_if1} | ${dut1} | ${dut1_if2} | ${topology_type}
-
-| Set up 2-node-switched performance topology with DUT's NIC model
-| | [Documentation]
-| | ... | Suite preparation phase that setup default startup configuration of
-| | ... | VPP on all DUTs. Updates interfaces on all nodes and setup global
-| | ... | variables used in test cases based on interface model provided as an
-| | ... | argument. Initializes traffic generator.
-| | ...
-| | ... | *Arguments:*
-| | ... | - topology_type - Topology type. Type: string
-| | ... | - nic_model - Interface model. Type: string
-| | ... | - tg_if1_dest_mac - Interface 1 destination MAC address. Type: string
-| | ... | - tg_if2_dest_mac - Interface 2 destination MAC address. Type: string
-| | ...
-| | ... | *Example:*
-| | ...
-| | ... | \| 2-node Performance Suite Setup \| L2 \| Intel-X520-DA2 \
-| | ... | \| 22:22:33:44:55:66 \| 22:22:33:44:55:55 \|
-| | ...
-| | [Arguments] | ${topology_type} | ${nic_model} | ${tg_if1_dest_mac}
-| | ... | ${tg_if2_dest_mac}
-| | ...
-| | Show vpp version on all DUTs
-| | Set variables in 2-node circular topology with DUT interface model
-| | ... | ${nic_model}
-| | Initialize traffic generator | ${tg} | ${tg_if1} | ${tg_if2}
-| | ... | ${dut1} | ${dut1_if1} | ${dut1} | ${dut1_if2} | ${topology_type}
-| | ... | ${tg_if1_dest_mac} | ${tg_if2_dest_mac}
-
-| Set up 3-node performance topology with DUT's NIC model
-| | [Documentation]
-| | ... | Suite preparation phase that setup default startup configuration of
-| | ... | VPP on all DUTs. Updates interfaces on all nodes and setup global
-| | ... | variables used in test cases based on interface model provided as an
-| | ... | argument. Initializes traffic generator.
-| | ...
-| | ... | *Arguments:*
-| | ... | - topology_type - Topology type. Type: string
-| | ... | - nic_model - Interface model. Type: string
-| | ...
-| | ... | *Example:*
-| | ...
-| | ... | \| Set up 3-node performance topology with DUT's NIC model \| L2 \
-| | ... | \| Intel-X520-DA2 \|
-| | ...
-| | [Arguments] | ${topology_type} | ${nic_model}
-| | ...
-| | Show vpp version on all DUTs
-| | Set variables in 3-node circular topology with DUT interface model
-| | ... | ${nic_model}
-| | Initialize traffic generator | ${tg} | ${tg_if1} | ${tg_if2}
-| | ... | ${dut1} | ${dut1_if1} | ${dut2} | ${dut2_if2} | ${topology_type}
-
-| Tear down 3-node performance topology
-| | [Documentation]
-| | ... | Suite teardown phase with traffic generator teardown.
-| | ...
-| | Teardown traffic generator | ${tg}
-
-| Tear down 2-node performance topology
-| | [Documentation]
-| | ... | Suite teardown phase with traffic generator teardown.
-| | ...
-| | Teardown traffic generator | ${tg}
-
-| Find NDR using linear search and pps
-| | [Documentation]
-| | ... | Find throughput by using RFC2544 linear search with non drop rate.
-| | ...
-| | ... | *Arguments:*
-| | ... | - framesize - L2 Frame Size [B]. Type: integer
-| | ... | - start_rate - Initial start rate [pps]. Type: float
-| | ... | - step_rate - Step of linear search [pps]. Type: float
-| | ... | - topology_type - Topology type. Type: string
-| | ... | - min_rate - Lower limit of search [pps]. Type: float
-| | ... | - max_rate - Upper limit of search [pps]. Type: float
-| | ...
-| | ... | *Return:*
-| | ... | - No value returned
-| | ...
-| | ... | *Example:*
-| | ...
-| | ... | \| Find NDR using linear search and pps \| 64 \| 5000000 \
-| | ... | \| 100000 \| 3-node-IPv4 \| 100000 \| 14880952 \|
-| | ...
-| | [Arguments] | ${framesize} | ${start_rate} | ${step_rate}
-| | ... | ${topology_type} | ${min_rate} | ${max_rate}
-| | ...
-| | ${duration}= | Set Variable | ${perf_trial_duration}
-| | Set Duration | ${duration}
-| | Set Search Rate Boundaries | ${max_rate} | ${min_rate}
-| | Set Search Linear Step | ${step_rate}
-| | Set Search Frame Size | ${framesize}
-| | Set Search Rate Type pps
-| | Linear Search | ${start_rate} | ${topology_type}
-| | ${rate_per_stream} | ${lat}= | Verify Search Result
-| | ${tmp}= | Create List | 100%NDR | ${lat}
-| | ${latency}= | Create List | ${tmp}
-| | ${rate_50p}= | Evaluate | int(${rate_per_stream}*0.5)
-| | ${lat_50p}= | Measure latency pps | ${duration} | ${rate_50p}
-| | ... | ${framesize} | ${topology_type}
-| | ${tmp}= | Create List | 50%NDR | ${lat_50p}
-| | Append To List | ${latency} | ${tmp}
-| | ${rate_10p}= | Evaluate | int(${rate_per_stream}*0.1)
-| | ${lat_10p}= | Measure latency pps | ${duration} | ${rate_10p}
-| | ... | ${framesize} | ${topology_type}
-| | ${tmp}= | Create List | 10%NDR | ${lat_10p}
-| | Append To List | ${latency} | ${tmp}
-| | Display result of NDR search | ${rate_per_stream} | ${framesize} | 2
-| | ... | ${latency}
-| | Traffic should pass with no loss | ${duration} | ${rate_per_stream}pps
-| | ... | ${framesize} | ${topology_type} | fail_on_loss=${False}
-
-| Find PDR using linear search and pps
-| | [Documentation]
-| | ... | Find throughput by using RFC2544 linear search with partial drop rate
-| | ... | with PDR threshold and type specified by parameter.
-| | ...
-| | ... | *Arguments:*
-| | ... | - framesize - L2 Frame Size [B]. Type: integer
-| | ... | - start_rate - Initial start rate [pps]. Type: float
-| | ... | - step_rate - Step of linear search [pps]. Type: float
-| | ... | - topology_type - Topology type. Type: string
-| | ... | - min_rate - Lower limit of search [pps]. Type: float
-| | ... | - max_rate - Upper limit of search [pps]. Type: float
-| | ... | - loss_acceptance - Accepted loss during search. Type: float
-| | ... | - loss_acceptance_type - Percentage or frames. Type: string
-| | ...
-| | ... | *Example:*
-| | ...
-| | ... | \| Find PDR using linear search and pps \| 64 \| 5000000 \
-| | ... | \| 100000 \| 3-node-IPv4 \| 100000 \| 14880952 \| 0.5 \| percentage \|
-| | ...
-| | [Arguments] | ${framesize} | ${start_rate} | ${step_rate}
-| | ... | ${topology_type} | ${min_rate} | ${max_rate}
-| | ... | ${loss_acceptance}=0 | ${loss_acceptance_type}='frames'
-| | ...
-| | ${duration}= | Set Variable | ${perf_trial_duration}
-| | Set Duration | ${duration}
-| | Set Search Rate Boundaries | ${max_rate} | ${min_rate}
-| | Set Search Linear Step | ${step_rate}
-| | Set Search Frame Size | ${framesize}
-| | Set Search Rate Type pps
-| | Set Loss Acceptance | ${loss_acceptance}
-| | Run Keyword If | '${loss_acceptance_type}' == 'percentage'
-| | ... | Set Loss Acceptance Type Percentage
-| | Linear Search | ${start_rate} | ${topology_type}
-| | ${rate_per_stream} | ${lat}= | Verify Search Result
-| | ${tmp}= | Create List | 100%PDR | ${lat}
-| | ${latency}= | Create List | ${tmp}
-| | Display result of PDR search | ${rate_per_stream} | ${framesize} | 2
-| | ... | ${loss_acceptance} | ${loss_acceptance_type} | ${latency}
-| | Traffic should pass with partial loss | ${duration} | ${rate_per_stream}pps
-| | ... | ${framesize} | ${topology_type} | ${loss_acceptance}
-| | ... | ${loss_acceptance_type} | fail_on_loss=${False}
-
-| Find NDR using binary search and pps
-| | [Documentation]
-| | ... | Find throughput by using RFC2544 binary search with non drop rate.
-| | ...
-| | ... | *Arguments:*
-| | ... | - framesize - L2 Frame Size [B]. Type: integer
-| | ... | - binary_min - Lower boundary of search [pps]. Type: float
-| | ... | - binary_max - Upper boundary of search [pps]. Type: float
-| | ... | - topology_type - Topology type. Type: string
-| | ... | - min_rate - Lower limit of search [pps]. Type: float
-| | ... | - max_rate - Upper limit of search [pps]. Type: float
-| | ... | - threshold - Threshold to stop search [pps]. Type: integer
-| | ...
-| | ... | *Example:*
-| | ...
-| | ... | \| Find NDR using binary search and pps \| 64 \| 6000000 \
-| | ... | \| 12000000 \| 3-node-IPv4 \| 100000 \| 14880952 \| 50000 \|
-| | ...
-| | [Arguments] | ${framesize} | ${binary_min} | ${binary_max}
-| | ... | ${topology_type} | ${min_rate} | ${max_rate} | ${threshold}
-| | ...
-| | ${duration}= | Set Variable | ${perf_trial_duration}
-| | Set Duration | ${duration}
-| | Set Search Rate Boundaries | ${max_rate} | ${min_rate}
-| | Set Search Frame Size | ${framesize}
-| | Set Search Rate Type pps
-| | Set Binary Convergence Threshold | ${threshold}
-| | Binary Search | ${binary_min} | ${binary_max} | ${topology_type}
-| | ${rate_per_stream} | ${lat}= | Verify Search Result
-| | ${tmp}= | Create List | 100%NDR | ${lat}
-| | ${latency}= | Create List | ${tmp}
-| | ${rate_50p}= | Evaluate | int(${rate_per_stream}*0.5)
-| | ${lat_50p}= | Measure latency pps | ${duration} | ${rate_50p}
-| | ... | ${framesize} | ${topology_type}
-| | ${tmp}= | Create List | 50%NDR | ${lat_50p}
-| | Append To List | ${latency} | ${tmp}
-| | ${rate_10p}= | Evaluate | int(${rate_per_stream}*0.1)
-| | ${lat_10p}= | Measure latency pps | ${duration} | ${rate_10p}
-| | ... | ${framesize} | ${topology_type}
-| | ${tmp}= | Create List | 10%NDR | ${lat_10p}
-| | Append To List | ${latency} | ${tmp}
-| | Display result of NDR search | ${rate_per_stream} | ${framesize} | 2
-| | ... | ${latency}
-| | Traffic should pass with no loss | ${duration} | ${rate_per_stream}pps
-| | ... | ${framesize} | ${topology_type} | fail_on_loss=${False}
-
-| Find PDR using binary search and pps
-| | [Documentation]
-| | ... | Find throughput by using RFC2544 binary search with partial drop rate
-| | ... | with PDR threshold and type specified by parameter.
-| | ...
-| | ... | *Arguments:*
-| | ... | - framesize - L2 Frame Size [B]. Type: integer
-| | ... | - binary_min - Lower boundary of search [pps]. Type: float
-| | ... | - binary_max - Upper boundary of search [pps]. Type: float
-| | ... | - topology_type - Topology type. Type: string
-| | ... | - min_rate - Lower limit of search [pps]. Type: float
-| | ... | - max_rate - Upper limit of search [pps]. Type: float
-| | ... | - threshold - Threshold to stop search [pps]. Type: integer
-| | ... | - loss_acceptance - Accepted loss during search. Type: float
-| | ... | - loss_acceptance_type - Percentage or frames. Type: string
-| | ...
-| | ... | *Example:*
-| | ...
-| | ... | \| Find PDR using binary search and pps \| 64 \| 6000000 \
-| | ... | \| 12000000 \| 3-node-IPv4 \| 100000 \| 14880952 \| 50000 \| 0.5 \
-| | ... | \| percentage \|
-| | ...
-| | [Arguments] | ${framesize} | ${binary_min} | ${binary_max}
-| | ... | ${topology_type} | ${min_rate} | ${max_rate} | ${threshold}
-| | ... | ${loss_acceptance}=0 | ${loss_acceptance_type}='frames'
-| | ...
-| | ${duration}= | Set Variable | ${perf_trial_duration}
-| | Set Duration | ${duration}
-| | Set Search Rate Boundaries | ${max_rate} | ${min_rate}
-| | Set Search Frame Size | ${framesize}
-| | Set Search Rate Type pps
-| | Set Loss Acceptance | ${loss_acceptance}
-| | Run Keyword If | '${loss_acceptance_type}' == 'percentage'
-| | ... | Set Loss Acceptance Type Percentage
-| | Set Binary Convergence Threshold | ${threshold}
-| | Binary Search | ${binary_min} | ${binary_max} | ${topology_type}
-| | ${rate_per_stream} | ${lat}= | Verify Search Result
-| | ${tmp}= | Create List | 100%PDR | ${lat}
-| | ${latency}= | Create List | ${tmp}
-| | Display result of PDR search | ${rate_per_stream} | ${framesize} | 2
-| | ... | ${loss_acceptance} | ${loss_acceptance_type} | ${latency}
-| | Traffic should pass with partial loss | ${duration} | ${rate_per_stream}pps
-| | ... | ${framesize} | ${topology_type} | ${loss_acceptance}
-| | ... | ${loss_acceptance_type} | fail_on_loss=${False}
-
-| Find NDR using combined search and pps
-| | [Documentation]
-| | ... | Find throughput by using RFC2544 combined search (linear+binary) with
-| | ... | non drop rate.
-| | ...
-| | ... | *Arguments:*
-| | ... | - framesize - L2 Frame Size [B]. Type: integer
-| | ... | - start_rate - Initial start rate [pps]. Type: float
-| | ... | - step_rate - Step of linear search [pps]. Type: float
-| | ... | - topology_type - Topology type. Type: string
-| | ... | - min_rate - Lower limit of search [pps]. Type: float
-| | ... | - max_rate - Upper limit of search [pps]. Type: float
-| | ... | - threshold - Threshold to stop search [pps]. Type: integer
-| | ...
-| | ... | *Example:*
-| | ...
-| | ... | \| Find NDR using combined search and pps \| 64 \| 5000000 \
-| | ... | \| 100000 \| 3-node-IPv4 \| 100000 \| 14880952 \| 5000 \|
-| | ...
-| | [Arguments] | ${framesize} | ${start_rate} | ${step_rate}
-| | ... | ${topology_type} | ${min_rate} | ${max_rate} | ${threshold}
-| | ...
-| | ${duration}= | Set Variable | ${perf_trial_duration}
-| | Set Duration | ${duration}
-| | Set Search Rate Boundaries | ${max_rate} | ${min_rate}
-| | Set Search Linear Step | ${step_rate}
-| | Set Search Frame Size | ${framesize}
-| | Set Search Rate Type pps
-| | Set Binary Convergence Threshold | ${threshold}
-| | Combined Search | ${start_rate} | ${topology_type}
-| | ${rate_per_stream} | ${lat}= | Verify Search Result
-| | ${tmp}= | Create List | 100%NDR | ${lat}
-| | ${latency}= | Create List | ${tmp}
-| | ${rate_50p}= | Evaluate | int(${rate_per_stream}*0.5)
-| | ${lat_50p}= | Measure latency pps | ${duration} | ${rate_50p}
-| | ... | ${framesize} | ${topology_type}
-| | ${tmp}= | Create List | 50%NDR | ${lat_50p}
-| | Append To List | ${latency} | ${tmp}
-| | ${rate_10p}= | Evaluate | int(${rate_per_stream}*0.1)
-| | ${lat_10p}= | Measure latency pps | ${duration} | ${rate_10p}
-| | ... | ${framesize} | ${topology_type}
-| | ${tmp}= | Create List | 10%NDR | ${lat_10p}
-| | Append To List | ${latency} | ${tmp}
-| | Display result of NDR search | ${rate_per_stream} | ${framesize} | 2
-| | ... | ${latency}
-| | Traffic should pass with no loss | ${duration} | ${rate_per_stream}pps
-| | ... | ${framesize} | ${topology_type}
-| | ... | fail_on_loss=${False}
-
-| Find PDR using combined search and pps
-| | [Documentation]
-| | ... | Find throughput by using RFC2544 combined search (linear+binary) with
-| | ... | partial drop rate with PDR threshold and type specified by parameter.
-| | ...
-| | ... | *Arguments:*
-| | ... | - framesize - L2 Frame Size [B]. Type: integer
-| | ... | - start_rate - Initial start rate [pps]. Type: float
-| | ... | - step_rate - Step of linear search [pps]. Type: float
-| | ... | - topology_type - Topology type. Type: string
-| | ... | - min_rate - Lower limit of search [pps]. Type: float
-| | ... | - max_rate - Upper limit of search [pps]. Type: float
-| | ... | - threshold - Threshold to stop search [pps]. Type: integer
-| | ... | - loss_acceptance - Accepted loss during search. Type: float
-| | ... | - loss_acceptance_type - Percentage or frames. Type: string
-| | ...
-| | ... | *Example:*
-| | ...
-| | ... | \| Find PDR using combined search and pps \| 64 \| 5000000 \
-| | ... | \| 100000 \| 3-node-IPv4 \| 100000 \| 14880952 \| 5000 \| 0.5 \
-| | ... | \| percentage \|
-| | ...
-| | [Arguments] | ${framesize} | ${start_rate} | ${step_rate}
-| | ... | ${topology_type} | ${min_rate} | ${max_rate} | ${threshold}
-| | ... | ${loss_acceptance}=0 | ${loss_acceptance_type}='frames'
-| | ...
-| | ${duration}= | Set Variable | ${perf_trial_duration}
-| | Set Duration | ${duration}
-| | Set Search Rate Boundaries | ${max_rate} | ${min_rate}
-| | Set Search Linear Step | ${step_rate}
-| | Set Search Frame Size | ${framesize}
-| | Set Search Rate Type pps
-| | Set Loss Acceptance | ${loss_acceptance}
-| | Run Keyword If | '${loss_acceptance_type}' == 'percentage'
-| | ... | Set Loss Acceptance Type Percentage
-| | Set Binary Convergence Threshold | ${threshold}
-| | Combined Search | ${start_rate} | ${topology_type}
-| | ${rate_per_stream} | ${lat}= | Verify Search Result
-| | ${tmp}= | Create List | 100%PDR | ${lat}
-| | ${latency}= | Create List | ${tmp}
-| | Display result of PDR search | ${rate_per_stream} | ${framesize} | 2
-| | ... | ${loss_acceptance} | ${loss_acceptance_type} | ${latency}
-| | Traffic should pass with partial loss | ${duration} | ${rate_per_stream}pps
-| | ... | ${framesize} | ${topology_type} | ${loss_acceptance}
-| | ... | ${loss_acceptance_type} | fail_on_loss=${False}
-
-| Display result of NDR search
-| | [Documentation]
-| | ... | Display result of NDR search in packet per seconds (total and per
-| | ... | stream) and Gbps total bandwidth with untagged packet.
-| | ... | Througput is calculated as:
-| | ... | Measured rate per stream * Total number of streams
-| | ... | Bandwidth is calculated as:
-| | ... | (Througput * (L2 Frame Size + IPG) * 8) / Max bitrate of NIC
-| | ...
-| | ... | *Arguments:*
-| | ... | - rate_per_stream - Measured rate per stream [pps]. Type: string
-| | ... | - framesize - L2 Frame Size [B]. Type: integer
-| | ... | - nr_streams - Total number of streams. Type: integer
-| | ... | - latency - Latency stats. Type: dictionary
-| | ...
-| | ... | *Example:*
-| | ...
-| | ... | \| Display result of NDR search \| 4400000 \| 64 \| 2 \
-| | ... | \| [100%NDR, [10/10/10, 1/2/3]] \|
-| | ...
-| | [Arguments] | ${rate_per_stream} | ${framesize} | ${nr_streams} | ${latency}
-| | ...
-| | ${framesize}= | Get Frame Size | ${framesize}
-| | ${rate_total}= | Evaluate | ${rate_per_stream}*${nr_streams}
-| | ${bandwidth_total}= | Evaluate | ${rate_total}*(${framesize}+20)*8/(10**9)
-| | Set Test Message | FINAL_RATE: ${rate_total} pps
-| | Set Test Message | (${nr_streams}x ${rate_per_stream} pps) | append=yes
-| | Set Test Message | ${\n}FINAL_BANDWIDTH: ${bandwidth_total} Gbps (untagged)
-| | ... | append=yes
-| | Set Test Message | ${\n}LATENCY usec [min/avg/max] | append=yes
-| | :FOR | ${lat} | IN | @{latency}
-| | | Set Test Message | ${\n}LAT_${lat[0]}: ${lat[1]} | append=yes
-
-| Display result of PDR search
-| | [Documentation]
-| | ... | Display result of PDR search in packet per seconds (total and per
-| | ... | stream) and Gbps total bandwidth with untagged packet.
-| | ... | Througput is calculated as:
-| | ... | Measured rate per stream * Total number of streams
-| | ... | Bandwidth is calculated as:
-| | ... | (Througput * (L2 Frame Size + IPG) * 8) / Max bitrate of NIC
-| | ...
-| | ... | *Arguments:*
-| | ... | - rate_per_stream - Measured rate per stream [pps]. Type: string
-| | ... | - framesize - L2 Frame Size [B]. Type: integer
-| | ... | - nr_streams - Total number of streams. Type: integer
-| | ... | - loss_acceptance - Accepted loss during search. Type: float
-| | ... | - loss_acceptance_type - Percentage or frames. Type: string
-| | ... | - latency - Latency stats. Type: dictionary
-| | ...
-| | ... | *Example:*
-| | ...
-| | ... | \| Display result of PDR search \| 4400000 \| 64 \| 2 \| 0.5 \
-| | ... | \| percentage \| [100%NDR, [10/10/10, 1/2/3]] \|
-| | ...
-| | [Arguments] | ${rate_per_stream} | ${framesize} | ${nr_streams}
-| | ... | ${loss_acceptance} | ${loss_acceptance_type} | ${latency}
-| | ...
-| | ${framesize}= | Get Frame Size | ${framesize}
-| | ${rate_total}= | Evaluate | ${rate_per_stream}*${nr_streams}
-| | ${bandwidth_total}= | Evaluate | ${rate_total}*(${framesize}+20)*8/(10**9)
-| | Set Test Message | FINAL_RATE: ${rate_total} pps
-| | Set Test Message | (${nr_streams}x ${rate_per_stream} pps) | append=yes
-| | Set Test Message | ${\n}FINAL_BANDWIDTH: ${bandwidth_total} Gbps (untagged)
-| | ... | append=yes
-| | Set Test Message | ${\n}LATENCY usec [min/avg/max] | append=yes
-| | :FOR | ${lat} | IN | @{latency}
-| | | Set Test Message | ${\n}LAT_${lat[0]}: ${lat[1]} | append=yes
-| | Set Test Message
-| | ... | ${\n}LOSS_ACCEPTANCE: ${loss_acceptance} ${loss_acceptance_type}
-| | ... | append=yes
-
-| Measure latency pps
-| | [Documentation]
-| | ... | Send traffic at specified rate. Measure min/avg/max latency
-| | ...
-| | ... | *Arguments:*
-| | ... | - duration - Duration of traffic run [s]. Type: integer
-| | ... | - rate - Rate for sending packets. Type: integer
-| | ... | - framesize - L2 Frame Size [B]. Type: integer
-| | ... | - topology_type - Topology type. Type: string
-| | ...
-| | ... | *Example:*
-| | ...
-| | ... | \| Measure latency \| 10 \| 4.0 \| 64 \| 3-node-IPv4 \|
-| | ...
-| | [Arguments] | ${duration} | ${rate} | ${framesize} | ${topology_type}
-| | ...
-| | Return From Keyword If | ${rate} <= 10000 | ${-1}
-| | ${ret}= | Is DPDK performance test
-| | Run Keyword If | ${ret}==${FALSE} | Clear all counters on all DUTs
-| | Send traffic on tg | ${duration} | ${rate}pps | ${framesize}
-| | ... | ${topology_type} | warmup_time=0
-| | Run Keyword If | ${ret}==${FALSE} | Show statistics on all DUTs
-| | Run keyword and return | Get latency
-
-| Traffic should pass with no loss
-| | [Documentation]
-| | ... | Send traffic at specified rate. No packet loss is accepted at loss
-| | ... | evaluation.
-| | ...
-| | ... | *Arguments:*
-| | ... | - duration - Duration of traffic run [s]. Type: integer
-| | ... | - rate - Rate for sending packets. Type: string
-| | ... | - framesize - L2 Frame Size [B]. Type: integer
-| | ... | - topology_type - Topology type. Type: string
-| | ... | - fail_on_loss - If True, the keyword fails if loss occurred.
-| | ... | Type: boolean
-| | ...
-| | ... | *Example:*
-| | ...
-| | ... | \| Traffic should pass with no loss \| 10 \| 4.0mpps \| 64 \
-| | ... | \| 3-node-IPv4 \|
-| | ...
-| | [Arguments] | ${duration} | ${rate} | ${framesize} | ${topology_type}
-| | ... | ${fail_on_loss}=${True}
-| | ...
-| | Clear and show runtime counters with running traffic | ${duration}
-| | ... | ${rate} | ${framesize} | ${topology_type}
-| | ${ret}= | Is DPDK performance test
-| | Run Keyword If | ${ret}==${FALSE} | Clear all counters on all DUTs
-| | Send traffic on tg | ${duration} | ${rate} | ${framesize}
-| | ... | ${topology_type} | warmup_time=0
-| | Run Keyword If | ${ret}==${FALSE} | Show statistics on all DUTs
-| | Run Keyword If | ${fail_on_loss} | No traffic loss occurred
-
-| Traffic should pass with partial loss
-| | [Documentation]
-| | ... | Send traffic at specified rate. Partial packet loss is accepted
-| | ... | within loss acceptance value specified as argument.
-| | ...
-| | ... | *Arguments:*
-| | ... | - duration - Duration of traffic run [s]. Type: integer
-| | ... | - rate - Rate for sending packets. Type: string
-| | ... | - framesize - L2 Frame Size [B]. Type: integer
-| | ... | - topology_type - Topology type. Type: string
-| | ... | - loss_acceptance - Accepted loss during search. Type: float
-| | ... | - loss_acceptance_type - Percentage or frames. Type: string
-| | ...
-| | ... | *Example:*
-| | ...
-| | ... | \| Traffic should pass with partial loss \| 10 \| 4.0mpps \| 64 \
-| | ... | \| 3-node-IPv4 \| 0.5 \| percentage \|
-| | ...
-| | [Arguments] | ${duration} | ${rate} | ${framesize} | ${topology_type}
-| | ... | ${loss_acceptance} | ${loss_acceptance_type}
-| | ... | ${fail_on_loss}=${True}
-| | ...
-| | Clear and show runtime counters with running traffic | ${duration}
-| | ... | ${rate} | ${framesize} | ${topology_type}
-| | ${ret}= | Is DPDK performance test
-| | Run Keyword If | ${ret}==${FALSE} | Clear all counters on all DUTs
-| | Send traffic on tg | ${duration} | ${rate} | ${framesize}
-| | ... | ${topology_type} | warmup_time=0
-| | Run Keyword If | ${ret}==${FALSE} | Show statistics on all DUTs
-| | Run Keyword If | ${fail_on_loss} | Partial traffic loss accepted
-| | ... | ${loss_acceptance} | ${loss_acceptance_type}
-
-| Clear and show runtime counters with running traffic
+| Add PCI devices to DUTs in 3-node single link topology
 | | [Documentation]
-| | ... | Start traffic at specified rate then clear runtime counters on all
-| | ... | DUTs. Wait for specified amount of time and capture runtime counters
-| | ... | on all DUTs. Finally stop traffic
-| | ...
-| | ... | *Arguments:*
-| | ... | - duration - Duration of traffic run [s]. Type: integer
-| | ... | - rate - Rate for sending packets. Type: string
-| | ... | - framesize - L2 Frame Size [B]. Type: integer
-| | ... | - topology_type - Topology type. Type: string
-| | ...
-| | ... | *Example:*
-| | ...
-| | ... | \| Traffic should pass with partial loss \| 10 \| 4.0mpps \| 64 \
-| | ... | \| 3-node-IPv4 \| 0.5 \| percentage \|
+| | ... | Add PCI devices to VPP configuration file.
 | | ...
-| | [Arguments] | ${duration} | ${rate} | ${framesize} | ${topology_type}
-| | ...
-| | Send traffic on tg | -1 | ${rate} | ${framesize} | ${topology_type}
-| | ... | warmup_time=0 | async_call=${True} | latency=${False}
-| | ${ret}= | Is DPDK performance test
-| | Run Keyword If | ${ret}==${FALSE} | Clear runtime counters on all DUTs
-| | Sleep | ${duration}
-| | Run Keyword If | ${ret}==${FALSE} | Show runtime counters on all DUTs
-| | Stop traffic on tg
-
-| Add PCI devices to DUTs in 3-node single link topology
 | | ${dut1_if1_pci}= | Get Interface PCI Addr | ${dut1} | ${dut1_if1}
 | | ${dut1_if2_pci}= | Get Interface PCI Addr | ${dut1} | ${dut1_if2}
 | | ${dut2_if1_pci}= | Get Interface PCI Addr | ${dut2} | ${dut2_if1}
 | | Run keyword | DUT2.Add DPDK Dev | ${dut2_if1_pci} | ${dut2_if2_pci}
 
 | Add PCI devices to DUTs in 2-node single link topology
+| | [Documentation]
+| | ... | Add PCI devices to VPP configuration file.
+| | ...
 | | ${dut1_if1_pci}= | Get Interface PCI Addr | ${dut1} | ${dut1_if1}
 | | ${dut1_if2_pci}= | Get Interface PCI Addr | ${dut1} | ${dut1_if2}
 | | Run keyword | DUT1.Add DPDK Dev | ${dut1_if1_pci} | ${dut1_if2_pci}
 | | ... | in a 3-node circular topology \|
 | | ...
 | | :FOR | ${number} | IN RANGE | 1 | ${nr}+1
-| |      | ${sock1}= | Set Variable | /tmp/sock-${number}-1
-| |      | ${sock2}= | Set Variable | /tmp/sock-${number}-2
-| |      | ${skip_cpus}= | Evaluate | ${vpp_cpus}+${system_cpus}
-| |      | ${vm1}= | Configure guest VM with dpdk-testpmd connected via vhost-user
-| |      | ...     | ${dut1} | ${sock1} | ${sock2} | DUT1_VM${number}
-| |      | ...     | skip=${skip_cpus} | count=${vm_cpus} | qemu_id=${number}
-| |      | Set To Dictionary | ${dut1_vm_refs} | DUT1_VM${number} | ${vm1}
-| |      | ${vm2}= | Configure guest VM with dpdk-testpmd connected via vhost-user
-| |      | ...     | ${dut2} | ${sock1} | ${sock2} | DUT2_VM${number}
-| |      | ...     | skip=${skip_cpus} | count=${vm_cpus} | qemu_id=${number}
-| |      | Set To Dictionary | ${dut2_vm_refs} | DUT2_VM${number} | ${vm2}
+| | | ${sock1}= | Set Variable | /tmp/sock-${number}-1
+| | | ${sock2}= | Set Variable | /tmp/sock-${number}-2
+| | | ${skip_cpus}= | Evaluate | ${vpp_cpus}+${system_cpus}
+| | | ${vm1}= | Configure guest VM with dpdk-testpmd connected via vhost-user
+| | | ... | ${dut1} | ${sock1} | ${sock2} | DUT1_VM${number}
+| | | ... | skip=${skip_cpus} | count=${vm_cpus} | qemu_id=${number}
+| | | Set To Dictionary | ${dut1_vm_refs} | DUT1_VM${number} | ${vm1}
+| | | ${vm2}= | Configure guest VM with dpdk-testpmd connected via vhost-user
+| | | ... | ${dut2} | ${sock1} | ${sock2} | DUT2_VM${number}
+| | | ... | skip=${skip_cpus} | count=${vm_cpus} | qemu_id=${number}
+| | | Set To Dictionary | ${dut2_vm_refs} | DUT2_VM${number} | ${vm2}
 
 | Configure guest VM with dpdk-testpmd using SMT connected via vhost-user
 | | [Documentation]
 | | ... | setup in a 3-node circular topology \|
 | | ...
 | | :FOR | ${number} | IN RANGE | 1 | ${nr}+1
-| |      | ${sock1}= | Set Variable | /tmp/sock-${number}-1
-| |      | ${sock2}= | Set Variable | /tmp/sock-${number}-2
-| |      | ${skip_cpus}= | Evaluate | ${vpp_cpus}+${system_cpus}
-| |      | ${vm1}= | Configure guest VM with dpdk-testpmd-mac connected via vhost-user
-| |      | ... | ${dut1} | ${sock1} | ${sock2} | DUT1_VM${number}
-| |      | ... | ${dut1-vhost-${number}-if1_mac}
-| |      | ... | ${dut1-vhost-${number}-if2_mac} | skip=${skip_cpus}
-| |      | ... | count=${vm_cpus} | qemu_id=${number}
-| |      | Set To Dictionary | ${dut1_vm_refs} | DUT1_VM${number} | ${vm1}
-| |      | ${vm2}= | Configure guest VM with dpdk-testpmd-mac connected via vhost-user
-| |      | ... | ${dut2} | ${sock1} | ${sock2} | DUT2_VM${number}
-| |      | ... | ${dut2-vhost-${number}-if1_mac}
-| |      | ... | ${dut2-vhost-${number}-if2_mac} | skip=${skip_cpus}
-| |      | ... | count=${vm_cpus} | qemu_id=${number}
-| |      | Set To Dictionary | ${dut2_vm_refs} | DUT2_VM${number} | ${vm2}
+| | | ${sock1}= | Set Variable | /tmp/sock-${number}-1
+| | | ${sock2}= | Set Variable | /tmp/sock-${number}-2
+| | | ${skip_cpus}= | Evaluate | ${vpp_cpus}+${system_cpus}
+| | | ${vm1}=
+| | | ... | Configure guest VM with dpdk-testpmd-mac connected via vhost-user
+| | | ... | ${dut1} | ${sock1} | ${sock2} | DUT1_VM${number}
+| | | ... | ${dut1-vhost-${number}-if1_mac}
+| | | ... | ${dut1-vhost-${number}-if2_mac} | skip=${skip_cpus}
+| | | ... | count=${vm_cpus} | qemu_id=${number}
+| | | Set To Dictionary | ${dut1_vm_refs} | DUT1_VM${number} | ${vm1}
+| | | ${vm2}=
+| | | ... | Configure guest VM with dpdk-testpmd-mac connected via vhost-user
+| | | ... | ${dut2} | ${sock1} | ${sock2} | DUT2_VM${number}
+| | | ... | ${dut2-vhost-${number}-if1_mac}
+| | | ... | ${dut2-vhost-${number}-if2_mac} | skip=${skip_cpus}
+| | | ... | count=${vm_cpus} | qemu_id=${number}
+| | | Set To Dictionary | ${dut2_vm_refs} | DUT2_VM${number} | ${vm2}
 
 | Configure guest VM with dpdk-testpmd-mac using SMT connected via vhost-user
 | | [Documentation]
 | | ... | *Example:*
 | | ...
 | | ... | \| Configure guest VM with dpdk-testpmd-mac using SMT connected via \
-| | ... | vhost-user \| ${nodes['DUT1']} \| /tmp/sock1 \| /tmp/sock2 \| DUT1_VM \
+| | ... | vhost-user \| ${nodes['DUT1']} \| /tmp/sock1 \| /tmp/sock2 \| DUT1_VM\
 | | ... | \| 00:00:00:00:00:01 \| 00:00:00:00:00:02 \| ${6} \| ${5} \|
 | | ...
 | | [Arguments] | ${dut_node} | ${sock1} | ${sock2} | ${vm_name}
 | | Set Interface State | ${vm} | ${br} | up | if_type=name
 | | Return From Keyword | ${vm}
 
-| Tear down guest VM with dpdk-testpmd
-| | [Documentation]
-| | ... | Stop all qemu processes with dpdk-testpmd running on ${dut_node}.
-| | ... | Argument is dictionary of all qemu nodes running with its names.
-| | ... | Dpdk-testpmd is stopped gracefully with printing stats.
-| | ...
-| | ... | *Arguments:*
-| | ... | - dut_node - Node where to clean qemu. Type: dictionary
-| | ... | - dut_vm_refs - VM references on node. Type: dictionary
-| | ...
-| | ... | *Example:*
-| | ...
-| | ... | \| Tear down guest VM with dpdk-testpmd \| ${node['DUT1']} \
-| | ... | \| ${dut_vm_refs} \|
-| | ...
-| | [Arguments] | ${dut_node} | ${dut_vm_refs}
-| | ${vms_number}= | Get Length | ${dut_vm_refs}
-| | ${index}= | Set Variable | ${0}
-| | :FOR | ${vm_name} | IN | @{dut_vm_refs}
-| | | ${vm}= | Get From Dictionary | ${dut_vm_refs} | ${vm_name}
-| | | ${index}= | Evaluate | ${index} + 1
-| | | Dpdk Testpmd Stop | ${vm}
-| | | Run Keyword | ${vm_name}.Qemu Set Node | ${dut_node}
-| | | Run Keyword | ${vm_name}.Qemu Clear Socks
-| | | Run Keyword If | '${index}' == '${vms_number}' | ${vm_name}.Qemu Kill All
-
-| Tear down guest VM
-| | [Documentation]
-| | ... | Stop all qemu processes running on ${dut_node}.
-| | ... | Argument is dictionary of all qemu nodes running with its names.
-| | ...
-| | ... | *Arguments:*
-| | ... | - dut_node - Node where to clean qemu. Type: dictionary
-| | ... | - dut_vm_refs - VM references on node. Type: dictionary
-| | ...
-| | ... | *Example:*
-| | ...
-| | ... | \| Tear down guest VM \| ${node['DUT1']} \
-| | ... | \| ${dut_vm_refs} \|
-| | ...
-| | [Arguments] | ${dut_node} | ${dut_vm_refs}
-| | ${vms_number}= | Get Length | ${dut_vm_refs}
-| | ${index}= | Set Variable | ${0}
-| | :FOR | ${vm_name} | IN | @{dut_vm_refs}
-| | | ${vm}= | Get From Dictionary | ${dut_vm_refs} | ${vm_name}
-| | | ${index}= | Evaluate | ${index} + 1
-| | | Run Keyword | ${vm_name}.Qemu Set Node | ${dut_node}
-| | | Run Keyword | ${vm_name}.Qemu Clear Socks
-| | | Run Keyword If | '${index}' == '${vms_number}' | ${vm_name}.Qemu Kill All
-
 | Initialize LISP IPv4 forwarding in 3-node circular topology
 | | [Documentation] | Custom setup of IPv4 addresses on all DUT nodes and TG \
 | | ... | Don`t set route.
 | | Vpp Route Add | ${dut2} | 12.0.0.0 | 24 | 12.0.0.2 | ${dut2_if2}
 | | Vpp Route Add | ${dut2} | 200.0.0.0 | 30 | 11.0.0.1 | ${dut2_if1}
 | | ...
-| | Configure inside and outside interfaces | ${dut1} | ${dut1_if1} | ${dut1_if2}
-| | Configure deterministic mode for SNAT | ${dut1} | 20.0.0.0 | 18 | 200.0.0.0 | 30
-
-| Set up DPDK 2-node performance topology with DUT's NIC model
-| | [Documentation]
-| | ... | Updates interfaces on all nodes and setup global
-| | ... | variables used in test cases based on interface model provided as an
-| | ... | argument. Initializes traffic generator. Initializes DPDK test
-| | ... | environment.
-| | ...
-| | ... | *Arguments:*
-| | ... | - topology_type - Topology type. Type: string
-| | ... | - nic_model - Interface model. Type: string
-| | ...
-| | ... | *Example:*
-| | ...
-| | ... | \| Set up DPDK 2-node performance topology with DUT's NIC model \
-| | ... | \| L2 \| Intel-X520-DA2 \|
-| | ...
-| | [Arguments] | ${topology_type} | ${nic_model}
-| | ...
-| | Set variables in 2-node circular topology with DUT interface model
-| | ... | ${nic_model}
-| | Initialize traffic generator | ${tg} | ${tg_if1} | ${tg_if2}
-| | ... | ${dut1} | ${dut1_if1} | ${dut1} | ${dut1_if2} | ${topology_type}
-| | Initialize DPDK Environment | ${dut1} | ${dut1_if1} | ${dut1_if2}
-
-| Set up DPDK 3-node performance topology with DUT's NIC model
-| | [Documentation]
-| | ... | Updates interfaces on all nodes and setup global
-| | ... | variables used in test cases based on interface model provided as an
-| | ... | argument. Initializes traffic generator. Initializes DPDK test
-| | ... | environment.
-| | ...
-| | ... | *Arguments:*
-| | ... | - topology_type - Topology type. Type: string
-| | ... | - nic_model - Interface model. Type: string
-| | ...
-| | ... | *Example:*
-| | ...
-| | ... | \| 3-node Performance Suite Setup \| L2 \| Intel-X520-DA2 \|
-| | ...
-| | [Arguments] | ${topology_type} | ${nic_model}
-| | ...
-| | Set variables in 3-node circular topology with DUT interface model
-| | ... | ${nic_model}
-| | Initialize traffic generator | ${tg} | ${tg_if1} | ${tg_if2}
-| | ... | ${dut1} | ${dut1_if1} | ${dut2} | ${dut2_if2} | ${topology_type}
-| | Initialize DPDK Environment | ${dut1} | ${dut1_if1} | ${dut1_if2}
-| | Initialize DPDK Environment | ${dut2} | ${dut2_if1} | ${dut2_if2}
-
-| Tear down DPDK 3-node performance topology
-| | [Documentation]
-| | ... | Suite teardown phase with traffic generator teardown.
-| | ... | Cleanup DPDK test environment.
-| | ...
-| | Teardown traffic generator | ${tg}
-| | Cleanup DPDK Environment | ${dut1} | ${dut1_if1} | ${dut1_if2}
-| | Cleanup DPDK Environment | ${dut2} | ${dut2_if1} | ${dut2_if2}
-
-| Tear down DPDK 2-node performance topology
-| | [Documentation]
-| | ... | Suite teardown phase with traffic generator teardown.
-| | ... | Cleanup DPDK test environment.
-| | ...
-| | Teardown traffic generator | ${tg}
-| | Cleanup DPDK Environment | ${dut1} | ${dut1_if1} | ${dut1_if2}
-
-| Is DPDK performance test
-| | [Documentation]
-| | ... | Return TRUE if variable DPDK_TEST exist, otherwise FALSE.
-| | ${ret} | ${tmp}= | Run Keyword And Ignore Error
-| | ... | Variable Should Exist | ${DPDK_TEST}
-| | Return From Keyword If | "${ret}" == "PASS" | ${TRUE}
-| | Return From Keyword | ${FALSE}
-
-| Set up performance test
-| | [Documentation] | Common test setup for performance tests.
-| | ...
-| | Reset VAT History On All DUTs | ${nodes}
-| | Create base startup configuration of VPP on all DUTs
-
-| Tear down performance discovery test
-| | [Documentation] | Common test teardown for ndrdisc and pdrdisc performance \
-| | ... | tests.
-| | ...
-| | ... | *Arguments:*
-| | ... | - rate - Rate for sending packets. Type: string
-| | ... | - framesize - L2 Frame Size [B]. Type: integer
-| | ... | - topology_type - Topology type. Type: string
-| | ...
-| | ... | *Example:*
-| | ...
-| | ... | \| Tear down performance discovery test \| 4.0mpps \| 64 \
-| | ... | \| 3-node-IPv4 \|
-| | ...
-| | [Arguments] | ${rate} | ${framesize} | ${topology_type}
-| | ...
-| | Show VAT History On All DUTs | ${nodes}
-| | Show statistics on all DUTs
-| | Run Keyword If Test Failed
-| | ... | Traffic should pass with no loss | ${perf_trial_duration} | ${rate}
-| | ... | ${framesize} | ${topology_type} | fail_on_loss=${False}
-
-| Tear down performance ndrchk test
-| | [Documentation] | Common test teardown for ndrchk performance tests.
-| | ...
-| | Show VAT History On All DUTs | ${nodes}
-| | Show statistics on all DUTs
-
-| Performance pdrchk test teardown
-| | [Documentation] | Common test teardown for pdrchk performance tests.
-| | ...
-| | Show VAT History On All DUTs | ${nodes}
-| | Show statistics on all DUTs
-
-| Tear down performance test with vhost and VM with dpdk-testpmd
-| | [Documentation] | Common test teardown for performance tests which use
-| | ... | vhost(s) and VM(s) with dpdk-testpmd.
-| | ...
-| | ... | *Arguments:*
-| | ... | - rate - Rate for sending packets. Type: string
-| | ... | - framesize - L2 Frame Size [B]. Type: integer
-| | ... | - topology_type - Topology type. Type: string
-| | ... | - dut1_node - Node where to clean qemu. Type: dictionary
-| | ... | - dut1_vm_refs - VM references on node. Type: dictionary
-| | ... | - dut2_node - Node where to clean qemu. Type: dictionary
-| | ... | - dut2_vm_refs - VM references on node. Type: dictionary
-| | ...
-| | ... | *Example:*
-| | ...
-| | ... | \| Tear down performance test with vhost and VM with dpdk-testpmd \
-| | ... | \| 4.0mpps \| 64 \| 3-node-IPv4 \| ${node['DUT1']} \| ${dut_vm_refs} \
-| | ... | \| ${node['DUT2']} \| ${dut_vm_refs} \|
-| | ...
-| | [Arguments] | ${rate} | ${framesize} | ${topology_type}
-| | ... | ${dut1_node}=${None} | ${dut1_vm_refs}=${None}
-| | ... | ${dut2_node}=${None} | ${dut2_vm_refs}=${None}
-| | ...
-| | Show VAT History On All DUTs | ${nodes}
-| | Show VPP vhost on all DUTs
-| | Show statistics on all DUTs
-| | Run Keyword If Test Failed
-| | ... | Traffic should pass with no loss | ${perf_trial_duration} | ${rate}
-| | ... | ${framesize} | ${topology_type} | fail_on_loss=${False}
-| | Run keyword unless | ${dut1_node}==${None}
-| | ... | Tear down guest VM with dpdk-testpmd | ${dut1} | ${dut1_vm_refs}
-| | Run keyword unless | ${dut2_node}==${None}
-| | ... | Tear down guest VM with dpdk-testpmd | ${dut2} | ${dut2_vm_refs}
-
-| Set up IPSec performance test suite
-| | [Documentation]
-| | ... | Suite preparation phase that sets default startup configuration of
-| | ... | VPP on all DUTs. Updates interfaces on all nodes and sets global
-| | ... | variables used in test cases based on interface model provided as an
-| | ... | argument. Initializes traffic generator.
-| | ... | Then it configures crypto device and kernel module on all DUTs.
-| | ...
-| | ... | *Arguments:*
-| | ... | - topology_type - Topology type. Type: string
-| | ... | - nic_model - Interface model. Type: string
-| | ...
-| | ... | *Example:*
-| | ...
-| | ... | \| Set up IPSec performance test suite \| L2 \
-| | ... | \| Intel-X520-DA2 \|
-| | ...
-| | [Arguments] | ${topology_type} | ${nic_model}
-| | ...
-| | Set up 3-node performance topology with DUT's NIC model
-| | ... | ${topology_type} | ${nic_model}
-| | Configure crypto device on all DUTs | force_init=${True}
-| | Configure kernel module on all DUTs | igb_uio | force_load=${True}
-
-| Tear down performance discovery test with SNAT
-| | [Documentation] | Common test teardown for ndrdisc and pdrdisc performance \
-| | ... | tests with SNAT feature used.
-| | ...
-| | ... | *Arguments:*
-| | ... | - rate - Rate for sending packets. Type: string
-| | ... | - framesize - L2 Frame Size [B]. Type: integer
-| | ... | - topology_type - Topology type. Type: string
-| | ...
-| | ... | *Example:*
-| | ...
-| | ... | \| Tear down performance discovery test with SNAT \| 4.0mpps \| 64 \
-| | ... | \| ${traffic_profile} \|
-| | ...
-| | [Arguments] | ${rate} | ${framesize} | ${traffic_profile}
-| | ...
-| | Tear down performance discovery test | ${rate}pps | ${framesize}
-| | ... | ${traffic_profile}
-| | Show SNAT verbose | ${dut1}
-| | Show SNAT verbose | ${dut2}
+| | Configure inside and outside interfaces
+| | ... | ${dut1} | ${dut1_if1} | ${dut1_if2}
+| | Configure deterministic mode for SNAT
+| | ... | ${dut1} | 20.0.0.0 | 18 | 200.0.0.0 | 30
diff --git a/resources/libraries/robot/performance_setup.robot b/resources/libraries/robot/performance_setup.robot
new file mode 100644 (file)
index 0000000..781c458
--- /dev/null
@@ -0,0 +1,501 @@
+# Copyright (c) 2017 Cisco and/or its affiliates.
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at:
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+*** Settings ***
+| Resource | resources/libraries/robot/performance_configuration.robot
+| Resource | resources/libraries/robot/performance_utils.robot
+| Documentation | Performance suite keywords - Suite and test setups and
+| ... | teardowns.
+
+*** Keywords ***
+
+# Keywords used in setups and teardowns
+
+| Set variables in 2-node circular topology
+| | [Documentation]
+| | ... | Compute path for testing on two given nodes in circular
+| | ... | topology and set corresponding suite variables.
+| | ...
+| | ... | _NOTE:_ This KW sets following suite variables:
+| | ... | - tg - TG node
+| | ... | - tg_if1 - 1st TG interface towards DUT.
+| | ... | - tg_if2 - 2nd TG interface towards DUT.
+| | ... | - dut1 - DUT1 node
+| | ... | - dut1_if1 - 1st DUT interface towards TG.
+| | ... | - dut1_if2 - 2nd DUT interface towards TG.
+| | ...
+| | Append Nodes | ${nodes['TG']} | ${nodes['DUT1']} | ${nodes['TG']}
+| | Compute Path | always_same_link=${FALSE}
+| | ${tg_if1} | ${tg}= | First Interface
+| | ${dut1_if1} | ${dut1}= | First Ingress Interface
+| | ${dut1_if2} | ${dut1}= | Last Egress Interface
+| | ${tg_if2} | ${tg}= | Last Interface
+| | Set Suite Variable | ${tg}
+| | Set Suite Variable | ${tg_if1}
+| | Set Suite Variable | ${tg_if2}
+| | Set Suite Variable | ${dut1}
+| | Set Suite Variable | ${dut1_if1}
+| | Set Suite Variable | ${dut1_if2}
+
+| Set variables in 3-node circular topology
+| | [Documentation]
+| | ... | Compute path for testing on three given nodes in circular
+| | ... | topology and set corresponding suite variables.
+| | ...
+| | ... | _NOTE:_ This KW sets following suite variables:
+| | ... | - tg - TG node
+| | ... | - tg_if1 - TG interface towards DUT1.
+| | ... | - tg_if2 - TG interface towards DUT2.
+| | ... | - dut1 - DUT1 node
+| | ... | - dut1_if1 - DUT1 interface towards TG.
+| | ... | - dut1_if2 - DUT1 interface towards DUT2.
+| | ... | - dut2 - DUT2 node
+| | ... | - dut2_if1 - DUT2 interface towards DUT1.
+| | ... | - dut2_if2 - DUT2 interface towards TG.
+| | ...
+| | Append Nodes | ${nodes['TG']} | ${nodes['DUT1']} | ${nodes['DUT2']}
+| | ... | ${nodes['TG']}
+| | Compute Path
+| | ${tg_if1} | ${tg}= | Next Interface
+| | ${dut1_if1} | ${dut1}= | Next Interface
+| | ${dut1_if2} | ${dut1}= | Next Interface
+| | ${dut2_if1} | ${dut2}= | Next Interface
+| | ${dut2_if2} | ${dut2}= | Next Interface
+| | ${tg_if2} | ${tg}= | Next Interface
+| | Set Suite Variable | ${tg}
+| | Set Suite Variable | ${tg_if1}
+| | Set Suite Variable | ${tg_if2}
+| | Set Suite Variable | ${dut1}
+| | Set Suite Variable | ${dut1_if1}
+| | Set Suite Variable | ${dut1_if2}
+| | Set Suite Variable | ${dut2}
+| | Set Suite Variable | ${dut2_if1}
+| | Set Suite Variable | ${dut2_if2}
+
+| Set variables in 2-node circular topology with DUT interface model
+| | [Documentation]
+| | ... | Compute path for testing on two given nodes in circular topology
+| | ... | based on interface model provided as an argument and set
+| | ... | corresponding suite variables.
+| | ...
+| | ... | *Arguments:*
+| | ... | - iface_model - Interface model. Type: string
+| | ...
+| | ... | _NOTE:_ This KW sets following suite variables:
+| | ... | - tg - TG node
+| | ... | - tg_if1 - 1st TG interface towards DUT.
+| | ... | - tg_if2 - 2nd TG interface towards DUT.
+| | ... | - dut1 - DUT1 node
+| | ... | - dut1_if1 - 1st DUT interface towards TG.
+| | ... | - dut1_if2 - 2nd DUT interface towards TG.
+| | ...
+| | ... | *Example:*
+| | ...
+| | ... | \| Set variables in 2-node circular topology with DUT interface model\
+| | ... | \| Intel-X520-DA2 \|
+| | ...
+| | [Arguments] | ${iface_model}
+| | ...
+| | ${iface_model_list}= | Create list | ${iface_model}
+| | Append Node | ${nodes['TG']}
+| | Append Node | ${nodes['DUT1']} | filter_list=${iface_model_list}
+| | Append Node | ${nodes['TG']}
+| | Compute Path | always_same_link=${FALSE}
+| | ${tg_if1} | ${tg}= | First Interface
+| | ${dut1_if1} | ${dut1}= | First Ingress Interface
+| | ${dut1_if2} | ${dut1}= | Last Egress Interface
+| | ${tg_if2} | ${tg}= | Last Interface
+| | Set Suite Variable | ${tg}
+| | Set Suite Variable | ${tg_if1}
+| | Set Suite Variable | ${tg_if2}
+| | Set Suite Variable | ${dut1}
+| | Set Suite Variable | ${dut1_if1}
+| | Set Suite Variable | ${dut1_if2}
+
+| Set variables in 3-node circular topology with DUT interface model
+| | [Documentation]
+| | ... | Compute path for testing on three given nodes in circular topology
+| | ... | based on interface model provided as an argument and set
+| | ... | corresponding suite variables.
+| | ...
+| | ... | *Arguments:*
+| | ... | - iface_model - Interface model. Type: string
+| | ...
+| | ... | _NOTE:_ This KW sets following suite variables:
+| | ... | - tg - TG node
+| | ... | - tg_if1 - TG interface towards DUT1.
+| | ... | - tg_if2 - TG interface towards DUT2.
+| | ... | - dut1 - DUT1 node
+| | ... | - dut1_if1 - DUT1 interface towards TG.
+| | ... | - dut1_if2 - DUT1 interface towards DUT2.
+| | ... | - dut2 - DUT2 node
+| | ... | - dut2_if1 - DUT2 interface towards TG.
+| | ... | - dut2_if2 - DUT2 interface towards DUT1.
+| | ...
+| | ... | *Example:*
+| | ...
+| | ... | \| Set variables in 3-node circular topology with DUT interface model\
+| | ... | \| Intel-X520-DA2 \|
+| | ...
+| | [Arguments] | ${iface_model}
+| | ...
+| | ${iface_model_list}= | Create list | ${iface_model}
+| | Append Node | ${nodes['TG']}
+| | Append Node | ${nodes['DUT1']} | filter_list=${iface_model_list}
+| | Append Node | ${nodes['DUT2']} | filter_list=${iface_model_list}
+| | Append Node | ${nodes['TG']}
+| | Compute Path
+| | ${tg_if1} | ${tg}= | Next Interface
+| | ${dut1_if1} | ${dut1}= | Next Interface
+| | ${dut1_if2} | ${dut1}= | Next Interface
+| | ${dut2_if1} | ${dut2}= | Next Interface
+| | ${dut2_if2} | ${dut2}= | Next Interface
+| | ${tg_if2} | ${tg}= | Next Interface
+| | Set Suite Variable | ${tg}
+| | Set Suite Variable | ${tg_if1}
+| | Set Suite Variable | ${tg_if2}
+| | Set Suite Variable | ${dut1}
+| | Set Suite Variable | ${dut1_if1}
+| | Set Suite Variable | ${dut1_if2}
+| | Set Suite Variable | ${dut2}
+| | Set Suite Variable | ${dut2_if1}
+| | Set Suite Variable | ${dut2_if2}
+
+| Tear down guest VM with dpdk-testpmd
+| | [Documentation]
+| | ... | Stop all qemu processes with dpdk-testpmd running on ${dut_node}.
+| | ... | Argument is dictionary of all qemu nodes running with its names.
+| | ... | Dpdk-testpmd is stopped gracefully with printing stats.
+| | ...
+| | ... | *Arguments:*
+| | ... | - dut_node - Node where to clean qemu. Type: dictionary
+| | ... | - dut_vm_refs - VM references on node. Type: dictionary
+| | ...
+| | ... | *Example:*
+| | ...
+| | ... | \| Tear down guest VM with dpdk-testpmd \| ${node['DUT1']} \
+| | ... | \| ${dut_vm_refs} \|
+| | ...
+| | [Arguments] | ${dut_node} | ${dut_vm_refs}
+| | ${vms_number}= | Get Length | ${dut_vm_refs}
+| | ${index}= | Set Variable | ${0}
+| | :FOR | ${vm_name} | IN | @{dut_vm_refs}
+| | | ${vm}= | Get From Dictionary | ${dut_vm_refs} | ${vm_name}
+| | | ${index}= | Evaluate | ${index} + 1
+| | | Dpdk Testpmd Stop | ${vm}
+| | | Run Keyword | ${vm_name}.Qemu Set Node | ${dut_node}
+| | | Run Keyword | ${vm_name}.Qemu Clear Socks
+| | | Run Keyword If | '${index}' == '${vms_number}' | ${vm_name}.Qemu Kill All
+
+| Tear down guest VM
+| | [Documentation]
+| | ... | Stop all qemu processes running on ${dut_node}.
+| | ... | Argument is dictionary of all qemu nodes running with its names.
+| | ...
+| | ... | *Arguments:*
+| | ... | - dut_node - Node where to clean qemu. Type: dictionary
+| | ... | - dut_vm_refs - VM references on node. Type: dictionary
+| | ...
+| | ... | *Example:*
+| | ...
+| | ... | \| Tear down guest VM \| ${node['DUT1']} \
+| | ... | \| ${dut_vm_refs} \|
+| | ...
+| | [Arguments] | ${dut_node} | ${dut_vm_refs}
+| | ${vms_number}= | Get Length | ${dut_vm_refs}
+| | ${index}= | Set Variable | ${0}
+| | :FOR | ${vm_name} | IN | @{dut_vm_refs}
+| | | ${vm}= | Get From Dictionary | ${dut_vm_refs} | ${vm_name}
+| | | ${index}= | Evaluate | ${index} + 1
+| | | Run Keyword | ${vm_name}.Qemu Set Node | ${dut_node}
+| | | Run Keyword | ${vm_name}.Qemu Clear Socks
+| | | Run Keyword If | '${index}' == '${vms_number}' | ${vm_name}.Qemu Kill All
+
+# Suite setups
+
+| Set up 2-node performance topology with DUT's NIC model
+| | [Documentation]
+| | ... | Suite preparation phase that setup default startup configuration of
+| | ... | VPP on all DUTs. Updates interfaces on all nodes and setup global
+| | ... | variables used in test cases based on interface model provided as an
+| | ... | argument. Initializes traffic generator.
+| | ...
+| | ... | *Arguments:*
+| | ... | - topology_type - Topology type. Type: string
+| | ... | - nic_model - Interface model. Type: string
+| | ...
+| | ... | *Example:*
+| | ...
+| | ... | \| 2-node Performance Suite Setup \| L2 \| Intel-X520-DA2 \|
+| | ...
+| | [Arguments] | ${topology_type} | ${nic_model}
+| | ...
+| | Show vpp version on all DUTs
+| | Set variables in 2-node circular topology with DUT interface model
+| | ... | ${nic_model}
+| | Initialize traffic generator | ${tg} | ${tg_if1} | ${tg_if2}
+| | ... | ${dut1} | ${dut1_if1} | ${dut1} | ${dut1_if2} | ${topology_type}
+
+| Set up 2-node-switched performance topology with DUT's NIC model
+| | [Documentation]
+| | ... | Suite preparation phase that setup default startup configuration of
+| | ... | VPP on all DUTs. Updates interfaces on all nodes and setup global
+| | ... | variables used in test cases based on interface model provided as an
+| | ... | argument. Initializes traffic generator.
+| | ...
+| | ... | *Arguments:*
+| | ... | - topology_type - Topology type. Type: string
+| | ... | - nic_model - Interface model. Type: string
+| | ... | - tg_if1_dest_mac - Interface 1 destination MAC address. Type: string
+| | ... | - tg_if2_dest_mac - Interface 2 destination MAC address. Type: string
+| | ...
+| | ... | *Example:*
+| | ...
+| | ... | \| 2-node Performance Suite Setup \| L2 \| Intel-X520-DA2 \
+| | ... | \| 22:22:33:44:55:66 \| 22:22:33:44:55:55 \|
+| | ...
+| | [Arguments] | ${topology_type} | ${nic_model} | ${tg_if1_dest_mac}
+| | ... | ${tg_if2_dest_mac}
+| | ...
+| | Show vpp version on all DUTs
+| | Set variables in 2-node circular topology with DUT interface model
+| | ... | ${nic_model}
+| | Initialize traffic generator | ${tg} | ${tg_if1} | ${tg_if2}
+| | ... | ${dut1} | ${dut1_if1} | ${dut1} | ${dut1_if2} | ${topology_type}
+| | ... | ${tg_if1_dest_mac} | ${tg_if2_dest_mac}
+
+| Set up 3-node performance topology with DUT's NIC model
+| | [Documentation]
+| | ... | Suite preparation phase that setup default startup configuration of
+| | ... | VPP on all DUTs. Updates interfaces on all nodes and setup global
+| | ... | variables used in test cases based on interface model provided as an
+| | ... | argument. Initializes traffic generator.
+| | ...
+| | ... | *Arguments:*
+| | ... | - topology_type - Topology type. Type: string
+| | ... | - nic_model - Interface model. Type: string
+| | ...
+| | ... | *Example:*
+| | ...
+| | ... | \| Set up 3-node performance topology with DUT's NIC model \| L2 \
+| | ... | \| Intel-X520-DA2 \|
+| | ...
+| | [Arguments] | ${topology_type} | ${nic_model}
+| | ...
+| | Show vpp version on all DUTs
+| | Set variables in 3-node circular topology with DUT interface model
+| | ... | ${nic_model}
+| | Initialize traffic generator | ${tg} | ${tg_if1} | ${tg_if2}
+| | ... | ${dut1} | ${dut1_if1} | ${dut2} | ${dut2_if2} | ${topology_type}
+
+| Set up DPDK 2-node performance topology with DUT's NIC model
+| | [Documentation]
+| | ... | Updates interfaces on all nodes and setup global
+| | ... | variables used in test cases based on interface model provided as an
+| | ... | argument. Initializes traffic generator. Initializes DPDK test
+| | ... | environment.
+| | ...
+| | ... | *Arguments:*
+| | ... | - topology_type - Topology type. Type: string
+| | ... | - nic_model - Interface model. Type: string
+| | ...
+| | ... | *Example:*
+| | ...
+| | ... | \| Set up DPDK 2-node performance topology with DUT's NIC model \
+| | ... | \| L2 \| Intel-X520-DA2 \|
+| | ...
+| | [Arguments] | ${topology_type} | ${nic_model}
+| | ...
+| | Set variables in 2-node circular topology with DUT interface model
+| | ... | ${nic_model}
+| | Initialize traffic generator | ${tg} | ${tg_if1} | ${tg_if2}
+| | ... | ${dut1} | ${dut1_if1} | ${dut1} | ${dut1_if2} | ${topology_type}
+| | Initialize DPDK Environment | ${dut1} | ${dut1_if1} | ${dut1_if2}
+
+| Set up DPDK 3-node performance topology with DUT's NIC model
+| | [Documentation]
+| | ... | Updates interfaces on all nodes and setup global
+| | ... | variables used in test cases based on interface model provided as an
+| | ... | argument. Initializes traffic generator. Initializes DPDK test
+| | ... | environment.
+| | ...
+| | ... | *Arguments:*
+| | ... | - topology_type - Topology type. Type: string
+| | ... | - nic_model - Interface model. Type: string
+| | ...
+| | ... | *Example:*
+| | ...
+| | ... | \| 3-node Performance Suite Setup \| L2 \| Intel-X520-DA2 \|
+| | ...
+| | [Arguments] | ${topology_type} | ${nic_model}
+| | ...
+| | Set variables in 3-node circular topology with DUT interface model
+| | ... | ${nic_model}
+| | Initialize traffic generator | ${tg} | ${tg_if1} | ${tg_if2}
+| | ... | ${dut1} | ${dut1_if1} | ${dut2} | ${dut2_if2} | ${topology_type}
+| | Initialize DPDK Environment | ${dut1} | ${dut1_if1} | ${dut1_if2}
+| | Initialize DPDK Environment | ${dut2} | ${dut2_if1} | ${dut2_if2}
+
+| Set up IPSec performance test suite
+| | [Documentation]
+| | ... | Suite preparation phase that sets default startup configuration of
+| | ... | VPP on all DUTs. Updates interfaces on all nodes and sets global
+| | ... | variables used in test cases based on interface model provided as an
+| | ... | argument. Initializes traffic generator.
+| | ... | Then it configures crypto device and kernel module on all DUTs.
+| | ...
+| | ... | *Arguments:*
+| | ... | - topology_type - Topology type. Type: string
+| | ... | - nic_model - Interface model. Type: string
+| | ...
+| | ... | *Example:*
+| | ...
+| | ... | \| Set up IPSec performance test suite \| L2 \
+| | ... | \| Intel-X520-DA2 \|
+| | ...
+| | [Arguments] | ${topology_type} | ${nic_model}
+| | ...
+| | Set up 3-node performance topology with DUT's NIC model
+| | ... | ${topology_type} | ${nic_model}
+| | Configure crypto device on all DUTs | force_init=${True}
+| | Configure kernel module on all DUTs | igb_uio | force_load=${True}
+
+# Suite teardowns
+
+| Tear down 3-node performance topology
+| | [Documentation]
+| | ... | Suite teardown phase with traffic generator teardown.
+| | ...
+| | Teardown traffic generator | ${tg}
+
+| Tear down 2-node performance topology
+| | [Documentation]
+| | ... | Suite teardown phase with traffic generator teardown.
+| | ...
+| | Teardown traffic generator | ${tg}
+
+# Tests setups
+
+| Set up performance test
+| | [Documentation] | Common test setup for performance tests.
+| | ...
+| | Reset VAT History On All DUTs | ${nodes}
+| | Create base startup configuration of VPP on all DUTs
+
+# Tests teardowns
+
+| Tear down performance discovery test
+| | [Documentation] | Common test teardown for ndrdisc and pdrdisc performance \
+| | ... | tests.
+| | ...
+| | ... | *Arguments:*
+| | ... | - rate - Rate for sending packets. Type: string
+| | ... | - framesize - L2 Frame Size [B]. Type: integer
+| | ... | - topology_type - Topology type. Type: string
+| | ...
+| | ... | *Example:*
+| | ...
+| | ... | \| Tear down performance discovery test \| 4.0mpps \| 64 \
+| | ... | \| 3-node-IPv4 \|
+| | ...
+| | [Arguments] | ${rate} | ${framesize} | ${topology_type}
+| | ...
+| | Show VAT History On All DUTs | ${nodes}
+| | Show statistics on all DUTs
+| | Run Keyword If Test Failed
+| | ... | Traffic should pass with no loss | ${perf_trial_duration} | ${rate}
+| | ... | ${framesize} | ${topology_type} | fail_on_loss=${False}
+
+| Tear down performance ndrchk test
+| | [Documentation] | Common test teardown for ndrchk performance tests.
+| | ...
+| | Show VAT History On All DUTs | ${nodes}
+| | Show statistics on all DUTs
+
+| Tear down performance pdrchk test
+| | [Documentation] | Common test teardown for pdrchk performance tests.
+| | ...
+| | Show VAT History On All DUTs | ${nodes}
+| | Show statistics on all DUTs
+
+| Tear down performance test with vhost and VM with dpdk-testpmd
+| | [Documentation] | Common test teardown for performance tests which use
+| | ... | vhost(s) and VM(s) with dpdk-testpmd.
+| | ...
+| | ... | *Arguments:*
+| | ... | - rate - Rate for sending packets. Type: string
+| | ... | - framesize - L2 Frame Size [B]. Type: integer
+| | ... | - topology_type - Topology type. Type: string
+| | ... | - dut1_node - Node where to clean qemu. Type: dictionary
+| | ... | - dut1_vm_refs - VM references on node. Type: dictionary
+| | ... | - dut2_node - Node where to clean qemu. Type: dictionary
+| | ... | - dut2_vm_refs - VM references on node. Type: dictionary
+| | ...
+| | ... | *Example:*
+| | ...
+| | ... | \| Tear down performance test with vhost and VM with dpdk-testpmd \
+| | ... | \| 4.0mpps \| 64 \| 3-node-IPv4 \| ${node['DUT1']} \| ${dut_vm_refs} \
+| | ... | \| ${node['DUT2']} \| ${dut_vm_refs} \|
+| | ...
+| | [Arguments] | ${rate} | ${framesize} | ${topology_type}
+| | ... | ${dut1_node}=${None} | ${dut1_vm_refs}=${None}
+| | ... | ${dut2_node}=${None} | ${dut2_vm_refs}=${None}
+| | ...
+| | Show VAT History On All DUTs | ${nodes}
+| | Show VPP vhost on all DUTs
+| | Show statistics on all DUTs
+| | Run Keyword If Test Failed
+| | ... | Traffic should pass with no loss | ${perf_trial_duration} | ${rate}
+| | ... | ${framesize} | ${topology_type} | fail_on_loss=${False}
+| | Run keyword unless | ${dut1_node}==${None}
+| | ... | Tear down guest VM with dpdk-testpmd | ${dut1} | ${dut1_vm_refs}
+| | Run keyword unless | ${dut2_node}==${None}
+| | ... | Tear down guest VM with dpdk-testpmd | ${dut2} | ${dut2_vm_refs}
+
+| Tear down DPDK 3-node performance topology
+| | [Documentation]
+| | ... | Suite teardown phase with traffic generator teardown.
+| | ... | Cleanup DPDK test environment.
+| | ...
+| | Teardown traffic generator | ${tg}
+| | Cleanup DPDK Environment | ${dut1} | ${dut1_if1} | ${dut1_if2}
+| | Cleanup DPDK Environment | ${dut2} | ${dut2_if1} | ${dut2_if2}
+
+| Tear down DPDK 2-node performance topology
+| | [Documentation]
+| | ... | Suite teardown phase with traffic generator teardown.
+| | ... | Cleanup DPDK test environment.
+| | ...
+| | Teardown traffic generator | ${tg}
+| | Cleanup DPDK Environment | ${dut1} | ${dut1_if1} | ${dut1_if2}
+
+| Tear down performance discovery test with SNAT
+| | [Documentation] | Common test teardown for ndrdisc and pdrdisc performance \
+| | ... | tests with SNAT feature used.
+| | ...
+| | ... | *Arguments:*
+| | ... | - rate - Rate for sending packets. Type: string
+| | ... | - framesize - L2 Frame Size [B]. Type: integer
+| | ... | - topology_type - Topology type. Type: string
+| | ...
+| | ... | *Example:*
+| | ...
+| | ... | \| Tear down performance discovery test with SNAT \| 4.0mpps \| 64 \
+| | ... | \| ${traffic_profile} \|
+| | ...
+| | [Arguments] | ${rate} | ${framesize} | ${traffic_profile}
+| | ...
+| | Tear down performance discovery test | ${rate}pps | ${framesize}
+| | ... | ${traffic_profile}
+| | Show SNAT verbose | ${dut1}
+| | Show SNAT verbose | ${dut2}
diff --git a/resources/libraries/robot/performance_utils.robot b/resources/libraries/robot/performance_utils.robot
new file mode 100644 (file)
index 0000000..76f88b3
--- /dev/null
@@ -0,0 +1,545 @@
+# Copyright (c) 2017 Cisco and/or its affiliates.
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at:
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+*** Settings ***
+| Library | Collections
+| Library | resources.libraries.python.topology.Topology
+| Library | resources.libraries.python.NodePath
+| Library | resources.libraries.python.DpdkUtil
+| Library | resources.libraries.python.InterfaceUtil
+| Library | resources.libraries.python.VhostUser
+| Library | resources.libraries.python.TrafficGenerator
+| Library | resources.libraries.python.TrafficGenerator.TGDropRateSearchImpl
+| Resource | resources/libraries/robot/default.robot
+| Resource | resources/libraries/robot/interfaces.robot
+| Resource | resources/libraries/robot/counters.robot
+| Resource | resources/libraries/robot/bridge_domain.robot
+| Resource | resources/libraries/robot/l2_xconnect.robot
+| Resource | resources/libraries/robot/ipv4.robot
+| Resource | resources/libraries/robot/ipv6.robot
+| Resource | resources/libraries/robot/qemu.robot
+| Resource | resources/libraries/robot/tagging.robot
+| Documentation | Performance suite keywords - utilities to find and verify NDR
+| ... | and PDR.
+
+*** Keywords ***
+| Calculate pps
+| | [Documentation]
+| | ... | Calculate pps for given rate and L2 frame size,
+| | ... | additional 20B are added to L2 frame size as padding.
+| | ...
+| | ... | *Arguments*
+| | ... | - bps - Rate in bps. Type: integer
+| | ... | - framesize - L2 frame size in Bytes. Type: integer
+| | ...
+| | ... | *Return*
+| | ... | - Calculated pps. Type: integer
+| | ...
+| | ... | *Example:*
+| | ...
+| | ... | \| Calculate pps \| 10000000000 \| 64 \|
+| | ...
+| | [Arguments] | ${bps} | ${framesize}
+| | ...
+| | ${framesize}= | Get Frame Size | ${framesize}
+| | ${ret}= | Evaluate | (${bps}/((${framesize}+20)*8)).__trunc__()
+| | Return From Keyword | ${ret}
+
+| Get Frame Size
+| | [Documentation]
+| | ... | Framesize can be either integer in case of a single packet
+| | ... | in stream, or set of packets in case of IMIX type or simmilar.
+| | ... | This keyword returns average framesize.
+| | ...
+| | ... | *Arguments:*
+| | ... | - framesize - Framesize. Type: integer or string
+| | ...
+| | ... | *Example:*
+| | ...
+| | ... | \| Get Frame Size \| IMIX_v4_1 \|
+| | ...
+| | [Arguments] | ${framesize}
+| | ...
+| | Run Keyword If | '${framesize}' == 'IMIX_v4_1'
+| | ... | Return From Keyword | 353.83333
+| | Return From Keyword | ${framesize}
+
+| Is DPDK performance test
+| | [Documentation]
+| | ... | Return TRUE if variable DPDK_TEST exist, otherwise FALSE.
+| | ${ret} | ${tmp}= | Run Keyword And Ignore Error
+| | ... | Variable Should Exist | ${DPDK_TEST}
+| | Return From Keyword If | "${ret}" == "PASS" | ${TRUE}
+| | Return From Keyword | ${FALSE}
+
+| Find NDR using linear search and pps
+| | [Documentation]
+| | ... | Find throughput by using RFC2544 linear search with non drop rate.
+| | ...
+| | ... | *Arguments:*
+| | ... | - framesize - L2 Frame Size [B]. Type: integer
+| | ... | - start_rate - Initial start rate [pps]. Type: float
+| | ... | - step_rate - Step of linear search [pps]. Type: float
+| | ... | - topology_type - Topology type. Type: string
+| | ... | - min_rate - Lower limit of search [pps]. Type: float
+| | ... | - max_rate - Upper limit of search [pps]. Type: float
+| | ...
+| | ... | *Return:*
+| | ... | - No value returned
+| | ...
+| | ... | *Example:*
+| | ...
+| | ... | \| Find NDR using linear search and pps \| 64 \| 5000000 \
+| | ... | \| 100000 \| 3-node-IPv4 \| 100000 \| 14880952 \|
+| | ...
+| | [Arguments] | ${framesize} | ${start_rate} | ${step_rate}
+| | ... | ${topology_type} | ${min_rate} | ${max_rate}
+| | ...
+| | ${duration}= | Set Variable | ${perf_trial_duration}
+| | Set Duration | ${duration}
+| | Set Search Rate Boundaries | ${max_rate} | ${min_rate}
+| | Set Search Linear Step | ${step_rate}
+| | Set Search Frame Size | ${framesize}
+| | Set Search Rate Type pps
+| | Linear Search | ${start_rate} | ${topology_type}
+| | ${rate_per_stream} | ${lat}= | Verify Search Result
+| | ${tmp}= | Create List | 100%NDR | ${lat}
+| | ${latency}= | Create List | ${tmp}
+| | ${rate_50p}= | Evaluate | int(${rate_per_stream}*0.5)
+| | ${lat_50p}= | Measure latency pps | ${duration} | ${rate_50p}
+| | ... | ${framesize} | ${topology_type}
+| | ${tmp}= | Create List | 50%NDR | ${lat_50p}
+| | Append To List | ${latency} | ${tmp}
+| | ${rate_10p}= | Evaluate | int(${rate_per_stream}*0.1)
+| | ${lat_10p}= | Measure latency pps | ${duration} | ${rate_10p}
+| | ... | ${framesize} | ${topology_type}
+| | ${tmp}= | Create List | 10%NDR | ${lat_10p}
+| | Append To List | ${latency} | ${tmp}
+| | Display result of NDR search | ${rate_per_stream} | ${framesize} | 2
+| | ... | ${latency}
+| | Traffic should pass with no loss | ${duration} | ${rate_per_stream}pps
+| | ... | ${framesize} | ${topology_type} | fail_on_loss=${False}
+
+| Find PDR using linear search and pps
+| | [Documentation]
+| | ... | Find throughput by using RFC2544 linear search with partial drop rate
+| | ... | with PDR threshold and type specified by parameter.
+| | ...
+| | ... | *Arguments:*
+| | ... | - framesize - L2 Frame Size [B]. Type: integer
+| | ... | - start_rate - Initial start rate [pps]. Type: float
+| | ... | - step_rate - Step of linear search [pps]. Type: float
+| | ... | - topology_type - Topology type. Type: string
+| | ... | - min_rate - Lower limit of search [pps]. Type: float
+| | ... | - max_rate - Upper limit of search [pps]. Type: float
+| | ... | - loss_acceptance - Accepted loss during search. Type: float
+| | ... | - loss_acceptance_type - Percentage or frames. Type: string
+| | ...
+| | ... | *Example:*
+| | ...
+| | ... | \| Find PDR using linear search and pps \| 64 \| 5000000 \
+| | ... | \| 100000 \| 3-node-IPv4 \| 100000 \| 14880952 \| 0.5 \| percentage \|
+| | ...
+| | [Arguments] | ${framesize} | ${start_rate} | ${step_rate}
+| | ... | ${topology_type} | ${min_rate} | ${max_rate}
+| | ... | ${loss_acceptance}=0 | ${loss_acceptance_type}='frames'
+| | ...
+| | ${duration}= | Set Variable | ${perf_trial_duration}
+| | Set Duration | ${duration}
+| | Set Search Rate Boundaries | ${max_rate} | ${min_rate}
+| | Set Search Linear Step | ${step_rate}
+| | Set Search Frame Size | ${framesize}
+| | Set Search Rate Type pps
+| | Set Loss Acceptance | ${loss_acceptance}
+| | Run Keyword If | '${loss_acceptance_type}' == 'percentage'
+| | ... | Set Loss Acceptance Type Percentage
+| | Linear Search | ${start_rate} | ${topology_type}
+| | ${rate_per_stream} | ${lat}= | Verify Search Result
+| | ${tmp}= | Create List | 100%PDR | ${lat}
+| | ${latency}= | Create List | ${tmp}
+| | Display result of PDR search | ${rate_per_stream} | ${framesize} | 2
+| | ... | ${loss_acceptance} | ${loss_acceptance_type} | ${latency}
+| | Traffic should pass with partial loss | ${duration} | ${rate_per_stream}pps
+| | ... | ${framesize} | ${topology_type} | ${loss_acceptance}
+| | ... | ${loss_acceptance_type} | fail_on_loss=${False}
+
+| Find NDR using binary search and pps
+| | [Documentation]
+| | ... | Find throughput by using RFC2544 binary search with non drop rate.
+| | ...
+| | ... | *Arguments:*
+| | ... | - framesize - L2 Frame Size [B]. Type: integer
+| | ... | - binary_min - Lower boundary of search [pps]. Type: float
+| | ... | - binary_max - Upper boundary of search [pps]. Type: float
+| | ... | - topology_type - Topology type. Type: string
+| | ... | - min_rate - Lower limit of search [pps]. Type: float
+| | ... | - max_rate - Upper limit of search [pps]. Type: float
+| | ... | - threshold - Threshold to stop search [pps]. Type: integer
+| | ...
+| | ... | *Example:*
+| | ...
+| | ... | \| Find NDR using binary search and pps \| 64 \| 6000000 \
+| | ... | \| 12000000 \| 3-node-IPv4 \| 100000 \| 14880952 \| 50000 \|
+| | ...
+| | [Arguments] | ${framesize} | ${binary_min} | ${binary_max}
+| | ... | ${topology_type} | ${min_rate} | ${max_rate} | ${threshold}
+| | ...
+| | ${duration}= | Set Variable | ${perf_trial_duration}
+| | Set Duration | ${duration}
+| | Set Search Rate Boundaries | ${max_rate} | ${min_rate}
+| | Set Search Frame Size | ${framesize}
+| | Set Search Rate Type pps
+| | Set Binary Convergence Threshold | ${threshold}
+| | Binary Search | ${binary_min} | ${binary_max} | ${topology_type}
+| | ${rate_per_stream} | ${lat}= | Verify Search Result
+| | ${tmp}= | Create List | 100%NDR | ${lat}
+| | ${latency}= | Create List | ${tmp}
+| | ${rate_50p}= | Evaluate | int(${rate_per_stream}*0.5)
+| | ${lat_50p}= | Measure latency pps | ${duration} | ${rate_50p}
+| | ... | ${framesize} | ${topology_type}
+| | ${tmp}= | Create List | 50%NDR | ${lat_50p}
+| | Append To List | ${latency} | ${tmp}
+| | ${rate_10p}= | Evaluate | int(${rate_per_stream}*0.1)
+| | ${lat_10p}= | Measure latency pps | ${duration} | ${rate_10p}
+| | ... | ${framesize} | ${topology_type}
+| | ${tmp}= | Create List | 10%NDR | ${lat_10p}
+| | Append To List | ${latency} | ${tmp}
+| | Display result of NDR search | ${rate_per_stream} | ${framesize} | 2
+| | ... | ${latency}
+| | Traffic should pass with no loss | ${duration} | ${rate_per_stream}pps
+| | ... | ${framesize} | ${topology_type} | fail_on_loss=${False}
+
+| Find PDR using binary search and pps
+| | [Documentation]
+| | ... | Find throughput by using RFC2544 binary search with partial drop rate
+| | ... | with PDR threshold and type specified by parameter.
+| | ...
+| | ... | *Arguments:*
+| | ... | - framesize - L2 Frame Size [B]. Type: integer
+| | ... | - binary_min - Lower boundary of search [pps]. Type: float
+| | ... | - binary_max - Upper boundary of search [pps]. Type: float
+| | ... | - topology_type - Topology type. Type: string
+| | ... | - min_rate - Lower limit of search [pps]. Type: float
+| | ... | - max_rate - Upper limit of search [pps]. Type: float
+| | ... | - threshold - Threshold to stop search [pps]. Type: integer
+| | ... | - loss_acceptance - Accepted loss during search. Type: float
+| | ... | - loss_acceptance_type - Percentage or frames. Type: string
+| | ...
+| | ... | *Example:*
+| | ...
+| | ... | \| Find PDR using binary search and pps \| 64 \| 6000000 \
+| | ... | \| 12000000 \| 3-node-IPv4 \| 100000 \| 14880952 \| 50000 \| 0.5 \
+| | ... | \| percentage \|
+| | ...
+| | [Arguments] | ${framesize} | ${binary_min} | ${binary_max}
+| | ... | ${topology_type} | ${min_rate} | ${max_rate} | ${threshold}
+| | ... | ${loss_acceptance}=0 | ${loss_acceptance_type}='frames'
+| | ...
+| | ${duration}= | Set Variable | ${perf_trial_duration}
+| | Set Duration | ${duration}
+| | Set Search Rate Boundaries | ${max_rate} | ${min_rate}
+| | Set Search Frame Size | ${framesize}
+| | Set Search Rate Type pps
+| | Set Loss Acceptance | ${loss_acceptance}
+| | Run Keyword If | '${loss_acceptance_type}' == 'percentage'
+| | ... | Set Loss Acceptance Type Percentage
+| | Set Binary Convergence Threshold | ${threshold}
+| | Binary Search | ${binary_min} | ${binary_max} | ${topology_type}
+| | ${rate_per_stream} | ${lat}= | Verify Search Result
+| | ${tmp}= | Create List | 100%PDR | ${lat}
+| | ${latency}= | Create List | ${tmp}
+| | Display result of PDR search | ${rate_per_stream} | ${framesize} | 2
+| | ... | ${loss_acceptance} | ${loss_acceptance_type} | ${latency}
+| | Traffic should pass with partial loss | ${duration} | ${rate_per_stream}pps
+| | ... | ${framesize} | ${topology_type} | ${loss_acceptance}
+| | ... | ${loss_acceptance_type} | fail_on_loss=${False}
+
+| Find NDR using combined search and pps
+| | [Documentation]
+| | ... | Find throughput by using RFC2544 combined search (linear+binary) with
+| | ... | non drop rate.
+| | ...
+| | ... | *Arguments:*
+| | ... | - framesize - L2 Frame Size [B]. Type: integer
+| | ... | - start_rate - Initial start rate [pps]. Type: float
+| | ... | - step_rate - Step of linear search [pps]. Type: float
+| | ... | - topology_type - Topology type. Type: string
+| | ... | - min_rate - Lower limit of search [pps]. Type: float
+| | ... | - max_rate - Upper limit of search [pps]. Type: float
+| | ... | - threshold - Threshold to stop search [pps]. Type: integer
+| | ...
+| | ... | *Example:*
+| | ...
+| | ... | \| Find NDR using combined search and pps \| 64 \| 5000000 \
+| | ... | \| 100000 \| 3-node-IPv4 \| 100000 \| 14880952 \| 5000 \|
+| | ...
+| | [Arguments] | ${framesize} | ${start_rate} | ${step_rate}
+| | ... | ${topology_type} | ${min_rate} | ${max_rate} | ${threshold}
+| | ...
+| | ${duration}= | Set Variable | ${perf_trial_duration}
+| | Set Duration | ${duration}
+| | Set Search Rate Boundaries | ${max_rate} | ${min_rate}
+| | Set Search Linear Step | ${step_rate}
+| | Set Search Frame Size | ${framesize}
+| | Set Search Rate Type pps
+| | Set Binary Convergence Threshold | ${threshold}
+| | Combined Search | ${start_rate} | ${topology_type}
+| | ${rate_per_stream} | ${lat}= | Verify Search Result
+| | ${tmp}= | Create List | 100%NDR | ${lat}
+| | ${latency}= | Create List | ${tmp}
+| | ${rate_50p}= | Evaluate | int(${rate_per_stream}*0.5)
+| | ${lat_50p}= | Measure latency pps | ${duration} | ${rate_50p}
+| | ... | ${framesize} | ${topology_type}
+| | ${tmp}= | Create List | 50%NDR | ${lat_50p}
+| | Append To List | ${latency} | ${tmp}
+| | ${rate_10p}= | Evaluate | int(${rate_per_stream}*0.1)
+| | ${lat_10p}= | Measure latency pps | ${duration} | ${rate_10p}
+| | ... | ${framesize} | ${topology_type}
+| | ${tmp}= | Create List | 10%NDR | ${lat_10p}
+| | Append To List | ${latency} | ${tmp}
+| | Display result of NDR search | ${rate_per_stream} | ${framesize} | 2
+| | ... | ${latency}
+| | Traffic should pass with no loss | ${duration} | ${rate_per_stream}pps
+| | ... | ${framesize} | ${topology_type}
+| | ... | fail_on_loss=${False}
+
+| Find PDR using combined search and pps
+| | [Documentation]
+| | ... | Find throughput by using RFC2544 combined search (linear+binary) with
+| | ... | partial drop rate with PDR threshold and type specified by parameter.
+| | ...
+| | ... | *Arguments:*
+| | ... | - framesize - L2 Frame Size [B]. Type: integer
+| | ... | - start_rate - Initial start rate [pps]. Type: float
+| | ... | - step_rate - Step of linear search [pps]. Type: float
+| | ... | - topology_type - Topology type. Type: string
+| | ... | - min_rate - Lower limit of search [pps]. Type: float
+| | ... | - max_rate - Upper limit of search [pps]. Type: float
+| | ... | - threshold - Threshold to stop search [pps]. Type: integer
+| | ... | - loss_acceptance - Accepted loss during search. Type: float
+| | ... | - loss_acceptance_type - Percentage or frames. Type: string
+| | ...
+| | ... | *Example:*
+| | ...
+| | ... | \| Find PDR using combined search and pps \| 64 \| 5000000 \
+| | ... | \| 100000 \| 3-node-IPv4 \| 100000 \| 14880952 \| 5000 \| 0.5 \
+| | ... | \| percentage \|
+| | ...
+| | [Arguments] | ${framesize} | ${start_rate} | ${step_rate}
+| | ... | ${topology_type} | ${min_rate} | ${max_rate} | ${threshold}
+| | ... | ${loss_acceptance}=0 | ${loss_acceptance_type}='frames'
+| | ...
+| | ${duration}= | Set Variable | ${perf_trial_duration}
+| | Set Duration | ${duration}
+| | Set Search Rate Boundaries | ${max_rate} | ${min_rate}
+| | Set Search Linear Step | ${step_rate}
+| | Set Search Frame Size | ${framesize}
+| | Set Search Rate Type pps
+| | Set Loss Acceptance | ${loss_acceptance}
+| | Run Keyword If | '${loss_acceptance_type}' == 'percentage'
+| | ... | Set Loss Acceptance Type Percentage
+| | Set Binary Convergence Threshold | ${threshold}
+| | Combined Search | ${start_rate} | ${topology_type}
+| | ${rate_per_stream} | ${lat}= | Verify Search Result
+| | ${tmp}= | Create List | 100%PDR | ${lat}
+| | ${latency}= | Create List | ${tmp}
+| | Display result of PDR search | ${rate_per_stream} | ${framesize} | 2
+| | ... | ${loss_acceptance} | ${loss_acceptance_type} | ${latency}
+| | Traffic should pass with partial loss | ${duration} | ${rate_per_stream}pps
+| | ... | ${framesize} | ${topology_type} | ${loss_acceptance}
+| | ... | ${loss_acceptance_type} | fail_on_loss=${False}
+
+| Display result of NDR search
+| | [Documentation]
+| | ... | Display result of NDR search in packet per seconds (total and per
+| | ... | stream) and Gbps total bandwidth with untagged packet.
+| | ... | Througput is calculated as:
+| | ... | Measured rate per stream * Total number of streams
+| | ... | Bandwidth is calculated as:
+| | ... | (Througput * (L2 Frame Size + IPG) * 8) / Max bitrate of NIC
+| | ...
+| | ... | *Arguments:*
+| | ... | - rate_per_stream - Measured rate per stream [pps]. Type: string
+| | ... | - framesize - L2 Frame Size [B]. Type: integer
+| | ... | - nr_streams - Total number of streams. Type: integer
+| | ... | - latency - Latency stats. Type: dictionary
+| | ...
+| | ... | *Example:*
+| | ...
+| | ... | \| Display result of NDR search \| 4400000 \| 64 \| 2 \
+| | ... | \| [100%NDR, [10/10/10, 1/2/3]] \|
+| | ...
+| | [Arguments] | ${rate_per_stream} | ${framesize} | ${nr_streams} | ${latency}
+| | ...
+| | ${framesize}= | Get Frame Size | ${framesize}
+| | ${rate_total}= | Evaluate | ${rate_per_stream}*${nr_streams}
+| | ${bandwidth_total}= | Evaluate | ${rate_total}*(${framesize}+20)*8/(10**9)
+| | Set Test Message | FINAL_RATE: ${rate_total} pps
+| | Set Test Message | (${nr_streams}x ${rate_per_stream} pps) | append=yes
+| | Set Test Message | ${\n}FINAL_BANDWIDTH: ${bandwidth_total} Gbps (untagged)
+| | ... | append=yes
+| | Set Test Message | ${\n}LATENCY usec [min/avg/max] | append=yes
+| | :FOR | ${lat} | IN | @{latency}
+| | | Set Test Message | ${\n}LAT_${lat[0]}: ${lat[1]} | append=yes
+
+| Display result of PDR search
+| | [Documentation]
+| | ... | Display result of PDR search in packet per seconds (total and per
+| | ... | stream) and Gbps total bandwidth with untagged packet.
+| | ... | Througput is calculated as:
+| | ... | Measured rate per stream * Total number of streams
+| | ... | Bandwidth is calculated as:
+| | ... | (Througput * (L2 Frame Size + IPG) * 8) / Max bitrate of NIC
+| | ...
+| | ... | *Arguments:*
+| | ... | - rate_per_stream - Measured rate per stream [pps]. Type: string
+| | ... | - framesize - L2 Frame Size [B]. Type: integer
+| | ... | - nr_streams - Total number of streams. Type: integer
+| | ... | - loss_acceptance - Accepted loss during search. Type: float
+| | ... | - loss_acceptance_type - Percentage or frames. Type: string
+| | ... | - latency - Latency stats. Type: dictionary
+| | ...
+| | ... | *Example:*
+| | ...
+| | ... | \| Display result of PDR search \| 4400000 \| 64 \| 2 \| 0.5 \
+| | ... | \| percentage \| [100%NDR, [10/10/10, 1/2/3]] \|
+| | ...
+| | [Arguments] | ${rate_per_stream} | ${framesize} | ${nr_streams}
+| | ... | ${loss_acceptance} | ${loss_acceptance_type} | ${latency}
+| | ...
+| | ${framesize}= | Get Frame Size | ${framesize}
+| | ${rate_total}= | Evaluate | ${rate_per_stream}*${nr_streams}
+| | ${bandwidth_total}= | Evaluate | ${rate_total}*(${framesize}+20)*8/(10**9)
+| | Set Test Message | FINAL_RATE: ${rate_total} pps
+| | Set Test Message | (${nr_streams}x ${rate_per_stream} pps) | append=yes
+| | Set Test Message | ${\n}FINAL_BANDWIDTH: ${bandwidth_total} Gbps (untagged)
+| | ... | append=yes
+| | Set Test Message | ${\n}LATENCY usec [min/avg/max] | append=yes
+| | :FOR | ${lat} | IN | @{latency}
+| | | Set Test Message | ${\n}LAT_${lat[0]}: ${lat[1]} | append=yes
+| | Set Test Message
+| | ... | ${\n}LOSS_ACCEPTANCE: ${loss_acceptance} ${loss_acceptance_type}
+| | ... | append=yes
+
+| Measure latency pps
+| | [Documentation]
+| | ... | Send traffic at specified rate. Measure min/avg/max latency
+| | ...
+| | ... | *Arguments:*
+| | ... | - duration - Duration of traffic run [s]. Type: integer
+| | ... | - rate - Rate for sending packets. Type: integer
+| | ... | - framesize - L2 Frame Size [B]. Type: integer
+| | ... | - topology_type - Topology type. Type: string
+| | ...
+| | ... | *Example:*
+| | ...
+| | ... | \| Measure latency \| 10 \| 4.0 \| 64 \| 3-node-IPv4 \|
+| | ...
+| | [Arguments] | ${duration} | ${rate} | ${framesize} | ${topology_type}
+| | ...
+| | Return From Keyword If | ${rate} <= 10000 | ${-1}
+| | ${ret}= | Is DPDK performance test
+| | Run Keyword If | ${ret}==${FALSE} | Clear all counters on all DUTs
+| | Send traffic on tg | ${duration} | ${rate}pps | ${framesize}
+| | ... | ${topology_type} | warmup_time=0
+| | Run Keyword If | ${ret}==${FALSE} | Show statistics on all DUTs
+| | Run keyword and return | Get latency
+
+| Traffic should pass with no loss
+| | [Documentation]
+| | ... | Send traffic at specified rate. No packet loss is accepted at loss
+| | ... | evaluation.
+| | ...
+| | ... | *Arguments:*
+| | ... | - duration - Duration of traffic run [s]. Type: integer
+| | ... | - rate - Rate for sending packets. Type: string
+| | ... | - framesize - L2 Frame Size [B]. Type: integer
+| | ... | - topology_type - Topology type. Type: string
+| | ... | - fail_on_loss - If True, the keyword fails if loss occurred.
+| | ... | Type: boolean
+| | ...
+| | ... | *Example:*
+| | ...
+| | ... | \| Traffic should pass with no loss \| 10 \| 4.0mpps \| 64 \
+| | ... | \| 3-node-IPv4 \|
+| | ...
+| | [Arguments] | ${duration} | ${rate} | ${framesize} | ${topology_type}
+| | ... | ${fail_on_loss}=${True}
+| | ...
+| | Clear and show runtime counters with running traffic | ${duration}
+| | ... | ${rate} | ${framesize} | ${topology_type}
+| | ${ret}= | Is DPDK performance test
+| | Run Keyword If | ${ret}==${FALSE} | Clear all counters on all DUTs
+| | Send traffic on tg | ${duration} | ${rate} | ${framesize}
+| | ... | ${topology_type} | warmup_time=0
+| | Run Keyword If | ${ret}==${FALSE} | Show statistics on all DUTs
+| | Run Keyword If | ${fail_on_loss} | No traffic loss occurred
+
+| Traffic should pass with partial loss
+| | [Documentation]
+| | ... | Send traffic at specified rate. Partial packet loss is accepted
+| | ... | within loss acceptance value specified as argument.
+| | ...
+| | ... | *Arguments:*
+| | ... | - duration - Duration of traffic run [s]. Type: integer
+| | ... | - rate - Rate for sending packets. Type: string
+| | ... | - framesize - L2 Frame Size [B]. Type: integer
+| | ... | - topology_type - Topology type. Type: string
+| | ... | - loss_acceptance - Accepted loss during search. Type: float
+| | ... | - loss_acceptance_type - Percentage or frames. Type: string
+| | ...
+| | ... | *Example:*
+| | ...
+| | ... | \| Traffic should pass with partial loss \| 10 \| 4.0mpps \| 64 \
+| | ... | \| 3-node-IPv4 \| 0.5 \| percentage \|
+| | ...
+| | [Arguments] | ${duration} | ${rate} | ${framesize} | ${topology_type}
+| | ... | ${loss_acceptance} | ${loss_acceptance_type}
+| | ... | ${fail_on_loss}=${True}
+| | ...
+| | Clear and show runtime counters with running traffic | ${duration}
+| | ... | ${rate} | ${framesize} | ${topology_type}
+| | ${ret}= | Is DPDK performance test
+| | Run Keyword If | ${ret}==${FALSE} | Clear all counters on all DUTs
+| | Send traffic on tg | ${duration} | ${rate} | ${framesize}
+| | ... | ${topology_type} | warmup_time=0
+| | Run Keyword If | ${ret}==${FALSE} | Show statistics on all DUTs
+| | Run Keyword If | ${fail_on_loss} | Partial traffic loss accepted
+| | ... | ${loss_acceptance} | ${loss_acceptance_type}
+
+| Clear and show runtime counters with running traffic
+| | [Documentation]
+| | ... | Start traffic at specified rate then clear runtime counters on all
+| | ... | DUTs. Wait for specified amount of time and capture runtime counters
+| | ... | on all DUTs. Finally stop traffic
+| | ...
+| | ... | *Arguments:*
+| | ... | - duration - Duration of traffic run [s]. Type: integer
+| | ... | - rate - Rate for sending packets. Type: string
+| | ... | - framesize - L2 Frame Size [B]. Type: integer
+| | ... | - topology_type - Topology type. Type: string
+| | ...
+| | ... | *Example:*
+| | ...
+| | ... | \| Traffic should pass with partial loss \| 10 \| 4.0mpps \| 64 \
+| | ... | \| 3-node-IPv4 \| 0.5 \| percentage \|
+| | ...
+| | [Arguments] | ${duration} | ${rate} | ${framesize} | ${topology_type}
+| | ...
+| | Send traffic on tg | -1 | ${rate} | ${framesize} | ${topology_type}
+| | ... | warmup_time=0 | async_call=${True} | latency=${False}
+| | ${ret}= | Is DPDK performance test
+| | Run Keyword If | ${ret}==${FALSE} | Clear runtime counters on all DUTs
+| | Sleep | ${duration}
+| | Run Keyword If | ${ret}==${FALSE} | Show runtime counters on all DUTs
+| | Stop traffic on tg
index 1c36876..7f025ba 100644 (file)
@@ -12,7 +12,7 @@
 # limitations under the License.
 
 *** Settings ***
-| Resource | resources/libraries/robot/performance.robot
+| Resource | resources/libraries/robot/performance_setup.robot
 | ...
 | Force Tags | 3_NODE_SINGLE_LINK_TOPO | PERFTEST | HW_ENV | NDRPDRDISC
 | ... | NIC_Cisco-VIC-1227 | ETH | L2BDMACLRN | BASE
index c61b165..9f378fa 100644 (file)
@@ -12,7 +12,7 @@
 # limitations under the License.
 
 *** Settings ***
-| Resource | resources/libraries/robot/performance.robot
+| Resource | resources/libraries/robot/performance_setup.robot
 | Resource | resources/libraries/robot/tagging.robot
 | ...
 | Force Tags | 3_NODE_SINGLE_LINK_TOPO | PERFTEST | HW_ENV | NDRCHK
index a3e5184..6122de9 100644 (file)
@@ -12,7 +12,7 @@
 # limitations under the License.
 
 *** Settings ***
-| Resource | resources/libraries/robot/performance.robot
+| Resource | resources/libraries/robot/performance_setup.robot
 | Resource | resources/libraries/robot/tagging.robot
 | ...
 | Force Tags | 3_NODE_SINGLE_LINK_TOPO | PERFTEST | HW_ENV | NDRPDRDISC
index c1590da..084be2d 100644 (file)
@@ -12,7 +12,7 @@
 # limitations under the License.
 
 *** Settings ***
-| Resource | resources/libraries/robot/performance.robot
+| Resource | resources/libraries/robot/performance_setup.robot
 | Library | resources.libraries.python.QemuUtils
 | ...
 | Force Tags | 3_NODE_SINGLE_LINK_TOPO | PERFTEST | HW_ENV | NDRPDRDISC
index 250685a..1ff0708 100644 (file)
@@ -12,7 +12,7 @@
 # limitations under the License.
 
 *** Settings ***
-| Resource | resources/libraries/robot/performance.robot
+| Resource | resources/libraries/robot/performance_setup.robot
 | Library | resources.libraries.python.NodePath
 | ...
 | Force Tags | 3_NODE_SINGLE_LINK_TOPO | PERFTEST | HW_ENV | NDRPDRDISC
index c0c310d..a38bff6 100644 (file)
@@ -12,7 +12,7 @@
 # limitations under the License.
 
 *** Settings ***
-| Resource | resources/libraries/robot/performance.robot
+| Resource | resources/libraries/robot/performance_setup.robot
 | Resource | resources/libraries/robot/tagging.robot
 | ...
 | Force Tags | 3_NODE_SINGLE_LINK_TOPO | PERFTEST | HW_ENV | NDRCHK
index d1ff120..d99d772 100644 (file)
@@ -12,7 +12,7 @@
 # limitations under the License.
 
 *** Settings ***
-| Resource | resources/libraries/robot/performance.robot
+| Resource | resources/libraries/robot/performance_setup.robot
 | Resource | resources/libraries/robot/tagging.robot
 | ...
 | Force Tags | 3_NODE_SINGLE_LINK_TOPO | PERFTEST | HW_ENV | NDRPDRDISC
index da41944..494bebf 100644 (file)
@@ -12,7 +12,7 @@
 # limitations under the License.
 
 *** Settings ***
-| Resource | resources/libraries/robot/performance.robot
+| Resource | resources/libraries/robot/performance_setup.robot
 | Library | resources.libraries.python.QemuUtils
 | ...
 | Force Tags | 3_NODE_SINGLE_LINK_TOPO | PERFTEST | HW_ENV | NDRPDRDISC
index 4edbcc1..de06640 100644 (file)
 # limitations under the License.
 
 *** Settings ***
-| Resource | resources/libraries/robot/performance.robot
+| Resource | resources/libraries/robot/performance_setup.robot
 | Library | resources.libraries.python.QemuUtils
 | Force Tags | 3_NODE_SINGLE_LINK_TOPO | PERFTEST | HW_ENV | NDRPDRDISC
 | ... | NIC_Intel-X520-DA2 | ETH | L2BDMACLRN | BASE | VHOST | VM
 | Suite Setup | Set up 3-node performance topology with DUT's NIC model
 | ... | L2 | Intel-X520-DA2
 | Suite Teardown | Tear down 3-node performance topology
-| Test Setup | Configure all DUTs before test
+| Test Setup | Set up performance test
 | Test Teardown | Run Keywords
 | ... | Show Bridge Domain Data On All DUTs
 | ... | AND | Tear down performance test with vhost and VM with dpdk-testpmd
index 9b4e66c..7cd0fc6 100644 (file)
@@ -12,7 +12,7 @@
 # limitations under the License.
 
 *** Settings ***
-| Resource | resources/libraries/robot/performance.robot
+| Resource | resources/libraries/robot/performance_setup.robot
 | Library | resources.libraries.python.NodePath
 | ...
 | Force Tags | 3_NODE_SINGLE_LINK_TOPO | PERFTEST | HW_ENV | NDRCHK
index bd75266..c8410b1 100644 (file)
@@ -12,7 +12,7 @@
 # limitations under the License.
 
 *** Settings ***
-| Resource | resources/libraries/robot/performance.robot
+| Resource | resources/libraries/robot/performance_setup.robot
 | ...
 | Force Tags | 3_NODE_SINGLE_LINK_TOPO | PERFTEST | HW_ENV | NDRPDRDISC
 | ... | NIC_Intel-X520-DA2 | ETH | L2BDMACLRN | BASE | L2BDBASE
index 1b5a8be..abfa271 100644 (file)
@@ -12,7 +12,7 @@
 # limitations under the License.
 
 *** Settings ***
-| Resource | resources/libraries/robot/performance.robot
+| Resource | resources/libraries/robot/performance_setup.robot
 | Library | resources.libraries.python.NodePath
 | ...
 | Force Tags | 3_NODE_SINGLE_LINK_TOPO | PERFTEST | HW_ENV | PDRCHK
@@ -23,7 +23,7 @@
 | Suite Teardown | Tear down 3-node performance topology
 | ...
 | Test Setup | Set up performance test
-| Test Teardown | Performance pdrchk test teardown
+| Test Teardown | Tear down performance pdrchk test
 | ...
 | Documentation | *Reference PDR throughput L2BD verify test cases*
 | ...
index 66b0947..91d8f4a 100644 (file)
@@ -12,7 +12,7 @@
 # limitations under the License.
 
 *** Settings ***
-| Resource | resources/libraries/robot/performance.robot
+| Resource | resources/libraries/robot/performance_setup.robot
 | Library | resources.libraries.python.NodePath
 | ...
 | Force Tags | 3_NODE_SINGLE_LINK_TOPO | PERFTEST | HW_ENV | NDRPDRDISC
index e6c9cca..2aa6372 100644 (file)
@@ -12,7 +12,7 @@
 # limitations under the License.
 
 *** Settings ***
-| Resource | resources/libraries/robot/performance.robot
+| Resource | resources/libraries/robot/performance_setup.robot
 | Library | resources.libraries.python.NodePath
 | ...
 | Force Tags | 3_NODE_SINGLE_LINK_TOPO | PERFTEST | HW_ENV | NDRPDRDISC
index 7f90967..451a319 100644 (file)
@@ -12,7 +12,7 @@
 # limitations under the License.
 
 *** Settings ***
-| Resource | resources/libraries/robot/performance.robot
+| Resource | resources/libraries/robot/performance_setup.robot
 | Library | resources.libraries.python.InterfaceUtil
 | Library | resources.libraries.python.NodePath
 | ...
index 51bf909..13f7b12 100644 (file)
@@ -12,7 +12,7 @@
 # limitations under the License.
 
 *** Settings ***
-| Resource | resources/libraries/robot/performance.robot
+| Resource | resources/libraries/robot/performance_setup.robot
 | Library | resources.libraries.python.InterfaceUtil
 | Library | resources.libraries.python.NodePath
 | ...
 | | ${binary_max}= | Set Variable | ${max_rate}
 | | ${threshold}= | Set Variable | ${min_rate}
 | | Given Add '1' worker threads and '1' rxqueues in 3-node single-link circular topology
-| | And Add all PCI devices to all DUTs
+| | And Add PCI devices to DUTs in 3-node single link topology
 | | And Add no multi seg to all DUTs
 | | And Apply startup configuration on all VPP DUTs
 | | And Initialize L2 xconnect in 3-node circular topology
 | | ${binary_max}= | Set Variable | ${max_rate}
 | | ${threshold}= | Set Variable | ${min_rate}
 | | Given Add '1' worker threads and '1' rxqueues in 3-node single-link circular topology
-| | And Add all PCI devices to all DUTs
+| | And Add PCI devices to DUTs in 3-node single link topology
 | | And Add no multi seg to all DUTs
 | | And Apply startup configuration on all VPP DUTs
 | | And Initialize L2 xconnect in 3-node circular topology
index 39f70ec..446fc23 100644 (file)
@@ -12,7 +12,7 @@
 # limitations under the License.
 
 *** Settings ***
-| Resource | resources/libraries/robot/performance.robot
+| Resource | resources/libraries/robot/performance_setup.robot
 | Library | resources.libraries.python.InterfaceUtil
 | Library | resources.libraries.python.NodePath
 | ...
@@ -24,7 +24,7 @@
 | Suite Teardown | Tear down 3-node performance topology
 | ...
 | Test Setup | Set up performance test
-| Test Teardown | Performance pdrchk test teardown
+| Test Teardown | Tear down performance pdrchk test
 | ...
 | Documentation | *Reference PDR throughput L2XC verify test cases*
 | ...
index 3152a38..f7952bd 100644 (file)
@@ -12,7 +12,7 @@
 # limitations under the License.
 
 *** Settings ***
-| Resource | resources/libraries/robot/performance.robot
+| Resource | resources/libraries/robot/performance_setup.robot
 | Library | resources.libraries.python.Cop
 | Library | resources.libraries.python.IPv4Setup.Dut | ${nodes['DUT1']}
 | ... | WITH NAME | dut1_v4
index 1a994fb..85633d9 100644 (file)
@@ -12,7 +12,7 @@
 # limitations under the License.
 
 *** Settings ***
-| Resource | resources/libraries/robot/performance.robot
+| Resource | resources/libraries/robot/performance_setup.robot
 | Library | resources.libraries.python.Cop
 | Library | resources.libraries.python.IPv4Setup.Dut | ${nodes['DUT1']}
 | ... | WITH NAME | dut1_v4
index 6feb742..1fe7806 100644 (file)
@@ -12,7 +12,7 @@
 # limitations under the License.
 
 *** Settings ***
-| Resource | resources/libraries/robot/performance.robot
+| Resource | resources/libraries/robot/performance_setup.robot
 | Library | resources.libraries.python.QemuUtils
 | ...
 | Force Tags | 3_NODE_SINGLE_LINK_TOPO | PERFTEST | HW_ENV | NDRPDRDISC
index 1917d68..d2604cf 100644 (file)
@@ -12,7 +12,7 @@
 # limitations under the License.
 
 *** Settings ***
-| Resource | resources/libraries/robot/performance.robot
+| Resource | resources/libraries/robot/performance_setup.robot
 | Library | resources.libraries.python.QemuUtils
 | ...
 | Force Tags | 3_NODE_SINGLE_LINK_TOPO | PERFTEST | HW_ENV | NDRPDRDISC
index e816298..f7bb198 100644 (file)
@@ -12,7 +12,7 @@
 # limitations under the License.
 
 *** Settings ***
-| Resource | resources/libraries/robot/performance.robot
+| Resource | resources/libraries/robot/performance_setup.robot
 | Library | resources.libraries.python.Classify.Classify
 | Library | resources.libraries.python.IPv4Setup.Dut | ${nodes['DUT1']}
 | ... | WITH NAME | dut1_v4
index d7651a9..3f2a066 100644 (file)
@@ -12,7 +12,7 @@
 # limitations under the License.
 
 *** Settings ***
-| Resource | resources/libraries/robot/performance.robot
+| Resource | resources/libraries/robot/performance_setup.robot
 | Library | resources.libraries.python.Classify.Classify
 | Library | resources.libraries.python.IPv4Setup.Dut | ${nodes['DUT1']}
 | ... | WITH NAME | dut1_v4
index 788b2b6..0ab5751 100644 (file)
@@ -12,7 +12,7 @@
 # limitations under the License.
 
 *** Settings ***
-| Resource | resources/libraries/robot/performance.robot
+| Resource | resources/libraries/robot/performance_setup.robot
 | Library | resources.libraries.python.Policer
 | Library | resources.libraries.python.IPv4Setup.Dut | ${nodes['DUT1']}
 | ... | WITH NAME | dut1_v4
index e27fb96..b8a5b87 100644 (file)
@@ -12,7 +12,7 @@
 # limitations under the License.
 
 *** Settings ***
-| Resource | resources/libraries/robot/performance.robot
+| Resource | resources/libraries/robot/performance_setup.robot
 | Library | resources.libraries.python.Policer
 | Library | resources.libraries.python.IPv4Setup.Dut | ${nodes['DUT1']}
 | ... | WITH NAME | dut1_v4
index 6fff5e4..0c48286 100644 (file)
@@ -12,7 +12,7 @@
 # limitations under the License.
 
 *** Settings ***
-| Resource | resources/libraries/robot/performance.robot
+| Resource | resources/libraries/robot/performance_setup.robot
 | Library | resources.libraries.python.topology.Topology
 | Library | resources.libraries.python.NodePath
 | Library | resources.libraries.python.InterfaceUtil
index a3d65b9..ab038fd 100644 (file)
@@ -12,7 +12,7 @@
 # limitations under the License.
 
 *** Settings ***
-| Resource | resources/libraries/robot/performance.robot
+| Resource | resources/libraries/robot/performance_setup.robot
 | Library | resources.libraries.python.topology.Topology
 | Library | resources.libraries.python.NodePath
 | Library | resources.libraries.python.InterfaceUtil
 | | ${binary_max}= | Set Variable | ${max_rate}
 | | ${threshold}= | Set Variable | ${min_rate}
 | | Given Add '1' worker threads and '1' rxqueues in 3-node single-link circular topology
-| | And Add all PCI devices to all DUTs
+| | And Add PCI devices to DUTs in 3-node single link topology
 | | And Add no multi seg to all DUTs
 | | And Apply startup configuration on all VPP DUTs
 | | And Initialize IPv4 forwarding in 3-node circular topology
 | | ${binary_max}= | Set Variable | ${max_rate}
 | | ${threshold}= | Set Variable | ${min_rate}
 | | Given Add '1' worker threads and '1' rxqueues in 3-node single-link circular topology
-| | And Add all PCI devices to all DUTs
+| | And Add PCI devices to DUTs in 3-node single link topology
 | | And Add no multi seg to all DUTs
 | | And Apply startup configuration on all VPP DUTs
 | | And Initialize IPv4 forwarding in 3-node circular topology
index ae72408..844d0f9 100644 (file)
@@ -12,7 +12,7 @@
 # limitations under the License.
 
 *** Settings ***
-| Resource | resources/libraries/robot/performance.robot
+| Resource | resources/libraries/robot/performance_setup.robot
 | Library | resources.libraries.python.topology.Topology
 | Library | resources.libraries.python.NodePath
 | Library | resources.libraries.python.InterfaceUtil
@@ -29,7 +29,7 @@
 | Suite Teardown | Tear down 3-node performance topology
 | ...
 | Test Setup | Set up performance test
-| Test Teardown | Performance pdrchk test teardown
+| Test Teardown | Tear down performance pdrchk test
 | ...
 | Documentation | *Reference PDR throughput IPv4 routing verify test cases*
 | ...
index a331703..f8cf8c1 100644 (file)
@@ -12,7 +12,7 @@
 # limitations under the License.
 
 *** Settings ***
-| Resource | resources/libraries/robot/performance.robot
+| Resource | resources/libraries/robot/performance_setup.robot
 | Resource | resources/libraries/robot/snat.robot
 | Resource | resources/libraries/robot/traffic.robot
 | ...
index 3973d82..69d60d0 100644 (file)
@@ -12,7 +12,7 @@
 # limitations under the License.
 
 *** Settings ***
-| Resource | resources/libraries/robot/performance.robot
+| Resource | resources/libraries/robot/performance_setup.robot
 | ...
 | Force Tags | 3_NODE_SINGLE_LINK_TOPO | PERFTEST | HW_ENV | NDRCHK
 | ... | NIC_Intel-X520-DA2 | ETH | IP4FWD | SCALE | FIB_200K
index cb194b3..9d97f62 100644 (file)
@@ -12,7 +12,7 @@
 # limitations under the License.
 
 *** Settings ***
-| Resource | resources/libraries/robot/performance.robot
+| Resource | resources/libraries/robot/performance_setup.robot
 | ...
 | Force Tags | 3_NODE_SINGLE_LINK_TOPO | PERFTEST | HW_ENV | NDRPDRDISC
 | ... | NIC_Intel-X520-DA2 | ETH | IP4FWD | SCALE | FIB_200K
index e354ed8..f9fc2f1 100644 (file)
@@ -12,7 +12,7 @@
 # limitations under the License.
 
 *** Settings ***
-| Resource | resources/libraries/robot/performance.robot
+| Resource | resources/libraries/robot/performance_setup.robot
 | ...
 | Force Tags | 3_NODE_SINGLE_LINK_TOPO | PERFTEST | HW_ENV | NDRCHK
 | ... | NIC_Intel-X520-DA2 | ETH | IP4FWD | SCALE | FIB_20K
index 80587a8..0117fb4 100644 (file)
@@ -12,7 +12,7 @@
 # limitations under the License.
 
 *** Settings ***
-| Resource | resources/libraries/robot/performance.robot
+| Resource | resources/libraries/robot/performance_setup.robot
 | ...
 | Force Tags | 3_NODE_SINGLE_LINK_TOPO | PERFTEST | HW_ENV | NDRPDRDISC
 | ... | NIC_Intel-X520-DA2 | ETH | IP4FWD | SCALE | FIB_20K
index 33f646b..b1ea5ed 100644 (file)
@@ -12,7 +12,7 @@
 # limitations under the License.
 
 *** Settings ***
-| Resource | resources/libraries/robot/performance.robot
+| Resource | resources/libraries/robot/performance_setup.robot
 | ...
 | Force Tags | 3_NODE_SINGLE_LINK_TOPO | PERFTEST | HW_ENV | NDRCHK
 | ... | NIC_Intel-X520-DA2 | ETH | IP4FWD | SCALE | FIB_2M
index de6ec65..c397d82 100644 (file)
@@ -12,7 +12,7 @@
 # limitations under the License.
 
 *** Settings ***
-| Resource | resources/libraries/robot/performance.robot
+| Resource | resources/libraries/robot/performance_setup.robot
 | ...
 | Force Tags | 3_NODE_SINGLE_LINK_TOPO | PERFTEST | HW_ENV | NDRPDRDISC
 | ... | NIC_Intel-X520-DA2 | ETH | IP4FWD | SCALE | FIB_2M
index 540c1c6..82002a0 100644 (file)
@@ -12,7 +12,7 @@
 # limitations under the License.
 
 *** Settings ***
-| Resource | resources/libraries/robot/performance.robot
+| Resource | resources/libraries/robot/performance_setup.robot
 | Resource | resources/libraries/robot/lisp/lisp_static_adjacency.robot
 | Variables | resources/test_data/lisp/performance/lisp_static_adjacency.py
 | ...
index 63cca31..715ed21 100644 (file)
@@ -12,7 +12,7 @@
 # limitations under the License.
 
 *** Settings ***
-| Resource | resources/libraries/robot/performance.robot
+| Resource | resources/libraries/robot/performance_setup.robot
 | Resource | resources/libraries/robot/lisp/lisp_static_adjacency.robot
 | Variables | resources/test_data/lisp/performance/lisp_static_adjacency.py
 | ...
index 1971129..eba7f6c 100644 (file)
@@ -12,7 +12,7 @@
 # limitations under the License.
 
 *** Settings ***
-| Resource | resources/libraries/robot/performance.robot
+| Resource | resources/libraries/robot/performance_setup.robot
 | Resource | resources/libraries/robot/lisp/lisp_static_adjacency.robot
 | Variables | resources/test_data/lisp/performance/lisp_static_adjacency.py
 | ...
@@ -24,7 +24,7 @@
 | Suite Teardown | Tear down 3-node performance topology
 | ...
 | Test Setup | Set up performance test
-| Test Teardown | Performance pdrchk test teardown
+| Test Teardown | Tear down performance pdrchk test
 | ...
 | Documentation | *Reference PDR throughput Lisp tunnel verify test cases*
 | ...
index a60f7c8..aee159f 100644 (file)
@@ -12,7 +12,7 @@
 # limitations under the License.
 
 *** Settings ***
-| Resource | resources/libraries/robot/performance.robot
+| Resource | resources/libraries/robot/performance_setup.robot
 | Resource | resources/libraries/robot/lisp/lisp_static_adjacency.robot
 | Variables | resources/test_data/lisp/performance/lisp_static_adjacency.py
 | ...
index 6ac7b1d..356750a 100644 (file)
@@ -12,7 +12,7 @@
 # limitations under the License.
 
 *** Settings ***
-| Resource | resources/libraries/robot/performance.robot
+| Resource | resources/libraries/robot/performance_setup.robot
 | Resource | resources/libraries/robot/lisp/lisp_static_adjacency.robot
 | Variables | resources/test_data/lisp/performance/lisp_static_adjacency.py
 | ...
index 2d6a5e3..9efa28b 100644 (file)
@@ -12,7 +12,7 @@
 # limitations under the License.
 
 *** Settings ***
-| Resource | resources/libraries/robot/performance.robot
+| Resource | resources/libraries/robot/performance_setup.robot
 | Resource | resources/libraries/robot/lisp/lisp_static_adjacency.robot
 | Variables | resources/test_data/lisp/performance/lisp_static_adjacency.py
 | ...
@@ -24,7 +24,7 @@
 | Suite Teardown | Tear down 3-node performance topology
 | ...
 | Test Setup | Set up performance test
-| Test Teardown | Performance pdrchk test teardown
+| Test Teardown | Tear down performance pdrchk test
 | ...
 | Documentation | *Reference PDR throughput Lisp tunnel verify test cases*
 | ...
index 303faa7..a4533d6 100644 (file)
@@ -12,7 +12,7 @@
 # limitations under the License.
 
 *** Settings ***
-| Resource | resources/libraries/robot/performance.robot
+| Resource | resources/libraries/robot/performance_setup.robot
 | Resource | resources/libraries/robot/snat.robot
 | Resource | resources/libraries/robot/traffic.robot
 | ...
index e6d19e8..6a6157c 100644 (file)
@@ -12,7 +12,7 @@
 # limitations under the License.
 
 *** Settings ***
-| Resource | resources/libraries/robot/performance.robot
+| Resource | resources/libraries/robot/performance_setup.robot
 | Resource | resources/libraries/robot/snat.robot
 | Resource | resources/libraries/robot/traffic.robot
 | ...
index f50edfc..b01168f 100644 (file)
@@ -12,7 +12,7 @@
 # limitations under the License.
 
 *** Settings ***
-| Resource | resources/libraries/robot/performance.robot
+| Resource | resources/libraries/robot/performance_setup.robot
 | Resource | resources/libraries/robot/snat.robot
 | Resource | resources/libraries/robot/traffic.robot
 | ...
index 8a83963..fda5a15 100644 (file)
@@ -12,7 +12,7 @@
 # limitations under the License.
 
 *** Settings ***
-| Resource | resources/libraries/robot/performance.robot
+| Resource | resources/libraries/robot/performance_setup.robot
 | Resource | resources/libraries/robot/snat.robot
 | Resource | resources/libraries/robot/traffic.robot
 | ...
index d184682..3e26427 100644 (file)
@@ -12,7 +12,7 @@
 # limitations under the License.
 
 *** Settings ***
-| Resource | resources/libraries/robot/performance.robot
+| Resource | resources/libraries/robot/performance_setup.robot
 | Resource | resources/libraries/robot/snat.robot
 | Resource | resources/libraries/robot/traffic.robot
 | ...
index 82fa187..3debd2a 100644 (file)
@@ -12,7 +12,7 @@
 # limitations under the License.
 
 *** Settings ***
-| Resource | resources/libraries/robot/performance.robot
+| Resource | resources/libraries/robot/performance_setup.robot
 | Resource | resources/libraries/robot/snat.robot
 | Resource | resources/libraries/robot/traffic.robot
 | ...
index ea26c60..49db34e 100644 (file)
@@ -12,7 +12,7 @@
 # limitations under the License.
 
 *** Settings ***
-| Resource | resources/libraries/robot/performance.robot
+| Resource | resources/libraries/robot/performance_setup.robot
 | Library | resources.libraries.python.QemuUtils
 | ...
 | Force Tags | 3_NODE_SINGLE_LINK_TOPO | PERFTEST | HW_ENV | NDRPDRDISC
index c4cf83d..06d8ef9 100644 (file)
@@ -12,7 +12,7 @@
 # limitations under the License.
 
 *** Settings ***
-| Resource | resources/libraries/robot/performance.robot
+| Resource | resources/libraries/robot/performance_setup.robot
 | ...
 | Force Tags | 3_NODE_SINGLE_LINK_TOPO | PERFTEST | HW_ENV | NDRPDRDISC
 | ... | NIC_Intel-X520-DA2 | L2BDMACLRN | ENCAP | VXLAN | L2OVRLAY | IP4UNRLAY
index 5399cff..999231d 100644 (file)
@@ -12,7 +12,7 @@
 # limitations under the License.
 
 *** Settings ***
-| Resource | resources/libraries/robot/performance.robot
+| Resource | resources/libraries/robot/performance_setup.robot
 | ...
 | Force Tags | 3_NODE_SINGLE_LINK_TOPO | PERFTEST | HW_ENV | NDRCHK
 | ... | NIC_Intel-X520-DA2 | L2XCFWD | ENCAP | VXLAN | L2OVRLAY | IP4UNRLAY
index 187c510..db9d1a6 100644 (file)
@@ -12,7 +12,7 @@
 # limitations under the License.
 
 *** Settings ***
-| Resource | resources/libraries/robot/performance.robot
+| Resource | resources/libraries/robot/performance_setup.robot
 | ...
 | Force Tags | 3_NODE_SINGLE_LINK_TOPO | PERFTEST | HW_ENV | NDRPDRDISC
 | ... | NIC_Intel-X520-DA2 | L2XCFWD | ENCAP | VXLAN | L2OVRLAY | IP4UNRLAY
index e0a612b..8d8eb09 100644 (file)
@@ -12,7 +12,7 @@
 # limitations under the License.
 
 *** Settings ***
-| Resource | resources/libraries/robot/performance.robot
+| Resource | resources/libraries/robot/performance_setup.robot
 | ...
 | Force Tags | 3_NODE_SINGLE_LINK_TOPO | PERFTEST | HW_ENV | PDRCHK
 | ... | NIC_Intel-X520-DA2 | L2XCFWD | ENCAP | VXLAN | L2OVRLAY | IP4UNRLAY
@@ -22,7 +22,7 @@
 | Suite Teardown | Tear down 3-node performance topology
 | ...
 | Test Setup | Set up performance test
-| Test Teardown | Performance pdrchk test teardown
+| Test Teardown | Tear down performance pdrchk test
 | ...
 | Documentation | *Reference PDR throughput L2XC with VXLANoIPv4 verify test\
 | ... |  cases*
index d734f9d..0dcb36f 100644 (file)
@@ -12,7 +12,7 @@
 # limitations under the License.
 
 *** Settings ***
-| Resource | resources/libraries/robot/performance.robot
+| Resource | resources/libraries/robot/performance_setup.robot
 | Library | resources.libraries.python.Cop
 | ...
 | Force Tags | 3_NODE_SINGLE_LINK_TOPO | PERFTEST | HW_ENV | NDRCHK
index c85a1ce..fa58795 100644 (file)
@@ -12,7 +12,7 @@
 # limitations under the License.
 
 *** Settings ***
-| Resource | resources/libraries/robot/performance.robot
+| Resource | resources/libraries/robot/performance_setup.robot
 | Library | resources.libraries.python.Cop
 | ...
 | Force Tags | 3_NODE_SINGLE_LINK_TOPO | PERFTEST | HW_ENV | NDRPDRDISC
index dddb42d..49d3d3b 100644 (file)
@@ -12,7 +12,7 @@
 # limitations under the License.
 
 *** Settings ***
-| Resource | resources/libraries/robot/performance.robot
+| Resource | resources/libraries/robot/performance_setup.robot
 | Library | resources.libraries.python.Classify.Classify
 | ...
 | Force Tags | 3_NODE_SINGLE_LINK_TOPO | PERFTEST | HW_ENV | NDRCHK
index b00e8bf..1af04c2 100644 (file)
@@ -12,7 +12,7 @@
 # limitations under the License.
 
 *** Settings ***
-| Resource | resources/libraries/robot/performance.robot
+| Resource | resources/libraries/robot/performance_setup.robot
 | Library | resources.libraries.python.Classify.Classify
 | ...
 | Force Tags | 3_NODE_SINGLE_LINK_TOPO | PERFTEST | HW_ENV | NDRPDRDISC
index 57b6e94..67a1b21 100644 (file)
@@ -12,7 +12,7 @@
 # limitations under the License.
 
 *** Settings ***
-| Resource | resources/libraries/robot/performance.robot
+| Resource | resources/libraries/robot/performance_setup.robot
 | ...
 | Force Tags | 3_NODE_SINGLE_LINK_TOPO | PERFTEST | HW_ENV | NDRCHK
 | ... | NIC_Intel-X520-DA2 | ETH | IP6FWD | BASE | IP6BASE
index 66057a8..99d699c 100644 (file)
@@ -12,7 +12,7 @@
 # limitations under the License.
 
 *** Settings ***
-| Resource | resources/libraries/robot/performance.robot
+| Resource | resources/libraries/robot/performance_setup.robot
 | ...
 | Force Tags | 3_NODE_SINGLE_LINK_TOPO | PERFTEST | HW_ENV | NDRPDRDISC
 | ... | NIC_Intel-X520-DA2 | ETH | IP6FWD | BASE | IP6BASE
index 26e4171..3fdab0f 100644 (file)
@@ -12,7 +12,7 @@
 # limitations under the License.
 
 *** Settings ***
-| Resource | resources/libraries/robot/performance.robot
+| Resource | resources/libraries/robot/performance_setup.robot
 | ...
 | Force Tags | 3_NODE_SINGLE_LINK_TOPO | PERFTEST | HW_ENV | PDRCHK
 | ... | NIC_Intel-X520-DA2 | ETH | IP6FWD | BASE | IP6BASE
@@ -22,7 +22,7 @@
 | Suite Teardown | Tear down 3-node performance topology
 | ...
 | Test Setup | Set up performance test
-| Test Teardown | Performance pdrchk test teardown
+| Test Teardown | Tear down performance pdrchk test
 | ...
 | Documentation | *Reference PDR throughput IPv6 routing verify test cases*
 | ...
index d9249ab..d844bb0 100644 (file)
@@ -12,7 +12,7 @@
 # limitations under the License.
 
 *** Settings ***
-| Resource | resources/libraries/robot/performance.robot
+| Resource | resources/libraries/robot/performance_setup.robot
 | ...
 | Force Tags | 3_NODE_SINGLE_LINK_TOPO | PERFTEST | HW_ENV | NDRCHK
 | ... | NIC_Intel-X520-DA2 | ETH | IP6FWD | SCALE | FIB_200K
index 47afeb9..6b2235c 100644 (file)
@@ -12,7 +12,7 @@
 # limitations under the License.
 
 *** Settings ***
-| Resource | resources/libraries/robot/performance.robot
+| Resource | resources/libraries/robot/performance_setup.robot
 | ...
 | Force Tags | 3_NODE_SINGLE_LINK_TOPO | PERFTEST | HW_ENV | NDRPDRDISC
 | ... | NIC_Intel-X520-DA2 | ETH | IP6FWD | SCALE | FIB_200K
index 239dc95..2d8ee7c 100644 (file)
@@ -12,7 +12,7 @@
 # limitations under the License.
 
 *** Settings ***
-| Resource | resources/libraries/robot/performance.robot
+| Resource | resources/libraries/robot/performance_setup.robot
 | ...
 | Force Tags | 3_NODE_SINGLE_LINK_TOPO | PERFTEST | HW_ENV | NDRCHK
 | ... | NIC_Intel-X520-DA2 | ETH | IP6FWD | SCALE | FIB_20K
index 07a4281..b685e8a 100644 (file)
@@ -12,7 +12,7 @@
 # limitations under the License.
 
 *** Settings ***
-| Resource | resources/libraries/robot/performance.robot
+| Resource | resources/libraries/robot/performance_setup.robot
 | ...
 | Force Tags | 3_NODE_SINGLE_LINK_TOPO | PERFTEST | HW_ENV | NDRPDRDISC
 | ... | NIC_Intel-X520-DA2 | ETH | IP6FWD | SCALE | FIB_20K
index c3a5f7a..4aa9caa 100644 (file)
@@ -12,7 +12,7 @@
 # limitations under the License.
 
 *** Settings ***
-| Resource | resources/libraries/robot/performance.robot
+| Resource | resources/libraries/robot/performance_setup.robot
 | ...
 | Force Tags | 3_NODE_SINGLE_LINK_TOPO | PERFTEST | HW_ENV | NDRCHK
 | ... | NIC_Intel-X520-DA2 | ETH | IP6FWD | SCALE | FIB_2M
index 2ec5701..9a7b8dc 100644 (file)
@@ -12,7 +12,7 @@
 # limitations under the License.
 
 *** Settings ***
-| Resource | resources/libraries/robot/performance.robot
+| Resource | resources/libraries/robot/performance_setup.robot
 | ...
 | Force Tags | 3_NODE_SINGLE_LINK_TOPO | PERFTEST | HW_ENV | NDRPDRDISC
 | ... | NIC_Intel-X520-DA2 | ETH | IP6FWD | SCALE | FIB_2M
index fa2a3af..6dcb36d 100644 (file)
@@ -12,7 +12,7 @@
 # limitations under the License.
 
 *** Settings ***
-| Resource | resources/libraries/robot/performance.robot
+| Resource | resources/libraries/robot/performance_setup.robot
 | ...
 | Force Tags | 3_NODE_SINGLE_LINK_TOPO | PERFTEST | HW_ENV | PDRCHK
 | ... | NIC_Intel-X520-DA2 | ETH | IP6FWD | SCALE | FIB_2M
@@ -22,7 +22,7 @@
 | Suite Teardown | Tear down 3-node performance topology
 | ...
 | Test Setup | Set up performance test
-| Test Teardown | Performance pdrchk test teardown
+| Test Teardown | Tear down performance pdrchk test
 | ...
 | Documentation | *Reference PDR throughput IPv6 routing verify test cases*
 | ...
index 6151a55..aaccec6 100644 (file)
@@ -12,7 +12,7 @@
 # limitations under the License.
 
 *** Settings ***
-| Resource | resources/libraries/robot/performance.robot
+| Resource | resources/libraries/robot/performance_setup.robot
 | Resource | resources/libraries/robot/lisp/lisp_static_adjacency.robot
 | Variables | resources/test_data/lisp/performance/lisp_static_adjacency.py
 | ...
index 01443c0..06c38df 100644 (file)
@@ -12,7 +12,7 @@
 # limitations under the License.
 
 *** Settings ***
-| Resource | resources/libraries/robot/performance.robot
+| Resource | resources/libraries/robot/performance_setup.robot
 | Resource | resources/libraries/robot/lisp/lisp_static_adjacency.robot
 | Variables | resources/test_data/lisp/performance/lisp_static_adjacency.py
 | ...
index 0f0a990..074405f 100644 (file)
@@ -12,7 +12,7 @@
 # limitations under the License.
 
 *** Settings ***
-| Resource | resources/libraries/robot/performance.robot
+| Resource | resources/libraries/robot/performance_setup.robot
 | Resource | resources/libraries/robot/lisp/lisp_static_adjacency.robot
 | Variables | resources/test_data/lisp/performance/lisp_static_adjacency.py
 | ...
@@ -24,7 +24,7 @@
 | Suite Teardown | Tear down 3-node performance topology
 | ...
 | Test Setup | Set up performance test
-| Test Teardown | Performance pdrchk test teardown
+| Test Teardown | Tear down performance pdrchk test
 | ...
 | Documentation | *Reference PDR throughput Lisp tunnel verify test cases*
 | ...
index af8c88f..85a1c57 100644 (file)
@@ -12,7 +12,7 @@
 # limitations under the License.
 
 *** Settings ***
-| Resource | resources/libraries/robot/performance.robot
+| Resource | resources/libraries/robot/performance_setup.robot
 | Resource | resources/libraries/robot/lisp/lisp_static_adjacency.robot
 | Variables | resources/test_data/lisp/performance/lisp_static_adjacency.py
 | ...
@@ -24,7 +24,7 @@
 | Suite Teardown | Tear down 3-node performance topology
 | ...
 | Test Setup | Set up performance test
-| Test Teardown | Performance pdrchk test teardown
+| Test Teardown | Tear down performance pdrchk test
 | ...
 | Documentation | *Reference PDR throughput Lisp tunnel verify test cases*
 | ...
index aa68c99..2afb280 100644 (file)
@@ -12,7 +12,7 @@
 # limitations under the License.
 
 *** Settings ***
-| Resource | resources/libraries/robot/performance.robot
+| Resource | resources/libraries/robot/performance_setup.robot
 | Resource | resources/libraries/robot/lisp/lisp_static_adjacency.robot
 | Variables | resources/test_data/lisp/performance/lisp_static_adjacency.py
 | ...
index 2c3f024..015e4d5 100644 (file)
@@ -12,7 +12,7 @@
 # limitations under the License.
 
 *** Settings ***
-| Resource | resources/libraries/robot/performance.robot
+| Resource | resources/libraries/robot/performance_setup.robot
 | Resource | resources/libraries/robot/lisp/lisp_static_adjacency.robot
 | Variables | resources/test_data/lisp/performance/lisp_static_adjacency.py
 | ...
index 4649404..6618a11 100644 (file)
@@ -12,7 +12,7 @@
 # limitations under the License.
 
 *** Settings ***
-| Resource | resources/libraries/robot/performance.robot
+| Resource | resources/libraries/robot/performance_setup.robot
 | Library | resources.libraries.python.QemuUtils
 | ...
 | Force Tags | 3_NODE_SINGLE_LINK_TOPO | PERFTEST | HW_ENV | NDRPDRDISC
index 2a9e702..033414f 100644 (file)
@@ -12,7 +12,7 @@
 # limitations under the License.
 
 *** Settings ***
-| Resource | resources/libraries/robot/performance.robot
+| Resource | resources/libraries/robot/performance_setup.robot
 | ...
 | Force Tags | 3_NODE_SINGLE_LINK_TOPO | PERFTEST | HW_ENV | NDRPDRDISC
 | ... | NIC_Intel-X710 | ETH | L2BDMACLRN | BASE
index a5a46eb..3cc908a 100644 (file)
@@ -12,7 +12,7 @@
 # limitations under the License.
 
 *** Settings ***
-| Resource | resources/libraries/robot/performance.robot
+| Resource | resources/libraries/robot/performance_setup.robot
 | Library | resources.libraries.python.NodePath
 | ...
 | Force Tags | 3_NODE_SINGLE_LINK_TOPO | PERFTEST | HW_ENV | NDRPDRDISC
 | | ${binary_max}= | Set Variable | ${max_rate}
 | | ${threshold}= | Set Variable | ${min_rate}
 | | Given Add '1' worker threads and '1' rxqueues in 3-node single-link circular topology
-| | And Add all PCI devices to all DUTs
+| | And Add PCI devices to DUTs in 3-node single link topology
 | | And Add no multi seg to all DUTs
 | | And Apply startup configuration on all VPP DUTs
 | | And Initialize L2 bridge domain in 3-node circular topology
 | | ${binary_max}= | Set Variable | ${max_rate}
 | | ${threshold}= | Set Variable | ${min_rate}
 | | Given Add '2' worker threads and '1' rxqueues in 3-node single-link circular topology
-| | And Add all PCI devices to all DUTs
+| | And Add PCI devices to DUTs in 3-node single link topology
 | | And Add no multi seg to all DUTs
 | | And Apply startup configuration on all VPP DUTs
 | | And Initialize L2 bridge domain in 3-node circular topology
 | | ${binary_max}= | Set Variable | ${max_rate}
 | | ${threshold}= | Set Variable | ${min_rate}
 | | Given Add '4' worker threads and '2' rxqueues in 3-node single-link circular topology
-| | And Add all PCI devices to all DUTs
+| | And Add PCI devices to DUTs in 3-node single link topology
 | | And Add no multi seg to all DUTs
 | | And Apply startup configuration on all VPP DUTs
 | | And Initialize L2 bridge domain in 3-node circular topology
index df0c30f..51b4492 100644 (file)
@@ -12,7 +12,7 @@
 # limitations under the License.
 
 *** Settings ***
-| Resource | resources/libraries/robot/performance.robot
+| Resource | resources/libraries/robot/performance_setup.robot
 | Library | resources.libraries.python.QemuUtils
 | ...
 | Force Tags | 3_NODE_SINGLE_LINK_TOPO | PERFTEST | HW_ENV | NDRPDRDISC
index f015331..1b701dc 100644 (file)
@@ -12,7 +12,7 @@
 # limitations under the License.
 
 *** Settings ***
-| Resource | resources/libraries/robot/performance.robot
+| Resource | resources/libraries/robot/performance_setup.robot
 | Library | resources.libraries.python.QemuUtils
 | ...
 | Force Tags | 3_NODE_SINGLE_LINK_TOPO | PERFTEST | HW_ENV | NDRPDRDISC
index 73df75e..96be5d2 100644 (file)
@@ -12,7 +12,7 @@
 # limitations under the License.
 
 *** Settings ***
-| Resource | resources/libraries/robot/performance.robot
+| Resource | resources/libraries/robot/performance_setup.robot
 | Library | resources.libraries.python.NodePath
 | ...
 | Force Tags | 3_NODE_SINGLE_LINK_TOPO | PERFTEST | HW_ENV | NDRPDRDISC
index 60bb066..decc922 100644 (file)
@@ -12,7 +12,7 @@
 # limitations under the License.
 
 *** Settings ***
-| Resource | resources/libraries/robot/performance.robot
+| Resource | resources/libraries/robot/performance_setup.robot
 | Library | resources.libraries.python.QemuUtils
 | ...
 | Force Tags | 3_NODE_SINGLE_LINK_TOPO | PERFTEST | HW_ENV | NDRPDRDISC
index 875dbb5..67eb347 100644 (file)
@@ -12,7 +12,7 @@
 # limitations under the License.
 
 *** Settings ***
-| Resource | resources/libraries/robot/performance.robot
+| Resource | resources/libraries/robot/performance_setup.robot
 | Library | resources.libraries.python.InterfaceUtil
 | Library | resources.libraries.python.NodePath
 | ...
 | | ${binary_max}= | Set Variable | ${max_rate}
 | | ${threshold}= | Set Variable | ${min_rate}
 | | Given Add '1' worker threads and '1' rxqueues in 3-node single-link circular topology
-| | And Add all PCI devices to all DUTs
+| | And Add PCI devices to DUTs in 3-node single link topology
 | | And Add no multi seg to all DUTs
 | | And Apply startup configuration on all VPP DUTs
 | | And Initialize L2 xconnect in 3-node circular topology
 | | ${binary_max}= | Set Variable | ${max_rate}
 | | ${threshold}= | Set Variable | ${min_rate}
 | | Given Add '2' worker threads and '1' rxqueues in 3-node single-link circular topology
-| | And Add all PCI devices to all DUTs
+| | And Add PCI devices to DUTs in 3-node single link topology
 | | And Add no multi seg to all DUTs
 | | And Apply startup configuration on all VPP DUTs
 | | And Initialize L2 xconnect in 3-node circular topology
 | | ${binary_max}= | Set Variable | ${max_rate}
 | | ${threshold}= | Set Variable | ${min_rate}
 | | Given Add '4' worker threads and '2' rxqueues in 3-node single-link circular topology
-| | And Add all PCI devices to all DUTs
+| | And Add PCI devices to DUTs in 3-node single link topology
 | | And Add no multi seg to all DUTs
 | | And Apply startup configuration on all VPP DUTs
 | | And Initialize L2 xconnect in 3-node circular topology
index 6d2cc08..cdfd2b8 100644 (file)
@@ -12,7 +12,7 @@
 # limitations under the License.
 
 *** Settings ***
-| Resource | resources/libraries/robot/performance.robot
+| Resource | resources/libraries/robot/performance_setup.robot
 | Library | resources.libraries.python.QemuUtils
 | ...
 | Force Tags | 3_NODE_SINGLE_LINK_TOPO | PERFTEST | HW_ENV | NDRPDRDISC
index 0caf123..926f254 100644 (file)
@@ -12,7 +12,7 @@
 # limitations under the License.
 
 *** Settings ***
-| Resource | resources/libraries/robot/performance.robot
+| Resource | resources/libraries/robot/performance_setup.robot
 | Library | resources.libraries.python.topology.Topology
 | Library | resources.libraries.python.NodePath
 | Library | resources.libraries.python.InterfaceUtil
 | | ${binary_max}= | Set Variable | ${max_rate}
 | | ${threshold}= | Set Variable | ${min_rate}
 | | Given Add '1' worker threads and '1' rxqueues in 3-node single-link circular topology
-| | And Add all PCI devices to all DUTs
+| | And Add PCI devices to DUTs in 3-node single link topology
 | | And Add no multi seg to all DUTs
 | | And Apply startup configuration on all VPP DUTs
 | | And Initialize IPv4 forwarding in 3-node circular topology
 | | ${binary_max}= | Set Variable | ${max_rate}
 | | ${threshold}= | Set Variable | ${min_rate}
 | | Given Add '2' worker threads and '1' rxqueues in 3-node single-link circular topology
-| | And Add all PCI devices to all DUTs
+| | And Add PCI devices to DUTs in 3-node single link topology
 | | And Add no multi seg to all DUTs
 | | And Apply startup configuration on all VPP DUTs
 | | And Initialize IPv4 forwarding in 3-node circular topology
 | | ${binary_max}= | Set Variable | ${max_rate}
 | | ${threshold}= | Set Variable | ${min_rate}
 | | Given Add '4' worker threads and '2' rxqueues in 3-node single-link circular topology
-| | And Add all PCI devices to all DUTs
+| | And Add PCI devices to DUTs in 3-node single link topology
 | | And Add no multi seg to all DUTs
 | | And Apply startup configuration on all VPP DUTs
 | | And Initialize IPv4 forwarding in 3-node circular topology
index 21882a8..d7ad9b1 100644 (file)
@@ -12,7 +12,7 @@
 # limitations under the License.
 
 *** Settings ***
-| Resource | resources/libraries/robot/performance.robot
+| Resource | resources/libraries/robot/performance_setup.robot
 | Resource | resources/libraries/robot/ipsec.robot
 | ...
 | Force Tags | 3_NODE_SINGLE_LINK_TOPO | PERFTEST | HW_ENV | NDRPDRDISC
index bb67bb6..fb7fe7b 100644 (file)
@@ -12,7 +12,7 @@
 # limitations under the License.
 
 *** Settings ***
-| Resource | resources/libraries/robot/performance.robot
+| Resource | resources/libraries/robot/performance_setup.robot
 | Resource | resources/libraries/robot/ipsec.robot
 | ...
 | Force Tags | 3_NODE_SINGLE_LINK_TOPO | PERFTEST | HW_ENV | NDRPDRDISC
index 3550caf..6bb53fc 100644 (file)
@@ -12,7 +12,7 @@
 # limitations under the License.
 
 *** Settings ***
-| Resource | resources/libraries/robot/performance.robot
+| Resource | resources/libraries/robot/performance_setup.robot
 | Resource | resources/libraries/robot/ipsec.robot
 | ...
 | Force Tags | 3_NODE_SINGLE_LINK_TOPO | PERFTEST | HW_ENV | NDRPDRDISC
index 0ad9e2d..c36c188 100644 (file)
@@ -12,7 +12,7 @@
 # limitations under the License.
 
 *** Settings ***
-| Resource | resources/libraries/robot/performance.robot
+| Resource | resources/libraries/robot/performance_setup.robot
 | Resource | resources/libraries/robot/ipsec.robot
 | ...
 | Force Tags | 3_NODE_SINGLE_LINK_TOPO | PERFTEST | HW_ENV | NDRPDRDISC
index 0d6a188..350a47c 100644 (file)
@@ -12,7 +12,7 @@
 # limitations under the License.
 
 *** Settings ***
-| Resource | resources/libraries/robot/performance.robot
+| Resource | resources/libraries/robot/performance_setup.robot
 | Resource | resources/libraries/robot/ipsec.robot
 | ...
 | Force Tags | 3_NODE_SINGLE_LINK_TOPO | PERFTEST | HW_ENV | SCALE | NDRPDRDISC
index 5add604..b9ae2f4 100644 (file)
@@ -12,7 +12,7 @@
 # limitations under the License.
 
 *** Settings ***
-| Resource | resources/libraries/robot/performance.robot
+| Resource | resources/libraries/robot/performance_setup.robot
 | Resource | resources/libraries/robot/ipsec.robot
 | ...
 | Force Tags | 3_NODE_SINGLE_LINK_TOPO | PERFTEST | HW_ENV | SCALE | NDRPDRDISC
index 343c315..122076c 100644 (file)
@@ -12,7 +12,7 @@
 # limitations under the License.
 
 *** Settings ***
-| Resource | resources/libraries/robot/performance.robot
+| Resource | resources/libraries/robot/performance_setup.robot
 | Resource | resources/libraries/robot/ipsec.robot
 | ...
 | Force Tags | 3_NODE_SINGLE_LINK_TOPO | PERFTEST | HW_ENV | SCALE | NDRPDRDISC
index 8d6403b..588a715 100644 (file)
@@ -12,7 +12,7 @@
 # limitations under the License.
 
 *** Settings ***
-| Resource | resources/libraries/robot/performance.robot
+| Resource | resources/libraries/robot/performance_setup.robot
 | Resource | resources/libraries/robot/ipsec.robot
 | ...
 | Force Tags | 3_NODE_SINGLE_LINK_TOPO | PERFTEST | HW_ENV | SCALE | NDRPDRDISC
index 734440c..03aa4f9 100644 (file)
@@ -12,7 +12,7 @@
 # limitations under the License.
 
 *** Settings ***
-| Resource | resources/libraries/robot/performance.robot
+| Resource | resources/libraries/robot/performance_setup.robot
 | Resource | resources/libraries/robot/ipsec.robot
 | Resource | resources/libraries/robot/lisp/lispgpe.robot
 | ...
index f37779d..016b4d9 100644 (file)
@@ -12,7 +12,7 @@
 # limitations under the License.
 
 *** Settings ***
-| Resource | resources/libraries/robot/performance.robot
+| Resource | resources/libraries/robot/performance_setup.robot
 | ...
 | Force Tags | 3_NODE_SINGLE_LINK_TOPO | PERFTEST | HW_ENV | NDRPDRDISC
 | ... | NIC_Intel-XL710 | ETH | IP6FWD | BASE

©2016 FD.io a Linux Foundation Collaborative Project. All Rights Reserved.
Linux Foundation is a registered trademark of The Linux Foundation. Linux is a registered trademark of Linus Torvalds.
Please see our privacy policy and terms of use.