aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorTibor Frank <tifrank@cisco.com>2017-06-14 09:12:56 +0200
committerTibor Frank <tifrank@cisco.com>2017-06-20 07:03:29 +0000
commit086f3a5065d744e00fe10289eb2f090b7bde208e (patch)
tree27257fcc3e70ebd23e50343a7e0e3d14c12e9c48
parentf22e850f38ad5a1630271d020b2078c1580c99c0 (diff)
CSIT-678: Re-organize L2 libraries - performance
Change-Id: Ic4e37df31fbc10f15351e3671b541e6f047405bc Signed-off-by: Tibor Frank <tifrank@cisco.com>
-rw-r--r--dpdk-tests/perf/10ge2p1x520-eth-l2xcbase-testpmd-ndrpdrdisc.robot2
-rw-r--r--dpdk-tests/perf/10ge2p1x520-ethip4-ip4base-l3fwd-ndrpdrdisc.robot2
-rw-r--r--dpdk-tests/perf/10ge2p1x710-eth-l2xcbase-testpmd-ndrpdrdisc.robot2
-rw-r--r--dpdk-tests/perf/40ge2p1xl710-eth-l2xcbase-testpmd-ndrpdrdisc.robot2
-rw-r--r--resources/libraries/robot/performance_configuration.robot (renamed from resources/libraries/robot/performance.robot)1304
-rw-r--r--resources/libraries/robot/performance_setup.robot501
-rw-r--r--resources/libraries/robot/performance_utils.robot545
-rw-r--r--tests/perf/10ge2p1vic1227-eth-l2bdbasemaclrn-ndrpdrdisc.robot2
-rw-r--r--tests/perf/10ge2p1x520-dot1ad-l2xcbase-ndrchk.robot2
-rw-r--r--tests/perf/10ge2p1x520-dot1ad-l2xcbase-ndrpdrdisc.robot2
-rw-r--r--tests/perf/10ge2p1x520-dot1q-l2bdbasemaclrn-eth-2vhost-1vm-ndrpdrdisc.robot2
-rw-r--r--tests/perf/10ge2p1x520-dot1q-l2xcbase-eth-2vhost-1vm-ndrpdrdisc.robot2
-rw-r--r--tests/perf/10ge2p1x520-dot1q-l2xcbase-ndrchk.robot2
-rw-r--r--tests/perf/10ge2p1x520-dot1q-l2xcbase-ndrpdrdisc.robot2
-rw-r--r--tests/perf/10ge2p1x520-eth-l2bdbasemaclrn-eth-2vhost-1vm-ndrpdrdisc.robot2
-rw-r--r--tests/perf/10ge2p1x520-eth-l2bdbasemaclrn-eth-4vhost-2vm-ndrpdrdisc.robot4
-rw-r--r--tests/perf/10ge2p1x520-eth-l2bdbasemaclrn-ndrchk.robot2
-rw-r--r--tests/perf/10ge2p1x520-eth-l2bdbasemaclrn-ndrpdrdisc.robot2
-rw-r--r--tests/perf/10ge2p1x520-eth-l2bdbasemaclrn-pdrchk.robot4
-rw-r--r--tests/perf/10ge2p1x520-eth-l2xcbase-eth-2vhost-1vm-ndrpdrdisc.robot2
-rw-r--r--tests/perf/10ge2p1x520-eth-l2xcbase-eth-4vhost-2vm-ndrpdrdisc.robot2
-rw-r--r--tests/perf/10ge2p1x520-eth-l2xcbase-ndrchk.robot2
-rw-r--r--tests/perf/10ge2p1x520-eth-l2xcbase-ndrpdrdisc.robot6
-rw-r--r--tests/perf/10ge2p1x520-eth-l2xcbase-pdrchk.robot4
-rw-r--r--tests/perf/10ge2p1x520-ethip4-ip4base-copwhtlistbase-ndrchk.robot2
-rw-r--r--tests/perf/10ge2p1x520-ethip4-ip4base-copwhtlistbase-ndrpdrdisc.robot2
-rw-r--r--tests/perf/10ge2p1x520-ethip4-ip4base-eth-2vhost-1vm-ndrpdrdisc.robot2
-rw-r--r--tests/perf/10ge2p1x520-ethip4-ip4base-eth-4vhost-2vm-ndrpdrdisc.robot2
-rw-r--r--tests/perf/10ge2p1x520-ethip4-ip4base-iacldstbase-ndrchk.robot2
-rw-r--r--tests/perf/10ge2p1x520-ethip4-ip4base-iacldstbase-ndrpdrdisc.robot2
-rw-r--r--tests/perf/10ge2p1x520-ethip4-ip4base-ipolicemarkbase-ndrchk.robot2
-rw-r--r--tests/perf/10ge2p1x520-ethip4-ip4base-ipolicemarkbase-ndrpdrdisc.robot2
-rw-r--r--tests/perf/10ge2p1x520-ethip4-ip4base-ndrchk.robot2
-rw-r--r--tests/perf/10ge2p1x520-ethip4-ip4base-ndrpdrdisc.robot6
-rw-r--r--tests/perf/10ge2p1x520-ethip4-ip4base-pdrchk.robot4
-rw-r--r--tests/perf/10ge2p1x520-ethip4-ip4base-snat-ndrpdrdisc.robot2
-rw-r--r--tests/perf/10ge2p1x520-ethip4-ip4scale200k-ndrchk.robot2
-rw-r--r--tests/perf/10ge2p1x520-ethip4-ip4scale200k-ndrpdrdisc.robot2
-rw-r--r--tests/perf/10ge2p1x520-ethip4-ip4scale20k-ndrchk.robot2
-rw-r--r--tests/perf/10ge2p1x520-ethip4-ip4scale20k-ndrpdrdisc.robot2
-rw-r--r--tests/perf/10ge2p1x520-ethip4-ip4scale2m-ndrchk.robot2
-rw-r--r--tests/perf/10ge2p1x520-ethip4-ip4scale2m-ndrpdrdisc.robot2
-rw-r--r--tests/perf/10ge2p1x520-ethip4lispip4-ip4base-ndrchk.robot2
-rw-r--r--tests/perf/10ge2p1x520-ethip4lispip4-ip4base-ndrpdrdisc.robot2
-rw-r--r--tests/perf/10ge2p1x520-ethip4lispip4-ip4base-pdrchk.robot4
-rw-r--r--tests/perf/10ge2p1x520-ethip4lispip6-ip4base-ndrchk.robot2
-rw-r--r--tests/perf/10ge2p1x520-ethip4lispip6-ip4base-ndrpdrdisc.robot2
-rw-r--r--tests/perf/10ge2p1x520-ethip4lispip6-ip4base-pdrchk.robot4
-rw-r--r--tests/perf/10ge2p1x520-ethip4udp-ip4base-udpsrcscale15-snat-ndrpdrdisc.robot2
-rw-r--r--tests/perf/10ge2p1x520-ethip4udp-ip4scale10-udpsrcscale15-snat-ndrpdrdisc.robot2
-rw-r--r--tests/perf/10ge2p1x520-ethip4udp-ip4scale100-udpsrcscale15-snat-ndrpdrdisc.robot2
-rw-r--r--tests/perf/10ge2p1x520-ethip4udp-ip4scale1000-udpsrcscale15-snat-ndrpdrdisc.robot2
-rw-r--r--tests/perf/10ge2p1x520-ethip4udp-ip4scale2000-udpsrcscale15-snat-ndrpdrdisc.robot2
-rw-r--r--tests/perf/10ge2p1x520-ethip4udp-ip4scale4000-udpsrcscale15-snat-ndrpdrdisc.robot2
-rw-r--r--tests/perf/10ge2p1x520-ethip4vxlan-l2bdbasemaclrn-eth-2vhost-1vm-ndrpdrdisc.robot2
-rw-r--r--tests/perf/10ge2p1x520-ethip4vxlan-l2bdbasemaclrn-ndrpdrdisc.robot2
-rw-r--r--tests/perf/10ge2p1x520-ethip4vxlan-l2xcbase-ndrchk.robot2
-rw-r--r--tests/perf/10ge2p1x520-ethip4vxlan-l2xcbase-ndrpdrdisc.robot2
-rw-r--r--tests/perf/10ge2p1x520-ethip4vxlan-l2xcbase-pdrchk.robot4
-rw-r--r--tests/perf/10ge2p1x520-ethip6-ip6base-copwhtlistbase-ndrchk.robot2
-rw-r--r--tests/perf/10ge2p1x520-ethip6-ip6base-copwhtlistbase-ndrpdrdisc.robot2
-rw-r--r--tests/perf/10ge2p1x520-ethip6-ip6base-iacldstbase-ndrchk.robot2
-rw-r--r--tests/perf/10ge2p1x520-ethip6-ip6base-iacldstbase-ndrpdrdisc.robot2
-rw-r--r--tests/perf/10ge2p1x520-ethip6-ip6base-ndrchk.robot2
-rw-r--r--tests/perf/10ge2p1x520-ethip6-ip6base-ndrpdrdisc.robot2
-rw-r--r--tests/perf/10ge2p1x520-ethip6-ip6base-pdrchk.robot4
-rw-r--r--tests/perf/10ge2p1x520-ethip6-ip6scale200k-ndrchk.robot2
-rw-r--r--tests/perf/10ge2p1x520-ethip6-ip6scale200k-ndrpdrdisc.robot2
-rw-r--r--tests/perf/10ge2p1x520-ethip6-ip6scale20k-ndrchk.robot2
-rw-r--r--tests/perf/10ge2p1x520-ethip6-ip6scale20k-ndrpdrdisc.robot2
-rw-r--r--tests/perf/10ge2p1x520-ethip6-ip6scale2m-ndrchk.robot2
-rw-r--r--tests/perf/10ge2p1x520-ethip6-ip6scale2m-ndrpdrdisc.robot2
-rw-r--r--tests/perf/10ge2p1x520-ethip6-ip6scale2m-pdrchk.robot4
-rw-r--r--tests/perf/10ge2p1x520-ethip6lispip4-ip6base-ndrchk.robot2
-rw-r--r--tests/perf/10ge2p1x520-ethip6lispip4-ip6base-ndrpdrdisc.robot2
-rw-r--r--tests/perf/10ge2p1x520-ethip6lispip4-ip6base-pdrchk.robot4
-rw-r--r--tests/perf/10ge2p1x520-ethip6lispip6-ip6Base-pdrchk.robot4
-rw-r--r--tests/perf/10ge2p1x520-ethip6lispip6-ip6base-ndrchk.robot2
-rw-r--r--tests/perf/10ge2p1x520-ethip6lispip6-ip6base-ndrpdrdisc.robot2
-rw-r--r--tests/perf/10ge2p1x710-eth-l2bdbasemaclrn-eth-2vhost-1vm-ndrpdrdisc.robot2
-rw-r--r--tests/perf/10ge2p1x710-eth-l2bdbasemaclrn-ndrpdrdisc.robot2
-rw-r--r--tests/perf/40ge2p1vic1385-eth-l2bdbasemaclrn-ndrpdrdisc.robot8
-rw-r--r--tests/perf/40ge2p1xl710-eth-l2bdbasemaclrn-eth-2vhost-1vm-ndrpdrdisc.robot2
-rw-r--r--tests/perf/40ge2p1xl710-eth-l2bdbasemaclrn-eth-4vhost-2vm-ndrpdrdisc.robot2
-rw-r--r--tests/perf/40ge2p1xl710-eth-l2bdbasemaclrn-ndrpdrdisc.robot2
-rw-r--r--tests/perf/40ge2p1xl710-eth-l2xcbase-eth-4vhost-2vm-ndrpdrdisc.robot2
-rw-r--r--tests/perf/40ge2p1xl710-eth-l2xcbase-ndrpdrdisc.robot8
-rw-r--r--tests/perf/40ge2p1xl710-ethip4-ip4base-eth-4vhost-2vm-ndrpdrdisc.robot2
-rw-r--r--tests/perf/40ge2p1xl710-ethip4-ip4base-ndrpdrdisc.robot8
-rw-r--r--tests/perf/40ge2p1xl710-ethip4ipsecbasetnl-ip4base-int-aes-gcm-ndrpdrdisc.robot2
-rw-r--r--tests/perf/40ge2p1xl710-ethip4ipsecbasetnl-ip4base-int-cbc-sha1-ndrpdrdisc.robot2
-rw-r--r--tests/perf/40ge2p1xl710-ethip4ipsecbasetnl-ip4base-tnl-aes-gcm-ndrpdrdisc.robot2
-rw-r--r--tests/perf/40ge2p1xl710-ethip4ipsecbasetnl-ip4base-tnl-cbc-sha1-ndrpdrdisc.robot2
-rw-r--r--tests/perf/40ge2p1xl710-ethip4ipsecscale1000tnl-ip4base-int-aes-gcm-ndrpdrdisc.robot2
-rw-r--r--tests/perf/40ge2p1xl710-ethip4ipsecscale1000tnl-ip4base-int-cbc-sha1-ndrpdrdisc.robot2
-rw-r--r--tests/perf/40ge2p1xl710-ethip4ipsecscale1000tnl-ip4base-tnl-aes-gcm-ndrpdrdisc.robot2
-rw-r--r--tests/perf/40ge2p1xl710-ethip4ipsecscale1000tnl-ip4base-tnl-cbc-sha1-ndrpdrdisc.robot2
-rw-r--r--tests/perf/40ge2p1xl710-ethip4ipsectptlispgpe-ip4base-cbc-sha1-ndrpdrdisc.robot2
-rw-r--r--tests/perf/40ge2p1xl710-ethip6-ip6base-ndrpdrdisc.robot2
99 files changed, 1334 insertions, 1256 deletions
diff --git a/dpdk-tests/perf/10ge2p1x520-eth-l2xcbase-testpmd-ndrpdrdisc.robot b/dpdk-tests/perf/10ge2p1x520-eth-l2xcbase-testpmd-ndrpdrdisc.robot
index 00b40bed1e..45a67bb5ba 100644
--- a/dpdk-tests/perf/10ge2p1x520-eth-l2xcbase-testpmd-ndrpdrdisc.robot
+++ b/dpdk-tests/perf/10ge2p1x520-eth-l2xcbase-testpmd-ndrpdrdisc.robot
@@ -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
diff --git a/dpdk-tests/perf/10ge2p1x520-ethip4-ip4base-l3fwd-ndrpdrdisc.robot b/dpdk-tests/perf/10ge2p1x520-ethip4-ip4base-l3fwd-ndrpdrdisc.robot
index 5112c18344..31afdc15a1 100644
--- a/dpdk-tests/perf/10ge2p1x520-ethip4-ip4base-l3fwd-ndrpdrdisc.robot
+++ b/dpdk-tests/perf/10ge2p1x520-ethip4-ip4base-l3fwd-ndrpdrdisc.robot
@@ -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
diff --git a/dpdk-tests/perf/10ge2p1x710-eth-l2xcbase-testpmd-ndrpdrdisc.robot b/dpdk-tests/perf/10ge2p1x710-eth-l2xcbase-testpmd-ndrpdrdisc.robot
index e39c9f59bf..6c4d19a962 100644
--- a/dpdk-tests/perf/10ge2p1x710-eth-l2xcbase-testpmd-ndrpdrdisc.robot
+++ b/dpdk-tests/perf/10ge2p1x710-eth-l2xcbase-testpmd-ndrpdrdisc.robot
@@ -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
diff --git a/dpdk-tests/perf/40ge2p1xl710-eth-l2xcbase-testpmd-ndrpdrdisc.robot b/dpdk-tests/perf/40ge2p1xl710-eth-l2xcbase-testpmd-ndrpdrdisc.robot
index cc1a2948c1..a878d31ad2 100644
--- a/dpdk-tests/perf/40ge2p1xl710-eth-l2xcbase-testpmd-ndrpdrdisc.robot
+++ b/dpdk-tests/perf/40ge2p1xl710-eth-l2xcbase-testpmd-ndrpdrdisc.robot
@@ -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
diff --git a/resources/libraries/robot/performance.robot b/resources/libraries/robot/performance_configuration.robot
index b934dc1d96..1141c34be4 100644
--- a/resources/libraries/robot/performance.robot
+++ b/resources/libraries/robot/performance_configuration.robot
@@ -29,200 +29,9 @@
| 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
@@ -564,89 +373,89 @@
| | ... | 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]
@@ -842,27 +651,27 @@
| | ... | 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]
@@ -968,23 +777,23 @@
| | 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]
@@ -995,8 +804,10 @@
| | ... | 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}
@@ -1033,8 +844,10 @@
| | [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
@@ -1124,556 +937,10 @@
| | 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}
@@ -1682,6 +949,9 @@
| | 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}
@@ -1762,17 +1032,17 @@
| | ... | 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]
@@ -1902,21 +1172,23 @@
| | ... | 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]
@@ -1939,7 +1211,7 @@
| | ... | *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}
@@ -2061,56 +1333,6 @@
| | 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.
@@ -2369,197 +1591,7 @@
| | 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
index 0000000000..781c4588e4
--- /dev/null
+++ b/resources/libraries/robot/performance_setup.robot
@@ -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
index 0000000000..76f88b31dd
--- /dev/null
+++ b/resources/libraries/robot/performance_utils.robot
@@ -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
diff --git a/tests/perf/10ge2p1vic1227-eth-l2bdbasemaclrn-ndrpdrdisc.robot b/tests/perf/10ge2p1vic1227-eth-l2bdbasemaclrn-ndrpdrdisc.robot
index 1c3687601e..7f025baa92 100644
--- a/tests/perf/10ge2p1vic1227-eth-l2bdbasemaclrn-ndrpdrdisc.robot
+++ b/tests/perf/10ge2p1vic1227-eth-l2bdbasemaclrn-ndrpdrdisc.robot
@@ -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
diff --git a/tests/perf/10ge2p1x520-dot1ad-l2xcbase-ndrchk.robot b/tests/perf/10ge2p1x520-dot1ad-l2xcbase-ndrchk.robot
index c61b165d66..9f378fab48 100644
--- a/tests/perf/10ge2p1x520-dot1ad-l2xcbase-ndrchk.robot
+++ b/tests/perf/10ge2p1x520-dot1ad-l2xcbase-ndrchk.robot
@@ -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
diff --git a/tests/perf/10ge2p1x520-dot1ad-l2xcbase-ndrpdrdisc.robot b/tests/perf/10ge2p1x520-dot1ad-l2xcbase-ndrpdrdisc.robot
index a3e5184fc2..6122de9850 100644
--- a/tests/perf/10ge2p1x520-dot1ad-l2xcbase-ndrpdrdisc.robot
+++ b/tests/perf/10ge2p1x520-dot1ad-l2xcbase-ndrpdrdisc.robot
@@ -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
diff --git a/tests/perf/10ge2p1x520-dot1q-l2bdbasemaclrn-eth-2vhost-1vm-ndrpdrdisc.robot b/tests/perf/10ge2p1x520-dot1q-l2bdbasemaclrn-eth-2vhost-1vm-ndrpdrdisc.robot
index c1590da2dd..084be2df71 100644
--- a/tests/perf/10ge2p1x520-dot1q-l2bdbasemaclrn-eth-2vhost-1vm-ndrpdrdisc.robot
+++ b/tests/perf/10ge2p1x520-dot1q-l2bdbasemaclrn-eth-2vhost-1vm-ndrpdrdisc.robot
@@ -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
diff --git a/tests/perf/10ge2p1x520-dot1q-l2xcbase-eth-2vhost-1vm-ndrpdrdisc.robot b/tests/perf/10ge2p1x520-dot1q-l2xcbase-eth-2vhost-1vm-ndrpdrdisc.robot
index 250685adc7..1ff0708fff 100644
--- a/tests/perf/10ge2p1x520-dot1q-l2xcbase-eth-2vhost-1vm-ndrpdrdisc.robot
+++ b/tests/perf/10ge2p1x520-dot1q-l2xcbase-eth-2vhost-1vm-ndrpdrdisc.robot
@@ -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
diff --git a/tests/perf/10ge2p1x520-dot1q-l2xcbase-ndrchk.robot b/tests/perf/10ge2p1x520-dot1q-l2xcbase-ndrchk.robot
index c0c310d9ca..a38bff667e 100644
--- a/tests/perf/10ge2p1x520-dot1q-l2xcbase-ndrchk.robot
+++ b/tests/perf/10ge2p1x520-dot1q-l2xcbase-ndrchk.robot
@@ -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
diff --git a/tests/perf/10ge2p1x520-dot1q-l2xcbase-ndrpdrdisc.robot b/tests/perf/10ge2p1x520-dot1q-l2xcbase-ndrpdrdisc.robot
index d1ff120042..d99d772c8f 100644
--- a/tests/perf/10ge2p1x520-dot1q-l2xcbase-ndrpdrdisc.robot
+++ b/tests/perf/10ge2p1x520-dot1q-l2xcbase-ndrpdrdisc.robot
@@ -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
diff --git a/tests/perf/10ge2p1x520-eth-l2bdbasemaclrn-eth-2vhost-1vm-ndrpdrdisc.robot b/tests/perf/10ge2p1x520-eth-l2bdbasemaclrn-eth-2vhost-1vm-ndrpdrdisc.robot
index da41944461..494bebf5cd 100644
--- a/tests/perf/10ge2p1x520-eth-l2bdbasemaclrn-eth-2vhost-1vm-ndrpdrdisc.robot
+++ b/tests/perf/10ge2p1x520-eth-l2bdbasemaclrn-eth-2vhost-1vm-ndrpdrdisc.robot
@@ -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
diff --git a/tests/perf/10ge2p1x520-eth-l2bdbasemaclrn-eth-4vhost-2vm-ndrpdrdisc.robot b/tests/perf/10ge2p1x520-eth-l2bdbasemaclrn-eth-4vhost-2vm-ndrpdrdisc.robot
index 4edbcc1514..de06640856 100644
--- a/tests/perf/10ge2p1x520-eth-l2bdbasemaclrn-eth-4vhost-2vm-ndrpdrdisc.robot
+++ b/tests/perf/10ge2p1x520-eth-l2bdbasemaclrn-eth-4vhost-2vm-ndrpdrdisc.robot
@@ -12,14 +12,14 @@
# 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
diff --git a/tests/perf/10ge2p1x520-eth-l2bdbasemaclrn-ndrchk.robot b/tests/perf/10ge2p1x520-eth-l2bdbasemaclrn-ndrchk.robot
index 9b4e66cde3..7cd0fc6c43 100644
--- a/tests/perf/10ge2p1x520-eth-l2bdbasemaclrn-ndrchk.robot
+++ b/tests/perf/10ge2p1x520-eth-l2bdbasemaclrn-ndrchk.robot
@@ -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
diff --git a/tests/perf/10ge2p1x520-eth-l2bdbasemaclrn-ndrpdrdisc.robot b/tests/perf/10ge2p1x520-eth-l2bdbasemaclrn-ndrpdrdisc.robot
index bd75266d1c..c8410b1451 100644
--- a/tests/perf/10ge2p1x520-eth-l2bdbasemaclrn-ndrpdrdisc.robot
+++ b/tests/perf/10ge2p1x520-eth-l2bdbasemaclrn-ndrpdrdisc.robot
@@ -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
diff --git a/tests/perf/10ge2p1x520-eth-l2bdbasemaclrn-pdrchk.robot b/tests/perf/10ge2p1x520-eth-l2bdbasemaclrn-pdrchk.robot
index 1b5a8be124..abfa27132a 100644
--- a/tests/perf/10ge2p1x520-eth-l2bdbasemaclrn-pdrchk.robot
+++ b/tests/perf/10ge2p1x520-eth-l2bdbasemaclrn-pdrchk.robot
@@ -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*
| ...
diff --git a/tests/perf/10ge2p1x520-eth-l2xcbase-eth-2vhost-1vm-ndrpdrdisc.robot b/tests/perf/10ge2p1x520-eth-l2xcbase-eth-2vhost-1vm-ndrpdrdisc.robot
index 66b09477e7..91d8f4a2ab 100644
--- a/tests/perf/10ge2p1x520-eth-l2xcbase-eth-2vhost-1vm-ndrpdrdisc.robot
+++ b/tests/perf/10ge2p1x520-eth-l2xcbase-eth-2vhost-1vm-ndrpdrdisc.robot
@@ -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
diff --git a/tests/perf/10ge2p1x520-eth-l2xcbase-eth-4vhost-2vm-ndrpdrdisc.robot b/tests/perf/10ge2p1x520-eth-l2xcbase-eth-4vhost-2vm-ndrpdrdisc.robot
index e6c9ccaee7..2aa6372dd4 100644
--- a/tests/perf/10ge2p1x520-eth-l2xcbase-eth-4vhost-2vm-ndrpdrdisc.robot
+++ b/tests/perf/10ge2p1x520-eth-l2xcbase-eth-4vhost-2vm-ndrpdrdisc.robot
@@ -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
diff --git a/tests/perf/10ge2p1x520-eth-l2xcbase-ndrchk.robot b/tests/perf/10ge2p1x520-eth-l2xcbase-ndrchk.robot
index 7f90967ce4..451a319422 100644
--- a/tests/perf/10ge2p1x520-eth-l2xcbase-ndrchk.robot
+++ b/tests/perf/10ge2p1x520-eth-l2xcbase-ndrchk.robot
@@ -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
| ...
diff --git a/tests/perf/10ge2p1x520-eth-l2xcbase-ndrpdrdisc.robot b/tests/perf/10ge2p1x520-eth-l2xcbase-ndrpdrdisc.robot
index 51bf909c2a..13f7b12111 100644
--- a/tests/perf/10ge2p1x520-eth-l2xcbase-ndrpdrdisc.robot
+++ b/tests/perf/10ge2p1x520-eth-l2xcbase-ndrpdrdisc.robot
@@ -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
| ...
@@ -451,7 +451,7 @@
| | ${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
@@ -473,7 +473,7 @@
| | ${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
diff --git a/tests/perf/10ge2p1x520-eth-l2xcbase-pdrchk.robot b/tests/perf/10ge2p1x520-eth-l2xcbase-pdrchk.robot
index 39f70ecd96..446fc23614 100644
--- a/tests/perf/10ge2p1x520-eth-l2xcbase-pdrchk.robot
+++ b/tests/perf/10ge2p1x520-eth-l2xcbase-pdrchk.robot
@@ -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*
| ...
diff --git a/tests/perf/10ge2p1x520-ethip4-ip4base-copwhtlistbase-ndrchk.robot b/tests/perf/10ge2p1x520-ethip4-ip4base-copwhtlistbase-ndrchk.robot
index 3152a38038..f7952bde84 100644
--- a/tests/perf/10ge2p1x520-ethip4-ip4base-copwhtlistbase-ndrchk.robot
+++ b/tests/perf/10ge2p1x520-ethip4-ip4base-copwhtlistbase-ndrchk.robot
@@ -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
diff --git a/tests/perf/10ge2p1x520-ethip4-ip4base-copwhtlistbase-ndrpdrdisc.robot b/tests/perf/10ge2p1x520-ethip4-ip4base-copwhtlistbase-ndrpdrdisc.robot
index 1a994fb895..85633d9a87 100644
--- a/tests/perf/10ge2p1x520-ethip4-ip4base-copwhtlistbase-ndrpdrdisc.robot
+++ b/tests/perf/10ge2p1x520-ethip4-ip4base-copwhtlistbase-ndrpdrdisc.robot
@@ -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
diff --git a/tests/perf/10ge2p1x520-ethip4-ip4base-eth-2vhost-1vm-ndrpdrdisc.robot b/tests/perf/10ge2p1x520-ethip4-ip4base-eth-2vhost-1vm-ndrpdrdisc.robot
index 6feb74285d..1fe7806106 100644
--- a/tests/perf/10ge2p1x520-ethip4-ip4base-eth-2vhost-1vm-ndrpdrdisc.robot
+++ b/tests/perf/10ge2p1x520-ethip4-ip4base-eth-2vhost-1vm-ndrpdrdisc.robot
@@ -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
diff --git a/tests/perf/10ge2p1x520-ethip4-ip4base-eth-4vhost-2vm-ndrpdrdisc.robot b/tests/perf/10ge2p1x520-ethip4-ip4base-eth-4vhost-2vm-ndrpdrdisc.robot
index 1917d68dd2..d2604cf00b 100644
--- a/tests/perf/10ge2p1x520-ethip4-ip4base-eth-4vhost-2vm-ndrpdrdisc.robot
+++ b/tests/perf/10ge2p1x520-ethip4-ip4base-eth-4vhost-2vm-ndrpdrdisc.robot
@@ -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
diff --git a/tests/perf/10ge2p1x520-ethip4-ip4base-iacldstbase-ndrchk.robot b/tests/perf/10ge2p1x520-ethip4-ip4base-iacldstbase-ndrchk.robot
index e816298be5..f7bb1985cc 100644
--- a/tests/perf/10ge2p1x520-ethip4-ip4base-iacldstbase-ndrchk.robot
+++ b/tests/perf/10ge2p1x520-ethip4-ip4base-iacldstbase-ndrchk.robot
@@ -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
diff --git a/tests/perf/10ge2p1x520-ethip4-ip4base-iacldstbase-ndrpdrdisc.robot b/tests/perf/10ge2p1x520-ethip4-ip4base-iacldstbase-ndrpdrdisc.robot
index d7651a95fd..3f2a066fe1 100644
--- a/tests/perf/10ge2p1x520-ethip4-ip4base-iacldstbase-ndrpdrdisc.robot
+++ b/tests/perf/10ge2p1x520-ethip4-ip4base-iacldstbase-ndrpdrdisc.robot
@@ -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
diff --git a/tests/perf/10ge2p1x520-ethip4-ip4base-ipolicemarkbase-ndrchk.robot b/tests/perf/10ge2p1x520-ethip4-ip4base-ipolicemarkbase-ndrchk.robot
index 788b2b682c..0ab575137f 100644
--- a/tests/perf/10ge2p1x520-ethip4-ip4base-ipolicemarkbase-ndrchk.robot
+++ b/tests/perf/10ge2p1x520-ethip4-ip4base-ipolicemarkbase-ndrchk.robot
@@ -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
diff --git a/tests/perf/10ge2p1x520-ethip4-ip4base-ipolicemarkbase-ndrpdrdisc.robot b/tests/perf/10ge2p1x520-ethip4-ip4base-ipolicemarkbase-ndrpdrdisc.robot
index e27fb96774..b8a5b87e20 100644
--- a/tests/perf/10ge2p1x520-ethip4-ip4base-ipolicemarkbase-ndrpdrdisc.robot
+++ b/tests/perf/10ge2p1x520-ethip4-ip4base-ipolicemarkbase-ndrpdrdisc.robot
@@ -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
diff --git a/tests/perf/10ge2p1x520-ethip4-ip4base-ndrchk.robot b/tests/perf/10ge2p1x520-ethip4-ip4base-ndrchk.robot
index 6fff5e4436..0c482863e0 100644
--- a/tests/perf/10ge2p1x520-ethip4-ip4base-ndrchk.robot
+++ b/tests/perf/10ge2p1x520-ethip4-ip4base-ndrchk.robot
@@ -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
diff --git a/tests/perf/10ge2p1x520-ethip4-ip4base-ndrpdrdisc.robot b/tests/perf/10ge2p1x520-ethip4-ip4base-ndrpdrdisc.robot
index a3d65b9614..ab038fdb23 100644
--- a/tests/perf/10ge2p1x520-ethip4-ip4base-ndrpdrdisc.robot
+++ b/tests/perf/10ge2p1x520-ethip4-ip4base-ndrpdrdisc.robot
@@ -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
@@ -457,7 +457,7 @@
| | ${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
@@ -479,7 +479,7 @@
| | ${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
diff --git a/tests/perf/10ge2p1x520-ethip4-ip4base-pdrchk.robot b/tests/perf/10ge2p1x520-ethip4-ip4base-pdrchk.robot
index ae724087b9..844d0f9ca9 100644
--- a/tests/perf/10ge2p1x520-ethip4-ip4base-pdrchk.robot
+++ b/tests/perf/10ge2p1x520-ethip4-ip4base-pdrchk.robot
@@ -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*
| ...
diff --git a/tests/perf/10ge2p1x520-ethip4-ip4base-snat-ndrpdrdisc.robot b/tests/perf/10ge2p1x520-ethip4-ip4base-snat-ndrpdrdisc.robot
index a331703fd0..f8cf8c1dcb 100644
--- a/tests/perf/10ge2p1x520-ethip4-ip4base-snat-ndrpdrdisc.robot
+++ b/tests/perf/10ge2p1x520-ethip4-ip4base-snat-ndrpdrdisc.robot
@@ -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
| ...
diff --git a/tests/perf/10ge2p1x520-ethip4-ip4scale200k-ndrchk.robot b/tests/perf/10ge2p1x520-ethip4-ip4scale200k-ndrchk.robot
index 3973d82909..69d60d0fa4 100644
--- a/tests/perf/10ge2p1x520-ethip4-ip4scale200k-ndrchk.robot
+++ b/tests/perf/10ge2p1x520-ethip4-ip4scale200k-ndrchk.robot
@@ -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
diff --git a/tests/perf/10ge2p1x520-ethip4-ip4scale200k-ndrpdrdisc.robot b/tests/perf/10ge2p1x520-ethip4-ip4scale200k-ndrpdrdisc.robot
index cb194b3fac..9d97f62db0 100644
--- a/tests/perf/10ge2p1x520-ethip4-ip4scale200k-ndrpdrdisc.robot
+++ b/tests/perf/10ge2p1x520-ethip4-ip4scale200k-ndrpdrdisc.robot
@@ -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
diff --git a/tests/perf/10ge2p1x520-ethip4-ip4scale20k-ndrchk.robot b/tests/perf/10ge2p1x520-ethip4-ip4scale20k-ndrchk.robot
index e354ed8b6b..f9fc2f1738 100644
--- a/tests/perf/10ge2p1x520-ethip4-ip4scale20k-ndrchk.robot
+++ b/tests/perf/10ge2p1x520-ethip4-ip4scale20k-ndrchk.robot
@@ -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
diff --git a/tests/perf/10ge2p1x520-ethip4-ip4scale20k-ndrpdrdisc.robot b/tests/perf/10ge2p1x520-ethip4-ip4scale20k-ndrpdrdisc.robot
index 80587a8077..0117fb4e5c 100644
--- a/tests/perf/10ge2p1x520-ethip4-ip4scale20k-ndrpdrdisc.robot
+++ b/tests/perf/10ge2p1x520-ethip4-ip4scale20k-ndrpdrdisc.robot
@@ -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
diff --git a/tests/perf/10ge2p1x520-ethip4-ip4scale2m-ndrchk.robot b/tests/perf/10ge2p1x520-ethip4-ip4scale2m-ndrchk.robot
index 33f646b2a9..b1ea5ed8d4 100644
--- a/tests/perf/10ge2p1x520-ethip4-ip4scale2m-ndrchk.robot
+++ b/tests/perf/10ge2p1x520-ethip4-ip4scale2m-ndrchk.robot
@@ -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
diff --git a/tests/perf/10ge2p1x520-ethip4-ip4scale2m-ndrpdrdisc.robot b/tests/perf/10ge2p1x520-ethip4-ip4scale2m-ndrpdrdisc.robot
index de6ec65657..c397d82c87 100644
--- a/tests/perf/10ge2p1x520-ethip4-ip4scale2m-ndrpdrdisc.robot
+++ b/tests/perf/10ge2p1x520-ethip4-ip4scale2m-ndrpdrdisc.robot
@@ -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
diff --git a/tests/perf/10ge2p1x520-ethip4lispip4-ip4base-ndrchk.robot b/tests/perf/10ge2p1x520-ethip4lispip4-ip4base-ndrchk.robot
index 540c1c6818..82002a052d 100644
--- a/tests/perf/10ge2p1x520-ethip4lispip4-ip4base-ndrchk.robot
+++ b/tests/perf/10ge2p1x520-ethip4lispip4-ip4base-ndrchk.robot
@@ -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
| ...
diff --git a/tests/perf/10ge2p1x520-ethip4lispip4-ip4base-ndrpdrdisc.robot b/tests/perf/10ge2p1x520-ethip4lispip4-ip4base-ndrpdrdisc.robot
index 63cca31aa2..715ed21faf 100644
--- a/tests/perf/10ge2p1x520-ethip4lispip4-ip4base-ndrpdrdisc.robot
+++ b/tests/perf/10ge2p1x520-ethip4lispip4-ip4base-ndrpdrdisc.robot
@@ -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
| ...
diff --git a/tests/perf/10ge2p1x520-ethip4lispip4-ip4base-pdrchk.robot b/tests/perf/10ge2p1x520-ethip4lispip4-ip4base-pdrchk.robot
index 1971129f85..eba7f6c66c 100644
--- a/tests/perf/10ge2p1x520-ethip4lispip4-ip4base-pdrchk.robot
+++ b/tests/perf/10ge2p1x520-ethip4lispip4-ip4base-pdrchk.robot
@@ -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*
| ...
diff --git a/tests/perf/10ge2p1x520-ethip4lispip6-ip4base-ndrchk.robot b/tests/perf/10ge2p1x520-ethip4lispip6-ip4base-ndrchk.robot
index a60f7c8fc4..aee159f98c 100644
--- a/tests/perf/10ge2p1x520-ethip4lispip6-ip4base-ndrchk.robot
+++ b/tests/perf/10ge2p1x520-ethip4lispip6-ip4base-ndrchk.robot
@@ -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
| ...
diff --git a/tests/perf/10ge2p1x520-ethip4lispip6-ip4base-ndrpdrdisc.robot b/tests/perf/10ge2p1x520-ethip4lispip6-ip4base-ndrpdrdisc.robot
index 6ac7b1df4f..356750ae8f 100644
--- a/tests/perf/10ge2p1x520-ethip4lispip6-ip4base-ndrpdrdisc.robot
+++ b/tests/perf/10ge2p1x520-ethip4lispip6-ip4base-ndrpdrdisc.robot
@@ -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
| ...
diff --git a/tests/perf/10ge2p1x520-ethip4lispip6-ip4base-pdrchk.robot b/tests/perf/10ge2p1x520-ethip4lispip6-ip4base-pdrchk.robot
index 2d6a5e3a45..9efa28b940 100644
--- a/tests/perf/10ge2p1x520-ethip4lispip6-ip4base-pdrchk.robot
+++ b/tests/perf/10ge2p1x520-ethip4lispip6-ip4base-pdrchk.robot
@@ -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*
| ...
diff --git a/tests/perf/10ge2p1x520-ethip4udp-ip4base-udpsrcscale15-snat-ndrpdrdisc.robot b/tests/perf/10ge2p1x520-ethip4udp-ip4base-udpsrcscale15-snat-ndrpdrdisc.robot
index 303faa76f6..a4533d6c02 100644
--- a/tests/perf/10ge2p1x520-ethip4udp-ip4base-udpsrcscale15-snat-ndrpdrdisc.robot
+++ b/tests/perf/10ge2p1x520-ethip4udp-ip4base-udpsrcscale15-snat-ndrpdrdisc.robot
@@ -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
| ...
diff --git a/tests/perf/10ge2p1x520-ethip4udp-ip4scale10-udpsrcscale15-snat-ndrpdrdisc.robot b/tests/perf/10ge2p1x520-ethip4udp-ip4scale10-udpsrcscale15-snat-ndrpdrdisc.robot
index e6d19e81d9..6a6157c323 100644
--- a/tests/perf/10ge2p1x520-ethip4udp-ip4scale10-udpsrcscale15-snat-ndrpdrdisc.robot
+++ b/tests/perf/10ge2p1x520-ethip4udp-ip4scale10-udpsrcscale15-snat-ndrpdrdisc.robot
@@ -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
| ...
diff --git a/tests/perf/10ge2p1x520-ethip4udp-ip4scale100-udpsrcscale15-snat-ndrpdrdisc.robot b/tests/perf/10ge2p1x520-ethip4udp-ip4scale100-udpsrcscale15-snat-ndrpdrdisc.robot
index f50edfcbfb..b01168fde0 100644
--- a/tests/perf/10ge2p1x520-ethip4udp-ip4scale100-udpsrcscale15-snat-ndrpdrdisc.robot
+++ b/tests/perf/10ge2p1x520-ethip4udp-ip4scale100-udpsrcscale15-snat-ndrpdrdisc.robot
@@ -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
| ...
diff --git a/tests/perf/10ge2p1x520-ethip4udp-ip4scale1000-udpsrcscale15-snat-ndrpdrdisc.robot b/tests/perf/10ge2p1x520-ethip4udp-ip4scale1000-udpsrcscale15-snat-ndrpdrdisc.robot
index 8a83963b06..fda5a15801 100644
--- a/tests/perf/10ge2p1x520-ethip4udp-ip4scale1000-udpsrcscale15-snat-ndrpdrdisc.robot
+++ b/tests/perf/10ge2p1x520-ethip4udp-ip4scale1000-udpsrcscale15-snat-ndrpdrdisc.robot
@@ -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
| ...
diff --git a/tests/perf/10ge2p1x520-ethip4udp-ip4scale2000-udpsrcscale15-snat-ndrpdrdisc.robot b/tests/perf/10ge2p1x520-ethip4udp-ip4scale2000-udpsrcscale15-snat-ndrpdrdisc.robot
index d184682c40..3e26427522 100644
--- a/tests/perf/10ge2p1x520-ethip4udp-ip4scale2000-udpsrcscale15-snat-ndrpdrdisc.robot
+++ b/tests/perf/10ge2p1x520-ethip4udp-ip4scale2000-udpsrcscale15-snat-ndrpdrdisc.robot
@@ -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
| ...
diff --git a/tests/perf/10ge2p1x520-ethip4udp-ip4scale4000-udpsrcscale15-snat-ndrpdrdisc.robot b/tests/perf/10ge2p1x520-ethip4udp-ip4scale4000-udpsrcscale15-snat-ndrpdrdisc.robot
index 82fa187f92..3debd2aa1f 100644
--- a/tests/perf/10ge2p1x520-ethip4udp-ip4scale4000-udpsrcscale15-snat-ndrpdrdisc.robot
+++ b/tests/perf/10ge2p1x520-ethip4udp-ip4scale4000-udpsrcscale15-snat-ndrpdrdisc.robot
@@ -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
| ...
diff --git a/tests/perf/10ge2p1x520-ethip4vxlan-l2bdbasemaclrn-eth-2vhost-1vm-ndrpdrdisc.robot b/tests/perf/10ge2p1x520-ethip4vxlan-l2bdbasemaclrn-eth-2vhost-1vm-ndrpdrdisc.robot
index ea26c607db..49db34e2b4 100644
--- a/tests/perf/10ge2p1x520-ethip4vxlan-l2bdbasemaclrn-eth-2vhost-1vm-ndrpdrdisc.robot
+++ b/tests/perf/10ge2p1x520-ethip4vxlan-l2bdbasemaclrn-eth-2vhost-1vm-ndrpdrdisc.robot
@@ -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
diff --git a/tests/perf/10ge2p1x520-ethip4vxlan-l2bdbasemaclrn-ndrpdrdisc.robot b/tests/perf/10ge2p1x520-ethip4vxlan-l2bdbasemaclrn-ndrpdrdisc.robot
index c4cf83d648..06d8ef9b12 100644
--- a/tests/perf/10ge2p1x520-ethip4vxlan-l2bdbasemaclrn-ndrpdrdisc.robot
+++ b/tests/perf/10ge2p1x520-ethip4vxlan-l2bdbasemaclrn-ndrpdrdisc.robot
@@ -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
diff --git a/tests/perf/10ge2p1x520-ethip4vxlan-l2xcbase-ndrchk.robot b/tests/perf/10ge2p1x520-ethip4vxlan-l2xcbase-ndrchk.robot
index 5399cffdd7..999231d96a 100644
--- a/tests/perf/10ge2p1x520-ethip4vxlan-l2xcbase-ndrchk.robot
+++ b/tests/perf/10ge2p1x520-ethip4vxlan-l2xcbase-ndrchk.robot
@@ -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
diff --git a/tests/perf/10ge2p1x520-ethip4vxlan-l2xcbase-ndrpdrdisc.robot b/tests/perf/10ge2p1x520-ethip4vxlan-l2xcbase-ndrpdrdisc.robot
index 187c51045d..db9d1a68c9 100644
--- a/tests/perf/10ge2p1x520-ethip4vxlan-l2xcbase-ndrpdrdisc.robot
+++ b/tests/perf/10ge2p1x520-ethip4vxlan-l2xcbase-ndrpdrdisc.robot
@@ -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
diff --git a/tests/perf/10ge2p1x520-ethip4vxlan-l2xcbase-pdrchk.robot b/tests/perf/10ge2p1x520-ethip4vxlan-l2xcbase-pdrchk.robot
index e0a612bee7..8d8eb096cc 100644
--- a/tests/perf/10ge2p1x520-ethip4vxlan-l2xcbase-pdrchk.robot
+++ b/tests/perf/10ge2p1x520-ethip4vxlan-l2xcbase-pdrchk.robot
@@ -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*
diff --git a/tests/perf/10ge2p1x520-ethip6-ip6base-copwhtlistbase-ndrchk.robot b/tests/perf/10ge2p1x520-ethip6-ip6base-copwhtlistbase-ndrchk.robot
index d734f9da0f..0dcb36f761 100644
--- a/tests/perf/10ge2p1x520-ethip6-ip6base-copwhtlistbase-ndrchk.robot
+++ b/tests/perf/10ge2p1x520-ethip6-ip6base-copwhtlistbase-ndrchk.robot
@@ -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
diff --git a/tests/perf/10ge2p1x520-ethip6-ip6base-copwhtlistbase-ndrpdrdisc.robot b/tests/perf/10ge2p1x520-ethip6-ip6base-copwhtlistbase-ndrpdrdisc.robot
index c85a1ce11d..fa5879507a 100644
--- a/tests/perf/10ge2p1x520-ethip6-ip6base-copwhtlistbase-ndrpdrdisc.robot
+++ b/tests/perf/10ge2p1x520-ethip6-ip6base-copwhtlistbase-ndrpdrdisc.robot
@@ -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
diff --git a/tests/perf/10ge2p1x520-ethip6-ip6base-iacldstbase-ndrchk.robot b/tests/perf/10ge2p1x520-ethip6-ip6base-iacldstbase-ndrchk.robot
index dddb42dbfa..49d3d3bc8f 100644
--- a/tests/perf/10ge2p1x520-ethip6-ip6base-iacldstbase-ndrchk.robot
+++ b/tests/perf/10ge2p1x520-ethip6-ip6base-iacldstbase-ndrchk.robot
@@ -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
diff --git a/tests/perf/10ge2p1x520-ethip6-ip6base-iacldstbase-ndrpdrdisc.robot b/tests/perf/10ge2p1x520-ethip6-ip6base-iacldstbase-ndrpdrdisc.robot
index b00e8bf2c3..1af04c2b21 100644
--- a/tests/perf/10ge2p1x520-ethip6-ip6base-iacldstbase-ndrpdrdisc.robot
+++ b/tests/perf/10ge2p1x520-ethip6-ip6base-iacldstbase-ndrpdrdisc.robot
@@ -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
diff --git a/tests/perf/10ge2p1x520-ethip6-ip6base-ndrchk.robot b/tests/perf/10ge2p1x520-ethip6-ip6base-ndrchk.robot
index 57b6e948af..67a1b21e6b 100644
--- a/tests/perf/10ge2p1x520-ethip6-ip6base-ndrchk.robot
+++ b/tests/perf/10ge2p1x520-ethip6-ip6base-ndrchk.robot
@@ -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
diff --git a/tests/perf/10ge2p1x520-ethip6-ip6base-ndrpdrdisc.robot b/tests/perf/10ge2p1x520-ethip6-ip6base-ndrpdrdisc.robot
index 66057a800b..99d699c795 100644
--- a/tests/perf/10ge2p1x520-ethip6-ip6base-ndrpdrdisc.robot
+++ b/tests/perf/10ge2p1x520-ethip6-ip6base-ndrpdrdisc.robot
@@ -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
diff --git a/tests/perf/10ge2p1x520-ethip6-ip6base-pdrchk.robot b/tests/perf/10ge2p1x520-ethip6-ip6base-pdrchk.robot
index 26e41713b1..3fdab0f62f 100644
--- a/tests/perf/10ge2p1x520-ethip6-ip6base-pdrchk.robot
+++ b/tests/perf/10ge2p1x520-ethip6-ip6base-pdrchk.robot
@@ -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*
| ...
diff --git a/tests/perf/10ge2p1x520-ethip6-ip6scale200k-ndrchk.robot b/tests/perf/10ge2p1x520-ethip6-ip6scale200k-ndrchk.robot
index d9249ab857..d844bb058d 100644
--- a/tests/perf/10ge2p1x520-ethip6-ip6scale200k-ndrchk.robot
+++ b/tests/perf/10ge2p1x520-ethip6-ip6scale200k-ndrchk.robot
@@ -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
diff --git a/tests/perf/10ge2p1x520-ethip6-ip6scale200k-ndrpdrdisc.robot b/tests/perf/10ge2p1x520-ethip6-ip6scale200k-ndrpdrdisc.robot
index 47afeb9477..6b2235ce7a 100644
--- a/tests/perf/10ge2p1x520-ethip6-ip6scale200k-ndrpdrdisc.robot
+++ b/tests/perf/10ge2p1x520-ethip6-ip6scale200k-ndrpdrdisc.robot
@@ -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
diff --git a/tests/perf/10ge2p1x520-ethip6-ip6scale20k-ndrchk.robot b/tests/perf/10ge2p1x520-ethip6-ip6scale20k-ndrchk.robot
index 239dc9552d..2d8ee7cb3e 100644
--- a/tests/perf/10ge2p1x520-ethip6-ip6scale20k-ndrchk.robot
+++ b/tests/perf/10ge2p1x520-ethip6-ip6scale20k-ndrchk.robot
@@ -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
diff --git a/tests/perf/10ge2p1x520-ethip6-ip6scale20k-ndrpdrdisc.robot b/tests/perf/10ge2p1x520-ethip6-ip6scale20k-ndrpdrdisc.robot
index 07a4281738..b685e8adf0 100644
--- a/tests/perf/10ge2p1x520-ethip6-ip6scale20k-ndrpdrdisc.robot
+++ b/tests/perf/10ge2p1x520-ethip6-ip6scale20k-ndrpdrdisc.robot
@@ -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
diff --git a/tests/perf/10ge2p1x520-ethip6-ip6scale2m-ndrchk.robot b/tests/perf/10ge2p1x520-ethip6-ip6scale2m-ndrchk.robot
index c3a5f7a0d1..4aa9caa7bb 100644
--- a/tests/perf/10ge2p1x520-ethip6-ip6scale2m-ndrchk.robot
+++ b/tests/perf/10ge2p1x520-ethip6-ip6scale2m-ndrchk.robot
@@ -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
diff --git a/tests/perf/10ge2p1x520-ethip6-ip6scale2m-ndrpdrdisc.robot b/tests/perf/10ge2p1x520-ethip6-ip6scale2m-ndrpdrdisc.robot
index 2ec5701e9a..9a7b8dc480 100644
--- a/tests/perf/10ge2p1x520-ethip6-ip6scale2m-ndrpdrdisc.robot
+++ b/tests/perf/10ge2p1x520-ethip6-ip6scale2m-ndrpdrdisc.robot
@@ -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
diff --git a/tests/perf/10ge2p1x520-ethip6-ip6scale2m-pdrchk.robot b/tests/perf/10ge2p1x520-ethip6-ip6scale2m-pdrchk.robot
index fa2a3af0bf..6dcb36d234 100644
--- a/tests/perf/10ge2p1x520-ethip6-ip6scale2m-pdrchk.robot
+++ b/tests/perf/10ge2p1x520-ethip6-ip6scale2m-pdrchk.robot
@@ -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*
| ...
diff --git a/tests/perf/10ge2p1x520-ethip6lispip4-ip6base-ndrchk.robot b/tests/perf/10ge2p1x520-ethip6lispip4-ip6base-ndrchk.robot
index 6151a5572c..aaccec61d4 100644
--- a/tests/perf/10ge2p1x520-ethip6lispip4-ip6base-ndrchk.robot
+++ b/tests/perf/10ge2p1x520-ethip6lispip4-ip6base-ndrchk.robot
@@ -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
| ...
diff --git a/tests/perf/10ge2p1x520-ethip6lispip4-ip6base-ndrpdrdisc.robot b/tests/perf/10ge2p1x520-ethip6lispip4-ip6base-ndrpdrdisc.robot
index 01443c0f08..06c38dfd62 100644
--- a/tests/perf/10ge2p1x520-ethip6lispip4-ip6base-ndrpdrdisc.robot
+++ b/tests/perf/10ge2p1x520-ethip6lispip4-ip6base-ndrpdrdisc.robot
@@ -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
| ...
diff --git a/tests/perf/10ge2p1x520-ethip6lispip4-ip6base-pdrchk.robot b/tests/perf/10ge2p1x520-ethip6lispip4-ip6base-pdrchk.robot
index 0f0a990d51..074405f78d 100644
--- a/tests/perf/10ge2p1x520-ethip6lispip4-ip6base-pdrchk.robot
+++ b/tests/perf/10ge2p1x520-ethip6lispip4-ip6base-pdrchk.robot
@@ -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*
| ...
diff --git a/tests/perf/10ge2p1x520-ethip6lispip6-ip6Base-pdrchk.robot b/tests/perf/10ge2p1x520-ethip6lispip6-ip6Base-pdrchk.robot
index af8c88f286..85a1c57811 100644
--- a/tests/perf/10ge2p1x520-ethip6lispip6-ip6Base-pdrchk.robot
+++ b/tests/perf/10ge2p1x520-ethip6lispip6-ip6Base-pdrchk.robot
@@ -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*
| ...
diff --git a/tests/perf/10ge2p1x520-ethip6lispip6-ip6base-ndrchk.robot b/tests/perf/10ge2p1x520-ethip6lispip6-ip6base-ndrchk.robot
index aa68c99778..2afb2804c4 100644
--- a/tests/perf/10ge2p1x520-ethip6lispip6-ip6base-ndrchk.robot
+++ b/tests/perf/10ge2p1x520-ethip6lispip6-ip6base-ndrchk.robot
@@ -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
| ...
diff --git a/tests/perf/10ge2p1x520-ethip6lispip6-ip6base-ndrpdrdisc.robot b/tests/perf/10ge2p1x520-ethip6lispip6-ip6base-ndrpdrdisc.robot
index 2c3f02403a..015e4d59f6 100644
--- a/tests/perf/10ge2p1x520-ethip6lispip6-ip6base-ndrpdrdisc.robot
+++ b/tests/perf/10ge2p1x520-ethip6lispip6-ip6base-ndrpdrdisc.robot
@@ -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
| ...
diff --git a/tests/perf/10ge2p1x710-eth-l2bdbasemaclrn-eth-2vhost-1vm-ndrpdrdisc.robot b/tests/perf/10ge2p1x710-eth-l2bdbasemaclrn-eth-2vhost-1vm-ndrpdrdisc.robot
index 4649404b77..6618a11186 100644
--- a/tests/perf/10ge2p1x710-eth-l2bdbasemaclrn-eth-2vhost-1vm-ndrpdrdisc.robot
+++ b/tests/perf/10ge2p1x710-eth-l2bdbasemaclrn-eth-2vhost-1vm-ndrpdrdisc.robot
@@ -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
diff --git a/tests/perf/10ge2p1x710-eth-l2bdbasemaclrn-ndrpdrdisc.robot b/tests/perf/10ge2p1x710-eth-l2bdbasemaclrn-ndrpdrdisc.robot
index 2a9e702707..033414fa06 100644
--- a/tests/perf/10ge2p1x710-eth-l2bdbasemaclrn-ndrpdrdisc.robot
+++ b/tests/perf/10ge2p1x710-eth-l2bdbasemaclrn-ndrpdrdisc.robot
@@ -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
diff --git a/tests/perf/40ge2p1vic1385-eth-l2bdbasemaclrn-ndrpdrdisc.robot b/tests/perf/40ge2p1vic1385-eth-l2bdbasemaclrn-ndrpdrdisc.robot
index a5a46eb604..3cc908ad3d 100644
--- a/tests/perf/40ge2p1vic1385-eth-l2bdbasemaclrn-ndrpdrdisc.robot
+++ b/tests/perf/40ge2p1vic1385-eth-l2bdbasemaclrn-ndrpdrdisc.robot
@@ -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
@@ -293,7 +293,7 @@
| | ${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
@@ -318,7 +318,7 @@
| | ${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
@@ -343,7 +343,7 @@
| | ${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
diff --git a/tests/perf/40ge2p1xl710-eth-l2bdbasemaclrn-eth-2vhost-1vm-ndrpdrdisc.robot b/tests/perf/40ge2p1xl710-eth-l2bdbasemaclrn-eth-2vhost-1vm-ndrpdrdisc.robot
index df0c30febf..51b4492980 100644
--- a/tests/perf/40ge2p1xl710-eth-l2bdbasemaclrn-eth-2vhost-1vm-ndrpdrdisc.robot
+++ b/tests/perf/40ge2p1xl710-eth-l2bdbasemaclrn-eth-2vhost-1vm-ndrpdrdisc.robot
@@ -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
diff --git a/tests/perf/40ge2p1xl710-eth-l2bdbasemaclrn-eth-4vhost-2vm-ndrpdrdisc.robot b/tests/perf/40ge2p1xl710-eth-l2bdbasemaclrn-eth-4vhost-2vm-ndrpdrdisc.robot
index f0153316c8..1b701dcee4 100644
--- a/tests/perf/40ge2p1xl710-eth-l2bdbasemaclrn-eth-4vhost-2vm-ndrpdrdisc.robot
+++ b/tests/perf/40ge2p1xl710-eth-l2bdbasemaclrn-eth-4vhost-2vm-ndrpdrdisc.robot
@@ -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
diff --git a/tests/perf/40ge2p1xl710-eth-l2bdbasemaclrn-ndrpdrdisc.robot b/tests/perf/40ge2p1xl710-eth-l2bdbasemaclrn-ndrpdrdisc.robot
index 73df75ef9a..96be5d2940 100644
--- a/tests/perf/40ge2p1xl710-eth-l2bdbasemaclrn-ndrpdrdisc.robot
+++ b/tests/perf/40ge2p1xl710-eth-l2bdbasemaclrn-ndrpdrdisc.robot
@@ -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
diff --git a/tests/perf/40ge2p1xl710-eth-l2xcbase-eth-4vhost-2vm-ndrpdrdisc.robot b/tests/perf/40ge2p1xl710-eth-l2xcbase-eth-4vhost-2vm-ndrpdrdisc.robot
index 60bb066b68..decc922af6 100644
--- a/tests/perf/40ge2p1xl710-eth-l2xcbase-eth-4vhost-2vm-ndrpdrdisc.robot
+++ b/tests/perf/40ge2p1xl710-eth-l2xcbase-eth-4vhost-2vm-ndrpdrdisc.robot
@@ -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
diff --git a/tests/perf/40ge2p1xl710-eth-l2xcbase-ndrpdrdisc.robot b/tests/perf/40ge2p1xl710-eth-l2xcbase-ndrpdrdisc.robot
index 875dbb5000..67eb34732f 100644
--- a/tests/perf/40ge2p1xl710-eth-l2xcbase-ndrpdrdisc.robot
+++ b/tests/perf/40ge2p1xl710-eth-l2xcbase-ndrpdrdisc.robot
@@ -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
| ...
@@ -198,7 +198,7 @@
| | ${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
@@ -220,7 +220,7 @@
| | ${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
@@ -242,7 +242,7 @@
| | ${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
diff --git a/tests/perf/40ge2p1xl710-ethip4-ip4base-eth-4vhost-2vm-ndrpdrdisc.robot b/tests/perf/40ge2p1xl710-ethip4-ip4base-eth-4vhost-2vm-ndrpdrdisc.robot
index 6d2cc08ef8..cdfd2b8933 100644
--- a/tests/perf/40ge2p1xl710-ethip4-ip4base-eth-4vhost-2vm-ndrpdrdisc.robot
+++ b/tests/perf/40ge2p1xl710-ethip4-ip4base-eth-4vhost-2vm-ndrpdrdisc.robot
@@ -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
diff --git a/tests/perf/40ge2p1xl710-ethip4-ip4base-ndrpdrdisc.robot b/tests/perf/40ge2p1xl710-ethip4-ip4base-ndrpdrdisc.robot
index 0caf123dd3..926f2547df 100644
--- a/tests/perf/40ge2p1xl710-ethip4-ip4base-ndrpdrdisc.robot
+++ b/tests/perf/40ge2p1xl710-ethip4-ip4base-ndrpdrdisc.robot
@@ -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
@@ -204,7 +204,7 @@
| | ${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
@@ -226,7 +226,7 @@
| | ${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
@@ -248,7 +248,7 @@
| | ${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
diff --git a/tests/perf/40ge2p1xl710-ethip4ipsecbasetnl-ip4base-int-aes-gcm-ndrpdrdisc.robot b/tests/perf/40ge2p1xl710-ethip4ipsecbasetnl-ip4base-int-aes-gcm-ndrpdrdisc.robot
index 21882a8705..d7ad9b1ab4 100644
--- a/tests/perf/40ge2p1xl710-ethip4ipsecbasetnl-ip4base-int-aes-gcm-ndrpdrdisc.robot
+++ b/tests/perf/40ge2p1xl710-ethip4ipsecbasetnl-ip4base-int-aes-gcm-ndrpdrdisc.robot
@@ -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
diff --git a/tests/perf/40ge2p1xl710-ethip4ipsecbasetnl-ip4base-int-cbc-sha1-ndrpdrdisc.robot b/tests/perf/40ge2p1xl710-ethip4ipsecbasetnl-ip4base-int-cbc-sha1-ndrpdrdisc.robot
index bb67bb62c3..fb7fe7b15e 100644
--- a/tests/perf/40ge2p1xl710-ethip4ipsecbasetnl-ip4base-int-cbc-sha1-ndrpdrdisc.robot
+++ b/tests/perf/40ge2p1xl710-ethip4ipsecbasetnl-ip4base-int-cbc-sha1-ndrpdrdisc.robot
@@ -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
diff --git a/tests/perf/40ge2p1xl710-ethip4ipsecbasetnl-ip4base-tnl-aes-gcm-ndrpdrdisc.robot b/tests/perf/40ge2p1xl710-ethip4ipsecbasetnl-ip4base-tnl-aes-gcm-ndrpdrdisc.robot
index 3550cafa88..6bb53fc994 100644
--- a/tests/perf/40ge2p1xl710-ethip4ipsecbasetnl-ip4base-tnl-aes-gcm-ndrpdrdisc.robot
+++ b/tests/perf/40ge2p1xl710-ethip4ipsecbasetnl-ip4base-tnl-aes-gcm-ndrpdrdisc.robot
@@ -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
diff --git a/tests/perf/40ge2p1xl710-ethip4ipsecbasetnl-ip4base-tnl-cbc-sha1-ndrpdrdisc.robot b/tests/perf/40ge2p1xl710-ethip4ipsecbasetnl-ip4base-tnl-cbc-sha1-ndrpdrdisc.robot
index 0ad9e2d4be..c36c18828b 100644
--- a/tests/perf/40ge2p1xl710-ethip4ipsecbasetnl-ip4base-tnl-cbc-sha1-ndrpdrdisc.robot
+++ b/tests/perf/40ge2p1xl710-ethip4ipsecbasetnl-ip4base-tnl-cbc-sha1-ndrpdrdisc.robot
@@ -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
diff --git a/tests/perf/40ge2p1xl710-ethip4ipsecscale1000tnl-ip4base-int-aes-gcm-ndrpdrdisc.robot b/tests/perf/40ge2p1xl710-ethip4ipsecscale1000tnl-ip4base-int-aes-gcm-ndrpdrdisc.robot
index 0d6a188a78..350a47cdbf 100644
--- a/tests/perf/40ge2p1xl710-ethip4ipsecscale1000tnl-ip4base-int-aes-gcm-ndrpdrdisc.robot
+++ b/tests/perf/40ge2p1xl710-ethip4ipsecscale1000tnl-ip4base-int-aes-gcm-ndrpdrdisc.robot
@@ -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
diff --git a/tests/perf/40ge2p1xl710-ethip4ipsecscale1000tnl-ip4base-int-cbc-sha1-ndrpdrdisc.robot b/tests/perf/40ge2p1xl710-ethip4ipsecscale1000tnl-ip4base-int-cbc-sha1-ndrpdrdisc.robot
index 5add604116..b9ae2f4ba3 100644
--- a/tests/perf/40ge2p1xl710-ethip4ipsecscale1000tnl-ip4base-int-cbc-sha1-ndrpdrdisc.robot
+++ b/tests/perf/40ge2p1xl710-ethip4ipsecscale1000tnl-ip4base-int-cbc-sha1-ndrpdrdisc.robot
@@ -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
diff --git a/tests/perf/40ge2p1xl710-ethip4ipsecscale1000tnl-ip4base-tnl-aes-gcm-ndrpdrdisc.robot b/tests/perf/40ge2p1xl710-ethip4ipsecscale1000tnl-ip4base-tnl-aes-gcm-ndrpdrdisc.robot
index 343c3159b9..122076c694 100644
--- a/tests/perf/40ge2p1xl710-ethip4ipsecscale1000tnl-ip4base-tnl-aes-gcm-ndrpdrdisc.robot
+++ b/tests/perf/40ge2p1xl710-ethip4ipsecscale1000tnl-ip4base-tnl-aes-gcm-ndrpdrdisc.robot
@@ -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
diff --git a/tests/perf/40ge2p1xl710-ethip4ipsecscale1000tnl-ip4base-tnl-cbc-sha1-ndrpdrdisc.robot b/tests/perf/40ge2p1xl710-ethip4ipsecscale1000tnl-ip4base-tnl-cbc-sha1-ndrpdrdisc.robot
index 8d6403ba8b..588a715b68 100644
--- a/tests/perf/40ge2p1xl710-ethip4ipsecscale1000tnl-ip4base-tnl-cbc-sha1-ndrpdrdisc.robot
+++ b/tests/perf/40ge2p1xl710-ethip4ipsecscale1000tnl-ip4base-tnl-cbc-sha1-ndrpdrdisc.robot
@@ -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
diff --git a/tests/perf/40ge2p1xl710-ethip4ipsectptlispgpe-ip4base-cbc-sha1-ndrpdrdisc.robot b/tests/perf/40ge2p1xl710-ethip4ipsectptlispgpe-ip4base-cbc-sha1-ndrpdrdisc.robot
index 734440c1dd..03aa4f9a66 100644
--- a/tests/perf/40ge2p1xl710-ethip4ipsectptlispgpe-ip4base-cbc-sha1-ndrpdrdisc.robot
+++ b/tests/perf/40ge2p1xl710-ethip4ipsectptlispgpe-ip4base-cbc-sha1-ndrpdrdisc.robot
@@ -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
| ...
diff --git a/tests/perf/40ge2p1xl710-ethip6-ip6base-ndrpdrdisc.robot b/tests/perf/40ge2p1xl710-ethip6-ip6base-ndrpdrdisc.robot
index f37779d4f5..016b4d963b 100644
--- a/tests/perf/40ge2p1xl710-ethip6-ip6base-ndrpdrdisc.robot
+++ b/tests/perf/40ge2p1xl710-ethip6-ip6base-ndrpdrdisc.robot
@@ -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