aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorPeter Mikus <pmikus@cisco.com>2018-07-10 06:10:41 +0000
committerPeter Mikus <pmikus@cisco.com>2018-07-13 09:11:04 +0000
commitad71afc5baa8008bd5d4ea26f51a71eefe3fbe62 (patch)
tree3b1c24ab540b5f57ee4b3592368191bc1f227cc7
parent338b195c0d7274b921eb18944d27ed1b4cb3739f (diff)
Refactor perf test cases
- Refactor Performance TCs due to changes in Hyperthreading and RXQ allocations. - Simplify the structure of suite to avoid large refactors in future. Change-Id: Ifb1b9719391f26745f075a900bd9fb39b6cb809c Signed-off-by: Peter Mikus <pmikus@cisco.com>
-rw-r--r--resources/libraries/robot/performance/performance_configuration.robot56
-rw-r--r--resources/libraries/robot/shared/default.robot51
-rw-r--r--tests/vpp/perf/container_memif/10ge2p1x520-eth-l2bdbasemaclrn-eth-2memif-1lxc-mrr.robot160
-rw-r--r--tests/vpp/perf/container_memif/10ge2p1x520-eth-l2bdbasemaclrn-eth-2memif-1lxc-ndrpdrdisc.robot141
-rw-r--r--tests/vpp/perf/container_memif/10ge2p1x520-eth-l2xcbase-eth-1memif-1dcr-mrr.robot120
-rw-r--r--tests/vpp/perf/container_memif/10ge2p1x520-eth-l2xcbase-eth-1memif-1dcr-ndrpdrdisc.robot227
-rw-r--r--tests/vpp/perf/container_memif/10ge2p1x520-eth-l2xcbase-eth-2memif-1dcr-mrr.robot136
-rw-r--r--tests/vpp/perf/container_memif/10ge2p1x520-eth-l2xcbase-eth-2memif-1drc-ndrpdrdisc.robot139
-rw-r--r--tests/vpp/perf/container_memif/10ge2p1x520-eth-l2xcbase-eth-2memif-1lxc-mrr.robot136
-rw-r--r--tests/vpp/perf/container_memif/10ge2p1x520-eth-l2xcbase-eth-2memif-1lxc-ndrpdrdisc.robot139
-rw-r--r--tests/vpp/perf/container_memif/10ge2p1x710-eth-l2bdbasemaclrn-eth-2memif-1lxc-mrr.robot136
-rw-r--r--tests/vpp/perf/container_memif/10ge2p1x710-eth-l2xcbase-eth-1memif-1dcr-mrr.robot120
-rw-r--r--tests/vpp/perf/container_memif/10ge2p1x710-eth-l2xcbase-eth-1memif-1dcr-ndrpdrdisc.robot227
-rw-r--r--tests/vpp/perf/container_memif/10ge2p1x710-eth-l2xcbase-eth-2memif-1dcr-mrr.robot136
-rw-r--r--tests/vpp/perf/container_memif/10ge2p1x710-eth-l2xcbase-eth-2memif-1lxc-mrr.robot136
-rw-r--r--tests/vpp/perf/container_memif/40ge2p1xl710-eth-l2bdbasemaclrn-eth-2memif-1lxc-mrr.robot136
-rw-r--r--tests/vpp/perf/container_memif/40ge2p1xl710-eth-l2xcbase-eth-2memif-1lxc-mrr.robot134
-rw-r--r--tests/vpp/perf/crypto/40ge2p1xl710-ethip4ipsecbasetnl-ip4base-int-aes-gcm-mrr.robot113
-rw-r--r--tests/vpp/perf/crypto/40ge2p1xl710-ethip4ipsecbasetnl-ip4base-int-aes-gcm-ndrpdrdisc.robot116
-rw-r--r--tests/vpp/perf/crypto/40ge2p1xl710-ethip4ipsecbasetnl-ip4base-int-cbc-sha1-mrr.robot113
-rw-r--r--tests/vpp/perf/crypto/40ge2p1xl710-ethip4ipsecbasetnl-ip4base-int-cbc-sha1-ndrpdrdisc.robot17
-rw-r--r--tests/vpp/perf/crypto/40ge2p1xl710-ethip4ipsecbasetnl-ip4base-tnl-aes-gcm-ndrpdrdisc.robot17
-rw-r--r--tests/vpp/perf/crypto/40ge2p1xl710-ethip4ipsecbasetnl-ip4base-tnl-cbc-sha1-ndrpdrdisc.robot17
-rw-r--r--tests/vpp/perf/crypto/40ge2p1xl710-ethip4ipsecbasetnlsw-ip4base-int-aes-gcm-mrr.robot114
-rw-r--r--tests/vpp/perf/crypto/40ge2p1xl710-ethip4ipsecbasetnlsw-ip4base-int-aes-gcm-ndrpdrdisc.robot117
-rw-r--r--tests/vpp/perf/crypto/40ge2p1xl710-ethip4ipsecbasetnlsw-ip4base-int-cbc-sha1-mrr.robot113
-rw-r--r--tests/vpp/perf/crypto/40ge2p1xl710-ethip4ipsecbasetnlsw-ip4base-int-cbc-sha1-ndrpdrdisc.robot116
-rw-r--r--tests/vpp/perf/crypto/40ge2p1xl710-ethip4ipsecbasetnlsw-ip4base-tnl-aes-gcm-ndrpdrdisc.robot116
-rw-r--r--tests/vpp/perf/crypto/40ge2p1xl710-ethip4ipsecbasetnlsw-ip4base-tnl-cbc-sha1-ndrpdrdisc.robot116
-rw-r--r--tests/vpp/perf/crypto/40ge2p1xl710-ethip4ipsecscale1000tnl-ip4base-int-aes-gcm-mrr.robot113
-rw-r--r--tests/vpp/perf/crypto/40ge2p1xl710-ethip4ipsecscale1000tnl-ip4base-int-aes-gcm-ndrpdrdisc.robot17
-rw-r--r--tests/vpp/perf/crypto/40ge2p1xl710-ethip4ipsecscale1000tnl-ip4base-int-cbc-sha1-mrr.robot113
-rw-r--r--tests/vpp/perf/crypto/40ge2p1xl710-ethip4ipsecscale1000tnl-ip4base-int-cbc-sha1-ndrpdrdisc.robot17
-rw-r--r--tests/vpp/perf/crypto/40ge2p1xl710-ethip4ipsecscale1000tnl-ip4base-tnl-aes-gcm-ndrpdrdisc.robot17
-rw-r--r--tests/vpp/perf/crypto/40ge2p1xl710-ethip4ipsecscale1000tnl-ip4base-tnl-cbc-sha1-ndrpdrdisc.robot17
-rw-r--r--tests/vpp/perf/crypto/40ge2p1xl710-ethip4ipsectptlispgpe-ip4base-cbc-sha1-ndrpdrdisc.robot21
-rw-r--r--tests/vpp/perf/ip4/10ge2p1x520-ethip4-ip4base-copwhtlistbase-mrr.robot144
-rw-r--r--tests/vpp/perf/ip4/10ge2p1x520-ethip4-ip4base-copwhtlistbase-ndrpdrdisc.robot171
-rw-r--r--tests/vpp/perf/ip4/10ge2p1x520-ethip4-ip4base-iacldstbase-mrr.robot145
-rw-r--r--tests/vpp/perf/ip4/10ge2p1x520-ethip4-ip4base-iacldstbase-ndrpdrdisc.robot171
-rw-r--r--tests/vpp/perf/ip4/10ge2p1x520-ethip4-ip4base-ipolicemarkbase-mrr.robot146
-rw-r--r--tests/vpp/perf/ip4/10ge2p1x520-ethip4-ip4base-ipolicemarkbase-ndrpdrdisc.robot171
-rw-r--r--tests/vpp/perf/ip4/10ge2p1x520-ethip4-ip4base-mrr.robot145
-rw-r--r--tests/vpp/perf/ip4/10ge2p1x520-ethip4-ip4base-ndrpdr.robot44
-rw-r--r--tests/vpp/perf/ip4/10ge2p1x520-ethip4-ip4base-ndrpdrdisc.robot153
-rw-r--r--tests/vpp/perf/ip4/10ge2p1x520-ethip4-ip4scale200k-mrr.robot144
-rw-r--r--tests/vpp/perf/ip4/10ge2p1x520-ethip4-ip4scale200k-ndrpdrdisc.robot36
-rw-r--r--tests/vpp/perf/ip4/10ge2p1x520-ethip4-ip4scale20k-mrr.robot145
-rw-r--r--tests/vpp/perf/ip4/10ge2p1x520-ethip4-ip4scale20k-ndrpdrdisc.robot36
-rw-r--r--tests/vpp/perf/ip4/10ge2p1x520-ethip4-ip4scale2m-mrr.robot144
-rw-r--r--tests/vpp/perf/ip4/10ge2p1x520-ethip4-ip4scale2m-ndrpdrdisc.robot36
-rw-r--r--tests/vpp/perf/ip4/10ge2p1x520-ethip4udp-ip4base-iacl10sf-100flows-ndrpdrdisc.robot70
-rw-r--r--tests/vpp/perf/ip4/10ge2p1x520-ethip4udp-ip4base-iacl10sf-100kflows-ndrpdrdisc.robot70
-rw-r--r--tests/vpp/perf/ip4/10ge2p1x520-ethip4udp-ip4base-iacl10sf-10kflows-ndrpdrdisc.robot70
-rw-r--r--tests/vpp/perf/ip4/10ge2p1x520-ethip4udp-ip4base-iacl10sl-100flows-ndrpdrdisc.robot70
-rw-r--r--tests/vpp/perf/ip4/10ge2p1x520-ethip4udp-ip4base-iacl10sl-100kflows-ndrpdrdisc.robot70
-rw-r--r--tests/vpp/perf/ip4/10ge2p1x520-ethip4udp-ip4base-iacl10sl-10kflows-ndrpdrdisc.robot70
-rw-r--r--tests/vpp/perf/ip4/10ge2p1x520-ethip4udp-ip4base-iacl1sf-100flows-ndrpdrdisc.robot70
-rw-r--r--tests/vpp/perf/ip4/10ge2p1x520-ethip4udp-ip4base-iacl1sf-100kflows-ndrpdrdisc.robot70
-rw-r--r--tests/vpp/perf/ip4/10ge2p1x520-ethip4udp-ip4base-iacl1sf-10kflows-mrr.robot145
-rw-r--r--tests/vpp/perf/ip4/10ge2p1x520-ethip4udp-ip4base-iacl1sf-10kflows-ndrpdrdisc.robot70
-rw-r--r--tests/vpp/perf/ip4/10ge2p1x520-ethip4udp-ip4base-iacl1sl-100flows-ndrpdrdisc.robot70
-rw-r--r--tests/vpp/perf/ip4/10ge2p1x520-ethip4udp-ip4base-iacl1sl-100kflows-ndrpdrdisc.robot70
-rw-r--r--tests/vpp/perf/ip4/10ge2p1x520-ethip4udp-ip4base-iacl1sl-10kflows-mrr.robot144
-rw-r--r--tests/vpp/perf/ip4/10ge2p1x520-ethip4udp-ip4base-iacl1sl-10kflows-ndrpdrdisc.robot70
-rw-r--r--tests/vpp/perf/ip4/10ge2p1x520-ethip4udp-ip4base-iacl50sf-100flows-ndrpdrdisc.robot70
-rw-r--r--tests/vpp/perf/ip4/10ge2p1x520-ethip4udp-ip4base-iacl50sf-100kflows-ndrpdrdisc.robot70
-rw-r--r--tests/vpp/perf/ip4/10ge2p1x520-ethip4udp-ip4base-iacl50sf-10kflows-mrr.robot144
-rw-r--r--tests/vpp/perf/ip4/10ge2p1x520-ethip4udp-ip4base-iacl50sf-10kflows-ndrpdrdisc.robot70
-rw-r--r--tests/vpp/perf/ip4/10ge2p1x520-ethip4udp-ip4base-iacl50sl-100flows-ndrpdrdisc.robot70
-rw-r--r--tests/vpp/perf/ip4/10ge2p1x520-ethip4udp-ip4base-iacl50sl-100kflows-ndrpdrdisc.robot70
-rw-r--r--tests/vpp/perf/ip4/10ge2p1x520-ethip4udp-ip4base-iacl50sl-10kflows-mrr.robot144
-rw-r--r--tests/vpp/perf/ip4/10ge2p1x520-ethip4udp-ip4base-iacl50sl-10kflows-ndrpdrdisc.robot70
-rw-r--r--tests/vpp/perf/ip4/10ge2p1x520-ethip4udp-ip4base-nat44-mrr.robot154
-rw-r--r--tests/vpp/perf/ip4/10ge2p1x520-ethip4udp-ip4base-nat44-ndrpdrdisc.robot208
-rw-r--r--tests/vpp/perf/ip4/10ge2p1x520-ethip4udp-ip4base-oacl10sf-100flows-ndrpdrdisc.robot70
-rw-r--r--tests/vpp/perf/ip4/10ge2p1x520-ethip4udp-ip4base-oacl10sf-100kflows-ndrpdrdisc.robot70
-rw-r--r--tests/vpp/perf/ip4/10ge2p1x520-ethip4udp-ip4base-oacl10sf-10kflows-ndrpdrdisc.robot70
-rw-r--r--tests/vpp/perf/ip4/10ge2p1x520-ethip4udp-ip4base-oacl10sl-100flows-ndrpdrdisc.robot70
-rw-r--r--tests/vpp/perf/ip4/10ge2p1x520-ethip4udp-ip4base-oacl10sl-100kflows-ndrpdrdisc.robot70
-rw-r--r--tests/vpp/perf/ip4/10ge2p1x520-ethip4udp-ip4base-oacl10sl-10kflows-ndrpdrdisc.robot70
-rw-r--r--tests/vpp/perf/ip4/10ge2p1x520-ethip4udp-ip4base-oacl1sf-100flows-ndrpdrdisc.robot70
-rw-r--r--tests/vpp/perf/ip4/10ge2p1x520-ethip4udp-ip4base-oacl1sf-100kflows-ndrpdrdisc.robot70
-rw-r--r--tests/vpp/perf/ip4/10ge2p1x520-ethip4udp-ip4base-oacl1sf-10kflows-ndrpdrdisc.robot70
-rw-r--r--tests/vpp/perf/ip4/10ge2p1x520-ethip4udp-ip4base-oacl1sl-100flows-ndrpdrdisc.robot70
-rw-r--r--tests/vpp/perf/ip4/10ge2p1x520-ethip4udp-ip4base-oacl1sl-100kflows-ndrpdrdisc.robot70
-rw-r--r--tests/vpp/perf/ip4/10ge2p1x520-ethip4udp-ip4base-oacl1sl-10kflows-ndrpdrdisc.robot70
-rw-r--r--tests/vpp/perf/ip4/10ge2p1x520-ethip4udp-ip4base-oacl50sf-100flows-ndrpdrdisc.robot70
-rw-r--r--tests/vpp/perf/ip4/10ge2p1x520-ethip4udp-ip4base-oacl50sf-100kflows-ndrpdrdisc.robot70
-rw-r--r--tests/vpp/perf/ip4/10ge2p1x520-ethip4udp-ip4base-oacl50sf-10kflows-ndrpdrdisc.robot70
-rw-r--r--tests/vpp/perf/ip4/10ge2p1x520-ethip4udp-ip4base-oacl50sl-100flows-ndrpdrdisc.robot70
-rw-r--r--tests/vpp/perf/ip4/10ge2p1x520-ethip4udp-ip4base-oacl50sl-100kflows-ndrpdrdisc.robot70
-rw-r--r--tests/vpp/perf/ip4/10ge2p1x520-ethip4udp-ip4base-oacl50sl-10kflows-ndrpdrdisc.robot70
-rw-r--r--tests/vpp/perf/ip4/10ge2p1x520-ethip4udp-ip4base-udpsrcscale15-nat44-ndrpdrdisc.robot208
-rw-r--r--tests/vpp/perf/ip4/10ge2p1x520-ethip4udp-ip4scale10-udpsrcscale15-nat44-ndrpdrdisc.robot208
-rw-r--r--tests/vpp/perf/ip4/10ge2p1x520-ethip4udp-ip4scale100-udpsrcscale15-nat44-ndrpdrdisc.robot208
-rw-r--r--tests/vpp/perf/ip4/10ge2p1x520-ethip4udp-ip4scale1000-udpsrcscale15-nat44-mrr.robot153
-rw-r--r--tests/vpp/perf/ip4/10ge2p1x520-ethip4udp-ip4scale1000-udpsrcscale15-nat44-ndrpdrdisc.robot208
-rw-r--r--tests/vpp/perf/ip4/10ge2p1x520-ethip4udp-ip4scale2000-udpsrcscale15-nat44-ndrpdrdisc.robot208
-rw-r--r--tests/vpp/perf/ip4/10ge2p1x520-ethip4udp-ip4scale4000-udpsrcscale15-nat44-ndrpdrdisc.robot208
-rw-r--r--tests/vpp/perf/ip4/10ge2p1x710-ethip4-ip4base-copwhtlistbase-mrr.robot144
-rw-r--r--tests/vpp/perf/ip4/10ge2p1x710-ethip4-ip4base-iacldstbase-mrr.robot144
-rw-r--r--tests/vpp/perf/ip4/10ge2p1x710-ethip4-ip4base-ipolicemarkbase-mrr.robot146
-rw-r--r--tests/vpp/perf/ip4/10ge2p1x710-ethip4-ip4base-mrr.robot144
-rw-r--r--tests/vpp/perf/ip4/10ge2p1x710-ethip4-ip4scale200k-mrr.robot144
-rw-r--r--tests/vpp/perf/ip4/10ge2p1x710-ethip4-ip4scale20k-mrr.robot144
-rw-r--r--tests/vpp/perf/ip4/10ge2p1x710-ethip4-ip4scale2m-mrr.robot144
-rw-r--r--tests/vpp/perf/ip4/10ge2p1x710-ethip4udp-ip4base-iacl1sf-10kflows-mrr.robot144
-rw-r--r--tests/vpp/perf/ip4/10ge2p1x710-ethip4udp-ip4base-iacl1sl-10kflows-mrr.robot144
-rw-r--r--tests/vpp/perf/ip4/10ge2p1x710-ethip4udp-ip4base-iacl50sf-10kflows-mrr.robot144
-rw-r--r--tests/vpp/perf/ip4/10ge2p1x710-ethip4udp-ip4base-iacl50sl-10kflows-mrr.robot144
-rw-r--r--tests/vpp/perf/ip4/10ge2p1x710-ethip4udp-ip4base-nat44-mrr.robot157
-rw-r--r--tests/vpp/perf/ip4/10ge2p1x710-ethip4udp-ip4scale1000-udpsrcscale15-nat44-mrr.robot156
-rw-r--r--tests/vpp/perf/ip4/40ge2p1xl710-ethip4-ip4base-mrr.robot144
-rw-r--r--tests/vpp/perf/ip4/40ge2p1xl710-ethip4-ip4base-ndrpdrdisc.robot18
-rw-r--r--tests/vpp/perf/ip4_tunnels/10ge2p1x520-ethip4lispip4-ip4base-mrr.robot156
-rw-r--r--tests/vpp/perf/ip4_tunnels/10ge2p1x520-ethip4lispip4-ip4base-ndrpdrdisc.robot36
-rw-r--r--tests/vpp/perf/ip4_tunnels/10ge2p1x520-ethip4lispip6-ip4base-ndrpdrdisc.robot36
-rw-r--r--tests/vpp/perf/ip4_tunnels/10ge2p1x520-ethip4vxlan-l2bdbasemaclrn-mrr.robot144
-rw-r--r--tests/vpp/perf/ip4_tunnels/10ge2p1x520-ethip4vxlan-l2bdbasemaclrn-ndrpdrdisc.robot36
-rw-r--r--tests/vpp/perf/ip4_tunnels/10ge2p1x520-ethip4vxlan-l2xcbase-mrr.robot143
-rw-r--r--tests/vpp/perf/ip4_tunnels/10ge2p1x520-ethip4vxlan-l2xcbase-ndrpdrdisc.robot36
-rw-r--r--tests/vpp/perf/ip4_tunnels/10ge2p1x710-ethip4lispip4-ip4base-mrr.robot157
-rw-r--r--tests/vpp/perf/ip4_tunnels/10ge2p1x710-ethip4vxlan-l2bdbasemaclrn-mrr.robot145
-rw-r--r--tests/vpp/perf/ip4_tunnels/10ge2p1x710-ethip4vxlan-l2xcbase-mrr.robot145
-rw-r--r--tests/vpp/perf/ip6/10ge2p1x520-ethip6-ip6base-copwhtlistbase-mrr.robot144
-rw-r--r--tests/vpp/perf/ip6/10ge2p1x520-ethip6-ip6base-copwhtlistbase-ndrpdrdisc.robot36
-rw-r--r--tests/vpp/perf/ip6/10ge2p1x520-ethip6-ip6base-iacldstbase-mrr.robot144
-rw-r--r--tests/vpp/perf/ip6/10ge2p1x520-ethip6-ip6base-iacldstbase-ndrpdrdisc.robot36
-rw-r--r--tests/vpp/perf/ip6/10ge2p1x520-ethip6-ip6base-mrr.robot144
-rw-r--r--tests/vpp/perf/ip6/10ge2p1x520-ethip6-ip6base-ndrpdrdisc.robot36
-rw-r--r--tests/vpp/perf/ip6/10ge2p1x520-ethip6-ip6scale200k-mrr.robot144
-rw-r--r--tests/vpp/perf/ip6/10ge2p1x520-ethip6-ip6scale200k-ndrpdrdisc.robot36
-rw-r--r--tests/vpp/perf/ip6/10ge2p1x520-ethip6-ip6scale20k-mrr.robot144
-rw-r--r--tests/vpp/perf/ip6/10ge2p1x520-ethip6-ip6scale20k-ndrpdrdisc.robot36
-rw-r--r--tests/vpp/perf/ip6/10ge2p1x520-ethip6-ip6scale2m-mrr.robot144
-rw-r--r--tests/vpp/perf/ip6/10ge2p1x520-ethip6-ip6scale2m-ndrpdrdisc.robot36
-rw-r--r--tests/vpp/perf/ip6/10ge2p1x710-ethip6-ip6base-copwhtlistbase-mrr.robot144
-rw-r--r--tests/vpp/perf/ip6/10ge2p1x710-ethip6-ip6base-iacldstbase-mrr.robot144
-rw-r--r--tests/vpp/perf/ip6/10ge2p1x710-ethip6-ip6base-mrr.robot144
-rw-r--r--tests/vpp/perf/ip6/10ge2p1x710-ethip6-ip6scale200k-mrr.robot144
-rw-r--r--tests/vpp/perf/ip6/10ge2p1x710-ethip6-ip6scale20k-mrr.robot144
-rw-r--r--tests/vpp/perf/ip6/10ge2p1x710-ethip6-ip6scale2m-mrr.robot144
-rw-r--r--tests/vpp/perf/ip6/40ge2p1xl710-ethip6-ip6base-mrr.robot144
-rw-r--r--tests/vpp/perf/ip6/40ge2p1xl710-ethip6-ip6base-ndrpdrdisc.robot12
-rw-r--r--tests/vpp/perf/ip6_tunnels/10ge2p1x520-ethip6lispip4-ip6base-ndrpdrdisc.robot36
-rw-r--r--tests/vpp/perf/ip6_tunnels/10ge2p1x520-ethip6lispip6-ip6base-ndrpdrdisc.robot36
-rw-r--r--tests/vpp/perf/l2/10ge2p1vic1227-eth-l2bdbasemaclrn-ndrpdrdisc.robot162
-rw-r--r--tests/vpp/perf/l2/10ge2p1x520-dot1ad-l2xcbase-ndrpdrdisc.robot36
-rw-r--r--tests/vpp/perf/l2/10ge2p1x520-dot1q-l2bdbasemaclrn-mrr.robot144
-rw-r--r--tests/vpp/perf/l2/10ge2p1x520-dot1q-l2bdbasemaclrn-ndrpdrdisc.robot195
-rw-r--r--tests/vpp/perf/l2/10ge2p1x520-dot1q-l2xcbase-mrr.robot144
-rw-r--r--tests/vpp/perf/l2/10ge2p1x520-dot1q-l2xcbase-ndrpdrdisc.robot36
-rw-r--r--tests/vpp/perf/l2/10ge2p1x520-eth-l2bdbasemaclrn-iacl10sf-100flows-ndrpdrdisc.robot70
-rw-r--r--tests/vpp/perf/l2/10ge2p1x520-eth-l2bdbasemaclrn-iacl10sf-100kflows-ndrpdrdisc.robot70
-rw-r--r--tests/vpp/perf/l2/10ge2p1x520-eth-l2bdbasemaclrn-iacl10sf-10kflows-ndrpdrdisc.robot70
-rw-r--r--tests/vpp/perf/l2/10ge2p1x520-eth-l2bdbasemaclrn-iacl10sl-100flows-ndrpdrdisc.robot70
-rw-r--r--tests/vpp/perf/l2/10ge2p1x520-eth-l2bdbasemaclrn-iacl10sl-100kflows-ndrpdrdisc.robot70
-rw-r--r--tests/vpp/perf/l2/10ge2p1x520-eth-l2bdbasemaclrn-iacl10sl-10kflows-ndrpdrdisc.robot70
-rw-r--r--tests/vpp/perf/l2/10ge2p1x520-eth-l2bdbasemaclrn-iacl1sf-100flows-ndrpdrdisc.robot70
-rw-r--r--tests/vpp/perf/l2/10ge2p1x520-eth-l2bdbasemaclrn-iacl1sf-100kflows-ndrpdrdisc.robot70
-rw-r--r--tests/vpp/perf/l2/10ge2p1x520-eth-l2bdbasemaclrn-iacl1sf-10kflows-mrr.robot144
-rw-r--r--tests/vpp/perf/l2/10ge2p1x520-eth-l2bdbasemaclrn-iacl1sf-10kflows-ndrpdrdisc.robot70
-rw-r--r--tests/vpp/perf/l2/10ge2p1x520-eth-l2bdbasemaclrn-iacl1sl-100flows-ndrpdrdisc.robot70
-rw-r--r--tests/vpp/perf/l2/10ge2p1x520-eth-l2bdbasemaclrn-iacl1sl-100kflows-ndrpdrdisc.robot70
-rw-r--r--tests/vpp/perf/l2/10ge2p1x520-eth-l2bdbasemaclrn-iacl1sl-10kflows-mrr.robot144
-rw-r--r--tests/vpp/perf/l2/10ge2p1x520-eth-l2bdbasemaclrn-iacl1sl-10kflows-ndrpdrdisc.robot70
-rw-r--r--tests/vpp/perf/l2/10ge2p1x520-eth-l2bdbasemaclrn-iacl50sf-100flows-ndrpdrdisc.robot70
-rw-r--r--tests/vpp/perf/l2/10ge2p1x520-eth-l2bdbasemaclrn-iacl50sf-100kflows-ndrpdrdisc.robot70
-rw-r--r--tests/vpp/perf/l2/10ge2p1x520-eth-l2bdbasemaclrn-iacl50sf-10kflows-mrr.robot144
-rw-r--r--tests/vpp/perf/l2/10ge2p1x520-eth-l2bdbasemaclrn-iacl50sf-10kflows-ndrpdrdisc.robot70
-rw-r--r--tests/vpp/perf/l2/10ge2p1x520-eth-l2bdbasemaclrn-iacl50sl-100flows-ndrpdrdisc.robot70
-rw-r--r--tests/vpp/perf/l2/10ge2p1x520-eth-l2bdbasemaclrn-iacl50sl-100kflows-ndrpdrdisc.robot70
-rw-r--r--tests/vpp/perf/l2/10ge2p1x520-eth-l2bdbasemaclrn-iacl50sl-10kflows-mrr.robot144
-rw-r--r--tests/vpp/perf/l2/10ge2p1x520-eth-l2bdbasemaclrn-iacl50sl-10kflows-ndrpdrdisc.robot70
-rw-r--r--tests/vpp/perf/l2/10ge2p1x520-eth-l2bdbasemaclrn-macip-iacl10sl-100flows-ndrpdrdisc.robot70
-rw-r--r--tests/vpp/perf/l2/10ge2p1x520-eth-l2bdbasemaclrn-macip-iacl10sl-100kflows-ndrpdrdisc.robot70
-rw-r--r--tests/vpp/perf/l2/10ge2p1x520-eth-l2bdbasemaclrn-macip-iacl10sl-10kflows-ndrpdrdisc.robot70
-rw-r--r--tests/vpp/perf/l2/10ge2p1x520-eth-l2bdbasemaclrn-macip-iacl1sl-100flows-ndrpdrdisc.robot70
-rw-r--r--tests/vpp/perf/l2/10ge2p1x520-eth-l2bdbasemaclrn-macip-iacl1sl-100kflows-ndrpdrdisc.robot70
-rw-r--r--tests/vpp/perf/l2/10ge2p1x520-eth-l2bdbasemaclrn-macip-iacl1sl-10kflows-ndrpdrdisc.robot70
-rw-r--r--tests/vpp/perf/l2/10ge2p1x520-eth-l2bdbasemaclrn-macip-iacl50sl-100flows-ndrpdrdisc.robot70
-rw-r--r--tests/vpp/perf/l2/10ge2p1x520-eth-l2bdbasemaclrn-macip-iacl50sl-100kflows-ndrpdrdisc.robot70
-rw-r--r--tests/vpp/perf/l2/10ge2p1x520-eth-l2bdbasemaclrn-macip-iacl50sl-10kflows-ndrpdrdisc.robot70
-rw-r--r--tests/vpp/perf/l2/10ge2p1x520-eth-l2bdbasemaclrn-mrr.robot132
-rw-r--r--tests/vpp/perf/l2/10ge2p1x520-eth-l2bdbasemaclrn-ndrpdrdisc.robot152
-rw-r--r--tests/vpp/perf/l2/10ge2p1x520-eth-l2bdbasemaclrn-oacl10sf-100flows-ndrpdrdisc.robot70
-rw-r--r--tests/vpp/perf/l2/10ge2p1x520-eth-l2bdbasemaclrn-oacl10sf-100kflows-ndrpdrdisc.robot70
-rw-r--r--tests/vpp/perf/l2/10ge2p1x520-eth-l2bdbasemaclrn-oacl10sf-10kflows-ndrpdrdisc.robot70
-rw-r--r--tests/vpp/perf/l2/10ge2p1x520-eth-l2bdbasemaclrn-oacl10sl-100flows-ndrpdrdisc.robot70
-rw-r--r--tests/vpp/perf/l2/10ge2p1x520-eth-l2bdbasemaclrn-oacl10sl-100kflows-ndrpdrdisc.robot70
-rw-r--r--tests/vpp/perf/l2/10ge2p1x520-eth-l2bdbasemaclrn-oacl10sl-10kflows-ndrpdrdisc.robot70
-rw-r--r--tests/vpp/perf/l2/10ge2p1x520-eth-l2bdbasemaclrn-oacl1sf-100flows-ndrpdrdisc.robot70
-rw-r--r--tests/vpp/perf/l2/10ge2p1x520-eth-l2bdbasemaclrn-oacl1sf-100kflows-ndrpdrdisc.robot70
-rw-r--r--tests/vpp/perf/l2/10ge2p1x520-eth-l2bdbasemaclrn-oacl1sf-10kflows-ndrpdrdisc.robot70
-rw-r--r--tests/vpp/perf/l2/10ge2p1x520-eth-l2bdbasemaclrn-oacl1sl-100flows-ndrpdrdisc.robot70
-rw-r--r--tests/vpp/perf/l2/10ge2p1x520-eth-l2bdbasemaclrn-oacl1sl-100kflows-ndrpdrdisc.robot70
-rw-r--r--tests/vpp/perf/l2/10ge2p1x520-eth-l2bdbasemaclrn-oacl1sl-10kflows-ndrpdrdisc.robot70
-rw-r--r--tests/vpp/perf/l2/10ge2p1x520-eth-l2bdbasemaclrn-oacl50sf-100flows-ndrpdrdisc.robot70
-rw-r--r--tests/vpp/perf/l2/10ge2p1x520-eth-l2bdbasemaclrn-oacl50sf-100kflows-ndrpdrdisc.robot70
-rw-r--r--tests/vpp/perf/l2/10ge2p1x520-eth-l2bdbasemaclrn-oacl50sf-10kflows-ndrpdrdisc.robot70
-rw-r--r--tests/vpp/perf/l2/10ge2p1x520-eth-l2bdbasemaclrn-oacl50sl-100flows-ndrpdrdisc.robot70
-rw-r--r--tests/vpp/perf/l2/10ge2p1x520-eth-l2bdbasemaclrn-oacl50sl-100kflows-ndrpdrdisc.robot70
-rw-r--r--tests/vpp/perf/l2/10ge2p1x520-eth-l2bdbasemaclrn-oacl50sl-10kflows-ndrpdrdisc.robot70
-rw-r--r--tests/vpp/perf/l2/10ge2p1x520-eth-l2bdscale100kmaclrn-mrr.robot144
-rw-r--r--tests/vpp/perf/l2/10ge2p1x520-eth-l2bdscale100kmaclrn-ndrpdrdisc.robot154
-rw-r--r--tests/vpp/perf/l2/10ge2p1x520-eth-l2bdscale10kmaclrn-mrr.robot144
-rw-r--r--tests/vpp/perf/l2/10ge2p1x520-eth-l2bdscale10kmaclrn-ndrpdrdisc.robot154
-rw-r--r--tests/vpp/perf/l2/10ge2p1x520-eth-l2bdscale1mmaclrn-mrr.robot143
-rw-r--r--tests/vpp/perf/l2/10ge2p1x520-eth-l2bdscale1mmaclrn-ndrpdrdisc.robot154
-rw-r--r--tests/vpp/perf/l2/10ge2p1x520-eth-l2xcbase-mrr.robot132
-rw-r--r--tests/vpp/perf/l2/10ge2p1x520-eth-l2xcbase-ndrpdrdisc.robot38
-rw-r--r--tests/vpp/perf/l2/10ge2p1x710-dot1q-l2bdbasemaclrn-mrr.robot144
-rw-r--r--tests/vpp/perf/l2/10ge2p1x710-dot1q-l2xcbase-mrr.robot145
-rw-r--r--tests/vpp/perf/l2/10ge2p1x710-eth-l2bdbasemaclrn-iacl1sf-10kflows-mrr.robot144
-rw-r--r--tests/vpp/perf/l2/10ge2p1x710-eth-l2bdbasemaclrn-iacl1sl-10kflows-mrr.robot144
-rw-r--r--tests/vpp/perf/l2/10ge2p1x710-eth-l2bdbasemaclrn-iacl50sf-10kflows-mrr.robot144
-rw-r--r--tests/vpp/perf/l2/10ge2p1x710-eth-l2bdbasemaclrn-iacl50sl-10kflows-mrr.robot144
-rw-r--r--tests/vpp/perf/l2/10ge2p1x710-eth-l2bdbasemaclrn-mrr.robot144
-rw-r--r--tests/vpp/perf/l2/10ge2p1x710-eth-l2bdbasemaclrn-ndrpdrdisc.robot134
-rw-r--r--tests/vpp/perf/l2/10ge2p1x710-eth-l2bdscale100kmaclrn-mrr.robot144
-rw-r--r--tests/vpp/perf/l2/10ge2p1x710-eth-l2bdscale10kmaclrn-mrr.robot144
-rw-r--r--tests/vpp/perf/l2/10ge2p1x710-eth-l2bdscale1mmaclrn-mrr.robot143
-rw-r--r--tests/vpp/perf/l2/10ge2p1x710-eth-l2xcbase-mrr.robot132
-rw-r--r--tests/vpp/perf/l2/40ge2p1vic1385-eth-l2bdbasemaclrn-ndrpdrdisc.robot24
-rw-r--r--tests/vpp/perf/l2/40ge2p1xl710-eth-l2bdbasemaclrn-mrr.robot144
-rw-r--r--tests/vpp/perf/l2/40ge2p1xl710-eth-l2bdbasemaclrn-ndrpdrdisc.robot32
-rw-r--r--tests/vpp/perf/l2/40ge2p1xl710-eth-l2xcbase-mrr.robot144
-rw-r--r--tests/vpp/perf/l2/40ge2p1xl710-eth-l2xcbase-ndrpdrdisc.robot18
-rw-r--r--tests/vpp/perf/srv6/10ge2p1x520-ethip6ip6-ip6base-srv6enc1sid-mrr.robot143
-rw-r--r--tests/vpp/perf/srv6/10ge2p1x520-ethip6ip6-ip6base-srv6enc1sid-ndrpdrdisc.robot130
-rw-r--r--tests/vpp/perf/srv6/10ge2p1x520-ethip6srhip6-ip6base-srv6enc2sids-mrr.robot143
-rw-r--r--tests/vpp/perf/srv6/10ge2p1x520-ethip6srhip6-ip6base-srv6enc2sids-ndrpdrdisc.robot130
-rw-r--r--tests/vpp/perf/srv6/10ge2p1x520-ethip6srhip6-ip6base-srv6enc2sids-nodecaps-mrr.robot143
-rw-r--r--tests/vpp/perf/srv6/10ge2p1x520-ethip6srhip6-ip6base-srv6enc2sids-nodecaps-ndrpdrdisc.robot130
-rw-r--r--tests/vpp/perf/srv6/10ge2p1x520-ethip6srhip6-ip6base-srv6proxy-dyn-mrr.robot144
-rw-r--r--tests/vpp/perf/srv6/10ge2p1x520-ethip6srhip6-ip6base-srv6proxy-dyn-ndrpdrdisc.robot131
-rw-r--r--tests/vpp/perf/srv6/10ge2p1x520-ethip6srhip6-ip6base-srv6proxy-masq-mrr.robot144
-rw-r--r--tests/vpp/perf/srv6/10ge2p1x520-ethip6srhip6-ip6base-srv6proxy-masq-ndrpdrdisc.robot131
-rw-r--r--tests/vpp/perf/srv6/10ge2p1x520-ethip6srhip6-ip6base-srv6proxy-stat-mrr.robot144
-rw-r--r--tests/vpp/perf/srv6/10ge2p1x520-ethip6srhip6-ip6base-srv6proxy-stat-ndrpdrdisc.robot131
-rw-r--r--tests/vpp/perf/tcp/10ge2p1x520-ethip4tcphttp-httpserver.robot33
-rw-r--r--tests/vpp/perf/vm_vhost/10ge2p1x520-1lbdpdk-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-mrr.robot144
-rw-r--r--tests/vpp/perf/vm_vhost/10ge2p1x520-1lbdpdk-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-ndrpdrdisc.robot262
-rw-r--r--tests/vpp/perf/vm_vhost/10ge2p1x520-1lbdpdk-dot1q-l2xcbase-eth-2vhostvr1024-1vm-mrr.robot144
-rw-r--r--tests/vpp/perf/vm_vhost/10ge2p1x520-1lbdpdk-dot1q-l2xcbase-eth-2vhostvr1024-1vm-ndrpdrdisc.robot262
-rw-r--r--tests/vpp/perf/vm_vhost/10ge2p1x520-1lbvpplacp-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-mrr.robot144
-rw-r--r--tests/vpp/perf/vm_vhost/10ge2p1x520-1lbvpplacp-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-ndrpdrdisc.robot262
-rw-r--r--tests/vpp/perf/vm_vhost/10ge2p1x520-1lbvpplacp-dot1q-l2xcbase-eth-2vhostvr1024-1vm-mrr.robot144
-rw-r--r--tests/vpp/perf/vm_vhost/10ge2p1x520-1lbvpplacp-dot1q-l2xcbase-eth-2vhostvr1024-1vm-ndrpdrdisc.robot262
-rw-r--r--tests/vpp/perf/vm_vhost/10ge2p1x520-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-mrr.robot144
-rw-r--r--tests/vpp/perf/vm_vhost/10ge2p1x520-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-ndrpdrdisc.robot36
-rw-r--r--tests/vpp/perf/vm_vhost/10ge2p1x520-dot1q-l2xcbase-eth-2vhostvr1024-1vm-mrr.robot144
-rw-r--r--tests/vpp/perf/vm_vhost/10ge2p1x520-dot1q-l2xcbase-eth-2vhostvr1024-1vm-ndrpdrdisc.robot36
-rw-r--r--tests/vpp/perf/vm_vhost/10ge2p1x520-eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-cfsrr1-ndrpdrdisc.robot195
-rw-r--r--tests/vpp/perf/vm_vhost/10ge2p1x520-eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-mrr.robot144
-rw-r--r--tests/vpp/perf/vm_vhost/10ge2p1x520-eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-ndrpdr.robot48
-rw-r--r--tests/vpp/perf/vm_vhost/10ge2p1x520-eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-ndrpdrdisc.robot36
-rw-r--r--tests/vpp/perf/vm_vhost/10ge2p1x520-eth-l2bdbasemaclrn-eth-2vhostvr256-1vm-cfsrr1-ndrpdrdisc.robot209
-rw-r--r--tests/vpp/perf/vm_vhost/10ge2p1x520-eth-l2bdbasemaclrn-eth-2vhostvr256-1vm-mrr.robot144
-rw-r--r--tests/vpp/perf/vm_vhost/10ge2p1x520-eth-l2bdbasemaclrn-eth-2vhostvr256-1vm-ndrpdrdisc.robot209
-rw-r--r--tests/vpp/perf/vm_vhost/10ge2p1x520-eth-l2bdbasemaclrn-eth-4vhostvr1024-2vm-mrr.robot144
-rw-r--r--tests/vpp/perf/vm_vhost/10ge2p1x520-eth-l2bdbasemaclrn-eth-4vhostvr1024-2vm-ndrpdrdisc.robot202
-rw-r--r--tests/vpp/perf/vm_vhost/10ge2p1x520-eth-l2bdscale100kmaclrn-eth-2vhostvr1024-1vm-cfsrr1-ndrpdrdisc.robot195
-rw-r--r--tests/vpp/perf/vm_vhost/10ge2p1x520-eth-l2bdscale10kmaclrn-eth-2vhostvr1024-1vm-cfsrr1-ndrpdrdisc.robot195
-rw-r--r--tests/vpp/perf/vm_vhost/10ge2p1x520-eth-l2bdscale1mmaclrn-eth-2vhostvr1024-1vm-cfsrr1-ndrpdrdisc.robot195
-rw-r--r--tests/vpp/perf/vm_vhost/10ge2p1x520-eth-l2xcbase-eth-2vhostvr1024-1vm-cfsrr1-ndrpdrdisc.robot195
-rw-r--r--tests/vpp/perf/vm_vhost/10ge2p1x520-eth-l2xcbase-eth-2vhostvr1024-1vm-mrr.robot144
-rw-r--r--tests/vpp/perf/vm_vhost/10ge2p1x520-eth-l2xcbase-eth-2vhostvr1024-1vm-ndrpdrdisc.robot36
-rw-r--r--tests/vpp/perf/vm_vhost/10ge2p1x520-eth-l2xcbase-eth-2vhostvr256-1vm-cfsrr1-ndrpdrdisc.robot209
-rw-r--r--tests/vpp/perf/vm_vhost/10ge2p1x520-eth-l2xcbase-eth-2vhostvr256-1vm-mrr.robot144
-rw-r--r--tests/vpp/perf/vm_vhost/10ge2p1x520-eth-l2xcbase-eth-2vhostvr256-1vm-ndrpdrdisc.robot209
-rw-r--r--tests/vpp/perf/vm_vhost/10ge2p1x520-eth-l2xcbase-eth-4vhostvr1024-2vm-mrr.robot144
-rw-r--r--tests/vpp/perf/vm_vhost/10ge2p1x520-eth-l2xcbase-eth-4vhostvr1024-2vm-ndrpdrdisc.robot202
-rw-r--r--tests/vpp/perf/vm_vhost/10ge2p1x520-ethip4-ip4base-eth-2vhostvr1024-1vm-cfsrr1-ndrpdrdisc.robot195
-rw-r--r--tests/vpp/perf/vm_vhost/10ge2p1x520-ethip4-ip4base-eth-2vhostvr1024-1vm-mrr.robot144
-rw-r--r--tests/vpp/perf/vm_vhost/10ge2p1x520-ethip4-ip4base-eth-2vhostvr1024-1vm-ndrpdrdisc.robot36
-rw-r--r--tests/vpp/perf/vm_vhost/10ge2p1x520-ethip4-ip4base-eth-2vhostvr256-1vm-cfsrr1-ndrpdrdisc.robot195
-rw-r--r--tests/vpp/perf/vm_vhost/10ge2p1x520-ethip4-ip4base-eth-2vhostvr256-1vm-mrr.robot144
-rw-r--r--tests/vpp/perf/vm_vhost/10ge2p1x520-ethip4-ip4base-eth-2vhostvr256-1vm-ndrpdrdisc.robot209
-rw-r--r--tests/vpp/perf/vm_vhost/10ge2p1x520-ethip4-ip4base-eth-4vhostvr1024-2vm-mrr.robot144
-rw-r--r--tests/vpp/perf/vm_vhost/10ge2p1x520-ethip4-ip4base-eth-4vhostvr1024-2vm-ndrpdrdisc.robot202
-rw-r--r--tests/vpp/perf/vm_vhost/10ge2p1x520-ethip4vxlan-l2bdbasemaclrn-eth-2vhostvr1024-1vm-mrr.robot144
-rw-r--r--tests/vpp/perf/vm_vhost/10ge2p1x520-ethip4vxlan-l2bdbasemaclrn-eth-2vhostvr1024-1vm-ndrpdrdisc.robot36
-rw-r--r--tests/vpp/perf/vm_vhost/10ge2p1x710-1lbdpdk-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-mrr.robot144
-rw-r--r--tests/vpp/perf/vm_vhost/10ge2p1x710-1lbdpdk-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-ndrpdrdisc.robot262
-rw-r--r--tests/vpp/perf/vm_vhost/10ge2p1x710-1lbdpdk-dot1q-l2xcbase-eth-2vhostvr1024-1vm-mrr.robot144
-rw-r--r--tests/vpp/perf/vm_vhost/10ge2p1x710-1lbdpdk-dot1q-l2xcbase-eth-2vhostvr1024-1vm-ndrpdrdisc.robot262
-rw-r--r--tests/vpp/perf/vm_vhost/10ge2p1x710-1lbvpplacp-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-mrr.robot144
-rw-r--r--tests/vpp/perf/vm_vhost/10ge2p1x710-1lbvpplacp-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-ndrpdrdisc.robot262
-rw-r--r--tests/vpp/perf/vm_vhost/10ge2p1x710-1lbvpplacp-dot1q-l2xcbase-eth-2vhostvr1024-1vm-mrr.robot144
-rw-r--r--tests/vpp/perf/vm_vhost/10ge2p1x710-1lbvpplacp-dot1q-l2xcbase-eth-2vhostvr1024-1vm-ndrpdrdisc.robot262
-rw-r--r--tests/vpp/perf/vm_vhost/10ge2p1x710-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-mrr.robot144
-rw-r--r--tests/vpp/perf/vm_vhost/10ge2p1x710-dot1q-l2xcbase-eth-2vhostvr1024-1vm-mrr.robot144
-rw-r--r--tests/vpp/perf/vm_vhost/10ge2p1x710-eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-ndrpdrdisc.robot36
-rw-r--r--tests/vpp/perf/vm_vhost/10ge2p1x710-eth-l2bdbasemaclrn-eth-2vhostvr256-1vm-mrr.robot144
-rw-r--r--tests/vpp/perf/vm_vhost/10ge2p1x710-eth-l2bdbasemaclrn-eth-4vhostvr1024-2vm-mrr.robot144
-rw-r--r--tests/vpp/perf/vm_vhost/10ge2p1x710-eth-l2xcbase-eth-2vhostvr1024-1vm-mrr.robot144
-rw-r--r--tests/vpp/perf/vm_vhost/10ge2p1x710-eth-l2xcbase-eth-2vhostvr256-1vm-mrr.robot144
-rw-r--r--tests/vpp/perf/vm_vhost/10ge2p1x710-eth-l2xcbase-eth-4vhostvr1024-2vm-mrr.robot144
-rw-r--r--tests/vpp/perf/vm_vhost/10ge2p1x710-ethip4-ip4base-eth-2vhostvr1024-1vm-mrr.robot144
-rw-r--r--tests/vpp/perf/vm_vhost/10ge2p1x710-ethip4-ip4base-eth-2vhostvr256-1vm-mrr.robot144
-rw-r--r--tests/vpp/perf/vm_vhost/10ge2p1x710-ethip4-ip4base-eth-4vhostvr1024-2vm-mrr.robot144
-rw-r--r--tests/vpp/perf/vm_vhost/10ge2p1x710-ethip4vxlan-l2bdbasemaclrn-eth-2vhostvr1024-1vm-mrr.robot144
-rw-r--r--tests/vpp/perf/vm_vhost/40ge2p1x710-eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-mrr.robot144
-rw-r--r--tests/vpp/perf/vm_vhost/40ge2p1xl710-eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-mrr.robot144
-rw-r--r--tests/vpp/perf/vm_vhost/40ge2p1xl710-eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-ndrpdrdisc.robot36
-rw-r--r--tests/vpp/perf/vm_vhost/40ge2p1xl710-eth-l2bdbasemaclrn-eth-4vhostvr1024-2vm-mrr.robot144
-rw-r--r--tests/vpp/perf/vm_vhost/40ge2p1xl710-eth-l2bdbasemaclrn-eth-4vhostvr1024-2vm-ndrpdrdisc.robot202
-rw-r--r--tests/vpp/perf/vm_vhost/40ge2p1xl710-eth-l2xcbase-eth-4vhostvr1024-2vm-ndrpdrdisc.robot202
-rw-r--r--tests/vpp/perf/vm_vhost/40ge2p1xl710-ethip4-ip4base-eth-4vhostvr1024-2vm-ndrpdrdisc.robot202
-rw-r--r--tests/vpp/perf/vts/10ge2p1x520-ethip4vxlan-l2bdbasemaclrn-eth-iacldstbase-2vhostvr1024-1vm-ndrpdrdisc.robot157
312 files changed, 6697 insertions, 29633 deletions
diff --git a/resources/libraries/robot/performance/performance_configuration.robot b/resources/libraries/robot/performance/performance_configuration.robot
index ba6396f8fe..045a5d36ef 100644
--- a/resources/libraries/robot/performance/performance_configuration.robot
+++ b/resources/libraries/robot/performance/performance_configuration.robot
@@ -687,6 +687,10 @@
| | ... | routing for IPv6 with defined behaviour function and configure IPv6
| | ... | routes on both DUT nodes.
| | ...
+| | ... | *Note:*
+| | ... | KW uses test variable ${rxq_count_int} set by KW Add worker threads
+| | ... | and rxqueues to all DUTs
+| | ...
| | ${tg1_if1_mac}= | Get Interface MAC | ${tg} | ${tg_if1}
| | ${tg1_if2_mac}= | Get Interface MAC | ${tg} | ${tg_if2}
| | ${dut1_if2_mac}= | Get Interface MAC | ${dut1} | ${dut1_if2}
@@ -694,9 +698,11 @@
| | ${sock1}= | Set Variable | memif-DUT1_VNF
| | ${sock2}= | Set Variable | memif-DUT2_VNF
| | Set up memif interfaces on DUT node | ${dut1} | ${sock1} | ${sock1}
-| | ... | ${1} | dut1-memif-1-if1 | dut1-memif-1-if2 | ${rxq} | ${rxq}
+| | ... | ${1} | dut1-memif-1-if1 | dut1-memif-1-if2 | ${rxq_count_int}
+| | ... | ${rxq_count_int}
| | Set up memif interfaces on DUT node | ${dut2} | ${sock2} | ${sock2}
-| | ... | ${1} | dut2-memif-1-if1 | dut2-memif-1-if2 | ${rxq} | ${rxq}
+| | ... | ${1} | dut2-memif-1-if1 | dut2-memif-1-if2 | ${rxq_count_int}
+| | ... | ${rxq_count_int}
| | ${duts}= | Get Matches | ${nodes} | DUT*
| | :FOR | ${dut} | IN | @{duts}
| | | Show Memif | ${nodes['${dut}']}
@@ -2554,7 +2560,7 @@
| | Configure deterministic mode for NAT44
| | ... | ${dut1} | 20.0.0.0 | 18 | 200.0.0.0 | 30
-| Initialize L2 xconnect for '${nr}' memif pairs and '${rxq}' rxqueues in 3-node circular topology
+| Initialize L2 xconnect for '${nr}' memif pairs in 3-node circular topology
| | [Documentation]
| | ... | Create pairs of Memif interfaces on all defined VPP nodes. Cross
| | ... | connect each Memif interface with one physical interface or virtual
@@ -2567,9 +2573,13 @@
| | ... | Socket paths for Memif are defined in following format:
| | ... | - /tmp/memif-DUT1_VNF${number}-${sid}
| | ...
+| | ... | KW uses test variable ${rxq_count_int} set by KW Add worker threads
+| | ... | and rxqueues to all DUTs
+| | ...
| | ... | *Example:*
| | ...
-| | ... | \| Initialize L2 xconnect for 1 Memif in 3-node circular topology \|
+| | ... | \| Initialize L2 xconnect for 1 memif pairs in 3-node circular \
+| | ... | topology \|
| | ...
| | Set Interface State | ${dut1} | ${dut1_if1} | up
| | Set Interface State | ${dut1} | ${dut1_if2} | up
@@ -2581,7 +2591,7 @@
| | | ${prev_index}= | Evaluate | ${number}-1
| | | Set up memif interfaces on DUT node | ${dut1}
| | | ... | ${sock1} | ${sock2} | ${number} | dut1-memif-${number}-if1
-| | | ... | dut1-memif-${number}-if2 | ${rxq} | ${rxq}
+| | | ... | dut1-memif-${number}-if2 | ${rxq_count_int} | ${rxq_count_int}
| | | ${dut1_xconnect_if1}= | Set Variable If | ${number}==1 | ${dut1_if1}
| | | ... | ${dut1-memif-${prev_index}-if2}
| | | Configure L2XC | ${dut1} | ${dut1_xconnect_if1}
@@ -2590,7 +2600,7 @@
| | | ${sock2}= | Set Variable | memif-DUT2_VNF
| | | Set up memif interfaces on DUT node | ${dut2}
| | | ... | ${sock1} | ${sock2} | ${number} | dut2-memif-${number}-if1
-| | | ... | dut2-memif-${number}-if2 | ${rxq} | ${rxq}
+| | | ... | dut2-memif-${number}-if2 | ${rxq_count_int} | ${rxq_count_int}
| | | ${dut2_xconnect_if1}= | Set Variable If | ${number}==1 | ${dut2_if1}
| | | ... | ${dut2-memif-${prev_index}-if2}
| | | Configure L2XC | ${dut2} | ${dut2_xconnect_if1}
@@ -2602,7 +2612,7 @@
| | All Vpp Interfaces Ready Wait | ${nodes}
| | Show Memif on all DUTs | ${nodes}
-| Initialize L2 Bridge Domain for '${nr}' memif pairs and '${rxq}' rxqueues in 3-node circular topology
+| Initialize L2 Bridge Domain for '${nr}' memif pairs in 3-node circular topology
| | [Documentation]
| | ... | Create pairs of Memif interfaces on all defined VPP nodes. Put each
| | ... | Memif interface to separate L2 bridge domain with one physical or
@@ -2630,7 +2640,7 @@
| | | ${sock2}= | Set Variable | memif-DUT1_VNF
| | | Set up memif interfaces on DUT node | ${dut1}
| | | ... | ${sock1} | ${sock2} | ${number} | dut1-memif-${number}-if1
-| | | ... | dut1-memif-${number}-if2 | ${rxq} | ${rxq}
+| | | ... | dut1-memif-${number}-if2 | ${rxq_count_int} | ${rxq_count_int}
| | | ${bd_id2}= | Evaluate | ${number}+1
| | | Add interface to bridge domain | ${dut1}
| | | ... | ${dut1-memif-${number}-if1} | ${number}
@@ -2640,7 +2650,7 @@
| | | ${sock2}= | Set Variable | memif-DUT2_VNF
| | | Set up memif interfaces on DUT node | ${dut2}
| | | ... | ${sock1} | ${sock2} | ${number} | dut2-memif-${number}-if1
-| | | ... | dut2-memif-${number}-if2 | ${rxq} | ${rxq}
+| | | ... | dut2-memif-${number}-if2 | ${rxq_count_int} | ${rxq_count_int}
| | | Add interface to bridge domain | ${dut2}
| | | ... | ${dut2-memif-${number}-if1} | ${number}
| | | Add interface to bridge domain | ${dut2}
@@ -2654,26 +2664,30 @@
| | ... | connect Memif interface with one physical interface.
| | ...
| | ... | *Arguments:*
-| | ... | - ${rxq} - Number of Memif RX queues. Type: integer
| | ... | - ${number} - Memif ID. Type: integer
| | ...
| | ... | *Note:*
| | ... | Socket paths for Memif are defined in following format:
| | ... | - /tmp/memif-DUT1_VNF${number}-${sid}
| | ...
+| | ... | KW uses test variable ${rxq_count_int} set by KW Add worker threads
+| | ... | and rxqueues to all DUTs
+| | ...
| | ... | *Example:*
| | ...
| | ... | \| Initialize L2 xconnect for single memif in 3-node circular \
-| | ... | topology \| 1 \| 1 \|
+| | ... | topology \| 1 \|
| | ...
-| | [Arguments] | ${rxq}=${1} | ${number}=${1}
+| | [Arguments] | ${number}=${1}
| | ${sock}= | Set Variable | memif-DUT1_VNF
| | Set up single memif interface on DUT node | ${dut1} | ${sock}
-| | ... | ${number} | dut1-memif-${number}-if1 | ${rxq} | ${rxq}
+| | ... | ${number} | dut1-memif-${number}-if1 | ${rxq_count_int}
+| | ... | ${rxq_count_int}
| | Configure L2XC | ${dut1} | ${dut1_if1} | ${dut1-memif-${number}-if1}
| | ${sock}= | Set Variable | memif-DUT2_VNF
| | Set up single memif interface on DUT node | ${dut2} | ${sock}
-| | ... | ${number} | dut2-memif-${number}-if1 | ${rxq} | ${rxq}
+| | ... | ${number} | dut2-memif-${number}-if1 | ${rxq_count_int}
+| | ... | ${rxq_count_int}
| | Configure L2XC | ${dut2} | ${dut2_if2} | ${dut2-memif-${number}-if1}
| | All Vpp Interfaces Ready Wait | ${nodes}
| | Show Memif on all DUTs | ${nodes}
@@ -2684,28 +2698,32 @@
| | ... | interface to separate L2 bridge domain with one physical interface.
| | ...
| | ... | *Arguments:*
-| | ... | - ${rxq} - Number of Memif RX queues. Type: integer
| | ... | - ${number} - Memif ID. Type: integer
| | ...
| | ... | *Note:*
| | ... | Socket paths for Memif are defined in following format:
| | ... | - /tmp/memif-DUT1_VNF${number}-${sid}
| | ...
+| | ... | KW uses test variable ${rxq_count_int} set by KW Add worker threads
+| | ... | and rxqueues to all DUTs
+| | ...
| | ... | *Example:*
| | ...
| | ... | \| Initialize L2 Bridge Domain for single memif in 3-node circular \
-| | ... | topology \| 1 \| 1 \|
+| | ... | topology \| 1 \|
| | ...
-| | [Arguments] | ${rxq}=${1} | ${number}=${1}
+| | [Arguments] | ${number}=${1}
| | ${sock}= | Set Variable | memif-DUT1_VNF
| | Set up single memif interface on DUT node | ${dut1} | ${sock}
-| | ... | ${number} | dut1-memif-${number}-if1 | ${rxq} | ${rxq}
+| | ... | ${number} | dut1-memif-${number}-if1 | ${rxq_count_int}
+| | ... | ${rxq_count_int}
| | Add interface to bridge domain | ${dut1} | ${dut1_if1} | ${number}
| | Add interface to bridge domain | ${dut1} | ${dut1-memif-${number}-if1}
| | ... | ${number}
| | ${sock}= | Set Variable | memif-DUT2_VNF
| | Set up single memif interface on DUT node | ${dut2} | ${sock}
-| | ... | ${number} | dut2-memif-${number}-if1 | ${rxq} | ${rxq}
+| | ... | ${number} | dut2-memif-${number}-if1 | ${rxq_count_int}
+| | ... | ${rxq_count_int}
| | Add interface to bridge domain | ${dut2} | ${dut2_if2} | ${number}
| | Add interface to bridge domain | ${dut2} | ${dut2-memif-${number}-if1}
| | ... | ${number}
diff --git a/resources/libraries/robot/shared/default.robot b/resources/libraries/robot/shared/default.robot
index b3e10dc2d3..d0bd929386 100644
--- a/resources/libraries/robot/shared/default.robot
+++ b/resources/libraries/robot/shared/default.robot
@@ -141,17 +141,17 @@
| | ... | mTnC, where m=logical_core_count and n=physical_core_count.
| | ...
| | ... | *Arguments:*
-| | ... | - cpu_cnt - Number of physical cores to use. Type: integer
+| | ... | - phy_cores - Number of physical cores to use. Type: integer
| | ... | - rx_queues - Number of RX queues. Type: integer
| | ...
| | ... | *Example:*
| | ...
| | ... | \| Add worker threads and rxqueues to all DUTs \| ${1} \| ${1} \|
| | ...
-| | [Arguments] | ${cpu_cnt} | ${rx_queues}
+| | [Arguments] | ${phy_cores} | ${rx_queues}=${None}
| | ...
-| | ${cpu_count_int} | Convert to Integer | ${cpu_cnt}
-| | ${thr_count_int} | Convert to Integer | ${cpu_cnt}
+| | ${cpu_count_int} | Convert to Integer | ${phy_cores}
+| | ${thr_count_int} | Convert to Integer | ${phy_cores}
| | ${duts}= | Get Matches | ${nodes} | DUT*
| | :FOR | ${dut} | IN | @{duts}
| | | ${numa}= | Get interfaces numa node | ${nodes['${dut}']}
@@ -161,23 +161,24 @@
| | | ... | skip_cnt=${1} | cpu_cnt=${1}
| | | ${cpu_wt}= | Cpu list per node str | ${nodes['${dut}']} | ${numa}
| | | ... | skip_cnt=${2} | cpu_cnt=${cpu_count_int} | smt_used=${smt_used}
+| | | ${thr_count_int}= | Run keyword if | ${smt_used}
+| | | ... | Evaluate | int(${cpu_count_int}*2)
+| | | ... | ELSE | Set variable | ${thr_count_int}
+| | | ${rxq_count_int}= | Run keyword if | ${rx_queues}
+| | | ... | Set variable | ${rx_queues}
+| | | ... | ELSE | Evaluate | int(${thr_count_int}/2)
+| | | ${rxq_count_int}= | Run keyword if | ${rxq_count_int} == 0
+| | | ... | Set variable | ${1}
+| | | ... | ELSE | Set variable | ${rxq_count_int}
| | | Run keyword | ${dut}.Add CPU Main Core | ${cpu_main}
| | | Run keyword | ${dut}.Add CPU Corelist Workers | ${cpu_wt}
-| | | Run keyword | ${dut}.Add DPDK Dev Default RXQ | ${rx_queues}
-| | | ${thr_count_int}= | Run keyword if | ${smt_used} |
-| | | ... | Evaluate | int(${cpu_count_int}*2) | ELSE | Set variable
-| | | ... | ${thr_count_int}
+| | | Run keyword | ${dut}.Add DPDK Dev Default RXQ | ${rxq_count_int}
| | | Run keyword if | ${thr_count_int} > 1
| | | ... | Set Tags | MTHREAD | ELSE | Set Tags | STHREAD
| | | Set Tags | ${thr_count_int}T${cpu_count_int}C
-
-# FIXME: Remove the keyword after refactor of suites. Currently kept for
-# backward compatibility only.
-| Add '${m}' worker threads and '${n}' rxqueues in 3-node single-link circular topology
-| | [Documentation] | Setup M worker threads and N rxqueues in vpp startup\
-| | ... | configuration on all DUTs in 3-node single-link topology.
-| | ...
-| | Add worker threads and rxqueues to all DUTs | ${m} | ${n}
+| | Set Test Variable | ${smt_used}
+| | Set Test Variable | ${thr_count_int}
+| | Set Test Variable | ${rxq_count_int}
| Add no multi seg to all DUTs
| | [Documentation] | Add No Multi Seg to VPP startup configuration to all DUTs.
@@ -257,7 +258,11 @@
| | [Arguments] | ${count}
| | ${duts}= | Get Matches | ${nodes} | DUT*
| | :FOR | ${dut} | IN | @{duts}
-| | | Run keyword | ${dut}.Add DPDK Cryptodev | ${count}
+| | | ${smt_used}= | Is SMT enabled | ${nodes['${dut}']['cpuinfo']}
+| | | ${thr_count_int}= | Run keyword if | ${smt_used}
+| | | ... | Evaluate | int(${count}*2)
+| | | ... | ELSE | Set variable | ${count}
+| | | Run keyword | ${dut}.Add DPDK Cryptodev | ${thr_count_int}
| Add DPDK SW cryptodev on DUTs in 3-node single-link circular topology
| | [Documentation] | Add required number of SW crypto devices of given type
@@ -274,12 +279,20 @@
| | ... | topology \| aesni-mb \| ${2} \|
| | ...
| | [Arguments] | ${sw_pmd_type} | ${count}
+| | ${smt_used}= | Is SMT enabled | ${nodes['DUT1']['cpuinfo']}
+| | ${thr_count_int}= | Run keyword if | ${smt_used}
+| | ... | Evaluate | int(${count}*2)
+| | ... | ELSE | Set variable | ${count}
| | ${socket_id}= | Get Interface Numa Node | ${nodes['DUT1']} | ${dut1_if2}
| | Run keyword | DUT1.Add DPDK SW Cryptodev | ${sw_pmd_type} | ${socket_id}
-| | ... | ${count}
+| | ... | ${thr_count_int}
+| | ${smt_used}= | Is SMT enabled | ${nodes['DUT2']['cpuinfo']}
+| | ${thr_count_int}= | Run keyword if | ${smt_used}
+| | ... | Evaluate | int(${count}*2)
+| | ... | ELSE | Set variable | ${count}
| | ${socket_id}= | Get Interface Numa Node | ${nodes['DUT2']} | ${dut2_if1}
| | Run keyword | DUT2.Add DPDK SW Cryptodev | ${sw_pmd_type} | ${socket_id}
-| | ... | ${count}
+| | ... | ${thr_count_int}
| Apply startup configuration on all VPP DUTs
| | [Documentation] | Write startup configuration and restart VPP on all DUTs.
diff --git a/tests/vpp/perf/container_memif/10ge2p1x520-eth-l2bdbasemaclrn-eth-2memif-1lxc-mrr.robot b/tests/vpp/perf/container_memif/10ge2p1x520-eth-l2bdbasemaclrn-eth-2memif-1lxc-mrr.robot
index 3d8236a483..1a8162cdb0 100644
--- a/tests/vpp/perf/container_memif/10ge2p1x520-eth-l2bdbasemaclrn-eth-2memif-1lxc-mrr.robot
+++ b/tests/vpp/perf/container_memif/10ge2p1x520-eth-l2bdbasemaclrn-eth-2memif-1lxc-mrr.robot
@@ -31,7 +31,9 @@
| ...
| Test Teardown | Tear down performance mrr test
| ...
-| Documentation | *Raw results L2BD test cases*
+| Test Template | Local template
+| ...
+| Documentation | *Raw results L2BD test cases*
| ...
| ... | *[Top] Network Topologies:* TG-DUT1-DUT2-TG 3-node circular topology
| ... | with single links between nodes.
@@ -67,161 +69,79 @@
| ${container_cpus}= | ${5}
*** Keywords ***
-| Check RR for l2bdbasemaclrn-eth-2memif-1lxc
+| Local template
| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with ${wt} thread(s), ${wt}\
-| | ... | phy core(s), ${rxq} receive queue(s) per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for ${framesize} frames using single\
+| | ... | [Cfg] DUT runs L2BD switching config.
+| | ... | Each DUT uses ${phy_cores} physical core(s) for worker threads.
+| | ... | [Ver] Measure MaxReceivedRate for ${framesize}B frames using single\
| | ... | trial throughput test.
| | ...
-| | [Arguments] | ${framesize} | ${wt} | ${rxq}
+| | ... | *Arguments:*
+| | ... | - framesize - Framesize in Bytes in integer or string (IMIX_v4_1).
+| | ... | Type: integer, string
+| | ... | - phy_cores - Number of physical cores. Type: integer
+| | ... | - rxq - Number of RX queues, default value: ${None}. Type: integer
+| | ...
+| | [Arguments] | ${framesize} | ${phy_cores} | ${rxq}=${None}
| | ...
-| | # Test Variables required for test teardown
| | Set Test Variable | ${framesize}
| | ${get_framesize}= | Get Frame Size | ${framesize}
| | ${max_rate}= | Calculate pps | ${s_limit} | ${framesize}
| | ...
-| | Given Add '${wt}' worker threads and '${rxq}' rxqueues in 3-node single-link circular topology
+| | Given Add worker threads and rxqueues to all DUTs | ${phy_cores} | ${rxq}
| | And Add PCI devices to all DUTs
| | And Run Keyword If | ${get_framesize} < ${1522}
| | ... | Add no multi seg to all DUTs
| | And Apply startup configuration on all VPP DUTs
-| | And Initialize L2 Bridge Domain for '1' memif pairs and '${rxq}' rxqueues in 3-node circular topology
+| | And Initialize L2 Bridge Domain for '1' memif pairs in 3-node circular topology
| | Then Traffic should pass with maximum rate
| | ... | ${max_rate}pps | ${framesize} | ${traffic_profile}
*** Test Cases ***
-| tc01-64B-1t1c-eth-l2bdbasemaclrn-eth-2memif-1lxc-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with 1 phy core,\
-| | ... | 1 receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 64B frames using single trial\
-| | ... | throughput test.
-| | ...
+| tc01-64B-1c-eth-l2bdbasemaclrn-eth-2memif-1lxc-mrr
| | [Tags] | 64B | 1C
-| | [Template] | Check RR for l2bdbasemaclrn-eth-2memif-1lxc
-| | framesize=${64} | wt=1 | rxq=1
+| | framesize=${64} | phy_cores=${1}
-| tc02-1518B-1t1c-eth-l2bdbasemaclrn-eth-2memif-1lxc-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with 1 phy core,\
-| | ... | 1 receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 1518B frames using single trial\
-| | ... | throughput test.
-| | ...
+| tc02-1518B-1c-eth-l2bdbasemaclrn-eth-2memif-1lxc-mrr
| | [Tags] | 1518B | 1C
-| | [Template] | Check RR for l2bdbasemaclrn-eth-2memif-1lxc
-| | framesize=${1518} | wt=1 | rxq=1
+| | framesize=${1518} | phy_cores=${1}
-| tc03-9000B-1t1c-eth-l2bdbasemaclrn-eth-2memif-1lxc-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with 1 phy core,\
-| | ... | 1 receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 9000B frames using single trial\
-| | ... | throughput test.
-| | ...
+| tc03-9000B-1c-eth-l2bdbasemaclrn-eth-2memif-1lxc-mrr
| | [Tags] | 9000B | 1C
-| | [Template] | Check RR for l2bdbasemaclrn-eth-2memif-1lxc
-| | framesize=${9000} | wt=1 | rxq=1
+| | framesize=${9000} | phy_cores=${1}
-| tc04-IMIX-1t1c-eth-l2bdbasemaclrn-eth-2memif-1lxc-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with 1 phy core,\
-| | ... | 1 receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for IMIX_v4_1 frames using single trial\
-| | ... | throughput test.
-| | ... | IMIX_v4_1 = (28x64B;16x570B;4x1518B)
-| | ...
+| tc04-IMIX-1c-eth-l2bdbasemaclrn-eth-2memif-1lxc-mrr
| | [Tags] | IMIX | 1C
-| | [Template] | Check RR for l2bdbasemaclrn-eth-2memif-1lxc
-| | framesize=IMIX_v4_1 | wt=1 | rxq=1
+| | framesize=IMIX_v4_1 | phy_cores=${1}
-| tc05-64B-2t2c-eth-l2bdbasemaclrn-eth-2memif-1lxc-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with 2 phy cores,\
-| | ... | 1 receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 64B frames using single trial\
-| | ... | throughput test.
-| | ...
+| tc05-64B-2c-eth-l2bdbasemaclrn-eth-2memif-1lxc-mrr
| | [Tags] | 64B | 2C
-| | [Template] | Check RR for l2bdbasemaclrn-eth-2memif-1lxc
-| | framesize=${64} | wt=2 | rxq=1
+| | framesize=${64} | phy_cores=${2}
-| tc06-1518B-2t2c-eth-l2bdbasemaclrn-eth-2memif-1lxc-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with 1 phy cores,\
-| | ... | 1 receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 1518B frames using single trial\
-| | ... | throughput test.
-| | ...
+| tc06-1518B-2c-eth-l2bdbasemaclrn-eth-2memif-1lxc-mrr
| | [Tags] | 1518B | 2C
-| | [Template] | Check RR for l2bdbasemaclrn-eth-2memif-1lxc
-| | framesize=${1518} | wt=2 | rxq=1
+| | framesize=${1518} | phy_cores=${2}
-| tc07-9000B-2t2c-eth-l2bdbasemaclrn-eth-2memif-1lxc-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with 1 phy cores,\
-| | ... | 1 receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 9000B frames using single trial\
-| | ... | throughput test.
-| | ...
+| tc07-9000B-2c-eth-l2bdbasemaclrn-eth-2memif-1lxc-mrr
| | [Tags] | 9000B | 2C
-| | [Template] | Check RR for l2bdbasemaclrn-eth-2memif-1lxc
-| | framesize=${9000} | wt=2 | rxq=1
+| | framesize=${9000} | phy_cores=${2}
-| tc08-IMIX-2t2c-eth-l2bdbasemaclrn-eth-2memif-1lxc-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with 2 phy cores,\
-| | ... | 1 receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for IMIX_v4_1 frames using single trial\
-| | ... | throughput test.
-| | ... | IMIX_v4_1 = (28x64B;16x570B;4x1518B)
-| | ...
+| tc08-IMIX-2c-eth-l2bdbasemaclrn-eth-2memif-1lxc-mrr
| | [Tags] | IMIX | 2C
-| | [Template] | Check RR for l2bdbasemaclrn-eth-2memif-1lxc
-| | framesize=IMIX_v4_1 | wt=2 | rxq=1
+| | framesize=IMIX_v4_1 | phy_cores=${2}
-| tc09-64B-4t4c-eth-l2bdbasemaclrn-eth-2memif-1lxc-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with 4 phy cores,\
-| | ... | 2 receive queues per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 64B frames using single trial\
-| | ... | throughput test.
-| | ...
+| tc09-64B-4c-eth-l2bdbasemaclrn-eth-2memif-1lxc-mrr
| | [Tags] | 64B | 4C
-| | [Template] | Check RR for l2bdbasemaclrn-eth-2memif-1lxc
-| | framesize=${64} | wt=4 | rxq=2
+| | framesize=${64} | phy_cores=${4}
-| tc10-1518B-4t4c-eth-l2bdbasemaclrn-eth-2memif-1lxc-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with 4 phy cores,\
-| | ... | 2 receive queues per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 1518B frames using single trial\
-| | ... | throughput test.
-| | ...
+| tc10-1518B-4c-eth-l2bdbasemaclrn-eth-2memif-1lxc-mrr
| | [Tags] | 1518B | 4C
-| | [Template] | Check RR for l2bdbasemaclrn-eth-2memif-1lxc
-| | framesize=${1518} | wt=4 | rxq=2
+| | framesize=${1518} | phy_cores=${4}
-| tc11-9000B-4t4c-eth-l2bdbasemaclrn-eth-2memif-1lxc-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with 4 phy cores,\
-| | ... | 2 receive queues per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 9000B frames using single trial\
-| | ... | throughput test.
-| | ...
+| tc11-9000B-4c-eth-l2bdbasemaclrn-eth-2memif-1lxc-mrr
| | [Tags] | 9000B | 4C
-| | [Template] | Check RR for l2bdbasemaclrn-eth-2memif-1lxc
-| | framesize=${9000} | wt=4 | rxq=2
+| | framesize=${9000} | phy_cores=${4}
-| tc12-IMIX-4t4c-eth-l2bdbasemaclrn-eth-2memif-1lxc-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with 4 phy cores,\
-| | ... | 2 receive queues per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for IMIX_v4_1 frames using single trial\
-| | ... | throughput test.
-| | ... | IMIX_v4_1 = (28x64B;16x570B;4x1518B)
-| | ...
+| tc12-IMIX-4c-eth-l2bdbasemaclrn-eth-2memif-1lxc-mrr
| | [Tags] | IMIX | 4C
-| | [Template] | Check RR for l2bdbasemaclrn-eth-2memif-1lxc
-| | framesize=IMIX_v4_1 | wt=4 | rxq=2
+| | framesize=IMIX_v4_1 | phy_cores=${4}
diff --git a/tests/vpp/perf/container_memif/10ge2p1x520-eth-l2bdbasemaclrn-eth-2memif-1lxc-ndrpdrdisc.robot b/tests/vpp/perf/container_memif/10ge2p1x520-eth-l2bdbasemaclrn-eth-2memif-1lxc-ndrpdrdisc.robot
index f7488d5679..5e99e27f8e 100644
--- a/tests/vpp/perf/container_memif/10ge2p1x520-eth-l2bdbasemaclrn-eth-2memif-1lxc-ndrpdrdisc.robot
+++ b/tests/vpp/perf/container_memif/10ge2p1x520-eth-l2bdbasemaclrn-eth-2memif-1lxc-ndrpdrdisc.robot
@@ -32,6 +32,8 @@
| Test Teardown | Tear down performance discovery test | ${min_rate}pps
| ... | ${framesize} | ${traffic_profile}
| ...
+| Test Template | Local template
+| ...
| Documentation | *RFC2544: Pkt throughput L2BD test cases*
| ...
| ... | *[Top] Network Topologies:* TG-DUT1-DUT2-TG 3-node circular topology
@@ -75,8 +77,25 @@
| ${container_cpus}= | ${5}
*** Keywords ***
-| Discover NDR or PDR for L2 Bridge Domain with Memif
-| | [Arguments] | ${framesize} | ${min_rate} | ${wt} | ${rxq} | ${search_type}
+| Local template
+| | [Documentation]
+| | ... | [Cfg] DUT runs L2XC switching config.
+| | ... | Each DUT uses ${phy_cores} physical core(s) for worker threads.
+| | ... | [Ver] Find ${search_type} for ${framesize}B frames using binary search\
+| | ... | start at linerate, step ${min_rate}pps.
+| | ...
+| | ... | *Arguments:*
+| | ... | - framesize - Framesize in Bytes in integer or string (IMIX_v4_1).
+| | ... | Type: integer, string
+| | ... | - phy_cores - Number of physical cores. Type: integer
+| | ... | - search_type - NDR or PDR. Type: string
+| | ... | - rxq - Number of RX queues, default value: ${None}. Type: integer
+| | ... | - min_rate - Min rate for binary search, default value: ${50000}.
+| | ... | Type: integer
+| | ...
+| | [Arguments] | ${framesize} | ${phy_cores} | ${search_type}
+| | ... | ${rxq}=${None} | ${min_rate}=${50000}
+| | ...
| | Set Test Variable | ${framesize}
| | Set Test Variable | ${min_rate}
| | ${get_framesize}= | Set Variable If
@@ -85,11 +104,11 @@
| | ${binary_min}= | Set Variable | ${min_rate}
| | ${binary_max}= | Set Variable | ${max_rate}
| | ${threshold}= | Set Variable | ${min_rate}
-| | Add '${wt}' worker threads and '${rxq}' rxqueues in 3-node single-link circular topology
-| | Add PCI Devices To DUTs In 3-node Single Link Topology
+| | Add worker threads and rxqueues to all DUTs | ${phy_cores} | ${rxq}
+| | Add PCI devices to all DUTs
| | Run Keyword If | ${get_framesize} < ${1522} | Add No Multi Seg to all DUTs
| | Apply startup configuration on all VPP DUTs
-| | Initialize L2 Bridge Domain for '1' memif pairs and '${rxq}' rxqueues in 3-node circular topology
+| | Initialize L2 Bridge Domain for '1' memif pairs in 3-node circular topology
| | Run Keyword If | '${search_type}' == 'NDR'
| | ... | Find NDR using binary search and pps
| | ... | ${framesize} | ${binary_min} | ${binary_max} | ${traffic_profile}
@@ -102,137 +121,49 @@
*** Test Cases ***
| tc01-64B-1t1c-eth-l2bdbasemaclrn-eth-2memif-1lxc-ndrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with 1 phy core,\
-| | ... | 1 receive queue per NIC port.
-| | ... | [Ver] Find NDR for 64 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 50kpps.
-| | ...
| | [Tags] | 64B | 1C | NDRDISC
-| | [Template] | Discover NDR or PDR for L2 Bridge Domain with Memif
-| | framesize=${64} | min_rate=${50000} | wt=1 | rxq=1 | search_type=NDR
+| | framesize=${64} | phy_cores=${1} | search_type=NDR
| tc02-64B-1t1c-eth-l2bdbasemaclrn-eth-2memif-1lxc-pdrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with 1 phy core,\
-| | ... | 1 receive queue per NIC port.
-| | ... | [Ver] Find PDR for 64 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 50kpps, LT=0.5%.
-| | ...
| | [Tags] | 64B | 1C | PDRDISC
-| | [Template] | Discover NDR or PDR for L2 Bridge Domain with Memif
-| | framesize=${64} | min_rate=${50000} | wt=1 | rxq=1 | search_type=PDR
+| | framesize=${64} | phy_cores=${1} | search_type=PDR
| tc03-IMIX-1t1c-eth-l2bdbasemaclrn-eth-2memif-1lxc-ndrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with 1 phy core,\
-| | ... | 1 receive queue per NIC port.
-| | ... | [Ver] Find NDR for IMIX_v4_1 frames using binary search start at 10GE\
-| | ... | linerate, step 50kpps.
-| | ... | IMIX_v4_1 = (28x64B;16x570B;4x1518B)
-| | ...
| | [Tags] | IMIX | 1C | NDRDISC
-| | [Template] | Discover NDR or PDR for L2 Bridge Domain with Memif
-| | framesize=IMIX_v4_1 | min_rate=${50000} | wt=1 | rxq=1 | search_type=NDR
+| | framesize=IMIX_v4_1 | phy_cores=${1} | search_type=NDR
| tc04-IMIX-1t1c-eth-l2bdbasemaclrn-eth-2memif-1lxc-pdrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with 1 phy core,\
-| | ... | 1 receive queue per NIC port.
-| | ... | [Ver] Find PDR for IMIX_v4_1 frames using binary search start at 10GE\
-| | ... | linerate, step 50kpps, LT=0.5%.
-| | ... | IMIX_v4_1 = (28x64B;16x570B;4x1518B)
-| | ...
| | [Tags] | IMIX | 1C | PDRDISC
-| | [Template] | Discover NDR or PDR for L2 Bridge Domain with Memif
-| | framesize=IMIX_v4_1 | min_rate=${50000} | wt=1 | rxq=1 | search_type=PDR
+| | framesize=IMIX_v4_1 | phy_cores=${1} | search_type=PDR
| tc05-1518B-1t1c-eth-l2bdbasemaclrn-eth-2memif-1lxc-ndrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with 1 phy core,\
-| | ... | 1 receive queue per NIC port.
-| | ... | [Ver] Find NDR for 1518 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 50kpps.
-| | ...
| | [Tags] | 1518B | 1C | NDRDISC
-| | [Template] | Discover NDR or PDR for L2 Bridge Domain with Memif
-| | framesize=${1518} | min_rate=${50000} | wt=1 | rxq=1 | search_type=NDR
+| | framesize=${1518} | phy_cores=${1} | search_type=NDR
| tc06-1518B-1t1c-eth-l2bdbasemaclrn-eth-2memif-1lxc-pdrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with 1 phy core,\
-| | ... | 1 receive queue per NIC port.
-| | ... | [Ver] Find PDR for 1518 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 50kpps, LT=0.5%.
-| | ...
| | [Tags] | 1518B | 1C | PDRDISC
-| | [Template] | Discover NDR or PDR for L2 Bridge Domain with Memif
-| | framesize=${1518} | min_rate=${50000} | wt=1 | rxq=1 | search_type=PDR
+| | framesize=${1518} | phy_cores=${1} | search_type=PDR
| tc07-64B-2t2c-eth-l2bdbasemaclrn-eth-2memif-1lxc-ndrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with 2 phy core,\
-| | ... | 1 receive queue per NIC port.
-| | ... | [Ver] Find NDR for 64 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 50kpps.
-| | ...
| | [Tags] | 64B | 2C | NDRDISC
-| | [Template] | Discover NDR or PDR for L2 Bridge Domain with Memif
-| | framesize=${64} | min_rate=${50000} | wt=2 | rxq=1 | search_type=NDR
+| | framesize=${64} | phy_cores=${2} | search_type=NDR
| tc08-64B-2t2c-eth-l2bdbasemaclrn-eth-2memif-1lxc-pdrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with 2 phy core,\
-| | ... | 1 receive queue per NIC port.
-| | ... | [Ver] Find PDR for 64 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 50kpps, LT=0.5%.
-| | ...
| | [Tags] | 64B | 2C | PDRDISC
-| | [Template] | Discover NDR or PDR for L2 Bridge Domain with Memif
-| | framesize=${64} | min_rate=${50000} | wt=2 | rxq=1 | search_type=PDR
+| | framesize=${64} | phy_cores=${2} | search_type=PDR
| tc09-IMIX-2t2c-eth-l2bdbasemaclrn-eth-2memif-1lxc-ndrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with 2 phy core,\
-| | ... | 1 receive queue per NIC port.
-| | ... | [Ver] Find NDR for IMIX_v4_1 frames using binary search start at 10GE\
-| | ... | linerate, step 50kpps.
-| | ... | IMIX_v4_1 = (28x64B;16x570B;4x1518B)
-| | ...
| | [Tags] | IMIX | 2C | NDRDISC
-| | [Template] | Discover NDR or PDR for L2 Bridge Domain with Memif
-| | framesize=IMIX_v4_1 | min_rate=${50000} | wt=2 | rxq=1 | search_type=NDR
+| | framesize=IMIX_v4_1 | phy_cores=${2} | search_type=NDR
| tc10-IMIX-2t2c-eth-l2bdbasemaclrn-eth-2memif-1lxc-pdrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with 1 phy core,\
-| | ... | 1 receive queue per NIC port.
-| | ... | [Ver] Find PDR for IMIX_v4_1 frames using binary search start at 10GE\
-| | ... | linerate, step 50kpps, LT=0.5%.
-| | ... | IMIX_v4_1 = (28x64B;16x570B;4x1518B)
-| | ...
| | [Tags] | IMIX | 2C | PDRDISC
-| | [Template] | Discover NDR or PDR for L2 Bridge Domain with Memif
-| | framesize=IMIX_v4_1 | min_rate=${50000} | wt=2 | rxq=1 | search_type=PDR
+| | framesize=IMIX_v4_1 | phy_cores=${2} | search_type=PDR
| tc11-1518B-2t2c-eth-l2bdbasemaclrn-eth-2memif-1lxc-ndrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with 1 phy core,\
-| | ... | 1 receive queue per NIC port.
-| | ... | [Ver] Find NDR for 1518 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 50kpps.
-| | ...
| | [Tags] | 1518B | 2C | NDRDISC
-| | [Template] | Discover NDR or PDR for L2 Bridge Domain with Memif
-| | framesize=${1518} | min_rate=${50000} | wt=2 | rxq=1 | search_type=NDR
+| | framesize=${1518} | phy_cores=${2} | search_type=NDR
| tc12-1518B-2t2c-eth-l2bdbasemaclrn-eth-2memif-1lxc-pdrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with 1 phy core,\
-| | ... | 1 receive queue per NIC port.
-| | ... | [Ver] Find PDR for 1518 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 50kpps, LT=0.5%.
-| | ...
| | [Tags] | 1518B | 2C | PDRDISC
-| | [Template] | Discover NDR or PDR for L2 Bridge Domain with Memif
-| | framesize=${1518} | min_rate=${50000} | wt=2 | rxq=1 | search_type=PDR
+| | framesize=${1518} | phy_cores=${2} | search_type=PDR
diff --git a/tests/vpp/perf/container_memif/10ge2p1x520-eth-l2xcbase-eth-1memif-1dcr-mrr.robot b/tests/vpp/perf/container_memif/10ge2p1x520-eth-l2xcbase-eth-1memif-1dcr-mrr.robot
index 164af1a001..8eb1a7bbe2 100644
--- a/tests/vpp/perf/container_memif/10ge2p1x520-eth-l2xcbase-eth-1memif-1dcr-mrr.robot
+++ b/tests/vpp/perf/container_memif/10ge2p1x520-eth-l2xcbase-eth-1memif-1dcr-mrr.robot
@@ -32,7 +32,7 @@
| ...
| Test Teardown | Tear down performance mrr test
| ...
-| Test Template | Check RR for l2xcbase-eth-1memif-1dcr
+| Test Template | Local template
| ...
| Documentation | *Raw results L2XC test cases*
| ...
@@ -73,148 +73,78 @@
| ${container_cpus}= | ${5}
*** Keywords ***
-| Check RR for l2xcbase-eth-1memif-1dcr
+| Local template
| | [Documentation]
-| | ... | [Cfg] DUT runs L2XC switching config with ${wt} thread(s), ${wt}\
-| | ... | phy core(s), ${rxq} receive queue(s) per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for ${framesize} frames using single\
+| | ... | [Cfg] DUT runs L2XC switching config.
+| | ... | Each DUT uses ${phy_cores} physical core(s) for worker threads.
+| | ... | [Ver] Measure MaxReceivedRate for ${framesize}B frames using single\
| | ... | trial throughput test.
| | ...
-| | [Arguments] | ${framesize} | ${wt} | ${rxq}
+| | ... | *Arguments:*
+| | ... | - framesize - Framesize in Bytes in integer or string (IMIX_v4_1).
+| | ... | Type: integer, string
+| | ... | - phy_cores - Number of physical cores. Type: integer
+| | ... | - rxq - Number of RX queues, default value: ${None}. Type: integer
+| | ...
+| | [Arguments] | ${framesize} | ${phy_cores} | ${rxq}=${None}
| | ...
| | Set Test Variable | ${framesize}
| | ${get_framesize}= | Get Frame Size | ${framesize}
| | ${max_rate}= | Calculate pps | ${s_limit} | ${get_framesize}
-| | Given Add '${wt}' worker threads and '${rxq}' rxqueues in 3-node single-link circular topology
+| | Given Add worker threads and rxqueues to all DUTs | ${phy_cores} | ${rxq}
| | And Add single PCI device to all DUTs
| | And Run Keyword If | ${get_framesize} < ${1522}
| | ... | Add no multi seg to all DUTs
| | And Apply startup configuration on all VPP DUTs
| | And Initialize L2 xconnect for single memif in 3-node circular topology
-| | ... | ${rxq}
| | Then Traffic should pass with maximum rate
| | ... | ${max_rate}pps | ${framesize} | ${traffic_profile}
*** Test Cases ***
| tc01-64B-1t1c-eth-l2xcbase-eth-1memif-1dcr-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2XC switching config with 1 phy core,\
-| | ... | 1 receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 64B frames using single trial\
-| | ... | throughput test.
-| | ...
| | [Tags] | 64B | 1C
-| | framesize=${64} | wt=1 | rxq=1
+| | framesize=${64} | phy_cores=${1}
| tc02-1518B-1t1c-eth-l2xcbase-eth-1memif-1dcr-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2XC switching config with 1 phy core,\
-| | ... | 1 receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 1518B frames using single trial\
-| | ... | throughput test.
-| | ...
| | [Tags] | 1518B | 1C
-| | framesize=${1518} | wt=1 | rxq=1
+| | framesize=${1518} | phy_cores=${1}
| tc03-9000B-1t1c-eth-l2xcbase-eth-1memif-1dcr-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2XC switching config with 1 phy core,\
-| | ... | 1 receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 9000B frames using single trial\
-| | ... | throughput test.
-| | ...
| | [Tags] | 9000B | 1C
-| | framesize=${9000} | wt=1 | rxq=1
+| | framesize=${9000} | phy_cores=${1}
| tc04-IMIX-1t1c-eth-l2xcbase-eth-1memif-1dcr-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2XC switching config with 1 phy core,\
-| | ... | 1 receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for IMIX_v4_1 frames using single trial\
-| | ... | throughput test.
-| | ... | IMIX_v4_1 = (28x64B;16x570B;4x1518B)
-| | ...
| | [Tags] | IMIX | 1C
-| | framesize=IMIX_v4_1 | wt=1 | rxq=1
+| | framesize=IMIX_v4_1 | phy_cores=${1}
| tc05-64B-2t2c-eth-l2xcbase-eth-1memif-1dcr-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2XC switching config with 2 phy cores,\
-| | ... | 1 receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 64B frames using single trial\
-| | ... | throughput test.
-| | ...
| | [Tags] | 64B | 2C
-| | framesize=${64} | wt=2 | rxq=1
+| | framesize=${64} | phy_cores=${2}
| tc06-1518B-2t2c-eth-l2xcbase-eth-1memif-1dcr-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2XC switching config with 1 phy cores,\
-| | ... | 1 receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 1518B frames using single trial\
-| | ... | throughput test.
-| | ...
| | [Tags] | 1518B | 2C
-| | framesize=${1518} | wt=2 | rxq=1
+| | framesize=${1518} | phy_cores=${2}
| tc07-9000B-2t2c-eth-l2xcbase-eth-1memif-1dcr-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2XC switching config with 1 phy cores,\
-| | ... | 1 receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 9000B frames using single trial\
-| | ... | throughput test.
-| | ...
| | [Tags] | 9000B | 2C
-| | framesize=${9000} | wt=2 | rxq=1
+| | framesize=${9000} | phy_cores=${2}
| tc08-IMIX-2t2c-eth-l2xcbase-eth-1memif-1dcr-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2XC switching config with 2 phy cores,\
-| | ... | 1 receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for IMIX_v4_1 frames using single trial\
-| | ... | throughput test.
-| | ... | IMIX_v4_1 = (28x64B;16x570B;4x1518B)
-| | ...
| | [Tags] | IMIX | 2C
-| | framesize=IMIX_v4_1 | wt=2 | rxq=1
+| | framesize=IMIX_v4_1 | phy_cores=${2}
| tc09-64B-4t4c-eth-l2xcbase-eth-1memif-1dcr-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2XC switching config with 4 phy cores,\
-| | ... | 2 receive queues per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 64B frames using single trial\
-| | ... | throughput test.
-| | ...
| | [Tags] | 64B | 4C
-| | framesize=${64} | wt=4 | rxq=2
+| | framesize=${64} | phy_cores=${4}
| tc10-1518B-4t4c-eth-l2xcbase-eth-1memif-1dcr-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2XC switching config with 4 phy cores,\
-| | ... | 2 receive queues per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 1518B frames using single trial\
-| | ... | throughput test.
-| | ...
| | [Tags] | 1518B | 4C
-| | framesize=${1518} | wt=4 | rxq=2
+| | framesize=${1518} | phy_cores=${4}
| tc11-9000B-4t4c-eth-l2xcbase-eth-1memif-1dcr-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2XC switching config with 4 phy cores,\
-| | ... | 2 receive queues per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 9000B frames using single trial\
-| | ... | throughput test.
-| | ...
| | [Tags] | 9000B | 4C
-| | framesize=${9000} | wt=4 | rxq=2
+| | framesize=${9000} | phy_cores=${4}
| tc12-IMIX-4t4c-eth-l2xcbase-eth-1memif-1dcr-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2XC switching config with 4 phy cores,\
-| | ... | 2 receive queues per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for IMIX_v4_1 frames using single trial\
-| | ... | throughput test.
-| | ... | IMIX_v4_1 = (28x64B;16x570B;4x1518B)
-| | ...
| | [Tags] | IMIX | 4C
-| | framesize=IMIX_v4_1 | wt=4 | rxq=2
+| | framesize=IMIX_v4_1 | phy_cores=${4}
diff --git a/tests/vpp/perf/container_memif/10ge2p1x520-eth-l2xcbase-eth-1memif-1dcr-ndrpdrdisc.robot b/tests/vpp/perf/container_memif/10ge2p1x520-eth-l2xcbase-eth-1memif-1dcr-ndrpdrdisc.robot
index 91350e434f..5cece02e25 100644
--- a/tests/vpp/perf/container_memif/10ge2p1x520-eth-l2xcbase-eth-1memif-1dcr-ndrpdrdisc.robot
+++ b/tests/vpp/perf/container_memif/10ge2p1x520-eth-l2xcbase-eth-1memif-1dcr-ndrpdrdisc.robot
@@ -33,7 +33,7 @@
| Test Teardown | Tear down performance discovery test | ${min_rate}pps
| ... | ${framesize} | ${traffic_profile}
| ...
-| Test Template | Find NDRPDR for l2xcbase-eth-1memif-1dcr
+| Test Template | Local template
| ...
| Documentation | *RFC2544: Pkt throughput L2XC test cases*
| ...
@@ -80,15 +80,25 @@
| ${container_cpus}= | ${5}
*** Keywords ***
-| Find NDRPDR for l2xcbase-eth-1memif-1dcr
+| Local template
| | [Documentation]
-| | ... | [Cfg] DUT runs L2XC switching config with ${wt} thread(s), ${wt}\
-| | ... | phy core(s), ${rxq} receive queue(s) per NIC port.
-| | ... | [Ver] Find ${search_type} for ${framesize} frames using binary search\
-| | ... | start at 10GE linerate, step 50kpps.
+| | ... | [Cfg] DUT runs L2XC switching config.
+| | ... | Each DUT uses ${phy_cores} physical core(s) for worker threads.
+| | ... | [Ver] Find ${search_type} for ${framesize}B frames using binary search\
+| | ... | start at linerate, step ${min_rate}pps.
+| | ...
+| | ... | *Arguments:*
+| | ... | - framesize - Framesize in Bytes in integer or string (IMIX_v4_1).
+| | ... | Type: integer, string
+| | ... | - phy_cores - Number of physical cores. Type: integer
+| | ... | - search_type - NDR or PDR. Type: string
+| | ... | - rxq - Number of RX queues, default value: ${None}. Type: integer
+| | ... | - min_rate - Min rate for binary search, default value: ${50000}.
+| | ... | Type: integer
+| | ...
+| | [Arguments] | ${framesize} | ${phy_cores} | ${search_type}
+| | ... | ${rxq}=${None} | ${min_rate}=${50000}
| | ...
-| | [Arguments] | ${framesize} | ${wt} | ${rxq} | ${search_type}
-| | ... | ${min_rate}=${50000}
| | Set Test Variable | ${framesize}
| | Set Test Variable | ${min_rate}
| | ${get_framesize}= | Get Frame Size | ${framesize}
@@ -96,13 +106,12 @@
| | ${binary_min}= | Set Variable | ${min_rate}
| | ${binary_max}= | Set Variable | ${max_rate}
| | ${threshold}= | Set Variable | ${min_rate}
-| | Given Add '${wt}' worker threads and '${rxq}' rxqueues in 3-node single-link circular topology
+| | Given Add worker threads and rxqueues to all DUTs | ${phy_cores} | ${rxq}
| | And Add single PCI device to all DUTs
| | And Run Keyword If | ${get_framesize} < ${1522}
| | ... | Add no multi seg to all DUTs
| | And Apply startup configuration on all VPP DUTs
| | And Initialize L2 xconnect for single memif in 3-node circular topology
-| | ... | ${rxq}
| | Then Run Keyword If | '${search_type}' == 'NDR'
| | ... | Find NDR using binary search and pps
| | ... | ${framesize} | ${binary_min} | ${binary_max} | ${traffic_profile}
@@ -115,247 +124,97 @@
*** Test Cases ***
| tc01-64B-1t1c-eth-l2xcbase-eth-1memif-1dcr-ndrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2XC switching config with 1 phy core,\
-| | ... | 1 receive queue per NIC port.
-| | ... | [Ver] Find NDR for 64 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 50kpps.
-| | ...
| | [Tags] | 64B | 1C | NDRDISC
-| | framesize=${64} | wt=1 | rxq=1 | search_type=NDR
+| | framesize=${64} | phy_cores=${1} | search_type=NDR
| tc02-64B-1t1c-eth-l2xcbase-eth-1memif-1dcr-pdrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2XC switching config with 1 phy core,\
-| | ... | 1 receive queue per NIC port.
-| | ... | [Ver] Find PDR for 64 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 50kpps, LT=0.5%.
-| | ...
| | [Tags] | 64B | 1C | PDRDISC
-| | framesize=${64} | wt=1 | rxq=1 | search_type=PDR
+| | framesize=${64} | phy_cores=${1} | search_type=PDR
| tc03-1518B-1t1c-eth-l2xcbase-eth-1memif-1dcr-ndrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2XC switching config with 1 phy core,\
-| | ... | 1 receive queue per NIC port.
-| | ... | [Ver] Find NDR for 1518 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 50kpps.
-| | ...
| | [Tags] | 1518B | 1C | NDRDISC
-| | framesize=${1518} | wt=1 | rxq=1 | search_type=NDR
+| | framesize=${1518} | phy_cores=${1} | search_type=NDR
| tc04-1518B-1t1c-eth-l2xcbase-eth-1memif-1dcr-pdrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2XC switching config with 1 phy core,\
-| | ... | 1 receive queue per NIC port.
-| | ... | [Ver] Find PDR for 1518 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 50kpps, LT=0.5%.
-| | ...
| | [Tags] | 1518B | 1C | PDRDISC
-| | framesize=${1518} | wt=1 | rxq=1 | search_type=PDR
+| | framesize=${1518} | phy_cores=${1} | search_type=PDR
| tc05-9000B-1t1c-eth-l2xcbase-eth-1memif-1dcr-ndrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2XC switching config with 1 phy core,\
-| | ... | 1 receive queue per NIC port.
-| | ... | [Ver] Find NDR for 9000 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 50kpps.
-| | ...
| | [Tags] | 9000B | 1C | NDRDISC
-| | framesize=${9000} | wt=1 | rxq=1 | search_type=NDR
+| | framesize=${9000} | phy_cores=${1} | search_type=NDR
| tc06-9000B-1t1c-eth-l2xcbase-eth-1memif-1dcr-pdrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2XC switching config with 1 phy core,\
-| | ... | 1 receive queue per NIC port.
-| | ... | [Ver] Find PDR for 9000 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 50kpps, LT=0.5%.
-| | ...
| | [Tags] | 9000B | 1C | PDRDISC
-| | framesize=${9000} | wt=1 | rxq=1 | search_type=PDR
+| | framesize=${9000} | phy_cores=${1} | search_type=PDR
| tc07-IMIX-1t1c-eth-l2xcbase-eth-1memif-1dcr-ndrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2XC switching config with 1 phy core,\
-| | ... | 1 receive queue per NIC port.
-| | ... | [Ver] Find NDR for IMIX_v4_1 frames using binary search start at 10GE\
-| | ... | linerate, step 50kpps.
-| | ... | IMIX_v4_1 = (28x64B;16x570B;4x1518B)
-| | ...
| | [Tags] | IMIX | 1C | NDRDISC
-| | framesize=IMIX_v4_1 | wt=1 | rxq=1 | search_type=NDR
+| | framesize=IMIX_v4_1 | phy_cores=${1} | search_type=NDR
| tc08-IMIX-1t1c-eth-l2xcbase-eth-1memif-1dcr-pdrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2XC switching config with 1 phy core,\
-| | ... | 1 receive queue per NIC port.
-| | ... | [Ver] Find PDR for IMIX_v4_1 frames using binary search start at 10GE\
-| | ... | linerate, step 50kpps, LT=0.5%.
-| | ... | IMIX_v4_1 = (28x64B;16x570B;4x1518B)
-| | ...
| | [Tags] | IMIX | 1C | PDRDISC
-| | framesize=IMIX_v4_1 | wt=1 | rxq=1 | search_type=PDR
+| | framesize=IMIX_v4_1 | phy_cores=${1} | search_type=PDR
| tc09-64B-2t2c-eth-l2xcbase-eth-1memif-1dcr-ndrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2XC switching config with 2 phy core,\
-| | ... | 1 receive queue per NIC port.
-| | ... | [Ver] Find NDR for 64 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 50kpps.
-| | ...
| | [Tags] | 64B | 2C | NDRDISC
-| | framesize=${64} | wt=2 | rxq=1 | search_type=NDR
+| | framesize=${64} | phy_cores=${2} | search_type=NDR
| tc10-64B-2t2c-eth-l2xcbase-eth-1memif-1dcr-pdrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2XC switching config with 2 phy core,\
-| | ... | 1 receive queue per NIC port.
-| | ... | [Ver] Find PDR for 64 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 50kpps, LT=0.5%.
-| | ...
| | [Tags] | 64B | 1C | PDRDISC
-| | framesize=${64} | wt=2 | rxq=1 | search_type=PDR
+| | framesize=${64} | phy_cores=${2} | search_type=PDR
| tc11-1518B-2t2c-eth-l2xcbase-eth-1memif-1dcr-ndrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2XC switching config with 2 phy core,\
-| | ... | 1 receive queue per NIC port.
-| | ... | [Ver] Find NDR for 1518 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 50kpps.
-| | ...
| | [Tags] | 1518B | 2C | NDRDISC
-| | framesize=${1518} | wt=2 | rxq=1 | search_type=NDR
+| | framesize=${1518} | phy_cores=${2} | search_type=NDR
| tc12-1518B-2t2c-eth-l2xcbase-eth-1memif-1dcr-pdrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2XC switching config with 2 phy core,\
-| | ... | 1 receive queue per NIC port.
-| | ... | [Ver] Find PDR for 1518 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 50kpps, LT=0.5%.
-| | ...
| | [Tags] | 1518B | 2C | PDRDISC
-| | framesize=${1518} | wt=2 | rxq=1 | search_type=PDR
+| | framesize=${1518} | phy_cores=${2} | search_type=PDR
| tc13-9000B-2t2c-eth-l2xcbase-eth-1memif-1dcr-ndrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2XC switching config with 2 phy core,\
-| | ... | 1 receive queue per NIC port.
-| | ... | [Ver] Find NDR for 9000 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 50kpps.
-| | ...
| | [Tags] | 9000B | 2C | NDRDISC
-| | framesize=${9000} | wt=2 | rxq=1 | search_type=NDR
+| | framesize=${9000} | phy_cores=${2} | search_type=NDR
| tc14-9000B-2t2c-eth-l2xcbase-eth-1memif-1dcr-pdrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2XC switching config with 2 phy core,\
-| | ... | 1 receive queue per NIC port.
-| | ... | [Ver] Find PDR for 9000 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 50kpps, LT=0.5%.
-| | ...
| | [Tags] | 9000B | 2C | PDRDISC
-| | framesize=${9000} | wt=2 | rxq=1 | search_type=PDR
+| | framesize=${9000} | phy_cores=${2} | search_type=PDR
| tc15-IMIX-2t2c-eth-l2xcbase-eth-1memif-1dcr-ndrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2XC switching config with 2 phy core,\
-| | ... | 1 receive queue per NIC port.
-| | ... | [Ver] Find NDR for IMIX_v4_1 frames using binary search start at 10GE\
-| | ... | linerate, step 50kpps.
-| | ... | IMIX_v4_1 = (28x64B;16x570B;4x1518B)
-| | ...
| | [Tags] | IMIX | 2C | NDRDISC
-| | framesize=IMIX_v4_1 | wt=2 | rxq=1 | search_type=NDR
+| | framesize=IMIX_v4_1 | phy_cores=${2} | search_type=NDR
| tc16-IMIX-2t2c-eth-l2xcbase-eth-1memif-1dcr-pdrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2XC switching config with 2 phy core,\
-| | ... | 1 receive queue per NIC port.
-| | ... | [Ver] Find PDR for IMIX_v4_1 frames using binary search start at 10GE\
-| | ... | linerate, step 50kpps, LT=0.5%.
-| | ... | IMIX_v4_1 = (28x64B;16x570B;4x1518B)
-| | ...
| | [Tags] | IMIX | 2C | PDRDISC
-| | framesize=IMIX_v4_1 | wt=2 | rxq=1 | search_type=PDR
+| | framesize=IMIX_v4_1 | phy_cores=${2} | search_type=PDR
| tc17-64B-4t4c-eth-l2xcbase-eth-1memif-1dcr-ndrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2XC switching config with 4 thread, 4 phy core,\
-| | ... | 2 receive queue per NIC port.
-| | ... | [Ver] Find NDR for 64 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 50kpps.
-| | ...
| | [Tags] | 64B | 4C | NDRDISC
-| | framesize=${64} | wt=4 | rxq=2 | search_type=NDR
+| | framesize=${64} | phy_cores=${4} | search_type=NDR
| tc18-64B-4t4c-eth-l2xcbase-eth-1memif-1dcr-pdrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2XC switching config with 4 thread, 4 phy core,\
-| | ... | 2 receive queue per NIC port.
-| | ... | [Ver] Find PDR for 64 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 50kpps, LT=0.5%.
-| | ...
| | [Tags] | 64B | 4C | PDRDISC
-| | framesize=${64} | wt=4 | rxq=2 | search_type=PDR
+| | framesize=${64} | phy_cores=${4} | search_type=PDR
| tc19-1518B-4t4c-eth-l2xcbase-eth-1memif-1dcr-ndrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2XC switching config with 4 thread, 4 phy core,\
-| | ... | 2 receive queue per NIC port.
-| | ... | [Ver] Find NDR for 1518 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 50kpps.
-| | ...
| | [Tags] | 1518B | 4C | NDRDISC
-| | framesize=${1518} | wt=4 | rxq=2| search_type=NDR
+| | framesize=${1518} | phy_cores=${4} | search_type=NDR
| tc20-1518B-4t4c-eth-l2xcbase-eth-1memif-1dcr-pdrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2XC switching config with 4 thread, 4 phy core,\
-| | ... | 2 receive queue per NIC port.
-| | ... | [Ver] Find PDR for 1518 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 50kpps, LT=0.5%.
-| | ...
| | [Tags] | 1518B | 4C | PDRDISC
-| | framesize=${1518} | wt=4 | rxq=2 | search_type=PDR
+| | framesize=${1518} | phy_cores=${4} | search_type=PDR
| tc21-9000B-4t4c-eth-l2xcbase-eth-1memif-1dcr-ndrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2XC switching config with 4 thread, 4 phy core,\
-| | ... | 2 receive queue per NIC port.
-| | ... | [Ver] Find NDR for 9000 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 50kpps.
-| | ...
| | [Tags] | 9000B | 4C | NDRDISC
-| | framesize=${9000} | wt=4 | rxq=2 | search_type=NDR
+| | framesize=${9000} | phy_cores=${4} | search_type=NDR
| tc22-9000B-4t4c-eth-l2xcbase-eth-1memif-1dcr-pdrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2XC switching config with 4 thread, 4 phy core,\
-| | ... | 2 receive queue per NIC port.
-| | ... | [Ver] Find PDR for 9000 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 50kpps, LT=0.5%.
-| | ...
| | [Tags] | 9000B | 4C | PDRDISC
-| | framesize=${9000} | wt=4 | rxq=2 | search_type=PDR
+| | framesize=${9000} | phy_cores=${4} | search_type=PDR
| tc23-IMIX-4t4c-eth-l2xcbase-eth-1memif-1dcr-ndrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2XC switching config with 4 thread, 4 phy core,\
-| | ... | 2 receive queue per NIC port.
-| | ... | [Ver] Find NDR for IMIX_v4_1 frames using binary search start at 10GE\
-| | ... | linerate, step 50kpps.
-| | ... | IMIX_v4_1 = (28x64B;16x570B;4x1518B)
-| | ...
| | [Tags] | IMIX | 4C | NDRDISC
-| | framesize=IMIX_v4_1 | wt=4 | rxq=2 | search_type=NDR
+| | framesize=IMIX_v4_1 | phy_cores=${4} | search_type=NDR
| tc24-IMIX-4t4c-eth-l2xcbase-eth-1memif-1dcr-pdrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2XC switching config with 4 thread, 4 phy core,\
-| | ... | 2 receive queue per NIC port.
-| | ... | [Ver] Find PDR for IMIX_v4_1 frames using binary search start at 10GE\
-| | ... | linerate, step 50kpps, LT=0.5%.
-| | ... | IMIX_v4_1 = (28x64B;16x570B;4x1518B)
-| | ...
| | [Tags] | IMIX | 4C | PDRDISC
-| | framesize=IMIX_v4_1 | wt=4 | rxq=2 | search_type=PDR
+| | framesize=IMIX_v4_1 | phy_cores=${4} | search_type=PDR
diff --git a/tests/vpp/perf/container_memif/10ge2p1x520-eth-l2xcbase-eth-2memif-1dcr-mrr.robot b/tests/vpp/perf/container_memif/10ge2p1x520-eth-l2xcbase-eth-2memif-1dcr-mrr.robot
index edb5112c55..1febc9a006 100644
--- a/tests/vpp/perf/container_memif/10ge2p1x520-eth-l2xcbase-eth-2memif-1dcr-mrr.robot
+++ b/tests/vpp/perf/container_memif/10ge2p1x520-eth-l2xcbase-eth-2memif-1dcr-mrr.robot
@@ -31,7 +31,9 @@
| ...
| Test Teardown | Tear down performance mrr test
| ...
-| Documentation | *Raw results L2XC test cases*
+| Test Template | Local template
+| ...
+| Documentation | *Raw results L2XC test cases*
| ...
| ... | *[Top] Network Topologies:* TG-DUT1-DUT2-TG 3-node circular topology
| ... | with single links between nodes.
@@ -67,161 +69,79 @@
| ${container_cpus}= | ${5}
*** Keywords ***
-| Check RR for l2xcbase-eth-2memif-1dcr
+| Local template
| | [Documentation]
-| | ... | [Cfg] DUT runs L2XC switching config with ${wt} thread(s), ${wt}\
-| | ... | phy core(s), ${rxq} receive queue(s) per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for ${framesize} frames using single\
+| | ... | [Cfg] DUT runs L2XC switching config.
+| | ... | Each DUT uses ${phy_cores} physical core(s) for worker threads.
+| | ... | [Ver] Measure MaxReceivedRate for ${framesize}B frames using single\
| | ... | trial throughput test.
| | ...
-| | [Arguments] | ${framesize} | ${wt} | ${rxq}
+| | ... | *Arguments:*
+| | ... | - framesize - Framesize in Bytes in integer or string (IMIX_v4_1).
+| | ... | Type: integer, string
+| | ... | - phy_cores - Number of physical cores. Type: integer
+| | ... | - rxq - Number of RX queues, default value: ${None}. Type: integer
+| | ...
+| | [Arguments] | ${framesize} | ${phy_cores} | ${rxq}=${None}
| | ...
-| | # Test Variables required for test teardown
| | Set Test Variable | ${framesize}
| | ${get_framesize}= | Get Frame Size | ${framesize}
| | ${max_rate}= | Calculate pps | ${s_limit} | ${framesize}
| | ...
-| | Given Add '${wt}' worker threads and '${rxq}' rxqueues in 3-node single-link circular topology
+| | Given Add worker threads and rxqueues to all DUTs | ${phy_cores} | ${rxq}
| | And Add PCI devices to all DUTs
| | And Run Keyword If | ${get_framesize} < ${1522}
| | ... | Add no multi seg to all DUTs
| | And Apply startup configuration on all VPP DUTs
-| | And Initialize L2 xconnect for '1' memif pairs and '${rxq}' rxqueues in 3-node circular topology
+| | And Initialize L2 xconnect for '1' memif pairs in 3-node circular topology
| | Then Traffic should pass with maximum rate
| | ... | ${max_rate}pps | ${framesize} | ${traffic_profile}
*** Test Cases ***
| tc01-64B-1t1c-eth-l2xcbase-eth-2memif-1dcr-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2XC switching config with 1 phy core,\
-| | ... | 1 receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 64B frames using single trial\
-| | ... | throughput test.
-| | ...
| | [Tags] | 64B | 1C
-| | [Template] | Check RR for l2xcbase-eth-2memif-1dcr
-| | framesize=${64} | wt=1 | rxq=1
+| | framesize=${64} | phy_cores=${1}
| tc02-1518B-1t1c-eth-l2xcbase-eth-2memif-1dcr-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2XC switching config with 1 phy core,\
-| | ... | 1 receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 1518B frames using single trial\
-| | ... | throughput test.
-| | ...
| | [Tags] | 1518B | 1C
-| | [Template] | Check RR for l2xcbase-eth-2memif-1dcr
-| | framesize=${1518} | wt=1 | rxq=1
+| | framesize=${1518} | phy_cores=${1}
| tc03-9000B-1t1c-eth-l2xcbase-eth-2memif-1dcr-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2XC switching config with 1 phy core,\
-| | ... | 1 receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 9000B frames using single trial\
-| | ... | throughput test.
-| | ...
| | [Tags] | 9000B | 1C
-| | [Template] | Check RR for l2xcbase-eth-2memif-1dcr
-| | framesize=${9000} | wt=1 | rxq=1
+| | framesize=${9000} | phy_cores=${1}
| tc04-IMIX-1t1c-eth-l2xcbase-eth-2memif-1dcr-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2XC switching config with 1 phy core,\
-| | ... | 1 receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for IMIX_v4_1 frames using single trial\
-| | ... | throughput test.
-| | ... | IMIX_v4_1 = (28x64B;16x570B;4x1518B)
-| | ...
| | [Tags] | IMIX | 1C
-| | [Template] | Check RR for l2xcbase-eth-2memif-1dcr
-| | framesize=IMIX_v4_1 | wt=1 | rxq=1
+| | framesize=IMIX_v4_1 | phy_cores=${1}
| tc05-64B-2t2c-eth-l2xcbase-eth-2memif-1dcr-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2XC switching config with 2 phy cores,\
-| | ... | 1 receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 64B frames using single trial\
-| | ... | throughput test.
-| | ...
| | [Tags] | 64B | 2C
-| | [Template] | Check RR for l2xcbase-eth-2memif-1dcr
-| | framesize=${64} | wt=2 | rxq=1
+| | framesize=${64} | phy_cores=${2}
| tc06-1518B-2t2c-eth-l2xcbase-eth-2memif-1dcr-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2XC switching config with 1 phy cores,\
-| | ... | 1 receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 1518B frames using single trial\
-| | ... | throughput test.
-| | ...
| | [Tags] | 1518B | 2C
-| | [Template] | Check RR for l2xcbase-eth-2memif-1dcr
-| | framesize=${1518} | wt=2 | rxq=1
+| | framesize=${1518} | phy_cores=${2}
| tc07-9000B-2t2c-eth-l2xcbase-eth-2memif-1dcr-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2XC switching config with 1 phy cores,\
-| | ... | 1 receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 9000B frames using single trial\
-| | ... | throughput test.
-| | ...
| | [Tags] | 9000B | 2C
-| | [Template] | Check RR for l2xcbase-eth-2memif-1dcr
-| | framesize=${9000} | wt=2 | rxq=1
+| | framesize=${9000} | phy_cores=${2}
| tc08-IMIX-2t2c-eth-l2xcbase-eth-2memif-1dcr-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2XC switching config with 2 phy cores,\
-| | ... | 1 receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for IMIX_v4_1 frames using single trial\
-| | ... | throughput test.
-| | ... | IMIX_v4_1 = (28x64B;16x570B;4x1518B)
-| | ...
| | [Tags] | IMIX | 2C
-| | [Template] | Check RR for l2xcbase-eth-2memif-1dcr
-| | framesize=IMIX_v4_1 | wt=2 | rxq=1
+| | framesize=IMIX_v4_1 | phy_cores=${2}
| tc09-64B-4t4c-eth-l2xcbase-eth-2memif-1dcr-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2XC switching config with 4 phy cores,\
-| | ... | 2 receive queues per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 64B frames using single trial\
-| | ... | throughput test.
-| | ...
| | [Tags] | 64B | 4C
-| | [Template] | Check RR for l2xcbase-eth-2memif-1dcr
-| | framesize=${64} | wt=4 | rxq=2
+| | framesize=${64} | phy_cores=${4}
| tc10-1518B-4t4c-eth-l2xcbase-eth-2memif-1dcr-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2XC switching config with 4 phy cores,\
-| | ... | 2 receive queues per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 1518B frames using single trial\
-| | ... | throughput test.
-| | ...
| | [Tags] | 1518B | 4C
-| | [Template] | Check RR for l2xcbase-eth-2memif-1dcr
-| | framesize=${1518} | wt=4 | rxq=2
+| | framesize=${1518} | phy_cores=${4}
| tc11-9000B-4t4c-eth-l2xcbase-eth-2memif-1dcr-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2XC switching config with 4 phy cores,\
-| | ... | 2 receive queues per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 9000B frames using single trial\
-| | ... | throughput test.
-| | ...
| | [Tags] | 9000B | 4C
-| | [Template] | Check RR for l2xcbase-eth-2memif-1dcr
-| | framesize=${9000} | wt=4 | rxq=2
+| | framesize=${9000} | phy_cores=${4}
| tc12-IMIX-4t4c-eth-l2xcbase-eth-2memif-1dcr-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2XC switching config with 4 phy cores,\
-| | ... | 2 receive queues per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for IMIX_v4_1 frames using single trial\
-| | ... | throughput test.
-| | ... | IMIX_v4_1 = (28x64B;16x570B;4x1518B)
-| | ...
| | [Tags] | IMIX | 4C
-| | [Template] | Check RR for l2xcbase-eth-2memif-1dcr
-| | framesize=IMIX_v4_1 | wt=4 | rxq=2
+| | framesize=IMIX_v4_1 | phy_cores=${4}
diff --git a/tests/vpp/perf/container_memif/10ge2p1x520-eth-l2xcbase-eth-2memif-1drc-ndrpdrdisc.robot b/tests/vpp/perf/container_memif/10ge2p1x520-eth-l2xcbase-eth-2memif-1drc-ndrpdrdisc.robot
index cd1adabf84..044f09d20a 100644
--- a/tests/vpp/perf/container_memif/10ge2p1x520-eth-l2xcbase-eth-2memif-1drc-ndrpdrdisc.robot
+++ b/tests/vpp/perf/container_memif/10ge2p1x520-eth-l2xcbase-eth-2memif-1drc-ndrpdrdisc.robot
@@ -32,6 +32,8 @@
| Test Teardown | Tear down performance discovery test | ${min_rate}pps
| ... | ${framesize} | ${traffic_profile}
| ...
+| Test Template | Local template
+| ...
| Documentation | *RFC2544: Pkt throughput L2XC test cases*
| ...
| ... | *[Top] Network Topologies:* TG-DUT1-DUT2-TG 3-node circular topology
@@ -76,7 +78,24 @@
*** Keywords ***
| L2 Cross Connect over Memif Binary Search
-| | [Arguments] | ${framesize} | ${min_rate} | ${wt} | ${rxq} | ${search_type}
+| | [Documentation]
+| | ... | [Cfg] DUT runs L2XC switching config.
+| | ... | Each DUT uses ${phy_cores} physical core(s) for worker threads.
+| | ... | [Ver] Find ${search_type} for ${framesize}B frames using binary search\
+| | ... | start at linerate, step ${min_rate}pps.
+| | ...
+| | ... | *Arguments:*
+| | ... | - framesize - Framesize in Bytes in integer or string (IMIX_v4_1).
+| | ... | Type: integer, string
+| | ... | - phy_cores - Number of physical cores. Type: integer
+| | ... | - search_type - NDR or PDR. Type: string
+| | ... | - rxq - Number of RX queues, default value: ${None}. Type: integer
+| | ... | - min_rate - Min rate for binary search, default value: ${50000}.
+| | ... | Type: integer
+| | ...
+| | [Arguments] | ${framesize} | ${phy_cores} | ${search_type}
+| | ... | ${rxq}=${None} | ${min_rate}=${50000}
+| | ...
| | Set Test Variable | ${framesize}
| | Set Test Variable | ${min_rate}
| | ${get_framesize}= | Set Variable If
@@ -85,11 +104,11 @@
| | ${binary_min}= | Set Variable | ${min_rate}
| | ${binary_max}= | Set Variable | ${max_rate}
| | ${threshold}= | Set Variable | ${min_rate}
-| | Add '${wt}' worker threads and '${rxq}' rxqueues in 3-node single-link circular topology
-| | Add PCI Devices To DUTs In 3-node Single Link Topology
+| | Add worker threads and rxqueues to all DUTs | ${phy_cores} | ${rxq}
+| | Add PCI devices to all DUTs
| | Run Keyword If | ${get_framesize} < ${1522} | Add No Multi Seg to all DUTs
| | Apply startup configuration on all VPP DUTs
-| | Initialize L2 xconnect for '${container_count}' memif pairs and '${rxq}' rxqueues in 3-node circular topology
+| | Initialize L2 xconnect for '${container_count}' memif pairs in 3-node circular topology
| | Run Keyword If | '${search_type}' == 'NDR'
| | ... | Find NDR using binary search and pps
| | ... | ${framesize} | ${binary_min} | ${binary_max} | ${traffic_profile}
@@ -102,137 +121,49 @@
*** Test Cases ***
| tc01-64B-1t1c-eth-l2xcbase-eth-2memif-1dcr-ndrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2XC switching config with 1 phy core,\
-| | ... | 1 receive queue per NIC port.
-| | ... | [Ver] Find NDR for 64 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 50kpps.
-| | ...
| | [Tags] | 64B | 1C | NDRDISC
-| | [Template] | L2 Cross Connect over Memif Binary Search
-| | framesize=${64} | min_rate=${50000} | wt=1 | rxq=1 | search_type=NDR
+| | framesize=${64} | phy_cores=${1} | search_type=NDR
| tc02-64B-1t1c-eth-l2xcbase-eth-2memif-1dcr-pdrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2XC switching config with 1 phy core,\
-| | ... | 1 receive queue per NIC port.
-| | ... | [Ver] Find PDR for 64 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 50kpps, LT=0.5%.
-| | ...
| | [Tags] | 64B | 1C | PDRDISC
-| | [Template] | L2 Cross Connect over Memif Binary Search
-| | framesize=${64} | min_rate=${50000} | wt=1 | rxq=1 | search_type=PDR
+| | framesize=${64} | phy_cores=${1} | search_type=PDR
| tc03-IMIX-1t1c-eth-l2xcbase-eth-2memif-1dcr-ndrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2XC switching config with 1 phy core,\
-| | ... | 1 receive queue per NIC port.
-| | ... | [Ver] Find NDR for IMIX_v4_1 frames using binary search start at 10GE\
-| | ... | linerate, step 50kpps.
-| | ... | IMIX_v4_1 = (28x64B;16x570B;4x1518B)
-| | ...
| | [Tags] | IMIX | 1C | NDRDISC
-| | [Template] | L2 Cross Connect over Memif Binary Search
-| | framesize=IMIX_v4_1 | min_rate=${50000} | wt=1 | rxq=1 | search_type=NDR
+| | framesize=IMIX_v4_1 | phy_cores=${1} | search_type=NDR
| tc04-IMIX-1t1c-eth-l2xcbase-eth-2memif-1dcr-pdrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2XC switching config with 1 phy core,\
-| | ... | 1 receive queue per NIC port.
-| | ... | [Ver] Find PDR for IMIX_v4_1 frames using binary search start at 10GE\
-| | ... | linerate, step 50kpps, LT=0.5%.
-| | ... | IMIX_v4_1 = (28x64B;16x570B;4x1518B)
-| | ...
| | [Tags] | IMIX | 1C | PDRDISC
-| | [Template] | L2 Cross Connect over Memif Binary Search
-| | framesize=IMIX_v4_1 | min_rate=${50000} | wt=1 | rxq=1 | search_type=PDR
+| | framesize=IMIX_v4_1 | phy_cores=${1} | search_type=PDR
| tc05-1518B-1t1c-eth-l2xcbase-eth-2memif-1dcr-ndrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2XC switching config with 1 phy core,\
-| | ... | 1 receive queue per NIC port.
-| | ... | [Ver] Find NDR for 1518 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 50kpps.
-| | ...
| | [Tags] | 1518B | 1C | NDRDISC
-| | [Template] | L2 Cross Connect over Memif Binary Search
-| | framesize=${1518} | min_rate=${50000} | wt=1 | rxq=1 | search_type=NDR
+| | framesize=${1518} | phy_cores=${1} | search_type=NDR
| tc06-1518B-1t1c-eth-l2xcbase-eth-2memif-1dcr-pdrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2XC switching config with 1 phy core,\
-| | ... | 1 receive queue per NIC port.
-| | ... | [Ver] Find PDR for 1518 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 50kpps, LT=0.5%.
-| | ...
| | [Tags] | 1518B | 1C | PDRDISC
-| | [Template] | L2 Cross Connect over Memif Binary Search
-| | framesize=${1518} | min_rate=${50000} | wt=1 | rxq=1 | search_type=PDR
+| | framesize=${1518} | phy_cores=${1} | search_type=PDR
| tc07-64B-2t2c-eth-l2xcbase-eth-2memif-1dcr-ndrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2XC switching config with 2 phy core,\
-| | ... | 1 receive queue per NIC port.
-| | ... | [Ver] Find NDR for 64 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 50kpps.
-| | ...
| | [Tags] | 64B | 2C | NDRDISC
-| | [Template] | L2 Cross Connect over Memif Binary Search
-| | framesize=${64} | min_rate=${50000} | wt=2 | rxq=1 | search_type=NDR
+| | framesize=${64} | phy_cores=${2} | search_type=NDR
| tc08-64B-2t2c-eth-l2xcbase-eth-2memif-1dcr-pdrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2XC switching config with 2 phy core,\
-| | ... | 1 receive queue per NIC port.
-| | ... | [Ver] Find PDR for 64 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 50kpps, LT=0.5%.
-| | ...
| | [Tags] | 64B | 2C | PDRDISC
-| | [Template] | L2 Cross Connect over Memif Binary Search
-| | framesize=${64} | min_rate=${50000} | wt=2 | rxq=1 | search_type=PDR
+| | framesize=${64} | phy_cores=${2} | search_type=PDR
| tc09-IMIX-2t2c-eth-l2xcbase-eth-2memif-1dcr-ndrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2XC switching config with 2 phy core,\
-| | ... | 1 receive queue per NIC port.
-| | ... | [Ver] Find NDR for IMIX_v4_1 frames using binary search start at 10GE\
-| | ... | linerate, step 50kpps.
-| | ... | IMIX_v4_1 = (28x64B;16x570B;4x1518B)
-| | ...
| | [Tags] | IMIX | 2C | NDRDISC
-| | [Template] | L2 Cross Connect over Memif Binary Search
-| | framesize=IMIX_v4_1 | min_rate=${50000} | wt=2 | rxq=1 | search_type=NDR
+| | framesize=IMIX_v4_1 | phy_cores=${2} | search_type=NDR
| tc10-IMIX-2t2c-eth-l2xcbase-eth-2memif-1dcr-pdrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2XC switching config with 1 phy core,\
-| | ... | 1 receive queue per NIC port.
-| | ... | [Ver] Find PDR for IMIX_v4_1 frames using binary search start at 10GE\
-| | ... | linerate, step 50kpps, LT=0.5%.
-| | ... | IMIX_v4_1 = (28x64B;16x570B;4x1518B)
-| | ...
| | [Tags] | IMIX | 2C | PDRDISC
-| | [Template] | L2 Cross Connect over Memif Binary Search
-| | framesize=IMIX_v4_1 | min_rate=${50000} | wt=2 | rxq=1 | search_type=PDR
+| | framesize=IMIX_v4_1 | phy_cores=${2} | search_type=PDR
| tc11-1518B-2t2c-eth-l2xcbase-eth-2memif-1dcr-ndrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2XC switching config with 1 phy core,\
-| | ... | 1 receive queue per NIC port.
-| | ... | [Ver] Find NDR for 1518 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 50kpps.
-| | ...
| | [Tags] | 1518B | 2C | NDRDISC
-| | [Template] | L2 Cross Connect over Memif Binary Search
-| | framesize=${1518} | min_rate=${50000} | wt=2 | rxq=1 | search_type=NDR
+| | framesize=${1518} | phy_cores=${2} | search_type=NDR
| tc12-1518B-2t2c-eth-l2xcbase-eth-2memif-1dcr-pdrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2XC switching config with 1 phy core,\
-| | ... | 1 receive queue per NIC port.
-| | ... | [Ver] Find PDR for 1518 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 50kpps, LT=0.5%.
-| | ...
| | [Tags] | 1518B | 2C | PDRDISC
-| | [Template] | L2 Cross Connect over Memif Binary Search
-| | framesize=${1518} | min_rate=${50000} | wt=2 | rxq=1 | search_type=PDR
+| | framesize=${1518} | phy_cores=${2} | search_type=PDR
diff --git a/tests/vpp/perf/container_memif/10ge2p1x520-eth-l2xcbase-eth-2memif-1lxc-mrr.robot b/tests/vpp/perf/container_memif/10ge2p1x520-eth-l2xcbase-eth-2memif-1lxc-mrr.robot
index 7d4c5f73db..b01acfcffd 100644
--- a/tests/vpp/perf/container_memif/10ge2p1x520-eth-l2xcbase-eth-2memif-1lxc-mrr.robot
+++ b/tests/vpp/perf/container_memif/10ge2p1x520-eth-l2xcbase-eth-2memif-1lxc-mrr.robot
@@ -31,7 +31,9 @@
| ...
| Test Teardown | Tear down performance mrr test
| ...
-| Documentation | *Raw results L2XC test cases*
+| Test Template | Local template
+| ...
+| Documentation | *Raw results L2XC test cases*
| ...
| ... | *[Top] Network Topologies:* TG-DUT1-DUT2-TG 3-node circular topology
| ... | with single links between nodes.
@@ -66,161 +68,79 @@
| ${container_cpus}= | ${5}
*** Keywords ***
-| Check RR for l2xcbase-eth-2memif-1lxc
+| Local template
| | [Documentation]
-| | ... | [Cfg] DUT runs L2XC switching config with ${wt} thread(s), ${wt}\
-| | ... | phy core(s), ${rxq} receive queue(s) per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for ${framesize} frames using single\
+| | ... | [Cfg] DUT runs L2XC switching config.
+| | ... | Each DUT uses ${phy_cores} physical core(s) for worker threads.
+| | ... | [Ver] Measure MaxReceivedRate for ${framesize}B frames using single\
| | ... | trial throughput test.
| | ...
-| | [Arguments] | ${framesize} | ${wt} | ${rxq}
+| | ... | *Arguments:*
+| | ... | - framesize - Framesize in Bytes in integer or string (IMIX_v4_1).
+| | ... | Type: integer, string
+| | ... | - phy_cores - Number of physical cores. Type: integer
+| | ... | - rxq - Number of RX queues, default value: ${None}. Type: integer
+| | ...
+| | [Arguments] | ${framesize} | ${phy_cores} | ${rxq}=${None}
| | ...
-| | # Test Variables required for test teardown
| | Set Test Variable | ${framesize}
| | ${get_framesize}= | Get Frame Size | ${framesize}
| | ${max_rate}= | Calculate pps | ${s_limit} | ${framesize}
| | ...
-| | Given Add '${wt}' worker threads and '${rxq}' rxqueues in 3-node single-link circular topology
+| | Given Add worker threads and rxqueues to all DUTs | ${phy_cores} | ${rxq}
| | And Add PCI devices to all DUTs
| | And Run Keyword If | ${get_framesize} < ${1522}
| | ... | Add no multi seg to all DUTs
| | And Apply startup configuration on all VPP DUTs
-| | And Initialize L2 xconnect for '1' memif pairs and '${rxq}' rxqueues in 3-node circular topology
+| | And Initialize L2 xconnect for '1' memif pairs in 3-node circular topology
| | Then Traffic should pass with maximum rate
| | ... | ${max_rate}pps | ${framesize} | ${traffic_profile}
*** Test Cases ***
| tc01-64B-1t1c-eth-l2xcbase-eth-2memif-1lxc-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2XC switching config with 1 phy core,\
-| | ... | 1 receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 64B frames using single trial\
-| | ... | throughput test.
-| | ...
| | [Tags] | 64B | 1C
-| | [Template] | Check RR for l2xcbase-eth-2memif-1lxc
-| | framesize=${64} | wt=1 | rxq=1
+| | framesize=${64} | phy_cores=${1}
| tc02-1518B-1t1c-eth-l2xcbase-eth-2memif-1lxc-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2XC switching config with 1 phy core,\
-| | ... | 1 receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 1518B frames using single trial\
-| | ... | throughput test.
-| | ...
| | [Tags] | 1518B | 1C
-| | [Template] | Check RR for l2xcbase-eth-2memif-1lxc
-| | framesize=${1518} | wt=1 | rxq=1
+| | framesize=${1518} | phy_cores=${1}
| tc03-9000B-1t1c-eth-l2xcbase-eth-2memif-1lxc-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2XC switching config with 1 phy core,\
-| | ... | 1 receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 9000B frames using single trial\
-| | ... | throughput test.
-| | ...
| | [Tags] | 9000B | 1C
-| | [Template] | Check RR for l2xcbase-eth-2memif-1lxc
-| | framesize=${9000} | wt=1 | rxq=1
+| | framesize=${9000} | phy_cores=${1}
| tc04-IMIX-1t1c-eth-l2xcbase-eth-2memif-1lxc-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2XC switching config with 1 phy core,\
-| | ... | 1 receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for IMIX_v4_1 frames using single trial\
-| | ... | throughput test.
-| | ... | IMIX_v4_1 = (28x64B;16x570B;4x1518B)
-| | ...
| | [Tags] | IMIX | 1C
-| | [Template] | Check RR for l2xcbase-eth-2memif-1lxc
-| | framesize=IMIX_v4_1 | wt=1 | rxq=1
+| | framesize=IMIX_v4_1 | phy_cores=${1}
| tc05-64B-2t2c-eth-l2xcbase-eth-2memif-1lxc-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2XC switching config with 2 phy cores,\
-| | ... | 1 receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 64B frames using single trial\
-| | ... | throughput test.
-| | ...
| | [Tags] | 64B | 2C
-| | [Template] | Check RR for l2xcbase-eth-2memif-1lxc
-| | framesize=${64} | wt=2 | rxq=1
+| | framesize=${64} | phy_cores=${2}
| tc06-1518B-2t2c-eth-l2xcbase-eth-2memif-1lxc-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2XC switching config with 2 phy cores,\
-| | ... | 1 receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 1518B frames using single trial\
-| | ... | throughput test.
-| | ...
| | [Tags] | 1518B | 2C
-| | [Template] | Check RR for l2xcbase-eth-2memif-1lxc
-| | framesize=${1518} | wt=2 | rxq=1
+| | framesize=${1518} | phy_cores=${2}
| tc07-9000B-2t2c-eth-l2xcbase-eth-2memif-1lxc-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2XC switching config with 2 phy cores,\
-| | ... | 1 receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 9000B frames using single trial\
-| | ... | throughput test.
-| | ...
| | [Tags] | 9000B | 2C
-| | [Template] | Check RR for l2xcbase-eth-2memif-1lxc
-| | framesize=${9000} | wt=2 | rxq=1
+| | framesize=${9000} | phy_cores=${2}
| tc08-IMIX-2t2c-eth-l2xcbase-eth-2memif-1lxc-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2XC switching config with 2 phy cores,\
-| | ... | 1 receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for IMIX_v4_1 frames using single trial\
-| | ... | throughput test.
-| | ... | IMIX_v4_1 = (28x64B;16x570B;4x1518B)
-| | ...
| | [Tags] | IMIX | 2C
-| | [Template] | Check RR for l2xcbase-eth-2memif-1lxc
-| | framesize=IMIX_v4_1 | wt=2 | rxq=1
+| | framesize=IMIX_v4_1 | phy_cores=${2}
| tc09-64B-4t4c-eth-l2xcbase-eth-2memif-1lxc-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2XC switching config with 4 phy cores,\
-| | ... | 2 receive queues per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 64B frames using single trial\
-| | ... | throughput test.
-| | ...
| | [Tags] | 64B | 4C
-| | [Template] | Check RR for l2xcbase-eth-2memif-1lxc
-| | framesize=${64} | wt=4 | rxq=2
+| | framesize=${64} | phy_cores=${4}
| tc10-1518B-4t4c-eth-l2xcbase-eth-2memif-1lxc-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2XC switching config with 4 phy cores,\
-| | ... | 2 receive queues per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 1518B frames using single trial\
-| | ... | throughput test.
-| | ...
| | [Tags] | 1518B | 4C
-| | [Template] | Check RR for l2xcbase-eth-2memif-1lxc
-| | framesize=${1518} | wt=4 | rxq=2
+| | framesize=${1518} | phy_cores=${4}
| tc11-9000B-4t4c-eth-l2xcbase-eth-2memif-1lxc-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2XC switching config with 4 phy cores,\
-| | ... | 2 receive queues per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 9000B frames using single trial\
-| | ... | throughput test.
-| | ...
| | [Tags] | 9000B | 4C
-| | [Template] | Check RR for l2xcbase-eth-2memif-1lxc
-| | framesize=${9000} | wt=4 | rxq=2
+| | framesize=${9000} | phy_cores=${4}
| tc12-IMIX-4t4c-eth-l2xcbase-eth-2memif-1lxc-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2XC switching config with 4 phy cores,\
-| | ... | 2 receive queues per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for IMIX_v4_1 frames using single trial\
-| | ... | throughput test.
-| | ... | IMIX_v4_1 = (28x64B;16x570B;4x1518B)
-| | ...
| | [Tags] | IMIX | 4C
-| | [Template] | Check RR for l2xcbase-eth-2memif-1lxc
-| | framesize=IMIX_v4_1 | wt=4 | rxq=2
+| | framesize=IMIX_v4_1 | phy_cores=${4}
diff --git a/tests/vpp/perf/container_memif/10ge2p1x520-eth-l2xcbase-eth-2memif-1lxc-ndrpdrdisc.robot b/tests/vpp/perf/container_memif/10ge2p1x520-eth-l2xcbase-eth-2memif-1lxc-ndrpdrdisc.robot
index 046f5a8514..021c61ba22 100644
--- a/tests/vpp/perf/container_memif/10ge2p1x520-eth-l2xcbase-eth-2memif-1lxc-ndrpdrdisc.robot
+++ b/tests/vpp/perf/container_memif/10ge2p1x520-eth-l2xcbase-eth-2memif-1lxc-ndrpdrdisc.robot
@@ -32,6 +32,8 @@
| Test Teardown | Tear down performance discovery test | ${min_rate}pps
| ... | ${framesize} | ${traffic_profile}
| ...
+| Test Template | Local template
+| ...
| Documentation | *RFC2544: Pkt throughput L2XC test cases*
| ...
| ... | *[Top] Network Topologies:* TG-DUT1-DUT2-TG 3-node circular topology
@@ -75,7 +77,24 @@
*** Keywords ***
| L2 Cross Connect over Memif Binary Search
-| | [Arguments] | ${framesize} | ${min_rate} | ${wt} | ${rxq} | ${search_type}
+| | [Documentation]
+| | ... | [Cfg] DUT runs L2XC switching config.
+| | ... | Each DUT uses ${phy_cores} physical core(s) for worker threads.
+| | ... | [Ver] Find ${search_type} for ${framesize}B frames using binary search\
+| | ... | start at linerate, step ${min_rate}pps.
+| | ...
+| | ... | *Arguments:*
+| | ... | - framesize - Framesize in Bytes in integer or string (IMIX_v4_1).
+| | ... | Type: integer, string
+| | ... | - phy_cores - Number of physical cores. Type: integer
+| | ... | - search_type - NDR or PDR. Type: string
+| | ... | - rxq - Number of RX queues, default value: ${None}. Type: integer
+| | ... | - min_rate - Min rate for binary search, default value: ${50000}.
+| | ... | Type: integer
+| | ...
+| | [Arguments] | ${framesize} | ${phy_cores} | ${search_type}
+| | ... | ${rxq}=${None} | ${min_rate}=${50000}
+| | ...
| | Set Test Variable | ${framesize}
| | Set Test Variable | ${min_rate}
| | ${get_framesize}= | Set Variable If
@@ -84,11 +103,11 @@
| | ${binary_min}= | Set Variable | ${min_rate}
| | ${binary_max}= | Set Variable | ${max_rate}
| | ${threshold}= | Set Variable | ${min_rate}
-| | Add '${wt}' worker threads and '${rxq}' rxqueues in 3-node single-link circular topology
-| | Add PCI Devices To DUTs In 3-node Single Link Topology
+| | Add worker threads and rxqueues to all DUTs | ${phy_cores} | ${rxq}
+| | Add PCI devices to all DUTs
| | Run Keyword If | ${get_framesize} < ${1522} | Add No Multi Seg to all DUTs
| | Apply startup configuration on all VPP DUTs
-| | Initialize L2 xconnect for '1' memif pairs and '${rxq}' rxqueues in 3-node circular topology
+| | Initialize L2 xconnect for '1' memif pairs in 3-node circular topology
| | Run Keyword If | '${search_type}' == 'NDR'
| | ... | Find NDR using binary search and pps
| | ... | ${framesize} | ${binary_min} | ${binary_max} | ${traffic_profile}
@@ -101,137 +120,49 @@
*** Test Cases ***
| tc01-64B-1t1c-eth-l2xcbase-eth-2memif-1lxc-ndrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2XC switching config with 1 phy core,\
-| | ... | 1 receive queue per NIC port.
-| | ... | [Ver] Find NDR for 64 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 50kpps.
-| | ...
| | [Tags] | 64B | 1C | NDRDISC
-| | [Template] | L2 Cross Connect over Memif Binary Search
-| | framesize=${64} | min_rate=${50000} | wt=1 | rxq=1 | search_type=NDR
+| | framesize=${64} | phy_cores=${1} | search_type=NDR
| tc02-64B-1t1c-eth-l2xcbase-eth-2memif-1lxc-pdrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2XC switching config with 1 phy core,\
-| | ... | 1 receive queue per NIC port.
-| | ... | [Ver] Find PDR for 64 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 50kpps, LT=0.5%.
-| | ...
| | [Tags] | 64B | 1C | PDRDISC
-| | [Template] | L2 Cross Connect over Memif Binary Search
-| | framesize=${64} | min_rate=${50000} | wt=1 | rxq=1 | search_type=PDR
+| | framesize=${64} | phy_cores=${1} | search_type=PDR
| tc03-IMIX-1t1c-eth-l2xcbase-eth-2memif-1lxc-ndrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2XC switching config with 1 phy core,\
-| | ... | 1 receive queue per NIC port.
-| | ... | [Ver] Find NDR for IMIX_v4_1 frames using binary search start at 10GE\
-| | ... | linerate, step 50kpps.
-| | ... | IMIX_v4_1 = (28x64B;16x570B;4x1518B)
-| | ...
| | [Tags] | IMIX | 1C | NDRDISC
-| | [Template] | L2 Cross Connect over Memif Binary Search
-| | framesize=IMIX_v4_1 | min_rate=${50000} | wt=1 | rxq=1 | search_type=NDR
+| | framesize=IMIX_v4_1 | phy_cores=${1} | search_type=NDR
| tc04-IMIX-1t1c-eth-l2xcbase-eth-2memif-1lxc-pdrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2XC switching config with 1 phy core,\
-| | ... | 1 receive queue per NIC port.
-| | ... | [Ver] Find PDR for IMIX_v4_1 frames using binary search start at 10GE\
-| | ... | linerate, step 50kpps, LT=0.5%.
-| | ... | IMIX_v4_1 = (28x64B;16x570B;4x1518B)
-| | ...
| | [Tags] | IMIX | 1C | PDRDISC
-| | [Template] | L2 Cross Connect over Memif Binary Search
-| | framesize=IMIX_v4_1 | min_rate=${50000} | wt=1 | rxq=1 | search_type=PDR
+| | framesize=IMIX_v4_1 | phy_cores=${1} | search_type=PDR
| tc05-1518B-1t1c-eth-l2xcbase-eth-2memif-1lxc-ndrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2XC switching config with 1 phy core,\
-| | ... | 1 receive queue per NIC port.
-| | ... | [Ver] Find NDR for 1518 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 50kpps.
-| | ...
| | [Tags] | 1518B | 1C | NDRDISC
-| | [Template] | L2 Cross Connect over Memif Binary Search
-| | framesize=${1518} | min_rate=${50000} | wt=1 | rxq=1 | search_type=NDR
+| | framesize=${1518} | phy_cores=${1} | search_type=NDR
| tc06-1518B-1t1c-eth-l2xcbase-eth-2memif-1lxc-pdrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2XC switching config with 1 phy core,\
-| | ... | 1 receive queue per NIC port.
-| | ... | [Ver] Find PDR for 1518 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 50kpps, LT=0.5%.
-| | ...
| | [Tags] | 1518B | 1C | PDRDISC
-| | [Template] | L2 Cross Connect over Memif Binary Search
-| | framesize=${1518} | min_rate=${50000} | wt=1 | rxq=1 | search_type=PDR
+| | framesize=${1518} | phy_cores=${1} | search_type=PDR
| tc07-64B-2t2c-eth-l2xcbase-eth-2memif-1lxc-ndrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2XC switching config with 2 phy core,\
-| | ... | 1 receive queue per NIC port.
-| | ... | [Ver] Find NDR for 64 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 50kpps.
-| | ...
| | [Tags] | 64B | 2C | NDRDISC
-| | [Template] | L2 Cross Connect over Memif Binary Search
-| | framesize=${64} | min_rate=${50000} | wt=2 | rxq=1 | search_type=NDR
+| | framesize=${64} | phy_cores=${2} | search_type=NDR
| tc08-64B-2t2c-eth-l2xcbase-eth-2memif-1lxc-pdrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2XC switching config with 2 phy core,\
-| | ... | 1 receive queue per NIC port.
-| | ... | [Ver] Find PDR for 64 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 50kpps, LT=0.5%.
-| | ...
| | [Tags] | 64B | 2C | PDRDISC
-| | [Template] | L2 Cross Connect over Memif Binary Search
-| | framesize=${64} | min_rate=${50000} | wt=2 | rxq=1 | search_type=PDR
+| | framesize=${64} | phy_cores=${2} | search_type=PDR
| tc09-IMIX-2t2c-eth-l2xcbase-eth-2memif-1lxc-ndrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2XC switching config with 2 phy core,\
-| | ... | 1 receive queue per NIC port.
-| | ... | [Ver] Find NDR for IMIX_v4_1 frames using binary search start at 10GE\
-| | ... | linerate, step 50kpps.
-| | ... | IMIX_v4_1 = (28x64B;16x570B;4x1518B)
-| | ...
| | [Tags] | IMIX | 2C | NDRDISC
-| | [Template] | L2 Cross Connect over Memif Binary Search
-| | framesize=IMIX_v4_1 | min_rate=${50000} | wt=2 | rxq=1 | search_type=NDR
+| | framesize=IMIX_v4_1 | phy_cores=${2} | search_type=NDR
| tc10-IMIX-2t2c-eth-l2xcbase-eth-2memif-1lxc-pdrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2XC switching config with 1 phy core,\
-| | ... | 1 receive queue per NIC port.
-| | ... | [Ver] Find PDR for IMIX_v4_1 frames using binary search start at 10GE\
-| | ... | linerate, step 50kpps, LT=0.5%.
-| | ... | IMIX_v4_1 = (28x64B;16x570B;4x1518B)
-| | ...
| | [Tags] | IMIX | 2C | PDRDISC
-| | [Template] | L2 Cross Connect over Memif Binary Search
-| | framesize=IMIX_v4_1 | min_rate=${50000} | wt=2 | rxq=1 | search_type=PDR
+| | framesize=IMIX_v4_1 | phy_cores=${2} | search_type=PDR
| tc11-1518B-2t2c-eth-l2xcbase-eth-2memif-1lxc-ndrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2XC switching config with 1 phy core,\
-| | ... | 1 receive queue per NIC port.
-| | ... | [Ver] Find NDR for 1518 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 50kpps.
-| | ...
| | [Tags] | 1518B | 2C | NDRDISC
-| | [Template] | L2 Cross Connect over Memif Binary Search
-| | framesize=${1518} | min_rate=${50000} | wt=2 | rxq=1 | search_type=NDR
+| | framesize=${1518} | phy_cores=${2} | search_type=NDR
| tc12-1518B-2t2c-eth-l2xcbase-eth-2memif-1lxc-pdrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2XC switching config with 1 phy core,\
-| | ... | 1 receive queue per NIC port.
-| | ... | [Ver] Find PDR for 1518 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 50kpps, LT=0.5%.
-| | ...
| | [Tags] | 1518B | 2C | PDRDISC
-| | [Template] | L2 Cross Connect over Memif Binary Search
-| | framesize=${1518} | min_rate=${50000} | wt=2 | rxq=1 | search_type=PDR
+| | framesize=${1518} | phy_cores=${2} | search_type=PDR
diff --git a/tests/vpp/perf/container_memif/10ge2p1x710-eth-l2bdbasemaclrn-eth-2memif-1lxc-mrr.robot b/tests/vpp/perf/container_memif/10ge2p1x710-eth-l2bdbasemaclrn-eth-2memif-1lxc-mrr.robot
index 0c12a5cc4a..f486d79126 100644
--- a/tests/vpp/perf/container_memif/10ge2p1x710-eth-l2bdbasemaclrn-eth-2memif-1lxc-mrr.robot
+++ b/tests/vpp/perf/container_memif/10ge2p1x710-eth-l2bdbasemaclrn-eth-2memif-1lxc-mrr.robot
@@ -31,7 +31,9 @@
| ...
| Test Teardown | Tear down performance mrr test
| ...
-| Documentation | *Raw results L2BD test cases*
+| Test Template | Local template
+| ...
+| Documentation | *Raw results L2BD test cases*
| ...
| ... | *[Top] Network Topologies:* TG-DUT1-DUT2-TG 3-node circular topology
| ... | with single links between nodes.
@@ -67,161 +69,79 @@
| ${container_cpus}= | ${5}
*** Keywords ***
-| Check RR for l2bdbasemaclrn-eth-2memif-1lxc
+| Local template
| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with ${wt} thread(s), ${wt}\
-| | ... | phy core(s), ${rxq} receive queue(s) per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for ${framesize} frames using single\
+| | ... | [Cfg] DUT runs L2BD switching config.
+| | ... | Each DUT uses ${phy_cores} physical core(s) for worker threads.
+| | ... | [Ver] Measure MaxReceivedRate for ${framesize}B frames using single\
| | ... | trial throughput test.
| | ...
-| | [Arguments] | ${framesize} | ${wt} | ${rxq}
+| | ... | *Arguments:*
+| | ... | - framesize - Framesize in Bytes in integer or string (IMIX_v4_1).
+| | ... | Type: integer, string
+| | ... | - phy_cores - Number of physical cores. Type: integer
+| | ... | - rxq - Number of RX queues, default value: ${None}. Type: integer
+| | ...
+| | [Arguments] | ${framesize} | ${phy_cores} | ${rxq}=${None}
| | ...
-| | # Test Variables required for test teardown
| | Set Test Variable | ${framesize}
| | ${get_framesize}= | Get Frame Size | ${framesize}
| | ${max_rate}= | Calculate pps | ${s_limit} | ${framesize}
| | ...
-| | Given Add '${wt}' worker threads and '${rxq}' rxqueues in 3-node single-link circular topology
+| | Given Add worker threads and rxqueues to all DUTs | ${phy_cores} | ${rxq}
| | And Add PCI devices to all DUTs
| | And Run Keyword If | ${get_framesize} < ${1522}
| | ... | Add no multi seg to all DUTs
| | And Apply startup configuration on all VPP DUTs
-| | And Initialize L2 Bridge Domain for '1' memif pairs and '${rxq}' rxqueues in 3-node circular topology
+| | And Initialize L2 Bridge Domain for '1' memif pairs in 3-node circular topology
| | Then Traffic should pass with maximum rate
| | ... | ${max_rate}pps | ${framesize} | ${traffic_profile}
*** Test Cases ***
| tc01-64B-1t1c-eth-l2bdbasemaclrn-eth-2memif-1lxc-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with 1 phy core,\
-| | ... | 1 receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 64B frames using single trial\
-| | ... | throughput test.
-| | ...
| | [Tags] | 64B | 1C
-| | [Template] | Check RR for l2bdbasemaclrn-eth-2memif-1lxc
-| | framesize=${64} | wt=1 | rxq=1
+| | framesize=${64} | phy_cores=${1}
| tc02-1518B-1t1c-eth-l2bdbasemaclrn-eth-2memif-1lxc-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with 1 phy core,\
-| | ... | 1 receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 1518B frames using single trial\
-| | ... | throughput test.
-| | ...
| | [Tags] | 1518B | 1C
-| | [Template] | Check RR for l2bdbasemaclrn-eth-2memif-1lxc
-| | framesize=${1518} | wt=1 | rxq=1
+| | framesize=${1518} | phy_cores=${1}
| tc03-9000B-1t1c-eth-l2bdbasemaclrn-eth-2memif-1lxc-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with 1 phy core,\
-| | ... | 1 receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 9000B frames using single trial\
-| | ... | throughput test.
-| | ...
| | [Tags] | 9000B | 1C
-| | [Template] | Check RR for l2bdbasemaclrn-eth-2memif-1lxc
-| | framesize=${9000} | wt=1 | rxq=1
+| | framesize=${9000} | phy_cores=${1}
| tc04-IMIX-1t1c-eth-l2bdbasemaclrn-eth-2memif-1lxc-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with 1 phy core,\
-| | ... | 1 receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for IMIX_v4_1 frames using single trial\
-| | ... | throughput test.
-| | ... | IMIX_v4_1 = (28x64B;16x570B;4x1518B)
-| | ...
| | [Tags] | IMIX | 1C
-| | [Template] | Check RR for l2bdbasemaclrn-eth-2memif-1lxc
-| | framesize=IMIX_v4_1 | wt=1 | rxq=1
+| | framesize=IMIX_v4_1 | phy_cores=${1}
| tc05-64B-2t2c-eth-l2bdbasemaclrn-eth-2memif-1lxc-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with 2 phy cores,\
-| | ... | 1 receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 64B frames using single trial\
-| | ... | throughput test.
-| | ...
| | [Tags] | 64B | 2C
-| | [Template] | Check RR for l2bdbasemaclrn-eth-2memif-1lxc
-| | framesize=${64} | wt=2 | rxq=1
+| | framesize=${64} | phy_cores=${2}
| tc06-1518B-2t2c-eth-l2bdbasemaclrn-eth-2memif-1lxc-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with 1 phy cores,\
-| | ... | 1 receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 1518B frames using single trial\
-| | ... | throughput test.
-| | ...
| | [Tags] | 1518B | 2C
-| | [Template] | Check RR for l2bdbasemaclrn-eth-2memif-1lxc
-| | framesize=${1518} | wt=2 | rxq=1
+| | framesize=${1518} | phy_cores=${2}
| tc07-9000B-2t2c-eth-l2bdbasemaclrn-eth-2memif-1lxc-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with 1 phy cores,\
-| | ... | 1 receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 9000B frames using single trial\
-| | ... | throughput test.
-| | ...
| | [Tags] | 9000B | 2C
-| | [Template] | Check RR for l2bdbasemaclrn-eth-2memif-1lxc
-| | framesize=${9000} | wt=2 | rxq=1
+| | framesize=${9000} | phy_cores=${2}
| tc08-IMIX-2t2c-eth-l2bdbasemaclrn-eth-2memif-1lxc-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with 2 phy cores,\
-| | ... | 1 receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for IMIX_v4_1 frames using single trial\
-| | ... | throughput test.
-| | ... | IMIX_v4_1 = (28x64B;16x570B;4x1518B)
-| | ...
| | [Tags] | IMIX | 2C
-| | [Template] | Check RR for l2bdbasemaclrn-eth-2memif-1lxc
-| | framesize=IMIX_v4_1 | wt=2 | rxq=1
+| | framesize=IMIX_v4_1 | phy_cores=${2}
| tc09-64B-4t4c-eth-l2bdbasemaclrn-eth-2memif-1lxc-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with 4 phy cores,\
-| | ... | 2 receive queues per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 64B frames using single trial\
-| | ... | throughput test.
-| | ...
| | [Tags] | 64B | 4C
-| | [Template] | Check RR for l2bdbasemaclrn-eth-2memif-1lxc
-| | framesize=${64} | wt=4 | rxq=2
+| | framesize=${64} | phy_cores=${4}
| tc10-1518B-4t4c-eth-l2bdbasemaclrn-eth-2memif-1lxc-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with 4 phy cores,\
-| | ... | 2 receive queues per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 1518B frames using single trial\
-| | ... | throughput test.
-| | ...
| | [Tags] | 1518B | 4C
-| | [Template] | Check RR for l2bdbasemaclrn-eth-2memif-1lxc
-| | framesize=${1518} | wt=4 | rxq=2
+| | framesize=${1518} | phy_cores=${4}
| tc11-9000B-4t4c-eth-l2bdbasemaclrn-eth-2memif-1lxc-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with 4 phy cores,\
-| | ... | 2 receive queues per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 9000B frames using single trial\
-| | ... | throughput test.
-| | ...
| | [Tags] | 9000B | 4C
-| | [Template] | Check RR for l2bdbasemaclrn-eth-2memif-1lxc
-| | framesize=${9000} | wt=4 | rxq=2
+| | framesize=${9000} | phy_cores=${4}
| tc12-IMIX-4t4c-eth-l2bdbasemaclrn-eth-2memif-1lxc-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with 4 phy cores,\
-| | ... | 2 receive queues per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for IMIX_v4_1 frames using single trial\
-| | ... | throughput test.
-| | ... | IMIX_v4_1 = (28x64B;16x570B;4x1518B)
-| | ...
| | [Tags] | IMIX | 4C
-| | [Template] | Check RR for l2bdbasemaclrn-eth-2memif-1lxc
-| | framesize=IMIX_v4_1 | wt=4 | rxq=2
+| | framesize=IMIX_v4_1 | phy_cores=${4}
diff --git a/tests/vpp/perf/container_memif/10ge2p1x710-eth-l2xcbase-eth-1memif-1dcr-mrr.robot b/tests/vpp/perf/container_memif/10ge2p1x710-eth-l2xcbase-eth-1memif-1dcr-mrr.robot
index f2559b6f71..0587659fc6 100644
--- a/tests/vpp/perf/container_memif/10ge2p1x710-eth-l2xcbase-eth-1memif-1dcr-mrr.robot
+++ b/tests/vpp/perf/container_memif/10ge2p1x710-eth-l2xcbase-eth-1memif-1dcr-mrr.robot
@@ -31,7 +31,7 @@
| ...
| Test Teardown | Tear down performance mrr test
| ...
-| Test Template | Check RR for l2xcbase-eth-1memif-1dcr
+| Test Template | Local template
| ...
| Documentation | *Raw results L2XC test cases*
| ...
@@ -72,148 +72,78 @@
| ${container_cpus}= | ${5}
*** Keywords ***
-| Check RR for l2xcbase-eth-1memif-1dcr
+| Local template
| | [Documentation]
-| | ... | [Cfg] DUT runs L2XC switching config with ${wt} thread(s), ${wt}\
-| | ... | phy core(s), ${rxq} receive queue(s) per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for ${framesize} frames using single\
+| | ... | [Cfg] DUT runs L2XC switching config.
+| | ... | Each DUT uses ${phy_cores} physical core(s) for worker threads.
+| | ... | [Ver] Measure MaxReceivedRate for ${framesize}B frames using single\
| | ... | trial throughput test.
| | ...
-| | [Arguments] | ${framesize} | ${wt} | ${rxq}
+| | ... | *Arguments:*
+| | ... | - framesize - Framesize in Bytes in integer or string (IMIX_v4_1).
+| | ... | Type: integer, string
+| | ... | - phy_cores - Number of physical cores. Type: integer
+| | ... | - rxq - Number of RX queues, default value: ${None}. Type: integer
+| | ...
+| | [Arguments] | ${framesize} | ${phy_cores} | ${rxq}=${None}
| | ...
| | Set Test Variable | ${framesize}
| | ${get_framesize}= | Get Frame Size | ${framesize}
| | ${max_rate}= | Calculate pps | ${s_limit} | ${get_framesize}
-| | Given Add '${wt}' worker threads and '${rxq}' rxqueues in 3-node single-link circular topology
+| | Given Add worker threads and rxqueues to all DUTs | ${phy_cores} | ${rxq}
| | And Add single PCI device to all DUTs
| | And Run Keyword If | ${get_framesize} < ${1522}
| | ... | Add no multi seg to all DUTs
| | And Apply startup configuration on all VPP DUTs
| | And Initialize L2 xconnect for single memif in 3-node circular topology
-| | ... | ${rxq}
| | Then Traffic should pass with maximum rate
| | ... | ${max_rate}pps | ${framesize} | ${traffic_profile}
*** Test Cases ***
| tc01-64B-1t1c-eth-l2xcbase-eth-1memif-1dcr-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2XC switching config with 1 phy core,\
-| | ... | 1 receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 64B frames using single trial\
-| | ... | throughput test.
-| | ...
| | [Tags] | 64B | 1C
-| | framesize=${64} | wt=1 | rxq=1
+| | framesize=${64} | phy_cores=${1}
| tc02-1518B-1t1c-eth-l2xcbase-eth-1memif-1dcr-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2XC switching config with 1 phy core,\
-| | ... | 1 receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 1518B frames using single trial\
-| | ... | throughput test.
-| | ...
| | [Tags] | 1518B | 1C
-| | framesize=${1518} | wt=1 | rxq=1
+| | framesize=${1518} | phy_cores=${1}
| tc03-9000B-1t1c-eth-l2xcbase-eth-1memif-1dcr-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2XC switching config with 1 phy core,\
-| | ... | 1 receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 9000B frames using single trial\
-| | ... | throughput test.
-| | ...
| | [Tags] | 9000B | 1C
-| | framesize=${9000} | wt=1 | rxq=1
+| | framesize=${9000} | phy_cores=${1}
| tc04-IMIX-1t1c-eth-l2xcbase-eth-1memif-1dcr-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2XC switching config with 1 phy core,\
-| | ... | 1 receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for IMIX_v4_1 frames using single trial\
-| | ... | throughput test.
-| | ... | IMIX_v4_1 = (28x64B;16x570B;4x1518B)
-| | ...
| | [Tags] | IMIX | 1C
-| | framesize=IMIX_v4_1 | wt=1 | rxq=1
+| | framesize=IMIX_v4_1 | phy_cores=${1}
| tc05-64B-2t2c-eth-l2xcbase-eth-1memif-1dcr-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2XC switching config with 2 phy cores,\
-| | ... | 1 receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 64B frames using single trial\
-| | ... | throughput test.
-| | ...
| | [Tags] | 64B | 2C
-| | framesize=${64} | wt=2 | rxq=1
+| | framesize=${64} | phy_cores=${2}
| tc06-1518B-2t2c-eth-l2xcbase-eth-1memif-1dcr-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2XC switching config with 1 phy cores,\
-| | ... | 1 receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 1518B frames using single trial\
-| | ... | throughput test.
-| | ...
| | [Tags] | 1518B | 2C
-| | framesize=${1518} | wt=2 | rxq=1
+| | framesize=${1518} | phy_cores=${2}
| tc07-9000B-2t2c-eth-l2xcbase-eth-1memif-1dcr-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2XC switching config with 1 phy cores,\
-| | ... | 1 receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 9000B frames using single trial\
-| | ... | throughput test.
-| | ...
| | [Tags] | 9000B | 2C
-| | framesize=${9000} | wt=2 | rxq=1
+| | framesize=${9000} | phy_cores=${2}
| tc08-IMIX-2t2c-eth-l2xcbase-eth-1memif-1dcr-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2XC switching config with 2 phy cores,\
-| | ... | 1 receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for IMIX_v4_1 frames using single trial\
-| | ... | throughput test.
-| | ... | IMIX_v4_1 = (28x64B;16x570B;4x1518B)
-| | ...
| | [Tags] | IMIX | 2C
-| | framesize=IMIX_v4_1 | wt=2 | rxq=1
+| | framesize=IMIX_v4_1 | phy_cores=${2}
| tc09-64B-4t4c-eth-l2xcbase-eth-1memif-1dcr-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2XC switching config with 4 phy cores,\
-| | ... | 2 receive queues per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 64B frames using single trial\
-| | ... | throughput test.
-| | ...
| | [Tags] | 64B | 4C
-| | framesize=${64} | wt=4 | rxq=2
+| | framesize=${64} | phy_cores=${4}
| tc10-1518B-4t4c-eth-l2xcbase-eth-1memif-1dcr-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2XC switching config with 4 phy cores,\
-| | ... | 2 receive queues per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 1518B frames using single trial\
-| | ... | throughput test.
-| | ...
| | [Tags] | 1518B | 4C
-| | framesize=${1518} | wt=4 | rxq=2
+| | framesize=${1518} | phy_cores=${4}
| tc11-9000B-4t4c-eth-l2xcbase-eth-1memif-1dcr-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2XC switching config with 4 phy cores,\
-| | ... | 2 receive queues per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 9000B frames using single trial\
-| | ... | throughput test.
-| | ...
| | [Tags] | 9000B | 4C
-| | framesize=${9000} | wt=4 | rxq=2
+| | framesize=${9000} | phy_cores=${4}
| tc12-IMIX-4t4c-eth-l2xcbase-eth-1memif-1dcr-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2XC switching config with 4 phy cores,\
-| | ... | 2 receive queues per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for IMIX_v4_1 frames using single trial\
-| | ... | throughput test.
-| | ... | IMIX_v4_1 = (28x64B;16x570B;4x1518B)
-| | ...
| | [Tags] | IMIX | 4C
-| | framesize=IMIX_v4_1 | wt=4 | rxq=2
+| | framesize=IMIX_v4_1 | phy_cores=${4}
diff --git a/tests/vpp/perf/container_memif/10ge2p1x710-eth-l2xcbase-eth-1memif-1dcr-ndrpdrdisc.robot b/tests/vpp/perf/container_memif/10ge2p1x710-eth-l2xcbase-eth-1memif-1dcr-ndrpdrdisc.robot
index 386260c4cd..d62e6774ca 100644
--- a/tests/vpp/perf/container_memif/10ge2p1x710-eth-l2xcbase-eth-1memif-1dcr-ndrpdrdisc.robot
+++ b/tests/vpp/perf/container_memif/10ge2p1x710-eth-l2xcbase-eth-1memif-1dcr-ndrpdrdisc.robot
@@ -32,7 +32,7 @@
| Test Teardown | Tear down performance discovery test | ${min_rate}pps
| ... | ${framesize} | ${traffic_profile}
| ...
-| Test Template | Find NDRPDR for l2xcbase-eth-1memif-1dcr
+| Test Template | Local template
| ...
| Documentation | *Raw results L2XC test cases*
| ...
@@ -79,15 +79,25 @@
| ${container_cpus}= | ${5}
*** Keywords ***
-| Find NDRPDR for l2xcbase-eth-1memif-1dcr
+| Local template
| | [Documentation]
-| | ... | [Cfg] DUT runs L2XC switching config with ${wt} thread(s), ${wt}\
-| | ... | phy core(s), ${rxq} receive queue(s) per NIC port.
-| | ... | [Ver] Find ${search_type} for ${framesize} frames using binary search\
-| | ... | start at 10GE linerate, step 50kpps.
+| | ... | [Cfg] DUT runs L2XC switching config.
+| | ... | Each DUT uses ${phy_cores} physical core(s) for worker threads.
+| | ... | [Ver] Find ${search_type} for ${framesize}B frames using binary search\
+| | ... | start at linerate, step ${min_rate}pps.
+| | ...
+| | ... | *Arguments:*
+| | ... | - framesize - Framesize in Bytes in integer or string (IMIX_v4_1).
+| | ... | Type: integer, string
+| | ... | - phy_cores - Number of physical cores. Type: integer
+| | ... | - search_type - NDR or PDR. Type: string
+| | ... | - rxq - Number of RX queues, default value: ${None}. Type: integer
+| | ... | - min_rate - Min rate for binary search, default value: ${50000}.
+| | ... | Type: integer
+| | ...
+| | [Arguments] | ${framesize} | ${phy_cores} | ${search_type}
+| | ... | ${rxq}=${None} | ${min_rate}=${50000}
| | ...
-| | [Arguments] | ${framesize} | ${wt} | ${rxq} | ${search_type}
-| | ... | ${min_rate}=${50000}
| | Set Test Variable | ${framesize}
| | Set Test Variable | ${min_rate}
| | ${get_framesize}= | Get Frame Size | ${framesize}
@@ -95,13 +105,12 @@
| | ${binary_min}= | Set Variable | ${min_rate}
| | ${binary_max}= | Set Variable | ${max_rate}
| | ${threshold}= | Set Variable | ${min_rate}
-| | Given Add '${wt}' worker threads and '${rxq}' rxqueues in 3-node single-link circular topology
+| | Given Add worker threads and rxqueues to all DUTs | ${phy_cores} | ${rxq}
| | And Add single PCI device to all DUTs
| | And Run Keyword If | ${get_framesize} < ${1522}
| | ... | Add no multi seg to all DUTs
| | And Apply startup configuration on all VPP DUTs
| | And Initialize L2 xconnect for single memif in 3-node circular topology
-| | ... | ${rxq}
| | Then Run Keyword If | '${search_type}' == 'NDR'
| | ... | Find NDR using binary search and pps
| | ... | ${framesize} | ${binary_min} | ${binary_max} | ${traffic_profile}
@@ -114,247 +123,97 @@
*** Test Cases ***
| tc01-64B-1t1c-eth-l2xcbase-eth-1memif-1dcr-ndrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2XC switching config with 1 phy core,\
-| | ... | 1 receive queue per NIC port.
-| | ... | [Ver] Find NDR for 64 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 50kpps.
-| | ...
| | [Tags] | 64B | 1C | NDRDISC
-| | framesize=${64} | wt=1 | rxq=1 | search_type=NDR
+| | framesize=${64} | phy_cores=${1} | search_type=NDR
| tc02-64B-1t1c-eth-l2xcbase-eth-1memif-1dcr-pdrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2XC switching config with 1 phy core,\
-| | ... | 1 receive queue per NIC port.
-| | ... | [Ver] Find PDR for 64 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 50kpps, LT=0.5%.
-| | ...
| | [Tags] | 64B | 1C | PDRDISC
-| | framesize=${64} | wt=1 | rxq=1 | search_type=PDR
+| | framesize=${64} | phy_cores=${1} | search_type=PDR
| tc03-1518B-1t1c-eth-l2xcbase-eth-1memif-1dcr-ndrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2XC switching config with 1 phy core,\
-| | ... | 1 receive queue per NIC port.
-| | ... | [Ver] Find NDR for 1518 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 50kpps.
-| | ...
| | [Tags] | 1518B | 1C | NDRDISC
-| | framesize=${1518} | wt=1 | rxq=1 | search_type=NDR
+| | framesize=${1518} | phy_cores=${1} | search_type=NDR
| tc04-1518B-1t1c-eth-l2xcbase-eth-1memif-1dcr-pdrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2XC switching config with 1 phy core,\
-| | ... | 1 receive queue per NIC port.
-| | ... | [Ver] Find PDR for 1518 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 50kpps, LT=0.5%.
-| | ...
| | [Tags] | 1518B | 1C | PDRDISC
-| | framesize=${1518} | wt=1 | rxq=1 | search_type=PDR
+| | framesize=${1518} | phy_cores=${1} | search_type=PDR
| tc05-9000B-1t1c-eth-l2xcbase-eth-1memif-1dcr-ndrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2XC switching config with 1 phy core,\
-| | ... | 1 receive queue per NIC port.
-| | ... | [Ver] Find NDR for 9000 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 50kpps.
-| | ...
| | [Tags] | 9000B | 1C | NDRDISC
-| | framesize=${9000} | wt=1 | rxq=1 | search_type=NDR
+| | framesize=${9000} | phy_cores=${1} | search_type=NDR
| tc06-9000B-1t1c-eth-l2xcbase-eth-1memif-1dcr-pdrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2XC switching config with 1 phy core,\
-| | ... | 1 receive queue per NIC port.
-| | ... | [Ver] Find PDR for 9000 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 50kpps, LT=0.5%.
-| | ...
| | [Tags] | 9000B | 1C | PDRDISC
-| | framesize=${9000} | wt=1 | rxq=1 | search_type=PDR
+| | framesize=${9000} | phy_cores=${1} | search_type=PDR
| tc07-IMIX-1t1c-eth-l2xcbase-eth-1memif-1dcr-ndrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2XC switching config with 1 phy core,\
-| | ... | 1 receive queue per NIC port.
-| | ... | [Ver] Find NDR for IMIX_v4_1 frames using binary search start at 10GE\
-| | ... | linerate, step 50kpps.
-| | ... | IMIX_v4_1 = (28x64B;16x570B;4x1518B)
-| | ...
| | [Tags] | IMIX | 1C | NDRDISC
-| | framesize=IMIX_v4_1 | wt=1 | rxq=1 | search_type=NDR
+| | framesize=IMIX_v4_1 | phy_cores=${1} | search_type=NDR
| tc08-IMIX-1t1c-eth-l2xcbase-eth-1memif-1dcr-pdrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2XC switching config with 1 phy core,\
-| | ... | 1 receive queue per NIC port.
-| | ... | [Ver] Find PDR for IMIX_v4_1 frames using binary search start at 10GE\
-| | ... | linerate, step 50kpps, LT=0.5%.
-| | ... | IMIX_v4_1 = (28x64B;16x570B;4x1518B)
-| | ...
| | [Tags] | IMIX | 1C | PDRDISC
-| | framesize=IMIX_v4_1 | wt=1 | rxq=1 | search_type=PDR
+| | framesize=IMIX_v4_1 | phy_cores=${1} | search_type=PDR
| tc09-64B-2t2c-eth-l2xcbase-eth-1memif-1dcr-ndrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2XC switching config with 2 phy core,\
-| | ... | 1 receive queue per NIC port.
-| | ... | [Ver] Find NDR for 64 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 50kpps.
-| | ...
| | [Tags] | 64B | 2C | NDRDISC
-| | framesize=${64} | wt=2 | rxq=1 | search_type=NDR
+| | framesize=${64} | phy_cores=${2} | search_type=NDR
| tc10-64B-2t2c-eth-l2xcbase-eth-1memif-1dcr-pdrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2XC switching config with 2 phy core,\
-| | ... | 1 receive queue per NIC port.
-| | ... | [Ver] Find PDR for 64 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 50kpps, LT=0.5%.
-| | ...
| | [Tags] | 64B | 1C | PDRDISC
-| | framesize=${64} | wt=2 | rxq=1 | search_type=PDR
+| | framesize=${64} | phy_cores=${2} | search_type=PDR
| tc11-1518B-2t2c-eth-l2xcbase-eth-1memif-1dcr-ndrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2XC switching config with 2 phy core,\
-| | ... | 1 receive queue per NIC port.
-| | ... | [Ver] Find NDR for 1518 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 50kpps.
-| | ...
| | [Tags] | 1518B | 2C | NDRDISC
-| | framesize=${1518} | wt=2 | rxq=1 | search_type=NDR
+| | framesize=${1518} | phy_cores=${2} | search_type=NDR
| tc12-1518B-2t2c-eth-l2xcbase-eth-1memif-1dcr-pdrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2XC switching config with 2 phy core,\
-| | ... | 1 receive queue per NIC port.
-| | ... | [Ver] Find PDR for 1518 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 50kpps, LT=0.5%.
-| | ...
| | [Tags] | 1518B | 2C | PDRDISC
-| | framesize=${1518} | wt=2 | rxq=1 | search_type=PDR
+| | framesize=${1518} | phy_cores=${2} | search_type=PDR
| tc13-9000B-2t2c-eth-l2xcbase-eth-1memif-1dcr-ndrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2XC switching config with 2 phy core,\
-| | ... | 1 receive queue per NIC port.
-| | ... | [Ver] Find NDR for 9000 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 50kpps.
-| | ...
| | [Tags] | 9000B | 2C | NDRDISC
-| | framesize=${9000} | wt=2 | rxq=1 | search_type=NDR
+| | framesize=${9000} | phy_cores=${2} | search_type=NDR
| tc14-9000B-2t2c-eth-l2xcbase-eth-1memif-1dcr-pdrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2XC switching config with 2 phy core,\
-| | ... | 1 receive queue per NIC port.
-| | ... | [Ver] Find PDR for 9000 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 50kpps, LT=0.5%.
-| | ...
| | [Tags] | 9000B | 2C | PDRDISC
-| | framesize=${9000} | wt=2 | rxq=1 | search_type=PDR
+| | framesize=${9000} | phy_cores=${2} | search_type=PDR
| tc15-IMIX-2t2c-eth-l2xcbase-eth-1memif-1dcr-ndrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2XC switching config with 2 phy core,\
-| | ... | 1 receive queue per NIC port.
-| | ... | [Ver] Find NDR for IMIX_v4_1 frames using binary search start at 10GE\
-| | ... | linerate, step 50kpps.
-| | ... | IMIX_v4_1 = (28x64B;16x570B;4x1518B)
-| | ...
| | [Tags] | IMIX | 2C | NDRDISC
-| | framesize=IMIX_v4_1 | wt=2 | rxq=1 | search_type=NDR
+| | framesize=IMIX_v4_1 | phy_cores=${2} | search_type=NDR
| tc16-IMIX-2t2c-eth-l2xcbase-eth-1memif-1dcr-pdrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2XC switching config with 2 phy core,\
-| | ... | 1 receive queue per NIC port.
-| | ... | [Ver] Find PDR for IMIX_v4_1 frames using binary search start at 10GE\
-| | ... | linerate, step 50kpps, LT=0.5%.
-| | ... | IMIX_v4_1 = (28x64B;16x570B;4x1518B)
-| | ...
| | [Tags] | IMIX | 2C | PDRDISC
-| | framesize=IMIX_v4_1 | wt=2 | rxq=1 | search_type=PDR
+| | framesize=IMIX_v4_1 | phy_cores=${2} | search_type=PDR
| tc17-64B-4t4c-eth-l2xcbase-eth-1memif-1dcr-ndrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2XC switching config with 4 thread, 4 phy core,\
-| | ... | 2 receive queue per NIC port.
-| | ... | [Ver] Find NDR for 64 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 50kpps.
-| | ...
| | [Tags] | 64B | 4C | NDRDISC
-| | framesize=${64} | wt=4 | rxq=2 | search_type=NDR
+| | framesize=${64} | phy_cores=${4} | search_type=NDR
| tc18-64B-4t4c-eth-l2xcbase-eth-1memif-1dcr-pdrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2XC switching config with 4 thread, 4 phy core,\
-| | ... | 2 receive queue per NIC port.
-| | ... | [Ver] Find PDR for 64 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 50kpps, LT=0.5%.
-| | ...
| | [Tags] | 64B | 4C | PDRDISC
-| | framesize=${64} | wt=4 | rxq=2 | search_type=PDR
+| | framesize=${64} | phy_cores=${4} | search_type=PDR
| tc19-1518B-4t4c-eth-l2xcbase-eth-1memif-1dcr-ndrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2XC switching config with 4 thread, 4 phy core,\
-| | ... | 2 receive queue per NIC port.
-| | ... | [Ver] Find NDR for 1518 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 50kpps.
-| | ...
| | [Tags] | 1518B | 4C | NDRDISC
-| | framesize=${1518} | wt=4 | rxq=2 | search_type=NDR
+| | framesize=${1518} | phy_cores=${4} | search_type=NDR
| tc20-1518B-4t4c-eth-l2xcbase-eth-1memif-1dcr-pdrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2XC switching config with 4 thread, 4 phy core,\
-| | ... | 2 receive queue per NIC port.
-| | ... | [Ver] Find PDR for 1518 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 50kpps, LT=0.5%.
-| | ...
| | [Tags] | 1518B | 4C | PDRDISC
-| | framesize=${1518} | wt=4 | rxq=2 | search_type=PDR
+| | framesize=${1518} | phy_cores=${4} | search_type=PDR
| tc21-9000B-4t4c-eth-l2xcbase-eth-1memif-1dcr-ndrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2XC switching config with 4 thread, 4 phy core,\
-| | ... | 2 receive queue per NIC port.
-| | ... | [Ver] Find NDR for 9000 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 50kpps.
-| | ...
| | [Tags] | 9000B | 4C | NDRDISC
-| | framesize=${9000} | wt=4 | rxq=2 | search_type=NDR
+| | framesize=${9000} | phy_cores=${4} | search_type=NDR
| tc22-9000B-4t4c-eth-l2xcbase-eth-1memif-1dcr-pdrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2XC switching config with 4 thread, 4 phy core,\
-| | ... | 2 receive queue per NIC port.
-| | ... | [Ver] Find PDR for 9000 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 50kpps, LT=0.5%.
-| | ...
| | [Tags] | 9000B | 4C | PDRDISC
-| | framesize=${9000} | wt=4 | rxq=2 | search_type=PDR
+| | framesize=${9000} | phy_cores=${4} | search_type=PDR
| tc23-IMIX-4t4c-eth-l2xcbase-eth-1memif-1dcr-ndrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2XC switching config with 4 thread, 4 phy core,\
-| | ... | 2 receive queue per NIC port.
-| | ... | [Ver] Find NDR for IMIX_v4_1 frames using binary search start at 10GE\
-| | ... | linerate, step 50kpps.
-| | ... | IMIX_v4_1 = (28x64B;16x570B;4x1518B)
-| | ...
| | [Tags] | IMIX | 4C | NDRDISC
-| | framesize=IMIX_v4_1 | wt=4 | rxq=2 | search_type=NDR
+| | framesize=IMIX_v4_1 | phy_cores=${4} | search_type=NDR
| tc24-IMIX-4t4c-eth-l2xcbase-eth-1memif-1dcr-pdrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2XC switching config with 4 thread, 4 phy core,\
-| | ... | 2 receive queue per NIC port.
-| | ... | [Ver] Find PDR for IMIX_v4_1 frames using binary search start at 10GE\
-| | ... | linerate, step 50kpps, LT=0.5%.
-| | ... | IMIX_v4_1 = (28x64B;16x570B;4x1518B)
-| | ...
| | [Tags] | IMIX | 4C | PDRDISC
-| | framesize=IMIX_v4_1 | wt=4 | rxq=2 | search_type=PDR
+| | framesize=IMIX_v4_1 | phy_cores=${4} | search_type=PDR
diff --git a/tests/vpp/perf/container_memif/10ge2p1x710-eth-l2xcbase-eth-2memif-1dcr-mrr.robot b/tests/vpp/perf/container_memif/10ge2p1x710-eth-l2xcbase-eth-2memif-1dcr-mrr.robot
index 2f32cd277c..2a0a96be4c 100644
--- a/tests/vpp/perf/container_memif/10ge2p1x710-eth-l2xcbase-eth-2memif-1dcr-mrr.robot
+++ b/tests/vpp/perf/container_memif/10ge2p1x710-eth-l2xcbase-eth-2memif-1dcr-mrr.robot
@@ -31,7 +31,9 @@
| ...
| Test Teardown | Tear down performance mrr test
| ...
-| Documentation | *Raw results L2XC test cases*
+| Test Template | Local template
+| ...
+| Documentation | *Raw results L2XC test cases*
| ...
| ... | *[Top] Network Topologies:* TG-DUT1-DUT2-TG 3-node circular topology
| ... | with single links between nodes.
@@ -67,161 +69,79 @@
| ${container_cpus}= | ${5}
*** Keywords ***
-| Check RR for l2xcbase-eth-2memif-1dcr
+| Local template
| | [Documentation]
-| | ... | [Cfg] DUT runs L2XC switching config with ${wt} thread(s), ${wt}\
-| | ... | phy core(s), ${rxq} receive queue(s) per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for ${framesize} frames using single\
+| | ... | [Cfg] DUT runs L2XC switching config.
+| | ... | Each DUT uses ${phy_cores} physical core(s) for worker threads.
+| | ... | [Ver] Measure MaxReceivedRate for ${framesize}B frames using single\
| | ... | trial throughput test.
| | ...
-| | [Arguments] | ${framesize} | ${wt} | ${rxq}
+| | ... | *Arguments:*
+| | ... | - framesize - Framesize in Bytes in integer or string (IMIX_v4_1).
+| | ... | Type: integer, string
+| | ... | - phy_cores - Number of physical cores. Type: integer
+| | ... | - rxq - Number of RX queues, default value: ${None}. Type: integer
+| | ...
+| | [Arguments] | ${framesize} | ${phy_cores} | ${rxq}=${None}
| | ...
-| | # Test Variables required for test teardown
| | Set Test Variable | ${framesize}
| | ${get_framesize}= | Get Frame Size | ${framesize}
| | ${max_rate}= | Calculate pps | ${s_limit} | ${framesize}
| | ...
-| | Given Add '${wt}' worker threads and '${rxq}' rxqueues in 3-node single-link circular topology
+| | Given Add worker threads and rxqueues to all DUTs | ${phy_cores} | ${rxq}
| | And Add PCI devices to all DUTs
| | And Run Keyword If | ${get_framesize} < ${1522}
| | ... | Add no multi seg to all DUTs
| | And Apply startup configuration on all VPP DUTs
-| | And Initialize L2 xconnect for '1' memif pairs and '${rxq}' rxqueues in 3-node circular topology
+| | And Initialize L2 xconnect for '1' memif pairs in 3-node circular topology
| | Then Traffic should pass with maximum rate
| | ... | ${max_rate}pps | ${framesize} | ${traffic_profile}
*** Test Cases ***
| tc01-64B-1t1c-eth-l2xcbase-eth-2memif-1dcr-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2XC switching config with 1 phy core,\
-| | ... | 1 receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 64B frames using single trial\
-| | ... | throughput test.
-| | ...
| | [Tags] | 64B | 1C
-| | [Template] | Check RR for l2xcbase-eth-2memif-1dcr
-| | framesize=${64} | wt=1 | rxq=1
+| | framesize=${64} | phy_cores=${1}
| tc02-1518B-1t1c-eth-l2xcbase-eth-2memif-1dcr-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2XC switching config with 1 phy core,\
-| | ... | 1 receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 1518B frames using single trial\
-| | ... | throughput test.
-| | ...
| | [Tags] | 1518B | 1C
-| | [Template] | Check RR for l2xcbase-eth-2memif-1dcr
-| | framesize=${1518} | wt=1 | rxq=1
+| | framesize=${1518} | phy_cores=${1}
| tc03-9000B-1t1c-eth-l2xcbase-eth-2memif-1dcr-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2XC switching config with 1 phy core,\
-| | ... | 1 receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 9000B frames using single trial\
-| | ... | throughput test.
-| | ...
| | [Tags] | 9000B | 1C
-| | [Template] | Check RR for l2xcbase-eth-2memif-1dcr
-| | framesize=${9000} | wt=1 | rxq=1
+| | framesize=${9000} | phy_cores=${1}
| tc04-IMIX-1t1c-eth-l2xcbase-eth-2memif-1dcr-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2XC switching config with 1 phy core,\
-| | ... | 1 receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for IMIX_v4_1 frames using single trial\
-| | ... | throughput test.
-| | ... | IMIX_v4_1 = (28x64B;16x570B;4x1518B)
-| | ...
| | [Tags] | IMIX | 1C
-| | [Template] | Check RR for l2xcbase-eth-2memif-1dcr
-| | framesize=IMIX_v4_1 | wt=1 | rxq=1
+| | framesize=IMIX_v4_1 | phy_cores=${1}
| tc05-64B-2t2c-eth-l2xcbase-eth-2memif-1dcr-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2XC switching config with 2 phy cores,\
-| | ... | 1 receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 64B frames using single trial\
-| | ... | throughput test.
-| | ...
| | [Tags] | 64B | 2C
-| | [Template] | Check RR for l2xcbase-eth-2memif-1dcr
-| | framesize=${64} | wt=2 | rxq=1
+| | framesize=${64} | phy_cores=${2}
| tc06-1518B-2t2c-eth-l2xcbase-eth-2memif-1dcr-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2XC switching config with 1 phy cores,\
-| | ... | 1 receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 1518B frames using single trial\
-| | ... | throughput test.
-| | ...
| | [Tags] | 1518B | 2C
-| | [Template] | Check RR for l2xcbase-eth-2memif-1dcr
-| | framesize=${1518} | wt=2 | rxq=1
+| | framesize=${1518} | phy_cores=${2}
| tc07-9000B-2t2c-eth-l2xcbase-eth-2memif-1dcr-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2XC switching config with 1 phy cores,\
-| | ... | 1 receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 9000B frames using single trial\
-| | ... | throughput test.
-| | ...
| | [Tags] | 9000B | 2C
-| | [Template] | Check RR for l2xcbase-eth-2memif-1dcr
-| | framesize=${9000} | wt=2 | rxq=1
+| | framesize=${9000} | phy_cores=${2}
| tc08-IMIX-2t2c-eth-l2xcbase-eth-2memif-1dcr-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2XC switching config with 2 phy cores,\
-| | ... | 1 receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for IMIX_v4_1 frames using single trial\
-| | ... | throughput test.
-| | ... | IMIX_v4_1 = (28x64B;16x570B;4x1518B)
-| | ...
| | [Tags] | IMIX | 2C
-| | [Template] | Check RR for l2xcbase-eth-2memif-1dcr
-| | framesize=IMIX_v4_1 | wt=2 | rxq=1
+| | framesize=IMIX_v4_1 | phy_cores=${2}
| tc09-64B-4t4c-eth-l2xcbase-eth-2memif-1dcr-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2XC switching config with 4 phy cores,\
-| | ... | 2 receive queues per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 64B frames using single trial\
-| | ... | throughput test.
-| | ...
| | [Tags] | 64B | 4C
-| | [Template] | Check RR for l2xcbase-eth-2memif-1dcr
-| | framesize=${64} | wt=4 | rxq=2
+| | framesize=${64} | phy_cores=${4}
| tc10-1518B-4t4c-eth-l2xcbase-eth-2memif-1dcr-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2XC switching config with 4 phy cores,\
-| | ... | 2 receive queues per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 1518B frames using single trial\
-| | ... | throughput test.
-| | ...
| | [Tags] | 1518B | 4C
-| | [Template] | Check RR for l2xcbase-eth-2memif-1dcr
-| | framesize=${1518} | wt=4 | rxq=2
+| | framesize=${1518} | phy_cores=${4}
| tc11-9000B-4t4c-eth-l2xcbase-eth-2memif-1dcr-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2XC switching config with 4 phy cores,\
-| | ... | 2 receive queues per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 9000B frames using single trial\
-| | ... | throughput test.
-| | ...
| | [Tags] | 9000B | 4C
-| | [Template] | Check RR for l2xcbase-eth-2memif-1dcr
-| | framesize=${9000} | wt=4 | rxq=2
+| | framesize=${9000} | phy_cores=${4}
| tc12-IMIX-4t4c-eth-l2xcbase-eth-2memif-1dcr-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2XC switching config with 4 phy cores,\
-| | ... | 2 receive queues per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for IMIX_v4_1 frames using single trial\
-| | ... | throughput test.
-| | ... | IMIX_v4_1 = (28x64B;16x570B;4x1518B)
-| | ...
| | [Tags] | IMIX | 4C
-| | [Template] | Check RR for l2xcbase-eth-2memif-1dcr
-| | framesize=IMIX_v4_1 | wt=4 | rxq=2
+| | framesize=IMIX_v4_1 | phy_cores=${4}
diff --git a/tests/vpp/perf/container_memif/10ge2p1x710-eth-l2xcbase-eth-2memif-1lxc-mrr.robot b/tests/vpp/perf/container_memif/10ge2p1x710-eth-l2xcbase-eth-2memif-1lxc-mrr.robot
index 6df3b65566..34340db0e8 100644
--- a/tests/vpp/perf/container_memif/10ge2p1x710-eth-l2xcbase-eth-2memif-1lxc-mrr.robot
+++ b/tests/vpp/perf/container_memif/10ge2p1x710-eth-l2xcbase-eth-2memif-1lxc-mrr.robot
@@ -31,7 +31,9 @@
| ...
| Test Teardown | Tear down performance mrr test
| ...
-| Documentation | *Raw results L2XC test cases*
+| Test Template | Local template
+| ...
+| Documentation | *Raw results L2XC test cases*
| ...
| ... | *[Top] Network Topologies:* TG-DUT1-DUT2-TG 3-node circular topology
| ... | with single links between nodes.
@@ -66,161 +68,79 @@
| ${container_cpus}= | ${5}
*** Keywords ***
-| Check RR for l2xcbase-eth-2memif-1lxc
+| Local template
| | [Documentation]
-| | ... | [Cfg] DUT runs L2XC switching config with ${wt} thread(s), ${wt}\
-| | ... | phy core(s), ${rxq} receive queue(s) per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for ${framesize} frames using single\
+| | ... | [Cfg] DUT runs L2XC switching config.
+| | ... | Each DUT uses ${phy_cores} physical core(s) for worker threads.
+| | ... | [Ver] Measure MaxReceivedRate for ${framesize}B frames using single\
| | ... | trial throughput test.
| | ...
-| | [Arguments] | ${framesize} | ${wt} | ${rxq}
+| | ... | *Arguments:*
+| | ... | - framesize - Framesize in Bytes in integer or string (IMIX_v4_1).
+| | ... | Type: integer, string
+| | ... | - phy_cores - Number of physical cores. Type: integer
+| | ... | - rxq - Number of RX queues, default value: ${None}. Type: integer
+| | ...
+| | [Arguments] | ${framesize} | ${phy_cores} | ${rxq}=${None}
| | ...
-| | # Test Variables required for test teardown
| | Set Test Variable | ${framesize}
| | ${get_framesize}= | Get Frame Size | ${framesize}
| | ${max_rate}= | Calculate pps | ${s_limit} | ${framesize}
| | ...
-| | Given Add '${wt}' worker threads and '${rxq}' rxqueues in 3-node single-link circular topology
+| | Given Add worker threads and rxqueues to all DUTs | ${phy_cores} | ${rxq}
| | And Add PCI devices to all DUTs
| | And Run Keyword If | ${get_framesize} < ${1522}
| | ... | Add no multi seg to all DUTs
| | And Apply startup configuration on all VPP DUTs
-| | And Initialize L2 xconnect for '1' memif pairs and '${rxq}' rxqueues in 3-node circular topology
+| | And Initialize L2 xconnect for '1' memif pairs in 3-node circular topology
| | Then Traffic should pass with maximum rate
| | ... | ${max_rate}pps | ${framesize} | ${traffic_profile}
*** Test Cases ***
| tc01-64B-1t1c-eth-l2xcbase-eth-2memif-1lxc-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2XC switching config with 1 phy core,\
-| | ... | 1 receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 64B frames using single trial\
-| | ... | throughput test.
-| | ...
| | [Tags] | 64B | 1C
-| | [Template] | Check RR for l2xcbase-eth-2memif-1lxc
-| | framesize=${64} | wt=1 | rxq=1
+| | framesize=${64} | phy_cores=${1}
| tc02-1518B-1t1c-eth-l2xcbase-eth-2memif-1lxc-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2XC switching config with 1 phy core,\
-| | ... | 1 receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 1518B frames using single trial\
-| | ... | throughput test.
-| | ...
| | [Tags] | 1518B | 1C
-| | [Template] | Check RR for l2xcbase-eth-2memif-1lxc
-| | framesize=${1518} | wt=1 | rxq=1
+| | framesize=${1518} | phy_cores=${1}
| tc03-9000B-1t1c-eth-l2xcbase-eth-2memif-1lxc-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2XC switching config with 1 phy core,\
-| | ... | 1 receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 9000B frames using single trial\
-| | ... | throughput test.
-| | ...
| | [Tags] | 9000B | 1C
-| | [Template] | Check RR for l2xcbase-eth-2memif-1lxc
-| | framesize=${9000} | wt=1 | rxq=1
+| | framesize=${9000} | phy_cores=${1}
| tc04-IMIX-1t1c-eth-l2xcbase-eth-2memif-1lxc-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2XC switching config with 1 phy core,\
-| | ... | 1 receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for IMIX_v4_1 frames using single trial\
-| | ... | throughput test.
-| | ... | IMIX_v4_1 = (28x64B;16x570B;4x1518B)
-| | ...
| | [Tags] | IMIX | 1C
-| | [Template] | Check RR for l2xcbase-eth-2memif-1lxc
-| | framesize=IMIX_v4_1 | wt=1 | rxq=1
+| | framesize=IMIX_v4_1 | phy_cores=${1}
| tc05-64B-2t2c-eth-l2xcbase-eth-2memif-1lxc-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2XC switching config with 2 phy cores,\
-| | ... | 1 receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 64B frames using single trial\
-| | ... | throughput test.
-| | ...
| | [Tags] | 64B | 2C
-| | [Template] | Check RR for l2xcbase-eth-2memif-1lxc
-| | framesize=${64} | wt=2 | rxq=1
+| | framesize=${64} | phy_cores=${2}
| tc06-1518B-2t2c-eth-l2xcbase-eth-2memif-1lxc-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2XC switching config with 2 phy cores,\
-| | ... | 1 receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 1518B frames using single trial\
-| | ... | throughput test.
-| | ...
| | [Tags] | 1518B | 2C
-| | [Template] | Check RR for l2xcbase-eth-2memif-1lxc
-| | framesize=${1518} | wt=2 | rxq=1
+| | framesize=${1518} | phy_cores=${2}
| tc07-9000B-2t2c-eth-l2xcbase-eth-2memif-1lxc-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2XC switching config with 2 phy cores,\
-| | ... | 1 receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 9000B frames using single trial\
-| | ... | throughput test.
-| | ...
| | [Tags] | 9000B | 2C
-| | [Template] | Check RR for l2xcbase-eth-2memif-1lxc
-| | framesize=${9000} | wt=2 | rxq=1
+| | framesize=${9000} | phy_cores=${2}
| tc08-IMIX-2t2c-eth-l2xcbase-eth-2memif-1lxc-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2XC switching config with 2 phy cores,\
-| | ... | 1 receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for IMIX_v4_1 frames using single trial\
-| | ... | throughput test.
-| | ... | IMIX_v4_1 = (28x64B;16x570B;4x1518B)
-| | ...
| | [Tags] | IMIX | 2C
-| | [Template] | Check RR for l2xcbase-eth-2memif-1lxc
-| | framesize=IMIX_v4_1 | wt=2 | rxq=1
+| | framesize=IMIX_v4_1 | phy_cores=${2}
| tc09-64B-4t4c-eth-l2xcbase-eth-2memif-1lxc-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2XC switching config with 4 phy cores,\
-| | ... | 2 receive queues per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 64B frames using single trial\
-| | ... | throughput test.
-| | ...
| | [Tags] | 64B | 4C
-| | [Template] | Check RR for l2xcbase-eth-2memif-1lxc
-| | framesize=${64} | wt=4 | rxq=2
+| | framesize=${64} | phy_cores=${4}
| tc10-1518B-4t4c-eth-l2xcbase-eth-2memif-1lxc-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2XC switching config with 4 phy cores,\
-| | ... | 2 receive queues per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 1518B frames using single trial\
-| | ... | throughput test.
-| | ...
| | [Tags] | 1518B | 4C
-| | [Template] | Check RR for l2xcbase-eth-2memif-1lxc
-| | framesize=${1518} | wt=4 | rxq=2
+| | framesize=${1518} | phy_cores=${4}
| tc11-9000B-4t4c-eth-l2xcbase-eth-2memif-1lxc-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2XC switching config with 4 phy cores,\
-| | ... | 2 receive queues per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 9000B frames using single trial\
-| | ... | throughput test.
-| | ...
| | [Tags] | 9000B | 4C
-| | [Template] | Check RR for l2xcbase-eth-2memif-1lxc
-| | framesize=${9000} | wt=4 | rxq=2
+| | framesize=${9000} | phy_cores=${4}
| tc12-IMIX-4t4c-eth-l2xcbase-eth-2memif-1lxc-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2XC switching config with 4 phy cores,\
-| | ... | 2 receive queues per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for IMIX_v4_1 frames using single trial\
-| | ... | throughput test.
-| | ... | IMIX_v4_1 = (28x64B;16x570B;4x1518B)
-| | ...
| | [Tags] | IMIX | 4C
-| | [Template] | Check RR for l2xcbase-eth-2memif-1lxc
-| | framesize=IMIX_v4_1 | wt=4 | rxq=2
+| | framesize=IMIX_v4_1 | phy_cores=${4}
diff --git a/tests/vpp/perf/container_memif/40ge2p1xl710-eth-l2bdbasemaclrn-eth-2memif-1lxc-mrr.robot b/tests/vpp/perf/container_memif/40ge2p1xl710-eth-l2bdbasemaclrn-eth-2memif-1lxc-mrr.robot
index 256dedcd7e..c4a4b2edd0 100644
--- a/tests/vpp/perf/container_memif/40ge2p1xl710-eth-l2bdbasemaclrn-eth-2memif-1lxc-mrr.robot
+++ b/tests/vpp/perf/container_memif/40ge2p1xl710-eth-l2bdbasemaclrn-eth-2memif-1lxc-mrr.robot
@@ -31,7 +31,9 @@
| ...
| Test Teardown | Tear down performance mrr test
| ...
-| Documentation | *Raw results L2BD test cases*
+| Test Template | Local template
+| ...
+| Documentation | *Raw results L2BD test cases*
| ...
| ... | *[Top] Network Topologies:* TG-DUT1-DUT2-TG 3-node circular topology
| ... | with single links between nodes.
@@ -69,163 +71,81 @@
| ${container_cpus}= | ${5}
*** Keywords ***
-| Check RR for l2bdbasemaclrn-eth-2memif-1lxc
+| Local template
| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with ${wt} thread(s), ${wt}\
-| | ... | phy core(s), ${rxq} receive queue(s) per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for ${framesize} frames using single\
+| | ... | [Cfg] DUT runs L2BD switching config.
+| | ... | Each DUT uses ${phy_cores} physical core(s) for worker threads.
+| | ... | [Ver] Measure MaxReceivedRate for ${framesize}B frames using single\
| | ... | trial throughput test.
| | ...
-| | [Arguments] | ${framesize} | ${wt} | ${rxq}
+| | ... | *Arguments:*
+| | ... | - framesize - Framesize in Bytes in integer or string (IMIX_v4_1).
+| | ... | Type: integer, string
+| | ... | - phy_cores - Number of physical cores. Type: integer
+| | ... | - rxq - Number of RX queues, default value: ${None}. Type: integer
+| | ...
+| | [Arguments] | ${framesize} | ${phy_cores} | ${rxq}=${None}
| | ...
-| | # Test Variables required for test teardown
| | Set Test Variable | ${framesize}
| | ${get_framesize}= | Get Frame Size | ${framesize}
| | ${max_rate}= | Calculate pps | ${s_24.5G} | ${get_framesize}
| | ${max_rate}= | Set Variable If
| | ... | ${max_rate} > ${s_18.75Mpps} | ${s_18.75Mpps} | ${max_rate}
| | ...
-| | Given Add '${wt}' worker threads and '${rxq}' rxqueues in 3-node single-link circular topology
+| | Given Add worker threads and rxqueues to all DUTs | ${phy_cores} | ${rxq}
| | And Add PCI devices to all DUTs
| | And Run Keyword If | ${get_framesize} < ${1522}
| | ... | Add no multi seg to all DUTs
| | And Apply startup configuration on all VPP DUTs
-| | And Initialize L2 Bridge Domain for '1' memif pairs and '${rxq}' rxqueues in 3-node circular topology
+| | And Initialize L2 Bridge Domain for '1' memif pairs in 3-node circular topology
| | Then Traffic should pass with maximum rate
| | ... | ${max_rate}pps | ${framesize} | ${traffic_profile}
*** Test Cases ***
| tc01-64B-1t1c-eth-l2bdbasemaclrn-eth-2memif-1lxc-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with 1 phy core,\
-| | ... | 1 receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 64B frames using single trial\
-| | ... | throughput test.
-| | ...
| | [Tags] | 64B | 1C
-| | [Template] | Check RR for l2bdbasemaclrn-eth-2memif-1lxc
-| | framesize=${64} | wt=1 | rxq=1
+| | framesize=${64} | phy_cores=${1}
| tc02-1518B-1t1c-eth-l2bdbasemaclrn-eth-2memif-1lxc-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with 1 phy core,\
-| | ... | 1 receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 1518B frames using single trial\
-| | ... | throughput test.
-| | ...
| | [Tags] | 1518B | 1C
-| | [Template] | Check RR for l2bdbasemaclrn-eth-2memif-1lxc
-| | framesize=${1518} | wt=1 | rxq=1
+| | framesize=${1518} | phy_cores=${1}
| tc03-9000B-1t1c-eth-l2bdbasemaclrn-eth-2memif-1lxc-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with 1 phy core,\
-| | ... | 1 receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 9000B frames using single trial\
-| | ... | throughput test.
-| | ...
| | [Tags] | 9000B | 1C
-| | [Template] | Check RR for l2bdbasemaclrn-eth-2memif-1lxc
-| | framesize=${9000} | wt=1 | rxq=1
+| | framesize=${9000} | phy_cores=${1}
| tc04-IMIX-1t1c-eth-l2bdbasemaclrn-eth-2memif-1lxc-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with 1 phy core,\
-| | ... | 1 receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for IMIX_v4_1 frames using single trial\
-| | ... | throughput test.
-| | ... | IMIX_v4_1 = (28x64B;16x570B;4x1518B)
-| | ...
| | [Tags] | IMIX | 1C
-| | [Template] | Check RR for l2bdbasemaclrn-eth-2memif-1lxc
-| | framesize=IMIX_v4_1 | wt=1 | rxq=1
+| | framesize=IMIX_v4_1 | phy_cores=${1}
| tc05-64B-2t2c-eth-l2bdbasemaclrn-eth-2memif-1lxc-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with 2 phy cores,\
-| | ... | 1 receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 64B frames using single trial\
-| | ... | throughput test.
-| | ...
| | [Tags] | 64B | 2C
-| | [Template] | Check RR for l2bdbasemaclrn-eth-2memif-1lxc
-| | framesize=${64} | wt=2 | rxq=1
+| | framesize=${64} | phy_cores=${2}
| tc06-1518B-2t2c-eth-l2bdbasemaclrn-eth-2memif-1lxc-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with 2 phy cores,\
-| | ... | 1 receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 1518B frames using single trial\
-| | ... | throughput test.
-| | ...
| | [Tags] | 1518B | 2C
-| | [Template] | Check RR for l2bdbasemaclrn-eth-2memif-1lxc
-| | framesize=${1518} | wt=2 | rxq=1
+| | framesize=${1518} | phy_cores=${2}
| tc07-9000B-2t2c-eth-l2bdbasemaclrn-eth-2memif-1lxc-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with 2 phy cores,\
-| | ... | 1 receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 9000B frames using single trial\
-| | ... | throughput test.
-| | ...
| | [Tags] | 9000B | 2C
-| | [Template] | Check RR for l2bdbasemaclrn-eth-2memif-1lxc
-| | framesize=${9000} | wt=2 | rxq=1
+| | framesize=${9000} | phy_cores=${2}
| tc08-IMIX-2t2c-eth-l2bdbasemaclrn-eth-2memif-1lxc-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with 2 phy cores,\
-| | ... | 1 receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for IMIX_v4_1 frames using single trial\
-| | ... | throughput test.
-| | ... | IMIX_v4_1 = (28x64B;16x570B;4x1518B)
-| | ...
| | [Tags] | IMIX | 2C
-| | [Template] | Check RR for l2bdbasemaclrn-eth-2memif-1lxc
-| | framesize=IMIX_v4_1 | wt=2 | rxq=1
+| | framesize=IMIX_v4_1 | phy_cores=${2}
| tc09-64B-4t4c-eth-l2bdbasemaclrn-eth-2memif-1lxc-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with 4 phy cores,\
-| | ... | 2 receive queues per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 64B frames using single trial\
-| | ... | throughput test.
-| | ...
| | [Tags] | 64B | 4C
-| | [Template] | Check RR for l2bdbasemaclrn-eth-2memif-1lxc
-| | framesize=${64} | wt=4 | rxq=2
+| | framesize=${64} | phy_cores=${4}
| tc10-1518B-4t4c-eth-l2bdbasemaclrn-eth-2memif-1lxc-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with 4 phy cores,\
-| | ... | 2 receive queues per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 1518B frames using single trial\
-| | ... | throughput test.
-| | ...
| | [Tags] | 1518B | 4C
-| | [Template] | Check RR for l2bdbasemaclrn-eth-2memif-1lxc
-| | framesize=${1518} | wt=4 | rxq=2
+| | framesize=${1518} | phy_cores=${4}
| tc11-9000B-4t4c-eth-l2bdbasemaclrn-eth-2memif-1lxc-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with 4 phy cores,\
-| | ... | 2 receive queues per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 9000B frames using single trial\
-| | ... | throughput test.
-| | ...
| | [Tags] | 9000B | 4C
-| | [Template] | Check RR for l2bdbasemaclrn-eth-2memif-1lxc
-| | framesize=${9000} | wt=4 | rxq=2
+| | framesize=${9000} | phy_cores=${4}
| tc12-IMIX-4t4c-eth-l2bdbasemaclrn-eth-2memif-1lxc-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with 4 phy cores,\
-| | ... | 2 receive queues per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for IMIX_v4_1 frames using single trial\
-| | ... | throughput test.
-| | ... | IMIX_v4_1 = (28x64B;16x570B;4x1518B)
-| | ...
| | [Tags] | IMIX | 4C
-| | [Template] | Check RR for l2bdbasemaclrn-eth-2memif-1lxc
-| | framesize=IMIX_v4_1 | wt=4 | rxq=2
+| | framesize=IMIX_v4_1 | phy_cores=${4}
diff --git a/tests/vpp/perf/container_memif/40ge2p1xl710-eth-l2xcbase-eth-2memif-1lxc-mrr.robot b/tests/vpp/perf/container_memif/40ge2p1xl710-eth-l2xcbase-eth-2memif-1lxc-mrr.robot
index 42a5639097..df9568636b 100644
--- a/tests/vpp/perf/container_memif/40ge2p1xl710-eth-l2xcbase-eth-2memif-1lxc-mrr.robot
+++ b/tests/vpp/perf/container_memif/40ge2p1xl710-eth-l2xcbase-eth-2memif-1lxc-mrr.robot
@@ -31,6 +31,8 @@
| ...
| Test Teardown | Tear down performance mrr test
| ...
+| Test Template | Local template
+| ...
| Documentation | *Raw results L2XC test cases*
| ...
| ... | *[Top] Network Topologies:* TG-DUT1-DUT2-TG 3-node circular topology
@@ -68,163 +70,81 @@
| ${container_cpus}= | ${5}
*** Keywords ***
-| Check RR for l2xcbase-eth-2memif-1lxc
+| Local template
| | [Documentation]
-| | ... | [Cfg] DUT runs L2XC switching config with ${wt} thread(s), ${wt}\
-| | ... | phy core(s), ${rxq} receive queue(s) per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for ${framesize} frames using single\
+| | ... | [Cfg] DUT runs L2XC switching config.
+| | ... | Each DUT uses ${phy_cores} physical core(s) for worker threads.
+| | ... | [Ver] Measure MaxReceivedRate for ${framesize}B frames using single\
| | ... | trial throughput test.
| | ...
-| | [Arguments] | ${framesize} | ${wt} | ${rxq}
+| | ... | *Arguments:*
+| | ... | - framesize - Framesize in Bytes in integer or string (IMIX_v4_1).
+| | ... | Type: integer, string
+| | ... | - phy_cores - Number of physical cores. Type: integer
+| | ... | - rxq - Number of RX queues, default value: ${None}. Type: integer
+| | ...
+| | [Arguments] | ${framesize} | ${phy_cores} | ${rxq}=${None}
| | ...
-| | # Test Variables required for test teardown
| | Set Test Variable | ${framesize}
| | ${get_framesize}= | Get Frame Size | ${framesize}
| | ${max_rate}= | Calculate pps | ${s_24.5G} | ${get_framesize}
| | ${max_rate}= | Set Variable If
| | ... | ${max_rate} > ${s_18.75Mpps} | ${s_18.75Mpps} | ${max_rate}
| | ...
-| | Given Add '${wt}' worker threads and '${rxq}' rxqueues in 3-node single-link circular topology
+| | Given Add worker threads and rxqueues to all DUTs | ${phy_cores} | ${rxq}
| | And Add PCI devices to all DUTs
| | And Run Keyword If | ${get_framesize} < ${1522}
| | ... | Add no multi seg to all DUTs
| | And Apply startup configuration on all VPP DUTs
-| | And Initialize L2 xconnect for '1' memif pairs and '${rxq}' rxqueues in 3-node circular topology
+| | And Initialize L2 xconnect for '1' memif pairs in 3-node circular topology
| | Then Traffic should pass with maximum rate
| | ... | ${max_rate}pps | ${framesize} | ${traffic_profile}
*** Test Cases ***
| tc01-64B-1t1c-eth-l2xcbase-eth-2memif-1lxc-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2XC switching config with 1 phy core,\
-| | ... | 1 receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 64B frames using single trial\
-| | ... | throughput test.
-| | ...
| | [Tags] | 64B | 1C
-| | [Template] | Check RR for l2xcbase-eth-2memif-1lxc
-| | framesize=${64} | wt=1 | rxq=1
+| | framesize=${64} | phy_cores=${1}
| tc02-1518B-1t1c-eth-l2xcbase-eth-2memif-1lxc-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2XC switching config with 1 phy core,\
-| | ... | 1 receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 1518B frames using single trial\
-| | ... | throughput test.
-| | ...
| | [Tags] | 1518B | 1C
-| | [Template] | Check RR for l2xcbase-eth-2memif-1lxc
-| | framesize=${1518} | wt=1 | rxq=1
+| | framesize=${1518} | phy_cores=${1}
| tc03-9000B-1t1c-eth-l2xcbase-eth-2memif-1lxc-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2XC switching config with 1 phy core,\
-| | ... | 1 receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 9000B frames using single trial\
-| | ... | throughput test.
-| | ...
| | [Tags] | 9000B | 1C
-| | [Template] | Check RR for l2xcbase-eth-2memif-1lxc
-| | framesize=${9000} | wt=1 | rxq=1
+| | framesize=${9000} | phy_cores=${1}
| tc04-IMIX-1t1c-eth-l2xcbase-eth-2memif-1lxc-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2XC switching config with 1 phy core,\
-| | ... | 1 receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for IMIX_v4_1 frames using single trial\
-| | ... | throughput test.
-| | ... | IMIX_v4_1 = (28x64B;16x570B;4x1518B)
-| | ...
| | [Tags] | IMIX | 1C
-| | [Template] | Check RR for l2xcbase-eth-2memif-1lxc
-| | framesize=IMIX_v4_1 | wt=1 | rxq=1
+| | framesize=IMIX_v4_1 | phy_cores=${1}
| tc05-64B-2t2c-eth-l2xcbase-eth-2memif-1lxc-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2XC switching config with 2 phy cores,\
-| | ... | 1 receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 64B frames using single trial\
-| | ... | throughput test.
-| | ...
| | [Tags] | 64B | 2C
-| | [Template] | Check RR for l2xcbase-eth-2memif-1lxc
-| | framesize=${64} | wt=2 | rxq=1
+| | framesize=${64} | phy_cores=${2}
| tc06-1518B-2t2c-eth-l2xcbase-eth-2memif-1lxc-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2XC switching config with 2 phy cores,\
-| | ... | 1 receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 1518B frames using single trial\
-| | ... | throughput test.
-| | ...
| | [Tags] | 1518B | 2C
-| | [Template] | Check RR for l2xcbase-eth-2memif-1lxc
-| | framesize=${1518} | wt=2 | rxq=1
+| | framesize=${1518} | phy_cores=${2}
| tc07-9000B-2t2c-eth-l2xcbase-eth-2memif-1lxc-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2XC switching config with 2 phy cores,\
-| | ... | 1 receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 9000B frames using single trial\
-| | ... | throughput test.
-| | ...
| | [Tags] | 9000B | 2C
-| | [Template] | Check RR for l2xcbase-eth-2memif-1lxc
-| | framesize=${9000} | wt=2 | rxq=1
+| | framesize=${9000} | phy_cores=${2}
| tc08-IMIX-2t2c-eth-l2xcbase-eth-2memif-1lxc-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2XC switching config with 2 phy cores,\
-| | ... | 1 receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for IMIX_v4_1 frames using single trial\
-| | ... | throughput test.
-| | ... | IMIX_v4_1 = (28x64B;16x570B;4x1518B)
-| | ...
| | [Tags] | IMIX | 2C
-| | [Template] | Check RR for l2xcbase-eth-2memif-1lxc
-| | framesize=IMIX_v4_1 | wt=2 | rxq=1
+| | framesize=IMIX_v4_1 | phy_cores=${2}
| tc09-64B-4t4c-eth-l2xcbase-eth-2memif-1lxc-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2XC switching config with 4 phy cores,\
-| | ... | 2 receive queues per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 64B frames using single trial\
-| | ... | throughput test.
-| | ...
| | [Tags] | 64B | 4C
-| | [Template] | Check RR for l2xcbase-eth-2memif-1lxc
-| | framesize=${64} | wt=4 | rxq=2
+| | framesize=${64} | phy_cores=${4}
| tc10-1518B-4t4c-eth-l2xcbase-eth-2memif-1lxc-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2XC switching config with 4 phy cores,\
-| | ... | 2 receive queues per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 1518B frames using single trial\
-| | ... | throughput test.
-| | ...
| | [Tags] | 1518B | 4C
-| | [Template] | Check RR for l2xcbase-eth-2memif-1lxc
-| | framesize=${1518} | wt=4 | rxq=2
+| | framesize=${1518} | phy_cores=${4}
| tc11-9000B-4t4c-eth-l2xcbase-eth-2memif-1lxc-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2XC switching config with 4 phy cores,\
-| | ... | 2 receive queues per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 9000B frames using single trial\
-| | ... | throughput test.
-| | ...
| | [Tags] | 9000B | 4C
-| | [Template] | Check RR for l2xcbase-eth-2memif-1lxc
-| | framesize=${9000} | wt=4 | rxq=2
+| | framesize=${9000} | phy_cores=${4}
| tc12-IMIX-4t4c-eth-l2xcbase-eth-2memif-1lxc-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2XC switching config with 4 phy cores,\
-| | ... | 2 receive queues per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for IMIX_v4_1 frames using single trial\
-| | ... | throughput test.
-| | ... | IMIX_v4_1 = (28x64B;16x570B;4x1518B)
-| | ...
| | [Tags] | IMIX | 4C
-| | [Template] | Check RR for l2xcbase-eth-2memif-1lxc
-| | framesize=IMIX_v4_1 | wt=4 | rxq=2
+| | framesize=IMIX_v4_1 | phy_cores=${4}
diff --git a/tests/vpp/perf/crypto/40ge2p1xl710-ethip4ipsecbasetnl-ip4base-int-aes-gcm-mrr.robot b/tests/vpp/perf/crypto/40ge2p1xl710-ethip4ipsecbasetnl-ip4base-int-aes-gcm-mrr.robot
index 3386ff400d..54bd64b423 100644
--- a/tests/vpp/perf/crypto/40ge2p1xl710-ethip4ipsecbasetnl-ip4base-int-aes-gcm-mrr.robot
+++ b/tests/vpp/perf/crypto/40ge2p1xl710-ethip4ipsecbasetnl-ip4base-int-aes-gcm-mrr.robot
@@ -23,8 +23,11 @@
| Suite Teardown | Tear down 3-node performance topology
| ...
| Test Setup | Set up performance test
+| ...
| Test Teardown | Tear down performance mrr test
| ...
+| Test Template | Local template
+| ...
| Documentation | *Raw results IPv4 IPsec tunnel mode performance test suite.*
| ...
| ... | *[Top] Network Topologies:* TG-DUT1-DUT2-TG 3-node circular topology
@@ -66,16 +69,21 @@
| ${traffic_profile}= | trex-sl-3n-ethip4-ip4dst${n_tunnels}
*** Keywords ***
-| Check RR for IPv4 routing with IPSec HW cryptodev
+| Local template
| | [Documentation]
-| | ... | [Cfg] DUT runs IPSec tunneling AES GCM config with ${wt} thread(s),\
-| | ... | ${wt} phy core(s), ${rxq} receive queue(s) per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for ${framesize} frames using single\
+| | ... | [Cfg] DUT runs IPSec tunneling AES GCM config.
+| | ... | Each DUT uses ${phy_cores} physical core(s) for worker threads.
+| | ... | [Ver] Measure MaxReceivedRate for ${framesize}B frames using single\
| | ... | trial throughput test.
| | ...
-| | [Arguments] | ${framesize} | ${wt} | ${rxq}
+| | ... | *Arguments:*
+| | ... | - framesize - Framesize in Bytes in integer or string (IMIX_v4_1).
+| | ... | Type: integer, string
+| | ... | - phy_cores - Number of physical cores. Type: integer
+| | ... | - rxq - Number of RX queues, default value: ${None}. Type: integer
+| | ...
+| | [Arguments] | ${framesize} | ${phy_cores} | ${rxq}=${None}
| | ...
-| | # Test Variables required for test teardown
| | Set Test Variable | ${framesize}
| | ${get_framesize}= | Get Frame Size | ${framesize}
| | ${max_rate}= | Calculate pps | ${s_24.5G}
@@ -85,11 +93,11 @@
| | ${encr_alg}= | Crypto Alg AES GCM 128
| | ${auth_alg}= | Integ Alg AES GCM 128
| | ...
-| | Given Add '${wt}' worker threads and '${rxq}' rxqueues in 3-node single-link circular topology
+| | Given Add worker threads and rxqueues to all DUTs | ${phy_cores} | ${rxq}
| | And Add PCI devices to all DUTs
-| | And Run Keyword If | ${get_framesize} < ${1522}
+| | And Run Keyword If | ${get_framesize} + ${ipsec_overhead} < ${1522}
| | ... | Add no multi seg to all DUTs
-| | And Add cryptodev to all DUTs | ${${wt}}
+| | And Add cryptodev to all DUTs | ${${phy_cores}}
| | And Add DPDK dev default RXD to all DUTs | 2048
| | And Add DPDK dev default TXD to all DUTs | 2048
| | And Apply startup configuration on all VPP DUTs
@@ -105,106 +113,37 @@
*** Test Cases ***
| tc01-64B-1t1c-ethip4ipsecbasetnl-ip4base-int-aes-gcm-mrr
-| | [Documentation]
-| | ... | [Cfg] DUTs run 1 IPsec tunnel AES GCM in each direction, configured\
-| | ... | with 1 phy core, 1 receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 64B frames using single trial\
-| | ... | throughput test.
| | [Tags] | 64B | 1C
-| | ...
-| | [Template] | Check RR for IPv4 routing with IPSec HW cryptodev
-| | framesize=${64} | wt=1 | rxq=1
+| | framesize=${64} | phy_cores=${1}
| tc02-1518B-1t1c-ethip4ipsecbasetnl-ip4base-int-aes-gcm-mrr
-| | [Documentation]
-| | ... | [Cfg] DUTs run 1 IPsec tunnel AES GCM in each direction, configured\
-| | ... | with 1 phy core, 1 receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 1518B frames using single\
-| | ... | trial throughput test.
| | [Tags] | 1518B | 1C
-| | ...
-| | [Template] | Check RR for IPv4 routing with IPSec HW cryptodev
-| | framesize=${1518} | wt=1 | rxq=1
-
-# TODO: Add check to make test fail if rx=0.
-# TODO: Add 9000B test cases when they start passing.
+| | framesize=${1518} | phy_cores=${1}
| tc04-IMIX-1t1c-ethip4ipsecbasetnl-ip4base-int-aes-gcm-mrr
-| | [Documentation]
-| | ... | [Cfg] DUTs run 1 IPsec tunnel AES GCM in each direction, configured\
-| | ... | with 1 phy core, 1 receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for IMIX_v4_1 frames using single\
-| | ... | trial throughput test.
-| | ... | IMIX_v4_1 = (28x64B; 16x570B; 4x1518B)
| | [Tags] | IMIX | 1C
-| | ...
-| | [Template] | Check RR for IPv4 routing with IPSec HW cryptodev
-| | framesize=IMIX_v4_1 | wt=1 | rxq=1
+| | framesize=IMIX_v4_1 | phy_cores=${1}
| tc05-64B-2t2c-ethip4ipsecbasetnl-ip4base-int-aes-gcm-mrr
-| | [Documentation]
-| | ... | [Cfg] DUTs run 1 IPsec tunnel AES GCM in each direction, configured\
-| | ... | with 2 phy cores, 1 receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 64B frames using single trial\
-| | ... | throughput test.
| | [Tags] | 64B | 2C
-| | ...
-| | [Template] | Check RR for IPv4 routing with IPSec HW cryptodev
-| | framesize=${64} | wt=2 | rxq=1
+| | framesize=${64} | phy_cores=${2}
| tc06-1518B-2t2c-ethip4ipsecbasetnl-ip4base-int-aes-gcm-mrr
-| | [Documentation]
-| | ... | [Cfg] DUTs run 1 IPsec tunnel AES GCM in each direction, configured\
-| | ... | with 2 phy cores, 1 receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 1518B frames using single\
-| | ... | trial throughput test.
| | [Tags] | 1518B | 2C
-| | ...
-| | [Template] | Check RR for IPv4 routing with IPSec HW cryptodev
-| | framesize=${1518} | wt=2 | rxq=1
+| | framesize=${1518} | phy_cores=${2}
| tc08-IMIX-2t2c-ethip4ipsecbasetnl-ip4base-int-aes-gcm-mrr
-| | [Documentation]
-| | ... | [Cfg] DUTs run 1 IPsec tunnel AES GCM in each direction, configured\
-| | ... | with 2 phy cores, 1 receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for IMIX_v4_1 frames using single\
-| | ... | trial throughput test.
-| | ... | IMIX_v4_1 = (28x64B; 16x570B; 4x1518B)
| | [Tags] | IMIX | 2C
-| | ...
-| | [Template] | Check RR for IPv4 routing with IPSec HW cryptodev
-| | framesize=IMIX_v4_1 | wt=2 | rxq=1
+| | framesize=IMIX_v4_1 | phy_cores=${2}
| tc09-64B-4t4c-ethip4ipsecbasetnl-ip4base-int-aes-gcm-mrr
-| | [Documentation]
-| | ... | [Cfg] DUTs run 1 IPsec tunnel AES GCM in each direction, configured\
-| | ... | with 4 phy cores, 2 receive queues per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 64B frames using single trial\
-| | ... | throughput test.
| | [Tags] | 64B | 4C
-| | ...
-| | [Template] | Check RR for IPv4 routing with IPSec HW cryptodev
-| | framesize=${64} | wt=4 | rxq=2
+| | framesize=${64} | phy_cores=${4}
| tc10-1518B-4t4c-ethip4ipsecbasetnl-ip4base-int-aes-gcm-mrr
-| | [Documentation]
-| | ... | [Cfg] DUTs run 1 IPsec tunnel AES GCM in each direction, configured\
-| | ... | with 4 phy cores, 2 receive queues per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 1518B frames using single\
-| | ... | trial throughput test.
| | [Tags] | 1518B | 4C
-| | ...
-| | [Template] | Check RR for IPv4 routing with IPSec HW cryptodev
-| | framesize=${1518} | wt=4 | rxq=2
+| | framesize=${1518} | phy_cores=${4}
| tc12-IMIX-4t4c-ethip4ipsecbasetnl-ip4base-int-aes-gcm-mrr
-| | [Documentation]
-| | ... | [Cfg] DUTs run 1 IPsec tunnel AES GCM in each direction, configured\
-| | ... | with 4 phy cores, 2 receive queues per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for IMIX_v4_1 frames using single\
-| | ... | trial throughput test.
-| | ... | IMIX_v4_1 = (28x64B; 16x570B; 4x1518B)
| | [Tags] | IMIX | 4C
-| | ...
-| | [Template] | Check RR for IPv4 routing with IPSec HW cryptodev
-| | framesize=IMIX_v4_1 | wt=4 | rxq=2
+| | framesize=IMIX_v4_1 | phy_cores=${4}
diff --git a/tests/vpp/perf/crypto/40ge2p1xl710-ethip4ipsecbasetnl-ip4base-int-aes-gcm-ndrpdrdisc.robot b/tests/vpp/perf/crypto/40ge2p1xl710-ethip4ipsecbasetnl-ip4base-int-aes-gcm-ndrpdrdisc.robot
index a2b7e98397..fba7baf651 100644
--- a/tests/vpp/perf/crypto/40ge2p1xl710-ethip4ipsecbasetnl-ip4base-int-aes-gcm-ndrpdrdisc.robot
+++ b/tests/vpp/perf/crypto/40ge2p1xl710-ethip4ipsecbasetnl-ip4base-int-aes-gcm-ndrpdrdisc.robot
@@ -28,6 +28,8 @@
| Test Teardown | Tear down performance discovery test | ${min_rate}pps
| ... | ${framesize} | ${traffic_profile}
| ...
+| Test Template | Local template
+| ...
| Documentation | *IPv4 IPsec tunnel mode performance test suite.*
| ...
| ... | *[Top] Network Topologies:* TG-DUT1-DUT2-TG 3-node circular topology
@@ -73,16 +75,25 @@
| ${traffic_profile}= | trex-sl-3n-ethip4-ip4dst${n_tunnels}
*** Keywords ***
-| Discover NDR or PDR for IPv4 routing with IPSec HW cryptodev
+| Local template
| | [Documentation]
-| | ... | [Cfg] DUT runs IPSec tunneling AES GCM config with ${wt} thread(s),\
-| | ... | ${wt} phy core(s), ${rxq} receive queue(s) per NIC port.
-| | ... | [Ver] Measure NDR or PDR for ${framesize} by bisecting between\
-| | ... | ${min_rate} and computed max rate, using trial loss rate measurements.
-| | ...
-| | [Arguments] | ${wt} | ${rxq} | ${framesize} | ${min_rate} | ${search_type}
+| | ... | [Cfg] DUT runs IPSec tunneling AES GCM config.
+| | ... | Each DUT uses ${phy_cores} physical core(s) for worker threads.
+| | ... | [Ver] Find ${search_type} for ${framesize}B frames using binary search\
+| | ... | start at linerate, step ${min_rate}pps.
+| | ...
+| | ... | *Arguments:*
+| | ... | - framesize - Framesize in Bytes in integer or string (IMIX_v4_1).
+| | ... | Type: integer, string
+| | ... | - phy_cores - Number of physical cores. Type: integer
+| | ... | - search_type - NDR or PDR. Type: string
+| | ... | - rxq - Number of RX queues, default value: ${None}. Type: integer
+| | ... | - min_rate - Min rate for binary search, default value: ${50000}.
+| | ... | Type: integer
+| | ...
+| | [Arguments] | ${framesize} | ${phy_cores} | ${search_type}
+| | ... | ${rxq}=${None} | ${min_rate}=${50000}
| | ...
-| | # Test Variables required for test teardown
| | Set Test Variable | ${framesize}
| | Set Test Variable | ${min_rate}
| | ${get_framesize}= | Get Frame Size | ${framesize}
@@ -96,10 +107,11 @@
| | ${encr_alg}= | Crypto Alg AES GCM 128
| | ${auth_alg}= | Integ Alg AES GCM 128
| | ...
-| | Given Add '${wt}' worker threads and '${rxq}' rxqueues in 3-node single-link circular topology
+| | Given Add worker threads and rxqueues to all DUTs | ${phy_cores} | ${rxq}
| | And Add PCI devices to all DUTs
-| | And Add no multi seg to all DUTs
-| | And Add cryptodev to all DUTs | ${${wt}}
+| | And Run Keyword If | ${get_framesize} + ${ipsec_overhead_gcm} < ${1522}
+| | ... | Add no multi seg to all DUTs
+| | And Add cryptodev to all DUTs | ${${phy_cores}}
| | And Add DPDK dev default RXD to all DUTs | 2048
| | And Add DPDK dev default TXD to all DUTs | 2048
| | And Apply startup configuration on all VPP DUTs
@@ -122,99 +134,33 @@
*** Test Cases ***
| tc01-64B-1t1c-ethip4ipsecbasetnl-ip4base-int-aes-gcm-ndrdisc
-| | [Documentation]
-| | ... | [Cfg] DUTs run 1 IPsec tunnel AES GCM in each direction, configured\
-| | ... | with 1 phy core, 1 receive queue per NIC port.
-| | ... | [Ver] Find NDR for 64 Byte frames\
-| | ... | using binary search start at 40GE linerate, step 50kpps.
-| | ...
| | [Tags] | 64B | 1C | NDRDISC
-| | ...
-| | [Template] | Discover NDR or PDR for IPv4 routing with IPSec HW cryptodev
-| | wt=1 | rxq=1 | framesize=${64} | min_rate=${50000} | search_type=NDR
+| | framesize=${64} | phy_cores=${1} | search_type=NDR
| tc02-64B-1t1c-ethip4ipsecbasetnl-ip4base-int-aes-gcm-pdrdisc
-| | [Documentation]
-| | ... | [Cfg] DUTs run 1 IPsec tunnel AES GCM in each direction, configured\
-| | ... | with 1 phy core, 1 receive queue per NIC port.
-| | ... | [Ver] Find PDR for 64 Byte frames using binary search start at 40GE\
-| | ... | linerate, step 50kpps and loss tolerance of 0.5%.
-| | ...
| | [Tags] | 64B | 1C | PDRDISC | SKIP_PATCH
-| | ...
-| | [Template] | Discover NDR or PDR for IPv4 routing with IPSec HW cryptodev
-| | wt=1 | rxq=1 | framesize=${64} | min_rate=${50000} | search_type=PDR
+| | framesize=${64} | phy_cores=${1} | search_type=PDR
| tc03-1518B-1t1c-ethip4ipsecbasetnl-ip4base-int-aes-gcm-ndrdisc
-| | [Documentation]
-| | ... | [Cfg] DUTs run 1 IPsec tunnel AES GCM in each direction, configured\
-| | ... | with 1 phy core, 1 receive queue per NIC port.
-| | ... | [Ver] Find NDR for 1518 Byte frames\
-| | ... | using binary search start at 40GE linerate, step 50kpps.
-| | ...
| | [Tags] | 1518B | 1C | NDRDISC
-| | ...
-| | [Template] | Discover NDR or PDR for IPv4 routing with IPSec HW cryptodev
-| | wt=1 | rxq=1 | framesize=${1518} | min_rate=${50000} | search_type=NDR
+| | framesize=${1518} | phy_cores=${1} | search_type=NDR
| tc04-1518B-1t1c-ethip4ipsecbasetnl-ip4base-int-aes-gcm-pdrdisc
-| | [Documentation]
-| | ... | [Cfg] DUTs run 1 IPsec tunnel AES GCM in each direction, configured\
-| | ... | with 1 phy core, 1 receive queue per NIC port.
-| | ... | [Ver] Find PDR for 1518 Byte frames using binary search start at 40GE\
-| | ... | linerate, step 50kpps and loss tolerance of 0.5%.
-| | ...
| | [Tags] | 1518B | 1C | PDRDISC | SKIP_PATCH
-| | ...
-| | [Template] | Discover NDR or PDR for IPv4 routing with IPSec HW cryptodev
-| | wt=1 | rxq=1 | framesize=${1518} | min_rate=${50000} | search_type=PDR
+| | framesize=${1518} | phy_cores=${1} | search_type=PDR
| tc05-IMIX-1t1c-ethip4ipsecbasetnl-ip4base-int-aes-gcm-ndrdisc
-| | [Documentation]
-| | ... | [Cfg] DUTs run 1 IPsec tunnel AES GCM in each direction, configured\
-| | ... | with 1 phy core, 1 receive queue per NIC port.
-| | ... | [Ver] Find NDR for IMIX_v4_1 frames\
-| | ... | using binary search start at 40GE linerate, step 50kpps.
-| | ... | IMIX_v4_1 = (28x64B; 16x570B; 4x1518B)
-| | ...
| | [Tags] | IMIX | 1C | NDRDISC
-| | ...
-| | [Template] | Discover NDR or PDR for IPv4 routing with IPSec HW cryptodev
-| | wt=1 | rxq=1 | framesize=IMIX_v4_1 | min_rate=${50000} | search_type=NDR
+| | framesize=IMIX_v4_1 | phy_cores=${1} | search_type=NDR
| tc06-IMIX-1t1c-ethip4ipsecbasetnl-ip4base-int-aes-gcm-pdrdisc
-| | [Documentation]
-| | ... | [Cfg] DUTs run 1 IPsec tunnel AES GCM in each direction, configured\
-| | ... | with 1 phy core, 1 receive queue per NIC port.
-| | ... | [Ver] Find PDR for IMIX_v4_1 frames using binary search start at 40GE\
-| | ... | linerate, step 50kpps and loss tolerance of 0.5%.
-| | ... | IMIX_v4_1 = (28x64B; 16x570B; 4x1518B)
-| | ...
| | [Tags] | IMIX | 1C | PDRDISC | SKIP_PATCH
-| | ...
-| | [Template] | Discover NDR or PDR for IPv4 routing with IPSec HW cryptodev
-| | wt=1 | rxq=1 | framesize=IMIX_v4_1 | min_rate=${50000} | search_type=PDR
+| | framesize=IMIX_v4_1 | phy_cores=${1} | search_type=PDR
| tc07-64B-2t2c-ethip4ipsecbasetnl-ip4base-int-aes-gcm-ndrdisc
-| | [Documentation]
-| | ... | [Cfg] DUTs run 1 IPsec tunnel AES GCM in each direction, configured\
-| | ... | with 2 phy core, 1 receive queue per NIC port.
-| | ... | [Ver] Find NDR for 64 Byte frames\
-| | ... | using binary search start at 40GE linerate, step 50kpps.
-| | ...
| | [Tags] | 64B | 2C | NDRDISC
-| | ...
-| | [Template] | Discover NDR or PDR for IPv4 routing with IPSec HW cryptodev
-| | wt=2 | rxq=1 | framesize=${64} | min_rate=${50000} | search_type=NDR
+| | framesize=${64} | phy_cores=${2} | search_type=NDR
| tc08-64B-2t2c-ethip4ipsecbasetnl-ip4base-int-aes-gcm-pdrdisc
-| | [Documentation]
-| | ... | [Cfg] DUTs run 1 IPsec tunnel AES GCM in each direction, configured\
-| | ... | with 2 phy core, 1 receive queue per NIC port.
-| | ... | [Ver] Find PDR for 64 Byte frames using binary search start at 40GE\
-| | ... | linerate, step 50kpps and loss tolerance of 0.5%.
-| | ...
| | [Tags] | 64B | 2C | PDRDISC | SKIP_PATCH
-| | ...
-| | [Template] | Discover NDR or PDR for IPv4 routing with IPSec HW cryptodev
-| | wt=2 | rxq=1 | framesize=${64} | min_rate=${50000} | search_type=PDR
+| | framesize=${64} | phy_cores=${2} | search_type=PDR
diff --git a/tests/vpp/perf/crypto/40ge2p1xl710-ethip4ipsecbasetnl-ip4base-int-cbc-sha1-mrr.robot b/tests/vpp/perf/crypto/40ge2p1xl710-ethip4ipsecbasetnl-ip4base-int-cbc-sha1-mrr.robot
index 3525bb372e..7f6218ea12 100644
--- a/tests/vpp/perf/crypto/40ge2p1xl710-ethip4ipsecbasetnl-ip4base-int-cbc-sha1-mrr.robot
+++ b/tests/vpp/perf/crypto/40ge2p1xl710-ethip4ipsecbasetnl-ip4base-int-cbc-sha1-mrr.robot
@@ -23,8 +23,11 @@
| Suite Teardown | Tear down 3-node performance topology
| ...
| Test Setup | Set up performance test
+| ...
| Test Teardown | Tear down performance mrr test
| ...
+| Test Template | Local template
+| ...
| Documentation | *Raw results IPv4 IPsec tunnel mode performance test suite.*
| ...
| ... | *[Top] Network Topologies:* TG-DUT1-DUT2-TG 3-node circular topology
@@ -66,16 +69,21 @@
| ${traffic_profile}= | trex-sl-3n-ethip4-ip4dst${n_tunnels}
*** Keywords ***
-| Check RR for IPv4 routing with IPSec HW cryptodev
+| Local template
| | [Documentation]
-| | ... | [Cfg] DUT runs IPSec tunneling CBC-SHA1 config with ${wt} thread(s),\
-| | ... | ${wt} phy core(s), ${rxq} receive queue(s) per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for ${framesize} frames using single\
+| | ... | [Cfg] DUT runs IPSec tunneling CBC-SHA1 config.
+| | ... | Each DUT uses ${phy_cores} physical core(s) for worker threads.
+| | ... | [Ver] Measure MaxReceivedRate for ${framesize}B frames using single\
| | ... | trial throughput test.
| | ...
-| | [Arguments] | ${framesize} | ${wt} | ${rxq}
+| | ... | *Arguments:*
+| | ... | - framesize - Framesize in Bytes in integer or string (IMIX_v4_1).
+| | ... | Type: integer, string
+| | ... | - phy_cores - Number of physical cores. Type: integer
+| | ... | - rxq - Number of RX queues, default value: ${None}. Type: integer
+| | ...
+| | [Arguments] | ${framesize} | ${phy_cores} | ${rxq}=${None}
| | ...
-| | # Test Variables required for test teardown
| | Set Test Variable | ${framesize}
| | ${get_framesize}= | Get Frame Size | ${framesize}
| | ${max_rate}= | Calculate pps | ${s_24.5G}
@@ -85,11 +93,11 @@
| | ${encr_alg}= | Crypto Alg AES CBC 128
| | ${auth_alg}= | Integ Alg SHA1 96
| | ...
-| | Given Add '${wt}' worker threads and '${rxq}' rxqueues in 3-node single-link circular topology
+| | Given Add worker threads and rxqueues to all DUTs | ${phy_cores} | ${rxq}
| | And Add PCI devices to all DUTs
-| | And Run Keyword If | ${get_framesize} < ${1522}
+| | And Run Keyword If | ${get_framesize} + ${ipsec_overhead} < ${1522}
| | ... | Add no multi seg to all DUTs
-| | And Add cryptodev to all DUTs | ${${wt}}
+| | And Add cryptodev to all DUTs | ${${phy_cores}}
| | And Add DPDK dev default RXD to all DUTs | 2048
| | And Add DPDK dev default TXD to all DUTs | 2048
| | And Apply startup configuration on all VPP DUTs
@@ -105,106 +113,37 @@
*** Test Cases ***
| tc01-64B-1t1c-ethip4ipsecbasetnl-ip4base-int-cbc-sha1-mrr
-| | [Documentation]
-| | ... | [Cfg] DUTs run 1 IPsec tunnel CBC-SHA1 in each direction, configured\
-| | ... | with 1 phy core, 1 receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 64B frames using single trial\
-| | ... | throughput test.
| | [Tags] | 64B | 1C
-| | ...
-| | [Template] | Check RR for IPv4 routing with IPSec HW cryptodev
-| | framesize=${64} | wt=1 | rxq=1
+| | framesize=${64} | phy_cores=${1}
| tc02-1518B-1t1c-ethip4ipsecbasetnl-ip4base-int-cbc-sha1-mrr
-| | [Documentation]
-| | ... | [Cfg] DUTs run 1 IPsec tunnel CBC-SHA1 in each direction, configured\
-| | ... | with 1 phy core, 1 receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 1518B frames using single\
-| | ... | trial throughput test.
| | [Tags] | 1518B | 1C
-| | ...
-| | [Template] | Check RR for IPv4 routing with IPSec HW cryptodev
-| | framesize=${1518} | wt=1 | rxq=1
-
-# TODO: Add check to make test fail if rx=0.
-# TODO: Add 9000B test cases when they start passing.
+| | framesize=${1518} | phy_cores=${1}
| tc04-IMIX-1t1c-ethip4ipsecbasetnl-ip4base-int-cbc-sha1-mrr
-| | [Documentation]
-| | ... | [Cfg] DUTs run 1 IPsec tunnel CBC-SHA1 in each direction, configured\
-| | ... | with 1 phy core, 1 receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for IMIX_v4_1 frames using single\
-| | ... | trial throughput test.
-| | ... | IMIX_v4_1 = (28x64B; 16x570B; 4x1518B)
| | [Tags] | IMIX | 1C
-| | ...
-| | [Template] | Check RR for IPv4 routing with IPSec HW cryptodev
-| | framesize=IMIX_v4_1 | wt=1 | rxq=1
+| | framesize=IMIX_v4_1 | phy_cores=${1}
| tc05-64B-2t2c-ethip4ipsecbasetnl-ip4base-int-cbc-sha1-mrr
-| | [Documentation]
-| | ... | [Cfg] DUTs run 1 IPsec tunnel CBC-SHA1 in each direction, configured\
-| | ... | with 2 phy cores, 1 receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 64B frames using single trial\
-| | ... | throughput test.
| | [Tags] | 64B | 2C
-| | ...
-| | [Template] | Check RR for IPv4 routing with IPSec HW cryptodev
-| | framesize=${64} | wt=2 | rxq=1
+| | framesize=${64} | phy_cores=${2}
| tc06-1518B-2t2c-ethip4ipsecbasetnl-ip4base-int-cbc-sha1-mrr
-| | [Documentation]
-| | ... | [Cfg] DUTs run 1 IPsec tunnel CBC-SHA1 in each direction, configured\
-| | ... | with 2 phy cores, 1 receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 1518B frames using single\
-| | ... | trial throughput test.
| | [Tags] | 1518B | 2C
-| | ...
-| | [Template] | Check RR for IPv4 routing with IPSec HW cryptodev
-| | framesize=${1518} | wt=2 | rxq=1
+| | framesize=${1518} | phy_cores=${2}
| tc08-IMIX-2t2c-ethip4ipsecbasetnl-ip4base-int-cbc-sha1-mrr
-| | [Documentation]
-| | ... | [Cfg] DUTs run 1 IPsec tunnel CBC-SHA1 in each direction, configured\
-| | ... | with 2 phy cores, 1 receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for IMIX_v4_1 frames using single\
-| | ... | trial throughput test.
-| | ... | IMIX_v4_1 = (28x64B; 16x570B; 4x1518B)
| | [Tags] | IMIX | 2C
-| | ...
-| | [Template] | Check RR for IPv4 routing with IPSec HW cryptodev
-| | framesize=IMIX_v4_1 | wt=2 | rxq=1
+| | framesize=IMIX_v4_1 | phy_cores=${2}
| tc09-64B-4t4c-ethip4ipsecbasetnl-ip4base-int-cbc-sha1-mrr
-| | [Documentation]
-| | ... | [Cfg] DUTs run 1 IPsec tunnel CBC-SHA1 in each direction, configured\
-| | ... | with 4 phy cores, 2 receive queues per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 64B frames using single trial\
-| | ... | throughput test.
| | [Tags] | 64B | 4C
-| | ...
-| | [Template] | Check RR for IPv4 routing with IPSec HW cryptodev
-| | framesize=${64} | wt=4 | rxq=2
+| | framesize=${64} | phy_cores=${4}
| tc10-1518B-4t4c-ethip4ipsecbasetnl-ip4base-int-cbc-sha1-mrr
-| | [Documentation]
-| | ... | [Cfg] DUTs run 1 IPsec tunnel CBC-SHA1 in each direction, configured\
-| | ... | with 4 phy cores, 2 receive queues per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 1518B frames using single\
-| | ... | trial throughput test.
| | [Tags] | 1518B | 4C
-| | ...
-| | [Template] | Check RR for IPv4 routing with IPSec HW cryptodev
-| | framesize=${1518} | wt=4 | rxq=2
+| | framesize=${1518} | phy_cores=${4}
| tc12-IMIX-4t4c-ethip4ipsecbasetnl-ip4base-int-cbc-sha1-mrr
-| | [Documentation]
-| | ... | [Cfg] DUTs run 1 IPsec tunnel CBC-SHA1 in each direction, configured\
-| | ... | with 4 phy cores, 2 receive queues per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for IMIX_v4_1 frames using single\
-| | ... | trial throughput test.
-| | ... | IMIX_v4_1 = (28x64B; 16x570B; 4x1518B)
| | [Tags] | IMIX | 4C
-| | ...
-| | [Template] | Check RR for IPv4 routing with IPSec HW cryptodev
-| | framesize=IMIX_v4_1 | wt=4 | rxq=2
+| | framesize=IMIX_v4_1 | phy_cores=${4}
diff --git a/tests/vpp/perf/crypto/40ge2p1xl710-ethip4ipsecbasetnl-ip4base-int-cbc-sha1-ndrpdrdisc.robot b/tests/vpp/perf/crypto/40ge2p1xl710-ethip4ipsecbasetnl-ip4base-int-cbc-sha1-ndrpdrdisc.robot
index 1e52f8c663..221f5b8b54 100644
--- a/tests/vpp/perf/crypto/40ge2p1xl710-ethip4ipsecbasetnl-ip4base-int-cbc-sha1-ndrpdrdisc.robot
+++ b/tests/vpp/perf/crypto/40ge2p1xl710-ethip4ipsecbasetnl-ip4base-int-cbc-sha1-ndrpdrdisc.robot
@@ -82,7 +82,6 @@
| | ...
| | [Tags] | 64B | 1C | NDRDISC
| | ...
-| | # FIXME: Move repeated lines into a keyword.
| | ${framesize}= | Set Variable | ${64}
| | ${min_rate}= | Set Variable | ${50000}
| | ${max_rate}= | Set Variable | ${s_18.75Mpps}
@@ -91,7 +90,7 @@
| | ${threshold}= | Set Variable | ${min_rate}
| | ${encr_alg}= | Crypto Alg AES CBC 128
| | ${auth_alg}= | Integ Alg SHA1 96
-| | Given Add '1' worker threads and '1' rxqueues in 3-node single-link circular topology
+| | Given Add worker threads and rxqueues to all DUTs | 1
| | And Add PCI devices to all DUTs
| | And Add no multi seg to all DUTs
| | And Add cryptodev to all DUTs | ${1}
@@ -126,7 +125,7 @@
| | ${threshold}= | Set Variable | ${min_rate}
| | ${encr_alg}= | Crypto Alg AES CBC 128
| | ${auth_alg}= | Integ Alg SHA1 96
-| | Given Add '1' worker threads and '1' rxqueues in 3-node single-link circular topology
+| | Given Add worker threads and rxqueues to all DUTs | 1
| | And Add PCI devices to all DUTs
| | And Add no multi seg to all DUTs
| | And Add cryptodev to all DUTs | ${1}
@@ -162,7 +161,7 @@
| | ${threshold}= | Set Variable | ${min_rate}
| | ${encr_alg}= | Crypto Alg AES CBC 128
| | ${auth_alg}= | Integ Alg SHA1 96
-| | Given Add '1' worker threads and '1' rxqueues in 3-node single-link circular topology
+| | Given Add worker threads and rxqueues to all DUTs | 1
| | And Add PCI devices to all DUTs
| | And Add cryptodev to all DUTs | ${1}
| | And Add DPDK dev default RXD to all DUTs | 2048
@@ -196,7 +195,7 @@
| | ${threshold}= | Set Variable | ${min_rate}
| | ${encr_alg}= | Crypto Alg AES CBC 128
| | ${auth_alg}= | Integ Alg SHA1 96
-| | Given Add '1' worker threads and '1' rxqueues in 3-node single-link circular topology
+| | Given Add worker threads and rxqueues to all DUTs | 1
| | And Add PCI devices to all DUTs
| | And Add cryptodev to all DUTs | ${1}
| | And Add DPDK dev default RXD to all DUTs | 2048
@@ -233,7 +232,7 @@
| | ${threshold}= | Set Variable | ${min_rate}
| | ${encr_alg}= | Crypto Alg AES CBC 128
| | ${auth_alg}= | Integ Alg SHA1 96
-| | Given Add '1' worker threads and '1' rxqueues in 3-node single-link circular topology
+| | Given Add worker threads and rxqueues to all DUTs | 1
| | And Add PCI devices to all DUTs
| | And Add cryptodev to all DUTs | ${1}
| | And Add DPDK dev default RXD to all DUTs | 2048
@@ -269,7 +268,7 @@
| | ${threshold}= | Set Variable | ${min_rate}
| | ${encr_alg}= | Crypto Alg AES CBC 128
| | ${auth_alg}= | Integ Alg SHA1 96
-| | Given Add '1' worker threads and '1' rxqueues in 3-node single-link circular topology
+| | Given Add worker threads and rxqueues to all DUTs | 1
| | And Add PCI devices to all DUTs
| | And Add cryptodev to all DUTs | ${1}
| | And Add DPDK dev default RXD to all DUTs | 2048
@@ -304,7 +303,7 @@
| | ${threshold}= | Set Variable | ${min_rate}
| | ${encr_alg}= | Crypto Alg AES CBC 128
| | ${auth_alg}= | Integ Alg SHA1 96
-| | Given Add '2' worker threads and '1' rxqueues in 3-node single-link circular topology
+| | Given Add worker threads and rxqueues to all DUTs | 2
| | And Add PCI devices to all DUTs
| | And Add no multi seg to all DUTs
| | And Add cryptodev to all DUTs | ${2}
@@ -339,7 +338,7 @@
| | ${threshold}= | Set Variable | ${min_rate}
| | ${encr_alg}= | Crypto Alg AES CBC 128
| | ${auth_alg}= | Integ Alg SHA1 96
-| | Given Add '2' worker threads and '1' rxqueues in 3-node single-link circular topology
+| | Given Add worker threads and rxqueues to all DUTs | 2
| | And Add PCI devices to all DUTs
| | And Add no multi seg to all DUTs
| | And Add cryptodev to all DUTs | ${2}
diff --git a/tests/vpp/perf/crypto/40ge2p1xl710-ethip4ipsecbasetnl-ip4base-tnl-aes-gcm-ndrpdrdisc.robot b/tests/vpp/perf/crypto/40ge2p1xl710-ethip4ipsecbasetnl-ip4base-tnl-aes-gcm-ndrpdrdisc.robot
index 0498effbeb..0733a43b8c 100644
--- a/tests/vpp/perf/crypto/40ge2p1xl710-ethip4ipsecbasetnl-ip4base-tnl-aes-gcm-ndrpdrdisc.robot
+++ b/tests/vpp/perf/crypto/40ge2p1xl710-ethip4ipsecbasetnl-ip4base-tnl-aes-gcm-ndrpdrdisc.robot
@@ -82,7 +82,6 @@
| | ...
| | [Tags] | 64B | 1C | NDRDISC
| | ...
-| | # FIXME: Move repeated lines into a keyword.
| | ${framesize}= | Set Variable | ${64}
| | ${min_rate}= | Set Variable | ${50000}
| | ${max_rate}= | Set Variable | ${s_18.75Mpps}
@@ -91,7 +90,7 @@
| | ${threshold}= | Set Variable | ${min_rate}
| | ${encr_alg}= | Crypto Alg AES GCM 128
| | ${auth_alg}= | Integ Alg AES GCM 128
-| | Given Add '1' worker threads and '1' rxqueues in 3-node single-link circular topology
+| | Given Add worker threads and rxqueues to all DUTs | 1
| | And Add PCI devices to all DUTs
| | And Add no multi seg to all DUTs
| | And Add cryptodev to all DUTs | ${1}
@@ -131,7 +130,7 @@
| | ${threshold}= | Set Variable | ${min_rate}
| | ${encr_alg}= | Crypto Alg AES GCM 128
| | ${auth_alg}= | Integ Alg AES GCM 128
-| | Given Add '1' worker threads and '1' rxqueues in 3-node single-link circular topology
+| | Given Add worker threads and rxqueues to all DUTs | 1
| | And Add PCI devices to all DUTs
| | And Add no multi seg to all DUTs
| | And Add cryptodev to all DUTs | ${1}
@@ -173,7 +172,7 @@
| | ${threshold}= | Set Variable | ${min_rate}
| | ${encr_alg}= | Crypto Alg AES GCM 128
| | ${auth_alg}= | Integ Alg AES GCM 128
-| | Given Add '1' worker threads and '1' rxqueues in 3-node single-link circular topology
+| | Given Add worker threads and rxqueues to all DUTs | 1
| | And Add PCI devices to all DUTs
| | And Add cryptodev to all DUTs | ${1}
| | And Add DPDK dev default RXD to all DUTs | 2048
@@ -213,7 +212,7 @@
| | ${threshold}= | Set Variable | ${min_rate}
| | ${encr_alg}= | Crypto Alg AES GCM 128
| | ${auth_alg}= | Integ Alg AES GCM 128
-| | Given Add '1' worker threads and '1' rxqueues in 3-node single-link circular topology
+| | Given Add worker threads and rxqueues to all DUTs | 1
| | And Add PCI devices to all DUTs
| | And Add cryptodev to all DUTs | ${1}
| | And Add DPDK dev default RXD to all DUTs | 2048
@@ -256,7 +255,7 @@
| | ${threshold}= | Set Variable | ${min_rate}
| | ${encr_alg}= | Crypto Alg AES GCM 128
| | ${auth_alg}= | Integ Alg AES GCM 128
-| | Given Add '1' worker threads and '1' rxqueues in 3-node single-link circular topology
+| | Given Add worker threads and rxqueues to all DUTs | 1
| | And Add PCI devices to all DUTs
| | And Add cryptodev to all DUTs | ${1}
| | And Add DPDK dev default RXD to all DUTs | 2048
@@ -298,7 +297,7 @@
| | ${threshold}= | Set Variable | ${min_rate}
| | ${encr_alg}= | Crypto Alg AES GCM 128
| | ${auth_alg}= | Integ Alg AES GCM 128
-| | Given Add '1' worker threads and '1' rxqueues in 3-node single-link circular topology
+| | Given Add worker threads and rxqueues to all DUTs | 1
| | And Add PCI devices to all DUTs
| | And Add cryptodev to all DUTs | ${1}
| | And Add DPDK dev default RXD to all DUTs | 2048
@@ -338,7 +337,7 @@
| | ${threshold}= | Set Variable | ${min_rate}
| | ${encr_alg}= | Crypto Alg AES GCM 128
| | ${auth_alg}= | Integ Alg AES GCM 128
-| | Given Add '2' worker threads and '1' rxqueues in 3-node single-link circular topology
+| | Given Add worker threads and rxqueues to all DUTs | 2
| | And Add PCI devices to all DUTs
| | And Add no multi seg to all DUTs
| | And Add cryptodev to all DUTs | ${2}
@@ -378,7 +377,7 @@
| | ${threshold}= | Set Variable | ${min_rate}
| | ${encr_alg}= | Crypto Alg AES GCM 128
| | ${auth_alg}= | Integ Alg AES GCM 128
-| | Given Add '2' worker threads and '1' rxqueues in 3-node single-link circular topology
+| | Given Add worker threads and rxqueues to all DUTs | 2
| | And Add PCI devices to all DUTs
| | And Add no multi seg to all DUTs
| | And Add cryptodev to all DUTs | ${2}
diff --git a/tests/vpp/perf/crypto/40ge2p1xl710-ethip4ipsecbasetnl-ip4base-tnl-cbc-sha1-ndrpdrdisc.robot b/tests/vpp/perf/crypto/40ge2p1xl710-ethip4ipsecbasetnl-ip4base-tnl-cbc-sha1-ndrpdrdisc.robot
index cf0342973a..2df4bd7dad 100644
--- a/tests/vpp/perf/crypto/40ge2p1xl710-ethip4ipsecbasetnl-ip4base-tnl-cbc-sha1-ndrpdrdisc.robot
+++ b/tests/vpp/perf/crypto/40ge2p1xl710-ethip4ipsecbasetnl-ip4base-tnl-cbc-sha1-ndrpdrdisc.robot
@@ -82,7 +82,6 @@
| | ...
| | [Tags] | 64B | 1C | NDRDISC
| | ...
-| | # FIXME: Move repeated lines into a keyword.
| | ${framesize}= | Set Variable | ${64}
| | ${min_rate}= | Set Variable | ${50000}
| | ${max_rate}= | Set Variable | ${s_18.75Mpps}
@@ -91,7 +90,7 @@
| | ${threshold}= | Set Variable | ${min_rate}
| | ${encr_alg}= | Crypto Alg AES CBC 128
| | ${auth_alg}= | Integ Alg SHA1 96
-| | Given Add '1' worker threads and '1' rxqueues in 3-node single-link circular topology
+| | Given Add worker threads and rxqueues to all DUTs | 1
| | And Add PCI devices to all DUTs
| | And Add no multi seg to all DUTs
| | And Add cryptodev to all DUTs | ${1}
@@ -131,7 +130,7 @@
| | ${threshold}= | Set Variable | ${min_rate}
| | ${encr_alg}= | Crypto Alg AES CBC 128
| | ${auth_alg}= | Integ Alg SHA1 96
-| | Given Add '1' worker threads and '1' rxqueues in 3-node single-link circular topology
+| | Given Add worker threads and rxqueues to all DUTs | 1
| | And Add PCI devices to all DUTs
| | And Add no multi seg to all DUTs
| | And Add cryptodev to all DUTs | ${1}
@@ -172,7 +171,7 @@
| | ${threshold}= | Set Variable | ${min_rate}
| | ${encr_alg}= | Crypto Alg AES CBC 128
| | ${auth_alg}= | Integ Alg SHA1 96
-| | Given Add '1' worker threads and '1' rxqueues in 3-node single-link circular topology
+| | Given Add worker threads and rxqueues to all DUTs | 1
| | And Add PCI devices to all DUTs
| | And Add cryptodev to all DUTs | ${1}
| | And Add DPDK dev default RXD to all DUTs | 2048
@@ -211,7 +210,7 @@
| | ${threshold}= | Set Variable | ${min_rate}
| | ${encr_alg}= | Crypto Alg AES CBC 128
| | ${auth_alg}= | Integ Alg SHA1 96
-| | Given Add '1' worker threads and '1' rxqueues in 3-node single-link circular topology
+| | Given Add worker threads and rxqueues to all DUTs | 1
| | And Add PCI devices to all DUTs
| | And Add cryptodev to all DUTs | ${1}
| | And Add DPDK dev default RXD to all DUTs | 2048
@@ -253,7 +252,7 @@
| | ${threshold}= | Set Variable | ${min_rate}
| | ${encr_alg}= | Crypto Alg AES CBC 128
| | ${auth_alg}= | Integ Alg SHA1 96
-| | Given Add '1' worker threads and '1' rxqueues in 3-node single-link circular topology
+| | Given Add worker threads and rxqueues to all DUTs | 1
| | And Add PCI devices to all DUTs
| | And Add cryptodev to all DUTs | ${1}
| | And Add DPDK dev default RXD to all DUTs | 2048
@@ -294,7 +293,7 @@
| | ${threshold}= | Set Variable | ${min_rate}
| | ${encr_alg}= | Crypto Alg AES CBC 128
| | ${auth_alg}= | Integ Alg SHA1 96
-| | Given Add '1' worker threads and '1' rxqueues in 3-node single-link circular topology
+| | Given Add worker threads and rxqueues to all DUTs | 1
| | And Add PCI devices to all DUTs
| | And Add cryptodev to all DUTs | ${1}
| | And Add DPDK dev default RXD to all DUTs | 2048
@@ -334,7 +333,7 @@
| | ${threshold}= | Set Variable | ${min_rate}
| | ${encr_alg}= | Crypto Alg AES CBC 128
| | ${auth_alg}= | Integ Alg SHA1 96
-| | Given Add '2' worker threads and '1' rxqueues in 3-node single-link circular topology
+| | Given Add worker threads and rxqueues to all DUTs | 2
| | And Add PCI devices to all DUTs
| | And Add no multi seg to all DUTs
| | And Add cryptodev to all DUTs | ${2}
@@ -374,7 +373,7 @@
| | ${threshold}= | Set Variable | ${min_rate}
| | ${encr_alg}= | Crypto Alg AES CBC 128
| | ${auth_alg}= | Integ Alg SHA1 96
-| | Given Add '2' worker threads and '1' rxqueues in 3-node single-link circular topology
+| | Given Add worker threads and rxqueues to all DUTs | 2
| | And Add PCI devices to all DUTs
| | And Add no multi seg to all DUTs
| | And Add cryptodev to all DUTs | ${2}
diff --git a/tests/vpp/perf/crypto/40ge2p1xl710-ethip4ipsecbasetnlsw-ip4base-int-aes-gcm-mrr.robot b/tests/vpp/perf/crypto/40ge2p1xl710-ethip4ipsecbasetnlsw-ip4base-int-aes-gcm-mrr.robot
index 521df05adf..6a6ce849ea 100644
--- a/tests/vpp/perf/crypto/40ge2p1xl710-ethip4ipsecbasetnlsw-ip4base-int-aes-gcm-mrr.robot
+++ b/tests/vpp/perf/crypto/40ge2p1xl710-ethip4ipsecbasetnlsw-ip4base-int-aes-gcm-mrr.robot
@@ -23,8 +23,11 @@
| Suite Teardown | Tear down 3-node performance topology
| ...
| Test Setup | Set up performance test
+| ...
| Test Teardown | Tear down performance mrr test
| ...
+| Test Template | Local template
+| ...
| Documentation | *Raw results IPv4 IPsec tunnel mode performance test suite.*
| ...
| ... | *[Top] Network Topologies:* TG-DUT1-DUT2-TG 3-node circular topology
@@ -67,16 +70,21 @@
| ${traffic_profile}= | trex-sl-3n-ethip4-ip4dst${n_tunnels}
*** Keywords ***
-| Check RR for IPv4 routing with IPSec SW cryptodev
+| Local template
| | [Documentation]
-| | ... | [Cfg] DUT runs IPSec tunneling AES GCM config with ${wt} thread(s),\
-| | ... | ${wt} phy core(s), ${rxq} receive queue(s) per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for ${framesize} frames using single\
+| | ... | [Cfg] DUT runs IPSec tunneling AES GCM config.
+| | ... | Each DUT uses ${phy_cores} physical core(s) for worker threads.
+| | ... | [Ver] Measure MaxReceivedRate for ${framesize}B frames using single\
| | ... | trial throughput test.
| | ...
-| | [Arguments] | ${framesize} | ${wt} | ${rxq}
+| | ... | *Arguments:*
+| | ... | - framesize - Framesize in Bytes in integer or string (IMIX_v4_1).
+| | ... | Type: integer, string
+| | ... | - phy_cores - Number of physical cores. Type: integer
+| | ... | - rxq - Number of RX queues, default value: ${None}. Type: integer
+| | ...
+| | [Arguments] | ${framesize} | ${phy_cores} | ${rxq}=${None}
| | ...
-| | # Test Variables required for test teardown
| | Set Test Variable | ${framesize}
| | ${get_framesize}= | Get Frame Size | ${framesize}
| | ${max_rate}= | Calculate pps | ${s_24.5G}
@@ -86,12 +94,12 @@
| | ${encr_alg}= | Crypto Alg AES GCM 128
| | ${auth_alg}= | Integ Alg AES GCM 128
| | ...
-| | Given Add '${wt}' worker threads and '${rxq}' rxqueues in 3-node single-link circular topology
+| | Given Add worker threads and rxqueues to all DUTs | ${phy_cores} | ${rxq}
| | And Add PCI devices to all DUTs
-| | And Run Keyword If | ${get_framesize} < ${1522}
+| | And Run Keyword If | ${get_framesize} + ${ipsec_overhead} < ${1522}
| | ... | Add no multi seg to all DUTs
| | And Add DPDK SW cryptodev on DUTs in 3-node single-link circular topology
-| | ... | aesni_gcm | ${${wt}}
+| | ... | aesni_gcm | ${${phy_cores}}
| | And Add DPDK dev default RXD to all DUTs | 2048
| | And Add DPDK dev default TXD to all DUTs | 2048
| | And Apply startup configuration on all VPP DUTs
@@ -107,106 +115,36 @@
*** Test Cases ***
| tc01-64B-1t1c-ethip4ipsecbasetnlsw-ip4base-int-aes-gcm-mrr
-| | [Documentation]
-| | ... | [Cfg] DUTs run 1 IPsec tunnel AES GCM in each direction, configured\
-| | ... | with 1 phy core, 1 receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 64B frames using single trial\
-| | ... | throughput test.
| | [Tags] | 64B | 1C
-| | ...
-| | [Template] | Check RR for IPv4 routing with IPSec SW cryptodev
-| | framesize=${64} | wt=1 | rxq=1
+| | framesize=${64} | phy_cores=${1}
| tc02-1518B-1t1c-ethip4ipsecbasetnlsw-ip4base-int-aes-gcm-mrr
-| | [Documentation]
-| | ... | [Cfg] DUTs run 1 IPsec tunnel AES GCM in each direction, configured\
-| | ... | with 1 phy core, 1 receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 1518B frames using single\
-| | ... | trial throughput test.
| | [Tags] | 1518B | 1C
-| | ...
-| | [Template] | Check RR for IPv4 routing with IPSec SW cryptodev
-| | framesize=${1518} | wt=1 | rxq=1
-
-# TODO: Add check to make test fail if rx=0.
-# TODO: Add 9000B test cases when they start passing.
+| | framesize=${1518} | phy_cores=${1}
| tc04-IMIX-1t1c-ethip4ipsecbasetnlsw-ip4base-int-aes-gcm-mrr
-| | [Documentation]
-| | ... | [Cfg] DUTs run 1 IPsec tunnel AES GCM in each direction, configured\
-| | ... | with 1 phy core, 1 receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for IMIX_v4_1 frames using single\
-| | ... | trial throughput test.
-| | ... | IMIX_v4_1 = (28x64B; 16x570B; 4x1518B)
| | [Tags] | IMIX | 1C
-| | ...
-| | [Template] | Check RR for IPv4 routing with IPSec SW cryptodev
-| | framesize=IMIX_v4_1 | wt=1 | rxq=1
+| | framesize=IMIX_v4_1 | phy_cores=${1}
| tc05-64B-2t2c-ethip4ipsecbasetnlsw-ip4base-int-aes-gcm-mrr
-| | [Documentation]
-| | ... | [Cfg] DUTs run 1 IPsec tunnel AES GCM in each direction, configured\
-| | ... | with 2 phy cores, 1 receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 64B frames using single trial\
-| | ... | throughput test.
| | [Tags] | 64B | 2C
-| | ...
-| | [Template] | Check RR for IPv4 routing with IPSec SW cryptodev
-| | framesize=${64} | wt=2 | rxq=1
+| | framesize=${64} | phy_cores=${2}
| tc06-1518B-2t2c-ethip4ipsecbasetnlsw-ip4base-int-aes-gcm-mrr
-| | [Documentation]
-| | ... | [Cfg] DUTs run 1 IPsec tunnel AES GCM in each direction, configured\
-| | ... | with 2 phy cores, 1 receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 1518B frames using single\
-| | ... | trial throughput test.
| | [Tags] | 1518B | 2C
-| | ...
-| | [Template] | Check RR for IPv4 routing with IPSec SW cryptodev
-| | framesize=${1518} | wt=2 | rxq=1
+| | framesize=${1518} | phy_cores=${2}
| tc08-IMIX-2t2c-ethip4ipsecbasetnlsw-ip4base-int-aes-gcm-mrr
-| | [Documentation]
-| | ... | [Cfg] DUTs run 1 IPsec tunnel AES GCM in each direction, configured\
-| | ... | with 2 phy cores, 1 receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for IMIX_v4_1 frames using single\
-| | ... | trial throughput test.
-| | ... | IMIX_v4_1 = (28x64B; 16x570B; 4x1518B)
| | [Tags] | IMIX | 2C
-| | ...
-| | [Template] | Check RR for IPv4 routing with IPSec SW cryptodev
-| | framesize=IMIX_v4_1 | wt=2 | rxq=1
+| | framesize=IMIX_v4_1 | phy_cores=${2}
| tc09-64B-4t4c-ethip4ipsecbasetnlsw-ip4base-int-aes-gcm-mrr
-| | [Documentation]
-| | ... | [Cfg] DUTs run 1 IPsec tunnel AES GCM in each direction, configured\
-| | ... | with 4 phy cores, 2 receive queues per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 64B frames using single trial\
-| | ... | throughput test.
| | [Tags] | 64B | 4C
-| | ...
-| | [Template] | Check RR for IPv4 routing with IPSec SW cryptodev
-| | framesize=${64} | wt=4 | rxq=2
+| | framesize=${64} | phy_cores=${4}
| tc10-1518B-4t4c-ethip4ipsecbasetnlsw-ip4base-int-aes-gcm-mrr
-| | [Documentation]
-| | ... | [Cfg] DUTs run 1 IPsec tunnel AES GCM in each direction, configured\
-| | ... | with 4 phy cores, 2 receive queues per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 1518B frames using single\
-| | ... | trial throughput test.
-| | [Tags] | 1518B | 4C
-| | ...
-| | [Template] | Check RR for IPv4 routing with IPSec SW cryptodev
-| | framesize=${1518} | wt=4 | rxq=2
+| | framesize=${1518} | phy_cores=${4}
| tc12-IMIX-4t4c-ethip4ipsecbasetnlsw-ip4base-int-aes-gcm-mrr
-| | [Documentation]
-| | ... | [Cfg] DUTs run 1 IPsec tunnel AES GCM in each direction, configured\
-| | ... | with 4 phy cores, 2 receive queues per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for IMIX_v4_1 frames using single\
-| | ... | trial throughput test.
-| | ... | IMIX_v4_1 = (28x64B; 16x570B; 4x1518B)
| | [Tags] | IMIX | 4C
-| | ...
-| | [Template] | Check RR for IPv4 routing with IPSec SW cryptodev
-| | framesize=IMIX_v4_1 | wt=4 | rxq=2
+| | framesize=IMIX_v4_1 | phy_cores=${4}
diff --git a/tests/vpp/perf/crypto/40ge2p1xl710-ethip4ipsecbasetnlsw-ip4base-int-aes-gcm-ndrpdrdisc.robot b/tests/vpp/perf/crypto/40ge2p1xl710-ethip4ipsecbasetnlsw-ip4base-int-aes-gcm-ndrpdrdisc.robot
index a588aa2d24..78c3881077 100644
--- a/tests/vpp/perf/crypto/40ge2p1xl710-ethip4ipsecbasetnlsw-ip4base-int-aes-gcm-ndrpdrdisc.robot
+++ b/tests/vpp/perf/crypto/40ge2p1xl710-ethip4ipsecbasetnlsw-ip4base-int-aes-gcm-ndrpdrdisc.robot
@@ -28,6 +28,8 @@
| Test Teardown | Tear down performance discovery test | ${min_rate}pps
| ... | ${framesize} | ${traffic_profile}
| ...
+| Test Template | Local template
+| ...
| Documentation | *IPv4 IPsec tunnel mode performance test suite.*
| ...
| ... | *[Top] Network Topologies:* TG-DUT1-DUT2-TG 3-node circular topology
@@ -74,16 +76,24 @@
| ${traffic_profile}= | trex-sl-3n-ethip4-ip4dst${n_tunnels}
*** Keywords ***
-| Discover NDR or PDR for IPv4 routing with IPSec SW cryptodev
+| Local template
| | [Documentation]
-| | ... | [Cfg] DUT runs IPSec tunneling AES GCM config with ${wt} thread(s),\
-| | ... | ${wt} phy core(s), ${rxq} receive queue(s) per NIC port.
-| | ... | [Ver] Measure NDR or PDR for ${framesize} by bisecting between\
-| | ... | ${min_rate} and computed max rate, using trial loss rate measurements.
-| | ...
-| | [Arguments] | ${wt} | ${rxq} | ${framesize} | ${min_rate} | ${search_type}
-| | ...
-| | # Test Variables required for test teardown
+| | ... | [Cfg] DUT runs IPSec tunneling AES GCM config.
+| | ... | Each DUT uses ${phy_cores} physical core(s) for worker threads.
+| | ... | [Ver] Find ${search_type} for ${framesize}B frames using binary search\
+| | ... | start at linerate, step ${min_rate}pps.
+| | ...
+| | ... | *Arguments:*
+| | ... | - framesize - Framesize in Bytes in integer or string (IMIX_v4_1).
+| | ... | Type: integer, string
+| | ... | - phy_cores - Number of physical cores. Type: integer
+| | ... | - search_type - NDR or PDR. Type: string
+| | ... | - rxq - Number of RX queues, default value: ${None}. Type: integer
+| | ... | - min_rate - Min rate for binary search, default value: ${50000}.
+| | ... | Type: integer
+| | ...
+| | [Arguments] | ${framesize} | ${phy_cores} | ${search_type}
+| | ... | ${rxq}=${None} | ${min_rate}=${50000}
| | Set Test Variable | ${framesize}
| | Set Test Variable | ${min_rate}
| | ${get_framesize}= | Get Frame Size | ${framesize}
@@ -97,11 +107,12 @@
| | ${encr_alg}= | Crypto Alg AES GCM 128
| | ${auth_alg}= | Integ Alg AES GCM 128
| | ...
-| | Given Add '${wt}' worker threads and '${rxq}' rxqueues in 3-node single-link circular topology
+| | Given Add worker threads and rxqueues to all DUTs | ${phy_cores} | ${rxq}
| | And Add PCI devices to all DUTs
-| | And Add no multi seg to all DUTs
+| | And Run Keyword If | ${get_framesize} + ${ipsec_overhead_gcm} < ${1522}
+| | ... | Add no multi seg to all DUTs
| | And Add DPDK SW cryptodev on DUTs in 3-node single-link circular topology
-| | ... | aesni_gcm | ${${wt}}
+| | ... | aesni_gcm | ${${phy_cores}}
| | And Add DPDK dev default RXD to all DUTs | 2048
| | And Add DPDK dev default TXD to all DUTs | 2048
| | And Apply startup configuration on all VPP DUTs
@@ -124,99 +135,33 @@
*** Test Cases ***
| tc01-64B-1t1c-ethip4ipsecbasetnlsw-ip4base-int-aes-gcm-ndrdisc
-| | [Documentation]
-| | ... | [Cfg] DUTs run 1 IPsec tunnel AES GCM in each direction, configured\
-| | ... | with 1 phy core, 1 receive queue per NIC port.
-| | ... | [Ver] Find NDR for 64 Byte frames\
-| | ... | using binary search start at 40GE linerate, step 50kpps.
-| | ...
| | [Tags] | 64B | 1C | NDRDISC
-| | ...
-| | [Template] | Discover NDR or PDR for IPv4 routing with IPSec SW cryptodev
-| | wt=1 | rxq=1 | framesize=${64} | min_rate=${50000} | search_type=NDR
+| | framesize=${64} | phy_cores=${1} | search_type=NDR
| tc02-64B-1t1c-ethip4ipsecbasetnlsw-ip4base-int-aes-gcm-pdrdisc
-| | [Documentation]
-| | ... | [Cfg] DUTs run 1 IPsec tunnel AES GCM in each direction, configured\
-| | ... | with 1 phy core, 1 receive queue per NIC port.
-| | ... | [Ver] Find PDR for 64 Byte frames using binary search start at 40GE\
-| | ... | linerate, step 50kpps and loss tolerance of 0.5%.
-| | ...
| | [Tags] | 64B | 1C | PDRDISC | SKIP_PATCH
-| | ...
-| | [Template] | Discover NDR or PDR for IPv4 routing with IPSec SW cryptodev
-| | wt=1 | rxq=1 | framesize=${64} | min_rate=${50000} | search_type=PDR
+| | framesize=${64} | phy_cores=${1} | search_type=PDR
| tc03-1518B-1t1c-ethip4ipsecbasetnlsw-ip4base-int-aes-gcm-ndrdisc
-| | [Documentation]
-| | ... | [Cfg] DUTs run 1 IPsec tunnel AES GCM in each direction, configured\
-| | ... | with 1 phy core, 1 receive queue per NIC port.
-| | ... | [Ver] Find NDR for 1518 Byte frames\
-| | ... | using binary search start at 40GE linerate, step 50kpps.
-| | ...
| | [Tags] | 1518B | 1C | NDRDISC
-| | ...
-| | [Template] | Discover NDR or PDR for IPv4 routing with IPSec SW cryptodev
-| | wt=1 | rxq=1 | framesize=${1518} | min_rate=${50000} | search_type=NDR
+| | framesize=${1518} | phy_cores=${1} | search_type=NDR
| tc04-1518B-1t1c-ethip4ipsecbasetnlsw-ip4base-int-aes-gcm-pdrdisc
-| | [Documentation]
-| | ... | [Cfg] DUTs run 1 IPsec tunnel AES GCM in each direction, configured\
-| | ... | with 1 phy core, 1 receive queue per NIC port.
-| | ... | [Ver] Find PDR for 1518 Byte frames using binary search start at 40GE\
-| | ... | linerate, step 50kpps and loss tolerance of 0.5%.
-| | ...
| | [Tags] | 1518B | 1C | PDRDISC | SKIP_PATCH
-| | ...
-| | [Template] | Discover NDR or PDR for IPv4 routing with IPSec SW cryptodev
-| | wt=1 | rxq=1 | framesize=${1518} | min_rate=${50000} | search_type=PDR
+| | framesize=${1518} | phy_cores=${1} | search_type=PDR
| tc05-IMIX-1t1c-ethip4ipsecbasetnlsw-ip4base-int-aes-gcm-ndrdisc
-| | [Documentation]
-| | ... | [Cfg] DUTs run 1 IPsec tunnel AES GCM in each direction, configured\
-| | ... | with 1 phy core, 1 receive queue per NIC port.
-| | ... | [Ver] Find NDR for IMIX_v4_1 frames\
-| | ... | using binary search start at 40GE linerate, step 50kpps.
-| | ... | IMIX_v4_1 = (28x64B; 16x570B; 4x1518B)
-| | ...
| | [Tags] | IMIX | 1C | NDRDISC
-| | ...
-| | [Template] | Discover NDR or PDR for IPv4 routing with IPSec SW cryptodev
-| | wt=1 | rxq=1 | framesize=IMIX_v4_1 | min_rate=${50000} | search_type=NDR
+| | framesize=IMIX_v4_1 | phy_cores=${1} | search_type=NDR
| tc06-IMIX-1t1c-ethip4ipsecbasetnlsw-ip4base-int-aes-gcm-pdrdisc
-| | [Documentation]
-| | ... | [Cfg] DUTs run 1 IPsec tunnel AES GCM in each direction, configured\
-| | ... | with 1 phy core, 1 receive queue per NIC port.
-| | ... | [Ver] Find PDR for IMIX_v4_1 frames using binary search start at 40GE\
-| | ... | linerate, step 50kpps and loss tolerance of 0.5%.
-| | ... | IMIX_v4_1 = (28x64B; 16x570B; 4x1518B)
-| | ...
| | [Tags] | IMIX | 1C | PDRDISC | SKIP_PATCH
-| | ...
-| | [Template] | Discover NDR or PDR for IPv4 routing with IPSec SW cryptodev
-| | wt=1 | rxq=1 | framesize=IMIX_v4_1 | min_rate=${50000} | search_type=PDR
+| | framesize=IMIX_v4_1 | phy_cores=${1} | search_type=PDR
| tc07-64B-2t2c-ethip4ipsecbasetnlsw-ip4base-int-aes-gcm-ndrdisc
-| | [Documentation]
-| | ... | [Cfg] DUTs run 1 IPsec tunnel AES GCM in each direction, configured\
-| | ... | with 2 phy core, 1 receive queue per NIC port.
-| | ... | [Ver] Find NDR for 64 Byte frames\
-| | ... | using binary search start at 40GE linerate, step 50kpps.
-| | ...
| | [Tags] | 64B | 2C | NDRDISC
-| | ...
-| | [Template] | Discover NDR or PDR for IPv4 routing with IPSec SW cryptodev
-| | wt=2 | rxq=1 | framesize=${64} | min_rate=${50000} | search_type=NDR
+| | framesize=${64} | phy_cores=${2} | search_type=NDR
| tc08-64B-2t2c-ethip4ipsecbasetnlsw-ip4base-int-aes-gcm-pdrdisc
-| | [Documentation]
-| | ... | [Cfg] DUTs run 1 IPsec tunnel AES GCM in each direction, configured\
-| | ... | with 2 phy core, 1 receive queue per NIC port.
-| | ... | [Ver] Find PDR for 64 Byte frames using binary search start at 40GE\
-| | ... | linerate, step 50kpps and loss tolerance of 0.5%.
-| | ...
| | [Tags] | 64B | 2C | PDRDISC | SKIP_PATCH
-| | ...
-| | [Template] | Discover NDR or PDR for IPv4 routing with IPSec SW cryptodev
-| | wt=2 | rxq=1 | framesize=${64} | min_rate=${50000} | search_type=PDR
+| | framesize=${64} | phy_cores=${2} | search_type=PDR
diff --git a/tests/vpp/perf/crypto/40ge2p1xl710-ethip4ipsecbasetnlsw-ip4base-int-cbc-sha1-mrr.robot b/tests/vpp/perf/crypto/40ge2p1xl710-ethip4ipsecbasetnlsw-ip4base-int-cbc-sha1-mrr.robot
index 9a9f465b96..22a736b3b2 100644
--- a/tests/vpp/perf/crypto/40ge2p1xl710-ethip4ipsecbasetnlsw-ip4base-int-cbc-sha1-mrr.robot
+++ b/tests/vpp/perf/crypto/40ge2p1xl710-ethip4ipsecbasetnlsw-ip4base-int-cbc-sha1-mrr.robot
@@ -23,8 +23,11 @@
| Suite Teardown | Tear down 3-node performance topology
| ...
| Test Setup | Set up performance test
+| ...
| Test Teardown | Tear down performance mrr test
| ...
+| Test Template | Local template
+| ...
| Documentation | *Raw results IPv4 IPsec tunnel mode performance test suite.*
| ...
| ... | *[Top] Network Topologies:* TG-DUT1-DUT2-TG 3-node circular topology
@@ -67,16 +70,21 @@
| ${traffic_profile}= | trex-sl-3n-ethip4-ip4dst${n_tunnels}
*** Keywords ***
-| Check RR for IPv4 routing with IPSec SW cryptodev
+| Local template
| | [Documentation]
-| | ... | [Cfg] DUT runs IPSec tunneling CBC-SHA1 config with ${wt} thread(s),\
-| | ... | ${wt} phy core(s), ${rxq} receive queue(s) per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for ${framesize} frames using single\
+| | ... | [Cfg] DUT runs IPSec tunneling CBC-SHA1 config.
+| | ... | Each DUT uses ${phy_cores} physical core(s) for worker threads.
+| | ... | [Ver] Measure MaxReceivedRate for ${framesize}B frames using single\
| | ... | trial throughput test.
| | ...
-| | [Arguments] | ${framesize} | ${wt} | ${rxq}
+| | ... | *Arguments:*
+| | ... | - framesize - Framesize in Bytes in integer or string (IMIX_v4_1).
+| | ... | Type: integer, string
+| | ... | - phy_cores - Number of physical cores. Type: integer
+| | ... | - rxq - Number of RX queues, default value: ${None}. Type: integer
+| | ...
+| | [Arguments] | ${framesize} | ${phy_cores} | ${rxq}=${None}
| | ...
-| | # Test Variables required for test teardown
| | Set Test Variable | ${framesize}
| | ${get_framesize}= | Get Frame Size | ${framesize}
| | ${max_rate}= | Calculate pps | ${s_24.5G}
@@ -86,12 +94,12 @@
| | ${encr_alg}= | Crypto Alg AES CBC 128
| | ${auth_alg}= | Integ Alg SHA1 96
| | ...
-| | Given Add '${wt}' worker threads and '${rxq}' rxqueues in 3-node single-link circular topology
+| | Given Add worker threads and rxqueues to all DUTs | ${phy_cores} | ${rxq}
| | And Add PCI devices to all DUTs
-| | And Run Keyword If | ${get_framesize} < ${1522}
+| | And Run Keyword If | ${get_framesize} + ${ipsec_overhead} < ${1522}
| | ... | Add no multi seg to all DUTs
| | And Add DPDK SW cryptodev on DUTs in 3-node single-link circular topology
-| | ... | aesni_mb | ${${wt}}
+| | ... | aesni_mb | ${${phy_cores}}
| | And Add DPDK dev default RXD to all DUTs | 2048
| | And Add DPDK dev default TXD to all DUTs | 2048
| | And Apply startup configuration on all VPP DUTs
@@ -107,106 +115,37 @@
*** Test Cases ***
| tc01-64B-1t1c-ethip4ipsecbasetnlsw-ip4base-int-cbc-sha1-mrr
-| | [Documentation]
-| | ... | [Cfg] DUTs run 1 IPsec tunnel CBC-SHA1 in each direction, configured\
-| | ... | with 1 phy core, 1 receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 64B frames using single trial\
-| | ... | throughput test.
| | [Tags] | 64B | 1C
-| | ...
-| | [Template] | Check RR for IPv4 routing with IPSec SW cryptodev
-| | framesize=${64} | wt=1 | rxq=1
+| | framesize=${64} | phy_cores=${1}
| tc02-1518B-1t1c-ethip4ipsecbasetnlsw-ip4base-int-cbc-sha1-mrr
-| | [Documentation]
-| | ... | [Cfg] DUTs run 1 IPsec tunnel CBC-SHA1 in each direction, configured\
-| | ... | with 1 phy core, 1 receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 1518B frames using single\
-| | ... | trial throughput test.
| | [Tags] | 1518B | 1C
-| | ...
-| | [Template] | Check RR for IPv4 routing with IPSec SW cryptodev
-| | framesize=${1518} | wt=1 | rxq=1
-
-# TODO: Add check to make test fail if rx=0.
-# TODO: Add 9000B test cases when they start passing.
+| | framesize=${1518} | phy_cores=${1}
| tc04-IMIX-1t1c-ethip4ipsecbasetnlsw-ip4base-int-cbc-sha1-mrr
-| | [Documentation]
-| | ... | [Cfg] DUTs run 1 IPsec tunnel CBC-SHA1 in each direction, configured\
-| | ... | with 1 phy core, 1 receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for IMIX_v4_1 frames using single\
-| | ... | trial throughput test.
-| | ... | IMIX_v4_1 = (28x64B; 16x570B; 4x1518B)
| | [Tags] | IMIX | 1C
-| | ...
-| | [Template] | Check RR for IPv4 routing with IPSec SW cryptodev
-| | framesize=IMIX_v4_1 | wt=1 | rxq=1
+| | framesize=IMIX_v4_1 | phy_cores=${1}
| tc05-64B-2t2c-ethip4ipsecbasetnlsw-ip4base-int-cbc-sha1-mrr
-| | [Documentation]
-| | ... | [Cfg] DUTs run 1 IPsec tunnel CBC-SHA1 in each direction, configured\
-| | ... | with 2 phy cores, 1 receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 64B frames using single trial\
-| | ... | throughput test.
| | [Tags] | 64B | 2C
-| | ...
-| | [Template] | Check RR for IPv4 routing with IPSec SW cryptodev
-| | framesize=${64} | wt=2 | rxq=1
+| | framesize=${64} | phy_cores=${2}
| tc06-1518B-2t2c-ethip4ipsecbasetnlsw-ip4base-int-cbc-sha1-mrr
-| | [Documentation]
-| | ... | [Cfg] DUTs run 1 IPsec tunnel CBC-SHA1 in each direction, configured\
-| | ... | with 2 phy cores, 1 receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 1518B frames using single\
-| | ... | trial throughput test.
| | [Tags] | 1518B | 2C
-| | ...
-| | [Template] | Check RR for IPv4 routing with IPSec SW cryptodev
-| | framesize=${1518} | wt=2 | rxq=1
+| | framesize=${1518} | phy_cores=${2}
| tc08-IMIX-2t2c-ethip4ipsecbasetnlsw-ip4base-int-cbc-sha1-mrr
-| | [Documentation]
-| | ... | [Cfg] DUTs run 1 IPsec tunnel CBC-SHA1 in each direction, configured\
-| | ... | with 2 phy cores, 1 receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for IMIX_v4_1 frames using single\
-| | ... | trial throughput test.
-| | ... | IMIX_v4_1 = (28x64B; 16x570B; 4x1518B)
| | [Tags] | IMIX | 2C
-| | ...
-| | [Template] | Check RR for IPv4 routing with IPSec SW cryptodev
-| | framesize=IMIX_v4_1 | wt=2 | rxq=1
+| | framesize=IMIX_v4_1 | phy_cores=${2}
| tc09-64B-4t4c-ethip4ipsecbasetnlsw-ip4base-int-cbc-sha1-mrr
-| | [Documentation]
-| | ... | [Cfg] DUTs run 1 IPsec tunnel CBC-SHA1 in each direction, configured\
-| | ... | with 4 phy cores, 2 receive queues per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 64B frames using single trial\
-| | ... | throughput test.
| | [Tags] | 64B | 4C
-| | ...
-| | [Template] | Check RR for IPv4 routing with IPSec SW cryptodev
-| | framesize=${64} | wt=4 | rxq=2
+| | framesize=${64} | phy_cores=${4}
| tc10-1518B-4t4c-ethip4ipsecbasetnlsw-ip4base-int-cbc-sha1-mrr
-| | [Documentation]
-| | ... | [Cfg] DUTs run 1 IPsec tunnel CBC-SHA1 in each direction, configured\
-| | ... | with 4 phy cores, 2 receive queues per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 1518B frames using single\
-| | ... | trial throughput test.
| | [Tags] | 1518B | 4C
-| | ...
-| | [Template] | Check RR for IPv4 routing with IPSec SW cryptodev
-| | framesize=${1518} | wt=4 | rxq=2
+| | framesize=${1518} | phy_cores=${4}
| tc12-IMIX-4t4c-ethip4ipsecbasetnlsw-ip4base-int-cbc-sha1-mrr
-| | [Documentation]
-| | ... | [Cfg] DUTs run 1 IPsec tunnel CBC-SHA1 in each direction, configured\
-| | ... | with 4 phy cores, 2 receive queues per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for IMIX_v4_1 frames using single\
-| | ... | trial throughput test.
-| | ... | IMIX_v4_1 = (28x64B; 16x570B; 4x1518B)
| | [Tags] | IMIX | 4C
-| | ...
-| | [Template] | Check RR for IPv4 routing with IPSec SW cryptodev
-| | framesize=IMIX_v4_1 | wt=4 | rxq=2
+| | framesize=IMIX_v4_1 | phy_cores=${4}
diff --git a/tests/vpp/perf/crypto/40ge2p1xl710-ethip4ipsecbasetnlsw-ip4base-int-cbc-sha1-ndrpdrdisc.robot b/tests/vpp/perf/crypto/40ge2p1xl710-ethip4ipsecbasetnlsw-ip4base-int-cbc-sha1-ndrpdrdisc.robot
index 150aa333b8..b380afc4b1 100644
--- a/tests/vpp/perf/crypto/40ge2p1xl710-ethip4ipsecbasetnlsw-ip4base-int-cbc-sha1-ndrpdrdisc.robot
+++ b/tests/vpp/perf/crypto/40ge2p1xl710-ethip4ipsecbasetnlsw-ip4base-int-cbc-sha1-ndrpdrdisc.robot
@@ -28,6 +28,8 @@
| Test Teardown | Tear down performance discovery test | ${min_rate}pps
| ... | ${framesize} | ${traffic_profile}
| ...
+| Test Template | Local template
+| ...
| Documentation | *IPv4 IPsec tunnel mode performance test suite.*
| ...
| ... | *[Top] Network Topologies:* TG-DUT1-DUT2-TG 3-node circular topology
@@ -74,16 +76,25 @@
| ${traffic_profile}= | trex-sl-3n-ethip4-ip4dst${n_tunnels}
*** Keywords ***
-| Discover NDR or PDR for IPv4 routing with IPSec SW cryptodev
+| Local template
| | [Documentation]
-| | ... | [Cfg] DUT runs IPSec tunneling CBC-SHA1 config with ${wt} thread(s),\
-| | ... | ${wt} phy core(s), ${rxq} receive queue(s) per NIC port.
-| | ... | [Ver] Measure NDR or PDR for ${framesize} by bisecting between\
-| | ... | ${min_rate} and computed max rate, using trial loss rate measurements.
-| | ...
-| | [Arguments] | ${wt} | ${rxq} | ${framesize} | ${min_rate} | ${search_type}
+| | ... | [Cfg] DUT runs IPSec tunneling CBC-SHA1 config.
+| | ... | Each DUT uses ${phy_cores} physical core(s) for worker threads.
+| | ... | [Ver] Find ${search_type} for ${framesize}B frames using binary search\
+| | ... | start at linerate, step ${min_rate}pps.
+| | ...
+| | ... | *Arguments:*
+| | ... | - framesize - Framesize in Bytes in integer or string (IMIX_v4_1).
+| | ... | Type: integer, string
+| | ... | - phy_cores - Number of physical cores. Type: integer
+| | ... | - search_type - NDR or PDR. Type: string
+| | ... | - rxq - Number of RX queues, default value: ${None}. Type: integer
+| | ... | - min_rate - Min rate for binary search, default value: ${50000}.
+| | ... | Type: integer
+| | ...
+| | [Arguments] | ${framesize} | ${phy_cores} | ${search_type}
+| | ... | ${rxq}=${None} | ${min_rate}=${50000}
| | ...
-| | # Test Variables required for test teardown
| | Set Test Variable | ${framesize}
| | Set Test Variable | ${min_rate}
| | ${get_framesize}= | Get Frame Size | ${framesize}
@@ -97,11 +108,12 @@
| | ${encr_alg}= | Crypto Alg AES CBC 128
| | ${auth_alg}= | Integ Alg SHA1 96
| | ...
-| | Given Add '${wt}' worker threads and '${rxq}' rxqueues in 3-node single-link circular topology
+| | Given Add worker threads and rxqueues to all DUTs | ${phy_cores} | ${rxq}
| | And Add PCI devices to all DUTs
-| | And Add no multi seg to all DUTs
+| | And Run Keyword If | ${get_framesize} + ${ipsec_overhead_gcm} < ${1522}
+| | ... | Add no multi seg to all DUTs
| | And Add DPDK SW cryptodev on DUTs in 3-node single-link circular topology
-| | ... | aesni_mb | ${${wt}}
+| | ... | aesni_mb | ${${phy_cores}}
| | And Add DPDK dev default RXD to all DUTs | 2048
| | And Add DPDK dev default TXD to all DUTs | 2048
| | And Apply startup configuration on all VPP DUTs
@@ -124,99 +136,33 @@
*** Test Cases ***
| tc01-64B-1t1c-ethip4ipsecbasetnlsw-ip4base-int-cbc-sha1-ndrdisc
-| | [Documentation]
-| | ... | [Cfg] DUTs run 1 IPsec tunnel CBC-SHA1 in each direction, configured\
-| | ... | with 1 phy core, 1 receive queue per NIC port.
-| | ... | [Ver] Find NDR for 64 Byte frames\
-| | ... | using binary search start at 40GE linerate, step 50kpps.
-| | ...
| | [Tags] | 64B | 1C | NDRDISC
-| | ...
-| | [Template] | Discover NDR or PDR for IPv4 routing with IPSec SW cryptodev
-| | wt=1 | rxq=1 | framesize=${64} | min_rate=${50000} | search_type=NDR
+| | framesize=${64} | phy_cores=${1} | search_type=NDR
| tc02-64B-1t1c-ethip4ipsecbasetnlsw-ip4base-int-cbc-sha1-pdrdisc
-| | [Documentation]
-| | ... | [Cfg] DUTs run 1 IPsec tunnel CBC-SHA1 in each direction, configured\
-| | ... | with 1 phy core, 1 receive queue per NIC port.
-| | ... | [Ver] Find PDR for 64 Byte frames using binary search start at 40GE\
-| | ... | linerate, step 50kpps and loss tolerance of 0.5%.
-| | ...
| | [Tags] | 64B | 1C | PDRDISC | SKIP_PATCH
-| | ...
-| | [Template] | Discover NDR or PDR for IPv4 routing with IPSec SW cryptodev
-| | wt=1 | rxq=1 | framesize=${64} | min_rate=${50000} | search_type=PDR
+| | framesize=${64} | phy_cores=${1} | search_type=PDR
| tc03-1518B-1t1c-ethip4ipsecbasetnlsw-ip4base-int-cbc-sha1-ndrdisc
-| | [Documentation]
-| | ... | [Cfg] DUTs run 1 IPsec tunnel CBC-SHA1 in each direction, configured\
-| | ... | with 1 phy core, 1 receive queue per NIC port.
-| | ... | [Ver] Find NDR for 1518 Byte frames\
-| | ... | using binary search start at 40GE linerate, step 50kpps.
-| | ...
| | [Tags] | 1518B | 1C | NDRDISC
-| | ...
-| | [Template] | Discover NDR or PDR for IPv4 routing with IPSec SW cryptodev
-| | wt=1 | rxq=1 | framesize=${1518} | min_rate=${50000} | search_type=NDR
+| | framesize=${1518} | phy_cores=${1} | search_type=NDR
| tc04-1518B-1t1c-ethip4ipsecbasetnlsw-ip4base-int-cbc-sha1-pdrdisc
-| | [Documentation]
-| | ... | [Cfg] DUTs run 1 IPsec tunnel CBC-SHA1 in each direction, configured\
-| | ... | with 1 phy core, 1 receive queue per NIC port.
-| | ... | [Ver] Find PDR for 1518 Byte frames using binary search start at 40GE\
-| | ... | linerate, step 50kpps and loss tolerance of 0.5%.
-| | ...
| | [Tags] | 1518B | 1C | PDRDISC | SKIP_PATCH
-| | ...
-| | [Template] | Discover NDR or PDR for IPv4 routing with IPSec SW cryptodev
-| | wt=1 | rxq=1 | framesize=${1518} | min_rate=${50000} | search_type=PDR
+| | framesize=${1518} | phy_cores=${1} | search_type=PDR
| tc05-IMIX-1t1c-ethip4ipsecbasetnlsw-ip4base-int-cbc-sha1-ndrdisc
-| | [Documentation]
-| | ... | [Cfg] DUTs run 1 IPsec tunnel CBC-SHA1 in each direction, configured\
-| | ... | with 1 phy core, 1 receive queue per NIC port.
-| | ... | [Ver] Find NDR for IMIX_v4_1 frames\
-| | ... | using binary search start at 40GE linerate, step 50kpps.
-| | ... | IMIX_v4_1 = (28x64B; 16x570B; 4x1518B)
-| | ...
| | [Tags] | IMIX | 1C | NDRDISC
-| | ...
-| | [Template] | Discover NDR or PDR for IPv4 routing with IPSec SW cryptodev
-| | wt=1 | rxq=1 | framesize=IMIX_v4_1 | min_rate=${50000} | search_type=NDR
+| | framesize=IMIX_v4_1 | phy_cores=${1} | search_type=NDR
| tc06-IMIX-1t1c-ethip4ipsecbasetnlsw-ip4base-int-cbc-sha1-pdrdisc
-| | [Documentation]
-| | ... | [Cfg] DUTs run 1 IPsec tunnel CBC-SHA1 in each direction, configured\
-| | ... | with 1 phy core, 1 receive queue per NIC port.
-| | ... | [Ver] Find PDR for IMIX_v4_1 frames using binary search start at 40GE\
-| | ... | linerate, step 50kpps and loss tolerance of 0.5%.
-| | ... | IMIX_v4_1 = (28x64B; 16x570B; 4x1518B)
-| | ...
| | [Tags] | IMIX | 1C | PDRDISC | SKIP_PATCH
-| | ...
-| | [Template] | Discover NDR or PDR for IPv4 routing with IPSec SW cryptodev
-| | wt=1 | rxq=1 | framesize=IMIX_v4_1 | min_rate=${50000} | search_type=PDR
+| | framesize=IMIX_v4_1 | phy_cores=${1} | search_type=PDR
| tc07-64B-2t2c-ethip4ipsecbasetnlsw-ip4base-int-cbc-sha1-ndrdisc
-| | [Documentation]
-| | ... | [Cfg] DUTs run 1 IPsec tunnel CBC-SHA1 in each direction, configured\
-| | ... | with 2 phy core, 1 receive queue per NIC port.
-| | ... | [Ver] Find NDR for 64 Byte frames\
-| | ... | using binary search start at 40GE linerate, step 50kpps.
-| | ...
| | [Tags] | 64B | 2C | NDRDISC
-| | ...
-| | [Template] | Discover NDR or PDR for IPv4 routing with IPSec SW cryptodev
-| | wt=2 | rxq=1 | framesize=${64} | min_rate=${50000} | search_type=NDR
+| | framesize=${64} | phy_cores=${2} | search_type=NDR
| tc08-64B-2t2c-ethip4ipsecbasetnlsw-ip4base-int-cbc-sha1-pdrdisc
-| | [Documentation]
-| | ... | [Cfg] DUTs run 1 IPsec tunnel CBC-SHA1 in each direction, configured\
-| | ... | with 2 phy core, 1 receive queue per NIC port.
-| | ... | [Ver] Find PDR for 64 Byte frames using binary search start at 40GE\
-| | ... | linerate, step 50kpps and loss tolerance of 0.5%.
-| | ...
| | [Tags] | 64B | 2C | PDRDISC | SKIP_PATCH
-| | ...
-| | [Template] | Discover NDR or PDR for IPv4 routing with IPSec SW cryptodev
-| | wt=2 | rxq=1 | framesize=${64} | min_rate=${50000} | search_type=PDR
+| | framesize=${64} | phy_cores=${2} | search_type=PDR
diff --git a/tests/vpp/perf/crypto/40ge2p1xl710-ethip4ipsecbasetnlsw-ip4base-tnl-aes-gcm-ndrpdrdisc.robot b/tests/vpp/perf/crypto/40ge2p1xl710-ethip4ipsecbasetnlsw-ip4base-tnl-aes-gcm-ndrpdrdisc.robot
index 7276e2e959..74669e74c2 100644
--- a/tests/vpp/perf/crypto/40ge2p1xl710-ethip4ipsecbasetnlsw-ip4base-tnl-aes-gcm-ndrpdrdisc.robot
+++ b/tests/vpp/perf/crypto/40ge2p1xl710-ethip4ipsecbasetnlsw-ip4base-tnl-aes-gcm-ndrpdrdisc.robot
@@ -28,6 +28,8 @@
| Test Teardown | Tear down performance discovery test | ${min_rate}pps
| ... | ${framesize} | ${traffic_profile}
| ...
+| Test Template | Local template
+| ...
| Documentation | *IPv4 IPsec tunnel mode performance test suite.*
| ...
| ... | *[Top] Network Topologies:* TG-DUT1-DUT2-TG 3-node circular topology
@@ -74,16 +76,25 @@
| ${traffic_profile}= | trex-sl-3n-ethip4-ip4dst${n_tunnels}
*** Keywords ***
-| Discover NDR or PDR for IPv4 routing with IPSec SW cryptodev
+| Local template
| | [Documentation]
-| | ... | [Cfg] DUT runs IPSec tunneling AES GCM config with ${wt} thread(s),\
-| | ... | ${wt} phy core(s), ${rxq} receive queue(s) per NIC port.
-| | ... | [Ver] Measure NDR or PDR for ${framesize} by bisecting between\
-| | ... | ${min_rate} and computed max rate, using trial loss rate measurements.
-| | ...
-| | [Arguments] | ${wt} | ${rxq} | ${framesize} | ${min_rate} | ${search_type}
+| | ... | [Cfg] DUT runs IPSec tunneling AES GCM config.
+| | ... | Each DUT uses ${phy_cores} physical core(s) for worker threads.
+| | ... | [Ver] Find ${search_type} for ${framesize}B frames using binary search\
+| | ... | start at linerate, step ${min_rate}pps.
+| | ...
+| | ... | *Arguments:*
+| | ... | - framesize - Framesize in Bytes in integer or string (IMIX_v4_1).
+| | ... | Type: integer, string
+| | ... | - phy_cores - Number of physical cores. Type: integer
+| | ... | - search_type - NDR or PDR. Type: string
+| | ... | - rxq - Number of RX queues, default value: ${None}. Type: integer
+| | ... | - min_rate - Min rate for binary search, default value: ${50000}.
+| | ... | Type: integer
+| | ...
+| | [Arguments] | ${framesize} | ${phy_cores} | ${search_type}
+| | ... | ${rxq}=${None} | ${min_rate}=${50000}
| | ...
-| | # Test Variables required for test teardown
| | Set Test Variable | ${framesize}
| | Set Test Variable | ${min_rate}
| | ${get_framesize}= | Get Frame Size | ${framesize}
@@ -97,11 +108,12 @@
| | ${encr_alg}= | Crypto Alg AES GCM 128
| | ${auth_alg}= | Integ Alg AES GCM 128
| | ...
-| | Given Add '${wt}' worker threads and '${rxq}' rxqueues in 3-node single-link circular topology
+| | Given Add worker threads and rxqueues to all DUTs | ${phy_cores} | ${rxq}
| | And Add PCI devices to all DUTs
-| | And Add no multi seg to all DUTs
+| | And Run Keyword If | ${get_framesize} + ${ipsec_overhead_gcm} < ${1522}
+| | ... | Add no multi seg to all DUTs
| | And Add DPDK SW cryptodev on DUTs in 3-node single-link circular topology
-| | ... | aesni_gcm | ${${wt}}
+| | ... | aesni_gcm | ${${phy_cores}}
| | And Add DPDK dev default RXD to all DUTs | 2048
| | And Add DPDK dev default TXD to all DUTs | 2048
| | And Apply startup configuration on all VPP DUTs
@@ -129,99 +141,33 @@
*** Test Cases ***
| tc01-64B-1t1c-ethip4ipsecbasetnlsw-ip4base-tnl-aes-gcm-ndrdisc
-| | [Documentation]
-| | ... | [Cfg] DUTs run 1 IPsec tunnel AES GCM in each direction, configured\
-| | ... | with 1 phy core, 1 receive queue per NIC port.
-| | ... | [Ver] Find NDR for 64 Byte frames\
-| | ... | using binary search start at 40GE linerate, step 50kpps.
-| | ...
| | [Tags] | 64B | 1C | NDRDISC
-| | ...
-| | [Template] | Discover NDR or PDR for IPv4 routing with IPSec SW cryptodev
-| | wt=1 | rxq=1 | framesize=${64} | min_rate=${50000} | search_type=NDR
+| | framesize=${64} | phy_cores=${1} | search_type=NDR
| tc02-64B-1t1c-ethip4ipsecbasetnlsw-ip4base-tnl-aes-gcm-pdrdisc
-| | [Documentation]
-| | ... | [Cfg] DUTs run 1 IPsec tunnel AES GCM in each direction, configured\
-| | ... | with 1 phy core, 1 receive queue per NIC port.
-| | ... | [Ver] Find PDR for 64 Byte frames using binary search start at 40GE\
-| | ... | linerate, step 50kpps and loss tolerance of 0.5%.
-| | ...
| | [Tags] | 64B | 1C | PDRDISC | SKIP_PATCH
-| | ...
-| | [Template] | Discover NDR or PDR for IPv4 routing with IPSec SW cryptodev
-| | wt=1 | rxq=1 | framesize=${64} | min_rate=${50000} | search_type=PDR
+| | framesize=${64} | phy_cores=${1} | search_type=PDR
| tc03-1518B-1t1c-ethip4ipsecbasetnlsw-ip4base-tnl-aes-gcm-ndrdisc
-| | [Documentation]
-| | ... | [Cfg] DUTs run 1 IPsec tunnel AES GCM in each direction, configured\
-| | ... | with 1 phy core, 1 receive queue per NIC port.
-| | ... | [Ver] Find NDR for 1518 Byte frames\
-| | ... | using binary search start at 40GE linerate, step 50kpps.
-| | ...
| | [Tags] | 1518B | 1C | NDRDISC
-| | ...
-| | [Template] | Discover NDR or PDR for IPv4 routing with IPSec SW cryptodev
-| | wt=1 | rxq=1 | framesize=${1518} | min_rate=${50000} | search_type=NDR
+| | framesize=${1518} | phy_cores=${1} | search_type=NDR
| tc04-1518B-1t1c-ethip4ipsecbasetnlsw-ip4base-tnl-aes-gcm-pdrdisc
-| | [Documentation]
-| | ... | [Cfg] DUTs run 1 IPsec tunnel AES GCM in each direction, configured\
-| | ... | with 1 phy core, 1 receive queue per NIC port.
-| | ... | [Ver] Find PDR for 1518 Byte frames using binary search start at 40GE\
-| | ... | linerate, step 50kpps and loss tolerance of 0.5%.
-| | ...
| | [Tags] | 1518B | 1C | PDRDISC | SKIP_PATCH
-| | ...
-| | [Template] | Discover NDR or PDR for IPv4 routing with IPSec SW cryptodev
-| | wt=1 | rxq=1 | framesize=${1518} | min_rate=${50000} | search_type=PDR
+| | framesize=${1518} | phy_cores=${1} | search_type=PDR
| tc05-IMIX-1t1c-ethip4ipsecbasetnlsw-ip4base-tnl-aes-gcm-ndrdisc
-| | [Documentation]
-| | ... | [Cfg] DUTs run 1 IPsec tunnel AES GCM in each direction, configured\
-| | ... | with 1 phy core, 1 receive queue per NIC port.
-| | ... | [Ver] Find NDR for IMIX_v4_1 frames\
-| | ... | using binary search start at 40GE linerate, step 50kpps.
-| | ... | IMIX_v4_1 = (28x64B; 16x570B; 4x1518B)
-| | ...
| | [Tags] | IMIX | 1C | NDRDISC
-| | ...
-| | [Template] | Discover NDR or PDR for IPv4 routing with IPSec SW cryptodev
-| | wt=1 | rxq=1 | framesize=IMIX_v4_1 | min_rate=${50000} | search_type=NDR
+| | framesize=IMIX_v4_1 | phy_cores=${1} | search_type=NDR
| tc06-IMIX-1t1c-ethip4ipsecbasetnlsw-ip4base-tnl-aes-gcm-pdrdisc
-| | [Documentation]
-| | ... | [Cfg] DUTs run 1 IPsec tunnel AES GCM in each direction, configured\
-| | ... | with 1 phy core, 1 receive queue per NIC port.
-| | ... | [Ver] Find PDR for IMIX_v4_1 frames using binary search start at 40GE\
-| | ... | linerate, step 50kpps and loss tolerance of 0.5%.
-| | ... | IMIX_v4_1 = (28x64B; 16x570B; 4x1518B)
-| | ...
| | [Tags] | IMIX | 1C | PDRDISC | SKIP_PATCH
-| | ...
-| | [Template] | Discover NDR or PDR for IPv4 routing with IPSec SW cryptodev
-| | wt=1 | rxq=1 | framesize=IMIX_v4_1 | min_rate=${50000} | search_type=PDR
+| | framesize=IMIX_v4_1 | phy_cores=${1} | search_type=PDR
| tc07-64B-2t2c-ethip4ipsecbasetnlsw-ip4base-tnl-aes-gcm-ndrdisc
-| | [Documentation]
-| | ... | [Cfg] DUTs run 1 IPsec tunnel AES GCM in each direction, configured\
-| | ... | with 2 phy core, 1 receive queue per NIC port.
-| | ... | [Ver] Find NDR for 64 Byte frames\
-| | ... | using binary search start at 40GE linerate, step 50kpps.
-| | ...
| | [Tags] | 64B | 2C | NDRDISC
-| | ...
-| | [Template] | Discover NDR or PDR for IPv4 routing with IPSec SW cryptodev
-| | wt=2 | rxq=1 | framesize=${64} | min_rate=${50000} | search_type=NDR
+| | framesize=${64} | phy_cores=${2} | search_type=NDR
| tc08-64B-2t2c-ethip4ipsecbasetnlsw-ip4base-tnl-aes-gcm-pdrdisc
-| | [Documentation]
-| | ... | [Cfg] DUTs run 1 IPsec tunnel AES GCM in each direction, configured\
-| | ... | with 2 phy core, 1 receive queue per NIC port.
-| | ... | [Ver] Find PDR for 64 Byte frames using binary search start at 40GE\
-| | ... | linerate, step 50kpps and loss tolerance of 0.5%.
-| | ...
| | [Tags] | 64B | 2C | PDRDISC | SKIP_PATCH
-| | ...
-| | [Template] | Discover NDR or PDR for IPv4 routing with IPSec SW cryptodev
-| | wt=2 | rxq=1 | framesize=${64} | min_rate=${50000} | search_type=PDR
+| | framesize=${64} | phy_cores=${2} | search_type=PDR
diff --git a/tests/vpp/perf/crypto/40ge2p1xl710-ethip4ipsecbasetnlsw-ip4base-tnl-cbc-sha1-ndrpdrdisc.robot b/tests/vpp/perf/crypto/40ge2p1xl710-ethip4ipsecbasetnlsw-ip4base-tnl-cbc-sha1-ndrpdrdisc.robot
index 2447fbf992..f8d695323f 100644
--- a/tests/vpp/perf/crypto/40ge2p1xl710-ethip4ipsecbasetnlsw-ip4base-tnl-cbc-sha1-ndrpdrdisc.robot
+++ b/tests/vpp/perf/crypto/40ge2p1xl710-ethip4ipsecbasetnlsw-ip4base-tnl-cbc-sha1-ndrpdrdisc.robot
@@ -28,6 +28,8 @@
| Test Teardown | Tear down performance discovery test | ${min_rate}pps
| ... | ${framesize} | ${traffic_profile}
| ...
+| Test Template | Local template
+| ...
| Documentation | *IPv4 IPsec tunnel mode performance test suite.*
| ...
| ... | *[Top] Network Topologies:* TG-DUT1-DUT2-TG 3-node circular topology
@@ -74,16 +76,25 @@
| ${traffic_profile}= | trex-sl-3n-ethip4-ip4dst${n_tunnels}
*** Keywords ***
-| Discover NDR or PDR for IPv4 routing with IPSec SW cryptodev
+| Local template
| | [Documentation]
-| | ... | [Cfg] DUT runs IPSec tunneling CBC-SHA1 config with ${wt} thread(s),\
-| | ... | ${wt} phy core(s), ${rxq} receive queue(s) per NIC port.
-| | ... | [Ver] Measure NDR or PDR for ${framesize} by bisecting between\
-| | ... | ${min_rate} and computed max rate, using trial loss rate measurements.
-| | ...
-| | [Arguments] | ${wt} | ${rxq} | ${framesize} | ${min_rate} | ${search_type}
+| | ... | [Cfg] DUT runs IPSec tunneling CBC-SHA1 config.
+| | ... | Each DUT uses ${phy_cores} physical core(s) for worker threads.
+| | ... | [Ver] Find ${search_type} for ${framesize}B frames using binary search\
+| | ... | start at linerate, step ${min_rate}pps.
+| | ...
+| | ... | *Arguments:*
+| | ... | - framesize - Framesize in Bytes in integer or string (IMIX_v4_1).
+| | ... | Type: integer, string
+| | ... | - phy_cores - Number of physical cores. Type: integer
+| | ... | - search_type - NDR or PDR. Type: string
+| | ... | - rxq - Number of RX queues, default value: ${None}. Type: integer
+| | ... | - min_rate - Min rate for binary search, default value: ${50000}.
+| | ... | Type: integer
+| | ...
+| | [Arguments] | ${phy_cores} | ${framesize} | ${search_type}
+| | ... | ${rxq}=${None} | ${min_rate}=${50000}
| | ...
-| | # Test Variables required for test teardown
| | Set Test Variable | ${framesize}
| | Set Test Variable | ${min_rate}
| | ${get_framesize}= | Get Frame Size | ${framesize}
@@ -97,11 +108,12 @@
| | ${encr_alg}= | Crypto Alg AES CBC 128
| | ${auth_alg}= | Integ Alg SHA1 96
| | ...
-| | Given Add '${wt}' worker threads and '${rxq}' rxqueues in 3-node single-link circular topology
+| | Given Add worker threads and rxqueues to all DUTs | ${phy_cores} | ${rxq}
| | And Add PCI devices to all DUTs
-| | And Add no multi seg to all DUTs
+| | And Run Keyword If | ${get_framesize} + ${ipsec_overhead_gcm} < ${1522}
+| | ... | Add no multi seg to all DUTs
| | And Add DPDK SW cryptodev on DUTs in 3-node single-link circular topology
-| | ... | aesni_mb | ${${wt}}
+| | ... | aesni_mb | ${${phy_cores}}
| | And Add DPDK dev default RXD to all DUTs | 2048
| | And Add DPDK dev default TXD to all DUTs | 2048
| | And Apply startup configuration on all VPP DUTs
@@ -129,99 +141,33 @@
*** Test Cases ***
| tc01-64B-1t1c-ethip4ipsecbasetnlsw-ip4base-tnl-cbc-sha1-ndrdisc
-| | [Documentation]
-| | ... | [Cfg] DUTs run 1 IPsec tunnel CBC-SHA1 in each direction, configured\
-| | ... | with 1 phy core, 1 receive queue per NIC port.
-| | ... | [Ver] Find NDR for 64 Byte frames\
-| | ... | using binary search start at 40GE linerate, step 50kpps.
-| | ...
| | [Tags] | 64B | 1C | NDRDISC
-| | ...
-| | [Template] | Discover NDR or PDR for IPv4 routing with IPSec SW cryptodev
-| | wt=1 | rxq=1 | framesize=${64} | min_rate=${50000} | search_type=NDR
+| | phy_cores=${1} | framesize=${64} | search_type=NDR
| tc02-64B-1t1c-ethip4ipsecbasetnlsw-ip4base-tnl-cbc-sha1-pdrdisc
-| | [Documentation]
-| | ... | [Cfg] DUTs run 1 IPsec tunnel CBC-SHA1 in each direction, configured\
-| | ... | with 1 phy core, 1 receive queue per NIC port.
-| | ... | [Ver] Find PDR for 64 Byte frames using binary search start at 40GE\
-| | ... | linerate, step 50kpps and loss tolerance of 0.5%.
-| | ...
| | [Tags] | 64B | 1C | PDRDISC | SKIP_PATCH
-| | ...
-| | [Template] | Discover NDR or PDR for IPv4 routing with IPSec SW cryptodev
-| | wt=1 | rxq=1 | framesize=${64} | min_rate=${50000} | search_type=PDR
+| | phy_cores=${1} | framesize=${64} | search_type=PDR
| tc03-1518B-1t1c-ethip4ipsecbasetnlsw-ip4base-tnl-cbc-sha1-ndrdisc
-| | [Documentation]
-| | ... | [Cfg] DUTs run 1 IPsec tunnel CBC-SHA1 in each direction, configured\
-| | ... | with 1 phy core, 1 receive queue per NIC port.
-| | ... | [Ver] Find NDR for 1518 Byte frames\
-| | ... | using binary search start at 40GE linerate, step 50kpps.
-| | ...
| | [Tags] | 1518B | 1C | NDRDISC
-| | ...
-| | [Template] | Discover NDR or PDR for IPv4 routing with IPSec SW cryptodev
-| | wt=1 | rxq=1 | framesize=${1518} | min_rate=${50000} | search_type=NDR
+| | phy_cores=${1} | framesize=${1518} | search_type=NDR
| tc04-1518B-1t1c-ethip4ipsecbasetnlsw-ip4base-tnl-cbc-sha1-pdrdisc
-| | [Documentation]
-| | ... | [Cfg] DUTs run 1 IPsec tunnel CBC-SHA1 in each direction, configured\
-| | ... | with 1 phy core, 1 receive queue per NIC port.
-| | ... | [Ver] Find PDR for 1518 Byte frames using binary search start at 40GE\
-| | ... | linerate, step 50kpps and loss tolerance of 0.5%.
-| | ...
| | [Tags] | 1518B | 1C | PDRDISC | SKIP_PATCH
-| | ...
-| | [Template] | Discover NDR or PDR for IPv4 routing with IPSec SW cryptodev
-| | wt=1 | rxq=1 | framesize=${1518} | min_rate=${50000} | search_type=PDR
+| | phy_cores=${1} | framesize=${1518} | search_type=PDR
| tc05-IMIX-1t1c-ethip4ipsecbasetnlsw-ip4base-tnl-cbc-sha1-ndrdisc
-| | [Documentation]
-| | ... | [Cfg] DUTs run 1 IPsec tunnel CBC-SHA1 in each direction, configured\
-| | ... | with 1 phy core, 1 receive queue per NIC port.
-| | ... | [Ver] Find NDR for IMIX_v4_1 frames\
-| | ... | using binary search start at 40GE linerate, step 50kpps.
-| | ... | IMIX_v4_1 = (28x64B; 16x570B; 4x1518B)
-| | ...
| | [Tags] | IMIX | 1C | NDRDISC
-| | ...
-| | [Template] | Discover NDR or PDR for IPv4 routing with IPSec SW cryptodev
-| | wt=1 | rxq=1 | framesize=IMIX_v4_1 | min_rate=${50000} | search_type=NDR
+| | phy_cores=${1} | framesize=IMIX_v4_1 | search_type=NDR
| tc06-IMIX-1t1c-ethip4ipsecbasetnlsw-ip4base-tnl-cbc-sha1-pdrdisc
-| | [Documentation]
-| | ... | [Cfg] DUTs run 1 IPsec tunnel CBC-SHA1 in each direction, configured\
-| | ... | with 1 phy core, 1 receive queue per NIC port.
-| | ... | [Ver] Find PDR for IMIX_v4_1 frames using binary search start at 40GE\
-| | ... | linerate, step 50kpps and loss tolerance of 0.5%.
-| | ... | IMIX_v4_1 = (28x64B; 16x570B; 4x1518B)
-| | ...
| | [Tags] | IMIX | 1C | PDRDISC | SKIP_PATCH
-| | ...
-| | [Template] | Discover NDR or PDR for IPv4 routing with IPSec SW cryptodev
-| | wt=1 | rxq=1 | framesize=IMIX_v4_1 | min_rate=${50000} | search_type=PDR
+| | phy_cores=${1} | framesize=IMIX_v4_1 | search_type=PDR
| tc07-64B-2t2c-ethip4ipsecbasetnlsw-ip4base-tnl-cbc-sha1-ndrdisc
-| | [Documentation]
-| | ... | [Cfg] DUTs run 1 IPsec tunnel CBC-SHA1 in each direction, configured\
-| | ... | with 2 phy core, 1 receive queue per NIC port.
-| | ... | [Ver] Find NDR for 64 Byte frames\
-| | ... | using binary search start at 40GE linerate, step 50kpps.
-| | ...
| | [Tags] | 64B | 2C | NDRDISC
-| | ...
-| | [Template] | Discover NDR or PDR for IPv4 routing with IPSec SW cryptodev
-| | wt=2 | rxq=1 | framesize=${64} | min_rate=${50000} | search_type=NDR
+| | phy_cores=${2} | framesize=${64} | search_type=NDR
| tc08-64B-2t2c-ethip4ipsecbasetnlsw-ip4base-tnl-cbc-sha1-pdrdisc
-| | [Documentation]
-| | ... | [Cfg] DUTs run 1 IPsec tunnel CBC-SHA1 in each direction, configured\
-| | ... | with 2 phy core, 1 receive queue per NIC port.
-| | ... | [Ver] Find PDR for 64 Byte frames using binary search start at 40GE\
-| | ... | linerate, step 50kpps and loss tolerance of 0.5%.
-| | ...
| | [Tags] | 64B | 2C | PDRDISC | SKIP_PATCH
-| | ...
-| | [Template] | Discover NDR or PDR for IPv4 routing with IPSec SW cryptodev
-| | wt=2 | rxq=1 | framesize=${64} | min_rate=${50000} | search_type=PDR
+| | phy_cores=${2} | framesize=${64} | search_type=PDR
diff --git a/tests/vpp/perf/crypto/40ge2p1xl710-ethip4ipsecscale1000tnl-ip4base-int-aes-gcm-mrr.robot b/tests/vpp/perf/crypto/40ge2p1xl710-ethip4ipsecscale1000tnl-ip4base-int-aes-gcm-mrr.robot
index 9bdb1c586c..d671121c4a 100644
--- a/tests/vpp/perf/crypto/40ge2p1xl710-ethip4ipsecscale1000tnl-ip4base-int-aes-gcm-mrr.robot
+++ b/tests/vpp/perf/crypto/40ge2p1xl710-ethip4ipsecscale1000tnl-ip4base-int-aes-gcm-mrr.robot
@@ -23,8 +23,11 @@
| Suite Teardown | Tear down 3-node performance topology
| ...
| Test Setup | Set up performance test
+| ...
| Test Teardown | Tear down performance mrr test
| ...
+| Test Template | Local template
+| ...
| Documentation | *Raw results IPv4 IPsec tunnel mode performance test suite.*
| ...
| ... | *[Top] Network Topologies:* TG-DUT1-DUT2-TG 3-node circular topology
@@ -66,16 +69,21 @@
| ${traffic_profile}= | trex-sl-3n-ethip4-ip4dst${n_tunnels}
*** Keywords ***
-| Check RR for IPv4 routing with IPSec HW cryptodev
+| Local template
| | [Documentation]
-| | ... | [Cfg] DUT runs IPSec tunneling AES GCM config with ${wt} thread(s),\
-| | ... | ${wt} phy core(s), ${rxq} receive queue(s) per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for ${framesize} frames using single\
+| | ... | [Cfg] DUT runs IPSec tunneling AES GCM config.
+| | ... | Each DUT uses ${phy_cores} physical core(s) for worker threads.
+| | ... | [Ver] Measure MaxReceivedRate for ${framesize}B frames using single\
| | ... | trial throughput test.
| | ...
-| | [Arguments] | ${framesize} | ${wt} | ${rxq}
+| | ... | *Arguments:*
+| | ... | - framesize - Framesize in Bytes in integer or string (IMIX_v4_1).
+| | ... | Type: integer, string
+| | ... | - phy_cores - Number of physical cores. Type: integer
+| | ... | - rxq - Number of RX queues, default value: ${None}. Type: integer
+| | ...
+| | [Arguments] | ${framesize} | ${phy_cores} | ${rxq}=${None}
| | ...
-| | # Test Variables required for test teardown
| | Set Test Variable | ${framesize}
| | ${get_framesize}= | Get Frame Size | ${framesize}
| | ${max_rate}= | Calculate pps | ${s_24.5G}
@@ -85,11 +93,11 @@
| | ${encr_alg}= | Crypto Alg AES GCM 128
| | ${auth_alg}= | Integ Alg AES GCM 128
| | ...
-| | Given Add '${wt}' worker threads and '${rxq}' rxqueues in 3-node single-link circular topology
+| | Given Add worker threads and rxqueues to all DUTs | ${phy_cores} | ${rxq}
| | And Add PCI devices to all DUTs
-| | And Run Keyword If | ${get_framesize} < ${1522}
+| | And Run Keyword If | ${get_framesize} + ${ipsec_overhead} < ${1522}
| | ... | Add no multi seg to all DUTs
-| | And Add cryptodev to all DUTs | ${${wt}}
+| | And Add cryptodev to all DUTs | ${${phy_cores}}
| | And Add DPDK dev default RXD to all DUTs | 2048
| | And Add DPDK dev default TXD to all DUTs | 2048
| | And Apply startup configuration on all VPP DUTs
@@ -105,106 +113,37 @@
*** Test Cases ***
| tc01-64B-1t1c-ethip4ipsecscale1000tnl-ip4base-int-aes-gcm-mrr
-| | [Documentation]
-| | ... | [Cfg] DUTs run 1000 IPsec tunnels AES GCM in each direction,\
-| | ... | configured with 1 phy core, 1 receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 64B frames using single trial\
-| | ... | throughput test.
| | [Tags] | 64B | 1C
-| | ...
-| | [Template] | Check RR for IPv4 routing with IPSec HW cryptodev
-| | framesize=${64} | wt=1 | rxq=1
+| | framesize=${64} | phy_cores=${1}
| tc02-1518B-1t1c-ethip4ipsecscale1000tnl-ip4base-int-aes-gcm-mrr
-| | [Documentation]
-| | ... | [Cfg] DUTs run 1000 IPsec tunnels AES GCM in each direction,\
-| | ... | configured with 1 phy core, 1 receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 1518B frames using single\
-| | ... | trial throughput test.
| | [Tags] | 1518B | 1C
-| | ...
-| | [Template] | Check RR for IPv4 routing with IPSec HW cryptodev
-| | framesize=${1518} | wt=1 | rxq=1
-
-# TODO: Add check to make test fail if rx=0.
-# TODO: Add 9000B test cases when they start passing.
+| | framesize=${1518} | phy_cores=${1}
| tc04-IMIX-1t1c-ethip4ipsecscale1000tnl-ip4base-int-aes-gcm-mrr
-| | [Documentation]
-| | ... | [Cfg] DUTs run 1000 IPsec tunnels AES GCM in each direction,\
-| | ... | configured with 1 phy core, 1 receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for IMIX_v4_1 frames using single\
-| | ... | trial throughput test.
-| | ... | IMIX_v4_1 = (28x64B; 16x570B; 4x1518B)
| | [Tags] | IMIX | 1C
-| | ...
-| | [Template] | Check RR for IPv4 routing with IPSec HW cryptodev
-| | framesize=IMIX_v4_1 | wt=1 | rxq=1
+| | framesize=IMIX_v4_1 | phy_cores=${1}
| tc05-64B-2t2c-ethip4ipsecscale1000tnl-ip4base-int-aes-gcm-mrr
-| | [Documentation]
-| | ... | [Cfg] DUTs run 1000 IPsec tunnels AES GCM in each direction,\
-| | ... | configured with 2 phy cores, 1 receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 64B frames using single trial\
-| | ... | throughput test.
| | [Tags] | 64B | 2C
-| | ...
-| | [Template] | Check RR for IPv4 routing with IPSec HW cryptodev
-| | framesize=${64} | wt=2 | rxq=1
+| | framesize=${64} | phy_cores=${2}
| tc06-1518B-2t2c-ethip4ipsecscale1000tnl-ip4base-int-aes-gcm-mrr
-| | [Documentation]
-| | ... | [Cfg] DUTs run 1000 IPsec tunnels AES GCM in each direction,\
-| | ... | configured with 2 phy cores, 1 receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 1518B frames using single\
-| | ... | trial throughput test.
| | [Tags] | 1518B | 2C
-| | ...
-| | [Template] | Check RR for IPv4 routing with IPSec HW cryptodev
-| | framesize=${1518} | wt=2 | rxq=1
+| | framesize=${1518} | phy_cores=${2}
| tc08-IMIX-2t2c-ethip4ipsecscale1000tnl-ip4base-int-aes-gcm-mrr
-| | [Documentation]
-| | ... | [Cfg] DUTs run 1000 IPsec tunnels AES GCM in each direction,\
-| | ... | configured with 2 phy cores, 1 receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for IMIX_v4_1 frames using single\
-| | ... | trial throughput test.
-| | ... | IMIX_v4_1 = (28x64B; 16x570B; 4x1518B)
| | [Tags] | IMIX | 2C
-| | ...
-| | [Template] | Check RR for IPv4 routing with IPSec HW cryptodev
-| | framesize=IMIX_v4_1 | wt=2 | rxq=1
+| | framesize=IMIX_v4_1 | phy_cores=${2}
| tc09-64B-4t4c-ethip4ipsecscale1000tnl-ip4base-int-aes-gcm-mrr
-| | [Documentation]
-| | ... | [Cfg] DUTs run 1000 IPsec tunnels AES GCM in each direction,\
-| | ... | configured with 4 phy cores, 2 receive queues per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 64B frames using single trial\
-| | ... | throughput test.
| | [Tags] | 64B | 4C
-| | ...
-| | [Template] | Check RR for IPv4 routing with IPSec HW cryptodev
-| | framesize=${64} | wt=4 | rxq=2
+| | framesize=${64} | phy_cores=${4}
| tc10-1518B-4t4c-ethip4ipsecscale1000tnl-ip4base-int-aes-gcm-mrr
-| | [Documentation]
-| | ... | [Cfg] DUTs run 1000 IPsec tunnels AES GCM in each direction,\
-| | ... | configured with 4 phy cores, 2 receive queues per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 1518B frames using single\
-| | ... | trial throughput test.
| | [Tags] | 1518B | 4C
-| | ...
-| | [Template] | Check RR for IPv4 routing with IPSec HW cryptodev
-| | framesize=${1518} | wt=4 | rxq=2
+| | framesize=${1518} | phy_cores=${4}
| tc12-IMIX-4t4c-ethip4ipsecscale1000tnl-ip4base-int-aes-gcm-mrr
-| | [Documentation]
-| | ... | [Cfg] DUTs run 1000 IPsec tunnels AES GCM in each direction,\
-| | ... | configured with 4 phy cores, 2 receive queues per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for IMIX_v4_1 frames using single\
-| | ... | trial throughput test.
-| | ... | IMIX_v4_1 = (28x64B; 16x570B; 4x1518B)
| | [Tags] | IMIX | 4C
-| | ...
-| | [Template] | Check RR for IPv4 routing with IPSec HW cryptodev
-| | framesize=IMIX_v4_1 | wt=4 | rxq=2
+| | framesize=IMIX_v4_1 | phy_cores=${4}
diff --git a/tests/vpp/perf/crypto/40ge2p1xl710-ethip4ipsecscale1000tnl-ip4base-int-aes-gcm-ndrpdrdisc.robot b/tests/vpp/perf/crypto/40ge2p1xl710-ethip4ipsecscale1000tnl-ip4base-int-aes-gcm-ndrpdrdisc.robot
index 5488e9bb11..e3455578e2 100644
--- a/tests/vpp/perf/crypto/40ge2p1xl710-ethip4ipsecscale1000tnl-ip4base-int-aes-gcm-ndrpdrdisc.robot
+++ b/tests/vpp/perf/crypto/40ge2p1xl710-ethip4ipsecscale1000tnl-ip4base-int-aes-gcm-ndrpdrdisc.robot
@@ -82,7 +82,6 @@
| | ...
| | [Tags] | 64B | 1C | NDRDISC
| | ...
-| | # FIXME: Move repeated lines into a keyword.
| | ${framesize}= | Set Variable | ${64}
| | ${min_rate}= | Set Variable | ${50000}
| | ${max_rate}= | Set Variable | ${s_18.75Mpps}
@@ -91,7 +90,7 @@
| | ${threshold}= | Set Variable | ${min_rate}
| | ${encr_alg}= | Crypto Alg AES GCM 128
| | ${auth_alg}= | Integ Alg AES GCM 128
-| | Given Add '1' worker threads and '1' rxqueues in 3-node single-link circular topology
+| | Given Add worker threads and rxqueues to all DUTs | 1
| | And Add PCI devices to all DUTs
| | And Add no multi seg to all DUTs
| | And Add cryptodev to all DUTs | ${1}
@@ -126,7 +125,7 @@
| | ${threshold}= | Set Variable | ${min_rate}
| | ${encr_alg}= | Crypto Alg AES GCM 128
| | ${auth_alg}= | Integ Alg AES GCM 128
-| | Given Add '1' worker threads and '1' rxqueues in 3-node single-link circular topology
+| | Given Add worker threads and rxqueues to all DUTs | 1
| | And Add PCI devices to all DUTs
| | And Add no multi seg to all DUTs
| | And Add cryptodev to all DUTs | ${1}
@@ -163,7 +162,7 @@
| | ${threshold}= | Set Variable | ${min_rate}
| | ${encr_alg}= | Crypto Alg AES GCM 128
| | ${auth_alg}= | Integ Alg AES GCM 128
-| | Given Add '1' worker threads and '1' rxqueues in 3-node single-link circular topology
+| | Given Add worker threads and rxqueues to all DUTs | 1
| | And Add PCI devices to all DUTs
| | And Add cryptodev to all DUTs | ${1}
| | And Add DPDK dev default RXD to all DUTs | 2048
@@ -198,7 +197,7 @@
| | ${threshold}= | Set Variable | ${min_rate}
| | ${encr_alg}= | Crypto Alg AES GCM 128
| | ${auth_alg}= | Integ Alg AES GCM 128
-| | Given Add '1' worker threads and '1' rxqueues in 3-node single-link circular topology
+| | Given Add worker threads and rxqueues to all DUTs | 1
| | And Add PCI devices to all DUTs
| | And Add cryptodev to all DUTs | ${1}
| | And Add DPDK dev default RXD to all DUTs | 2048
@@ -236,7 +235,7 @@
| | ${threshold}= | Set Variable | ${min_rate}
| | ${encr_alg}= | Crypto Alg AES GCM 128
| | ${auth_alg}= | Integ Alg AES GCM 128
-| | Given Add '1' worker threads and '1' rxqueues in 3-node single-link circular topology
+| | Given Add worker threads and rxqueues to all DUTs | 1
| | And Add PCI devices to all DUTs
| | And Add cryptodev to all DUTs | ${1}
| | And Add DPDK dev default RXD to all DUTs | 2048
@@ -273,7 +272,7 @@
| | ${threshold}= | Set Variable | ${min_rate}
| | ${encr_alg}= | Crypto Alg AES GCM 128
| | ${auth_alg}= | Integ Alg AES GCM 128
-| | Given Add '1' worker threads and '1' rxqueues in 3-node single-link circular topology
+| | Given Add worker threads and rxqueues to all DUTs | 1
| | And Add PCI devices to all DUTs
| | And Add cryptodev to all DUTs | ${1}
| | And Add DPDK dev default RXD to all DUTs | 2048
@@ -308,7 +307,7 @@
| | ${threshold}= | Set Variable | ${min_rate}
| | ${encr_alg}= | Crypto Alg AES GCM 128
| | ${auth_alg}= | Integ Alg AES GCM 128
-| | Given Add '2' worker threads and '1' rxqueues in 3-node single-link circular topology
+| | Given Add worker threads and rxqueues to all DUTs | 2
| | And Add PCI devices to all DUTs
| | And Add no multi seg to all DUTs
| | And Add cryptodev to all DUTs | ${2}
@@ -343,7 +342,7 @@
| | ${threshold}= | Set Variable | ${min_rate}
| | ${encr_alg}= | Crypto Alg AES GCM 128
| | ${auth_alg}= | Integ Alg AES GCM 128
-| | Given Add '2' worker threads and '1' rxqueues in 3-node single-link circular topology
+| | Given Add worker threads and rxqueues to all DUTs | 2
| | And Add PCI devices to all DUTs
| | And Add no multi seg to all DUTs
| | And Add cryptodev to all DUTs | ${2}
diff --git a/tests/vpp/perf/crypto/40ge2p1xl710-ethip4ipsecscale1000tnl-ip4base-int-cbc-sha1-mrr.robot b/tests/vpp/perf/crypto/40ge2p1xl710-ethip4ipsecscale1000tnl-ip4base-int-cbc-sha1-mrr.robot
index f68e27d66b..3561b9a96d 100644
--- a/tests/vpp/perf/crypto/40ge2p1xl710-ethip4ipsecscale1000tnl-ip4base-int-cbc-sha1-mrr.robot
+++ b/tests/vpp/perf/crypto/40ge2p1xl710-ethip4ipsecscale1000tnl-ip4base-int-cbc-sha1-mrr.robot
@@ -23,8 +23,11 @@
| Suite Teardown | Tear down 3-node performance topology
| ...
| Test Setup | Set up performance test
+| ...
| Test Teardown | Tear down performance mrr test
| ...
+| Test Template | Local template
+| ...
| Documentation | *Raw results IPv4 IPsec tunnel mode performance test suite.*
| ...
| ... | *[Top] Network Topologies:* TG-DUT1-DUT2-TG 3-node circular topology
@@ -66,16 +69,21 @@
| ${traffic_profile}= | trex-sl-3n-ethip4-ip4dst${n_tunnels}
*** Keywords ***
-| Check RR for IPv4 routing with IPSec HW cryptodev
+| Local template
| | [Documentation]
-| | ... | [Cfg] DUT runs IPSec tunneling CBC-SHA1 config with ${wt} thread(s),\
-| | ... | ${wt} phy core(s), ${rxq} receive queue(s) per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for ${framesize} frames using single\
+| | ... | [Cfg] DUT runs IPSec tunneling CBC-SHA1 config.
+| | ... | Each DUT uses ${phy_cores} physical core(s) for worker threads.
+| | ... | [Ver] Measure MaxReceivedRate for ${framesize}B frames using single\
| | ... | trial throughput test.
| | ...
-| | [Arguments] | ${framesize} | ${wt} | ${rxq}
+| | ... | *Arguments:*
+| | ... | - framesize - Framesize in Bytes in integer or string (IMIX_v4_1).
+| | ... | Type: integer, string
+| | ... | - phy_cores - Number of physical cores. Type: integer
+| | ... | - rxq - Number of RX queues, default value: ${None}. Type: integer
+| | ...
+| | [Arguments] | ${framesize} | ${phy_cores} | ${rxq}=${None}
| | ...
-| | # Test Variables required for test teardown
| | Set Test Variable | ${framesize}
| | ${get_framesize}= | Get Frame Size | ${framesize}
| | ${max_rate}= | Calculate pps | ${s_24.5G}
@@ -85,11 +93,11 @@
| | ${encr_alg}= | Crypto Alg AES CBC 128
| | ${auth_alg}= | Integ Alg SHA1 96
| | ...
-| | Given Add '${wt}' worker threads and '${rxq}' rxqueues in 3-node single-link circular topology
+| | Given Add worker threads and rxqueues to all DUTs | ${phy_cores} | ${rxq}
| | And Add PCI devices to all DUTs
-| | And Run Keyword If | ${get_framesize} < ${1522}
+| | And Run Keyword If | ${get_framesize} + ${ipsec_overhead} < ${1522}
| | ... | Add no multi seg to all DUTs
-| | And Add cryptodev to all DUTs | ${${wt}}
+| | And Add cryptodev to all DUTs | ${${phy_cores}}
| | And Add DPDK dev default RXD to all DUTs | 2048
| | And Add DPDK dev default TXD to all DUTs | 2048
| | And Apply startup configuration on all VPP DUTs
@@ -105,106 +113,37 @@
*** Test Cases ***
| tc01-64B-1t1c-ethip4ipsecscale1000tnl-ip4base-int-cbc-sha1-mrr
-| | [Documentation]
-| | ... | [Cfg] DUTs run 1000 IPsec tunnels CBC-SHA1 in each direction,\
-| | ... | configured with 1 phy core, 1 receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 64B frames using single trial\
-| | ... | throughput test.
| | [Tags] | 64B | 1C
-| | ...
-| | [Template] | Check RR for IPv4 routing with IPSec HW cryptodev
-| | framesize=${64} | wt=1 | rxq=1
+| | framesize=${64} | phy_cores=${1}
| tc02-1518B-1t1c-ethip4ipsecscale1000tnl-ip4base-int-cbc-sha1-mrr
-| | [Documentation]
-| | ... | [Cfg] DUTs run 1000 IPsec tunnels CBC-SHA1 in each direction,\
-| | ... | configured with 1 phy core, 1 receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 1518B frames using single\
-| | ... | trial throughput test.
| | [Tags] | 1518B | 1C
-| | ...
-| | [Template] | Check RR for IPv4 routing with IPSec HW cryptodev
-| | framesize=${1518} | wt=1 | rxq=1
-
-# TODO: Add check to make test fail if rx=0.
-# TODO: Add 9000B test cases when they start passing.
+| | framesize=${1518} | phy_cores=${1}
| tc04-IMIX-1t1c-ethip4ipsecscale1000tnl-ip4base-int-cbc-sha1-mrr
-| | [Documentation]
-| | ... | [Cfg] DUTs run 1000 IPsec tunnels CBC-SHA1 in each direction,\
-| | ... | configured with 1 phy core, 1 receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for IMIX_v4_1 frames using single\
-| | ... | trial throughput test.
-| | ... | IMIX_v4_1 = (28x64B; 16x570B; 4x1518B)
| | [Tags] | IMIX | 1C
-| | ...
-| | [Template] | Check RR for IPv4 routing with IPSec HW cryptodev
-| | framesize=IMIX_v4_1 | wt=1 | rxq=1
+| | framesize=IMIX_v4_1 | phy_cores=${1}
| tc05-64B-2t2c-ethip4ipsecscale1000tnl-ip4base-int-cbc-sha1-mrr
-| | [Documentation]
-| | ... | [Cfg] DUTs run 1000 IPsec tunnels CBC-SHA1 in each direction,\
-| | ... | configured with 2 phy cores, 1 receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 64B frames using single trial\
-| | ... | throughput test.
| | [Tags] | 64B | 2C
-| | ...
-| | [Template] | Check RR for IPv4 routing with IPSec HW cryptodev
-| | framesize=${64} | wt=2 | rxq=1
+| | framesize=${64} | phy_cores=${2}
| tc06-1518B-2t2c-ethip4ipsecscale1000tnl-ip4base-int-cbc-sha1-mrr
-| | [Documentation]
-| | ... | [Cfg] DUTs run 1000 IPsec tunnels CBC-SHA1 in each direction,\
-| | ... | configured with 2 phy cores, 1 receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 1518B frames using single\
-| | ... | trial throughput test.
| | [Tags] | 1518B | 2C
-| | ...
-| | [Template] | Check RR for IPv4 routing with IPSec HW cryptodev
-| | framesize=${1518} | wt=2 | rxq=1
+| | framesize=${1518} | phy_cores=${2}
| tc08-IMIX-2t2c-ethip4ipsecscale1000tnl-ip4base-int-cbc-sha1-mrr
-| | [Documentation]
-| | ... | [Cfg] DUTs run 1000 IPsec tunnels CBC-SHA1 in each direction,\
-| | ... | configured with 2 phy cores, 1 receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for IMIX_v4_1 frames using single\
-| | ... | trial throughput test.
-| | ... | IMIX_v4_1 = (28x64B; 16x570B; 4x1518B)
| | [Tags] | IMIX | 2C
-| | ...
-| | [Template] | Check RR for IPv4 routing with IPSec HW cryptodev
-| | framesize=IMIX_v4_1 | wt=2 | rxq=1
+| | framesize=IMIX_v4_1 | phy_cores=${2}
| tc09-64B-4t4c-ethip4ipsecscale1000tnl-ip4base-int-cbc-sha1-mrr
-| | [Documentation]
-| | ... | [Cfg] DUTs run 1000 IPsec tunnels CBC-SHA1 in each direction,\
-| | ... | configured with 4 phy cores, 2 receive queues per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 64B frames using single trial\
-| | ... | throughput test.
| | [Tags] | 64B | 4C
-| | ...
-| | [Template] | Check RR for IPv4 routing with IPSec HW cryptodev
-| | framesize=${64} | wt=4 | rxq=2
+| | framesize=${64} | phy_cores=${4}
| tc10-1518B-4t4c-ethip4ipsecscale1000tnl-ip4base-int-cbc-sha1-mrr
-| | [Documentation]
-| | ... | [Cfg] DUTs run 1000 IPsec tunnels CBC-SHA1 in each direction,\
-| | ... | configured with 4 phy cores, 2 receive queues per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 1518B frames using single\
-| | ... | trial throughput test.
| | [Tags] | 1518B | 4C
-| | ...
-| | [Template] | Check RR for IPv4 routing with IPSec HW cryptodev
-| | framesize=${1518} | wt=4 | rxq=2
+| | framesize=${1518} | phy_cores=${4}
| tc12-IMIX-4t4c-ethip4ipsecscale1000tnl-ip4base-int-cbc-sha1-mrr
-| | [Documentation]
-| | ... | [Cfg] DUTs run 1000 IPsec tunnels CBC-SHA1 in each direction,\
-| | ... | configured with 4 phy cores, 2 receive queues per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for IMIX_v4_1 frames using single\
-| | ... | trial throughput test.
-| | ... | IMIX_v4_1 = (28x64B; 16x570B; 4x1518B)
| | [Tags] | IMIX | 4C
-| | ...
-| | [Template] | Check RR for IPv4 routing with IPSec HW cryptodev
-| | framesize=IMIX_v4_1 | wt=4 | rxq=2
+| | framesize=IMIX_v4_1 | phy_cores=${4}
diff --git a/tests/vpp/perf/crypto/40ge2p1xl710-ethip4ipsecscale1000tnl-ip4base-int-cbc-sha1-ndrpdrdisc.robot b/tests/vpp/perf/crypto/40ge2p1xl710-ethip4ipsecscale1000tnl-ip4base-int-cbc-sha1-ndrpdrdisc.robot
index 312c9c5e84..9a3048cd67 100644
--- a/tests/vpp/perf/crypto/40ge2p1xl710-ethip4ipsecscale1000tnl-ip4base-int-cbc-sha1-ndrpdrdisc.robot
+++ b/tests/vpp/perf/crypto/40ge2p1xl710-ethip4ipsecscale1000tnl-ip4base-int-cbc-sha1-ndrpdrdisc.robot
@@ -82,7 +82,6 @@
| | ...
| | [Tags] | 64B | 1C | NDRDISC
| | ...
-| | # FIXME: Move repeated lines into a keyword.
| | ${framesize}= | Set Variable | ${64}
| | ${min_rate}= | Set Variable | ${50000}
| | ${max_rate}= | Set Variable | ${s_18.75Mpps}
@@ -91,7 +90,7 @@
| | ${threshold}= | Set Variable | ${min_rate}
| | ${encr_alg}= | Crypto Alg AES CBC 128
| | ${auth_alg}= | Integ Alg SHA1 96
-| | Given Add '1' worker threads and '1' rxqueues in 3-node single-link circular topology
+| | Given Add worker threads and rxqueues to all DUTs | 1
| | And Add PCI devices to all DUTs
| | And Add no multi seg to all DUTs
| | And Add cryptodev to all DUTs | ${1}
@@ -126,7 +125,7 @@
| | ${threshold}= | Set Variable | ${min_rate}
| | ${encr_alg}= | Crypto Alg AES CBC 128
| | ${auth_alg}= | Integ Alg SHA1 96
-| | Given Add '1' worker threads and '1' rxqueues in 3-node single-link circular topology
+| | Given Add worker threads and rxqueues to all DUTs | 1
| | And Add PCI devices to all DUTs
| | And Add no multi seg to all DUTs
| | And Add cryptodev to all DUTs | ${1}
@@ -162,7 +161,7 @@
| | ${threshold}= | Set Variable | ${min_rate}
| | ${encr_alg}= | Crypto Alg AES CBC 128
| | ${auth_alg}= | Integ Alg SHA1 96
-| | Given Add '1' worker threads and '1' rxqueues in 3-node single-link circular topology
+| | Given Add worker threads and rxqueues to all DUTs | 1
| | And Add PCI devices to all DUTs
| | And Add cryptodev to all DUTs | ${1}
| | And Add DPDK dev default RXD to all DUTs | 2048
@@ -196,7 +195,7 @@
| | ${threshold}= | Set Variable | ${min_rate}
| | ${encr_alg}= | Crypto Alg AES CBC 128
| | ${auth_alg}= | Integ Alg SHA1 96
-| | Given Add '1' worker threads and '1' rxqueues in 3-node single-link circular topology
+| | Given Add worker threads and rxqueues to all DUTs | 1
| | And Add PCI devices to all DUTs
| | And Add cryptodev to all DUTs | ${1}
| | And Add DPDK dev default RXD to all DUTs | 2048
@@ -233,7 +232,7 @@
| | ${threshold}= | Set Variable | ${min_rate}
| | ${encr_alg}= | Crypto Alg AES CBC 128
| | ${auth_alg}= | Integ Alg SHA1 96
-| | Given Add '1' worker threads and '1' rxqueues in 3-node single-link circular topology
+| | Given Add worker threads and rxqueues to all DUTs | 1
| | And Add PCI devices to all DUTs
| | And Add cryptodev to all DUTs | ${1}
| | And Add DPDK dev default RXD to all DUTs | 2048
@@ -269,7 +268,7 @@
| | ${threshold}= | Set Variable | ${min_rate}
| | ${encr_alg}= | Crypto Alg AES CBC 128
| | ${auth_alg}= | Integ Alg SHA1 96
-| | Given Add '1' worker threads and '1' rxqueues in 3-node single-link circular topology
+| | Given Add worker threads and rxqueues to all DUTs | 1
| | And Add PCI devices to all DUTs
| | And Add cryptodev to all DUTs | ${1}
| | And Add DPDK dev default RXD to all DUTs | 2048
@@ -304,7 +303,7 @@
| | ${threshold}= | Set Variable | ${min_rate}
| | ${encr_alg}= | Crypto Alg AES CBC 128
| | ${auth_alg}= | Integ Alg SHA1 96
-| | Given Add '2' worker threads and '1' rxqueues in 3-node single-link circular topology
+| | Given Add worker threads and rxqueues to all DUTs | 2
| | And Add PCI devices to all DUTs
| | And Add no multi seg to all DUTs
| | And Add cryptodev to all DUTs | ${2}
@@ -339,7 +338,7 @@
| | ${threshold}= | Set Variable | ${min_rate}
| | ${encr_alg}= | Crypto Alg AES CBC 128
| | ${auth_alg}= | Integ Alg SHA1 96
-| | Given Add '2' worker threads and '1' rxqueues in 3-node single-link circular topology
+| | Given Add worker threads and rxqueues to all DUTs | 2
| | And Add PCI devices to all DUTs
| | And Add no multi seg to all DUTs
| | And Add cryptodev to all DUTs | ${2}
diff --git a/tests/vpp/perf/crypto/40ge2p1xl710-ethip4ipsecscale1000tnl-ip4base-tnl-aes-gcm-ndrpdrdisc.robot b/tests/vpp/perf/crypto/40ge2p1xl710-ethip4ipsecscale1000tnl-ip4base-tnl-aes-gcm-ndrpdrdisc.robot
index 473f85c39e..002228820f 100644
--- a/tests/vpp/perf/crypto/40ge2p1xl710-ethip4ipsecscale1000tnl-ip4base-tnl-aes-gcm-ndrpdrdisc.robot
+++ b/tests/vpp/perf/crypto/40ge2p1xl710-ethip4ipsecscale1000tnl-ip4base-tnl-aes-gcm-ndrpdrdisc.robot
@@ -82,7 +82,6 @@
| | ...
| | [Tags] | 64B | 1C | NDRDISC
| | ...
-| | # FIXME: Move repeated lines into a keyword.
| | ${framesize}= | Set Variable | ${64}
| | ${min_rate}= | Set Variable | ${50000}
| | ${max_rate}= | Set Variable | ${s_18.75Mpps}
@@ -91,7 +90,7 @@
| | ${threshold}= | Set Variable | ${min_rate}
| | ${encr_alg}= | Crypto Alg AES GCM 128
| | ${auth_alg}= | Integ Alg AES GCM 128
-| | Given Add '1' worker threads and '1' rxqueues in 3-node single-link circular topology
+| | Given Add worker threads and rxqueues to all DUTs | 1
| | And Add PCI devices to all DUTs
| | And Add no multi seg to all DUTs
| | And Add cryptodev to all DUTs | ${1}
@@ -131,7 +130,7 @@
| | ${threshold}= | Set Variable | ${min_rate}
| | ${encr_alg}= | Crypto Alg AES GCM 128
| | ${auth_alg}= | Integ Alg AES GCM 128
-| | Given Add '1' worker threads and '1' rxqueues in 3-node single-link circular topology
+| | Given Add worker threads and rxqueues to all DUTs | 1
| | And Add PCI devices to all DUTs
| | And Add no multi seg to all DUTs
| | And Add cryptodev to all DUTs | ${1}
@@ -173,7 +172,7 @@
| | ${threshold}= | Set Variable | ${min_rate}
| | ${encr_alg}= | Crypto Alg AES GCM 128
| | ${auth_alg}= | Integ Alg AES GCM 128
-| | Given Add '1' worker threads and '1' rxqueues in 3-node single-link circular topology
+| | Given Add worker threads and rxqueues to all DUTs | 1
| | And Add PCI devices to all DUTs
| | And Add cryptodev to all DUTs | ${1}
| | And Add DPDK dev default RXD to all DUTs | 2048
@@ -213,7 +212,7 @@
| | ${threshold}= | Set Variable | ${min_rate}
| | ${encr_alg}= | Crypto Alg AES GCM 128
| | ${auth_alg}= | Integ Alg AES GCM 128
-| | Given Add '1' worker threads and '1' rxqueues in 3-node single-link circular topology
+| | Given Add worker threads and rxqueues to all DUTs | 1
| | And Add PCI devices to all DUTs
| | And Add cryptodev to all DUTs | ${1}
| | And Add DPDK dev default RXD to all DUTs | 2048
@@ -256,7 +255,7 @@
| | ${threshold}= | Set Variable | ${min_rate}
| | ${encr_alg}= | Crypto Alg AES GCM 128
| | ${auth_alg}= | Integ Alg AES GCM 128
-| | Given Add '1' worker threads and '1' rxqueues in 3-node single-link circular topology
+| | Given Add worker threads and rxqueues to all DUTs | 1
| | And Add PCI devices to all DUTs
| | And Add cryptodev to all DUTs | ${1}
| | And Add DPDK dev default RXD to all DUTs | 2048
@@ -298,7 +297,7 @@
| | ${threshold}= | Set Variable | ${min_rate}
| | ${encr_alg}= | Crypto Alg AES GCM 128
| | ${auth_alg}= | Integ Alg AES GCM 128
-| | Given Add '1' worker threads and '1' rxqueues in 3-node single-link circular topology
+| | Given Add worker threads and rxqueues to all DUTs | 1
| | And Add PCI devices to all DUTs
| | And Add cryptodev to all DUTs | ${1}
| | And Add DPDK dev default RXD to all DUTs | 2048
@@ -338,7 +337,7 @@
| | ${threshold}= | Set Variable | ${min_rate}
| | ${encr_alg}= | Crypto Alg AES GCM 128
| | ${auth_alg}= | Integ Alg AES GCM 128
-| | Given Add '2' worker threads and '1' rxqueues in 3-node single-link circular topology
+| | Given Add worker threads and rxqueues to all DUTs | 2
| | And Add PCI devices to all DUTs
| | And Add no multi seg to all DUTs
| | And Add cryptodev to all DUTs | ${2}
@@ -378,7 +377,7 @@
| | ${threshold}= | Set Variable | ${min_rate}
| | ${encr_alg}= | Crypto Alg AES GCM 128
| | ${auth_alg}= | Integ Alg AES GCM 128
-| | Given Add '2' worker threads and '1' rxqueues in 3-node single-link circular topology
+| | Given Add worker threads and rxqueues to all DUTs | 2
| | And Add PCI devices to all DUTs
| | And Add no multi seg to all DUTs
| | And Add cryptodev to all DUTs | ${2}
diff --git a/tests/vpp/perf/crypto/40ge2p1xl710-ethip4ipsecscale1000tnl-ip4base-tnl-cbc-sha1-ndrpdrdisc.robot b/tests/vpp/perf/crypto/40ge2p1xl710-ethip4ipsecscale1000tnl-ip4base-tnl-cbc-sha1-ndrpdrdisc.robot
index 476bf83165..1cf1f866fb 100644
--- a/tests/vpp/perf/crypto/40ge2p1xl710-ethip4ipsecscale1000tnl-ip4base-tnl-cbc-sha1-ndrpdrdisc.robot
+++ b/tests/vpp/perf/crypto/40ge2p1xl710-ethip4ipsecscale1000tnl-ip4base-tnl-cbc-sha1-ndrpdrdisc.robot
@@ -82,7 +82,6 @@
| | ...
| | [Tags] | 64B | 1C | NDRDISC
| | ...
-| | # FIXME: Move repeated lines into a keyword.
| | ${framesize}= | Set Variable | ${64}
| | ${min_rate}= | Set Variable | ${50000}
| | ${max_rate}= | Set Variable | ${s_18.75Mpps}
@@ -91,7 +90,7 @@
| | ${threshold}= | Set Variable | ${min_rate}
| | ${encr_alg}= | Crypto Alg AES CBC 128
| | ${auth_alg}= | Integ Alg SHA1 96
-| | Given Add '1' worker threads and '1' rxqueues in 3-node single-link circular topology
+| | Given Add worker threads and rxqueues to all DUTs | 1
| | And Add PCI devices to all DUTs
| | And Add no multi seg to all DUTs
| | And Add cryptodev to all DUTs | ${1}
@@ -131,7 +130,7 @@
| | ${threshold}= | Set Variable | ${min_rate}
| | ${encr_alg}= | Crypto Alg AES CBC 128
| | ${auth_alg}= | Integ Alg SHA1 96
-| | Given Add '1' worker threads and '1' rxqueues in 3-node single-link circular topology
+| | Given Add worker threads and rxqueues to all DUTs | 1
| | And Add PCI devices to all DUTs
| | And Add no multi seg to all DUTs
| | And Add cryptodev to all DUTs | ${1}
@@ -172,7 +171,7 @@
| | ${threshold}= | Set Variable | ${min_rate}
| | ${encr_alg}= | Crypto Alg AES CBC 128
| | ${auth_alg}= | Integ Alg SHA1 96
-| | Given Add '1' worker threads and '1' rxqueues in 3-node single-link circular topology
+| | Given Add worker threads and rxqueues to all DUTs | 1
| | And Add PCI devices to all DUTs
| | And Add cryptodev to all DUTs | ${1}
| | And Add DPDK dev default RXD to all DUTs | 2048
@@ -211,7 +210,7 @@
| | ${threshold}= | Set Variable | ${min_rate}
| | ${encr_alg}= | Crypto Alg AES CBC 128
| | ${auth_alg}= | Integ Alg SHA1 96
-| | Given Add '1' worker threads and '1' rxqueues in 3-node single-link circular topology
+| | Given Add worker threads and rxqueues to all DUTs | 1
| | And Add PCI devices to all DUTs
| | And Add cryptodev to all DUTs | ${1}
| | And Add DPDK dev default RXD to all DUTs | 2048
@@ -253,7 +252,7 @@
| | ${threshold}= | Set Variable | ${min_rate}
| | ${encr_alg}= | Crypto Alg AES CBC 128
| | ${auth_alg}= | Integ Alg SHA1 96
-| | Given Add '1' worker threads and '1' rxqueues in 3-node single-link circular topology
+| | Given Add worker threads and rxqueues to all DUTs | 1
| | And Add PCI devices to all DUTs
| | And Add cryptodev to all DUTs | ${1}
| | And Add DPDK dev default RXD to all DUTs | 2048
@@ -294,7 +293,7 @@
| | ${threshold}= | Set Variable | ${min_rate}
| | ${encr_alg}= | Crypto Alg AES CBC 128
| | ${auth_alg}= | Integ Alg SHA1 96
-| | Given Add '1' worker threads and '1' rxqueues in 3-node single-link circular topology
+| | Given Add worker threads and rxqueues to all DUTs | 1
| | And Add PCI devices to all DUTs
| | And Add cryptodev to all DUTs | ${1}
| | And Add DPDK dev default RXD to all DUTs | 2048
@@ -334,7 +333,7 @@
| | ${threshold}= | Set Variable | ${min_rate}
| | ${encr_alg}= | Crypto Alg AES CBC 128
| | ${auth_alg}= | Integ Alg SHA1 96
-| | Given Add '2' worker threads and '1' rxqueues in 3-node single-link circular topology
+| | Given Add worker threads and rxqueues to all DUTs | 2
| | And Add PCI devices to all DUTs
| | And Add no multi seg to all DUTs
| | And Add cryptodev to all DUTs | ${2}
@@ -374,7 +373,7 @@
| | ${threshold}= | Set Variable | ${min_rate}
| | ${encr_alg}= | Crypto Alg AES CBC 128
| | ${auth_alg}= | Integ Alg SHA1 96
-| | Given Add '2' worker threads and '1' rxqueues in 3-node single-link circular topology
+| | Given Add worker threads and rxqueues to all DUTs | 2
| | And Add PCI devices to all DUTs
| | And Add no multi seg to all DUTs
| | And Add cryptodev to all DUTs | ${2}
diff --git a/tests/vpp/perf/crypto/40ge2p1xl710-ethip4ipsectptlispgpe-ip4base-cbc-sha1-ndrpdrdisc.robot b/tests/vpp/perf/crypto/40ge2p1xl710-ethip4ipsectptlispgpe-ip4base-cbc-sha1-ndrpdrdisc.robot
index e9c29350a5..5bb5fe3ba2 100644
--- a/tests/vpp/perf/crypto/40ge2p1xl710-ethip4ipsectptlispgpe-ip4base-cbc-sha1-ndrpdrdisc.robot
+++ b/tests/vpp/perf/crypto/40ge2p1xl710-ethip4ipsectptlispgpe-ip4base-cbc-sha1-ndrpdrdisc.robot
@@ -81,7 +81,6 @@
| | ...
| | [Tags] | 64B | 1C | NDRDISC
| | ...
-| | # FIXME: Move repeated lines into a keyword.
| | ${framesize}= | Set Variable | ${64}
| | ${min_rate}= | Set Variable | ${50000}
| | ${max_rate}= | Set Variable | ${s_18.75Mpps}
@@ -90,7 +89,7 @@
| | ${threshold}= | Set Variable | ${min_rate}
| | ${encr_alg}= | Crypto Alg AES CBC 128
| | ${auth_alg}= | Integ Alg SHA1 96
-| | Given Add '1' worker threads and '1' rxqueues in 3-node single-link circular topology
+| | Given Add worker threads and rxqueues to all DUTs | 1
| | And Add PCI devices to all DUTs
| | And Add no multi seg to all DUTs
| | And Add cryptodev to all DUTs | ${1}
@@ -122,7 +121,7 @@
| | ${threshold}= | Set Variable | ${min_rate}
| | ${encr_alg}= | Crypto Alg AES CBC 128
| | ${auth_alg}= | Integ Alg SHA1 96
-| | Given Add '1' worker threads and '1' rxqueues in 3-node single-link circular topology
+| | Given Add worker threads and rxqueues to all DUTs | 1
| | And Add PCI devices to all DUTs
| | And Add no multi seg to all DUTs
| | And Add cryptodev to all DUTs | ${1}
@@ -155,7 +154,7 @@
| | ${threshold}= | Set Variable | ${min_rate}
| | ${encr_alg}= | Crypto Alg AES CBC 128
| | ${auth_alg}= | Integ Alg SHA1 96
-| | Given Add '1' worker threads and '1' rxqueues in 3-node single-link circular topology
+| | Given Add worker threads and rxqueues to all DUTs | 1
| | And Add PCI devices to all DUTs
| | And Add cryptodev to all DUTs | ${1}
| | And Add DPDK dev default RXD to all DUTs | 2048
@@ -186,7 +185,7 @@
| | ${threshold}= | Set Variable | ${min_rate}
| | ${encr_alg}= | Crypto Alg AES CBC 128
| | ${auth_alg}= | Integ Alg SHA1 96
-| | Given Add '1' worker threads and '1' rxqueues in 3-node single-link circular topology
+| | Given Add worker threads and rxqueues to all DUTs | 1
| | And Add PCI devices to all DUTs
| | And Add cryptodev to all DUTs | ${1}
| | And Add DPDK dev default RXD to all DUTs | 2048
@@ -219,7 +218,7 @@
| | ${threshold}= | Set Variable | ${min_rate}
| | ${encr_alg}= | Crypto Alg AES CBC 128
| | ${auth_alg}= | Integ Alg SHA1 96
-| | Given Add '1' worker threads and '1' rxqueues in 3-node single-link circular topology
+| | Given Add worker threads and rxqueues to all DUTs | 1
| | And Add PCI devices to all DUTs
| | And Add cryptodev to all DUTs | ${1}
| | And Add DPDK dev default RXD to all DUTs | 2048
@@ -251,7 +250,7 @@
| | ${threshold}= | Set Variable | ${min_rate}
| | ${encr_alg}= | Crypto Alg AES CBC 128
| | ${auth_alg}= | Integ Alg SHA1 96
-| | Given Add '1' worker threads and '1' rxqueues in 3-node single-link circular topology
+| | Given Add worker threads and rxqueues to all DUTs | 1
| | And Add PCI devices to all DUTs
| | And Add cryptodev to all DUTs | ${1}
| | And Add DPDK dev default RXD to all DUTs | 2048
@@ -283,7 +282,7 @@
| | ${threshold}= | Set Variable | ${min_rate}
| | ${encr_alg}= | Crypto Alg AES CBC 128
| | ${auth_alg}= | Integ Alg SHA1 96
-| | Given Add '2' worker threads and '1' rxqueues in 3-node single-link circular topology
+| | Given Add worker threads and rxqueues to all DUTs | 2
| | And Add PCI devices to all DUTs
| | And Add no multi seg to all DUTs
| | And Add cryptodev to all DUTs | ${2}
@@ -315,7 +314,7 @@
| | ${threshold}= | Set Variable | ${min_rate}
| | ${encr_alg}= | Crypto Alg AES CBC 128
| | ${auth_alg}= | Integ Alg SHA1 96
-| | Given Add '2' worker threads and '1' rxqueues in 3-node single-link circular topology
+| | Given Add worker threads and rxqueues to all DUTs | 2
| | And Add PCI devices to all DUTs
| | And Add no multi seg to all DUTs
| | And Add cryptodev to all DUTs | ${2}
@@ -348,7 +347,7 @@
| | ${threshold}= | Set Variable | ${min_rate}
| | ${encr_alg}= | Crypto Alg AES CBC 128
| | ${auth_alg}= | Integ Alg SHA1 96
-| | Given Add '4' worker threads and '2' rxqueues in 3-node single-link circular topology
+| | Given Add worker threads and rxqueues to all DUTs | 4
| | And Add PCI devices to all DUTs
| | And Add no multi seg to all DUTs
| | And Add cryptodev to all DUTs | ${4}
@@ -380,7 +379,7 @@
| | ${threshold}= | Set Variable | ${min_rate}
| | ${encr_alg}= | Crypto Alg AES CBC 128
| | ${auth_alg}= | Integ Alg SHA1 96
-| | Given Add '4' worker threads and '2' rxqueues in 3-node single-link circular topology
+| | Given Add worker threads and rxqueues to all DUTs | 4
| | And Add PCI devices to all DUTs
| | And Add no multi seg to all DUTs
| | And Add cryptodev to all DUTs | ${4}
diff --git a/tests/vpp/perf/ip4/10ge2p1x520-ethip4-ip4base-copwhtlistbase-mrr.robot b/tests/vpp/perf/ip4/10ge2p1x520-ethip4-ip4base-copwhtlistbase-mrr.robot
index 1fb2d2e1cd..e0c7941aa2 100644
--- a/tests/vpp/perf/ip4/10ge2p1x520-ethip4-ip4base-copwhtlistbase-mrr.robot
+++ b/tests/vpp/perf/ip4/10ge2p1x520-ethip4-ip4base-copwhtlistbase-mrr.robot
@@ -26,6 +26,8 @@
| ...
| Test Teardown | Tear down performance mrr test
| ...
+| Test Template | Local template
+| ...
| Documentation | *Raw results IPv4 whitelist test cases*
| ...
| ... | *[Top] Network Topologies:* TG-DUT1-DUT2-TG 3-node circular topology
@@ -51,22 +53,27 @@
| ${traffic_profile}= | trex-sl-3n-ethip4-ip4src253
*** Keywords ***
-| Check RR for ethip4-ip4base-copwhtlistbase
+| Local template
| | ...
| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 routing config with ${wt} thread(s), ${wt}\
-| | ... | phy core(s), ${rxq} receive queue(s) per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for ${framesize} frames using single\
+| | ... | [Cfg] DUT runs IPv4 routing config.
+| | ... | Each DUT uses ${phy_cores} physical core(s) for worker threads.
+| | ... | [Ver] Measure MaxReceivedRate for ${framesize}B frames using single\
| | ... | trial throughput test.
| | ...
-| | [Arguments] | ${wt} | ${rxq} | ${framesize}
+| | ... | *Arguments:*
+| | ... | - framesize - Framesize in Bytes in integer or string (IMIX_v4_1).
+| | ... | Type: integer, string
+| | ... | - phy_cores - Number of physical cores. Type: integer
+| | ... | - rxq - Number of RX queues, default value: ${None}. Type: integer
+| | ...
+| | [Arguments] | ${phy_cores} | ${framesize} | ${rxq}=${None}
| | ...
-| | # Test Variables required for test execution and test teardown
| | Set Test Variable | ${framesize}
| | ${get_framesize}= | Get Frame Size | ${framesize}
| | ${max_rate}= | Calculate pps | ${s_limit} | ${get_framesize}
| | ...
-| | Given Add '${wt}' worker threads and '${rxq}' rxqueues in 3-node single-link circular topology
+| | Given Add worker threads and rxqueues to all DUTs | ${phy_cores} | ${rxq}
| | And Add PCI devices to all DUTs
| | And Run Keyword If | ${get_framesize} < ${1522}
| | ... | Add no multi seg to all DUTs
@@ -85,148 +92,49 @@
*** Test Cases ***
| tc01-64B-1t1c-ethip4-ip4base-copwhtlistbase-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 routing and whitelist filters config with \
-| | ... | 1 phy core, 1 receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 64B frames using single trial\
-| | ... | throughput test.
-| | ...
| | [Tags] | 64B | 1C
-| | ...
-| | [Template] | Check RR for ethip4-ip4base-copwhtlistbase
-| | wt=1 | rxq=1 | framesize=${64}
+| | phy_cores=${1} | framesize=${64}
| tc02-1518B-1t1c-ethip4-ip4base-copwhtlistbase-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 routing and whitelist filters config with \
-| | ... | 1 phy core, 1 receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 1518B frames using single trial\
-| | ... | throughput test.
-| | ...
| | [Tags] | 1518B | 1C
-| | ...
-| | [Template] | Check RR for ethip4-ip4base-copwhtlistbase
-| | wt=1 | rxq=1 | framesize=${1518}
+| | phy_cores=${1} | framesize=${1518}
| tc03-9000B-1t1c-ethip4-ip4base-copwhtlistbase-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 routing and whitelist filters config with \
-| | ... | 1 phy core, 1 receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 9000B frames using single trial\
-| | ... | throughput test.
-| | ...
| | [Tags] | 9000B | 1C
-| | ...
-| | [Template] | Check RR for ethip4-ip4base-copwhtlistbase
-| | wt=1 | rxq=1 | framesize=${9000}
+| | phy_cores=${1} | framesize=${9000}
| tc04-IMIX-1t1c-ethip4-ip4base-copwhtlistbase-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 routing and whitelist filters config with \
-| | ... | 1 phy core, 1 receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for IMIX_v4_1 frames using single trial\
-| | ... | throughput test.
-| | ... | IMIX_v4_1 = (28x64B; 16x570B; 4x1518B)
-| | ...
| | [Tags] | IMIX | 1C
-| | ...
-| | [Template] | Check RR for ethip4-ip4base-copwhtlistbase
-| | wt=1 | rxq=1 | framesize=IMIX_v4_1
+| | phy_cores=${1} | framesize=IMIX_v4_1
| tc05-64B-2t2c-ethip4-ip4base-copwhtlistbase-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 routing and whitelist filters config with \
-| | ... | 2 phy cores, 1 receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 64B frames using single trial\
-| | ... | throughput test.
-| | ...
| | [Tags] | 64B | 2C
-| | ...
-| | [Template] | Check RR for ethip4-ip4base-copwhtlistbase
-| | wt=2 | rxq=1 | framesize=${64}
+| | phy_cores=${2} | framesize=${64}
| tc06-1518B-2t2c-ethip4-ip4base-copwhtlistbase-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 routing and whitelist filters config with \
-| | ... | 2 phy cores, 1 receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 1518B frames using single trial\
-| | ... | throughput test.
-| | ...
| | [Tags] | 1518B | 2C
-| | ...
-| | [Template] | Check RR for ethip4-ip4base-copwhtlistbase
-| | wt=2 | rxq=1 | framesize=${1518}
+| | phy_cores=${2} | framesize=${1518}
| tc07-9000B-2t2c-ethip4-ip4base-copwhtlistbase-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 routing and whitelist filters config with \
-| | ... | 2 phy cores, 1 receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 9000B frames using single trial\
-| | ... | throughput test.
-| | ...
| | [Tags] | 9000B | 2C
-| | ...
-| | [Template] | Check RR for ethip4-ip4base-copwhtlistbase
-| | wt=2 | rxq=1 | framesize=${9000}
+| | phy_cores=${2} | framesize=${9000}
| tc08-IMIX-2t2c-ethip4-ip4base-copwhtlistbase-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 routing and whitelist filters config with \
-| | ... | 2 phy cores, 1 receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for IMIX_v4_1 frames using single trial\
-| | ... | throughput test.
-| | ... | IMIX_v4_1 = (28x64B; 16x570B; 4x1518B)
-| | ...
| | [Tags] | IMIX | 2C
-| | ...
-| | [Template] | Check RR for ethip4-ip4base-copwhtlistbase
-| | wt=2 | rxq=1 | framesize=IMIX_v4_1
+| | phy_cores=${2} | framesize=IMIX_v4_1
| tc09-64B-4t4c-ethip4-ip4base-copwhtlistbase-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 routing and whitelist filters config with \
-| | ... | 4 phy cores, 2 receive queues per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 64B frames using single trial\
-| | ... | throughput test.
-| | ...
| | [Tags] | 64B | 4C
-| | ...
-| | [Template] | Check RR for ethip4-ip4base-copwhtlistbase
-| | wt=4 | rxq=2 | framesize=${64}
+| | phy_cores=${4} | framesize=${64}
| tc10-1518B-4t4c-ethip4-ip4base-copwhtlistbase-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 routing and whitelist filters config with \
-| | ... | 4 phy cores, 2 receive queues per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 1518B frames using single trial\
-| | ... | throughput test.
-| | ...
| | [Tags] | 1518B | 4C
-| | ...
-| | [Template] | Check RR for ethip4-ip4base-copwhtlistbase
-| | wt=4 | rxq=2 | framesize=${1518}
+| | phy_cores=${4} | framesize=${1518}
| tc11-9000B-4t4c-ethip4-ip4base-copwhtlistbase-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 routing and whitelist filters config with \
-| | ... | 4 phy cores, 2 receive queues per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 9000B frames using single trial\
-| | ... | throughput test.
-| | ...
| | [Tags] | 9000B | 4C
-| | ...
-| | [Template] | Check RR for ethip4-ip4base-copwhtlistbase
-| | wt=4 | rxq=2 | framesize=${9000}
+| | phy_cores=${4} | framesize=${9000}
| tc12-IMIX-4t4c-ethip4-ip4base-copwhtlistbase-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 routing and whitelist filters config with \
-| | ... | 4 phy cores, 2 receive queues per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for IMIX_v4_1 frames using single trial\
-| | ... | throughput test.
-| | ... | IMIX_v4_1 = (28x64B; 16x570B; 4x1518B)
-| | ...
| | [Tags] | IMIX | 4C
-| | ...
-| | [Template] | Check RR for ethip4-ip4base-copwhtlistbase
-| | wt=4 | rxq=2 | framesize=IMIX_v4_1
+| | phy_cores=${4} | framesize=IMIX_v4_1
diff --git a/tests/vpp/perf/ip4/10ge2p1x520-ethip4-ip4base-copwhtlistbase-ndrpdrdisc.robot b/tests/vpp/perf/ip4/10ge2p1x520-ethip4-ip4base-copwhtlistbase-ndrpdrdisc.robot
index 933e5da82b..5c6b3bfca8 100644
--- a/tests/vpp/perf/ip4/10ge2p1x520-ethip4-ip4base-copwhtlistbase-ndrpdrdisc.robot
+++ b/tests/vpp/perf/ip4/10ge2p1x520-ethip4-ip4base-copwhtlistbase-ndrpdrdisc.robot
@@ -27,6 +27,8 @@
| Test Teardown | Tear down performance discovery test | ${min_rate}pps
| ... | ${framesize} | ${traffic_profile}
| ...
+| Test Template | Local template
+| ...
| Documentation | *RFC2544: Pkt throughput IPv4 whitelist test cases*
| ...
| ... | *[Top] Network Topologies:* TG-DUT1-DUT2-TG 3-node circular topology
@@ -57,14 +59,15 @@
| ${traffic_profile} | trex-sl-3n-ethip4-ip4src253
*** Keywords ***
-| Discover NDR or PDR for ethip4-ip4base-copwhtlistbase
+| Local template
| | [Documentation]
| | ... | [Cfg] DUT runs IPv4 routing config with ${wt} thread(s), ${wt}\
| | ... | phy core(s), ${rxq} receive queue(s) per NIC port.
| | ... | [Ver] Find NDR or PDR for ${framesize} frames using binary search\
| | ... | start at 10GE linerate.
| | ...
-| | [Arguments] | ${wt} | ${rxq} | ${framesize} | ${min_rate} | ${search_type}
+| | [Arguments] | ${phy_cores} | ${framesize} | ${search_type}
+| | ... | ${rxq}=${None} | ${min_rate}=${50000}
| | ...
| | Set Test Variable | ${framesize}
| | Set Test Variable | ${min_rate}
@@ -73,7 +76,7 @@
| | ${binary_min}= | Set Variable | ${min_rate}
| | ${binary_max}= | Set Variable | ${max_rate}
| | ${threshold}= | Set Variable | ${min_rate}
-| | Given Add '${wt}' worker threads and '${rxq}' rxqueues in 3-node single-link circular topology
+| | Given Add worker threads and rxqueues to all DUTs | ${phy_cores} | ${rxq}
| | And Add PCI devices to all DUTs
| | And Run Keyword If | ${get_framesize} < ${1522}
| | ... | Add no multi seg to all DUTs
@@ -99,199 +102,73 @@
*** Test Cases ***
| tc01-64B-1t1c-ethip4-ip4base-copwhtlistbase-ndrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 routing and whitelist filters config with \
-| | ... | 1 phy core, 1 receive queue per NIC port. [Ver] Find NDR
-| | ... | for 64 Byte frames using binary search start at 10GE linerate,
-| | ... | step 50kpps.
| | [Tags] | 64B | 1C | NDRDISC
-| | ...
-| | [Template] | Discover NDR or PDR for ethip4-ip4base-copwhtlistbase
-| | wt=1 | rxq=1 | framesize=${64} | min_rate=${50000} | search_type=NDR
+| | phy_cores=${1} | framesize=${64} | search_type=NDR
| tc02-64B-1t1c-ethip4-ip4base-copwhtlistbase-pdrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 routing and whitelist filters config with \
-| | ... | 1 phy core, 1 receive queue per NIC port. [Ver] Find PDR
-| | ... | for 64 Byte frames using binary search start at 10GE linerate,
-| | ... | step 50kpps, LT=0.5%.
| | [Tags] | 64B | 1C | PDRDISC | SKIP_PATCH
-| | ...
-| | [Template] | Discover NDR or PDR for ethip4-ip4base-copwhtlistbase
-| | wt=1 | rxq=1 | framesize=${64} | min_rate=${50000} | search_type=PDR
+| | phy_cores=${1} | framesize=${64} | search_type=PDR
| tc03-1518B-1t1c-ethip4-ip4base-copwhtlistbase-ndrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 routing and whitelist filters config with \
-| | ... | 1 phy core, 1 receive queue per NIC port. [Ver] Find NDR
-| | ... | for 1518 Byte frames using binary search start at 10GE linerate,
-| | ... | step 50kpps.
| | [Tags] | 1518B | 1C | NDRDISC
-| | ...
-| | [Template] | Discover NDR or PDR for ethip4-ip4base-copwhtlistbase
-| | wt=1 | rxq=1 | framesize=${1518} | min_rate=${50000} | search_type=NDR
+| | phy_cores=${1} | framesize=${1518} | search_type=NDR
| tc04-1518B-1t1c-ethip4-ip4base-copwhtlistbase-pdrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 routing and whitelist filters config with \
-| | ... | 1 phy core, 1 receive queue per NIC port. [Ver] Find PDR
-| | ... | for 1518 Byte frames using binary search start at 10GE linerate,
-| | ... | step 50kpps, LT=0.5%.
| | [Tags] | 1518B | 1C | PDRDISC | SKIP_PATCH
-| | ...
-| | [Template] | Discover NDR or PDR for ethip4-ip4base-copwhtlistbase
-| | wt=1 | rxq=1 | framesize=${1518} | min_rate=${50000} | search_type=PDR
+| | phy_cores=${1} | framesize=${1518} | search_type=PDR
| tc05-9000B-1t1c-ethip4-ip4base-copwhtlistbase-ndrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 routing and whitelist filters config with \
-| | ... | 1 phy core, 1 receive queue per NIC port. [Ver] Find NDR
-| | ... | for 9000 Byte frames using binary search start at 10GE linerate,
-| | ... | step 10kpps.
| | [Tags] | 9000B | 1C | NDRDISC
-| | ...
-| | [Template] | Discover NDR or PDR for ethip4-ip4base-copwhtlistbase
-| | wt=1 | rxq=1 | framesize=${9000} | min_rate=${10000} | search_type=NDR
+| | phy_cores=${1} | framesize=${9000} | search_type=NDR
| tc06-9000B-1t1c-ethip4-ip4base-copwhtlistbase-pdrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 routing and whitelist filters config with \
-| | ... | 1 phy core, 1 receive queue per NIC port. [Ver] Find PDR
-| | ... | for 9000 Byte frames using binary search start at 10GE linerate,
-| | ... | step 10kpps, LT=0.5%.
| | [Tags] | 9000B | 1C | PDRDISC | SKIP_PATCH
-| | ...
-| | [Template] | Discover NDR or PDR for ethip4-ip4base-copwhtlistbase
-| | wt=1 | rxq=1 | framesize=${9000} | min_rate=${10000} | search_type=PDR
+| | phy_cores=${1} | framesize=${9000} | search_type=PDR
| tc07-64B-2t2c-ethip4-ip4base-copwhtlistbase-ndrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 routing and whitelist filters config with \
-| | ... | 2 phy cores, 1 receive queue per NIC port. [Ver] Find NDR
-| | ... | for 64 Byte frames using binary search start at 10GE linerate,
-| | ... | step 50kpps.
| | [Tags] | 64B | 2C | NDRDISC
-| | ...
-| | [Template] | Discover NDR or PDR for ethip4-ip4base-copwhtlistbase
-| | wt=2 | rxq=1 | framesize=${64} | min_rate=${50000} | search_type=NDR
+| | phy_cores=${2} | framesize=${64} | search_type=NDR
| tc08-64B-2t2c-ethip4-ip4base-copwhtlistbase-pdrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 routing and whitelist filters config with \
-| | ... | 2 phy cores, 1 receive queue per NIC port. [Ver] Find PDR
-| | ... | for 64 Byte frames using binary search start at 10GE linerate,
-| | ... | step 50kpps, LT=0.5%.
| | [Tags] | 64B | 2C | PDRDISC | SKIP_PATCH
-| | ...
-| | [Template] | Discover NDR or PDR for ethip4-ip4base-copwhtlistbase
-| | wt=2 | rxq=1 | framesize=${64} | min_rate=${50000} | search_type=PDR
+| | phy_cores=${2} | framesize=${64} | search_type=PDR
| tc09-1518B-2t2c-ethip4-ip4base-copwhtlistbase-ndrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 routing and whitelist filters config with \
-| | ... | 2 phy cores, 1 receive queue per NIC port. [Ver] Find NDR
-| | ... | for 1518 Byte frames using binary search start at 10GE linerate,
-| | ... | step 50kpps.
| | [Tags] | 1518B | 2C | NDRDISC | SKIP_PATCH
-| | ...
-| | [Template] | Discover NDR or PDR for ethip4-ip4base-copwhtlistbase
-| | wt=2 | rxq=1 | framesize=${1518} | min_rate=${50000} | search_type=NDR
+| | phy_cores=${2} | framesize=${1518} | search_type=NDR
| tc10-1518B-2t2c-ethip4-ip4base-copwhtlistbase-pdrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 routing and whitelist filters config with \
-| | ... | 2 phy cores, 1 receive queue per NIC port. [Ver] Find PDR
-| | ... | for 1518 Byte frames using binary search start at 10GE linerate,
-| | ... | step 50kpps, LT=0.5%.
| | [Tags] | 1518B | 2C | PDRDISC | SKIP_PATCH
-| | ...
-| | [Template] | Discover NDR or PDR for ethip4-ip4base-copwhtlistbase
-| | wt=2 | rxq=1 | framesize=${1518} | min_rate=${50000} | search_type=PDR
+| | phy_cores=${2} | framesize=${1518} | search_type=PDR
| tc11-9000B-2t2c-ethip4-ip4base-copwhtlistbase-ndrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 routing and whitelist filters config with \
-| | ... | 2 phy cores, 1 receive queue per NIC port. [Ver] Find NDR
-| | ... | for 9000 Byte frames using binary search start at 10GE linerate,
-| | ... | step 10kpps.
| | [Tags] | 9000B | 2C | NDRDISC | SKIP_PATCH
-| | ...
-| | [Template] | Discover NDR or PDR for ethip4-ip4base-copwhtlistbase
-| | wt=2 | rxq=1 | framesize=${9000} | min_rate=${10000} | search_type=NDR
+| | phy_cores=${2} | framesize=${9000} | search_type=NDR
| tc12-9000B-2t2c-ethip4-ip4base-copwhtlistbase-pdrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 routing and whitelist filters config with \
-| | ... | 2 phy cores, 1 receive queue per NIC port. [Ver] Find PDR
-| | ... | for 9000 Byte frames using binary search start at 10GE linerate,
-| | ... | step 10kpps, LT=0.5%.
| | [Tags] | 9000B | 2C | PDRDISC | SKIP_PATCH
-| | ...
-| | [Template] | Discover NDR or PDR for ethip4-ip4base-copwhtlistbase
-| | wt=2 | rxq=1 | framesize=${9000} | min_rate=${10000} | search_type=PDR
+| | phy_cores=${2} | framesize=${9000} | search_type=PDR
| tc13-64B-4t4c-ethip4-ip4base-copwhtlistbase-ndrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 routing and whitelist filters config with \
-| | ... | 4 phy cores, 2 receive queue per NIC port. [Ver] Find NDR
-| | ... | for 64 Byte frames using binary search start at 10GE linerate,
-| | ... | step 50kpps.
| | [Tags] | 64B | 4C | NDRDISC
-| | ...
-| | [Template] | Discover NDR or PDR for ethip4-ip4base-copwhtlistbase
-| | wt=4 | rxq=2 | framesize=${64} | min_rate=${50000} | search_type=NDR
+| | phy_cores=${4} | framesize=${64} | search_type=NDR
| tc14-64B-4t4c-ethip4-ip4base-copwhtlistbase-pdrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 routing and whitelist filters config with \
-| | ... | 4 phy cores, 2 receive queue per NIC port. [Ver] Find PDR
-| | ... | for 64 Byte frames using binary search start at 10GE linerate,
-| | ... | step 50kpps, LT=0.5%.
| | [Tags] | 64B | 4C | PDRDISC | SKIP_PATCH
-| | ...
-| | [Template] | Discover NDR or PDR for ethip4-ip4base-copwhtlistbase
-| | wt=4 | rxq=2 | framesize=${64} | min_rate=${50000} | search_type=PDR
+| | phy_cores=${4} | framesize=${64} | search_type=PDR
| tc15-1518B-4t4c-ethip4-ip4base-copwhtlistbase-ndrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 routing and whitelist filters config with \
-| | ... | 4 phy cores, 2 receive queue per NIC port. [Ver] Find NDR
-| | ... | for 1518 Byte frames using binary search start at 10GE linerate,
-| | ... | step 50kpps.
| | [Tags] | 1518B | 4C | NDRDISC | SKIP_PATCH
-| | ...
-| | [Template] | Discover NDR or PDR for ethip4-ip4base-copwhtlistbase
-| | wt=4 | rxq=2 | framesize=${1518} | min_rate=${50000} | search_type=NDR
+| | phy_cores=${4} | framesize=${1518} | search_type=NDR
| tc16-1518B-4t4c-ethip4-ip4base-copwhtlistbase-pdrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 routing and whitelist filters config with \
-| | ... | 4 phy cores, 2 receive queue per NIC port. [Ver] Find PDR
-| | ... | for 1518 Byte frames using binary search start at 10GE linerate,
-| | ... | step 50kpps, LT=0.5%.
| | [Tags] | 1518B | 4C | PDRDISC | SKIP_PATCH
-| | ...
-| | [Template] | Discover NDR or PDR for ethip4-ip4base-copwhtlistbase
-| | wt=4 | rxq=2 | framesize=${1518} | min_rate=${50000} | search_type=PDR
+| | phy_cores=${4} | framesize=${1518} | search_type=PDR
| tc17-9000B-4t4c-ethip4-ip4base-copwhtlistbase-ndrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 routing and whitelist filters config with \
-| | ... | 4 phy cores, 2 receive queue per NIC port. [Ver] Find NDR
-| | ... | for 9000 Byte frames using binary search start at 10GE linerate,
-| | ... | step 10kpps.
| | [Tags] | 9000B | 4C | NDRDISC | SKIP_PATCH
-| | ...
-| | [Template] | Discover NDR or PDR for ethip4-ip4base-copwhtlistbase
-| | wt=4 | rxq=2 | framesize=${9000} | min_rate=${10000} | search_type=NDR
+| | phy_cores=${4} | framesize=${9000} | search_type=NDR
| tc18-9000B-4t4c-ethip4-ip4base-copwhtlistbase-pdrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 routing and whitelist filters config with \
-| | ... | 4 phy cores, 2 receive queue per NIC port. [Ver] Find PDR
-| | ... | for 9000 Byte frames using binary search start at 10GE linerate,
-| | ... | step 10kpps, LT=0.5%.
| | [Tags] | 9000B | 4C | PDRDISC | SKIP_PATCH
-| | ...
-| | [Template] | Discover NDR or PDR for ethip4-ip4base-copwhtlistbase
-| | wt=4 | rxq=2 | framesize=${9000} | min_rate=${10000} | search_type=PDR
+| | phy_cores=${4} | framesize=${9000} | search_type=PDR
diff --git a/tests/vpp/perf/ip4/10ge2p1x520-ethip4-ip4base-iacldstbase-mrr.robot b/tests/vpp/perf/ip4/10ge2p1x520-ethip4-ip4base-iacldstbase-mrr.robot
index 9264b06d8a..7253731de1 100644
--- a/tests/vpp/perf/ip4/10ge2p1x520-ethip4-ip4base-iacldstbase-mrr.robot
+++ b/tests/vpp/perf/ip4/10ge2p1x520-ethip4-ip4base-iacldstbase-mrr.robot
@@ -25,6 +25,8 @@
| ...
| Test Teardown | Tear down performance mrr test
| ...
+| Test Template | Local template
+| ...
| Documentation | *Raw results IPv4 iAcl whitelist test cases*
| ...
| ... | *[Top] Network Topologies:* TG-DUT1-DUT2-TG 3-node circular topology
@@ -50,22 +52,26 @@
| ${traffic_profile}= | trex-sl-3n-ethip4-ip4src253
*** Keywords ***
-| Check RR for ethip4-ip4base-iacldstbase
-| | ...
+| Local template
| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 routing config with ${wt} thread(s), ${wt}\
-| | ... | phy core(s), ${rxq} receive queue(s) per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for ${framesize} frames using single\
+| | ... | [Cfg] DUT runs IPv4 routing config.
+| | ... | Each DUT uses ${phy_cores} physical core(s) for worker threads.
+| | ... | [Ver] Measure MaxReceivedRate for ${framesize}B frames using single\
| | ... | trial throughput test.
| | ...
-| | [Arguments] | ${wt} | ${rxq} | ${framesize}
+| | ... | *Arguments:*
+| | ... | - framesize - Framesize in Bytes in integer or string (IMIX_v4_1).
+| | ... | Type: integer, string
+| | ... | - phy_cores - Number of physical cores. Type: integer
+| | ... | - rxq - Number of RX queues, default value: ${None}. Type: integer
+| | ...
+| | [Arguments] | ${phy_cores} | ${framesize} | ${rxq}=${None}
| | ...
-| | # Test Variables required for test execution and test teardown
| | Set Test Variable | ${framesize}
| | ${get_framesize}= | Get Frame Size | ${framesize}
| | ${max_rate}= | Calculate pps | ${s_limit} | ${get_framesize}
| | ...
-| | Given Add '${wt}' worker threads and '${rxq}' rxqueues in 3-node single-link circular topology
+| | Given Add worker threads and rxqueues to all DUTs | ${phy_cores} | ${rxq}
| | And Add PCI devices to all DUTs
| | And Run Keyword If | ${get_framesize} < ${1522}
| | ... | Add no multi seg to all DUTs
@@ -90,148 +96,49 @@
*** Test Cases ***
| tc01-64B-1t1c-ethip4-ip4base-iacldstbase-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 routing and whitelist filters config with \
-| | ... | 1 phy core, 1 receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 64B frames using single trial\
-| | ... | throughput test.
-| | ...
| | [Tags] | 64B | 1C
-| | ...
-| | [Template] | Check RR for ethip4-ip4base-iacldstbase
-| | wt=1 | rxq=1 | framesize=${64}
+| | phy_cores=${1} | framesize=${64}
| tc02-1518B-1t1c-ethip4-ip4base-iacldstbase-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 routing and whitelist filters config with \
-| | ... | 1 phy core, 1 receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 1518B frames using single trial\
-| | ... | throughput test.
-| | ...
| | [Tags] | 1518B | 1C
-| | ...
-| | [Template] | Check RR for ethip4-ip4base-iacldstbase
-| | wt=1 | rxq=1 | framesize=${1518}
+| | phy_cores=${1} | framesize=${1518}
| tc03-9000B-1t1c-ethip4-ip4base-iacldstbase-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 routing and whitelist filters config with \
-| | ... | 1 phy core, 1 receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 9000B frames using single trial\
-| | ... | throughput test.
-| | ...
| | [Tags] | 9000B | 1CC
-| | ...
-| | [Template] | Check RR for ethip4-ip4base-iacldstbase
-| | wt=1 | rxq=1 | framesize=${9000}
+| | phy_cores=${1} | framesize=${9000}
| tc04-IMIX-1t1c-ethip4-ip4base-iacldstbase-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 routing and whitelist filters config with \
-| | ... | 1 phy core, 1 receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for IMIX_v4_1 frames using single trial\
-| | ... | throughput test.
-| | ... | IMIX_v4_1 = (28x64B; 16x570B; 4x1518B)
-| | ...
| | [Tags] | IMIX | 1C
-| | ...
-| | [Template] | Check RR for ethip4-ip4base-iacldstbase
-| | wt=1 | rxq=1 | framesize=IMIX_v4_1
+| | phy_cores=${1} | framesize=IMIX_v4_1
| tc05-64B-2t2c-ethip4-ip4base-iacldstbase-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 routing and whitelist filters config with \
-| | ... | 2 phy cores, 1 receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 64B frames using single trial\
-| | ... | throughput test.
-| | ...
| | [Tags] | 64B | 2C
-| | ...
-| | [Template] | Check RR for ethip4-ip4base-iacldstbase
-| | wt=2 | rxq=1 | framesize=${64}
+| | phy_cores=${2} | framesize=${64}
| tc06-1518B-2t2c-ethip4-ip4base-iacldstbase-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 routing and whitelist filters config with \
-| | ... | 2 phy cores, 1 receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 1518B frames using single trial\
-| | ... | throughput test.
-| | ...
| | [Tags] | 1518B | 2C
-| | ...
-| | [Template] | Check RR for ethip4-ip4base-iacldstbase
-| | wt=2 | rxq=1 | framesize=${1518}
+| | phy_cores=${2} | framesize=${1518}
| tc07-9000B-2t2c-ethip4-ip4base-iacldstbase-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 routing and whitelist filters config with \
-| | ... | 2 phy cores, 1 receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 9000B frames using single trial\
-| | ... | throughput test.
-| | ...
| | [Tags] | 9000B | 2C
-| | ...
-| | [Template] | Check RR for ethip4-ip4base-iacldstbase
-| | wt=2 | rxq=1 | framesize=${9000}
+| | phy_cores=${2} | framesize=${9000}
| tc08-IMIX-2t2c-ethip4-ip4base-iacldstbase-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 routing and whitelist filters config with \
-| | ... | 2 phy cores, 1 receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for IMIX_v4_1 frames using single trial\
-| | ... | throughput test.
-| | ... | IMIX_v4_1 = (28x64B; 16x570B; 4x1518B)
-| | ...
| | [Tags] | IMIX | 2C
-| | ...
-| | [Template] | Check RR for ethip4-ip4base-iacldstbase
-| | wt=2 | rxq=1 | framesize=IMIX_v4_1
+| | phy_cores=${2} | framesize=IMIX_v4_1
| tc09-64B-4t4c-ethip4-ip4base-iacldstbase-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 routing and whitelist filters config with \
-| | ... | 4 phy cores, 2 receive queues per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 64B frames using single trial\
-| | ... | throughput test.
-| | ...
| | [Tags] | 64B | 4C
-| | ...
-| | [Template] | Check RR for ethip4-ip4base-iacldstbase
-| | wt=4 | rxq=2 | framesize=${64}
+| | phy_cores=${4} | framesize=${64}
| tc10-1518B-4t4c-ethip4-ip4base-iacldstbase-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 routing and whitelist filters config with \
-| | ... | 4 phy cores, 2 receive queues per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 1518B frames using single trial\
-| | ... | throughput test.
-| | ...
| | [Tags] | 1518B | 4C
-| | ...
-| | [Template] | Check RR for ethip4-ip4base-iacldstbase
-| | wt=4 | rxq=2 | framesize=${1518}
+| | phy_cores=${4} | framesize=${1518}
| tc11-9000B-4t4c-ethip4-ip4base-iacldstbase-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 routing and whitelist filters config with \
-| | ... | 4 phy cores, 2 receive queues per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 9000B frames using single trial\
-| | ... | throughput test.
-| | ...
| | [Tags] | 9000B | 4C
-| | ...
-| | [Template] | Check RR for ethip4-ip4base-iacldstbase
-| | wt=4 | rxq=2 | framesize=${9000}
+| | phy_cores=${4} | framesize=${9000}
| tc12-IMIX-4t4c-ethip4-ip4base-iacldstbase-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 routing and whitelist filters config with \
-| | ... | 4 phy cores, 2 receive queues per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for IMIX_v4_1 frames using single trial\
-| | ... | throughput test.
-| | ... | IMIX_v4_1 = (28x64B; 16x570B; 4x1518B)
-| | ...
| | [Tags] | IMIX | 4C
-| | ...
-| | [Template] | Check RR for ethip4-ip4base-iacldstbase
-| | wt=4 | rxq=2 | framesize=IMIX_v4_1
+| | phy_cores=${4} | framesize=IMIX_v4_1
diff --git a/tests/vpp/perf/ip4/10ge2p1x520-ethip4-ip4base-iacldstbase-ndrpdrdisc.robot b/tests/vpp/perf/ip4/10ge2p1x520-ethip4-ip4base-iacldstbase-ndrpdrdisc.robot
index ca5eefd2fb..93a67b677c 100644
--- a/tests/vpp/perf/ip4/10ge2p1x520-ethip4-ip4base-iacldstbase-ndrpdrdisc.robot
+++ b/tests/vpp/perf/ip4/10ge2p1x520-ethip4-ip4base-iacldstbase-ndrpdrdisc.robot
@@ -26,6 +26,8 @@
| Test Teardown | Tear down performance discovery test | ${min_rate}pps
| ... | ${framesize} | ${traffic_profile}
| ...
+| Test Template | Local template
+| ...
| Documentation | *RFC2544: Pkt throughput IPv4 iAcl whitelist test cases*
| ...
| ... | *[Top] Network Topologies:* TG-DUT1-DUT2-TG 3-node circular topology
@@ -56,14 +58,15 @@
| ${traffic_profile} | trex-sl-3n-ethip4-ip4src253
*** Keywords ***
-| Discover NDR or PDR for ethip4-ip4base-iacldstbase
+| Local template
| | [Documentation]
| | ... | [Cfg] DUT runs IPv4 routing config with ${wt} thread(s), ${wt}\
| | ... | phy core(s), ${rxq} receive queue(s) per NIC port.
| | ... | [Ver] Find NDR or PDR for ${framesize} frames using binary search\
| | ... | start at 10GE linerate.
| | ...
-| | [Arguments] | ${wt} | ${rxq} | ${framesize} | ${min_rate} | ${search_type}
+| | [Arguments] | ${phy_cores} | ${framesize} | ${search_type}
+| | ... | ${rxq}=${None} | ${min_rate}=${50000}
| | ...
| | Set Test Variable | ${framesize}
| | Set Test Variable | ${min_rate}
@@ -72,7 +75,7 @@
| | ${binary_min}= | Set Variable | ${min_rate}
| | ${binary_max}= | Set Variable | ${max_rate}
| | ${threshold}= | Set Variable | ${min_rate}
-| | Given Add '${wt}' worker threads and '${rxq}' rxqueues in 3-node single-link circular topology
+| | Given Add worker threads and rxqueues to all DUTs | ${phy_cores} | ${rxq}
| | And Add PCI devices to all DUTs
| | And Run Keyword If | ${get_framesize} < ${1522}
| | ... | Add no multi seg to all DUTs
@@ -104,200 +107,74 @@
*** Test Cases ***
| tc01-64B-1t1c-ethip4-ip4base-iacldstbase-ndrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 routing and whitelist filters config with \
-| | ... | 1 phy core, 1 receive queue per NIC port. [Ver] Find NDR
-| | ... | for 64 Byte frames using binary search start at 10GE linerate,
-| | ... | step 50kpps.
| | [Tags] | 64B | 1C | NDRDISC
-| | ...
-| | [Template] | Discover NDR or PDR for ethip4-ip4base-iacldstbase
-| | wt=1 | rxq=1 | framesize=${64} | min_rate=${50000} | search_type=NDR
+| | phy_cores=${1} | framesize=${64} | search_type=NDR
| tc02-64B-1t1c-ethip4-ip4base-iacldstbase-pdrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 routing and whitelist filters config with \
-| | ... | 1 phy core, 1 receive queue per NIC port. [Ver] Find PDR
-| | ... | for 64 Byte frames using binary search start at 10GE linerate,
-| | ... | step 50kpps, LT=0.5%.
| | [Tags] | 64B | 1C | PDRDISC | SKIP_PATCH
-| | ...
-| | [Template] | Discover NDR or PDR for ethip4-ip4base-iacldstbase
-| | wt=1 | rxq=1 | framesize=${64} | min_rate=${50000} | search_type=PDR
+| | phy_cores=${1} | framesize=${64} | search_type=PDR
| tc03-1518B-1t1c-ethip4-ip4base-iacldstbase-ndrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 routing and whitelist filters config with \
-| | ... | 1 phy core, 1 receive queue per NIC port. [Ver] Find NDR
-| | ... | for 1518 Byte frames using binary search start at 10GE linerate,
-| | ... | step 50kpps.
| | [Tags] | 1518B | 1C | NDRDISC
-| | ...
-| | [Template] | Discover NDR or PDR for ethip4-ip4base-iacldstbase
-| | wt=1 | rxq=1 | framesize=${1518} | min_rate=${50000} | search_type=NDR
+| | phy_cores=${1} | framesize=${1518} | search_type=NDR
| tc04-1518B-1t1c-ethip4-ip4base-iacldstbase-pdrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 routing and whitelist filters config with \
-| | ... | 1 phy core, 1 receive queue per NIC port. [Ver] Find PDR
-| | ... | for 1518 Byte frames using binary search start at 10GE linerate,
-| | ... | step 50kpps, LT=0.5%.
| | [Tags] | 1518B | 1C | PDRDISC | SKIP_PATCH
-| | ...
-| | [Template] | Discover NDR or PDR for ethip4-ip4base-iacldstbase
-| | wt=1 | rxq=1 | framesize=${1518} | min_rate=${50000} | search_type=PDR
+| | phy_cores=${1} | framesize=${1518} | search_type=PDR
| tc05-9000B-1t1c-ethip4-ip4base-iacldstbase-ndrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 routing and whitelist filters config with \
-| | ... | 1 phy core, 1 receive queue per NIC port. [Ver] Find NDR
-| | ... | for 9000 Byte frames using binary search start at 10GE linerate,
-| | ... | step 10kpps.
| | [Tags] | 9000B | 1C | NDRDISC
-| | ...
-| | [Template] | Discover NDR or PDR for ethip4-ip4base-iacldstbase
-| | wt=1 | rxq=1 | framesize=${9000} | min_rate=${10000} | search_type=NDR
+| | phy_cores=${1} | framesize=${9000} | search_type=NDR
| tc06-9000B-1t1c-ethip4-ip4base-iacldstbase-pdrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 routing and whitelist filters config with \
-| | ... | 1 phy core, 1 receive queue per NIC port. [Ver] Find PDR
-| | ... | for 9000 Byte frames using binary search start at 10GE linerate,
-| | ... | step 10kpps, LT=0.5%.
| | [Tags] | 9000B | 1C | PDRDISC | SKIP_PATCH
-| | ...
-| | [Template] | Discover NDR or PDR for ethip4-ip4base-iacldstbase
-| | wt=1 | rxq=1 | framesize=${9000} | min_rate=${10000} | search_type=PDR
+| | phy_cores=${1} | framesize=${9000} | search_type=PDR
| tc07-64B-2t2c-ethip4-ip4base-iacldstbase-ndrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 routing and whitelist filters config with \
-| | ... | 2 phy cores, 1 receive queue per NIC port. [Ver] Find NDR
-| | ... | for 64 Byte frames using binary search start at 10GE linerate,
-| | ... | step 50kpps.
| | [Tags] | 64B | 2C | NDRDISC
-| | ...
-| | [Template] | Discover NDR or PDR for ethip4-ip4base-iacldstbase
-| | wt=2 | rxq=1 | framesize=${64} | min_rate=${50000} | search_type=NDR
+| | phy_cores=${2} | framesize=${64} | search_type=NDR
| tc08-64B-2t2c-ethip4-ip4base-iacldstbase-pdrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 routing and whitelist filters config with \
-| | ... | 2 phy cores, 1 receive queue per NIC port. [Ver] Find PDR
-| | ... | for 64 Byte frames using binary search start at 10GE linerate,
-| | ... | step 50kpps, LT=0.5%.
| | [Tags] | 64B | 2C | PDRDISC | SKIP_PATCH
-| | ...
-| | [Template] | Discover NDR or PDR for ethip4-ip4base-iacldstbase
-| | wt=2 | rxq=1 | framesize=${64} | min_rate=${50000} | search_type=PDR
+| | phy_cores=${2} | framesize=${64} | search_type=PDR
| tc09-1518B-2t2c-ethip4-ip4base-iacldstbase-ndrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 routing and whitelist filters config with \
-| | ... | 2 phy cores, 1 receive queue per NIC port. [Ver] Find NDR
-| | ... | for 1518 Byte frames using binary search start at 10GE linerate,
-| | ... | step 50kpps.
| | [Tags] | 1518B | 2C | NDRDISC | SKIP_PATCH
-| | ...
-| | [Template] | Discover NDR or PDR for ethip4-ip4base-iacldstbase
-| | wt=2 | rxq=1 | framesize=${1518} | min_rate=${50000} | search_type=NDR
+| | phy_cores=${2} | framesize=${1518} | search_type=NDR
| tc10-1518B-2t2c-ethip4-ip4base-iacldstbase-pdrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 routing and whitelist filters config with \
-| | ... | 2 phy cores, 1 receive queue per NIC port. [Ver] Find PDR
-| | ... | for 1518 Byte frames using binary search start at 10GE linerate,
-| | ... | step 50kpps, LT=0.5%.
| | [Tags] | 1518B | 2C | PDRDISC | SKIP_PATCH
-| | ...
-| | [Template] | Discover NDR or PDR for ethip4-ip4base-iacldstbase
-| | wt=2 | rxq=1 | framesize=${1518} | min_rate=${50000} | search_type=PDR
+| | phy_cores=${2} | framesize=${1518} | search_type=PDR
| tc11-9000B-2t2c-ethip4-ip4base-iacldstbase-ndrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 routing and whitelist filters config with \
-| | ... | 2 phy cores, 1 receive queue per NIC port. [Ver] Find NDR
-| | ... | for 9000 Byte frames using binary search start at 10GE linerate,
-| | ... | step 10kpps.
| | [Tags] | 9000B | 2C | NDRDISC | SKIP_PATCH
-| | ...
-| | [Template] | Discover NDR or PDR for ethip4-ip4base-iacldstbase
-| | wt=2 | rxq=1 | framesize=${9000} | min_rate=${10000} | search_type=NDR
+| | phy_cores=${2} | framesize=${9000} | search_type=NDR
| tc12-9000B-2t2c-ethip4-ip4base-iacldstbase-pdrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 routing and whitelist filters config with \
-| | ... | 2 phy cores, 1 receive queue per NIC port. [Ver] Find PDR
-| | ... | for 9000 Byte frames using binary search start at 10GE linerate,
-| | ... | step 10kpps, LT=0.5%.
| | [Tags] | 9000B | 2C | PDRDISC | SKIP_PATCH
-| | ...
-| | [Template] | Discover NDR or PDR for ethip4-ip4base-iacldstbase
-| | wt=2 | rxq=1 | framesize=${9000} | min_rate=${10000} | search_type=PDR
+| | phy_cores=${2} | framesize=${9000} | search_type=PDR
| tc13-64B-4t4c-ethip4-ip4base-iacldstbase-ndrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 routing and whitelist filters config with \
-| | ... | 4 phy cores, 2 receive queue per NIC port. [Ver] Find NDR
-| | ... | for 64 Byte frames using binary search start at 10GE linerate,
-| | ... | step 50kpps.
| | [Tags] | 64B | 4C | NDRDISC
-| | ...
-| | [Template] | Discover NDR or PDR for ethip4-ip4base-iacldstbase
-| | wt=4 | rxq=2 | framesize=${64} | min_rate=${50000} | search_type=NDR
+| | phy_cores=${4} | framesize=${64} | search_type=NDR
| tc14-64B-4t4c-ethip4-ip4base-iacldstbase-pdrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 routing and whitelist filters config with \
-| | ... | 4 phy cores, 2 receive queue per NIC port. [Ver] Find PDR
-| | ... | for 64 Byte frames using binary search start at 10GE linerate,
-| | ... | step 50kpps, LT=0.5%.
| | [Tags] | 64B | 4C | PDRDISC | SKIP_PATCH
-| | ...
-| | [Template] | Discover NDR or PDR for ethip4-ip4base-iacldstbase
-| | wt=4 | rxq=2 | framesize=${64} | min_rate=${50000} | search_type=PDR
+| | phy_cores=${4} | framesize=${64} | search_type=PDR
| tc15-1518B-4t4c-ethip4-ip4base-iacldstbase-ndrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 routing and whitelist filters config with \
-| | ... | 4 phy cores, 2 receive queue per NIC port. [Ver] Find NDR
-| | ... | for 1518 Byte frames using binary search start at 10GE linerate,
-| | ... | step 50kpps.
| | [Tags] | 1518B | 4C | NDRDISC | SKIP_PATCH
-| | ...
-| | [Template] | Discover NDR or PDR for ethip4-ip4base-iacldstbase
-| | wt=4 | rxq=2 | framesize=${1518} | min_rate=${50000} | search_type=NDR
+| | phy_cores=${4} | framesize=${1518} | search_type=NDR
| tc16-1518B-4t4c-ethip4-ip4base-iacldstbase-pdrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 routing and whitelist filters config with \
-| | ... | 4 phy cores, 2 receive queue per NIC port. [Ver] Find PDR
-| | ... | for 1518 Byte frames using binary search start at 10GE linerate,
-| | ... | step 50kpps, LT=0.5%.
| | [Tags] | 1518B | 4C | PDRDISC | SKIP_PATCH
-| | ...
-| | [Template] | Discover NDR or PDR for ethip4-ip4base-iacldstbase
-| | wt=4 | rxq=2 | framesize=${1518} | min_rate=${50000} | search_type=PDR
+| | phy_cores=${4} | framesize=${1518} | search_type=PDR
| tc17-9000B-4t4c-ethip4-ip4base-iacldstbase-ndrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 routing and whitelist filters config with \
-| | ... | 4 phy cores, 2 receive queue per NIC port. [Ver] Find NDR
-| | ... | for 9000 Byte frames using binary search start at 10GE linerate,
-| | ... | step 10kpps.
| | [Tags] | 9000B | 4C | NDRDISC | SKIP_PATCH
-| | ...
-| | [Template] | Discover NDR or PDR for ethip4-ip4base-iacldstbase
-| | wt=4 | rxq=2 | framesize=${9000} | min_rate=${10000} | search_type=NDR
+| | phy_cores=${4} | framesize=${9000} | search_type=NDR
| tc18-9000B-4t4c-ethip4-ip4base-iacldstbase-pdrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 routing and whitelist filters config with \
-| | ... | 4 phy cores, 2 receive queue per NIC port. [Ver] Find PDR
-| | ... | for 9000 Byte frames using binary search start at 10GE linerate,
-| | ... | step 10kpps, LT=0.5%.
| | [Tags] | 9000B | 4C | PDRDISC | SKIP_PATCH
-| | ...
-| | [Template] | Discover NDR or PDR for ethip4-ip4base-iacldstbase
-| | wt=4 | rxq=2 | framesize=${9000} | min_rate=${10000} | search_type=PDR
+| | phy_cores=${4} | framesize=${9000} | search_type=PDR
diff --git a/tests/vpp/perf/ip4/10ge2p1x520-ethip4-ip4base-ipolicemarkbase-mrr.robot b/tests/vpp/perf/ip4/10ge2p1x520-ethip4-ip4base-ipolicemarkbase-mrr.robot
index 0f4514e764..4bb4af4be1 100644
--- a/tests/vpp/perf/ip4/10ge2p1x520-ethip4-ip4base-ipolicemarkbase-mrr.robot
+++ b/tests/vpp/perf/ip4/10ge2p1x520-ethip4-ip4base-ipolicemarkbase-mrr.robot
@@ -26,6 +26,8 @@
| ...
| Test Teardown | Tear down performance mrr test
| ...
+| Test Template | Local template
+| ...
| Documentation | *Raw results IPv4 policer test cases*
| ...
| ... | *[Top] Network Topologies:* TG-DUT1-DUT2-TG 3-node circular topology
@@ -53,17 +55,22 @@
| ${traffic_profile}= | trex-sl-3n-ethip4-ip4src253
*** Keywords ***
-| Check RR for ethip4-ip4base-ipolicemarkbase
+| Local template
| | ...
| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 routing config with ${wt} thread(s), ${wt}\
-| | ... | phy core(s), ${rxq} receive queue(s) per NIC port.
-| | ... | [Ver] Find NDR or PDR for ${framesize} frames using binary search\
-| | ... | start at 10GE linerate.
+| | ... | [Cfg] DUT runs IPv4 routing config.
+| | ... | Each DUT uses ${phy_cores} physical core(s) for worker threads.
+| | ... | [Ver] Measure MaxReceivedRate for ${framesize}B frames using single\
+| | ... | trial throughput test.
+| | ...
+| | ... | *Arguments:*
+| | ... | - framesize - Framesize in Bytes in integer or string (IMIX_v4_1).
+| | ... | Type: integer, string
+| | ... | - phy_cores - Number of physical cores. Type: integer
+| | ... | - rxq - Number of RX queues, default value: ${None}. Type: integer
| | ...
-| | [Arguments] | ${wt} | ${rxq} | ${framesize}
+| | [Arguments] | ${phy_cores} | ${framesize} | ${rxq}=${None}
| | ...
-| | # Test Variables required for test execution and test teardown
| | Set Test Variable | ${framesize}
| | ${cb}= | Set Variable If
| | ... | '${framesize}' == 'IMIX_v4_1' | ${1518} | ${framesize}
@@ -74,7 +81,7 @@
| | ${get_framesize}= | Get Frame Size | ${framesize}
| | ${max_rate}= | Calculate pps | ${s_limit} | ${get_framesize}
| | ...
-| | Given Add '${wt}' worker threads and '${rxq}' rxqueues in 3-node single-link circular topology
+| | Given Add worker threads and rxqueues to all DUTs | ${phy_cores} | ${rxq}
| | And Add PCI devices to all DUTs
| | And Run Keyword If | ${get_framesize} < ${1522}
| | ... | Add no multi seg to all DUTs
@@ -86,148 +93,49 @@
*** Test Cases ***
| tc01-64B-1t1c-ethip4-ip4base-ipolicemarkbase-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 routing and policer config with 1 \
-| | ... | phy core, 1 receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 64B frames using single trial\
-| | ... | throughput test.
-| | ...
| | [Tags] | 64B | 1C
-| | ...
-| | [Template] | Check RR for ethip4-ip4base-ipolicemarkbase
-| | wt=1 | rxq=1 | framesize=${64}
+| | phy_cores=${1} | framesize=${64}
| tc02-1518B-1t1c-ethip4-ip4base-ipolicemarkbase-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 routing and policer config with 1 \
-| | ... | phy core, 1 receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 1518B frames using single trial\
-| | ... | throughput test.
-| | ...
| | [Tags] | 1518B | 1C
-| | ...
-| | [Template] | Check RR for ethip4-ip4base-ipolicemarkbase
-| | wt=1 | rxq=1 | framesize=${1518}
+| | phy_cores=${1} | framesize=${1518}
| tc03-9000B-1t1c-ethip4-ip4base-ipolicemarkbase-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 routing and policer config with 1 \
-| | ... | phy core, 1 receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 9000B frames using single trial\
-| | ... | throughput test.
-| | ...
| | [Tags] | 9000B | 1C
-| | ...
-| | [Template] | Check RR for ethip4-ip4base-ipolicemarkbase
-| | wt=1 | rxq=1 | framesize=${9000}
+| | phy_cores=${1} | framesize=${9000}
| tc04-IMIX-1t1c-ethip4-ip4base-ipolicemarkbase-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 routing and policer config with 1 \
-| | ... | phy core, 1 receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for IMIX_v4_1 frames using single trial\
-| | ... | throughput test.
-| | ... | IMIX_v4_1 = (28x64B; 16x570B; 4x1518B)
-| | ...
| | [Tags] | IMIX | 1C
-| | ...
-| | [Template] | Check RR for ethip4-ip4base-ipolicemarkbase
-| | wt=1 | rxq=1 | framesize=IMIX_v4_1
+| | phy_cores=${1} | framesize=IMIX_v4_1
| tc05-64B-2t2c-ethip4-ip4base-ipolicemarkbase-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 routing and policer config with 2 \
-| | ... | phy cores, 1 receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 64B frames using single trial\
-| | ... | throughput test.
-| | ...
| | [Tags] | 64B | 2C
-| | ...
-| | [Template] | Check RR for ethip4-ip4base-ipolicemarkbase
-| | wt=2 | rxq=1 | framesize=${64}
+| | phy_cores=${2} | framesize=${64}
| tc06-1518B-2t2c-ethip4-ip4base-ipolicemarkbase-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 routing and policer config with 2 \
-| | ... | phy cores, 1 receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 1518B frames using single trial\
-| | ... | throughput test.
-| | ...
| | [Tags] | 1518B | 2C
-| | ...
-| | [Template] | Check RR for ethip4-ip4base-ipolicemarkbase
-| | wt=2 | rxq=1 | framesize=${1518}
+| | phy_cores=${2} | framesize=${1518}
| tc07-9000B-2t2c-ethip4-ip4base-ipolicemarkbase-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 routing and policer config with 2 \
-| | ... | phy cores, 1 receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 9000B frames using single trial\
-| | ... | throughput test.
-| | ...
| | [Tags] | 9000B | 2C
-| | ...
-| | [Template] | Check RR for ethip4-ip4base-ipolicemarkbase
-| | wt=2 | rxq=1 | framesize=${9000}
+| | phy_cores=${2} | framesize=${9000}
| tc08-IMIX-2t2c-ethip4-ip4base-ipolicemarkbase-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 routing and policer config with 2 threada, 2 \
-| | ... | phy cores, 1 receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for IMIX_v4_1 frames using single trial\
-| | ... | throughput test.
-| | ... | IMIX_v4_1 = (28x64B; 16x570B; 4x1518B)
-| | ...
| | [Tags] | IMIX | 2C
-| | ...
-| | [Template] | Check RR for ethip4-ip4base-ipolicemarkbase
-| | wt=2 | rxq=1 | framesize=IMIX_v4_1
+| | phy_cores=${2} | framesize=IMIX_v4_1
| tc09-64B-4t4c-ethip4-ip4base-ipolicemarkbase-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 routing and policer config with 4 \
-| | ... | phy cores, 2 receive queues per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 64B frames using single trial\
-| | ... | throughput test.
-| | ...
| | [Tags] | 64B | 4C
-| | ...
-| | [Template] | Check RR for ethip4-ip4base-ipolicemarkbase
-| | wt=4 | rxq=2 | framesize=${64}
+| | phy_cores=${4} | framesize=${64}
| tc10-1518B-4t4c-ethip4-ip4base-ipolicemarkbase-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 routing and policer config with 4 \
-| | ... | phy cores, 2 receive queues per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 1518B frames using single trial\
-| | ... | throughput test.
-| | ...
| | [Tags] | 1518B | 4C
-| | ...
-| | [Template] | Check RR for ethip4-ip4base-ipolicemarkbase
-| | wt=4 | rxq=2 | framesize=${1518}
+| | phy_cores=${4} | framesize=${1518}
| tc11-9000B-4t4c-ethip4-ip4base-ipolicemarkbase-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 routing and policer config with 4 \
-| | ... | phy cores, 2 receive queues per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 9000B frames using single trial\
-| | ... | throughput test.
-| | ...
| | [Tags] | 9000B | 4C
-| | ...
-| | [Template] | Check RR for ethip4-ip4base-ipolicemarkbase
-| | wt=4 | rxq=2 | framesize=${9000}
+| | phy_cores=${4} | framesize=${9000}
| tc12-IMIX-4t4c-ethip4-ip4base-ipolicemarkbase-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 routing and policer config with 4 threada, 4 \
-| | ... | phy cores, 2 receive queues per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for IMIX_v4_1 frames using single trial\
-| | ... | throughput test.
-| | ... | IMIX_v4_1 = (28x64B; 16x570B; 4x1518B)
-| | ...
| | [Tags] | IMIX | 4C
-| | ...
-| | [Template] | Check RR for ethip4-ip4base-ipolicemarkbase
-| | wt=4 | rxq=2 | framesize=IMIX_v4_1
+| | phy_cores=${4} | framesize=IMIX_v4_1
diff --git a/tests/vpp/perf/ip4/10ge2p1x520-ethip4-ip4base-ipolicemarkbase-ndrpdrdisc.robot b/tests/vpp/perf/ip4/10ge2p1x520-ethip4-ip4base-ipolicemarkbase-ndrpdrdisc.robot
index 163aac01ec..1236a95be5 100644
--- a/tests/vpp/perf/ip4/10ge2p1x520-ethip4-ip4base-ipolicemarkbase-ndrpdrdisc.robot
+++ b/tests/vpp/perf/ip4/10ge2p1x520-ethip4-ip4base-ipolicemarkbase-ndrpdrdisc.robot
@@ -27,6 +27,8 @@
| Test Teardown | Tear down performance discovery test | ${min_rate}pps
| ... | ${framesize} | ${traffic_profile}
| ...
+| Test Template | Local template
+| ...
| Documentation | *RFC2544: Pkt throughput IPv4 policer test cases*
| ...
| ... | *[Top] Network Topologies:* TG-DUT1-DUT2-TG 3-node circular topology
@@ -59,14 +61,15 @@
| ${traffic_profile} | trex-sl-3n-ethip4-ip4src253
*** Keywords ***
-| Discover NDR or PDR for ethip4-ip4base-ipolicemarkbase
+| Local template
| | [Documentation]
| | ... | [Cfg] DUT runs IPv4 routing config with ${wt} thread(s), ${wt}\
| | ... | phy core(s), ${rxq} receive queue(s) per NIC port.
| | ... | [Ver] Find NDR or PDR for ${framesize} frames using binary search\
| | ... | start at 10GE linerate.
| | ...
-| | [Arguments] | ${wt} | ${rxq} | ${framesize} | ${min_rate} | ${search_type}
+| | [Arguments] | ${phy_cores} | ${framesize} | ${search_type}
+| | ... | ${rxq}=${None} | ${min_rate}=${50000}
| | ...
| | Set Test Variable | ${framesize}
| | Set Test Variable | ${min_rate}
@@ -77,7 +80,7 @@
| | ${binary_min}= | Set Variable | ${min_rate}
| | ${binary_max}= | Set Variable | ${max_rate}
| | ${threshold}= | Set Variable | ${min_rate}
-| | Given Add '${wt}' worker threads and '${rxq}' rxqueues in 3-node single-link circular topology
+| | Given Add worker threads and rxqueues to all DUTs | ${phy_cores} | ${rxq}
| | And Add PCI devices to all DUTs
| | And Run Keyword If | ${get_framesize} < ${1522}
| | ... | Add no multi seg to all DUTs
@@ -96,199 +99,73 @@
*** Test Cases ***
| tc01-64B-1t1c-ethip4-ip4base-ipolicemarkbase-ndrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 routing and policer config with 1 \
-| | ... | phy core, 1 receive queue per NIC port. [Ver] Find NDR for 64 \
-| | ... | Byte frames using binary search start at 10GE linerate, step \
-| | ... | 50kpps.
| | [Tags] | 64B | 1C | NDRDISC
-| | ...
-| | [Template] | Discover NDR or PDR for ethip4-ip4base-ipolicemarkbase
-| | wt=1 | rxq=1 | framesize=${64} | min_rate=${50000} | search_type=NDR
+| | phy_cores=${1} | framesize=${64} | search_type=NDR
| tc02-64B-1t1c-ethip4-ip4base-ipolicemarkbase-pdrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 routing and policer config with 1 \
-| | ... | phy core, 1 receive queue per NIC port. [Ver] Find PDR for 64 \
-| | ... | Byte frames using binary search start at 10GE linerate, step \
-| | ... | 50kpps, LT=0.5%.
| | [Tags] | 64B | 1C | PDRDISC | SKIP_PATCH
-| | ...
-| | [Template] | Discover NDR or PDR for ethip4-ip4base-ipolicemarkbase
-| | wt=1 | rxq=1 | framesize=${64} | min_rate=${50000} | search_type=PDR
+| | phy_cores=${1} | framesize=${64} | search_type=PDR
| tc03-1518B-1t1c-ethip4-ip4base-ipolicemarkbase-ndrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 routing and policer config with 1 \
-| | ... | phy core, 1 receive queue per NIC port. [Ver] Find NDR for 1518 \
-| | ... | Byte frames using binary search start at 10GE linerate, step \
-| | ... | 50kpps.
| | [Tags] | 1518B | 1C | NDRDISC
-| | ...
-| | [Template] | Discover NDR or PDR for ethip4-ip4base-ipolicemarkbase
-| | wt=1 | rxq=1 | framesize=${1518} | min_rate=${50000} | search_type=NDR
+| | phy_cores=${1} | framesize=${1518} | search_type=NDR
| tc04-1518B-1t1c-ethip4-ip4base-ipolicemarkbase-pdrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 routing and policer config with 1 \
-| | ... | phy core, 1 receive queue per NIC port. [Ver] Find PDR for 1518 \
-| | ... | Byte frames using binary search start at 10GE linerate, step \
-| | ... | 50kpps, LT=0.5%.
| | [Tags] | 1518B | 1C | PDRDISC | SKIP_PATCH
-| | ...
-| | [Template] | Discover NDR or PDR for ethip4-ip4base-ipolicemarkbase
-| | wt=1 | rxq=1 | framesize=${1518} | min_rate=${50000} | search_type=PDR
+| | phy_cores=${1} | framesize=${1518} | search_type=PDR
| tc05-9000B-1t1c-ethip4-ip4base-ipolicemarkbase-ndrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 routing and policer config with 1 \
-| | ... | phy core, 1 receive queue per NIC port. [Ver] Find NDR for 9000 \
-| | ... | Byte frames using binary search start at 10GE linerate, step \
-| | ... | 10kpps.
| | [Tags] | 9000B | 1C | NDRDISC
-| | ...
-| | [Template] | Discover NDR or PDR for ethip4-ip4base-ipolicemarkbase
-| | wt=1 | rxq=1 | framesize=${9000} | min_rate=${10000} | search_type=NDR
+| | phy_cores=${1} | framesize=${9000} | search_type=NDR
| tc06-9000B-1t1c-ethip4-ip4base-ipolicemarkbase-pdrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 routing and policer config with 1 \
-| | ... | phy core, 1 receive queue per NIC port. [Ver] Find PDR for 9000 \
-| | ... | Byte frames using binary search start at 10GE linerate, step 10kpps, \
-| | ... | LT=0.5%.
| | [Tags] | 9000B | 1C | PDRDISC | SKIP_PATCH
-| | ...
-| | [Template] | Discover NDR or PDR for ethip4-ip4base-ipolicemarkbase
-| | wt=1 | rxq=1 | framesize=${9000} | min_rate=${10000} | search_type=PDR
+| | phy_cores=${1} | framesize=${9000} | search_type=PDR
| tc07-64B-2t2c-ethip4-ip4base-ipolicemarkbase-ndrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 routing and policer config with 2 \
-| | ... | phy cores, 1 receive queue per NIC port. [Ver] Find NDR for 64 \
-| | ... | Byte frames using binary search start at 10GE linerate, step \
-| | ... | 50kpps.
| | [Tags] | 64B | 2C | NDRDISC
-| | ...
-| | [Template] | Discover NDR or PDR for ethip4-ip4base-ipolicemarkbase
-| | wt=2 | rxq=1 | framesize=${64} | min_rate=${50000} | search_type=NDR
+| | phy_cores=${2} | framesize=${64} | search_type=NDR
| tc08-64B-2t2c-ethip4-ip4base-ipolicemarkbase-pdrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 routing and policer config with 2 \
-| | ... | phy cores, 1 receive queue per NIC port. [Ver] Find PDR for 64 \
-| | ... | Byte frames using binary search start at 10GE linerate, step \
-| | ... | 50kpps, LT=0.5%.
| | [Tags] | 64B | 2C | PDRDISC | SKIP_PATCH
-| | ...
-| | [Template] | Discover NDR or PDR for ethip4-ip4base-ipolicemarkbase
-| | wt=2 | rxq=1 | framesize=${64} | min_rate=${50000} | search_type=PDR
+| | phy_cores=${2} | framesize=${64} | search_type=PDR
| tc09-1518B-2t2c-ethip4-ip4base-ipolicemarkbase-ndrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 routing and policer config with 2 \
-| | ... | phy cores, 1 receive queue per NIC port. [Ver] Find NDR for 1518 \
-| | ... | Byte frames using binary search start at 10GE linerate, step \
-| | ... | 50kpps.
| | [Tags] | 1518B | 2C | NDRDISC | SKIP_PATCH
-| | ...
-| | [Template] | Discover NDR or PDR for ethip4-ip4base-ipolicemarkbase
-| | wt=2 | rxq=1 | framesize=${1518} | min_rate=${50000} | search_type=NDR
+| | phy_cores=${2} | framesize=${1518} | search_type=NDR
| tc10-1518B-2t2c-ethip4-ip4base-ipolicemarkbase-pdrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 routing and policer config with 2 \
-| | ... | phy cores, 1 receive queue per NIC port. [Ver] Find PDR for 1518 \
-| | ... | Byte frames using binary search start at 10GE linerate, step \
-| | ... | 50kpps, LT=0.5%.
| | [Tags] | 1518B | 2C | PDRDISC | SKIP_PATCH
-| | ...
-| | [Template] | Discover NDR or PDR for ethip4-ip4base-ipolicemarkbase
-| | wt=2 | rxq=1 | framesize=${1518} | min_rate=${50000} | search_type=PDR
+| | phy_cores=${2} | framesize=${1518} | search_type=PDR
| tc11-9000B-2t2c-ethip4-ip4base-ipolicemarkbase-ndrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 routing and policer config with 2 \
-| | ... | phy cores, 1 receive queue per NIC port. [Ver] Find NDR for 9000 \
-| | ... | Byte frames using binary search start at 10GE linerate, step \
-| | ... | 10kpps.
| | [Tags] | 9000B | 2C | NDRDISC | SKIP_PATCH
-| | ...
-| | [Template] | Discover NDR or PDR for ethip4-ip4base-ipolicemarkbase
-| | wt=2 | rxq=1 | framesize=${9000} | min_rate=${10000} | search_type=NDR
+| | phy_cores=${2} | framesize=${9000} | search_type=NDR
| tc12-9000B-2t2c-ethip4-ip4base-ipolicemarkbase-pdrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 routing and policer config with 2 \
-| | ... | phy cores, 1 receive queue per NIC port. [Ver] Find PDR for 9000 \
-| | ... | Byte frames using binary search start at 10GE linerate, step 10kpps, \
-| | ... | LT=0.5%.
| | [Tags] | 9000B | 2C | PDRDISC | SKIP_PATCH
-| | ...
-| | [Template] | Discover NDR or PDR for ethip4-ip4base-ipolicemarkbase
-| | wt=2 | rxq=1 | framesize=${9000} | min_rate=${10000} | search_type=PDR
+| | phy_cores=${2} | framesize=${9000} | search_type=PDR
| tc13-64B-4t4c-ethip4-ip4base-ipolicemarkbase-ndrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 routing and policer config with 4 \
-| | ... | phy cores, 2 receive queue per NIC port. [Ver] Find NDR for 64 \
-| | ... | Byte frames using binary search start at 10GE linerate, step \
-| | ... | 50kpps.
| | [Tags] | 64B | 4C | NDRDISC
-| | ...
-| | [Template] | Discover NDR or PDR for ethip4-ip4base-ipolicemarkbase
-| | wt=4 | rxq=2 | framesize=${64} | min_rate=${50000} | search_type=NDR
+| | phy_cores=${4} | framesize=${64} | search_type=NDR
| tc14-64B-4t4c-ethip4-ip4base-ipolicemarkbase-pdrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 routing and policer config with 4 \
-| | ... | phy cores, 2 receive queue per NIC port. [Ver] Find PDR for 64 \
-| | ... | Byte frames using binary search start at 10GE linerate, step \
-| | ... | 50kpps, LT=0.5%.
| | [Tags] | 64B | 4C | PDRDISC | SKIP_PATCH
-| | ...
-| | [Template] | Discover NDR or PDR for ethip4-ip4base-ipolicemarkbase
-| | wt=4 | rxq=2 | framesize=${64} | min_rate=${50000} | search_type=PDR
+| | phy_cores=${4} | framesize=${64} | search_type=PDR
| tc15-1518B-4t4c-ethip4-ip4base-ipolicemarkbase-ndrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 routing and policer config with 4 \
-| | ... | phy cores, 2 receive queue per NIC port. [Ver] Find NDR for 1518 \
-| | ... | Byte frames using binary search start at 10GE linerate, step \
-| | ... | 50kpps.
| | [Tags] | 1518B | 4C | NDRDISC | SKIP_PATCH
-| | ...
-| | [Template] | Discover NDR or PDR for ethip4-ip4base-ipolicemarkbase
-| | wt=4 | rxq=2 | framesize=${1518} | min_rate=${50000} | search_type=NDR
+| | phy_cores=${4} | framesize=${1518} | search_type=NDR
| tc16-1518B-4t4c-ethip4-ip4base-ipolicemarkbase-pdrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 routing and policer config with 4 \
-| | ... | phy cores, 2 receive queue per NIC port. [Ver] Find PDR for 1518 \
-| | ... | Byte frames using binary search start at 10GE linerate, step \
-| | ... | 50kpps, LT=0.5%.
| | [Tags] | 1518B | 4C | PDRDISC | SKIP_PATCH
-| | ...
-| | [Template] | Discover NDR or PDR for ethip4-ip4base-ipolicemarkbase
-| | wt=4 | rxq=2 | framesize=${1518} | min_rate=${50000} | search_type=PDR
+| | phy_cores=${4} | framesize=${1518} | search_type=PDR
| tc17-9000B-4t4c-ethip4-ip4base-ipolicemarkbase-ndrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 routing and policer config with 4 \
-| | ... | phy cores, 2 receive queue per NIC port. [Ver] Find NDR for 9000 \
-| | ... | Byte frames using binary search start at 10GE linerate, step \
-| | ... | 10kpps.
| | [Tags] | 9000B | 4C | NDRDISC | SKIP_PATCH
-| | ...
-| | [Template] | Discover NDR or PDR for ethip4-ip4base-ipolicemarkbase
-| | wt=4 | rxq=2 | framesize=${9000} | min_rate=${10000} | search_type=NDR
+| | phy_cores=${4} | framesize=${9000} | search_type=NDR
| tc18-9000B-4t4c-ethip4-ip4base-ipolicemarkbase-pdrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 routing and policer config with 4 \
-| | ... | phy cores, 2 receive queue per NIC port. [Ver] Find PDR for 9000 \
-| | ... | Byte frames using binary search start at 10GE linerate, step 10kpps, \
-| | ... | LT=0.5%.
| | [Tags] | 9000B | 4C | PDRDISC | SKIP_PATCH
-| | ...
-| | [Template] | Discover NDR or PDR for ethip4-ip4base-ipolicemarkbase
-| | wt=4 | rxq=2 | framesize=${9000} | min_rate=${10000} | search_type=PDR
+| | phy_cores=${4} | framesize=${9000} | search_type=PDR
diff --git a/tests/vpp/perf/ip4/10ge2p1x520-ethip4-ip4base-mrr.robot b/tests/vpp/perf/ip4/10ge2p1x520-ethip4-ip4base-mrr.robot
index 87f2f3c09c..17c3e77a04 100644
--- a/tests/vpp/perf/ip4/10ge2p1x520-ethip4-ip4base-mrr.robot
+++ b/tests/vpp/perf/ip4/10ge2p1x520-ethip4-ip4base-mrr.robot
@@ -24,6 +24,8 @@
| Test Setup | Set up performance test
| Test Teardown | Tear down performance mrr test
| ...
+| Test Template | Local template
+| ...
| Documentation | *Raw results IPv4 routing test cases*
| ...
| ... | *[Top] Network Topologies:* TG-DUT1-DUT2-TG 3-node circular topology
@@ -48,22 +50,26 @@
| ${traffic_profile}= | trex-sl-3n-ethip4-ip4src253
*** Keywords ***
-| Check RR for ethip4-ip4base
-| | ...
+| Local template
| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 routing config with ${wt} thread(s), ${wt}\
-| | ... | phy core(s), ${rxq} receive queue(s) per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for ${framesize} frames using single\
+| | ... | [Cfg] DUT runs IPv4 routing config.
+| | ... | Each DUT uses ${phy_cores} physical core(s) for worker threads.
+| | ... | [Ver] Measure MaxReceivedRate for ${framesize}B frames using single\
| | ... | trial throughput test.
| | ...
-| | [Arguments] | ${wt} | ${rxq} | ${framesize}
+| | ... | *Arguments:*
+| | ... | - framesize - Framesize in Bytes in integer or string (IMIX_v4_1).
+| | ... | Type: integer, string
+| | ... | - phy_cores - Number of physical cores. Type: integer
+| | ... | - rxq - Number of RX queues, default value: ${None}. Type: integer
+| | ...
+| | [Arguments] | ${phy_cores} | ${framesize} | ${rxq}=${None}
| | ...
-| | # Test Variables required for test execution and test teardown
| | Set Test Variable | ${framesize}
| | ${get_framesize}= | Get Frame Size | ${framesize}
| | ${max_rate}= | Calculate pps | ${s_limit} | ${framesize}
| | ...
-| | Given Add '${wt}' worker threads and '${rxq}' rxqueues in 3-node single-link circular topology
+| | Given Add worker threads and rxqueues to all DUTs | ${phy_cores} | ${rxq}
| | And Add PCI devices to all DUTs
| | And Run Keyword If | ${get_framesize} < ${1522}
| | ... | Add no multi seg to all DUTs
@@ -74,148 +80,49 @@
*** Test Cases ***
| tc01-64B-1t1c-ethip4-ip4base-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 routing config with 1 phy core,\
-| | ... | 1 receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 64B frames using single trial\
-| | ... | throughput test.
-| | ...
| | [Tags] | 64B | 1C
-| | ...
-| | [Template] | Check RR for ethip4-ip4base
-| | wt=1 | rxq=1 | framesize=${64}
+| | phy_cores=${1} | framesize=${64}
| tc02-1518B-1t1c-ethip4-ip4base-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 routing config with 1 phy core,\
-| | ... | 1 receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 1518B frames using single\
-| | ... | trial throughput test.
-| | ...
| | [Tags] | 1518B | 1C
-| | ...
-| | [Template] | Check RR for ethip4-ip4base
-| | wt=1 | rxq=1 | framesize=${1518}
+| | phy_cores=${1} | framesize=${1518}
| tc03-9000B-1t1c-ethip4-ip4base-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 routing config with 1 phy core,\
-| | ... | 1 receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 9000B frames using single\
-| | ... | trial throughput test.
-| | ...
| | [Tags] | 9000B | 1C
-| | ...
-| | [Template] | Check RR for ethip4-ip4base
-| | wt=1 | rxq=1 | framesize=${9000}
+| | phy_cores=${1} | framesize=${9000}
| tc04-IMIX-1t1c-ethip4-ip4base-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 routing config with \
-| | ... | 1 phy core, 1 receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for IMIX_v4_1 frames using single trial\
-| | ... | throughput test.
-| | ... | IMIX_v4_1 = (28x64B; 16x570B; 4x1518B)
-| | ...
| | [Tags] | IMIX | 1C
-| | ...
-| | [Template] | Check RR for ethip4-ip4base
-| | wt=1 | rxq=1 | framesize=IMIX_v4_1
+| | phy_cores=${1} | framesize=IMIX_v4_1
| tc05-64B-2t2c-ethip4-ip4base-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 routing config with 2 phy cores,\
-| | ... | 1 receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 64B frames using single trial\
-| | ... | throughput test.
-| | ...
| | [Tags] | 64B | 2C
-| | ...
-| | [Template] | Check RR for ethip4-ip4base
-| | wt=2 | rxq=1 | framesize=${64}
+| | phy_cores=${2} | framesize=${64}
| tc06-1518B-2t2c-ethip4-ip4base-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 routing config with 2 phy cores,\
-| | ... | 1 receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 1518B frames using single\
-| | ... | trial throughput test.
-| | ...
| | [Tags] | 1518B | 2C
-| | ...
-| | [Template] | Check RR for ethip4-ip4base
-| | wt=2 | rxq=1 | framesize=${1518}
+| | phy_cores=${2} | framesize=${1518}
| tc07-9000B-2t2c-ethip4-ip4base-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 routing config with 2 phy cores,\
-| | ... | 1 receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 9000B frames using single\
-| | ... | trial throughput test.
-| | ...
| | [Tags] | 9000B | 2C
-| | ...
-| | [Template] | Check RR for ethip4-ip4base
-| | wt=2 | rxq=1 | framesize=${9000}
+| | phy_cores=${2} | framesize=${9000}
| tc08-IMIX-2t2c-ethip4-ip4base-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 routing config with \
-| | ... | 2 phy cores, 1 receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for IMIX_v4_1 frames using single trial\
-| | ... | throughput test.
-| | ... | IMIX_v4_1 = (28x64B; 16x570B; 4x1518B)
-| | ...
| | [Tags] | IMIX | 2C
-| | ...
-| | [Template] | Check RR for ethip4-ip4base
-| | wt=2 | rxq=1 | framesize=IMIX_v4_1
+| | phy_cores=${2} | framesize=IMIX_v4_1
| tc09-64B-4t4c-ethip4-ip4base-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 routing config with 4 phy cores,\
-| | ... | 2 receive queues per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 64B frames using single trial\
-| | ... | throughput test.
-| | ...
| | [Tags] | 64B | 4C
-| | ...
-| | [Template] | Check RR for ethip4-ip4base
-| | wt=4 | rxq=2 | framesize=${64}
+| | phy_cores=${4} | framesize=${64}
| tc10-1518B-4t4c-ethip4-ip4base-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 routing config with 4 phy cores,\
-| | ... | 2 receive queues per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 1518B frames using single\
-| | ... | trial throughput test.
-| | ...
| | [Tags] | 1518B | 4C
-| | ...
-| | [Template] | Check RR for ethip4-ip4base
-| | wt=4 | rxq=2 | framesize=${1518}
+| | phy_cores=${4} | framesize=${1518}
| tc11-9000B-4t4c-ethip4-ip4base-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 routing config with 4 phy cores,\
-| | ... | 2 receive queues per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 9000B frames using single\
-| | ... | trial throughput test.
-| | ...
| | [Tags] | 9000B | 4C
-| | ...
-| | [Template] | Check RR for ethip4-ip4base
-| | wt=4 | rxq=2 | framesize=${9000}
+| | phy_cores=${4} | framesize=${9000}
| tc12-IMIX-4t4c-ethip4-ip4base-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 routing config with \
-| | ... | 4 phy cores, 2 receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for IMIX_v4_1 frames using single trial\
-| | ... | throughput test.
-| | ... | IMIX_v4_1 = (28x64B; 16x570B; 4x1518B)
-| | ...
| | [Tags] | IMIX | 4C
-| | ...
-| | [Template] | Check RR for ethip4-ip4base
-| | wt=4 | rxq=2 | framesize=IMIX_v4_1
+| | phy_cores=${4} | framesize=IMIX_v4_1
diff --git a/tests/vpp/perf/ip4/10ge2p1x520-ethip4-ip4base-ndrpdr.robot b/tests/vpp/perf/ip4/10ge2p1x520-ethip4-ip4base-ndrpdr.robot
index 981eb636e7..c58515121e 100644
--- a/tests/vpp/perf/ip4/10ge2p1x520-ethip4-ip4base-ndrpdr.robot
+++ b/tests/vpp/perf/ip4/10ge2p1x520-ethip4-ip4base-ndrpdr.robot
@@ -48,7 +48,7 @@
| Test Teardown | Tear down performance discovery test | ${min_rate}pps
| ... | ${framesize} | ${traffic_profile}
| ...
-| Test Template | Discover NDRPDR for ethip4-ip4base
+| Test Template | Local template
*** Variables ***
# X520-DA2 bandwidth limit
@@ -57,21 +57,21 @@
| ${traffic_profile} | trex-sl-3n-ethip4-ip4src253
*** Keywords ***
-| Discover NDRPDR for ethip4-ip4base
+| Local template
| | [Documentation]
| | ... | [Cfg] DUT runs IPv4 routing config with ${wt} thread(s), ${wt}\
| | ... | phy core(s), ${rxq} receive queue(s) per NIC port.
| | ... | [Ver] Find NDR and PDR for ${framesize} frames using optimized search\
| | ... | start at 10GE linerate.
| | ...
-| | [Arguments] | ${wt} | ${rxq} | ${framesize}
+| | [Arguments] | ${phy_cores} | ${framesize} | ${rxq}=${None}
| | ...
| | Set Test Variable | ${framesize}
| | Set Test Variable | ${min_rate} | ${20000}
| | ${get_framesize}= | Get Frame Size | ${framesize}
| | ${max_uniditrectional_rate}= | Calculate pps | ${s_limit} | ${get_framesize}
| | ${max_rate}= | Evaluate | 2*${max_uniditrectional_rate}
-| | Given Add '${wt}' worker threads and '${rxq}' rxqueues in 3-node single-link circular topology
+| | Given Add worker threads and rxqueues to all DUTs | ${phy_cores} | ${rxq}
| | And Add PCI devices to all DUTs
| | And Run Keyword If | ${get_framesize} < ${1522}
| | ... | Add no multi seg to all DUTs
@@ -83,60 +83,48 @@
*** Test Cases ***
| tc01-64B-1t1c-ethip4-ip4base-ndrpdr
| | [Tags] | 64B | 1C
-| | ...
-| | wt=1 | rxq=1 | framesize=${64}
+| | phy_cores=${1} | framesize=${64}
| tc02-1518B-1t1c-ethip4-ip4base-ndrpdr
| | [Tags] | 1518B | 1C
-| | ...
-| | wt=1 | rxq=1 | framesize=${1518}
+| | phy_cores=${1} | framesize=${1518}
| tc03-9000B-1t1c-ethip4-ip4base-ndrpdr
| | [Tags] | 1518B | 1C
-| | ...
-| | wt=1 | rxq=1 | framesize=${9000}
+| | phy_cores=${1} | framesize=${9000}
| tc04-IMIX-1t1c-ethip4-ip4base-ndrpdr
| | [Tags] | IMIX | 1C
-| | ...
-| | wt=1 | rxq=1 | framesize=IMIX_v4_1
+| | phy_cores=${1} | framesize=IMIX_v4_1
| tc05-64B-2t2c-ethip4-ip4base-ndrpdr
| | [Tags] | 64B | 2C
-| | ...
-| | wt=2 | rxq=1 | framesize=${64}
+| | phy_cores=${2} | framesize=${64}
| tc06-1518B-2t2c-ethip4-ip4base-ndrpdr
| | [Tags] | 1518B | 2C
-| | ...
-| | wt=2 | rxq=1 | framesize=${1518}
+| | phy_cores=${2} | framesize=${1518}
| tc07-9000B-2t2c-ethip4-ip4base-ndrpdr
| | [Tags] | 9000B | 2C
-| | ...
-| | wt=2 | rxq=1 | framesize=${9000}
+| | phy_cores=${2} | framesize=${9000}
| tc08-IMIX-2t2c-ethip4-ip4base-ndrpdr
| | [Tags] | IMIX | 2C
-| | ...
-| | wt=2 | rxq=1 | framesize=IMIX_v4_1
+| | phy_cores=${2} | framesize=IMIX_v4_1
| tc09-64B-4t4c-ethip4-ip4base-ndrpdr
| | [Tags] | 64B | 4C
-| | ...
-| | wt=4 | rxq=2 | framesize=${64}
+| | phy_cores=${4} | framesize=${64}
| tc10-1518B-4t4c-ethip4-ip4base-ndrpdr
| | [Tags] | 1518B | 4C
-| | ...
-| | wt=4 | rxq=2 | framesize=${1518}
+| | phy_cores=${4} | framesize=${1518}
| tc11-9000B-4t4c-ethip4-ip4base-ndrpdr
| | [Tags] | 9000B | 4C
-| | ...
-| | wt=4 | rxq=2 | framesize=${9000}
+| | phy_cores=${4} | framesize=${9000}
| tc12-IMIX-4t4c-ethip4-ip4base-ndrpdr
| | [Tags] | IMIX | 4C
-| | ...
-| | wt=4 | rxq=2 | framesize=IMIX_v4_1
+| | phy_cores=${4} | framesize=IMIX_v4_1
diff --git a/tests/vpp/perf/ip4/10ge2p1x520-ethip4-ip4base-ndrpdrdisc.robot b/tests/vpp/perf/ip4/10ge2p1x520-ethip4-ip4base-ndrpdrdisc.robot
index 62bdfd365c..26c9e473eb 100644
--- a/tests/vpp/perf/ip4/10ge2p1x520-ethip4-ip4base-ndrpdrdisc.robot
+++ b/tests/vpp/perf/ip4/10ge2p1x520-ethip4-ip4base-ndrpdrdisc.robot
@@ -26,6 +26,8 @@
| Test Teardown | Tear down performance discovery test | ${min_rate}pps
| ... | ${framesize} | ${traffic_profile}
| ...
+| Test Template | Local template
+| ...
| Documentation | *RFC2544: Pkt throughput IPv4 routing test cases*
| ...
| ... | *[Top] Network Topologies:* TG-DUT1-DUT2-TG 3-node circular topology
@@ -55,14 +57,15 @@
| ${traffic_profile} | trex-sl-3n-ethip4-ip4src253
*** Keywords ***
-| Discover NDR or PDR for ethip4-ip4base
+| Local template
| | [Documentation]
| | ... | [Cfg] DUT runs IPv4 routing config with ${wt} thread(s), ${wt}\
| | ... | phy core(s), ${rxq} receive queue(s) per NIC port.
| | ... | [Ver] Find NDR or PDR for ${framesize} frames using binary search\
| | ... | start at 10GE linerate.
| | ...
-| | [Arguments] | ${wt} | ${rxq} | ${framesize} | ${min_rate} | ${search_type}
+| | [Arguments] | ${phy_cores} | ${framesize} | ${search_type}
+| | ... | ${rxq}=${None} | ${min_rate}=${50000}
| | ...
| | Set Test Variable | ${framesize}
| | Set Test Variable | ${min_rate}
@@ -71,7 +74,7 @@
| | ${binary_min}= | Set Variable | ${min_rate}
| | ${binary_max}= | Set Variable | ${max_rate}
| | ${threshold}= | Set Variable | ${min_rate}
-| | Given Add '${wt}' worker threads and '${rxq}' rxqueues in 3-node single-link circular topology
+| | Given Add worker threads and rxqueues to all DUTs | ${phy_cores} | ${rxq}
| | And Add PCI devices to all DUTs
| | And Run Keyword If | ${get_framesize} < ${1522}
| | ... | Add no multi seg to all DUTs
@@ -89,181 +92,73 @@
*** Test Cases ***
| tc01-64B-1t1c-ethip4-ip4base-ndrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 routing config with 1 phy core, \
-| | ... | 1 receive queue per NIC port. [Ver] Find NDR for 64 Byte frames
-| | ... | using binary search start at 10GE linerate, step 50kpps.
| | [Tags] | 64B | 1C | NDRDISC
-| | ...
-| | [Template] | Discover NDR or PDR for ethip4-ip4base
-| | wt=1 | rxq=1 | framesize=${64} | min_rate=${50000} | search_type=NDR
+| | phy_cores=${1} | framesize=${64} | search_type=NDR
| tc02-64B-1t1c-ethip4-ip4base-pdrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 routing config with 1 phy core, \
-| | ... | 1 receive queue per NIC port. [Ver] Find PDR for 64 Byte frames
-| | ... | using binary search start at 10GE linerate, step 50kpps, LT=0.5%.
| | [Tags] | 64B | 1C | PDRDISC | SKIP_PATCH
-| | ...
-| | [Template] | Discover NDR or PDR for ethip4-ip4base
-| | wt=1 | rxq=1 | framesize=${64} | min_rate=${50000} | search_type=PDR
+| | phy_cores=${1} | framesize=${64} | search_type=PDR
| tc03-1518B-1t1c-ethip4-ip4base-ndrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 routing config with 1 phy core, \
-| | ... | 1 receive queue per NIC port. [Ver] Find NDR for 1518 Byte frames
-| | ... | using binary search start at 10GE linerate, step 50kpps.
| | [Tags] | 1518B | 1C | NDRDISC
-| | ...
-| | [Template] | Discover NDR or PDR for ethip4-ip4base
-| | wt=1 | rxq=1 | framesize=${1518} | min_rate=${50000} | search_type=NDR
+| | phy_cores=${1} | framesize=${1518} | search_type=NDR
| tc04-1518B-1t1c-ethip4-ip4base-pdrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 routing config with 1 phy core, \
-| | ... | 1 receive queue per NIC port. [Ver] Find PDR for 1518 Byte frames
-| | ... | using binary search start at 10GE linerate, step 50kpps, LT=0.5%.
| | [Tags] | 1518B | 1C | PDRDISC | SKIP_PATCH
-| | ...
-| | [Template] | Discover NDR or PDR for ethip4-ip4base
-| | wt=1 | rxq=1 | framesize=${1518} | min_rate=${50000} | search_type=PDR
+| | phy_cores=${1} | framesize=${1518} | search_type=PDR
| tc05-9000B-1t1c-ethip4-ip4base-ndrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 routing config with 1 phy core, \
-| | ... | 1 receive queue per NIC port. [Ver] Find NDR for 9000 Byte frames
-| | ... | using binary search start at 10GE linerate, step 10kpps.
| | [Tags] | 9000B | 1C | NDRDISC
-| | ...
-| | [Template] | Discover NDR or PDR for ethip4-ip4base
-| | wt=1 | rxq=1 | framesize=${9000} | min_rate=${10000} | search_type=NDR
+| | phy_cores=${1} | framesize=${9000} | search_type=NDR
| tc06-9000B-1t1c-ethip4-ip4base-pdrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 routing config with 1 phy core, \
-| | ... | 1 receive queue per NIC port. [Ver] Find PDR for 9000 Byte frames
-| | ... | using binary search start at 10GE linerate, step 10kpps, LT=0.5%.
| | [Tags] | 9000B | 1C | PDRDISC | SKIP_PATCH
-| | ...
-| | [Template] | Discover NDR or PDR for ethip4-ip4base
-| | wt=1 | rxq=1 | framesize=${9000} | min_rate=${10000} | search_type=PDR
+| | phy_cores=${1} | framesize=${9000} | search_type=PDR
| tc07-64B-2t2c-ethip4-ip4base-ndrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 routing config with 2 phy cores, \
-| | ... | 1 receive queue per NIC port. [Ver] Find NDR for 64 Byte frames
-| | ... | using binary search start at 10GE linerate, step 50kpps.
| | [Tags] | 64B | 2C | NDRDISC
-| | ...
-| | [Template] | Discover NDR or PDR for ethip4-ip4base
-| | wt=2 | rxq=1 | framesize=${64} | min_rate=${50000} | search_type=NDR
+| | phy_cores=${2} | framesize=${64} | search_type=NDR
| tc08-64B-2t2c-ethip4-ip4base-pdrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 routing config with 2 phy cores, \
-| | ... | 1 receive queue per NIC port. [Ver] Find PDR for 64 Byte frames
-| | ... | using binary search start at 10GE linerate, step 50kpps, LT=0.5%.
| | [Tags] | 64B | 2C | PDRDISC | SKIP_PATCH
-| | ...
-| | [Template] | Discover NDR or PDR for ethip4-ip4base
-| | wt=2 | rxq=1 | framesize=${64} | min_rate=${50000} | search_type=PDR
+| | phy_cores=${2} | framesize=${64} | search_type=PDR
| tc09-1518B-2t2c-ethip4-ip4base-ndrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 routing config with 2 phy cores, \
-| | ... | 1 receive queue per NIC port. [Ver] Find NDR for 1518 Byte frames
-| | ... | using binary search start at 10GE linerate, step 50kpps.
| | [Tags] | 1518B | 2C | NDRDISC | SKIP_PATCH
-| | ...
-| | [Template] | Discover NDR or PDR for ethip4-ip4base
-| | wt=2 | rxq=1 | framesize=${1518} | min_rate=${50000} | search_type=NDR
+| | phy_cores=${2} | framesize=${1518} | search_type=NDR
| tc10-1518B-2t2c-ethip4-ip4base-pdrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 routing config with 2 phy cores, \
-| | ... | 1 receive queue per NIC port. [Ver] Find PDR for 1518 Byte frames
-| | ... | using binary search start at 10GE linerate, step 50kpps, LT=0.5%.
| | [Tags] | 1518B | 2C | PDRDISC | SKIP_PATCH
-| | ...
-| | [Template] | Discover NDR or PDR for ethip4-ip4base
-| | wt=2 | rxq=1 | framesize=${1518} | min_rate=${50000} | search_type=PDR
+| | phy_cores=${2} | framesize=${1518} | search_type=PDR
| tc11-9000B-2t2c-ethip4-ip4base-ndrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 routing config with 2 phy cores, \
-| | ... | 1 receive queue per NIC port. [Ver] Find NDR for 9000 Byte frames
-| | ... | using binary search start at 10GE linerate, step 10kpps.
| | [Tags] | 9000B | 2C | NDRDISC | SKIP_PATCH
-| | ...
-| | [Template] | Discover NDR or PDR for ethip4-ip4base
-| | wt=2 | rxq=1 | framesize=${9000} | min_rate=${10000} | search_type=NDR
+| | phy_cores=${2} | framesize=${9000} | search_type=NDR
| tc12-9000B-2t2c-ethip4-ip4base-pdrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 routing config with 2 phy cores, \
-| | ... | 1 receive queue per NIC port. [Ver] Find PDR for 9000 Byte frames
-| | ... | using binary search start at 10GE linerate, step 10kpps, LT=0.5%.
| | [Tags] | 9000B | 2C | PDRDISC | SKIP_PATCH
-| | ...
-| | [Template] | Discover NDR or PDR for ethip4-ip4base
-| | wt=2 | rxq=1 | framesize=${9000} | min_rate=${10000} | search_type=PDR
+| | phy_cores=${2} | framesize=${9000} | search_type=PDR
| tc13-64B-4t4c-ethip4-ip4base-ndrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 routing config with 4 phy cores, \
-| | ... | 2 receive queues per NIC port. [Ver] Find NDR for 64 Byte frames
-| | ... | using binary search start at 10GE linerate, step 50kpps.
| | [Tags] | 64B | 4C | NDRDISC
-| | ...
-| | [Template] | Discover NDR or PDR for ethip4-ip4base
-| | wt=4 | rxq=2 | framesize=${64} | min_rate=${50000} | search_type=NDR
+| | phy_cores=${4} | framesize=${64} | search_type=NDR
| tc14-64B-4t4c-ethip4-ip4base-pdrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 routing config with 4 phy cores, \
-| | ... | 2 receive queues per NIC port. [Ver] Find PDR for 64 Byte frames
-| | ... | using binary search start at 10GE linerate, step 50kpps, LT=0.5%.
| | [Tags] | 64B | 4C | PDRDISC | SKIP_PATCH
-| | ...
-| | [Template] | Discover NDR or PDR for ethip4-ip4base
-| | wt=4 | rxq=2 | framesize=${64} | min_rate=${50000} | search_type=PDR
+| | phy_cores=${4} | framesize=${64} | search_type=PDR
| tc15-1518B-4t4c-ethip4-ip4base-ndrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 routing config with 4 phy cores, \
-| | ... | 2 receive queues per NIC port. [Ver] Find NDR for 1518 Byte frames
-| | ... | using binary search start at 10GE linerate, step 50kpps.
| | [Tags] | 1518B | 4C | NDRDISC | SKIP_PATCH
-| | ...
-| | [Template] | Discover NDR or PDR for ethip4-ip4base
-| | wt=4 | rxq=2 | framesize=${1518} | min_rate=${50000} | search_type=NDR
+| | phy_cores=${4} | framesize=${1518} | search_type=NDR
| tc16-1518B-4t4c-ethip4-ip4base-pdrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 routing config with 4 phy cores, \
-| | ... | 2 receive queues per NIC port. [Ver] Find PDR for 1518 Byte frames
-| | ... | using binary search start at 10GE linerate, step 50kpps, LT=0.5%.
| | [Tags] | 1518B | 4C | PDRDISC | SKIP_PATCH
-| | ...
-| | [Template] | Discover NDR or PDR for ethip4-ip4base
-| | wt=4 | rxq=2 | framesize=${1518} | min_rate=${50000} | search_type=PDR
+| | phy_cores=${4} | framesize=${1518} | search_type=PDR
| tc17-9000B-4t4c-ethip4-ip4base-ndrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 routing config with 4 phy cores, \
-| | ... | 2 receive queues per NIC port. [Ver] Find NDR for 9000 Byte frames
-| | ... | using binary search start at 10GE linerate, step 10kpps.
| | [Tags] | 9000B | 4C | NDRDISC | SKIP_PATCH
-| | ...
-| | [Template] | Discover NDR or PDR for ethip4-ip4base
-| | wt=4 | rxq=2 | framesize=${9000} | min_rate=${10000} | search_type=NDR
+| | phy_cores=${4} | framesize=${9000} | search_type=NDR
| tc18-9000B-4t4c-ethip4-ip4base-pdrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 routing config with 4 phy cores, \
-| | ... | 2 receive queues per NIC port. [Ver] Find PDR for 9000 Byte frames
-| | ... | using binary search start at 10GE linerate, step 10kpps, LT=0.5%.
| | [Tags] | 9000B | 4C | PDRDISC | SKIP_PATCH
-| | ...
-| | [Template] | Discover NDR or PDR for ethip4-ip4base
-| | wt=4 | rxq=2 | framesize=${9000} | min_rate=${10000} | search_type=PDR
+| | phy_cores=${4} | framesize=${9000} | search_type=PDR
diff --git a/tests/vpp/perf/ip4/10ge2p1x520-ethip4-ip4scale200k-mrr.robot b/tests/vpp/perf/ip4/10ge2p1x520-ethip4-ip4scale200k-mrr.robot
index dea047b5fe..e1f57f09fd 100644
--- a/tests/vpp/perf/ip4/10ge2p1x520-ethip4-ip4scale200k-mrr.robot
+++ b/tests/vpp/perf/ip4/10ge2p1x520-ethip4-ip4scale200k-mrr.robot
@@ -25,6 +25,8 @@
| ...
| Test Teardown | Tear down performance mrr test
| ...
+| Test Template | Local template
+| ...
| Documentation | *Raw results IPv4 routing test cases*
| ...
| ... | *[Top] Network Topologies:* TG-DUT1-DUT2-TG 3-node circular topology
@@ -50,22 +52,27 @@
| ${traffic_profile}= | trex-sl-3n-ethip4-ip4dst${rts_per_flow}
*** Keywords ***
-| Check RR for ethip4-ip4scale200k
+| Local template
| | ...
| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 routing config with ${wt} thread(s), ${wt}\
-| | ... | phy core(s), ${rxq} receive queue(s) per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for ${framesize} frames using single\
+| | ... | [Cfg] DUT runs IPv4 routing config.
+| | ... | Each DUT uses ${phy_cores} physical core(s) for worker threads.
+| | ... | [Ver] Measure MaxReceivedRate for ${framesize}B frames using single\
| | ... | trial throughput test.
| | ...
-| | [Arguments] | ${wt} | ${rxq} | ${framesize}
+| | ... | *Arguments:*
+| | ... | - framesize - Framesize in Bytes in integer or string (IMIX_v4_1).
+| | ... | Type: integer, string
+| | ... | - phy_cores - Number of physical cores. Type: integer
+| | ... | - rxq - Number of RX queues, default value: ${None}. Type: integer
+| | ...
+| | [Arguments] | ${phy_cores} | ${framesize} | ${rxq}=${None}
| | ...
-| | # Test Variables required for test execution and test teardown
| | Set Test Variable | ${framesize}
| | ${get_framesize}= | Get Frame Size | ${framesize}
| | ${max_rate}= | Calculate pps | ${s_limit} | ${framesize}
| | ...
-| | Given Add '${wt}' worker threads and '${rxq}' rxqueues in 3-node single-link circular topology
+| | Given Add worker threads and rxqueues to all DUTs | ${phy_cores} | ${rxq}
| | And Add PCI devices to all DUTs
| | And Run Keyword If | ${get_framesize} < ${1522}
| | ... | Add no multi seg to all DUTs
@@ -77,148 +84,49 @@
*** Test Cases ***
| tc01-64B-1t1c-ethip4-ip4scale200k-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 routing config with 1 phy core, \
-| | ... | 1 receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 64B frames using single trial\
-| | ... | throughput test.
-| | ...
| | [Tags] | 64B | 1C
-| | ...
-| | [Template] | Check RR for ethip4-ip4scale200k
-| | wt=1 | rxq=1 | framesize=${64}
+| | phy_cores=${1} | framesize=${64}
| tc02-1518B-1t1c-ethip4-ip4scale200k-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 routing config with 1 phy core, \
-| | ... | 1 receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 1518B frames using single\
-| | ... | trial throughput test.
-| | ...
| | [Tags] | 1518B | 1C
-| | ...
-| | [Template] | Check RR for ethip4-ip4scale200k
-| | wt=1 | rxq=1 | framesize=${1518}
+| | phy_cores=${1} | framesize=${1518}
| tc03-9000B-1t1c-ethip4-ip4scale200k-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 routing config with 1 phy core, \
-| | ... | 1 receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 9000B frames using single\
-| | ... | trial throughput test.
-| | ...
| | [Tags] | 9000B | 1C
-| | ...
-| | [Template] | Check RR for ethip4-ip4scale200k
-| | wt=1 | rxq=1 | framesize=${9000}
+| | phy_cores=${1} | framesize=${9000}
| tc04-IMIX-1t1c-ethip4-ip4scale200k-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 routing config with \
-| | ... | 1 phy core, 1 receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for IMIX_v4_1 frames using single trial\
-| | ... | throughput test.
-| | ... | IMIX_v4_1 = (28x64B; 16x570B; 4x1518B)
-| | ...
| | [Tags] | IMIX | 1C
-| | ...
-| | [Template] | Check RR for ethip4-ip4scale200k
-| | wt=1 | rxq=1 | framesize=IMIX_v4_1
+| | phy_cores=${1} | framesize=IMIX_v4_1
| tc05-64B-2t2c-ethip4-ip4scale200k-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 routing config with 2 phy cores, \
-| | ... | 1 receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 64B frames using single trial\
-| | ... | throughput test.
-| | ...
| | [Tags] | 64B | 2C
-| | ...
-| | [Template] | Check RR for ethip4-ip4scale200k
-| | wt=2 | rxq=1 | framesize=${64}
+| | phy_cores=${2} | framesize=${64}
| tc06-1518B-2t2c-ethip4-ip4scale200k-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 routing config with 2 phy cores, \
-| | ... | 1 receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 1518B frames using single\
-| | ... | trial throughput test.
-| | ...
| | [Tags] | 1518B | 2C
-| | ...
-| | [Template] | Check RR for ethip4-ip4scale200k
-| | wt=2 | rxq=1 | framesize=${1518}
+| | phy_cores=${2} | framesize=${1518}
| tc07-9000B-2t2c-ethip4-ip4scale200k-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 routing config with 2 phy cores, \
-| | ... | 1 receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 9000B frames using single\
-| | ... | trial throughput test.
-| | ...
| | [Tags] | 9000B | 2C
-| | ...
-| | [Template] | Check RR for ethip4-ip4scale200k
-| | wt=2 | rxq=1 | framesize=${9000}
+| | phy_cores=${2} | framesize=${9000}
| tc08-IMIX-2t2c-ethip4-ip4scale200k-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 routing config with \
-| | ... | 2 phy cores, 1 receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for IMIX_v4_1 frames using single trial\
-| | ... | throughput test.
-| | ... | IMIX_v4_1 = (28x64B; 16x570B; 4x1518B)
-| | ...
| | [Tags] | IMIX | 2C
-| | ...
-| | [Template] | Check RR for ethip4-ip4scale200k
-| | wt=2 | rxq=1 | framesize=IMIX_v4_1
+| | phy_cores=${2} | framesize=IMIX_v4_1
| tc09-64B-4t4c-ethip4-ip4scale200k-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 routing config with 4 phy cores, \
-| | ... | 2 receive queues per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 64B frames using single trial\
-| | ... | throughput test.
-| | ...
| | [Tags] | 64B | 4C
-| | ...
-| | [Template] | Check RR for ethip4-ip4scale200k
-| | wt=4 | rxq=2 | framesize=${64}
+| | phy_cores=${4} | framesize=${64}
| tc10-1518B-4t4c-ethip4-ip4scale200k-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 routing config with 4 phy cores, \
-| | ... | 2 receive queues per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 1518B frames using single\
-| | ... | trial throughput test.
-| | ...
| | [Tags] | 1518B | 4C
-| | ...
-| | [Template] | Check RR for ethip4-ip4scale200k
-| | wt=4 | rxq=2 | framesize=${1518}
+| | phy_cores=${4} | framesize=${1518}
| tc11-9000B-4t4c-ethip4-ip4scale200k-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 routing config with 4 phy cores, \
-| | ... | 2 receive queues per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 9000B frames using single\
-| | ... | trial throughput test.
-| | ...
| | [Tags] | 9000B | 4C
-| | ...
-| | [Template] | Check RR for ethip4-ip4scale200k
-| | wt=4 | rxq=2 | framesize=${9000}
+| | phy_cores=${4} | framesize=${9000}
| tc12-IMIX-4t4c-ethip4-ip4scale200k-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 routing config with \
-| | ... | 4 phy cores, 2 receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for IMIX_v4_1 frames using single trial\
-| | ... | throughput test.
-| | ... | IMIX_v4_1 = (28x64B; 16x570B; 4x1518B)
-| | ...
| | [Tags] | IMIX | 4C
-| | ...
-| | [Template] | Check RR for ethip4-ip4scale200k
-| | wt=4 | rxq=2 | framesize=IMIX_v4_1
+| | phy_cores=${4} | framesize=IMIX_v4_1
diff --git a/tests/vpp/perf/ip4/10ge2p1x520-ethip4-ip4scale200k-ndrpdrdisc.robot b/tests/vpp/perf/ip4/10ge2p1x520-ethip4-ip4scale200k-ndrpdrdisc.robot
index 880b6e6fbc..b686f5fb37 100644
--- a/tests/vpp/perf/ip4/10ge2p1x520-ethip4-ip4scale200k-ndrpdrdisc.robot
+++ b/tests/vpp/perf/ip4/10ge2p1x520-ethip4-ip4scale200k-ndrpdrdisc.robot
@@ -69,7 +69,7 @@
| | ${binary_min}= | Set Variable | ${min_rate}
| | ${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
+| | Given Add worker threads and rxqueues to all DUTs | 1
| | And Add PCI devices to all DUTs
| | And Add no multi seg to all DUTs
| | And Apply startup configuration on all VPP DUTs
@@ -91,7 +91,7 @@
| | ${binary_min}= | Set Variable | ${min_rate}
| | ${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
+| | Given Add worker threads and rxqueues to all DUTs | 1
| | And Add PCI devices to all DUTs
| | And Add no multi seg to all DUTs
| | And Apply startup configuration on all VPP DUTs
@@ -114,7 +114,7 @@
| | ${binary_min}= | Set Variable | ${min_rate}
| | ${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
+| | Given Add worker threads and rxqueues to all DUTs | 1
| | And Add PCI devices to all DUTs
| | And Add no multi seg to all DUTs
| | And Apply startup configuration on all VPP DUTs
@@ -136,7 +136,7 @@
| | ${binary_min}= | Set Variable | ${min_rate}
| | ${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
+| | Given Add worker threads and rxqueues to all DUTs | 1
| | And Add PCI devices to all DUTs
| | And Add no multi seg to all DUTs
| | And Apply startup configuration on all VPP DUTs
@@ -159,7 +159,7 @@
| | ${binary_min}= | Set Variable | ${min_rate}
| | ${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
+| | Given Add worker threads and rxqueues to all DUTs | 1
| | And Add PCI devices to all DUTs
| | And Apply startup configuration on all VPP DUTs
| | And Initialize IPv4 forwarding with scaling in 3-node circular topology
@@ -180,7 +180,7 @@
| | ${binary_min}= | Set Variable | ${min_rate}
| | ${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
+| | Given Add worker threads and rxqueues to all DUTs | 1
| | And Add PCI devices to all DUTs
| | And Apply startup configuration on all VPP DUTs
| | And Initialize IPv4 forwarding with scaling in 3-node circular topology
@@ -202,7 +202,7 @@
| | ${binary_min}= | Set Variable | ${min_rate}
| | ${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
+| | Given Add worker threads and rxqueues to all DUTs | 2
| | And Add PCI devices to all DUTs
| | And Add no multi seg to all DUTs
| | And Apply startup configuration on all VPP DUTs
@@ -224,7 +224,7 @@
| | ${binary_min}= | Set Variable | ${min_rate}
| | ${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
+| | Given Add worker threads and rxqueues to all DUTs | 2
| | And Add PCI devices to all DUTs
| | And Add no multi seg to all DUTs
| | And Apply startup configuration on all VPP DUTs
@@ -247,7 +247,7 @@
| | ${binary_min}= | Set Variable | ${min_rate}
| | ${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
+| | Given Add worker threads and rxqueues to all DUTs | 2
| | And Add PCI devices to all DUTs
| | And Add no multi seg to all DUTs
| | And Apply startup configuration on all VPP DUTs
@@ -269,7 +269,7 @@
| | ${binary_min}= | Set Variable | ${min_rate}
| | ${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
+| | Given Add worker threads and rxqueues to all DUTs | 2
| | And Add PCI devices to all DUTs
| | And Add no multi seg to all DUTs
| | And Apply startup configuration on all VPP DUTs
@@ -292,7 +292,7 @@
| | ${binary_min}= | Set Variable | ${min_rate}
| | ${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
+| | Given Add worker threads and rxqueues to all DUTs | 2
| | And Add PCI devices to all DUTs
| | And Apply startup configuration on all VPP DUTs
| | And Initialize IPv4 forwarding with scaling in 3-node circular topology
@@ -313,7 +313,7 @@
| | ${binary_min}= | Set Variable | ${min_rate}
| | ${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
+| | Given Add worker threads and rxqueues to all DUTs | 2
| | And Add PCI devices to all DUTs
| | And Apply startup configuration on all VPP DUTs
| | And Initialize IPv4 forwarding with scaling in 3-node circular topology
@@ -335,7 +335,7 @@
| | ${binary_min}= | Set Variable | ${min_rate}
| | ${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
+| | Given Add worker threads and rxqueues to all DUTs | 4
| | And Add PCI devices to all DUTs
| | And Add no multi seg to all DUTs
| | And Apply startup configuration on all VPP DUTs
@@ -357,7 +357,7 @@
| | ${binary_min}= | Set Variable | ${min_rate}
| | ${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
+| | Given Add worker threads and rxqueues to all DUTs | 4
| | And Add PCI devices to all DUTs
| | And Add no multi seg to all DUTs
| | And Apply startup configuration on all VPP DUTs
@@ -380,7 +380,7 @@
| | ${binary_min}= | Set Variable | ${min_rate}
| | ${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
+| | Given Add worker threads and rxqueues to all DUTs | 4
| | And Add PCI devices to all DUTs
| | And Add no multi seg to all DUTs
| | And Apply startup configuration on all VPP DUTs
@@ -402,7 +402,7 @@
| | ${binary_min}= | Set Variable | ${min_rate}
| | ${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
+| | Given Add worker threads and rxqueues to all DUTs | 4
| | And Add PCI devices to all DUTs
| | And Add no multi seg to all DUTs
| | And Apply startup configuration on all VPP DUTs
@@ -425,7 +425,7 @@
| | ${binary_min}= | Set Variable | ${min_rate}
| | ${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
+| | Given Add worker threads and rxqueues to all DUTs | 4
| | And Add PCI devices to all DUTs
| | And Apply startup configuration on all VPP DUTs
| | And Initialize IPv4 forwarding with scaling in 3-node circular topology
@@ -446,7 +446,7 @@
| | ${binary_min}= | Set Variable | ${min_rate}
| | ${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
+| | Given Add worker threads and rxqueues to all DUTs | 4
| | And Add PCI devices to all DUTs
| | And Apply startup configuration on all VPP DUTs
| | And Initialize IPv4 forwarding with scaling in 3-node circular topology
diff --git a/tests/vpp/perf/ip4/10ge2p1x520-ethip4-ip4scale20k-mrr.robot b/tests/vpp/perf/ip4/10ge2p1x520-ethip4-ip4scale20k-mrr.robot
index 808d23cc74..9624c9ca89 100644
--- a/tests/vpp/perf/ip4/10ge2p1x520-ethip4-ip4scale20k-mrr.robot
+++ b/tests/vpp/perf/ip4/10ge2p1x520-ethip4-ip4scale20k-mrr.robot
@@ -25,6 +25,8 @@
| ...
| Test Teardown | Tear down performance mrr test
| ...
+| Test Template | Local template
+| ...
| Documentation | *Raw results IPv4 routing test cases*
| ...
| ... | *[Top] Network Topologies:* TG-DUT1-DUT2-TG 3-node circular topology
@@ -50,22 +52,26 @@
| ${traffic_profile}= | trex-sl-3n-ethip4-ip4dst${rts_per_flow}
*** Keywords ***
-| Check RR for ethip4-ip4scale20k
-| | ...
+| Local template
| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 routing config with ${wt} thread(s), ${wt}\
-| | ... | phy core(s), ${rxq} receive queue(s) per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for ${framesize} frames using single\
+| | ... | [Cfg] DUT runs IPv4 routing config.
+| | ... | Each DUT uses ${phy_cores} physical core(s) for worker threads.
+| | ... | [Ver] Measure MaxReceivedRate for ${framesize}B frames using single\
| | ... | trial throughput test.
| | ...
-| | [Arguments] | ${wt} | ${rxq} | ${framesize}
+| | ... | *Arguments:*
+| | ... | - framesize - Framesize in Bytes in integer or string (IMIX_v4_1).
+| | ... | Type: integer, string
+| | ... | - phy_cores - Number of physical cores. Type: integer
+| | ... | - rxq - Number of RX queues, default value: ${None}. Type: integer
+| | ...
+| | [Arguments] | ${phy_cores} | ${framesize} | ${rxq}=${None}
| | ...
-| | # Test Variables required for test execution and test teardown
| | Set Test Variable | ${framesize}
| | ${get_framesize}= | Get Frame Size | ${framesize}
| | ${max_rate}= | Calculate pps | ${s_limit} | ${framesize}
| | ...
-| | Given Add '${wt}' worker threads and '${rxq}' rxqueues in 3-node single-link circular topology
+| | Given Add worker threads and rxqueues to all DUTs | ${phy_cores} | ${rxq}
| | And Add PCI devices to all DUTs
| | And Run Keyword If | ${get_framesize} < ${1522}
| | ... | Add no multi seg to all DUTs
@@ -77,148 +83,49 @@
*** Test Cases ***
| tc01-64B-1t1c-ethip4-ip4scale20k-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 routing config with 1 phy core, \
-| | ... | 1 receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 64B frames using single trial\
-| | ... | throughput test.
-| | ...
| | [Tags] | 64B | 1C
-| | ...
-| | [Template] | Check RR for ethip4-ip4scale20k
-| | wt=1 | rxq=1 | framesize=${64}
+| | phy_cores=${1} | framesize=${64}
| tc02-1518B-1t1c-ethip4-ip4scale20k-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 routing config with 1 phy core, \
-| | ... | 1 receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 1518B frames using single\
-| | ... | trial throughput test.
-| | ...
| | [Tags] | 1518B | 1C
-| | ...
-| | [Template] | Check RR for ethip4-ip4scale20k
-| | wt=1 | rxq=1 | framesize=${1518}
+| | phy_cores=${1} | framesize=${1518}
| tc03-9000B-1t1c-ethip4-ip4scale20k-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 routing config with 1 phy core, \
-| | ... | 1 receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 9000B frames using single\
-| | ... | trial throughput test.
-| | ...
| | [Tags] | 9000B | 1C
-| | ...
-| | [Template] | Check RR for ethip4-ip4scale20k
-| | wt=1 | rxq=1 | framesize=${9000}
+| | phy_cores=${1} | framesize=${9000}
| tc04-IMIX-1t1c-ethip4-ip4scale20k-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 routing config with \
-| | ... | 1 phy core, 1 receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for IMIX_v4_1 frames using single trial\
-| | ... | throughput test.
-| | ... | IMIX_v4_1 = (28x64B; 16x570B; 4x1518B)
-| | ...
| | [Tags] | IMIX | 1C
-| | ...
-| | [Template] | Check RR for ethip4-ip4scale20k
-| | wt=1 | rxq=1 | framesize=IMIX_v4_1
+| | phy_cores=${1} | framesize=IMIX_v4_1
| tc05-64B-2t2c-ethip4-ip4scale20k-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 routing config with 2 phy cores, \
-| | ... | 1 receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 64B frames using single trial\
-| | ... | throughput test.
-| | ...
| | [Tags] | 64B | 2C
-| | ...
-| | [Template] | Check RR for ethip4-ip4scale20k
-| | wt=2 | rxq=1 | framesize=${64}
+| | phy_cores=${2} | framesize=${64}
| tc06-1518B-2t2c-ethip4-ip4scale20k-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 routing config with 2 phy cores, \
-| | ... | 1 receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 1518B frames using single\
-| | ... | trial throughput test.
-| | ...
| | [Tags] | 1518B | 2C
-| | ...
-| | [Template] | Check RR for ethip4-ip4scale20k
-| | wt=2 | rxq=1 | framesize=${1518}
+| | phy_cores=${2} | framesize=${1518}
| tc07-9000B-2t2c-ethip4-ip4scale20k-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 routing config with 2 phy cores, \
-| | ... | 1 receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 9000B frames using single\
-| | ... | trial throughput test.
-| | ...
| | [Tags] | 9000B | 2C
-| | ...
-| | [Template] | Check RR for ethip4-ip4scale20k
-| | wt=2 | rxq=1 | framesize=${9000}
+| | phy_cores=${2} | framesize=${9000}
| tc08-IMIX-2t2c-ethip4-ip4scale20k-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 routing config with \
-| | ... | 2 phy cores, 1 receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for IMIX_v4_1 frames using single trial\
-| | ... | throughput test.
-| | ... | IMIX_v4_1 = (28x64B; 16x570B; 4x1518B)
-| | ...
| | [Tags] | IMIX | 2C
-| | ...
-| | [Template] | Check RR for ethip4-ip4scale20k
-| | wt=2 | rxq=1 | framesize=IMIX_v4_1
+| | phy_cores=${2} | framesize=IMIX_v4_1
| tc09-64B-4t4c-ethip4-ip4scale20k-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 routing config with 4 phy cores, \
-| | ... | 2 receive queues per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 64B frames using single trial\
-| | ... | throughput test.
-| | ...
| | [Tags] | 64B | 4C
-| | ...
-| | [Template] | Check RR for ethip4-ip4scale20k
-| | wt=4 | rxq=2 | framesize=${64}
+| | phy_cores=${4} | framesize=${64}
| tc10-1518B-4t4c-ethip4-ip4scale20k-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 routing config with 4 phy cores, \
-| | ... | 2 receive queues per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 1518B frames using single\
-| | ... | trial throughput test.
-| | ...
| | [Tags] | 1518B | 4C
-| | ...
-| | [Template] | Check RR for ethip4-ip4scale20k
-| | wt=4 | rxq=2 | framesize=${1518}
+| | phy_cores=${4} | framesize=${1518}
| tc11-9000B-4t4c-ethip4-ip4scale20k-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 routing config with 4 phy cores, \
-| | ... | 2 receive queues per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 9000B frames using single\
-| | ... | trial throughput test.
-| | ...
| | [Tags] | 9000B | 4C
-| | ...
-| | [Template] | Check RR for ethip4-ip4scale20k
-| | wt=4 | rxq=2 | framesize=${9000}
+| | phy_cores=${4} | framesize=${9000}
| tc12-IMIX-4t4c-ethip4-ip4scale20k-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 routing config with \
-| | ... | 4 phy cores, 2 receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for IMIX_v4_1 frames using single trial\
-| | ... | throughput test.
-| | ... | IMIX_v4_1 = (28x64B; 16x570B; 4x1518B)
-| | ...
| | [Tags] | IMIX | 4C
-| | ...
-| | [Template] | Check RR for ethip4-ip4scale20k
-| | wt=4 | rxq=2 | framesize=IMIX_v4_1
+| | phy_cores=${4} | framesize=IMIX_v4_1
diff --git a/tests/vpp/perf/ip4/10ge2p1x520-ethip4-ip4scale20k-ndrpdrdisc.robot b/tests/vpp/perf/ip4/10ge2p1x520-ethip4-ip4scale20k-ndrpdrdisc.robot
index 9e4dd8aa9e..7f1918b7a3 100644
--- a/tests/vpp/perf/ip4/10ge2p1x520-ethip4-ip4scale20k-ndrpdrdisc.robot
+++ b/tests/vpp/perf/ip4/10ge2p1x520-ethip4-ip4scale20k-ndrpdrdisc.robot
@@ -69,7 +69,7 @@
| | ${binary_min}= | Set Variable | ${min_rate}
| | ${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
+| | Given Add worker threads and rxqueues to all DUTs | 1
| | And Add PCI devices to all DUTs
| | And Add no multi seg to all DUTs
| | And Apply startup configuration on all VPP DUTs
@@ -91,7 +91,7 @@
| | ${binary_min}= | Set Variable | ${min_rate}
| | ${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
+| | Given Add worker threads and rxqueues to all DUTs | 1
| | And Add PCI devices to all DUTs
| | And Add no multi seg to all DUTs
| | And Apply startup configuration on all VPP DUTs
@@ -114,7 +114,7 @@
| | ${binary_min}= | Set Variable | ${min_rate}
| | ${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
+| | Given Add worker threads and rxqueues to all DUTs | 1
| | And Add PCI devices to all DUTs
| | And Add no multi seg to all DUTs
| | And Apply startup configuration on all VPP DUTs
@@ -136,7 +136,7 @@
| | ${binary_min}= | Set Variable | ${min_rate}
| | ${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
+| | Given Add worker threads and rxqueues to all DUTs | 1
| | And Add PCI devices to all DUTs
| | And Add no multi seg to all DUTs
| | And Apply startup configuration on all VPP DUTs
@@ -159,7 +159,7 @@
| | ${binary_min}= | Set Variable | ${min_rate}
| | ${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
+| | Given Add worker threads and rxqueues to all DUTs | 1
| | And Add PCI devices to all DUTs
| | And Apply startup configuration on all VPP DUTs
| | And Initialize IPv4 forwarding with scaling in 3-node circular topology
@@ -180,7 +180,7 @@
| | ${binary_min}= | Set Variable | ${min_rate}
| | ${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
+| | Given Add worker threads and rxqueues to all DUTs | 1
| | And Add PCI devices to all DUTs
| | And Apply startup configuration on all VPP DUTs
| | And Initialize IPv4 forwarding with scaling in 3-node circular topology
@@ -202,7 +202,7 @@
| | ${binary_min}= | Set Variable | ${min_rate}
| | ${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
+| | Given Add worker threads and rxqueues to all DUTs | 2
| | And Add PCI devices to all DUTs
| | And Add no multi seg to all DUTs
| | And Apply startup configuration on all VPP DUTs
@@ -224,7 +224,7 @@
| | ${binary_min}= | Set Variable | ${min_rate}
| | ${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
+| | Given Add worker threads and rxqueues to all DUTs | 2
| | And Add PCI devices to all DUTs
| | And Add no multi seg to all DUTs
| | And Apply startup configuration on all VPP DUTs
@@ -247,7 +247,7 @@
| | ${binary_min}= | Set Variable | ${min_rate}
| | ${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
+| | Given Add worker threads and rxqueues to all DUTs | 2
| | And Add PCI devices to all DUTs
| | And Add no multi seg to all DUTs
| | And Apply startup configuration on all VPP DUTs
@@ -269,7 +269,7 @@
| | ${binary_min}= | Set Variable | ${min_rate}
| | ${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
+| | Given Add worker threads and rxqueues to all DUTs | 2
| | And Add PCI devices to all DUTs
| | And Add no multi seg to all DUTs
| | And Apply startup configuration on all VPP DUTs
@@ -292,7 +292,7 @@
| | ${binary_min}= | Set Variable | ${min_rate}
| | ${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
+| | Given Add worker threads and rxqueues to all DUTs | 2
| | And Add PCI devices to all DUTs
| | And Apply startup configuration on all VPP DUTs
| | And Initialize IPv4 forwarding with scaling in 3-node circular topology
@@ -313,7 +313,7 @@
| | ${binary_min}= | Set Variable | ${min_rate}
| | ${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
+| | Given Add worker threads and rxqueues to all DUTs | 2
| | And Add PCI devices to all DUTs
| | And Apply startup configuration on all VPP DUTs
| | And Initialize IPv4 forwarding with scaling in 3-node circular topology
@@ -335,7 +335,7 @@
| | ${binary_min}= | Set Variable | ${min_rate}
| | ${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
+| | Given Add worker threads and rxqueues to all DUTs | 4
| | And Add PCI devices to all DUTs
| | And Add no multi seg to all DUTs
| | And Apply startup configuration on all VPP DUTs
@@ -357,7 +357,7 @@
| | ${binary_min}= | Set Variable | ${min_rate}
| | ${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
+| | Given Add worker threads and rxqueues to all DUTs | 4
| | And Add PCI devices to all DUTs
| | And Add no multi seg to all DUTs
| | And Apply startup configuration on all VPP DUTs
@@ -380,7 +380,7 @@
| | ${binary_min}= | Set Variable | ${min_rate}
| | ${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
+| | Given Add worker threads and rxqueues to all DUTs | 4
| | And Add PCI devices to all DUTs
| | And Add no multi seg to all DUTs
| | And Apply startup configuration on all VPP DUTs
@@ -402,7 +402,7 @@
| | ${binary_min}= | Set Variable | ${min_rate}
| | ${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
+| | Given Add worker threads and rxqueues to all DUTs | 4
| | And Add PCI devices to all DUTs
| | And Add no multi seg to all DUTs
| | And Apply startup configuration on all VPP DUTs
@@ -425,7 +425,7 @@
| | ${binary_min}= | Set Variable | ${min_rate}
| | ${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
+| | Given Add worker threads and rxqueues to all DUTs | 4
| | And Add PCI devices to all DUTs
| | And Apply startup configuration on all VPP DUTs
| | And Initialize IPv4 forwarding with scaling in 3-node circular topology
@@ -446,7 +446,7 @@
| | ${binary_min}= | Set Variable | ${min_rate}
| | ${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
+| | Given Add worker threads and rxqueues to all DUTs | 4
| | And Add PCI devices to all DUTs
| | And Apply startup configuration on all VPP DUTs
| | And Initialize IPv4 forwarding with scaling in 3-node circular topology
diff --git a/tests/vpp/perf/ip4/10ge2p1x520-ethip4-ip4scale2m-mrr.robot b/tests/vpp/perf/ip4/10ge2p1x520-ethip4-ip4scale2m-mrr.robot
index 08b1279e90..4db6f4c363 100644
--- a/tests/vpp/perf/ip4/10ge2p1x520-ethip4-ip4scale2m-mrr.robot
+++ b/tests/vpp/perf/ip4/10ge2p1x520-ethip4-ip4scale2m-mrr.robot
@@ -25,6 +25,8 @@
| ...
| Test Teardown | Tear down performance mrr test
| ...
+| Test Template | Local template
+| ...
| Documentation | *Raw results IPv4 routing test cases*
| ...
| ... | *[Top] Network Topologies:* TG-DUT1-DUT2-TG 3-node circular topology
@@ -50,22 +52,27 @@
| ${traffic_profile}= | trex-sl-3n-ethip4-ip4dst${rts_per_flow}
*** Keywords ***
-| Check RR for ethip4-ip4scale2m
+| Local template
| | ...
| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 routing config with ${wt} thread(s), ${wt}\
-| | ... | phy core(s), ${rxq} receive queue(s) per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for ${framesize} frames using single\
+| | ... | [Cfg] DUT runs IPv4 routing config.
+| | ... | Each DUT uses ${phy_cores} physical core(s) for worker threads.
+| | ... | [Ver] Measure MaxReceivedRate for ${framesize}B frames using single\
| | ... | trial throughput test.
| | ...
-| | [Arguments] | ${wt} | ${rxq} | ${framesize}
+| | ... | *Arguments:*
+| | ... | - framesize - Framesize in Bytes in integer or string (IMIX_v4_1).
+| | ... | Type: integer, string
+| | ... | - phy_cores - Number of physical cores. Type: integer
+| | ... | - rxq - Number of RX queues, default value: ${None}. Type: integer
+| | ...
+| | [Arguments] | ${phy_cores} | ${framesize} | ${rxq}=${None}
| | ...
-| | # Test Variables required for test execution and test teardown
| | Set Test Variable | ${framesize}
| | ${get_framesize}= | Get Frame Size | ${framesize}
| | ${max_rate}= | Calculate pps | ${s_limit} | ${framesize}
| | ...
-| | Given Add '${wt}' worker threads and '${rxq}' rxqueues in 3-node single-link circular topology
+| | Given Add worker threads and rxqueues to all DUTs | ${phy_cores} | ${rxq}
| | And Add PCI devices to all DUTs
| | And Run Keyword If | ${get_framesize} < ${1522}
| | ... | Add no multi seg to all DUTs
@@ -77,148 +84,49 @@
*** Test Cases ***
| tc01-64B-1t1c-ethip4-ip4scale2m-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 routing config with 1 phy core, \
-| | ... | 1 receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 64B frames using single trial\
-| | ... | throughput test.
-| | ...
| | [Tags] | 64B | 1C
-| | ...
-| | [Template] | Check RR for ethip4-ip4scale2m
-| | wt=1 | rxq=1 | framesize=${64}
+| | phy_cores=${1} | framesize=${64}
| tc02-1518B-1t1c-ethip4-ip4scale2m-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 routing config with 1 phy core, \
-| | ... | 1 receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 1518B frames using single\
-| | ... | trial throughput test.
-| | ...
| | [Tags] | 1518B | 1C
-| | ...
-| | [Template] | Check RR for ethip4-ip4scale2m
-| | wt=1 | rxq=1 | framesize=${1518}
+| | phy_cores=${1} | framesize=${1518}
| tc03-9000B-1t1c-ethip4-ip4scale2m-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 routing config with 1 phy core, \
-| | ... | 1 receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 9000B frames using single\
-| | ... | trial throughput test.
-| | ...
| | [Tags] | 9000B | 1C
-| | ...
-| | [Template] | Check RR for ethip4-ip4scale2m
-| | wt=1 | rxq=1 | framesize=${9000}
+| | phy_cores=${1} | framesize=${9000}
| tc04-IMIX-1t1c-ethip4-ip4scale2m-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 routing config with \
-| | ... | 1 phy core, 1 receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for IMIX_v4_1 frames using single trial\
-| | ... | throughput test.
-| | ... | IMIX_v4_1 = (28x64B; 16x570B; 4x1518B)
-| | ...
| | [Tags] | IMIX | 1C
-| | ...
-| | [Template] | Check RR for ethip4-ip4scale2m
-| | wt=1 | rxq=1 | framesize=IMIX_v4_1
+| | phy_cores=${1} | framesize=IMIX_v4_1
| tc05-64B-2t2c-ethip4-ip4scale2m-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 routing config with 2 phy cores, \
-| | ... | 1 receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 64B frames using single trial\
-| | ... | throughput test.
-| | ...
| | [Tags] | 64B | 2C
-| | ...
-| | [Template] | Check RR for ethip4-ip4scale2m
-| | wt=2 | rxq=1 | framesize=${64}
+| | phy_cores=${2} | framesize=${64}
| tc06-1518B-2t2c-ethip4-ip4scale2m-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 routing config with 2 phy cores, \
-| | ... | 1 receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 1518B frames using single\
-| | ... | trial throughput test.
-| | ...
| | [Tags] | 1518B | 2C
-| | ...
-| | [Template] | Check RR for ethip4-ip4scale2m
-| | wt=2 | rxq=1 | framesize=${1518}
+| | phy_cores=${2} | framesize=${1518}
| tc07-9000B-2t2c-ethip4-ip4scale2m-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 routing config with 2 phy cores, \
-| | ... | 1 receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 9000B frames using single\
-| | ... | trial throughput test.
-| | ...
| | [Tags] | 9000B | 2C
-| | ...
-| | [Template] | Check RR for ethip4-ip4scale2m
-| | wt=2 | rxq=1 | framesize=${9000}
+| | phy_cores=${2} | framesize=${9000}
| tc08-IMIX-2t2c-ethip4-ip4scale2m-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 routing config with \
-| | ... | 2 phy cores, 1 receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for IMIX_v4_1 frames using single trial\
-| | ... | throughput test.
-| | ... | IMIX_v4_1 = (28x64B; 16x570B; 4x1518B)
-| | ...
| | [Tags] | IMIX | 2C
-| | ...
-| | [Template] | Check RR for ethip4-ip4scale2m
-| | wt=2 | rxq=1 | framesize=IMIX_v4_1
+| | phy_cores=${2} | framesize=IMIX_v4_1
| tc09-64B-4t4c-ethip4-ip4scale2m-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 routing config with 4 phy cores, \
-| | ... | 2 receive queues per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 64B frames using single trial\
-| | ... | throughput test.
-| | ...
| | [Tags] | 64B | 4C
-| | ...
-| | [Template] | Check RR for ethip4-ip4scale2m
-| | wt=4 | rxq=2 | framesize=${64}
+| | phy_cores=${4} | framesize=${64}
| tc10-1518B-4t4c-ethip4-ip4scale2m-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 routing config with 4 phy cores, \
-| | ... | 2 receive queues per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 1518B frames using single\
-| | ... | trial throughput test.
-| | ...
| | [Tags] | 1518B | 4C
-| | ...
-| | [Template] | Check RR for ethip4-ip4scale2m
-| | wt=4 | rxq=2 | framesize=${1518}
+| | phy_cores=${4} | framesize=${1518}
| tc11-9000B-4t4c-ethip4-ip4scale2m-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 routing config with 4 phy cores, \
-| | ... | 2 receive queues per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 9000B frames using single\
-| | ... | trial throughput test.
-| | ...
| | [Tags] | 9000B | 4C
-| | ...
-| | [Template] | Check RR for ethip4-ip4scale2m
-| | wt=4 | rxq=2 | framesize=${9000}
+| | phy_cores=${4} | framesize=${9000}
| tc12-IMIX-4t4c-ethip4-ip4scale2m-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 routing config with \
-| | ... | 4 phy cores, 2 receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for IMIX_v4_1 frames using single trial\
-| | ... | throughput test.
-| | ... | IMIX_v4_1 = (28x64B; 16x570B; 4x1518B)
-| | ...
| | [Tags] | IMIX | 4C
-| | ...
-| | [Template] | Check RR for ethip4-ip4scale2m
-| | wt=4 | rxq=2 | framesize=IMIX_v4_1
+| | phy_cores=${4} | framesize=IMIX_v4_1
diff --git a/tests/vpp/perf/ip4/10ge2p1x520-ethip4-ip4scale2m-ndrpdrdisc.robot b/tests/vpp/perf/ip4/10ge2p1x520-ethip4-ip4scale2m-ndrpdrdisc.robot
index 37a665cac4..4cd00b1dd4 100644
--- a/tests/vpp/perf/ip4/10ge2p1x520-ethip4-ip4scale2m-ndrpdrdisc.robot
+++ b/tests/vpp/perf/ip4/10ge2p1x520-ethip4-ip4scale2m-ndrpdrdisc.robot
@@ -69,7 +69,7 @@
| | ${binary_min}= | Set Variable | ${min_rate}
| | ${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
+| | Given Add worker threads and rxqueues to all DUTs | 1
| | And Add PCI devices to all DUTs
| | And Add no multi seg to all DUTs
| | And Apply startup configuration on all VPP DUTs
@@ -91,7 +91,7 @@
| | ${binary_min}= | Set Variable | ${min_rate}
| | ${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
+| | Given Add worker threads and rxqueues to all DUTs | 1
| | And Add PCI devices to all DUTs
| | And Add no multi seg to all DUTs
| | And Apply startup configuration on all VPP DUTs
@@ -114,7 +114,7 @@
| | ${binary_min}= | Set Variable | ${min_rate}
| | ${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
+| | Given Add worker threads and rxqueues to all DUTs | 1
| | And Add PCI devices to all DUTs
| | And Add no multi seg to all DUTs
| | And Apply startup configuration on all VPP DUTs
@@ -136,7 +136,7 @@
| | ${binary_min}= | Set Variable | ${min_rate}
| | ${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
+| | Given Add worker threads and rxqueues to all DUTs | 1
| | And Add PCI devices to all DUTs
| | And Add no multi seg to all DUTs
| | And Apply startup configuration on all VPP DUTs
@@ -159,7 +159,7 @@
| | ${binary_min}= | Set Variable | ${min_rate}
| | ${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
+| | Given Add worker threads and rxqueues to all DUTs | 1
| | And Add PCI devices to all DUTs
| | And Apply startup configuration on all VPP DUTs
| | And Initialize IPv4 forwarding with scaling in 3-node circular topology
@@ -180,7 +180,7 @@
| | ${binary_min}= | Set Variable | ${min_rate}
| | ${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
+| | Given Add worker threads and rxqueues to all DUTs | 1
| | And Add PCI devices to all DUTs
| | And Apply startup configuration on all VPP DUTs
| | And Initialize IPv4 forwarding with scaling in 3-node circular topology
@@ -202,7 +202,7 @@
| | ${binary_min}= | Set Variable | ${min_rate}
| | ${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
+| | Given Add worker threads and rxqueues to all DUTs | 2
| | And Add PCI devices to all DUTs
| | And Add no multi seg to all DUTs
| | And Apply startup configuration on all VPP DUTs
@@ -224,7 +224,7 @@
| | ${binary_min}= | Set Variable | ${min_rate}
| | ${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
+| | Given Add worker threads and rxqueues to all DUTs | 2
| | And Add PCI devices to all DUTs
| | And Add no multi seg to all DUTs
| | And Apply startup configuration on all VPP DUTs
@@ -247,7 +247,7 @@
| | ${binary_min}= | Set Variable | ${min_rate}
| | ${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
+| | Given Add worker threads and rxqueues to all DUTs | 2
| | And Add PCI devices to all DUTs
| | And Add no multi seg to all DUTs
| | And Apply startup configuration on all VPP DUTs
@@ -269,7 +269,7 @@
| | ${binary_min}= | Set Variable | ${min_rate}
| | ${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
+| | Given Add worker threads and rxqueues to all DUTs | 2
| | And Add PCI devices to all DUTs
| | And Add no multi seg to all DUTs
| | And Apply startup configuration on all VPP DUTs
@@ -292,7 +292,7 @@
| | ${binary_min}= | Set Variable | ${min_rate}
| | ${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
+| | Given Add worker threads and rxqueues to all DUTs | 2
| | And Add PCI devices to all DUTs
| | And Apply startup configuration on all VPP DUTs
| | And Initialize IPv4 forwarding with scaling in 3-node circular topology
@@ -313,7 +313,7 @@
| | ${binary_min}= | Set Variable | ${min_rate}
| | ${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
+| | Given Add worker threads and rxqueues to all DUTs | 2
| | And Add PCI devices to all DUTs
| | And Apply startup configuration on all VPP DUTs
| | And Initialize IPv4 forwarding with scaling in 3-node circular topology
@@ -335,7 +335,7 @@
| | ${binary_min}= | Set Variable | ${min_rate}
| | ${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
+| | Given Add worker threads and rxqueues to all DUTs | 4
| | And Add PCI devices to all DUTs
| | And Add no multi seg to all DUTs
| | And Apply startup configuration on all VPP DUTs
@@ -357,7 +357,7 @@
| | ${binary_min}= | Set Variable | ${min_rate}
| | ${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
+| | Given Add worker threads and rxqueues to all DUTs | 4
| | And Add PCI devices to all DUTs
| | And Add no multi seg to all DUTs
| | And Apply startup configuration on all VPP DUTs
@@ -380,7 +380,7 @@
| | ${binary_min}= | Set Variable | ${min_rate}
| | ${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
+| | Given Add worker threads and rxqueues to all DUTs | 4
| | And Add PCI devices to all DUTs
| | And Add no multi seg to all DUTs
| | And Apply startup configuration on all VPP DUTs
@@ -402,7 +402,7 @@
| | ${binary_min}= | Set Variable | ${min_rate}
| | ${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
+| | Given Add worker threads and rxqueues to all DUTs | 4
| | And Add PCI devices to all DUTs
| | And Add no multi seg to all DUTs
| | And Apply startup configuration on all VPP DUTs
@@ -425,7 +425,7 @@
| | ${binary_min}= | Set Variable | ${min_rate}
| | ${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
+| | Given Add worker threads and rxqueues to all DUTs | 4
| | And Add PCI devices to all DUTs
| | And Apply startup configuration on all VPP DUTs
| | And Initialize IPv4 forwarding with scaling in 3-node circular topology
@@ -446,7 +446,7 @@
| | ${binary_min}= | Set Variable | ${min_rate}
| | ${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
+| | Given Add worker threads and rxqueues to all DUTs | 4
| | And Add PCI devices to all DUTs
| | And Apply startup configuration on all VPP DUTs
| | And Initialize IPv4 forwarding with scaling in 3-node circular topology
diff --git a/tests/vpp/perf/ip4/10ge2p1x520-ethip4udp-ip4base-iacl10sf-100flows-ndrpdrdisc.robot b/tests/vpp/perf/ip4/10ge2p1x520-ethip4udp-ip4base-iacl10sf-100flows-ndrpdrdisc.robot
index 7c284f0bce..bff07ea2aa 100644
--- a/tests/vpp/perf/ip4/10ge2p1x520-ethip4udp-ip4base-iacl10sf-100flows-ndrpdrdisc.robot
+++ b/tests/vpp/perf/ip4/10ge2p1x520-ethip4udp-ip4base-iacl10sf-100flows-ndrpdrdisc.robot
@@ -29,6 +29,8 @@
| Test Teardown | Tear down performance test with ACL
| ... | ${min_rate}pps | ${framesize} | ${traffic_profile}
| ...
+| Test Template | Local template
+| ...
| Documentation | *RFC2544: Packet throughput IPv4 test cases with ACL*
| ...
| ... | *[Top] Network Topologies:* TG-DUT1-DUT2-TG 3-node circular topology\
@@ -73,15 +75,17 @@
| ${trex_stream2_subnet}= | 20.20.20.0/24
*** Keywords ***
-| Discover NDR or PDR for IPv4 routing with ACLs
-| | [Arguments] | ${wt} | ${rxq} | ${framesize} | ${min_rate} | ${search_type}
+| Local template
+| | [Arguments] | ${phy_cores} | ${framesize} | ${search_type}
+| | ... | ${rxq}=${None} | ${min_rate}=${50000}
+| | ...
| | Set Test Variable | ${framesize}
| | Set Test Variable | ${min_rate}
| | ${max_rate}= | Calculate pps | ${s_limit} | ${framesize}
| | ${binary_min}= | Set Variable | ${min_rate}
| | ${binary_max}= | Set Variable | ${max_rate}
| | ${threshold}= | Set Variable | ${min_rate}
-| | Given Add '${wt}' worker threads and '${rxq}' rxqueues in 3-node single-link circular topology
+| | Given Add worker threads and rxqueues to all DUTs | ${phy_cores} | ${rxq}
| | And Add PCI devices to all DUTs
| | ${get_framesize}= | Get Frame Size | ${framesize}
| | And Run Keyword If | ${get_framesize} < ${1522} | Add no multi seg to all DUTs
@@ -102,73 +106,25 @@
*** Test Cases ***
| tc01-64B-1t1c-ethip4udp-ip4base-iacl10-stateful-flows100-ndrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 routing config with ACL with\
-| | ... | 1 phy core, 1 receive queue per NIC port.
-| | ... | [Ver] Find NDR for 64 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 50kpps.
-| | ...
| | [Tags] | 64B | 1C | NDRDISC
-| | ...
-| | [Template] | Discover NDR or PDR for IPv4 routing with ACLs
-| | wt=1 | rxq=1 | framesize=${64} | min_rate=${50000} | search_type=NDR
+| | phy_cores=${1} | framesize=${64} | search_type=NDR
| tc02-64B-1t1c-ethip4udp-ip4base-iacl10-stateful-flows100-pdrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 routing config with ACL with\
-| | ... | 1 phy core, 1 receive queue per NIC port.
-| | ... | [Ver] Find PDR for 64 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 50kpps, LT=0.5%.
-| | ...
| | [Tags] | 64B | 1C | PDRDISC | SKIP_PATCH
-| | ...
-| | [Template] | Discover NDR or PDR for IPv4 routing with ACLs
-| | wt=1 | rxq=1 | framesize=${64} | min_rate=${50000} | search_type=PDR
+| | phy_cores=${1} | framesize=${64} | search_type=PDR
| tc03-64B-2t2c-ethip4udp-ip4base-iacl10-stateful-flows100-ndrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 routing config with ACL with\
-| | ... | 2 phy cores, 1 receive queue per NIC port.
-| | ... | [Ver] Find NDR for 64 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 50kpps.
-| | ...
| | [Tags] | 64B | 2C | NDRDISC
-| | ...
-| | [Template] | Discover NDR or PDR for IPv4 routing with ACLs
-| | wt=2 | rxq=1 | framesize=${64} | min_rate=${50000} | search_type=NDR
+| | phy_cores=${2} | framesize=${64} | search_type=NDR
| tc04-64B-2t2c-ethip4udp-ip4base-iacl10-stateful-flows100-pdrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 routing config with ACL with\
-| | ... | 2 phy cores, 1 receive queue per NIC port.
-| | ... | [Ver] Find PDR for 64 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 50kpps, LT=0.5%.
-| | ...
| | [Tags] | 64B | 2C | PDRDISC | SKIP_PATCH
-| | ...
-| | [Template] | Discover NDR or PDR for IPv4 routing with ACLs
-| | wt=2 | rxq=1 | framesize=${64} | min_rate=${50000} | search_type=PDR
+| | phy_cores=${2} | framesize=${64} | search_type=PDR
| tc05-64B-4t4c-ethip4udp-ip4base-iacl10-stateful-flows100-ndrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 routing config with ACL with\
-| | ... | 4 phy cores, 2 receive queues per NIC port.
-| | ... | [Ver] Find NDR for 64 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 50kpps.
-| | ...
| | [Tags] | 64B | 4C | NDRDISC
-| | ...
-| | [Template] | Discover NDR or PDR for IPv4 routing with ACLs
-| | wt=4 | rxq=2 | framesize=${64} | min_rate=${50000} | search_type=NDR
+| | phy_cores=${4} | framesize=${64} | search_type=NDR
| tc06-64B-4t4c-ethip4udp-ip4base-iacl10-stateful-flows100-pdrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 routing config with ACL with\
-| | ... | 4 phy cores, 2 receive queues per NIC port.
-| | ... | [Ver] Find PDR for 64 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 50kpps, LT=0.5%.
-| | ...
| | [Tags] | 64B | 4C | PDRDISC | SKIP_PATCH
-| | ...
-| | [Template] | Discover NDR or PDR for IPv4 routing with ACLs
-| | wt=4 | rxq=2 | framesize=${64} | min_rate=${50000} | search_type=PDR
+| | phy_cores=${4} | framesize=${64} | search_type=PDR
diff --git a/tests/vpp/perf/ip4/10ge2p1x520-ethip4udp-ip4base-iacl10sf-100kflows-ndrpdrdisc.robot b/tests/vpp/perf/ip4/10ge2p1x520-ethip4udp-ip4base-iacl10sf-100kflows-ndrpdrdisc.robot
index d4294c127b..91170e6da3 100644
--- a/tests/vpp/perf/ip4/10ge2p1x520-ethip4udp-ip4base-iacl10sf-100kflows-ndrpdrdisc.robot
+++ b/tests/vpp/perf/ip4/10ge2p1x520-ethip4udp-ip4base-iacl10sf-100kflows-ndrpdrdisc.robot
@@ -29,6 +29,8 @@
| Test Teardown | Tear down performance test with ACL
| ... | ${min_rate}pps | ${framesize} | ${traffic_profile}
| ...
+| Test Template | Local template
+| ...
| Documentation | *RFC2544: Packet throughput IPv4 test cases with ACL*
| ...
| ... | *[Top] Network Topologies:* TG-DUT1-DUT2-TG 3-node circular topology\
@@ -73,15 +75,17 @@
| ${trex_stream2_subnet}= | 20.20.20.0/24
*** Keywords ***
-| Discover NDR or PDR for IPv4 routing with ACLs
-| | [Arguments] | ${wt} | ${rxq} | ${framesize} | ${min_rate} | ${search_type}
+| Local template
+| | [Arguments] | ${phy_cores} | ${framesize} | ${search_type}
+| | ... | ${rxq}=${None} | ${min_rate}=${50000}
+| | ...
| | Set Test Variable | ${framesize}
| | Set Test Variable | ${min_rate}
| | ${max_rate}= | Calculate pps | ${s_limit} | ${framesize}
| | ${binary_min}= | Set Variable | ${min_rate}
| | ${binary_max}= | Set Variable | ${max_rate}
| | ${threshold}= | Set Variable | ${min_rate}
-| | Given Add '${wt}' worker threads and '${rxq}' rxqueues in 3-node single-link circular topology
+| | Given Add worker threads and rxqueues to all DUTs | ${phy_cores} | ${rxq}
| | And Add PCI devices to all DUTs
| | ${get_framesize}= | Get Frame Size | ${framesize}
| | And Run Keyword If | ${get_framesize} < ${1522} | Add no multi seg to all DUTs
@@ -102,73 +106,25 @@
*** Test Cases ***
| tc01-64B-1t1c-ethip4udp-ip4base-iacl10-stateful-flows100k-ndrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 routing config with ACL with\
-| | ... | 1 phy core, 1 receive queue per NIC port.
-| | ... | [Ver] Find NDR for 64 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 50kpps.
-| | ...
| | [Tags] | 64B | 1C | NDRDISC
-| | ...
-| | [Template] | Discover NDR or PDR for IPv4 routing with ACLs
-| | wt=1 | rxq=1 | framesize=${64} | min_rate=${50000} | search_type=NDR
+| | phy_cores=${1} | framesize=${64} | search_type=NDR
| tc02-64B-1t1c-ethip4udp-ip4base-iacl10-stateful-flows100k-pdrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 routing config with ACL with\
-| | ... | 1 phy core, 1 receive queue per NIC port.
-| | ... | [Ver] Find PDR for 64 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 50kpps, LT=0.5%.
-| | ...
| | [Tags] | 64B | 1C | PDRDISC | SKIP_PATCH
-| | ...
-| | [Template] | Discover NDR or PDR for IPv4 routing with ACLs
-| | wt=1 | rxq=1 | framesize=${64} | min_rate=${50000} | search_type=PDR
+| | phy_cores=${1} | framesize=${64} | search_type=PDR
| tc03-64B-2t2c-ethip4udp-ip4base-iacl10-stateful-flows100k-ndrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 routing config with ACL with\
-| | ... | 2 phy cores, 1 receive queue per NIC port.
-| | ... | [Ver] Find NDR for 64 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 50kpps.
-| | ...
| | [Tags] | 64B | 2C | NDRDISC
-| | ...
-| | [Template] | Discover NDR or PDR for IPv4 routing with ACLs
-| | wt=2 | rxq=1 | framesize=${64} | min_rate=${50000} | search_type=NDR
+| | phy_cores=${2} | framesize=${64} | search_type=NDR
| tc04-64B-2t2c-ethip4udp-ip4base-iacl10-stateful-flows100k-pdrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 routing config with ACL with\
-| | ... | 2 phy cores, 1 receive queue per NIC port.
-| | ... | [Ver] Find PDR for 64 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 50kpps, LT=0.5%.
-| | ...
| | [Tags] | 64B | 2C | PDRDISC | SKIP_PATCH
-| | ...
-| | [Template] | Discover NDR or PDR for IPv4 routing with ACLs
-| | wt=2 | rxq=1 | framesize=${64} | min_rate=${50000} | search_type=PDR
+| | phy_cores=${2} | framesize=${64} | search_type=PDR
| tc05-64B-4t4c-ethip4udp-ip4base-iacl10-stateful-flows100k-ndrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 routing config with ACL with\
-| | ... | 4 phy cores, 2 receive queues per NIC port.
-| | ... | [Ver] Find NDR for 64 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 50kpps.
-| | ...
| | [Tags] | 64B | 4C | NDRDISC
-| | ...
-| | [Template] | Discover NDR or PDR for IPv4 routing with ACLs
-| | wt=4 | rxq=2 | framesize=${64} | min_rate=${50000} | search_type=NDR
+| | phy_cores=${4} | framesize=${64} | search_type=NDR
| tc06-64B-4t4c-ethip4udp-ip4base-iacl10-stateful-flows100k-pdrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 routing config with ACL with\
-| | ... | 4 phy cores, 2 receive queues per NIC port.
-| | ... | [Ver] Find PDR for 64 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 50kpps, LT=0.5%.
-| | ...
| | [Tags] | 64B | 4C | PDRDISC | SKIP_PATCH
-| | ...
-| | [Template] | Discover NDR or PDR for IPv4 routing with ACLs
-| | wt=4 | rxq=2 | framesize=${64} | min_rate=${50000} | search_type=PDR
+| | phy_cores=${4} | framesize=${64} | search_type=PDR
diff --git a/tests/vpp/perf/ip4/10ge2p1x520-ethip4udp-ip4base-iacl10sf-10kflows-ndrpdrdisc.robot b/tests/vpp/perf/ip4/10ge2p1x520-ethip4udp-ip4base-iacl10sf-10kflows-ndrpdrdisc.robot
index 8fd0365b03..1695a4dd06 100644
--- a/tests/vpp/perf/ip4/10ge2p1x520-ethip4udp-ip4base-iacl10sf-10kflows-ndrpdrdisc.robot
+++ b/tests/vpp/perf/ip4/10ge2p1x520-ethip4udp-ip4base-iacl10sf-10kflows-ndrpdrdisc.robot
@@ -29,6 +29,8 @@
| Test Teardown | Tear down performance test with ACL
| ... | ${min_rate}pps | ${framesize} | ${traffic_profile}
| ...
+| Test Template | Local template
+| ...
| Documentation | *RFC2544: Packet throughput IPv4 test cases with ACL*
| ...
| ... | *[Top] Network Topologies:* TG-DUT1-DUT2-TG 3-node circular topology\
@@ -73,15 +75,17 @@
| ${trex_stream2_subnet}= | 20.20.20.0/24
*** Keywords ***
-| Discover NDR or PDR for IPv4 routing with ACLs
-| | [Arguments] | ${wt} | ${rxq} | ${framesize} | ${min_rate} | ${search_type}
+| Local template
+| | [Arguments] | ${phy_cores} | ${framesize} | ${search_type}
+| | ... | ${rxq}=${None} | ${min_rate}=${50000}
+| | ...
| | Set Test Variable | ${framesize}
| | Set Test Variable | ${min_rate}
| | ${max_rate}= | Calculate pps | ${s_limit} | ${framesize}
| | ${binary_min}= | Set Variable | ${min_rate}
| | ${binary_max}= | Set Variable | ${max_rate}
| | ${threshold}= | Set Variable | ${min_rate}
-| | Given Add '${wt}' worker threads and '${rxq}' rxqueues in 3-node single-link circular topology
+| | Given Add worker threads and rxqueues to all DUTs | ${phy_cores} | ${rxq}
| | And Add PCI devices to all DUTs
| | ${get_framesize}= | Get Frame Size | ${framesize}
| | And Run Keyword If | ${get_framesize} < ${1522} | Add no multi seg to all DUTs
@@ -102,73 +106,25 @@
*** Test Cases ***
| tc01-64B-1t1c-ethip4udp-ip4base-iacl10-stateful-flows10k-ndrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 routing config with ACL with\
-| | ... | 1 phy core, 1 receive queue per NIC port.
-| | ... | [Ver] Find NDR for 64 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 50kpps.
-| | ...
| | [Tags] | 64B | 1C | NDRDISC
-| | ...
-| | [Template] | Discover NDR or PDR for IPv4 routing with ACLs
-| | wt=1 | rxq=1 | framesize=${64} | min_rate=${50000} | search_type=NDR
+| | phy_cores=${1} | framesize=${64} | search_type=NDR
| tc02-64B-1t1c-ethip4udp-ip4base-iacl10-stateful-flows10k-pdrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 routing config with ACL with\
-| | ... | 1 phy core, 1 receive queue per NIC port.
-| | ... | [Ver] Find PDR for 64 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 50kpps, LT=0.5%.
-| | ...
| | [Tags] | 64B | 1C | PDRDISC | SKIP_PATCH
-| | ...
-| | [Template] | Discover NDR or PDR for IPv4 routing with ACLs
-| | wt=1 | rxq=1 | framesize=${64} | min_rate=${50000} | search_type=PDR
+| | phy_cores=${1} | framesize=${64} | search_type=PDR
| tc03-64B-2t2c-ethip4udp-ip4base-iacl10-stateful-flows10k-ndrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 routing config with ACL with\
-| | ... | 2 phy cores, 1 receive queue per NIC port.
-| | ... | [Ver] Find NDR for 64 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 50kpps.
-| | ...
| | [Tags] | 64B | 2C | NDRDISC
-| | ...
-| | [Template] | Discover NDR or PDR for IPv4 routing with ACLs
-| | wt=2 | rxq=1 | framesize=${64} | min_rate=${50000} | search_type=NDR
+| | phy_cores=${2} | framesize=${64} | search_type=NDR
| tc04-64B-2t2c-ethip4udp-ip4base-iacl10-stateful-flows10k-pdrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 routing config with ACL with\
-| | ... | 2 phy cores, 1 receive queue per NIC port.
-| | ... | [Ver] Find PDR for 64 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 50kpps, LT=0.5%.
-| | ...
| | [Tags] | 64B | 2C | PDRDISC | SKIP_PATCH
-| | ...
-| | [Template] | Discover NDR or PDR for IPv4 routing with ACLs
-| | wt=2 | rxq=1 | framesize=${64} | min_rate=${50000} | search_type=PDR
+| | phy_cores=${2} | framesize=${64} | search_type=PDR
| tc05-64B-4t4c-ethip4udp-ip4base-iacl10-stateful-flows10k-ndrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 routing config with ACL with\
-| | ... | 4 phy cores, 2 receive queues per NIC port.
-| | ... | [Ver] Find NDR for 64 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 50kpps.
-| | ...
| | [Tags] | 64B | 4C | NDRDISC
-| | ...
-| | [Template] | Discover NDR or PDR for IPv4 routing with ACLs
-| | wt=4 | rxq=2 | framesize=${64} | min_rate=${50000} | search_type=NDR
+| | phy_cores=${4} | framesize=${64} | search_type=NDR
| tc06-64B-4t4c-ethip4udp-ip4base-iacl10-stateful-flows10k-pdrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 routing config with ACL with\
-| | ... | 4 phy cores, 2 receive queues per NIC port.
-| | ... | [Ver] Find PDR for 64 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 50kpps, LT=0.5%.
-| | ...
| | [Tags] | 64B | 4C | PDRDISC | SKIP_PATCH
-| | ...
-| | [Template] | Discover NDR or PDR for IPv4 routing with ACLs
-| | wt=4 | rxq=2 | framesize=${64} | min_rate=${50000} | search_type=PDR
+| | phy_cores=${4} | framesize=${64} | search_type=PDR
diff --git a/tests/vpp/perf/ip4/10ge2p1x520-ethip4udp-ip4base-iacl10sl-100flows-ndrpdrdisc.robot b/tests/vpp/perf/ip4/10ge2p1x520-ethip4udp-ip4base-iacl10sl-100flows-ndrpdrdisc.robot
index c363fafced..aca5177542 100644
--- a/tests/vpp/perf/ip4/10ge2p1x520-ethip4udp-ip4base-iacl10sl-100flows-ndrpdrdisc.robot
+++ b/tests/vpp/perf/ip4/10ge2p1x520-ethip4udp-ip4base-iacl10sl-100flows-ndrpdrdisc.robot
@@ -29,6 +29,8 @@
| Test Teardown | Tear down performance test with ACL
| ... | ${min_rate}pps | ${framesize} | ${traffic_profile}
| ...
+| Test Template | Local template
+| ...
| Documentation | *RFC2544: Packet throughput IPv4 test cases with ACL*
| ...
| ... | *[Top] Network Topologies:* TG-DUT1-DUT2-TG 3-node circular topology\
@@ -73,15 +75,17 @@
| ${trex_stream2_subnet}= | 20.20.20.0/24
*** Keywords ***
-| Discover NDR or PDR for IPv4 routing with ACLs
-| | [Arguments] | ${wt} | ${rxq} | ${framesize} | ${min_rate} | ${search_type}
+| Local template
+| | [Arguments] | ${phy_cores} | ${framesize} | ${search_type}
+| | ... | ${rxq}=${None} | ${min_rate}=${50000}
+| | ...
| | Set Test Variable | ${framesize}
| | Set Test Variable | ${min_rate}
| | ${max_rate}= | Calculate pps | ${s_limit} | ${framesize}
| | ${binary_min}= | Set Variable | ${min_rate}
| | ${binary_max}= | Set Variable | ${max_rate}
| | ${threshold}= | Set Variable | ${min_rate}
-| | Given Add '${wt}' worker threads and '${rxq}' rxqueues in 3-node single-link circular topology
+| | Given Add worker threads and rxqueues to all DUTs | ${phy_cores} | ${rxq}
| | And Add PCI devices to all DUTs
| | ${get_framesize}= | Get Frame Size | ${framesize}
| | And Run Keyword If | ${get_framesize} < ${1522} | Add no multi seg to all DUTs
@@ -102,73 +106,25 @@
*** Test Cases ***
| tc01-64B-1t1c-ethip4udp-ip4base-iacl10-stateless-flows100-ndrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 routing config with ACL with\
-| | ... | 1 phy core, 1 receive queue per NIC port.
-| | ... | [Ver] Find NDR for 64 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 50kpps.
-| | ...
| | [Tags] | 64B | 1C | NDRDISC
-| | ...
-| | [Template] | Discover NDR or PDR for IPv4 routing with ACLs
-| | wt=1 | rxq=1 | framesize=${64} | min_rate=${50000} | search_type=NDR
+| | phy_cores=${1} | framesize=${64} | search_type=NDR
| tc02-64B-1t1c-ethip4udp-ip4base-iacl10-stateless-flows100-pdrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 routing config with ACL with\
-| | ... | 1 phy core, 1 receive queue per NIC port.
-| | ... | [Ver] Find PDR for 64 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 50kpps, LT=0.5%.
-| | ...
| | [Tags] | 64B | 1C | PDRDISC | SKIP_PATCH
-| | ...
-| | [Template] | Discover NDR or PDR for IPv4 routing with ACLs
-| | wt=1 | rxq=1 | framesize=${64} | min_rate=${50000} | search_type=PDR
+| | phy_cores=${1} | framesize=${64} | search_type=PDR
| tc03-64B-2t2c-ethip4udp-ip4base-iacl10-stateless-flows100-ndrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 routing config with ACL with\
-| | ... | 2 phy cores, 1 receive queue per NIC port.
-| | ... | [Ver] Find NDR for 64 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 50kpps.
-| | ...
| | [Tags] | 64B | 2C | NDRDISC
-| | ...
-| | [Template] | Discover NDR or PDR for IPv4 routing with ACLs
-| | wt=2 | rxq=1 | framesize=${64} | min_rate=${50000} | search_type=NDR
+| | phy_cores=${2} | framesize=${64} | search_type=NDR
| tc04-64B-2t2c-ethip4udp-ip4base-iacl10-stateless-flows100-pdrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 routing config with ACL with\
-| | ... | 2 phy cores, 1 receive queue per NIC port.
-| | ... | [Ver] Find PDR for 64 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 50kpps, LT=0.5%.
-| | ...
| | [Tags] | 64B | 2C | PDRDISC | SKIP_PATCH
-| | ...
-| | [Template] | Discover NDR or PDR for IPv4 routing with ACLs
-| | wt=2 | rxq=1 | framesize=${64} | min_rate=${50000} | search_type=PDR
+| | phy_cores=${2} | framesize=${64} | search_type=PDR
| tc05-64B-4t4c-ethip4udp-ip4base-iacl10-stateless-flows100-ndrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 routing config with ACL with\
-| | ... | 4 phy cores, 2 receive queues per NIC port.
-| | ... | [Ver] Find NDR for 64 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 50kpps.
-| | ...
| | [Tags] | 64B | 4C | NDRDISC
-| | ...
-| | [Template] | Discover NDR or PDR for IPv4 routing with ACLs
-| | wt=4 | rxq=2 | framesize=${64} | min_rate=${50000} | search_type=NDR
+| | phy_cores=${4} | framesize=${64} | search_type=NDR
| tc06-64B-4t4c-ethip4udp-ip4base-iacl10-stateless-flows100-pdrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 routing config with ACL with\
-| | ... | 4 phy cores, 2 receive queues per NIC port.
-| | ... | [Ver] Find PDR for 64 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 50kpps, LT=0.5%.
-| | ...
| | [Tags] | 64B | 4C | PDRDISC | SKIP_PATCH
-| | ...
-| | [Template] | Discover NDR or PDR for IPv4 routing with ACLs
-| | wt=4 | rxq=2 | framesize=${64} | min_rate=${50000} | search_type=PDR
+| | phy_cores=${4} | framesize=${64} | search_type=PDR
diff --git a/tests/vpp/perf/ip4/10ge2p1x520-ethip4udp-ip4base-iacl10sl-100kflows-ndrpdrdisc.robot b/tests/vpp/perf/ip4/10ge2p1x520-ethip4udp-ip4base-iacl10sl-100kflows-ndrpdrdisc.robot
index ae02a27877..53f609874f 100644
--- a/tests/vpp/perf/ip4/10ge2p1x520-ethip4udp-ip4base-iacl10sl-100kflows-ndrpdrdisc.robot
+++ b/tests/vpp/perf/ip4/10ge2p1x520-ethip4udp-ip4base-iacl10sl-100kflows-ndrpdrdisc.robot
@@ -29,6 +29,8 @@
| Test Teardown | Tear down performance test with ACL
| ... | ${min_rate}pps | ${framesize} | ${traffic_profile}
| ...
+| Test Template | Local template
+| ...
| Documentation | *RFC2544: Packet throughput IPv4 test cases with ACL*
| ...
| ... | *[Top] Network Topologies:* TG-DUT1-DUT2-TG 3-node circular topology\
@@ -73,15 +75,17 @@
| ${trex_stream2_subnet}= | 20.20.20.0/24
*** Keywords ***
-| Discover NDR or PDR for IPv4 routing with ACLs
-| | [Arguments] | ${wt} | ${rxq} | ${framesize} | ${min_rate} | ${search_type}
+| Local template
+| | [Arguments] | ${phy_cores} | ${framesize} | ${search_type}
+| | ... | ${rxq}=${None} | ${min_rate}=${50000}
+| | ...
| | Set Test Variable | ${framesize}
| | Set Test Variable | ${min_rate}
| | ${max_rate}= | Calculate pps | ${s_limit} | ${framesize}
| | ${binary_min}= | Set Variable | ${min_rate}
| | ${binary_max}= | Set Variable | ${max_rate}
| | ${threshold}= | Set Variable | ${min_rate}
-| | Given Add '${wt}' worker threads and '${rxq}' rxqueues in 3-node single-link circular topology
+| | Given Add worker threads and rxqueues to all DUTs | ${phy_cores} | ${rxq}
| | And Add PCI devices to all DUTs
| | ${get_framesize}= | Get Frame Size | ${framesize}
| | And Run Keyword If | ${get_framesize} < ${1522} | Add no multi seg to all DUTs
@@ -102,73 +106,25 @@
*** Test Cases ***
| tc01-64B-1t1c-ethip4udp-ip4base-iacl10-stateless-flows100k-ndrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 routing config with ACL with\
-| | ... | 1 phy core, 1 receive queue per NIC port.
-| | ... | [Ver] Find NDR for 64 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 50kpps.
-| | ...
| | [Tags] | 64B | 1C | NDRDISC
-| | ...
-| | [Template] | Discover NDR or PDR for IPv4 routing with ACLs
-| | wt=1 | rxq=1 | framesize=${64} | min_rate=${50000} | search_type=NDR
+| | phy_cores=${1} | framesize=${64} | search_type=NDR
| tc02-64B-1t1c-ethip4udp-ip4base-iacl10-stateless-flows100k-pdrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 routing config with ACL with\
-| | ... | 1 phy core, 1 receive queue per NIC port.
-| | ... | [Ver] Find PDR for 64 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 50kpps, LT=0.5%.
-| | ...
| | [Tags] | 64B | 1C | PDRDISC | SKIP_PATCH
-| | ...
-| | [Template] | Discover NDR or PDR for IPv4 routing with ACLs
-| | wt=1 | rxq=1 | framesize=${64} | min_rate=${50000} | search_type=PDR
+| | phy_cores=${1} | framesize=${64} | search_type=PDR
| tc03-64B-2t2c-ethip4udp-ip4base-iacl10-stateless-flows100k-ndrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 routing config with ACL with\
-| | ... | 2 phy cores, 1 receive queue per NIC port.
-| | ... | [Ver] Find NDR for 64 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 50kpps.
-| | ...
| | [Tags] | 64B | 2C | NDRDISC
-| | ...
-| | [Template] | Discover NDR or PDR for IPv4 routing with ACLs
-| | wt=2 | rxq=1 | framesize=${64} | min_rate=${50000} | search_type=NDR
+| | phy_cores=${2} | framesize=${64} | search_type=NDR
| tc04-64B-2t2c-ethip4udp-ip4base-iacl10-stateless-flows100k-pdrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 routing config with ACL with\
-| | ... | 2 phy cores, 1 receive queue per NIC port.
-| | ... | [Ver] Find PDR for 64 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 50kpps, LT=0.5%.
-| | ...
| | [Tags] | 64B | 2C | PDRDISC | SKIP_PATCH
-| | ...
-| | [Template] | Discover NDR or PDR for IPv4 routing with ACLs
-| | wt=2 | rxq=1 | framesize=${64} | min_rate=${50000} | search_type=PDR
+| | phy_cores=${2} | framesize=${64} | search_type=PDR
| tc05-64B-4t4c-ethip4udp-ip4base-iacl10-stateless-flows100k-ndrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 routing config with ACL with\
-| | ... | 4 phy cores, 2 receive queues per NIC port.
-| | ... | [Ver] Find NDR for 64 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 50kpps.
-| | ...
| | [Tags] | 64B | 4C | NDRDISC
-| | ...
-| | [Template] | Discover NDR or PDR for IPv4 routing with ACLs
-| | wt=4 | rxq=2 | framesize=${64} | min_rate=${50000} | search_type=NDR
+| | phy_cores=${4} | framesize=${64} | search_type=NDR
| tc06-64B-4t4c-ethip4udp-ip4base-iacl10-stateless-flows100k-pdrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 routing config with ACL with\
-| | ... | 4 phy cores, 2 receive queues per NIC port.
-| | ... | [Ver] Find PDR for 64 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 50kpps, LT=0.5%.
-| | ...
| | [Tags] | 64B | 4C | PDRDISC | SKIP_PATCH
-| | ...
-| | [Template] | Discover NDR or PDR for IPv4 routing with ACLs
-| | wt=4 | rxq=2 | framesize=${64} | min_rate=${50000} | search_type=PDR
+| | phy_cores=${4} | framesize=${64} | search_type=PDR
diff --git a/tests/vpp/perf/ip4/10ge2p1x520-ethip4udp-ip4base-iacl10sl-10kflows-ndrpdrdisc.robot b/tests/vpp/perf/ip4/10ge2p1x520-ethip4udp-ip4base-iacl10sl-10kflows-ndrpdrdisc.robot
index 56165a345b..04f691dbef 100644
--- a/tests/vpp/perf/ip4/10ge2p1x520-ethip4udp-ip4base-iacl10sl-10kflows-ndrpdrdisc.robot
+++ b/tests/vpp/perf/ip4/10ge2p1x520-ethip4udp-ip4base-iacl10sl-10kflows-ndrpdrdisc.robot
@@ -29,6 +29,8 @@
| Test Teardown | Tear down performance test with ACL
| ... | ${min_rate}pps | ${framesize} | ${traffic_profile}
| ...
+| Test Template | Local template
+| ...
| Documentation | *RFC2544: Packet throughput IPv4 test cases with ACL*
| ...
| ... | *[Top] Network Topologies:* TG-DUT1-DUT2-TG 3-node circular topology\
@@ -73,15 +75,17 @@
| ${trex_stream2_subnet}= | 20.20.20.0/24
*** Keywords ***
-| Discover NDR or PDR for IPv4 routing with ACLs
-| | [Arguments] | ${wt} | ${rxq} | ${framesize} | ${min_rate} | ${search_type}
+| Local template
+| | [Arguments] | ${phy_cores} | ${framesize} | ${search_type}
+| | ... | ${rxq}=${None} | ${min_rate}=${50000}
+| | ...
| | Set Test Variable | ${framesize}
| | Set Test Variable | ${min_rate}
| | ${max_rate}= | Calculate pps | ${s_limit} | ${framesize}
| | ${binary_min}= | Set Variable | ${min_rate}
| | ${binary_max}= | Set Variable | ${max_rate}
| | ${threshold}= | Set Variable | ${min_rate}
-| | Given Add '${wt}' worker threads and '${rxq}' rxqueues in 3-node single-link circular topology
+| | Given Add worker threads and rxqueues to all DUTs | ${phy_cores} | ${rxq}
| | And Add PCI devices to all DUTs
| | ${get_framesize}= | Get Frame Size | ${framesize}
| | And Run Keyword If | ${get_framesize} < ${1522} | Add no multi seg to all DUTs
@@ -102,73 +106,25 @@
*** Test Cases ***
| tc01-64B-1t1c-ethip4udp-ip4base-iacl10-stateless-flows10k-ndrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 routing config with ACL with\
-| | ... | 1 phy core, 1 receive queue per NIC port.
-| | ... | [Ver] Find NDR for 64 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 50kpps.
-| | ...
| | [Tags] | 64B | 1C | NDRDISC
-| | ...
-| | [Template] | Discover NDR or PDR for IPv4 routing with ACLs
-| | wt=1 | rxq=1 | framesize=${64} | min_rate=${50000} | search_type=NDR
+| | phy_cores=${1} | framesize=${64} | search_type=NDR
| tc02-64B-1t1c-ethip4udp-ip4base-iacl10-stateless-flows10k-pdrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 routing config with ACL with\
-| | ... | 1 phy core, 1 receive queue per NIC port.
-| | ... | [Ver] Find PDR for 64 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 50kpps, LT=0.5%.
-| | ...
| | [Tags] | 64B | 1C | PDRDISC | SKIP_PATCH
-| | ...
-| | [Template] | Discover NDR or PDR for IPv4 routing with ACLs
-| | wt=1 | rxq=1 | framesize=${64} | min_rate=${50000} | search_type=PDR
+| | phy_cores=${1} | framesize=${64} | search_type=PDR
| tc03-64B-2t2c-ethip4udp-ip4base-iacl10-stateless-flows10k-ndrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 routing config with ACL with\
-| | ... | 2 phy cores, 1 receive queue per NIC port.
-| | ... | [Ver] Find NDR for 64 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 50kpps.
-| | ...
| | [Tags] | 64B | 2C | NDRDISC
-| | ...
-| | [Template] | Discover NDR or PDR for IPv4 routing with ACLs
-| | wt=2 | rxq=1 | framesize=${64} | min_rate=${50000} | search_type=NDR
+| | phy_cores=${2} | framesize=${64} | search_type=NDR
| tc04-64B-2t2c-ethip4udp-ip4base-iacl10-stateless-flows10k-pdrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 routing config with ACL with\
-| | ... | 2 phy cores, 1 receive queue per NIC port.
-| | ... | [Ver] Find PDR for 64 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 50kpps, LT=0.5%.
-| | ...
| | [Tags] | 64B | 2C | PDRDISC | SKIP_PATCH
-| | ...
-| | [Template] | Discover NDR or PDR for IPv4 routing with ACLs
-| | wt=2 | rxq=1 | framesize=${64} | min_rate=${50000} | search_type=PDR
+| | phy_cores=${2} | framesize=${64} | search_type=PDR
| tc05-64B-4t4c-ethip4udp-ip4base-iacl10-stateless-flows10k-ndrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 routing config with ACL with\
-| | ... | 4 phy cores, 2 receive queues per NIC port.
-| | ... | [Ver] Find NDR for 64 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 50kpps.
-| | ...
| | [Tags] | 64B | 4C | NDRDISC
-| | ...
-| | [Template] | Discover NDR or PDR for IPv4 routing with ACLs
-| | wt=4 | rxq=2 | framesize=${64} | min_rate=${50000} | search_type=NDR
+| | phy_cores=${4} | framesize=${64} | search_type=NDR
| tc06-64B-4t4c-ethip4udp-ip4base-iacl10-stateless-flows10k-pdrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 routing config with ACL with\
-| | ... | 4 phy cores, 2 receive queues per NIC port.
-| | ... | [Ver] Find PDR for 64 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 50kpps, LT=0.5%.
-| | ...
| | [Tags] | 64B | 4C | PDRDISC | SKIP_PATCH
-| | ...
-| | [Template] | Discover NDR or PDR for IPv4 routing with ACLs
-| | wt=4 | rxq=2 | framesize=${64} | min_rate=${50000} | search_type=PDR
+| | phy_cores=${4} | framesize=${64} | search_type=PDR
diff --git a/tests/vpp/perf/ip4/10ge2p1x520-ethip4udp-ip4base-iacl1sf-100flows-ndrpdrdisc.robot b/tests/vpp/perf/ip4/10ge2p1x520-ethip4udp-ip4base-iacl1sf-100flows-ndrpdrdisc.robot
index 7605798687..629fc3baa4 100644
--- a/tests/vpp/perf/ip4/10ge2p1x520-ethip4udp-ip4base-iacl1sf-100flows-ndrpdrdisc.robot
+++ b/tests/vpp/perf/ip4/10ge2p1x520-ethip4udp-ip4base-iacl1sf-100flows-ndrpdrdisc.robot
@@ -29,6 +29,8 @@
| Test Teardown | Tear down performance test with ACL
| ... | ${min_rate}pps | ${framesize} | ${traffic_profile}
| ...
+| Test Template | Local template
+| ...
| Documentation | *RFC2544: Packet throughput IPv4 test cases with ACL*
| ...
| ... | *[Top] Network Topologies:* TG-DUT1-DUT2-TG 3-node circular topology\
@@ -73,15 +75,17 @@
| ${trex_stream2_subnet}= | 20.20.20.0/24
*** Keywords ***
-| Discover NDR or PDR for IPv4 routing with ACLs
-| | [Arguments] | ${wt} | ${rxq} | ${framesize} | ${min_rate} | ${search_type}
+| Local template
+| | [Arguments] | ${phy_cores} | ${framesize} | ${search_type}
+| | ... | ${rxq}=${None} | ${min_rate}=${50000}
+| | ...
| | Set Test Variable | ${framesize}
| | Set Test Variable | ${min_rate}
| | ${max_rate}= | Calculate pps | ${s_limit} | ${framesize}
| | ${binary_min}= | Set Variable | ${min_rate}
| | ${binary_max}= | Set Variable | ${max_rate}
| | ${threshold}= | Set Variable | ${min_rate}
-| | Given Add '${wt}' worker threads and '${rxq}' rxqueues in 3-node single-link circular topology
+| | Given Add worker threads and rxqueues to all DUTs | ${phy_cores} | ${rxq}
| | And Add PCI devices to all DUTs
| | ${get_framesize}= | Get Frame Size | ${framesize}
| | And Run Keyword If | ${get_framesize} < ${1522} | Add no multi seg to all DUTs
@@ -102,73 +106,25 @@
*** Test Cases ***
| tc01-64B-1t1c-ethip4udp-ip4base-iacl1-stateful-flows100-ndrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 routing config with ACL with\
-| | ... | 1 phy core, 1 receive queue per NIC port.
-| | ... | [Ver] Find NDR for 64 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 50kpps.
-| | ...
| | [Tags] | 64B | 1C | NDRDISC
-| | ...
-| | [Template] | Discover NDR or PDR for IPv4 routing with ACLs
-| | wt=1 | rxq=1 | framesize=${64} | min_rate=${50000} | search_type=NDR
+| | phy_cores=${1} | framesize=${64} | search_type=NDR
| tc02-64B-1t1c-ethip4udp-ip4base-iacl1-stateful-flows100-pdrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 routing config with ACL with\
-| | ... | 1 phy core, 1 receive queue per NIC port.
-| | ... | [Ver] Find PDR for 64 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 50kpps, LT=0.5%.
-| | ...
| | [Tags] | 64B | 1C | PDRDISC | SKIP_PATCH
-| | ...
-| | [Template] | Discover NDR or PDR for IPv4 routing with ACLs
-| | wt=1 | rxq=1 | framesize=${64} | min_rate=${50000} | search_type=PDR
+| | phy_cores=${1} | framesize=${64} | search_type=PDR
| tc03-64B-2t2c-ethip4udp-ip4base-iacl1-stateful-flows100-ndrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 routing config with ACL with\
-| | ... | 2 phy cores, 1 receive queue per NIC port.
-| | ... | [Ver] Find NDR for 64 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 50kpps.
-| | ...
| | [Tags] | 64B | 2C | NDRDISC
-| | ...
-| | [Template] | Discover NDR or PDR for IPv4 routing with ACLs
-| | wt=2 | rxq=1 | framesize=${64} | min_rate=${50000} | search_type=NDR
+| | phy_cores=${2} | framesize=${64} | search_type=NDR
| tc04-64B-2t2c-ethip4udp-ip4base-iacl1-stateful-flows100-pdrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 routing config with ACL with\
-| | ... | 2 phy cores, 1 receive queue per NIC port.
-| | ... | [Ver] Find PDR for 64 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 50kpps, LT=0.5%.
-| | ...
| | [Tags] | 64B | 2C | PDRDISC | SKIP_PATCH
-| | ...
-| | [Template] | Discover NDR or PDR for IPv4 routing with ACLs
-| | wt=2 | rxq=1 | framesize=${64} | min_rate=${50000} | search_type=PDR
+| | phy_cores=${2} | framesize=${64} | search_type=PDR
| tc05-64B-4t4c-ethip4udp-ip4base-iacl1-stateful-flows100-ndrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 routing config with ACL with\
-| | ... | 4 phy cores, 2 receive queues per NIC port.
-| | ... | [Ver] Find NDR for 64 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 50kpps.
-| | ...
| | [Tags] | 64B | 4C | NDRDISC
-| | ...
-| | [Template] | Discover NDR or PDR for IPv4 routing with ACLs
-| | wt=4 | rxq=2 | framesize=${64} | min_rate=${50000} | search_type=NDR
+| | phy_cores=${4} | framesize=${64} | search_type=NDR
| tc06-64B-4t4c-ethip4udp-ip4base-iacl1-stateful-flows100-pdrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 routing config with ACL with\
-| | ... | 4 phy cores, 2 receive queues per NIC port.
-| | ... | [Ver] Find PDR for 64 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 50kpps, LT=0.5%.
-| | ...
| | [Tags] | 64B | 4C | PDRDISC | SKIP_PATCH
-| | ...
-| | [Template] | Discover NDR or PDR for IPv4 routing with ACLs
-| | wt=4 | rxq=2 | framesize=${64} | min_rate=${50000} | search_type=PDR
+| | phy_cores=${4} | framesize=${64} | search_type=PDR
diff --git a/tests/vpp/perf/ip4/10ge2p1x520-ethip4udp-ip4base-iacl1sf-100kflows-ndrpdrdisc.robot b/tests/vpp/perf/ip4/10ge2p1x520-ethip4udp-ip4base-iacl1sf-100kflows-ndrpdrdisc.robot
index 03a6a07c4c..2568f5237e 100644
--- a/tests/vpp/perf/ip4/10ge2p1x520-ethip4udp-ip4base-iacl1sf-100kflows-ndrpdrdisc.robot
+++ b/tests/vpp/perf/ip4/10ge2p1x520-ethip4udp-ip4base-iacl1sf-100kflows-ndrpdrdisc.robot
@@ -29,6 +29,8 @@
| Test Teardown | Tear down performance test with ACL
| ... | ${min_rate}pps | ${framesize} | ${traffic_profile}
| ...
+| Test Template | Local template
+| ...
| Documentation | *RFC2544: Packet throughput IPv4 test cases with ACL*
| ...
| ... | *[Top] Network Topologies:* TG-DUT1-DUT2-TG 3-node circular topology\
@@ -73,15 +75,17 @@
| ${trex_stream2_subnet}= | 20.20.20.0/24
*** Keywords ***
-| Discover NDR or PDR for IPv4 routing with ACLs
-| | [Arguments] | ${wt} | ${rxq} | ${framesize} | ${min_rate} | ${search_type}
+| Local template
+| | [Arguments] | ${phy_cores} | ${framesize} | ${search_type}
+| | ... | ${rxq}=${None} | ${min_rate}=${50000}
+| | ...
| | Set Test Variable | ${framesize}
| | Set Test Variable | ${min_rate}
| | ${max_rate}= | Calculate pps | ${s_limit} | ${framesize}
| | ${binary_min}= | Set Variable | ${min_rate}
| | ${binary_max}= | Set Variable | ${max_rate}
| | ${threshold}= | Set Variable | ${min_rate}
-| | Given Add '${wt}' worker threads and '${rxq}' rxqueues in 3-node single-link circular topology
+| | Given Add worker threads and rxqueues to all DUTs | ${phy_cores} | ${rxq}
| | And Add PCI devices to all DUTs
| | ${get_framesize}= | Get Frame Size | ${framesize}
| | And Run Keyword If | ${get_framesize} < ${1522} | Add no multi seg to all DUTs
@@ -102,73 +106,25 @@
*** Test Cases ***
| tc01-64B-1t1c-ethip4udp-ip4base-iacl1-stateful-flows100k-ndrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 routing config with ACL with\
-| | ... | 1 phy core, 1 receive queue per NIC port.
-| | ... | [Ver] Find NDR for 64 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 50kpps.
-| | ...
| | [Tags] | 64B | 1C | NDRDISC
-| | ...
-| | [Template] | Discover NDR or PDR for IPv4 routing with ACLs
-| | wt=1 | rxq=1 | framesize=${64} | min_rate=${50000} | search_type=NDR
+| | phy_cores=${1} | framesize=${64} | search_type=NDR
| tc02-64B-1t1c-ethip4udp-ip4base-iacl1-stateful-flows100k-pdrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 routing config with ACL with\
-| | ... | 1 phy core, 1 receive queue per NIC port.
-| | ... | [Ver] Find PDR for 64 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 50kpps, LT=0.5%.
-| | ...
| | [Tags] | 64B | 1C | PDRDISC | SKIP_PATCH
-| | ...
-| | [Template] | Discover NDR or PDR for IPv4 routing with ACLs
-| | wt=1 | rxq=1 | framesize=${64} | min_rate=${50000} | search_type=PDR
+| | phy_cores=${1} | framesize=${64} | search_type=PDR
| tc03-64B-2t2c-ethip4udp-ip4base-iacl1-stateful-flows100k-ndrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 routing config with ACL with\
-| | ... | 2 phy cores, 1 receive queue per NIC port.
-| | ... | [Ver] Find NDR for 64 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 50kpps.
-| | ...
| | [Tags] | 64B | 2C | NDRDISC
-| | ...
-| | [Template] | Discover NDR or PDR for IPv4 routing with ACLs
-| | wt=2 | rxq=1 | framesize=${64} | min_rate=${50000} | search_type=NDR
+| | phy_cores=${2} | framesize=${64} | search_type=NDR
| tc04-64B-2t2c-ethip4udp-ip4base-iacl1-stateful-flows100k-pdrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 routing config with ACL with\
-| | ... | 2 phy cores, 1 receive queue per NIC port.
-| | ... | [Ver] Find PDR for 64 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 50kpps, LT=0.5%.
-| | ...
| | [Tags] | 64B | 2C | PDRDISC | SKIP_PATCH
-| | ...
-| | [Template] | Discover NDR or PDR for IPv4 routing with ACLs
-| | wt=2 | rxq=1 | framesize=${64} | min_rate=${50000} | search_type=PDR
+| | phy_cores=${2} | framesize=${64} | search_type=PDR
| tc05-64B-4t4c-ethip4udp-ip4base-iacl1-stateful-flows100k-ndrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 routing config with ACL with\
-| | ... | 4 phy cores, 2 receive queues per NIC port.
-| | ... | [Ver] Find NDR for 64 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 50kpps.
-| | ...
| | [Tags] | 64B | 4C | NDRDISC
-| | ...
-| | [Template] | Discover NDR or PDR for IPv4 routing with ACLs
-| | wt=4 | rxq=2 | framesize=${64} | min_rate=${50000} | search_type=NDR
+| | phy_cores=${4} | framesize=${64} | search_type=NDR
| tc06-64B-4t4c-ethip4udp-ip4base-iacl1-stateful-flows100k-pdrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 routing config with ACL with\
-| | ... | 4 phy cores, 2 receive queues per NIC port.
-| | ... | [Ver] Find PDR for 64 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 50kpps, LT=0.5%.
-| | ...
| | [Tags] | 64B | 4C | PDRDISC | SKIP_PATCH
-| | ...
-| | [Template] | Discover NDR or PDR for IPv4 routing with ACLs
-| | wt=4 | rxq=2 | framesize=${64} | min_rate=${50000} | search_type=PDR
+| | phy_cores=${4} | framesize=${64} | search_type=PDR
diff --git a/tests/vpp/perf/ip4/10ge2p1x520-ethip4udp-ip4base-iacl1sf-10kflows-mrr.robot b/tests/vpp/perf/ip4/10ge2p1x520-ethip4udp-ip4base-iacl1sf-10kflows-mrr.robot
index 54a20fd19c..1d048bc35d 100644
--- a/tests/vpp/perf/ip4/10ge2p1x520-ethip4udp-ip4base-iacl1sf-10kflows-mrr.robot
+++ b/tests/vpp/perf/ip4/10ge2p1x520-ethip4udp-ip4base-iacl1sf-10kflows-mrr.robot
@@ -28,6 +28,8 @@
| ...
| Test Teardown | Tear down performance mrr test
| ...
+| Test Template | Local template
+| ...
| Documentation | *Raw results IPv4 test cases with ACL*
| ...
| ... | *[Top] Network Topologies:* TG-DUT1-DUT2-TG 3-node circular topology\
@@ -67,22 +69,26 @@
| ${trex_stream2_subnet}= | 20.20.20.0/24
*** Keywords ***
-| Check RR for IPv4 routing with ACLs
-| | ...
+| Local template
| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 routing config with ACL with ${wt} thread(s),\
-| | ... | ${wt} phy core(s), ${rxq} receive queue(s) per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for ${framesize} frames using single\
+| | ... | [Cfg] DUT runs IPv4 routing config with ACL.
+| | ... | Each DUT uses ${phy_cores} physical core(s) for worker threads.
+| | ... | [Ver] Measure MaxReceivedRate for ${framesize}B frames using single\
| | ... | trial throughput test.
| | ...
-| | [Arguments] | ${wt} | ${rxq} | ${framesize}
+| | ... | *Arguments:*
+| | ... | - framesize - Framesize in Bytes in integer or string (IMIX_v4_1).
+| | ... | Type: integer, string
+| | ... | - phy_cores - Number of physical cores. Type: integer
+| | ... | - rxq - Number of RX queues, default value: ${None}. Type: integer
+| | ...
+| | [Arguments] | ${phy_cores} | ${framesize} | ${rxq}=${None}
| | ...
-| | # Test Variables required for test execution and test teardown
| | Set Test Variable | ${framesize}
| | ${get_framesize}= | Get Frame Size | ${framesize}
| | ${max_rate}= | Calculate pps | ${s_limit} | ${framesize}
| | ...
-| | Given Add '${wt}' worker threads and '${rxq}' rxqueues in 3-node single-link circular topology
+| | Given Add worker threads and rxqueues to all DUTs | ${phy_cores} | ${rxq}
| | And Add PCI devices to all DUTs
| | And Run Keyword If | ${get_framesize} < ${1522}
| | ... | Add no multi seg to all DUTs
@@ -96,148 +102,49 @@
*** Test Cases ***
| tc01-64B-1t1c-ethip4udp-ip4base-iacl1-stateful-flows10k-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 routing config with ACL with\
-| | ... | 1 phy core, 1 receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 64B frames using single trial\
-| | ... | throughput test.
-| | ...
| | [Tags] | 64B | 1C
-| | ...
-| | [Template] | Check RR for IPv4 routing with ACLs
-| | wt=1 | rxq=1 | framesize=${64}
+| | phy_cores=${1} | framesize=${64}
| tc02-1518B-1t1c-ethip4udp-ip4base-iacl1-stateful-flows10k-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 routing config with ACL with\
-| | ... | 1 phy core, 1 receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 1518B frames using single trial\
-| | ... | throughput test.
-| | ...
| | [Tags] | 1518B | 1C
-| | ...
-| | [Template] | Check RR for IPv4 routing with ACLs
-| | wt=1 | rxq=1 | framesize=${1518}
+| | phy_cores=${1} | framesize=${1518}
| tc03-9000B-1t1c-ethip4udp-ip4base-iacl1-stateful-flows10k-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 routing config with ACL with\
-| | ... | 1 phy core, 1 receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 9000B frames using single trial\
-| | ... | throughput test.
-| | ...
| | [Tags] | 9000B | 1C
-| | ...
-| | [Template] | Check RR for IPv4 routing with ACLs
-| | wt=1 | rxq=1 | framesize=${9000}
+| | phy_cores=${1} | framesize=${9000}
| tc04-IMIX-1t1c-ethip4udp-ip4base-iacl1-stateful-flows10k-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 routing config with ACL with\
-| | ... | 1 phy core, 1 receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for IMIX_v4_1 frames using single trial\
-| | ... | throughput test.
-| | ... | IMIX_v4_1 = (28x64B; 16x570B; 4x1518B)
-| | ...
| | [Tags] | IMIX | 1C
-| | ...
-| | [Template] | Check RR for IPv4 routing with ACLs
-| | wt=1 | rxq=1 | framesize=IMIX_v4_1
+| | phy_cores=${1} | framesize=IMIX_v4_1
| tc05-64B-2t2c-ethip4udp-ip4base-iacl1-stateful-flows10k-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 routing config with ACL with\
-| | ... | 2 phy cores, 1 receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 64B frames using single trial\
-| | ... | throughput test.
-| | ...
| | [Tags] | 64B | 2C
-| | ...
-| | [Template] | Check RR for IPv4 routing with ACLs
-| | wt=2 | rxq=1 | framesize=${64}
+| | phy_cores=${2} | framesize=${64}
| tc06-1518B-2t2c-ethip4udp-ip4base-iacl1-stateful-flows10k-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 routing config with ACL with\
-| | ... | 2 phy cores, 1 receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 1518B frames using single trial\
-| | ... | throughput test.
-| | ...
| | [Tags] | 1518B | 2C
-| | ...
-| | [Template] | Check RR for IPv4 routing with ACLs
-| | wt=2 | rxq=1 | framesize=${1518}
+| | phy_cores=${2} | framesize=${1518}
| tc07-9000B-2t2c-ethip4udp-ip4base-iacl1-stateful-flows10k-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 routing config with ACL with\
-| | ... | 2 phy cores, 1 receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 9000B frames using single trial\
-| | ... | throughput test.
-| | ...
| | [Tags] | 9000B | 2C
-| | ...
-| | [Template] | Check RR for IPv4 routing with ACLs
-| | wt=2 | rxq=1 | framesize=${9000}
+| | phy_cores=${2} | framesize=${9000}
| tc08-IMIX-2t2c-ethip4udp-ip4base-iacl1-stateful-flows10k-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 routing config with ACL with\
-| | ... | 2 phy cores, 1 receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for IMIX_v4_1 frames using single trial\
-| | ... | throughput test.
-| | ... | IMIX_v4_1 = (28x64B; 16x570B; 4x1518B)
-| | ...
| | [Tags] | IMIX | 2C
-| | ...
-| | [Template] | Check RR for IPv4 routing with ACLs
-| | wt=2 | rxq=1 | framesize=IMIX_v4_1
+| | phy_cores=${2} | framesize=IMIX_v4_1
| tc09-64B-4t4c-ethip4udp-ip4base-iacl1-stateful-flows10k-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 routing config with ACL with\
-| | ... | 4 phy cores, 2 receive queues per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 64B frames using single trial\
-| | ... | throughput test.
-| | ...
| | [Tags] | 64B | 4C
-| | ...
-| | [Template] | Check RR for IPv4 routing with ACLs
-| | wt=4 | rxq=2 | framesize=${64}
+| | phy_cores=${4} | framesize=${64}
| tc10-1518B-4t4c-ethip4udp-ip4base-iacl1-stateful-flows10k-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 routing config with ACL with\
-| | ... | 4 phy cores, 2 receive queues per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 1518B frames using single trial\
-| | ... | throughput test.
-| | ...
| | [Tags] | 1518B | 4C
-| | ...
-| | [Template] | Check RR for IPv4 routing with ACLs
-| | wt=4 | rxq=2 | framesize=${1518}
+| | phy_cores=${4} | framesize=${1518}
| tc11-9000B-4t4c-ethip4udp-ip4base-iacl1-stateful-flows10k-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 routing config with ACL with\
-| | ... | 4 phy cores, 2 receive queues per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 9000B frames using single trial\
-| | ... | throughput test.
-| | ...
| | [Tags] | 9000B | 4C
-| | ...
-| | [Template] | Check RR for IPv4 routing with ACLs
-| | wt=4 | rxq=2 | framesize=${9000}
+| | phy_cores=${4} | framesize=${9000}
| tc12-IMIX-4t4c-ethip4udp-ip4base-iacl1-stateful-flows10k-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 routing config with ACL with\
-| | ... | 4 phy cores, 2 receive queues per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for IMIX_v4_1 frames using single trial\
-| | ... | throughput test.
-| | ... | IMIX_v4_1 = (28x64B; 16x570B; 4x1518B)
-| | ...
| | [Tags] | IMIX | 4C
-| | ...
-| | [Template] | Check RR for IPv4 routing with ACLs
-| | wt=4 | rxq=2 | framesize=IMIX_v4_1
+| | phy_cores=${4} | framesize=IMIX_v4_1
diff --git a/tests/vpp/perf/ip4/10ge2p1x520-ethip4udp-ip4base-iacl1sf-10kflows-ndrpdrdisc.robot b/tests/vpp/perf/ip4/10ge2p1x520-ethip4udp-ip4base-iacl1sf-10kflows-ndrpdrdisc.robot
index 1cddfaf9eb..ec6c2a5865 100644
--- a/tests/vpp/perf/ip4/10ge2p1x520-ethip4udp-ip4base-iacl1sf-10kflows-ndrpdrdisc.robot
+++ b/tests/vpp/perf/ip4/10ge2p1x520-ethip4udp-ip4base-iacl1sf-10kflows-ndrpdrdisc.robot
@@ -29,6 +29,8 @@
| Test Teardown | Tear down performance test with ACL
| ... | ${min_rate}pps | ${framesize} | ${traffic_profile}
| ...
+| Test Template | Local template
+| ...
| Documentation | *RFC2544: Packet throughput IPv4 test cases with ACL*
| ...
| ... | *[Top] Network Topologies:* TG-DUT1-DUT2-TG 3-node circular topology\
@@ -73,15 +75,17 @@
| ${trex_stream2_subnet}= | 20.20.20.0/24
*** Keywords ***
-| Discover NDR or PDR for IPv4 routing with ACLs
-| | [Arguments] | ${wt} | ${rxq} | ${framesize} | ${min_rate} | ${search_type}
+| Local template
+| | [Arguments] | ${phy_cores} | ${framesize} | ${search_type}
+| | ... | ${rxq}=${None} | ${min_rate}=${50000}
+| | ...
| | Set Test Variable | ${framesize}
| | Set Test Variable | ${min_rate}
| | ${max_rate}= | Calculate pps | ${s_limit} | ${framesize}
| | ${binary_min}= | Set Variable | ${min_rate}
| | ${binary_max}= | Set Variable | ${max_rate}
| | ${threshold}= | Set Variable | ${min_rate}
-| | Given Add '${wt}' worker threads and '${rxq}' rxqueues in 3-node single-link circular topology
+| | Given Add worker threads and rxqueues to all DUTs | ${phy_cores} | ${rxq}
| | And Add PCI devices to all DUTs
| | ${get_framesize}= | Get Frame Size | ${framesize}
| | And Run Keyword If | ${get_framesize} < ${1522} | Add no multi seg to all DUTs
@@ -102,73 +106,25 @@
*** Test Cases ***
| tc01-64B-1t1c-ethip4udp-ip4base-iacl1-stateful-flows10k-ndrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 routing config with ACL with\
-| | ... | 1 phy core, 1 receive queue per NIC port.
-| | ... | [Ver] Find NDR for 64 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 50kpps.
-| | ...
| | [Tags] | 64B | 1C | NDRDISC
-| | ...
-| | [Template] | Discover NDR or PDR for IPv4 routing with ACLs
-| | wt=1 | rxq=1 | framesize=${64} | min_rate=${50000} | search_type=NDR
+| | phy_cores=${1} | framesize=${64} | search_type=NDR
| tc02-64B-1t1c-ethip4udp-ip4base-iacl1-stateful-flows10k-pdrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 routing config with ACL with\
-| | ... | 1 phy core, 1 receive queue per NIC port.
-| | ... | [Ver] Find PDR for 64 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 50kpps, LT=0.5%.
-| | ...
| | [Tags] | 64B | 1C | PDRDISC | SKIP_PATCH
-| | ...
-| | [Template] | Discover NDR or PDR for IPv4 routing with ACLs
-| | wt=1 | rxq=1 | framesize=${64} | min_rate=${50000} | search_type=PDR
+| | phy_cores=${1} | framesize=${64} | search_type=PDR
| tc03-64B-2t2c-ethip4udp-ip4base-iacl1-stateful-flows10k-ndrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 routing config with ACL with\
-| | ... | 2 phy cores, 1 receive queue per NIC port.
-| | ... | [Ver] Find NDR for 64 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 50kpps.
-| | ...
| | [Tags] | 64B | 2C | NDRDISC
-| | ...
-| | [Template] | Discover NDR or PDR for IPv4 routing with ACLs
-| | wt=2 | rxq=1 | framesize=${64} | min_rate=${50000} | search_type=NDR
+| | phy_cores=${2} | framesize=${64} | search_type=NDR
| tc04-64B-2t2c-ethip4udp-ip4base-iacl1-stateful-flows10k-pdrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 routing config with ACL with\
-| | ... | 2 phy cores, 1 receive queue per NIC port.
-| | ... | [Ver] Find PDR for 64 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 50kpps, LT=0.5%.
-| | ...
| | [Tags] | 64B | 2C | PDRDISC | SKIP_PATCH
-| | ...
-| | [Template] | Discover NDR or PDR for IPv4 routing with ACLs
-| | wt=2 | rxq=1 | framesize=${64} | min_rate=${50000} | search_type=PDR
+| | phy_cores=${2} | framesize=${64} | search_type=PDR
| tc05-64B-4t4c-ethip4udp-ip4base-iacl1-stateful-flows10k-ndrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 routing config with ACL with\
-| | ... | 4 phy cores, 2 receive queues per NIC port.
-| | ... | [Ver] Find NDR for 64 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 50kpps.
-| | ...
| | [Tags] | 64B | 4C | NDRDISC
-| | ...
-| | [Template] | Discover NDR or PDR for IPv4 routing with ACLs
-| | wt=4 | rxq=2 | framesize=${64} | min_rate=${50000} | search_type=NDR
+| | phy_cores=${4} | framesize=${64} | search_type=NDR
| tc06-64B-4t4c-ethip4udp-ip4base-iacl1-stateful-flows10k-pdrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 routing config with ACL with\
-| | ... | 4 phy cores, 2 receive queues per NIC port.
-| | ... | [Ver] Find PDR for 64 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 50kpps, LT=0.5%.
-| | ...
| | [Tags] | 64B | 4C | PDRDISC | SKIP_PATCH
-| | ...
-| | [Template] | Discover NDR or PDR for IPv4 routing with ACLs
-| | wt=4 | rxq=2 | framesize=${64} | min_rate=${50000} | search_type=PDR
+| | phy_cores=${4} | framesize=${64} | search_type=PDR
diff --git a/tests/vpp/perf/ip4/10ge2p1x520-ethip4udp-ip4base-iacl1sl-100flows-ndrpdrdisc.robot b/tests/vpp/perf/ip4/10ge2p1x520-ethip4udp-ip4base-iacl1sl-100flows-ndrpdrdisc.robot
index 6176bcd27a..3b43f90b6f 100644
--- a/tests/vpp/perf/ip4/10ge2p1x520-ethip4udp-ip4base-iacl1sl-100flows-ndrpdrdisc.robot
+++ b/tests/vpp/perf/ip4/10ge2p1x520-ethip4udp-ip4base-iacl1sl-100flows-ndrpdrdisc.robot
@@ -29,6 +29,8 @@
| Test Teardown | Tear down performance test with ACL
| ... | ${min_rate}pps | ${framesize} | ${traffic_profile}
| ...
+| Test Template | Local template
+| ...
| Documentation | *RFC2544: Packet throughput IPv4 test cases with ACL*
| ...
| ... | *[Top] Network Topologies:* TG-DUT1-DUT2-TG 3-node circular topology\
@@ -73,15 +75,17 @@
| ${trex_stream2_subnet}= | 20.20.20.0/24
*** Keywords ***
-| Discover NDR or PDR for IPv4 routing with ACLs
-| | [Arguments] | ${wt} | ${rxq} | ${framesize} | ${min_rate} | ${search_type}
+| Local template
+| | [Arguments] | ${phy_cores} | ${framesize} | ${search_type}
+| | ... | ${rxq}=${None} | ${min_rate}=${50000}
+| | ...
| | Set Test Variable | ${framesize}
| | Set Test Variable | ${min_rate}
| | ${max_rate}= | Calculate pps | ${s_limit} | ${framesize}
| | ${binary_min}= | Set Variable | ${min_rate}
| | ${binary_max}= | Set Variable | ${max_rate}
| | ${threshold}= | Set Variable | ${min_rate}
-| | Given Add '${wt}' worker threads and '${rxq}' rxqueues in 3-node single-link circular topology
+| | Given Add worker threads and rxqueues to all DUTs | ${phy_cores} | ${rxq}
| | And Add PCI devices to all DUTs
| | ${get_framesize}= | Get Frame Size | ${framesize}
| | And Run Keyword If | ${get_framesize} < ${1522} | Add no multi seg to all DUTs
@@ -102,73 +106,25 @@
*** Test Cases ***
| tc01-64B-1t1c-ethip4udp-ip4base-iacl1-stateless-flows100-ndrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 routing config with ACL with\
-| | ... | 1 phy core, 1 receive queue per NIC port.
-| | ... | [Ver] Find NDR for 64 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 50kpps.
-| | ...
| | [Tags] | 64B | 1C | NDRDISC
-| | ...
-| | [Template] | Discover NDR or PDR for IPv4 routing with ACLs
-| | wt=1 | rxq=1 | framesize=${64} | min_rate=${50000} | search_type=NDR
+| | phy_cores=${1} | framesize=${64} | search_type=NDR
| tc02-64B-1t1c-ethip4udp-ip4base-iacl1-stateless-flows100-pdrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 routing config with ACL with\
-| | ... | 1 phy core, 1 receive queue per NIC port.
-| | ... | [Ver] Find PDR for 64 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 50kpps, LT=0.5%.
-| | ...
| | [Tags] | 64B | 1C | PDRDISC | SKIP_PATCH
-| | ...
-| | [Template] | Discover NDR or PDR for IPv4 routing with ACLs
-| | wt=1 | rxq=1 | framesize=${64} | min_rate=${50000} | search_type=PDR
+| | phy_cores=${1} | framesize=${64} | search_type=PDR
| tc03-64B-2t2c-ethip4udp-ip4base-iacl1-stateless-flows100-ndrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 routing config with ACL with\
-| | ... | 2 phy cores, 1 receive queue per NIC port.
-| | ... | [Ver] Find NDR for 64 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 50kpps.
-| | ...
| | [Tags] | 64B | 2C | NDRDISC
-| | ...
-| | [Template] | Discover NDR or PDR for IPv4 routing with ACLs
-| | wt=2 | rxq=1 | framesize=${64} | min_rate=${50000} | search_type=NDR
+| | phy_cores=${2} | framesize=${64} | search_type=NDR
| tc04-64B-2t2c-ethip4udp-ip4base-iacl1-stateless-flows100-pdrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 routing config with ACL with\
-| | ... | 2 phy cores, 1 receive queue per NIC port.
-| | ... | [Ver] Find PDR for 64 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 50kpps, LT=0.5%.
-| | ...
| | [Tags] | 64B | 2C | PDRDISC | SKIP_PATCH
-| | ...
-| | [Template] | Discover NDR or PDR for IPv4 routing with ACLs
-| | wt=2 | rxq=1 | framesize=${64} | min_rate=${50000} | search_type=PDR
+| | phy_cores=${2} | framesize=${64} | search_type=PDR
| tc05-64B-4t4c-ethip4udp-ip4base-iacl1-stateless-flows100-ndrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 routing config with ACL with\
-| | ... | 4 phy cores, 2 receive queues per NIC port.
-| | ... | [Ver] Find NDR for 64 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 50kpps.
-| | ...
| | [Tags] | 64B | 4C | NDRDISC
-| | ...
-| | [Template] | Discover NDR or PDR for IPv4 routing with ACLs
-| | wt=4 | rxq=2 | framesize=${64} | min_rate=${50000} | search_type=NDR
+| | phy_cores=${4} | framesize=${64} | search_type=NDR
| tc06-64B-4t4c-ethip4udp-ip4base-iacl1-stateless-flows100-pdrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 routing config with ACL with\
-| | ... | 4 phy cores, 2 receive queues per NIC port.
-| | ... | [Ver] Find PDR for 64 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 50kpps, LT=0.5%.
-| | ...
| | [Tags] | 64B | 4C | PDRDISC | SKIP_PATCH
-| | ...
-| | [Template] | Discover NDR or PDR for IPv4 routing with ACLs
-| | wt=4 | rxq=2 | framesize=${64} | min_rate=${50000} | search_type=PDR
+| | phy_cores=${4} | framesize=${64} | search_type=PDR
diff --git a/tests/vpp/perf/ip4/10ge2p1x520-ethip4udp-ip4base-iacl1sl-100kflows-ndrpdrdisc.robot b/tests/vpp/perf/ip4/10ge2p1x520-ethip4udp-ip4base-iacl1sl-100kflows-ndrpdrdisc.robot
index e2821c1282..d76e4ee792 100644
--- a/tests/vpp/perf/ip4/10ge2p1x520-ethip4udp-ip4base-iacl1sl-100kflows-ndrpdrdisc.robot
+++ b/tests/vpp/perf/ip4/10ge2p1x520-ethip4udp-ip4base-iacl1sl-100kflows-ndrpdrdisc.robot
@@ -29,6 +29,8 @@
| Test Teardown | Tear down performance test with ACL
| ... | ${min_rate}pps | ${framesize} | ${traffic_profile}
| ...
+| Test Template | Local template
+| ...
| Documentation | *RFC2544: Packet throughput IPv4 test cases with ACL*
| ...
| ... | *[Top] Network Topologies:* TG-DUT1-DUT2-TG 3-node circular topology\
@@ -73,15 +75,17 @@
| ${trex_stream2_subnet}= | 20.20.20.0/24
*** Keywords ***
-| Discover NDR or PDR for IPv4 routing with ACLs
-| | [Arguments] | ${wt} | ${rxq} | ${framesize} | ${min_rate} | ${search_type}
+| Local template
+| | [Arguments] | ${phy_cores} | ${framesize} | ${search_type}
+| | ... | ${rxq}=${None} | ${min_rate}=${50000}
+| | ...
| | Set Test Variable | ${framesize}
| | Set Test Variable | ${min_rate}
| | ${max_rate}= | Calculate pps | ${s_limit} | ${framesize}
| | ${binary_min}= | Set Variable | ${min_rate}
| | ${binary_max}= | Set Variable | ${max_rate}
| | ${threshold}= | Set Variable | ${min_rate}
-| | Given Add '${wt}' worker threads and '${rxq}' rxqueues in 3-node single-link circular topology
+| | Given Add worker threads and rxqueues to all DUTs | ${phy_cores} | ${rxq}
| | And Add PCI devices to all DUTs
| | ${get_framesize}= | Get Frame Size | ${framesize}
| | And Run Keyword If | ${get_framesize} < ${1522} | Add no multi seg to all DUTs
@@ -102,73 +106,25 @@
*** Test Cases ***
| tc01-64B-1t1c-ethip4udp-ip4base-iacl1-stateless-flows100k-ndrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 routing config with ACL with\
-| | ... | 1 phy core, 1 receive queue per NIC port.
-| | ... | [Ver] Find NDR for 64 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 50kpps.
-| | ...
| | [Tags] | 64B | 1C | NDRDISC
-| | ...
-| | [Template] | Discover NDR or PDR for IPv4 routing with ACLs
-| | wt=1 | rxq=1 | framesize=${64} | min_rate=${50000} | search_type=NDR
+| | phy_cores=${1} | framesize=${64} | search_type=NDR
| tc02-64B-1t1c-ethip4udp-ip4base-iacl1-stateless-flows100k-pdrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 routing config with ACL with\
-| | ... | 1 phy core, 1 receive queue per NIC port.
-| | ... | [Ver] Find PDR for 64 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 50kpps, LT=0.5%.
-| | ...
| | [Tags] | 64B | 1C | PDRDISC | SKIP_PATCH
-| | ...
-| | [Template] | Discover NDR or PDR for IPv4 routing with ACLs
-| | wt=1 | rxq=1 | framesize=${64} | min_rate=${50000} | search_type=PDR
+| | phy_cores=${1} | framesize=${64} | search_type=PDR
| tc03-64B-2t2c-ethip4udp-ip4base-iacl1-stateless-flows100k-ndrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 routing config with ACL with\
-| | ... | 2 phy cores, 1 receive queue per NIC port.
-| | ... | [Ver] Find NDR for 64 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 50kpps.
-| | ...
| | [Tags] | 64B | 2C | NDRDISC
-| | ...
-| | [Template] | Discover NDR or PDR for IPv4 routing with ACLs
-| | wt=2 | rxq=1 | framesize=${64} | min_rate=${50000} | search_type=NDR
+| | phy_cores=${2} | framesize=${64} | search_type=NDR
| tc04-64B-2t2c-ethip4udp-ip4base-iacl1-stateless-flows100k-pdrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 routing config with ACL with\
-| | ... | 2 phy cores, 1 receive queue per NIC port.
-| | ... | [Ver] Find PDR for 64 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 50kpps, LT=0.5%.
-| | ...
| | [Tags] | 64B | 2C | PDRDISC | SKIP_PATCH
-| | ...
-| | [Template] | Discover NDR or PDR for IPv4 routing with ACLs
-| | wt=2 | rxq=1 | framesize=${64} | min_rate=${50000} | search_type=PDR
+| | phy_cores=${2} | framesize=${64} | search_type=PDR
| tc05-64B-4t4c-ethip4udp-ip4base-iacl1-stateless-flows100k-ndrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 routing config with ACL with\
-| | ... | 4 phy cores, 2 receive queues per NIC port.
-| | ... | [Ver] Find NDR for 64 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 50kpps.
-| | ...
| | [Tags] | 64B | 4C | NDRDISC
-| | ...
-| | [Template] | Discover NDR or PDR for IPv4 routing with ACLs
-| | wt=4 | rxq=2 | framesize=${64} | min_rate=${50000} | search_type=NDR
+| | phy_cores=${4} | framesize=${64} | search_type=NDR
| tc06-64B-4t4c-ethip4udp-ip4base-iacl1-stateless-flows100k-pdrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 routing config with ACL with\
-| | ... | 4 phy cores, 2 receive queues per NIC port.
-| | ... | [Ver] Find PDR for 64 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 50kpps, LT=0.5%.
-| | ...
| | [Tags] | 64B | 4C | PDRDISC | SKIP_PATCH
-| | ...
-| | [Template] | Discover NDR or PDR for IPv4 routing with ACLs
-| | wt=4 | rxq=2 | framesize=${64} | min_rate=${50000} | search_type=PDR
+| | phy_cores=${4} | framesize=${64} | search_type=PDR
diff --git a/tests/vpp/perf/ip4/10ge2p1x520-ethip4udp-ip4base-iacl1sl-10kflows-mrr.robot b/tests/vpp/perf/ip4/10ge2p1x520-ethip4udp-ip4base-iacl1sl-10kflows-mrr.robot
index ab48ea1f3d..9f2fb7cb0a 100644
--- a/tests/vpp/perf/ip4/10ge2p1x520-ethip4udp-ip4base-iacl1sl-10kflows-mrr.robot
+++ b/tests/vpp/perf/ip4/10ge2p1x520-ethip4udp-ip4base-iacl1sl-10kflows-mrr.robot
@@ -28,6 +28,8 @@
| ...
| Test Teardown | Tear down performance mrr test
| ...
+| Test Template | Local template
+| ...
| Documentation | *Raw results IPv4 test cases with ACL*
| ...
| ... | *[Top] Network Topologies:* TG-DUT1-DUT2-TG 3-node circular topology\
@@ -67,22 +69,27 @@
| ${trex_stream2_subnet}= | 20.20.20.0/24
*** Keywords ***
-| Check RR for IPv4 routing with ACLs
+| Local template
| | ...
| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 routing config with ACL with ${wt} thread(s),\
-| | ... | ${wt} phy core(s), ${rxq} receive queue(s) per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for ${framesize} frames using single\
+| | ... | [Cfg] DUT runs IPv4 routing config with ACL.
+| | ... | Each DUT uses ${phy_cores} physical core(s) for worker threads.
+| | ... | [Ver] Measure MaxReceivedRate for ${framesize}B frames using single\
| | ... | trial throughput test.
| | ...
-| | [Arguments] | ${wt} | ${rxq} | ${framesize}
+| | ... | *Arguments:*
+| | ... | - framesize - Framesize in Bytes in integer or string (IMIX_v4_1).
+| | ... | Type: integer, string
+| | ... | - phy_cores - Number of physical cores. Type: integer
+| | ... | - rxq - Number of RX queues, default value: ${None}. Type: integer
+| | ...
+| | [Arguments] | ${phy_cores} | ${framesize} | ${rxq}=${None}
| | ...
-| | # Test Variables required for test execution and test teardown
| | Set Test Variable | ${framesize}
| | ${get_framesize}= | Get Frame Size | ${framesize}
| | ${max_rate}= | Calculate pps | ${s_limit} | ${framesize}
| | ...
-| | Given Add '${wt}' worker threads and '${rxq}' rxqueues in 3-node single-link circular topology
+| | Given Add worker threads and rxqueues to all DUTs | ${phy_cores} | ${rxq}
| | And Add PCI devices to all DUTs
| | And Run Keyword If | ${get_framesize} < ${1522}
| | ... | Add no multi seg to all DUTs
@@ -96,148 +103,49 @@
*** Test Cases ***
| tc01-64B-1t1c-ethip4udp-ip4base-iacl1-stateless-flows10k-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 routing config with ACL with\
-| | ... | 1 phy core, 1 receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 64B frames using single trial\
-| | ... | throughput test.
-| | ...
| | [Tags] | 64B | 1C
-| | ...
-| | [Template] | Check RR for IPv4 routing with ACLs
-| | wt=1 | rxq=1 | framesize=${64}
+| | phy_cores=${1} | framesize=${64}
| tc02-1518B-1t1c-ethip4udp-ip4base-iacl1-stateless-flows10k-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 routing config with ACL with\
-| | ... | 1 phy core, 1 receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 1518B frames using single trial\
-| | ... | throughput test.
-| | ...
| | [Tags] | 1518B | 1C
-| | ...
-| | [Template] | Check RR for IPv4 routing with ACLs
-| | wt=1 | rxq=1 | framesize=${1518}
+| | phy_cores=${1} | framesize=${1518}
| tc03-9000B-1t1c-ethip4udp-ip4base-iacl1-stateless-flows10k-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 routing config with ACL with\
-| | ... | 1 phy core, 1 receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 9000B frames using single trial\
-| | ... | throughput test.
-| | ...
| | [Tags] | 9000B | 1C
-| | ...
-| | [Template] | Check RR for IPv4 routing with ACLs
-| | wt=1 | rxq=1 | framesize=${9000}
+| | phy_cores=${1} | framesize=${9000}
| tc04-IMIX-1t1c-ethip4udp-ip4base-iacl1-stateless-flows10k-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 routing config with ACL with\
-| | ... | 1 phy core, 1 receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for IMIX_v4_1 frames using single trial\
-| | ... | throughput test.
-| | ... | IMIX_v4_1 = (28x64B; 16x570B; 4x1518B)
-| | ...
| | [Tags] | IMIX | 1C
-| | ...
-| | [Template] | Check RR for IPv4 routing with ACLs
-| | wt=1 | rxq=1 | framesize=IMIX_v4_1
+| | phy_cores=${1} | framesize=IMIX_v4_1
| tc05-64B-2t2c-ethip4udp-ip4base-iacl1-stateless-flows10k-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 routing config with ACL with\
-| | ... | 2 phy cores, 1 receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 64B frames using single trial\
-| | ... | throughput test.
-| | ...
| | [Tags] | 64B | 2C
-| | ...
-| | [Template] | Check RR for IPv4 routing with ACLs
-| | wt=2 | rxq=1 | framesize=${64}
+| | phy_cores=${2} | framesize=${64}
| tc06-1518B-2t2c-ethip4udp-ip4base-iacl1-stateless-flows10k-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 routing config with ACL with\
-| | ... | 2 phy cores, 1 receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 1518B frames using single trial\
-| | ... | throughput test.
-| | ...
| | [Tags] | 1518B | 2C
-| | ...
-| | [Template] | Check RR for IPv4 routing with ACLs
-| | wt=2 | rxq=1 | framesize=${1518}
+| | phy_cores=${2} | framesize=${1518}
| tc07-9000B-2t2c-ethip4udp-ip4base-iacl1-stateless-flows10k-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 routing config with ACL with\
-| | ... | 2 phy cores, 1 receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 9000B frames using single trial\
-| | ... | throughput test.
-| | ...
| | [Tags] | 9000B | 2C
-| | ...
-| | [Template] | Check RR for IPv4 routing with ACLs
-| | wt=2 | rxq=1 | framesize=${9000}
+| | phy_cores=${2} | framesize=${9000}
| tc08-IMIX-2t2c-ethip4udp-ip4base-iacl1-stateless-flows10k-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 routing config with ACL with\
-| | ... | 2 phy cores, 1 receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for IMIX_v4_1 frames using single trial\
-| | ... | throughput test.
-| | ... | IMIX_v4_1 = (28x64B; 16x570B; 4x1518B)
-| | ...
| | [Tags] | IMIX | 2C
-| | ...
-| | [Template] | Check RR for IPv4 routing with ACLs
-| | wt=2 | rxq=1 | framesize=IMIX_v4_1
+| | phy_cores=${2} | framesize=IMIX_v4_1
| tc09-64B-4t4c-ethip4udp-ip4base-iacl1-stateless-flows10k-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 routing config with ACL with\
-| | ... | 4 phy cores, 2 receive queues per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 64B frames using single trial\
-| | ... | throughput test.
-| | ...
| | [Tags] | 64B | 4C
-| | ...
-| | [Template] | Check RR for IPv4 routing with ACLs
-| | wt=4 | rxq=2 | framesize=${64}
+| | phy_cores=${4} | framesize=${64}
| tc10-1518B-4t4c-ethip4udp-ip4base-iacl1-stateless-flows10k-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 routing config with ACL with\
-| | ... | 4 phy cores, 2 receive queues per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 1518B frames using single trial\
-| | ... | throughput test.
-| | ...
| | [Tags] | 1518B | 4C
-| | ...
-| | [Template] | Check RR for IPv4 routing with ACLs
-| | wt=4 | rxq=2 | framesize=${1518}
+| | phy_cores=${4} | framesize=${1518}
| tc11-9000B-4t4c-ethip4udp-ip4base-iacl1-stateless-flows10k-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 routing config with ACL with\
-| | ... | 4 phy cores, 2 receive queues per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 9000B frames using single trial\
-| | ... | throughput test.
-| | ...
| | [Tags] | 9000B | 4C
-| | ...
-| | [Template] | Check RR for IPv4 routing with ACLs
-| | wt=4 | rxq=2 | framesize=${9000}
+| | phy_cores=${4} | framesize=${9000}
| tc12-IMIX-4t4c-ethip4udp-ip4base-iacl1-stateless-flows10k-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 routing config with ACL with\
-| | ... | 4 phy cores, 2 receive queues per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for IMIX_v4_1 frames using single trial\
-| | ... | throughput test.
-| | ... | IMIX_v4_1 = (28x64B; 16x570B; 4x1518B)
-| | ...
| | [Tags] | IMIX | 4C
-| | ...
-| | [Template] | Check RR for IPv4 routing with ACLs
-| | wt=4 | rxq=2 | framesize=IMIX_v4_1
+| | phy_cores=${4} | framesize=IMIX_v4_1
diff --git a/tests/vpp/perf/ip4/10ge2p1x520-ethip4udp-ip4base-iacl1sl-10kflows-ndrpdrdisc.robot b/tests/vpp/perf/ip4/10ge2p1x520-ethip4udp-ip4base-iacl1sl-10kflows-ndrpdrdisc.robot
index 998d2de61b..89004d6832 100644
--- a/tests/vpp/perf/ip4/10ge2p1x520-ethip4udp-ip4base-iacl1sl-10kflows-ndrpdrdisc.robot
+++ b/tests/vpp/perf/ip4/10ge2p1x520-ethip4udp-ip4base-iacl1sl-10kflows-ndrpdrdisc.robot
@@ -28,6 +28,8 @@
| Test Teardown | Tear down performance test with ACL
| ... | ${min_rate}pps | ${framesize} | ${traffic_profile}
| ...
+| Test Template | Local template
+| ...
| Documentation | *RFC2544: Packet throughput IPv4 test cases with ACL*
| ...
| ... | *[Top] Network Topologies:* TG-DUT1-DUT2-TG 3-node circular topology\
@@ -72,15 +74,17 @@
| ${trex_stream2_subnet}= | 20.20.20.0/24
*** Keywords ***
-| Discover NDR or PDR for IPv4 routing with ACLs
-| | [Arguments] | ${wt} | ${rxq} | ${framesize} | ${min_rate} | ${search_type}
+| Local template
+| | [Arguments] | ${phy_cores} | ${framesize} | ${search_type}
+| | ... | ${rxq}=${None} | ${min_rate}=${50000}
+| | ...
| | Set Test Variable | ${framesize}
| | Set Test Variable | ${min_rate}
| | ${max_rate}= | Calculate pps | ${s_limit} | ${framesize}
| | ${binary_min}= | Set Variable | ${min_rate}
| | ${binary_max}= | Set Variable | ${max_rate}
| | ${threshold}= | Set Variable | ${min_rate}
-| | Given Add '${wt}' worker threads and '${rxq}' rxqueues in 3-node single-link circular topology
+| | Given Add worker threads and rxqueues to all DUTs | ${phy_cores} | ${rxq}
| | And Add PCI devices to all DUTs
| | ${get_framesize}= | Get Frame Size | ${framesize}
| | And Run Keyword If | ${get_framesize} < ${1522} | Add no multi seg to all DUTs
@@ -101,73 +105,25 @@
*** Test Cases ***
| tc01-64B-1t1c-ethip4udp-ip4base-iacl1-stateless-flows10k-ndrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 routing config with ACL with\
-| | ... | 1 phy core, 1 receive queue per NIC port.
-| | ... | [Ver] Find NDR for 64 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 50kpps.
-| | ...
| | [Tags] | 64B | 1C | NDRDISC
-| | ...
-| | [Template] | Discover NDR or PDR for IPv4 routing with ACLs
-| | wt=1 | rxq=1 | framesize=${64} | min_rate=${50000} | search_type=NDR
+| | phy_cores=${1} | framesize=${64} | search_type=NDR
| tc02-64B-1t1c-ethip4udp-ip4base-iacl1-stateless-flows10k-pdrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 routing config with ACL with\
-| | ... | 1 phy core, 1 receive queue per NIC port.
-| | ... | [Ver] Find PDR for 64 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 50kpps, LT=0.5%.
-| | ...
| | [Tags] | 64B | 1C | PDRDISC | SKIP_PATCH
-| | ...
-| | [Template] | Discover NDR or PDR for IPv4 routing with ACLs
-| | wt=1 | rxq=1 | framesize=${64} | min_rate=${50000} | search_type=PDR
+| | phy_cores=${1} | framesize=${64} | search_type=PDR
| tc03-64B-2t2c-ethip4udp-ip4base-iacl1-stateless-flows10k-ndrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 routing config with ACL with\
-| | ... | 2 phy cores, 1 receive queue per NIC port.
-| | ... | [Ver] Find NDR for 64 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 50kpps.
-| | ...
| | [Tags] | 64B | 2C | NDRDISC
-| | ...
-| | [Template] | Discover NDR or PDR for IPv4 routing with ACLs
-| | wt=2 | rxq=1 | framesize=${64} | min_rate=${50000} | search_type=NDR
+| | phy_cores=${2} | framesize=${64} | search_type=NDR
| tc04-64B-2t2c-ethip4udp-ip4base-iacl1-stateless-flows10k-pdrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 routing config with ACL with\
-| | ... | 2 phy cores, 1 receive queue per NIC port.
-| | ... | [Ver] Find PDR for 64 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 50kpps, LT=0.5%.
-| | ...
| | [Tags] | 64B | 2C | PDRDISC | SKIP_PATCH
-| | ...
-| | [Template] | Discover NDR or PDR for IPv4 routing with ACLs
-| | wt=2 | rxq=1 | framesize=${64} | min_rate=${50000} | search_type=PDR
+| | phy_cores=${2} | framesize=${64} | search_type=PDR
| tc05-64B-4t4c-ethip4udp-ip4base-iacl1-stateless-flows10k-ndrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 routing config with ACL with\
-| | ... | 4 phy cores, 2 receive queues per NIC port.
-| | ... | [Ver] Find NDR for 64 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 50kpps.
-| | ...
| | [Tags] | 64B | 4C | NDRDISC
-| | ...
-| | [Template] | Discover NDR or PDR for IPv4 routing with ACLs
-| | wt=4 | rxq=2 | framesize=${64} | min_rate=${50000} | search_type=NDR
+| | phy_cores=${4} | framesize=${64} | search_type=NDR
| tc06-64B-4t4c-ethip4udp-ip4base-iacl1-stateless-flows10k-pdrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 routing config with ACL with\
-| | ... | 4 phy cores, 2 receive queues per NIC port.
-| | ... | [Ver] Find PDR for 64 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 50kpps, LT=0.5%.
-| | ...
| | [Tags] | 64B | 4C | PDRDISC | SKIP_PATCH
-| | ...
-| | [Template] | Discover NDR or PDR for IPv4 routing with ACLs
-| | wt=4 | rxq=2 | framesize=${64} | min_rate=${50000} | search_type=PDR
+| | phy_cores=${4} | framesize=${64} | search_type=PDR
diff --git a/tests/vpp/perf/ip4/10ge2p1x520-ethip4udp-ip4base-iacl50sf-100flows-ndrpdrdisc.robot b/tests/vpp/perf/ip4/10ge2p1x520-ethip4udp-ip4base-iacl50sf-100flows-ndrpdrdisc.robot
index 3ff13f7175..4f2c474795 100644
--- a/tests/vpp/perf/ip4/10ge2p1x520-ethip4udp-ip4base-iacl50sf-100flows-ndrpdrdisc.robot
+++ b/tests/vpp/perf/ip4/10ge2p1x520-ethip4udp-ip4base-iacl50sf-100flows-ndrpdrdisc.robot
@@ -29,6 +29,8 @@
| Test Teardown | Tear down performance test with ACL
| ... | ${min_rate}pps | ${framesize} | ${traffic_profile}
| ...
+| Test Template | Local template
+| ...
| Documentation | *RFC2544: Packet throughput IPv4 test cases with ACL*
| ...
| ... | *[Top] Network Topologies:* TG-DUT1-DUT2-TG 3-node circular topology\
@@ -73,15 +75,17 @@
| ${trex_stream2_subnet}= | 20.20.20.0/24
*** Keywords ***
-| Discover NDR or PDR for IPv4 routing with ACLs
-| | [Arguments] | ${wt} | ${rxq} | ${framesize} | ${min_rate} | ${search_type}
+| Local template
+| | [Arguments] | ${phy_cores} | ${framesize} | ${search_type}
+| | ... | ${rxq}=${None} | ${min_rate}=${50000}
+| | ...
| | Set Test Variable | ${framesize}
| | Set Test Variable | ${min_rate}
| | ${max_rate}= | Calculate pps | ${s_limit} | ${framesize}
| | ${binary_min}= | Set Variable | ${min_rate}
| | ${binary_max}= | Set Variable | ${max_rate}
| | ${threshold}= | Set Variable | ${min_rate}
-| | Given Add '${wt}' worker threads and '${rxq}' rxqueues in 3-node single-link circular topology
+| | Given Add worker threads and rxqueues to all DUTs | ${phy_cores} | ${rxq}
| | And Add PCI devices to all DUTs
| | ${get_framesize}= | Get Frame Size | ${framesize}
| | And Run Keyword If | ${get_framesize} < ${1522} | Add no multi seg to all DUTs
@@ -102,73 +106,25 @@
*** Test Cases ***
| tc01-64B-1t1c-ethip4udp-ip4base-iacl50-stateful-flows100-ndrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 routing config with ACL with\
-| | ... | 1 phy core, 1 receive queue per NIC port.
-| | ... | [Ver] Find NDR for 64 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 50kpps.
-| | ...
| | [Tags] | 64B | 1C | NDRDISC
-| | ...
-| | [Template] | Discover NDR or PDR for IPv4 routing with ACLs
-| | wt=1 | rxq=1 | framesize=${64} | min_rate=${50000} | search_type=NDR
+| | phy_cores=${1} | framesize=${64} | search_type=NDR
| tc02-64B-1t1c-ethip4udp-ip4base-iacl50-stateful-flows100-pdrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 routing config with ACL with\
-| | ... | 1 phy core, 1 receive queue per NIC port.
-| | ... | [Ver] Find PDR for 64 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 50kpps, LT=0.5%.
-| | ...
| | [Tags] | 64B | 1C | PDRDISC | SKIP_PATCH
-| | ...
-| | [Template] | Discover NDR or PDR for IPv4 routing with ACLs
-| | wt=1 | rxq=1 | framesize=${64} | min_rate=${50000} | search_type=PDR
+| | phy_cores=${1} | framesize=${64} | search_type=PDR
| tc03-64B-2t2c-ethip4udp-ip4base-iacl50-stateful-flows100-ndrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 routing config with ACL with\
-| | ... | 2 phy cores, 1 receive queue per NIC port.
-| | ... | [Ver] Find NDR for 64 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 50kpps.
-| | ...
| | [Tags] | 64B | 2C | NDRDISC
-| | ...
-| | [Template] | Discover NDR or PDR for IPv4 routing with ACLs
-| | wt=2 | rxq=1 | framesize=${64} | min_rate=${50000} | search_type=NDR
+| | phy_cores=${2} | framesize=${64} | search_type=NDR
| tc04-64B-2t2c-ethip4udp-ip4base-iacl50-stateful-flows100-pdrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 routing config with ACL with\
-| | ... | 2 phy cores, 1 receive queue per NIC port.
-| | ... | [Ver] Find PDR for 64 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 50kpps, LT=0.5%.
-| | ...
| | [Tags] | 64B | 2C | PDRDISC | SKIP_PATCH
-| | ...
-| | [Template] | Discover NDR or PDR for IPv4 routing with ACLs
-| | wt=2 | rxq=1 | framesize=${64} | min_rate=${50000} | search_type=PDR
+| | phy_cores=${2} | framesize=${64} | search_type=PDR
| tc05-64B-4t4c-ethip4udp-ip4base-ip4base-iacl50-stateful-flows100-ndrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 routing config with ACL with\
-| | ... | 4 phy cores, 2 receive queues per NIC port.
-| | ... | [Ver] Find NDR for 64 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 50kpps.
-| | ...
| | [Tags] | 64B | 4C | NDRDISC
-| | ...
-| | [Template] | Discover NDR or PDR for IPv4 routing with ACLs
-| | wt=4 | rxq=2 | framesize=${64} | min_rate=${50000} | search_type=NDR
+| | phy_cores=${4} | framesize=${64} | search_type=NDR
| tc06-64B-4t4c-ethip4udp-ip4base-ip4base-iacl50-stateful-flows100-pdrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 routing config with ACL with\
-| | ... | 4 phy cores, 2 receive queues per NIC port.
-| | ... | [Ver] Find PDR for 64 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 50kpps, LT=0.5%.
-| | ...
| | [Tags] | 64B | 4C | PDRDISC | SKIP_PATCH
-| | ...
-| | [Template] | Discover NDR or PDR for IPv4 routing with ACLs
-| | wt=4 | rxq=2 | framesize=${64} | min_rate=${50000} | search_type=PDR
+| | phy_cores=${4} | framesize=${64} | search_type=PDR
diff --git a/tests/vpp/perf/ip4/10ge2p1x520-ethip4udp-ip4base-iacl50sf-100kflows-ndrpdrdisc.robot b/tests/vpp/perf/ip4/10ge2p1x520-ethip4udp-ip4base-iacl50sf-100kflows-ndrpdrdisc.robot
index 0d2c519c89..0b9af35dd6 100644
--- a/tests/vpp/perf/ip4/10ge2p1x520-ethip4udp-ip4base-iacl50sf-100kflows-ndrpdrdisc.robot
+++ b/tests/vpp/perf/ip4/10ge2p1x520-ethip4udp-ip4base-iacl50sf-100kflows-ndrpdrdisc.robot
@@ -29,6 +29,8 @@
| Test Teardown | Tear down performance test with ACL
| ... | ${min_rate}pps | ${framesize} | ${traffic_profile}
| ...
+| Test Template | Local template
+| ...
| Documentation | *RFC2544: Packet throughput IPv4 test cases with ACL*
| ...
| ... | *[Top] Network Topologies:* TG-DUT1-DUT2-TG 3-node circular topology\
@@ -73,15 +75,17 @@
| ${trex_stream2_subnet}= | 20.20.20.0/24
*** Keywords ***
-| Discover NDR or PDR for IPv4 routing with ACLs
-| | [Arguments] | ${wt} | ${rxq} | ${framesize} | ${min_rate} | ${search_type}
+| Local template
+| | [Arguments] | ${phy_cores} | ${framesize} | ${search_type}
+| | ... | ${rxq}=${None} | ${min_rate}=${50000}
+| | ...
| | Set Test Variable | ${framesize}
| | Set Test Variable | ${min_rate}
| | ${max_rate}= | Calculate pps | ${s_limit} | ${framesize}
| | ${binary_min}= | Set Variable | ${min_rate}
| | ${binary_max}= | Set Variable | ${max_rate}
| | ${threshold}= | Set Variable | ${min_rate}
-| | Given Add '${wt}' worker threads and '${rxq}' rxqueues in 3-node single-link circular topology
+| | Given Add worker threads and rxqueues to all DUTs | ${phy_cores} | ${rxq}
| | And Add PCI devices to all DUTs
| | ${get_framesize}= | Get Frame Size | ${framesize}
| | And Run Keyword If | ${get_framesize} < ${1522} | Add no multi seg to all DUTs
@@ -102,73 +106,25 @@
*** Test Cases ***
| tc01-64B-1t1c-ethip4udp-ip4base-iacl50-stateful-flows100k-ndrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 routing config with ACL with\
-| | ... | 1 phy core, 1 receive queue per NIC port.
-| | ... | [Ver] Find NDR for 64 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 50kpps.
-| | ...
| | [Tags] | 64B | 1C | NDRDISC
-| | ...
-| | [Template] | Discover NDR or PDR for IPv4 routing with ACLs
-| | wt=1 | rxq=1 | framesize=${64} | min_rate=${50000} | search_type=NDR
+| | phy_cores=${1} | framesize=${64} | search_type=NDR
| tc02-64B-1t1c-ethip4udp-ip4base-iacl50-stateful-flows100k-pdrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 routing config with ACL with\
-| | ... | 1 phy core, 1 receive queue per NIC port.
-| | ... | [Ver] Find PDR for 64 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 50kpps, LT=0.5%.
-| | ...
| | [Tags] | 64B | 1C | PDRDISC | SKIP_PATCH
-| | ...
-| | [Template] | Discover NDR or PDR for IPv4 routing with ACLs
-| | wt=1 | rxq=1 | framesize=${64} | min_rate=${50000} | search_type=PDR
+| | phy_cores=${1} | framesize=${64} | search_type=PDR
| tc03-64B-2t2c-ethip4udp-ip4base-iacl50-stateful-flows100k-ndrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 routing config with ACL with\
-| | ... | 2 phy cores, 1 receive queue per NIC port.
-| | ... | [Ver] Find NDR for 64 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 50kpps.
-| | ...
| | [Tags] | 64B | 2C | NDRDISC
-| | ...
-| | [Template] | Discover NDR or PDR for IPv4 routing with ACLs
-| | wt=2 | rxq=1 | framesize=${64} | min_rate=${50000} | search_type=NDR
+| | phy_cores=${2} | framesize=${64} | search_type=NDR
| tc04-64B-2t2c-ethip4udp-ip4base-iacl50-stateful-flows100k-pdrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 routing config with ACL with\
-| | ... | 2 phy cores, 1 receive queue per NIC port.
-| | ... | [Ver] Find PDR for 64 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 50kpps, LT=0.5%.
-| | ...
| | [Tags] | 64B | 2C | PDRDISC | SKIP_PATCH
-| | ...
-| | [Template] | Discover NDR or PDR for IPv4 routing with ACLs
-| | wt=2 | rxq=1 | framesize=${64} | min_rate=${50000} | search_type=PDR
+| | phy_cores=${2} | framesize=${64} | search_type=PDR
| tc05-64B-4t4c-ethip4udp-ip4base-iacl50-stateful-flows100k-ndrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 routing config with ACL with\
-| | ... | 4 phy cores, 2 receive queues per NIC port.
-| | ... | [Ver] Find NDR for 64 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 50kpps.
-| | ...
| | [Tags] | 64B | 4C | NDRDISC
-| | ...
-| | [Template] | Discover NDR or PDR for IPv4 routing with ACLs
-| | wt=4 | rxq=2 | framesize=${64} | min_rate=${50000} | search_type=NDR
+| | phy_cores=${4} | framesize=${64} | search_type=NDR
| tc06-64B-4t4c-ethip4udp-ip4base-iacl50-stateful-flows100k-pdrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 routing config with ACL with\
-| | ... | 4 phy cores, 2 receive queues per NIC port.
-| | ... | [Ver] Find PDR for 64 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 50kpps, LT=0.5%.
-| | ...
| | [Tags] | 64B | 4C | PDRDISC | SKIP_PATCH
-| | ...
-| | [Template] | Discover NDR or PDR for IPv4 routing with ACLs
-| | wt=4 | rxq=2 | framesize=${64} | min_rate=${50000} | search_type=PDR
+| | phy_cores=${4} | framesize=${64} | search_type=PDR
diff --git a/tests/vpp/perf/ip4/10ge2p1x520-ethip4udp-ip4base-iacl50sf-10kflows-mrr.robot b/tests/vpp/perf/ip4/10ge2p1x520-ethip4udp-ip4base-iacl50sf-10kflows-mrr.robot
index 50071139ad..7f06ed2d0b 100644
--- a/tests/vpp/perf/ip4/10ge2p1x520-ethip4udp-ip4base-iacl50sf-10kflows-mrr.robot
+++ b/tests/vpp/perf/ip4/10ge2p1x520-ethip4udp-ip4base-iacl50sf-10kflows-mrr.robot
@@ -28,6 +28,8 @@
| ...
| Test Teardown | Tear down performance mrr test
| ...
+| Test Template | Local template
+| ...
| Documentation | *Raw results IPv4 test cases with ACL*
| ...
| ... | *[Top] Network Topologies:* TG-DUT1-DUT2-TG 3-node circular topology\
@@ -67,22 +69,27 @@
| ${trex_stream2_subnet}= | 20.20.20.0/24
*** Keywords ***
-| Check RR for IPv4 routing with ACLs
+| Local template
| | ...
| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 routing config with ACL with ${wt} thread(s),\
-| | ... | ${wt} phy core(s), ${rxq} receive queue(s) per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for ${framesize} frames using single\
+| | ... | [Cfg] DUT runs IPv4 routing config with ACL.
+| | ... | Each DUT uses ${phy_cores} physical core(s) for worker threads.
+| | ... | [Ver] Measure MaxReceivedRate for ${framesize}B frames using single\
| | ... | trial throughput test.
| | ...
-| | [Arguments] | ${wt} | ${rxq} | ${framesize}
+| | ... | *Arguments:*
+| | ... | - framesize - Framesize in Bytes in integer or string (IMIX_v4_1).
+| | ... | Type: integer, string
+| | ... | - phy_cores - Number of physical cores. Type: integer
+| | ... | - rxq - Number of RX queues, default value: ${None}. Type: integer
+| | ...
+| | [Arguments] | ${phy_cores} | ${framesize} | ${rxq}=${None}
| | ...
-| | # Test Variables required for test execution and test teardown
| | Set Test Variable | ${framesize}
| | ${get_framesize}= | Get Frame Size | ${framesize}
| | ${max_rate}= | Calculate pps | ${s_limit} | ${framesize}
| | ...
-| | Given Add '${wt}' worker threads and '${rxq}' rxqueues in 3-node single-link circular topology
+| | Given Add worker threads and rxqueues to all DUTs | ${phy_cores} | ${rxq}
| | And Add PCI devices to all DUTs
| | And Run Keyword If | ${get_framesize} < ${1522}
| | ... | Add no multi seg to all DUTs
@@ -96,148 +103,49 @@
*** Test Cases ***
| tc01-64B-1t1c-ethip4udp-ip4base-iacl50-stateful-flows10k-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 routing config with ACL with\
-| | ... | 1 phy core, 1 receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 64B frames using single trial\
-| | ... | throughput test.
-| | ...
| | [Tags] | 64B | 1C
-| | ...
-| | [Template] | Check RR for IPv4 routing with ACLs
-| | wt=1 | rxq=1 | framesize=${64}
+| | phy_cores=${1} | framesize=${64}
| tc02-1518B-1t1c-ethip4udp-ip4base-iacl50-stateful-flows10k-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 routing config with ACL with\
-| | ... | 1 phy core, 1 receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 1518B frames using single trial\
-| | ... | throughput test.
-| | ...
| | [Tags] | 1518B | 1C
-| | ...
-| | [Template] | Check RR for IPv4 routing with ACLs
-| | wt=1 | rxq=1 | framesize=${1518}
+| | phy_cores=${1} | framesize=${1518}
| tc03-9000B-1t1c-ethip4udp-ip4base-iacl50-stateful-flows10k-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 routing config with ACL with\
-| | ... | 1 phy core, 1 receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 9000B frames using single trial\
-| | ... | throughput test.
-| | ...
| | [Tags] | 9000B | 1C
-| | ...
-| | [Template] | Check RR for IPv4 routing with ACLs
-| | wt=1 | rxq=1 | framesize=${9000}
+| | phy_cores=${1} | framesize=${9000}
| tc04-IMIX-1t1c-ethip4udp-ip4base-iacl50-stateful-flows10k-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 routing config with ACL with\
-| | ... | 1 phy core, 1 receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for IMIX_v4_1 frames using single trial\
-| | ... | throughput test.
-| | ... | IMIX_v4_1 = (28x64B; 16x570B; 4x1518B)
-| | ...
| | [Tags] | IMIX | 1C
-| | ...
-| | [Template] | Check RR for IPv4 routing with ACLs
-| | wt=1 | rxq=1 | framesize=IMIX_v4_1
+| | phy_cores=${1} | framesize=IMIX_v4_1
| tc05-64B-2t2c-ethip4udp-ip4base-iacl50-stateful-flows10k-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 routing config with ACL with\
-| | ... | 2 phy cores, 1 receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 64B frames using single trial\
-| | ... | throughput test.
-| | ...
| | [Tags] | 64B | 2C
-| | ...
-| | [Template] | Check RR for IPv4 routing with ACLs
-| | wt=2 | rxq=1 | framesize=${64}
+| | phy_cores=${2} | framesize=${64}
| tc06-1518B-2t2c-ethip4udp-ip4base-iacl50-stateful-flows10k-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 routing config with ACL with\
-| | ... | 2 phy cores, 1 receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 1518B frames using single trial\
-| | ... | throughput test.
-| | ...
| | [Tags] | 1518B | 2C
-| | ...
-| | [Template] | Check RR for IPv4 routing with ACLs
-| | wt=2 | rxq=1 | framesize=${1518}
+| | phy_cores=${2} | framesize=${1518}
| tc07-9000B-2t2c-ethip4udp-ip4base-iacl50-stateful-flows10k-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 routing config with ACL with\
-| | ... | 2 phy cores, 1 receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 9000B frames using single trial\
-| | ... | throughput test.
-| | ...
| | [Tags] | 9000B | 2C
-| | ...
-| | [Template] | Check RR for IPv4 routing with ACLs
-| | wt=2 | rxq=1 | framesize=${9000}
+| | phy_cores=${2} | framesize=${9000}
| tc08-IMIX-2t2c-ethip4udp-ip4base-iacl50-stateful-flows10k-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 routing config with ACL with\
-| | ... | 2 phy cores, 1 receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for IMIX_v4_1 frames using single trial\
-| | ... | throughput test.
-| | ... | IMIX_v4_1 = (28x64B; 16x570B; 4x1518B)
-| | ...
| | [Tags] | IMIX | 2C
-| | ...
-| | [Template] | Check RR for IPv4 routing with ACLs
-| | wt=2 | rxq=1 | framesize=IMIX_v4_1
+| | phy_cores=${2} | framesize=IMIX_v4_1
| tc09-64B-4t4c-ethip4udp-ip4base-iacl50-stateful-flows10k-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 routing config with ACL with\
-| | ... | 4 phy cores, 2 receive queues per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 64B frames using single trial\
-| | ... | throughput test.
-| | ...
| | [Tags] | 64B | 4C
-| | ...
-| | [Template] | Check RR for IPv4 routing with ACLs
-| | wt=4 | rxq=2 | framesize=${64}
+| | phy_cores=${4} | framesize=${64}
| tc10-1518B-4t4c-ethip4udp-ip4base-iacl50-stateful-flows10k-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 routing config with ACL with\
-| | ... | 4 phy cores, 2 receive queues per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 1518B frames using single trial\
-| | ... | throughput test.
-| | ...
| | [Tags] | 1518B | 4C
-| | ...
-| | [Template] | Check RR for IPv4 routing with ACLs
-| | wt=4 | rxq=2 | framesize=${1518}
+| | phy_cores=${4} | framesize=${1518}
| tc11-9000B-4t4c-ethip4udp-ip4base-iacl50-stateful-flows10k-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 routing config with ACL with\
-| | ... | 4 phy cores, 2 receive queues per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 9000B frames using single trial\
-| | ... | throughput test.
-| | ...
| | [Tags] | 9000B | 4C
-| | ...
-| | [Template] | Check RR for IPv4 routing with ACLs
-| | wt=4 | rxq=2 | framesize=${9000}
+| | phy_cores=${4} | framesize=${9000}
| tc12-IMIX-4t4c-ethip4udp-ip4base-iacl50-stateful-flows10k-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 routing config with ACL with\
-| | ... | 4 phy cores, 2 receive queues per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for IMIX_v4_1 frames using single trial\
-| | ... | throughput test.
-| | ... | IMIX_v4_1 = (28x64B; 16x570B; 4x1518B)
-| | ...
| | [Tags] | IMIX | 4C
-| | ...
-| | [Template] | Check RR for IPv4 routing with ACLs
-| | wt=4 | rxq=2 | framesize=IMIX_v4_1
+| | phy_cores=${4} | framesize=IMIX_v4_1
diff --git a/tests/vpp/perf/ip4/10ge2p1x520-ethip4udp-ip4base-iacl50sf-10kflows-ndrpdrdisc.robot b/tests/vpp/perf/ip4/10ge2p1x520-ethip4udp-ip4base-iacl50sf-10kflows-ndrpdrdisc.robot
index 6b3e39248b..534c77c48d 100644
--- a/tests/vpp/perf/ip4/10ge2p1x520-ethip4udp-ip4base-iacl50sf-10kflows-ndrpdrdisc.robot
+++ b/tests/vpp/perf/ip4/10ge2p1x520-ethip4udp-ip4base-iacl50sf-10kflows-ndrpdrdisc.robot
@@ -29,6 +29,8 @@
| Test Teardown | Tear down performance test with ACL
| ... | ${min_rate}pps | ${framesize} | ${traffic_profile}
| ...
+| Test Template | Local template
+| ...
| Documentation | *RFC2544: Packet throughput IPv4 test cases with ACL*
| ...
| ... | *[Top] Network Topologies:* TG-DUT1-DUT2-TG 3-node circular topology\
@@ -73,15 +75,17 @@
| ${trex_stream2_subnet}= | 20.20.20.0/24
*** Keywords ***
-| Discover NDR or PDR for IPv4 routing with ACLs
-| | [Arguments] | ${wt} | ${rxq} | ${framesize} | ${min_rate} | ${search_type}
+| Local template
+| | [Arguments] | ${phy_cores} | ${framesize} | ${search_type}
+| | ... | ${rxq}=${None} | ${min_rate}=${50000}
+| | ...
| | Set Test Variable | ${framesize}
| | Set Test Variable | ${min_rate}
| | ${max_rate}= | Calculate pps | ${s_limit} | ${framesize}
| | ${binary_min}= | Set Variable | ${min_rate}
| | ${binary_max}= | Set Variable | ${max_rate}
| | ${threshold}= | Set Variable | ${min_rate}
-| | Given Add '${wt}' worker threads and '${rxq}' rxqueues in 3-node single-link circular topology
+| | Given Add worker threads and rxqueues to all DUTs | ${phy_cores} | ${rxq}
| | And Add PCI devices to all DUTs
| | ${get_framesize}= | Get Frame Size | ${framesize}
| | And Run Keyword If | ${get_framesize} < ${1522} | Add no multi seg to all DUTs
@@ -102,73 +106,25 @@
*** Test Cases ***
| tc01-64B-1t1c-ethip4udp-ip4base-iacl50-stateful-flows10k-ndrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 routing config with ACL with\
-| | ... | 1 phy core, 1 receive queue per NIC port.
-| | ... | [Ver] Find NDR for 64 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 50kpps.
-| | ...
| | [Tags] | 64B | 1C | NDRDISC
-| | ...
-| | [Template] | Discover NDR or PDR for IPv4 routing with ACLs
-| | wt=1 | rxq=1 | framesize=${64} | min_rate=${50000} | search_type=NDR
+| | phy_cores=${1} | framesize=${64} | search_type=NDR
| tc02-64B-1t1c-ethip4udp-ip4base-iacl50-stateful-flows10k-pdrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 routing config with ACL with\
-| | ... | 1 phy core, 1 receive queue per NIC port.
-| | ... | [Ver] Find PDR for 64 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 50kpps, LT=0.5%.
-| | ...
| | [Tags] | 64B | 1C | PDRDISC | SKIP_PATCH
-| | ...
-| | [Template] | Discover NDR or PDR for IPv4 routing with ACLs
-| | wt=1 | rxq=1 | framesize=${64} | min_rate=${50000} | search_type=PDR
+| | phy_cores=${1} | framesize=${64} | search_type=PDR
| tc03-64B-2t2c-ethip4udp-ip4base-iacl50-stateful-flows10k-ndrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 routing config with ACL with\
-| | ... | 2 phy cores, 1 receive queue per NIC port.
-| | ... | [Ver] Find NDR for 64 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 50kpps.
-| | ...
| | [Tags] | 64B | 2C | NDRDISC
-| | ...
-| | [Template] | Discover NDR or PDR for IPv4 routing with ACLs
-| | wt=2 | rxq=1 | framesize=${64} | min_rate=${50000} | search_type=NDR
+| | phy_cores=${2} | framesize=${64} | search_type=NDR
| tc04-64B-2t2c-ethip4udp-ip4base-iacl50-stateful-flows10k-pdrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 routing config with ACL with\
-| | ... | 2 phy cores, 1 receive queue per NIC port.
-| | ... | [Ver] Find PDR for 64 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 50kpps, LT=0.5%.
-| | ...
| | [Tags] | 64B | 2C | PDRDISC | SKIP_PATCH
-| | ...
-| | [Template] | Discover NDR or PDR for IPv4 routing with ACLs
-| | wt=2 | rxq=1 | framesize=${64} | min_rate=${50000} | search_type=PDR
+| | phy_cores=${2} | framesize=${64} | search_type=PDR
| tc05-64B-4t4c-ethip4udp-ip4base-iacl50-stateful-flows10k-ndrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 routing config with ACL with\
-| | ... | 4 phy cores, 2 receive queues per NIC port.
-| | ... | [Ver] Find NDR for 64 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 50kpps.
-| | ...
| | [Tags] | 64B | 4C | NDRDISC
-| | ...
-| | [Template] | Discover NDR or PDR for IPv4 routing with ACLs
-| | wt=4 | rxq=2 | framesize=${64} | min_rate=${50000} | search_type=NDR
+| | phy_cores=${4} | framesize=${64} | search_type=NDR
| tc06-64B-4t4c-ethip4udp-ip4base-iacl50-stateful-flows10k-pdrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 routing config with ACL with\
-| | ... | 4 phy cores, 2 receive queues per NIC port.
-| | ... | [Ver] Find PDR for 64 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 50kpps, LT=0.5%.
-| | ...
| | [Tags] | 64B | 4C | PDRDISC | SKIP_PATCH
-| | ...
-| | [Template] | Discover NDR or PDR for IPv4 routing with ACLs
-| | wt=4 | rxq=2 | framesize=${64} | min_rate=${50000} | search_type=PDR
+| | phy_cores=${4} | framesize=${64} | search_type=PDR
diff --git a/tests/vpp/perf/ip4/10ge2p1x520-ethip4udp-ip4base-iacl50sl-100flows-ndrpdrdisc.robot b/tests/vpp/perf/ip4/10ge2p1x520-ethip4udp-ip4base-iacl50sl-100flows-ndrpdrdisc.robot
index 9fa3808880..5aae40a044 100644
--- a/tests/vpp/perf/ip4/10ge2p1x520-ethip4udp-ip4base-iacl50sl-100flows-ndrpdrdisc.robot
+++ b/tests/vpp/perf/ip4/10ge2p1x520-ethip4udp-ip4base-iacl50sl-100flows-ndrpdrdisc.robot
@@ -29,6 +29,8 @@
| Test Teardown | Tear down performance test with ACL
| ... | ${min_rate}pps | ${framesize} | ${traffic_profile}
| ...
+| Test Template | Local template
+| ...
| Documentation | *RFC2544: Packet throughput IPv4 test cases with ACL*
| ...
| ... | *[Top] Network Topologies:* TG-DUT1-DUT2-TG 3-node circular topology\
@@ -73,15 +75,17 @@
| ${trex_stream2_subnet}= | 20.20.20.0/24
*** Keywords ***
-| Discover NDR or PDR for IPv4 routing with ACLs
-| | [Arguments] | ${wt} | ${rxq} | ${framesize} | ${min_rate} | ${search_type}
+| Local template
+| | [Arguments] | ${phy_cores} | ${framesize} | ${search_type}
+| | ... | ${rxq}=${None} | ${min_rate}=${50000}
+| | ...
| | Set Test Variable | ${framesize}
| | Set Test Variable | ${min_rate}
| | ${max_rate}= | Calculate pps | ${s_limit} | ${framesize}
| | ${binary_min}= | Set Variable | ${min_rate}
| | ${binary_max}= | Set Variable | ${max_rate}
| | ${threshold}= | Set Variable | ${min_rate}
-| | Given Add '${wt}' worker threads and '${rxq}' rxqueues in 3-node single-link circular topology
+| | Given Add worker threads and rxqueues to all DUTs | ${phy_cores} | ${rxq}
| | And Add PCI devices to all DUTs
| | ${get_framesize}= | Get Frame Size | ${framesize}
| | And Run Keyword If | ${get_framesize} < ${1522} | Add no multi seg to all DUTs
@@ -102,73 +106,25 @@
*** Test Cases ***
| tc01-64B-1t1c-ethip4udp-ip4base-iacl50-stateless-flows100-ndrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 routing config with ACL with\
-| | ... | 1 phy core, 1 receive queue per NIC port.
-| | ... | [Ver] Find NDR for 64 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 50kpps.
-| | ...
| | [Tags] | 64B | 1C | NDRDISC
-| | ...
-| | [Template] | Discover NDR or PDR for IPv4 routing with ACLs
-| | wt=1 | rxq=1 | framesize=${64} | min_rate=${50000} | search_type=NDR
+| | phy_cores=${1} | framesize=${64} | search_type=NDR
| tc02-64B-1t1c-ethip4udp-ip4base-iacl50-stateless-flows100-pdrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 routing config with ACL with\
-| | ... | 1 phy core, 1 receive queue per NIC port.
-| | ... | [Ver] Find PDR for 64 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 50kpps, LT=0.5%.
-| | ...
| | [Tags] | 64B | 1C | PDRDISC | SKIP_PATCH
-| | ...
-| | [Template] | Discover NDR or PDR for IPv4 routing with ACLs
-| | wt=1 | rxq=1 | framesize=${64} | min_rate=${50000} | search_type=PDR
+| | phy_cores=${1} | framesize=${64} | search_type=PDR
| tc03-64B-2t2c-ethip4udp-ip4base-iacl50-stateless-flows100-ndrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 routing config with ACL with\
-| | ... | 2 phy cores, 1 receive queue per NIC port.
-| | ... | [Ver] Find NDR for 64 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 50kpps.
-| | ...
| | [Tags] | 64B | 2C | NDRDISC
-| | ...
-| | [Template] | Discover NDR or PDR for IPv4 routing with ACLs
-| | wt=2 | rxq=1 | framesize=${64} | min_rate=${50000} | search_type=NDR
+| | phy_cores=${2} | framesize=${64} | search_type=NDR
| tc04-64B-2t2c-ethip4udp-ip4base-iacl50-stateless-flows100-pdrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 routing config with ACL with\
-| | ... | 2 phy cores, 1 receive queue per NIC port.
-| | ... | [Ver] Find PDR for 64 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 50kpps, LT=0.5%.
-| | ...
| | [Tags] | 64B | 2C | PDRDISC | SKIP_PATCH
-| | ...
-| | [Template] | Discover NDR or PDR for IPv4 routing with ACLs
-| | wt=2 | rxq=1 | framesize=${64} | min_rate=${50000} | search_type=PDR
+| | phy_cores=${2} | framesize=${64} | search_type=PDR
| tc05-64B-4t4c-ethip4udp-ip4base-iacl50-stateless-flows100-ndrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 routing config with ACL with\
-| | ... | 4 phy cores, 2 receive queues per NIC port.
-| | ... | [Ver] Find NDR for 64 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 50kpps.
-| | ...
| | [Tags] | 64B | 4C | NDRDISC
-| | ...
-| | [Template] | Discover NDR or PDR for IPv4 routing with ACLs
-| | wt=4 | rxq=2 | framesize=${64} | min_rate=${50000} | search_type=NDR
+| | phy_cores=${4} | framesize=${64} | search_type=NDR
| tc06-64B-4t4c-ethip4udp-ip4base-iacl50-stateless-flows100-pdrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 routing config with ACL with\
-| | ... | 4 phy cores, 2 receive queues per NIC port.
-| | ... | [Ver] Find PDR for 64 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 50kpps, LT=0.5%.
-| | ...
| | [Tags] | 64B | 4C | PDRDISC | SKIP_PATCH
-| | ...
-| | [Template] | Discover NDR or PDR for IPv4 routing with ACLs
-| | wt=4 | rxq=2 | framesize=${64} | min_rate=${50000} | search_type=PDR
+| | phy_cores=${4} | framesize=${64} | search_type=PDR
diff --git a/tests/vpp/perf/ip4/10ge2p1x520-ethip4udp-ip4base-iacl50sl-100kflows-ndrpdrdisc.robot b/tests/vpp/perf/ip4/10ge2p1x520-ethip4udp-ip4base-iacl50sl-100kflows-ndrpdrdisc.robot
index 5d1b3b4a5b..69847c9326 100644
--- a/tests/vpp/perf/ip4/10ge2p1x520-ethip4udp-ip4base-iacl50sl-100kflows-ndrpdrdisc.robot
+++ b/tests/vpp/perf/ip4/10ge2p1x520-ethip4udp-ip4base-iacl50sl-100kflows-ndrpdrdisc.robot
@@ -29,6 +29,8 @@
| Test Teardown | Tear down performance test with ACL
| ... | ${min_rate}pps | ${framesize} | ${traffic_profile}
| ...
+| Test Template | Local template
+| ...
| Documentation | *RFC2544: Packet throughput IPv4 test cases with ACL*
| ...
| ... | *[Top] Network Topologies:* TG-DUT1-DUT2-TG 3-node circular topology\
@@ -73,15 +75,17 @@
| ${trex_stream2_subnet}= | 20.20.20.0/24
*** Keywords ***
-| Discover NDR or PDR for IPv4 routing with ACLs
-| | [Arguments] | ${wt} | ${rxq} | ${framesize} | ${min_rate} | ${search_type}
+| Local template
+| | [Arguments] | ${phy_cores} | ${framesize} | ${search_type}
+| | ... | ${rxq}=${None} | ${min_rate}=${50000}
+| | ...
| | Set Test Variable | ${framesize}
| | Set Test Variable | ${min_rate}
| | ${max_rate}= | Calculate pps | ${s_limit} | ${framesize}
| | ${binary_min}= | Set Variable | ${min_rate}
| | ${binary_max}= | Set Variable | ${max_rate}
| | ${threshold}= | Set Variable | ${min_rate}
-| | Given Add '${wt}' worker threads and '${rxq}' rxqueues in 3-node single-link circular topology
+| | Given Add worker threads and rxqueues to all DUTs | ${phy_cores} | ${rxq}
| | And Add PCI devices to all DUTs
| | ${get_framesize}= | Get Frame Size | ${framesize}
| | And Run Keyword If | ${get_framesize} < ${1522} | Add no multi seg to all DUTs
@@ -102,73 +106,25 @@
*** Test Cases ***
| tc01-64B-1t1c-ethip4udp-ip4base-iacl50-stateless-flows100k-ndrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 routing config with ACL with\
-| | ... | 1 phy core, 1 receive queue per NIC port.
-| | ... | [Ver] Find NDR for 64 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 50kpps.
-| | ...
| | [Tags] | 64B | 1C | NDRDISC
-| | ...
-| | [Template] | Discover NDR or PDR for IPv4 routing with ACLs
-| | wt=1 | rxq=1 | framesize=${64} | min_rate=${50000} | search_type=NDR
+| | phy_cores=${1} | framesize=${64} | search_type=NDR
| tc02-64B-1t1c-ethip4udp-ip4base-iacl50-stateless-flows100k-pdrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 routing config with ACL with\
-| | ... | 1 phy core, 1 receive queue per NIC port.
-| | ... | [Ver] Find PDR for 64 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 50kpps, LT=0.5%.
-| | ...
| | [Tags] | 64B | 1C | PDRDISC | SKIP_PATCH
-| | ...
-| | [Template] | Discover NDR or PDR for IPv4 routing with ACLs
-| | wt=1 | rxq=1 | framesize=${64} | min_rate=${50000} | search_type=PDR
+| | phy_cores=${1} | framesize=${64} | search_type=PDR
| tc03-64B-2t2c-ethip4udp-ip4base-iacl50-stateless-flows100k-ndrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 routing config with ACL with\
-| | ... | 2 phy cores, 1 receive queue per NIC port.
-| | ... | [Ver] Find NDR for 64 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 50kpps.
-| | ...
| | [Tags] | 64B | 2C | NDRDISC
-| | ...
-| | [Template] | Discover NDR or PDR for IPv4 routing with ACLs
-| | wt=2 | rxq=1 | framesize=${64} | min_rate=${50000} | search_type=NDR
+| | phy_cores=${2} | framesize=${64} | search_type=NDR
| tc04-64B-2t2c-ethip4udp-ip4base-iacl50-stateless-flows100k-pdrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 routing config with ACL with\
-| | ... | 2 phy cores, 1 receive queue per NIC port.
-| | ... | [Ver] Find PDR for 64 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 50kpps, LT=0.5%.
-| | ...
| | [Tags] | 64B | 2C | PDRDISC | SKIP_PATCH
-| | ...
-| | [Template] | Discover NDR or PDR for IPv4 routing with ACLs
-| | wt=2 | rxq=1 | framesize=${64} | min_rate=${50000} | search_type=PDR
+| | phy_cores=${2} | framesize=${64} | search_type=PDR
| tc05-64B-4t4c-ethip4udp-ip4base-iacl50-stateless-flows100k-ndrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 routing config with ACL with\
-| | ... | 4 phy cores, 2 receive queues per NIC port.
-| | ... | [Ver] Find NDR for 64 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 50kpps.
-| | ...
| | [Tags] | 64B | 4C | NDRDISC
-| | ...
-| | [Template] | Discover NDR or PDR for IPv4 routing with ACLs
-| | wt=4 | rxq=2 | framesize=${64} | min_rate=${50000} | search_type=NDR
+| | phy_cores=${4} | framesize=${64} | search_type=NDR
| tc06-64B-4t4c-ethip4udp-ip4base-iacl50-stateless-flows100k-pdrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 routing config with ACL with\
-| | ... | 4 phy cores, 2 receive queues per NIC port.
-| | ... | [Ver] Find PDR for 64 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 50kpps, LT=0.5%.
-| | ...
| | [Tags] | 64B | 4C | PDRDISC | SKIP_PATCH
-| | ...
-| | [Template] | Discover NDR or PDR for IPv4 routing with ACLs
-| | wt=4 | rxq=2 | framesize=${64} | min_rate=${50000} | search_type=PDR
+| | phy_cores=${4} | framesize=${64} | search_type=PDR
diff --git a/tests/vpp/perf/ip4/10ge2p1x520-ethip4udp-ip4base-iacl50sl-10kflows-mrr.robot b/tests/vpp/perf/ip4/10ge2p1x520-ethip4udp-ip4base-iacl50sl-10kflows-mrr.robot
index 8d652973bc..4b4a92087e 100644
--- a/tests/vpp/perf/ip4/10ge2p1x520-ethip4udp-ip4base-iacl50sl-10kflows-mrr.robot
+++ b/tests/vpp/perf/ip4/10ge2p1x520-ethip4udp-ip4base-iacl50sl-10kflows-mrr.robot
@@ -28,6 +28,8 @@
| ...
| Test Teardown | Tear down performance mrr test
| ...
+| Test Template | Local template
+| ...
| Documentation | *Raw results IPv4 test cases with ACL*
| ...
| ... | *[Top] Network Topologies:* TG-DUT1-DUT2-TG 3-node circular topology\
@@ -67,22 +69,27 @@
| ${trex_stream2_subnet}= | 20.20.20.0/24
*** Keywords ***
-| Check RR for IPv4 routing with ACLs
+| Local template
| | ...
| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 routing config with ACL with ${wt} thread(s),\
-| | ... | ${wt} phy core(s), ${rxq} receive queue(s) per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for ${framesize} frames using single\
+| | ... | [Cfg] DUT runs IPv4 routing config with ACL.
+| | ... | Each DUT uses ${phy_cores} physical core(s) for worker threads.
+| | ... | [Ver] Measure MaxReceivedRate for ${framesize}B frames using single\
| | ... | trial throughput test.
| | ...
-| | [Arguments] | ${wt} | ${rxq} | ${framesize}
+| | ... | *Arguments:*
+| | ... | - framesize - Framesize in Bytes in integer or string (IMIX_v4_1).
+| | ... | Type: integer, string
+| | ... | - phy_cores - Number of physical cores. Type: integer
+| | ... | - rxq - Number of RX queues, default value: ${None}. Type: integer
+| | ...
+| | [Arguments] | ${phy_cores} | ${framesize} | ${rxq}=${None}
| | ...
-| | # Test Variables required for test execution and test teardown
| | Set Test Variable | ${framesize}
| | ${get_framesize}= | Get Frame Size | ${framesize}
| | ${max_rate}= | Calculate pps | ${s_limit} | ${framesize}
| | ...
-| | Given Add '${wt}' worker threads and '${rxq}' rxqueues in 3-node single-link circular topology
+| | Given Add worker threads and rxqueues to all DUTs | ${phy_cores} | ${rxq}
| | And Add PCI devices to all DUTs
| | And Run Keyword If | ${get_framesize} < ${1522}
| | ... | Add no multi seg to all DUTs
@@ -96,148 +103,49 @@
*** Test Cases ***
| tc01-64B-1t1c-ethip4udp-ip4base-iacl50-stateless-flows10k-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 routing config with ACL with\
-| | ... | 1 phy core, 1 receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 64B frames using single trial\
-| | ... | throughput test.
-| | ...
| | [Tags] | 64B | 1C
-| | ...
-| | [Template] | Check RR for IPv4 routing with ACLs
-| | wt=1 | rxq=1 | framesize=${64}
+| | phy_cores=${1} | framesize=${64}
| tc02-1518B-1t1c-ethip4udp-ip4base-iacl50-stateless-flows10k-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 routing config with ACL with\
-| | ... | 1 phy core, 1 receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 1518B frames using single trial\
-| | ... | throughput test.
-| | ...
| | [Tags] | 1518B | 1C
-| | ...
-| | [Template] | Check RR for IPv4 routing with ACLs
-| | wt=1 | rxq=1 | framesize=${1518}
+| | phy_cores=${1} | framesize=${1518}
| tc03-9000B-1t1c-ethip4udp-ip4base-iacl50-stateless-flows10k-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 routing config with ACL with\
-| | ... | 1 phy core, 1 receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 9000B frames using single trial\
-| | ... | throughput test.
-| | ...
| | [Tags] | 9000B | 1C
-| | ...
-| | [Template] | Check RR for IPv4 routing with ACLs
-| | wt=1 | rxq=1 | framesize=${9000}
+| | phy_cores=${1} | framesize=${9000}
| tc04-IMIX-1t1c-ethip4udp-ip4base-iacl50-stateless-flows10k-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 routing config with ACL with\
-| | ... | 1 phy core, 1 receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for IMIX_v4_1 frames using single trial\
-| | ... | throughput test.
-| | ... | IMIX_v4_1 = (28x64B; 16x570B; 4x1518B)
-| | ...
| | [Tags] | IMIX | 1C
-| | ...
-| | [Template] | Check RR for IPv4 routing with ACLs
-| | wt=1 | rxq=1 | framesize=IMIX_v4_1
+| | phy_cores=${1} | framesize=IMIX_v4_1
| tc05-64B-2t2c-ethip4udp-ip4base-iacl50-stateless-flows10k-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 routing config with ACL with\
-| | ... | 2 phy cores, 1 receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 64B frames using single trial\
-| | ... | throughput test.
-| | ...
| | [Tags] | 64B | 2C
-| | ...
-| | [Template] | Check RR for IPv4 routing with ACLs
-| | wt=2 | rxq=1 | framesize=${64}
+| | phy_cores=${2} | framesize=${64}
| tc06-1518B-2t2c-ethip4udp-ip4base-iacl50-stateless-flows10k-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 routing config with ACL with\
-| | ... | 2 phy cores, 1 receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 1518B frames using single trial\
-| | ... | throughput test.
-| | ...
| | [Tags] | 1518B | 2C
-| | ...
-| | [Template] | Check RR for IPv4 routing with ACLs
-| | wt=2 | rxq=1 | framesize=${1518}
+| | phy_cores=${2} | framesize=${1518}
| tc07-9000B-2t2c-ethip4udp-ip4base-iacl50-stateless-flows10k-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 routing config with ACL with\
-| | ... | 2 phy cores, 1 receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 9000B frames using single trial\
-| | ... | throughput test.
-| | ...
| | [Tags] | 9000B | 2C
-| | ...
-| | [Template] | Check RR for IPv4 routing with ACLs
-| | wt=2 | rxq=1 | framesize=${9000}
+| | phy_cores=${2} | framesize=${9000}
| tc08-IMIX-2t2c-ethip4udp-ip4base-iacl50-stateless-flows10k-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 routing config with ACL with\
-| | ... | 2 phy cores, 1 receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for IMIX_v4_1 frames using single trial\
-| | ... | throughput test.
-| | ... | IMIX_v4_1 = (28x64B; 16x570B; 4x1518B)
-| | ...
| | [Tags] | IMIX | 2C
-| | ...
-| | [Template] | Check RR for IPv4 routing with ACLs
-| | wt=2 | rxq=1 | framesize=IMIX_v4_1
+| | phy_cores=${2} | framesize=IMIX_v4_1
| tc09-64B-4t4c-ethip4udp-ip4base-iacl50-stateless-flows10k-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 routing config with ACL with\
-| | ... | 4 phy cores, 2 receive queues per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 64B frames using single trial\
-| | ... | throughput test.
-| | ...
| | [Tags] | 64B | 4C
-| | ...
-| | [Template] | Check RR for IPv4 routing with ACLs
-| | wt=4 | rxq=2 | framesize=${64}
+| | phy_cores=${4} | framesize=${64}
| tc10-1518B-4t4c-ethip4udp-ip4base-iacl50-stateless-flows10k-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 routing config with ACL with\
-| | ... | 4 phy cores, 2 receive queues per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 1518B frames using single trial\
-| | ... | throughput test.
-| | ...
| | [Tags] | 1518B | 4C
-| | ...
-| | [Template] | Check RR for IPv4 routing with ACLs
-| | wt=4 | rxq=2 | framesize=${1518}
+| | phy_cores=${4} | framesize=${1518}
| tc11-9000B-4t4c-ethip4udp-ip4base-iacl50-stateless-flows10k-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 routing config with ACL with\
-| | ... | 4 phy cores, 2 receive queues per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 9000B frames using single trial\
-| | ... | throughput test.
-| | ...
| | [Tags] | 9000B | 4C
-| | ...
-| | [Template] | Check RR for IPv4 routing with ACLs
-| | wt=4 | rxq=2 | framesize=${9000}
+| | phy_cores=${4} | framesize=${9000}
| tc12-IMIX-4t4c-ethip4udp-ip4base-iacl50-stateless-flows10k-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 routing config with ACL with\
-| | ... | 4 phy cores, 2 receive queues per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for IMIX_v4_1 frames using single trial\
-| | ... | throughput test.
-| | ... | IMIX_v4_1 = (28x64B; 16x570B; 4x1518B)
-| | ...
| | [Tags] | IMIX | 4C
-| | ...
-| | [Template] | Check RR for IPv4 routing with ACLs
-| | wt=4 | rxq=2 | framesize=IMIX_v4_1
+| | phy_cores=${4} | framesize=IMIX_v4_1
diff --git a/tests/vpp/perf/ip4/10ge2p1x520-ethip4udp-ip4base-iacl50sl-10kflows-ndrpdrdisc.robot b/tests/vpp/perf/ip4/10ge2p1x520-ethip4udp-ip4base-iacl50sl-10kflows-ndrpdrdisc.robot
index 0f09011855..2eec70b130 100644
--- a/tests/vpp/perf/ip4/10ge2p1x520-ethip4udp-ip4base-iacl50sl-10kflows-ndrpdrdisc.robot
+++ b/tests/vpp/perf/ip4/10ge2p1x520-ethip4udp-ip4base-iacl50sl-10kflows-ndrpdrdisc.robot
@@ -29,6 +29,8 @@
| Test Teardown | Tear down performance test with ACL
| ... | ${min_rate}pps | ${framesize} | ${traffic_profile}
| ...
+| Test Template | Local template
+| ...
| Documentation | *RFC2544: Packet throughput IPv4 test cases with ACL*
| ...
| ... | *[Top] Network Topologies:* TG-DUT1-DUT2-TG 3-node circular topology\
@@ -73,15 +75,17 @@
| ${trex_stream2_subnet}= | 20.20.20.0/24
*** Keywords ***
-| Discover NDR or PDR for IPv4 routing with ACLs
-| | [Arguments] | ${wt} | ${rxq} | ${framesize} | ${min_rate} | ${search_type}
+| Local template
+| | [Arguments] | ${phy_cores} | ${framesize} | ${search_type}
+| | ... | ${rxq}=${None} | ${min_rate}=${50000}
+| | ...
| | Set Test Variable | ${framesize}
| | Set Test Variable | ${min_rate}
| | ${max_rate}= | Calculate pps | ${s_limit} | ${framesize}
| | ${binary_min}= | Set Variable | ${min_rate}
| | ${binary_max}= | Set Variable | ${max_rate}
| | ${threshold}= | Set Variable | ${min_rate}
-| | Given Add '${wt}' worker threads and '${rxq}' rxqueues in 3-node single-link circular topology
+| | Given Add worker threads and rxqueues to all DUTs | ${phy_cores} | ${rxq}
| | And Add PCI devices to all DUTs
| | ${get_framesize}= | Get Frame Size | ${framesize}
| | And Run Keyword If | ${get_framesize} < ${1522} | Add no multi seg to all DUTs
@@ -102,73 +106,25 @@
*** Test Cases ***
| tc01-64B-1t1c-ethip4udp-ip4base-iacl50-stateless-flows10k-ndrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 routing config with ACL with\
-| | ... | 1 phy core, 1 receive queue per NIC port.
-| | ... | [Ver] Find NDR for 64 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 50kpps.
-| | ...
| | [Tags] | 64B | 1C | NDRDISC
-| | ...
-| | [Template] | Discover NDR or PDR for IPv4 routing with ACLs
-| | wt=1 | rxq=1 | framesize=${64} | min_rate=${50000} | search_type=NDR
+| | phy_cores=${1} | framesize=${64} | search_type=NDR
| tc02-64B-1t1c-ethip4udp-ip4base-iacl50-stateless-flows10k-pdrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 routing config with ACL with\
-| | ... | 1 phy core, 1 receive queue per NIC port.
-| | ... | [Ver] Find PDR for 64 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 50kpps, LT=0.5%.
-| | ...
| | [Tags] | 64B | 1C | PDRDISC | SKIP_PATCH
-| | ...
-| | [Template] | Discover NDR or PDR for IPv4 routing with ACLs
-| | wt=1 | rxq=1 | framesize=${64} | min_rate=${50000} | search_type=PDR
+| | phy_cores=${1} | framesize=${64} | search_type=PDR
| tc03-64B-2t2c-ethip4udp-ip4base-iacl50-stateless-flows10k-ndrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 routing config with ACL with\
-| | ... | 2 phy cores, 1 receive queue per NIC port.
-| | ... | [Ver] Find NDR for 64 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 50kpps.
-| | ...
| | [Tags] | 64B | 2C | NDRDISC
-| | ...
-| | [Template] | Discover NDR or PDR for IPv4 routing with ACLs
-| | wt=2 | rxq=1 | framesize=${64} | min_rate=${50000} | search_type=NDR
+| | phy_cores=${2} | framesize=${64} | search_type=NDR
| tc04-64B-2t2c-ethip4udp-ip4base-iacl50-stateless-flows10k-pdrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 routing config with ACL with\
-| | ... | 2 phy cores, 1 receive queue per NIC port.
-| | ... | [Ver] Find PDR for 64 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 50kpps, LT=0.5%.
-| | ...
| | [Tags] | 64B | 2C | PDRDISC | SKIP_PATCH
-| | ...
-| | [Template] | Discover NDR or PDR for IPv4 routing with ACLs
-| | wt=2 | rxq=1 | framesize=${64} | min_rate=${50000} | search_type=PDR
+| | phy_cores=${2} | framesize=${64} | search_type=PDR
| tc05-64B-4t4c-ethip4udp-ip4base-iacl50-stateless-flows10k-ndrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 routing config with ACL with\
-| | ... | 4 phy cores, 2 receive queues per NIC port.
-| | ... | [Ver] Find NDR for 64 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 50kpps.
-| | ...
| | [Tags] | 64B | 4C | NDRDISC
-| | ...
-| | [Template] | Discover NDR or PDR for IPv4 routing with ACLs
-| | wt=4 | rxq=2 | framesize=${64} | min_rate=${50000} | search_type=NDR
+| | phy_cores=${4} | framesize=${64} | search_type=NDR
| tc06-64B-4t4c-ethip4udp-ip4base-iacl50-stateless-flows10k-pdrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 routing config with ACL with\
-| | ... | 4 phy cores, 2 receive queues per NIC port.
-| | ... | [Ver] Find PDR for 64 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 50kpps, LT=0.5%.
-| | ...
| | [Tags] | 64B | 4C | PDRDISC | SKIP_PATCH
-| | ...
-| | [Template] | Discover NDR or PDR for IPv4 routing with ACLs
-| | wt=4 | rxq=2 | framesize=${64} | min_rate=${50000} | search_type=PDR
+| | phy_cores=${4} | framesize=${64} | search_type=PDR
diff --git a/tests/vpp/perf/ip4/10ge2p1x520-ethip4udp-ip4base-nat44-mrr.robot b/tests/vpp/perf/ip4/10ge2p1x520-ethip4udp-ip4base-nat44-mrr.robot
index 183392773c..c3d31813cc 100644
--- a/tests/vpp/perf/ip4/10ge2p1x520-ethip4udp-ip4base-nat44-mrr.robot
+++ b/tests/vpp/perf/ip4/10ge2p1x520-ethip4udp-ip4base-nat44-mrr.robot
@@ -29,6 +29,8 @@
| ...
| Test Teardown | Tear down performance mrr test
| ...
+| Test Template | Local template
+| ...
| Documentation | *NAT44 performance test cases*
| ...
| ... | *[Top] Network Topologies:* TG-DUT1-DUT2-TG 3-node circular topology
@@ -53,23 +55,27 @@
| ${traffic_profile}= | trex-sl-3n-ethip4udp-1u1p
*** Keywords ***
-| Check RR for IPv4 routing with NAT44
+| Local template
| | ...
| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 routing config with ${wt} thread(s), ${wt}\
-| | ... | phy core(s), ${rxq} receive queue(s) per NIC port. NAT44 is\
-| | ... | configured between DUTs - 1 user and 1 port (session) per user.
-| | ... | [Ver] Measure MaxReceivedRate for ${framesize} frames using single\
+| | ... | [Cfg] DUT runs IPv4 routing config.
+| | ... | Each DUT uses ${phy_cores} physical core(s) for worker threads.
+| | ... | [Ver] Measure MaxReceivedRate for ${framesize}B frames using single\
| | ... | trial throughput test.
| | ...
-| | [Arguments] | ${wt} | ${rxq} | ${framesize}
+| | ... | *Arguments:*
+| | ... | - framesize - Framesize in Bytes in integer or string (IMIX_v4_1).
+| | ... | Type: integer, string
+| | ... | - phy_cores - Number of physical cores. Type: integer
+| | ... | - rxq - Number of RX queues, default value: ${None}. Type: integer
+| | ...
+| | [Arguments] | ${phy_cores} | ${framesize} | ${rxq}=${None}
| | ...
-| | # Test Variables required for test execution and test teardown
| | Set Test Variable | ${framesize}
| | ${max_rate}= | Calculate pps | ${s_limit} | ${framesize}
| | ${get_framesize}= | Get Frame Size | ${framesize}
| | ...
-| | Given Add '${wt}' worker threads and '${rxq}' rxqueues in 3-node single-link circular topology
+| | Given Add worker threads and rxqueues to all DUTs | ${phy_cores} | ${rxq}
| | And Add PCI devices to all DUTs
| | And Run Keyword If | ${get_framesize} < ${1522}
| | ... | Add no multi seg to all DUTs
@@ -81,157 +87,49 @@
*** Test Cases ***
| tc01-64B-1t1c-ethip4-ip4base-snat-1u-1p-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 routing config with 1 phy core,\
-| | ... | 1 receive queue per NIC port. NAT44 is configured between DUTs -\
-| | ... | 1 user and 1 port (session) per user.
-| | ... | [Ver] Measure MaxReceivedRate for 64B frames using single trial\
-| | ... | throughput test.
-| | ...
| | [Tags] | 64B | 1C
-| | ...
-| | [Template] | Check RR for IPv4 routing with NAT44
-| | wt=1 | rxq=1 | framesize=${64}
+| | phy_cores=${1} | framesize=${64}
| tc02-1518B-1t1c-ethip4-ip4base-snat-1u-1p-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 routing config with 1 phy core,\
-| | ... | 1 receive queue per NIC port. NAT44 is configured between DUTs -\
-| | ... | 1 user and 1 port (session) per user.
-| | ... | [Ver] Measure MaxReceivedRate for 1518B frames using single\
-| | ... | trial throughput test.
-| | ...
| | [Tags] | 1518B | 1C
-| | ...
-| | [Template] | Check RR for IPv4 routing with NAT44
-| | wt=1 | rxq=1 | framesize=${1518}
+| | phy_cores=${1} | framesize=${1518}
| tc03-9000B-1t1c-ethip4-ip4base-snat-1u-1p-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 routing config with 1 phy core,\
-| | ... | 1 receive queue per NIC port. NAT44 is configured between DUTs -\
-| | ... | 1 user and 1 port (session) per user.
-| | ... | [Ver] Measure MaxReceivedRate for 9000B frames using single\
-| | ... | trial throughput test.
-| | ...
| | [Tags] | 9000B | 1C
-| | ...
-| | [Template] | Check RR for IPv4 routing with NAT44
-| | wt=1 | rxq=1 | framesize=${9000}
+| | phy_cores=${1} | framesize=${9000}
| tc04-IMIX-1t1c-ethip4-ip4base-snat-1u-1p-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 routing config with 1 phy core,\
-| | ... | 1 receive queue per NIC port. NAT44 is configured between DUTs -\
-| | ... | 1 user and 1 port (session) per user.
-| | ... | [Ver] Find NDR for IMIX frames using binary search start at 10GE\
-| | ... | linerate, step 50kpps.
-| | ...
| | [Tags] | IMIX | 1C
-| | ...
-| | [Template] | Check RR for IPv4 routing with NAT44
-| | wt=1 | rxq=1 | framesize=IMIX_v4_1
+| | phy_cores=${1} | framesize=IMIX_v4_1
| tc05-64B-2t2c-ethip4-ip4base-snat-1u-1p-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 routing config with 2 phy cores,\
-| | ... | 1 receive queue per NIC port. NAT44 is configured between DUTs -\
-| | ... | 1 user and 1 port (session) per user.
-| | ... | [Ver] Measure MaxReceivedRate for 64B frames using single trial\
-| | ... | throughput test.
-| | ...
| | [Tags] | 64B | 2C
-| | ...
-| | [Template] | Check RR for IPv4 routing with NAT44
-| | wt=2 | rxq=1 | framesize=${64}
+| | phy_cores=${2} | framesize=${64}
| tc06-1518B-2t2c-ethip4-ip4base-snat-1u-1p-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 routing config with 2 phy cores,\
-| | ... | 1 receive queue per NIC port. NAT44 is configured between DUTs -\
-| | ... | 1 user and 1 port (session) per user.
-| | ... | [Ver] Measure MaxReceivedRate for 1518B frames using single\
-| | ... | trial throughput test.
-| | ...
| | [Tags] | 1518B | 2C
-| | ...
-| | [Template] | Check RR for IPv4 routing with NAT44
-| | wt=2 | rxq=1 | framesize=${1518}
+| | phy_cores=${2} | framesize=${1518}
| tc07-9000B-2t2c-ethip4-ip4base-snat-1u-1p-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 routing config with 2 phy cores,\
-| | ... | 1 receive queue per NIC port. NAT44 is configured between DUTs -\
-| | ... | 1 user and 1 port (session) per user.
-| | ... | [Ver] Measure MaxReceivedRate for 9000B frames using single\
-| | ... | trial throughput test.
-| | ...
| | [Tags] | 9000B | 2C
-| | ...
-| | [Template] | Check RR for IPv4 routing with NAT44
-| | wt=2 | rxq=1 | framesize=${9000}
+| | phy_cores=${2} | framesize=${9000}
| tc08-IMIX-2t2c-ethip4-ip4base-snat-1u-1p-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 routing config with 2 phy cores,\
-| | ... | 1 receive queue per NIC port. NAT44 is configured between DUTs -\
-| | ... | 1 user and 1 port (session) per user.
-| | ... | [Ver] Find NDR for IMIX frames using binary search start at 10GE\
-| | ... | linerate, step 50kpps.
-| | ...
| | [Tags] | IMIX | 2C
-| | ...
-| | [Template] | Check RR for IPv4 routing with NAT44
-| | wt=2 | rxq=1 | framesize=IMIX_v4_1
+| | phy_cores=${2} | framesize=IMIX_v4_1
| tc09-64B-4t4c-ethip4-ip4base-snat-1u-1p-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 routing config with 4 phy cores,\
-| | ... | 2 receive queues per NIC port. NAT44 is configured between DUTs -\
-| | ... | 1 user and 1 port (session) per user.
-| | ... | [Ver] Measure MaxReceivedRate for 64B frames using single trial\
-| | ... | throughput test.
-| | ...
| | [Tags] | 64B | 4C
-| | ...
-| | [Template] | Check RR for IPv4 routing with NAT44
-| | wt=4 | rxq=2 | framesize=${64}
+| | phy_cores=${4} | framesize=${64}
| tc10-1518B-4t4c-ethip4-ip4base-snat-1u-1p-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 routing config with 4 phy cores,\
-| | ... | 2 receive queues per NIC port. NAT44 is configured between DUTs -\
-| | ... | 1 user and 1 port (session) per user.
-| | ... | [Ver] Measure MaxReceivedRate for 1518B frames using single\
-| | ... | trial throughput test.
-| | ...
| | [Tags] | 1518B | 4C
-| | ...
-| | [Template] | Check RR for IPv4 routing with NAT44
-| | wt=4 | rxq=2 | framesize=${1518}
+| | phy_cores=${4} | framesize=${1518}
| tc11-9000B-4t4c-ethip4-ip4base-snat-1u-1p-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 routing config with 4 phy cores,\
-| | ... | 2 receive queues per NIC port. NAT44 is configured between DUTs -\
-| | ... | 1 user and 1 port (session) per user.
-| | ... | [Ver] Measure MaxReceivedRate for 9000B frames using single\
-| | ... | trial throughput test.
-| | ...
| | [Tags] | 9000B | 4C
-| | ...
-| | [Template] | Check RR for IPv4 routing with NAT44
-| | wt=4 | rxq=2 | framesize=${9000}
+| | phy_cores=${4} | framesize=${9000}
| tc12-IMIX-4t4c-ethip4-ip4base-snat-1u-1p-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 routing config with 4 phy cores,\
-| | ... | 2 receive queues per NIC port. NAT44 is configured between DUTs -\
-| | ... | 1 user and 1 port (session) per user.
-| | ... | [Ver] Find NDR for IMIX frames using binary search start at 10GE\
-| | ... | linerate, step 50kpps.
-| | ...
| | [Tags] | IMIX | 4C
-| | ...
-| | [Template] | Check RR for IPv4 routing with NAT44
-| | wt=4 | rxq=2 | framesize=IMIX_v4_1
+| | phy_cores=${4} | framesize=IMIX_v4_1
diff --git a/tests/vpp/perf/ip4/10ge2p1x520-ethip4udp-ip4base-nat44-ndrpdrdisc.robot b/tests/vpp/perf/ip4/10ge2p1x520-ethip4udp-ip4base-nat44-ndrpdrdisc.robot
index 6724507f7d..0fa9706a77 100644
--- a/tests/vpp/perf/ip4/10ge2p1x520-ethip4udp-ip4base-nat44-ndrpdrdisc.robot
+++ b/tests/vpp/perf/ip4/10ge2p1x520-ethip4udp-ip4base-nat44-ndrpdrdisc.robot
@@ -30,6 +30,8 @@
| Test Teardown | Tear down performance discovery test with NAT
| ... | ${min_rate}pps | ${framesize} | ${traffic_profile}
| ...
+| Test Template | Local template
+| ...
| Documentation | *NAT44 performance test cases*
| ...
| ... | *[Top] Network Topologies:* TG-DUT1-DUT2-TG 3-node circular topology
@@ -59,9 +61,9 @@
| ${traffic_profile} | trex-sl-3n-ethip4udp-1u1p
*** Keywords ***
-| Discover NDR or PDR for IPv4 routing with NAT44
-| | ...
-| | [Arguments] | ${wt} | ${rxq} | ${framesize} | ${min_rate} | ${search_type}
+| Local template
+| | [Arguments] | ${phy_cores} | ${framesize} | ${search_type}
+| | ... | ${rxq}=${None} | ${min_rate}=${50000}
| | ...
| | Set Test Variable | ${framesize}
| | Set Test Variable | ${min_rate}
@@ -71,7 +73,7 @@
| | ${threshold}= | Set Variable | ${min_rate}
| | ${get_framesize}= | Get Frame Size | ${framesize}
| | ...
-| | Given Add '${wt}' worker threads and '${rxq}' rxqueues in 3-node single-link circular topology
+| | Given Add worker threads and rxqueues to all DUTs | ${phy_cores} | ${rxq}
| | And Add PCI devices to all DUTs
| | And Run Keyword If | ${get_framesize} < ${1522}
| | ... | Add no multi seg to all DUTs
@@ -90,235 +92,73 @@
*** Test Cases ***
| tc01-64B-1t1c-ethip4-ip4base-snat-1u-1p-ndrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 routing config with 1 phy core,\
-| | ... | 1 receive queue per NIC port. NAT44 is configured between DUTs -\
-| | ... | 1 user and 1 port (session) per user.
-| | ... | [Ver] Find NDR for 64 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 50kpps.
-| | ...
| | [Tags] | 64B | 1C | NDRDISC
-| | ...
-| | [Template] | Discover NDR or PDR for IPv4 routing with NAT44
-| | wt=1 | rxq=1 | framesize=${64} | min_rate=${50000} | search_type=NDR
+| | phy_cores=${1} | framesize=${64} | search_type=NDR
| tc02-64B-1t1c-ethip4-ip4base-snat-1u-1p-pdrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 routing config with 1 phy core,\
-| | ... | 1 receive queue per NIC port. NAT44 is configured between DUTs -\
-| | ... | 1 user and 1 port (session) per user.
-| | ... | [Ver] Find PDR for 64 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 50kpps.
-| | ...
| | [Tags] | 64B | 1C | PDRDISC | SKIP_PATCH
-| | ...
-| | [Template] | Discover NDR or PDR for IPv4 routing with NAT44
-| | wt=1 | rxq=1 | framesize=${64} | min_rate=${50000} | search_type=PDR
+| | phy_cores=${1} | framesize=${64} | search_type=PDR
| tc03-1518B-1t1c-ethip4-ip4base-snat-1u-1p-ndrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 routing config with 1 phy core,\
-| | ... | 1 receive queue per NIC port. NAT44 is configured between DUTs -\
-| | ... | 1 user and 1 port (session) per user.
-| | ... | [Ver] Find NDR for 1518 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 50kpps.
-| | ...
| | [Tags] | 1518B | 1C | NDRDISC
-| | ...
-| | [Template] | Discover NDR or PDR for IPv4 routing with NAT44
-| | wt=1 | rxq=1 | framesize=${1518} | min_rate=${50000} | search_type=NDR
+| | phy_cores=${1} | framesize=${1518} | search_type=NDR
| tc04-1518B-1t1c-ethip4-ip4base-snat-1u-1p-pdrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 routing config with 1 phy core,\
-| | ... | 1 receive queue per NIC port. NAT44 is configured between DUTs -\
-| | ... | 1 user and 1 port (session) per user.
-| | ... | [Ver] Find PDR for 1518 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 50kpps.
-| | ...
| | [Tags] | 1518B | 1C | PDRDISC | SKIP_PATCH
-| | ...
-| | [Template] | Discover NDR or PDR for IPv4 routing with NAT44
-| | wt=1 | rxq=1 | framesize=${1518} | min_rate=${50000} | search_type=PDR
+| | phy_cores=${1} | framesize=${1518} | search_type=PDR
| tc05-IMIX-1t1c-ethip4-ip4base-snat-1u-1p-ndrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 routing config with 1 phy core,\
-| | ... | 1 receive queue per NIC port. NAT44 is configured between DUTs -\
-| | ... | 1 user and 1 port (session) per user.
-| | ... | [Ver] Find NDR for IMIX frames using binary search start at 10GE\
-| | ... | linerate, step 50kpps.
-| | ...
| | [Tags] | IMIX | 1C | NDRDISC
-| | ...
-| | [Template] | Discover NDR or PDR for IPv4 routing with NAT44
-| | wt=1 | rxq=1 | framesize=IMIX_v4_1 | min_rate=${50000} | search_type=NDR
+| | phy_cores=${1} | framesize=IMIX_v4_1 | search_type=NDR
| tc06-IMIX-1t1c-ethip4-ip4base-snat-1u-1p-pdrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 routing config with 1 phy core,\
-| | ... | 1 receive queue per NIC port. NAT44 is configured between DUTs -\
-| | ... | 1 user and 1 port (session) per user.
-| | ... | [Ver] Find PDR for IMIX frames using binary search start at 10GE\
-| | ... | linerate, step 50kpps.
-| | ...
| | [Tags] | IMIX | 1C | PDRDISC | SKIP_PATCH
-| | ...
-| | [Template] | Discover NDR or PDR for IPv4 routing with NAT44
-| | wt=1 | rxq=1 | framesize=IMIX_v4_1 | min_rate=${50000} | search_type=PDR
+| | phy_cores=${1} | framesize=IMIX_v4_1 | search_type=PDR
| tc07-64B-2t2c-ethip4-ip4base-snat-1u-1p-ndrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 routing config with 2 phy cores,\
-| | ... | 1 receive queue per NIC port. NAT44 is configured between DUTs -\
-| | ... | 1 user and 1 port (session) per user.
-| | ... | [Ver] Find NDR for 64 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 50kpps.
-| | ...
| | [Tags] | 64B | 2C | NDRDISC
-| | ...
-| | [Template] | Discover NDR or PDR for IPv4 routing with NAT44
-| | wt=2 | rxq=1 | framesize=${64} | min_rate=${50000} | search_type=NDR
+| | phy_cores=${2} | framesize=${64} | search_type=NDR
| tc08-64B-2t2c-ethip4-ip4base-snat-1u-1p-pdrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 routing config with 2 phy cores,\
-| | ... | 1 receive queue per NIC port. NAT44 is configured between DUTs -\
-| | ... | 1 user and 1 port (session) per user.
-| | ... | [Ver] Find PDR for 64 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 50kpps.
-| | ...
| | [Tags] | 64B | 2C | PDRDISC | SKIP_PATCH
-| | ...
-| | [Template] | Discover NDR or PDR for IPv4 routing with NAT44
-| | wt=2 | rxq=1 | framesize=${64} | min_rate=${50000} | search_type=PDR
+| | phy_cores=${2} | framesize=${64} | search_type=PDR
| tc09-1518B-2t2c-ethip4-ip4base-snat-1u-1p-ndrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 routing config with 2 phy cores,\
-| | ... | 1 receive queue per NIC port. NAT44 is configured between DUTs -\
-| | ... | 1 user and 1 port (session) per user.
-| | ... | [Ver] Find NDR for 1518 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 50kpps.
-| | ...
| | [Tags] | 1518B | 2C | NDRDISC
-| | ...
-| | [Template] | Discover NDR or PDR for IPv4 routing with NAT44
-| | wt=2 | rxq=1 | framesize=${1518} | min_rate=${50000} | search_type=NDR
+| | phy_cores=${2} | framesize=${1518} | search_type=NDR
| tc10-1518B-2t2c-ethip4-ip4base-snat-1u-1p-pdrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 routing config with 2 phy cores,\
-| | ... | 1 receive queue per NIC port. NAT44 is configured between DUTs -\
-| | ... | 1 user and 1 port (session) per user.
-| | ... | [Ver] Find PDR for 1518 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 50kpps.
-| | ...
| | [Tags] | 1518B | 2C | PDRDISC | SKIP_PATCH
-| | ...
-| | [Template] | Discover NDR or PDR for IPv4 routing with NAT44
-| | wt=2 | rxq=1 | framesize=${1518} | min_rate=${50000} | search_type=PDR
+| | phy_cores=${2} | framesize=${1518} | search_type=PDR
| tc11-IMIX-2t2c-ethip4-ip4base-snat-1u-1p-ndrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 routing config with 2 phy cores,\
-| | ... | 1 receive queue per NIC port. NAT44 is configured between DUTs -\
-| | ... | 1 user and 1 port (session) per user.
-| | ... | [Ver] Find NDR for IMIX frames using binary search start at 10GE\
-| | ... | linerate, step 50kpps.
-| | ...
| | [Tags] | IMIX | 2C | NDRDISC
-| | ...
-| | [Template] | Discover NDR or PDR for IPv4 routing with NAT44
-| | wt=2 | rxq=1 | framesize=IMIX_v4_1 | min_rate=${50000} | search_type=NDR
+| | phy_cores=${2} | framesize=IMIX_v4_1 | search_type=NDR
| tc12-IMIX-2t2c-ethip4-ip4base-snat-1u-1p-pdrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 routing config with 2 phy cores,\
-| | ... | 1 receive queue per NIC port. NAT44 is configured between DUTs -\
-| | ... | 1 user and 1 port (session) per user.
-| | ... | [Ver] Find PDR for IMIX frames using binary search start at 10GE\
-| | ... | linerate, step 50kpps.
-| | ...
| | [Tags] | IMIX | 2C | PDRDISC | SKIP_PATCH
-| | ...
-| | [Template] | Discover NDR or PDR for IPv4 routing with NAT44
-| | wt=2 | rxq=1 | framesize=IMIX_v4_1 | min_rate=${50000} | search_type=PDR
+| | phy_cores=${2} | framesize=IMIX_v4_1 | search_type=PDR
| tc13-64B-4t4c-ethip4-ip4base-snat-1u-1p-ndrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 routing config with 4 phy cores,\
-| | ... | 2 receive queues per NIC port. NAT44 is configured between DUTs -\
-| | ... | 1 user and 1 port (session) per user.
-| | ... | [Ver] Find NDR for 64 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 50kpps.
-| | ...
| | [Tags] | 64B | 4C | NDRDISC
-| | ...
-| | [Template] | Discover NDR or PDR for IPv4 routing with NAT44
-| | wt=4 | rxq=2 | framesize=${64} | min_rate=${50000} | search_type=NDR
+| | phy_cores=${4} | framesize=${64} | search_type=NDR
| tc14-64B-4t4c-ethip4-ip4base-snat-1u-1p-pdrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 routing config with 4 phy cores,\
-| | ... | 2 receive queues per NIC port. NAT44 is configured between DUTs -\
-| | ... | 1 user and 1 port (session) per user.
-| | ... | [Ver] Find PDR for 64 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 50kpps.
-| | ...
| | [Tags] | 64B | 4C | PDRDISC | SKIP_PATCH
-| | ...
-| | [Template] | Discover NDR or PDR for IPv4 routing with NAT44
-| | wt=4 | rxq=2 | framesize=${64} | min_rate=${50000} | search_type=PDR
+| | phy_cores=${4} | framesize=${64} | search_type=PDR
| tc15-1518B-4t4c-ethip4-ip4base-snat-1u-1p-ndrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 routing config with 4 phy cores,\
-| | ... | 2 receive queues per NIC port. NAT44 is configured between DUTs -\
-| | ... | 1 user and 1 port (session) per user.
-| | ... | [Ver] Find NDR for 1518 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 50kpps.
-| | ...
| | [Tags] | 1518B | 4C | NDRDISC
-| | ...
-| | [Template] | Discover NDR or PDR for IPv4 routing with NAT44
-| | wt=4 | rxq=2 | framesize=${1518} | min_rate=${50000} | search_type=NDR
+| | phy_cores=${4} | framesize=${1518} | search_type=NDR
| tc16-1518B-4t4c-ethip4-ip4base-snat-1u-1p-pdrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 routing config with 4 phy cores,\
-| | ... | 2 receive queues per NIC port. NAT44 is configured between DUTs -\
-| | ... | 1 user and 1 port (session) per user.
-| | ... | [Ver] Find PDR for 1518 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 50kpps.
-| | ...
| | [Tags] | 1518B | 4C | PDRDISC | SKIP_PATCH
-| | ...
-| | [Template] | Discover NDR or PDR for IPv4 routing with NAT44
-| | wt=4 | rxq=2 | framesize=${1518} | min_rate=${50000} | search_type=PDR
+| | phy_cores=${4} | framesize=${1518} | search_type=PDR
| tc17-IMIX-4t4c-ethip4-ip4base-snat-1u-1p-ndrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 routing config with 4 phy cores,\
-| | ... | 2 receive queues per NIC port. NAT44 is configured between DUTs -\
-| | ... | 1 user and 1 port (session) per user.
-| | ... | [Ver] Find NDR for IMIX frames using binary search start at 10GE\
-| | ... | linerate, step 50kpps.
-| | ...
| | [Tags] | IMIX | 4C | NDRDISC
-| | ...
-| | [Template] | Discover NDR or PDR for IPv4 routing with NAT44
-| | wt=4 | rxq=2 | framesize=IMIX_v4_1 | min_rate=${50000} | search_type=NDR
+| | phy_cores=${4} | framesize=IMIX_v4_1 | search_type=NDR
| tc18-IMIX-4t4c-ethip4-ip4base-snat-1u-1p-pdrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 routing config with 4 phy cores,\
-| | ... | 2 receive queues per NIC port. NAT44 is configured between DUTs -\
-| | ... | 1 user and 1 port (session) per user.
-| | ... | [Ver] Find PDR for IMIX frames using binary search start at 10GE\
-| | ... | linerate, step 50kpps.
-| | ...
| | [Tags] | IMIX | 4C | PDRDISC | SKIP_PATCH
-| | ...
-| | [Template] | Discover NDR or PDR for IPv4 routing with NAT44
-| | wt=4 | rxq=2 | framesize=IMIX_v4_1 | min_rate=${50000} | search_type=PDR
+| | phy_cores=${4} | framesize=IMIX_v4_1 | search_type=PDR
diff --git a/tests/vpp/perf/ip4/10ge2p1x520-ethip4udp-ip4base-oacl10sf-100flows-ndrpdrdisc.robot b/tests/vpp/perf/ip4/10ge2p1x520-ethip4udp-ip4base-oacl10sf-100flows-ndrpdrdisc.robot
index fff456fc72..0a816de129 100644
--- a/tests/vpp/perf/ip4/10ge2p1x520-ethip4udp-ip4base-oacl10sf-100flows-ndrpdrdisc.robot
+++ b/tests/vpp/perf/ip4/10ge2p1x520-ethip4udp-ip4base-oacl10sf-100flows-ndrpdrdisc.robot
@@ -29,6 +29,8 @@
| Test Teardown | Tear down performance test with ACL
| ... | ${min_rate}pps | ${framesize} | ${traffic_profile}
| ...
+| Test Template | Local template
+| ...
| Documentation | *RFC2544: Packet throughput IPv4 test cases with ACL*
| ...
| ... | *[Top] Network Topologies:* TG-DUT1-DUT2-TG 3-node circular topology\
@@ -73,15 +75,17 @@
| ${trex_stream2_subnet}= | 20.20.20.0/24
*** Keywords ***
-| Discover NDR or PDR for IPv4 routing with ACLs
-| | [Arguments] | ${wt} | ${rxq} | ${framesize} | ${min_rate} | ${search_type}
+| Local template
+| | [Arguments] | ${phy_cores} | ${framesize} | ${search_type}
+| | ... | ${rxq}=${None} | ${min_rate}=${50000}
+| | ...
| | Set Test Variable | ${framesize}
| | Set Test Variable | ${min_rate}
| | ${max_rate}= | Calculate pps | ${s_limit} | ${framesize}
| | ${binary_min}= | Set Variable | ${min_rate}
| | ${binary_max}= | Set Variable | ${max_rate}
| | ${threshold}= | Set Variable | ${min_rate}
-| | Given Add '${wt}' worker threads and '${rxq}' rxqueues in 3-node single-link circular topology
+| | Given Add worker threads and rxqueues to all DUTs | ${phy_cores} | ${rxq}
| | And Add PCI devices to all DUTs
| | ${get_framesize}= | Get Frame Size | ${framesize}
| | And Run Keyword If | ${get_framesize} < ${1522} | Add no multi seg to all DUTs
@@ -102,73 +106,25 @@
*** Test Cases ***
| tc01-64B-1t1c-ethip4udp-ip4base-oacl10-stateful-flows100-ndrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 routing config with ACL with\
-| | ... | 1 phy core, 1 receive queue per NIC port.
-| | ... | [Ver] Find NDR for 64 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 50kpps.
-| | ...
| | [Tags] | 64B | 1C | NDRDISC
-| | ...
-| | [Template] | Discover NDR or PDR for IPv4 routing with ACLs
-| | wt=1 | rxq=1 | framesize=${64} | min_rate=${50000} | search_type=NDR
+| | phy_cores=${1} | framesize=${64} | search_type=NDR
| tc02-64B-1t1c-ethip4udp-ip4base-oacl10-stateful-flows100-pdrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 routing config with ACL with\
-| | ... | 1 phy core, 1 receive queue per NIC port.
-| | ... | [Ver] Find PDR for 64 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 50kpps, LT=0.5%.
-| | ...
| | [Tags] | 64B | 1C | PDRDISC | SKIP_PATCH
-| | ...
-| | [Template] | Discover NDR or PDR for IPv4 routing with ACLs
-| | wt=1 | rxq=1 | framesize=${64} | min_rate=${50000} | search_type=PDR
+| | phy_cores=${1} | framesize=${64} | search_type=PDR
| tc03-64B-2t2c-ethip4udp-ip4base-oacl10-stateful-flows100-ndrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 routing config with ACL with\
-| | ... | 2 phy cores, 1 receive queue per NIC port.
-| | ... | [Ver] Find NDR for 64 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 50kpps.
-| | ...
| | [Tags] | 64B | 2C | NDRDISC
-| | ...
-| | [Template] | Discover NDR or PDR for IPv4 routing with ACLs
-| | wt=2 | rxq=1 | framesize=${64} | min_rate=${50000} | search_type=NDR
+| | phy_cores=${2} | framesize=${64} | search_type=NDR
| tc04-64B-2t2c-ethip4udp-ip4base-oacl10-stateful-flows100-pdrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 routing config with ACL with\
-| | ... | 2 phy cores, 1 receive queue per NIC port.
-| | ... | [Ver] Find PDR for 64 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 50kpps, LT=0.5%.
-| | ...
| | [Tags] | 64B | 2C | PDRDISC | SKIP_PATCH
-| | ...
-| | [Template] | Discover NDR or PDR for IPv4 routing with ACLs
-| | wt=2 | rxq=1 | framesize=${64} | min_rate=${50000} | search_type=PDR
+| | phy_cores=${2} | framesize=${64} | search_type=PDR
| tc05-64B-4t4c-ethip4udp-ip4base-oacl10-stateful-flows100-ndrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 routing config with ACL with\
-| | ... | 4 phy cores, 2 receive queues per NIC port.
-| | ... | [Ver] Find NDR for 64 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 50kpps.
-| | ...
| | [Tags] | 64B | 4C | NDRDISC
-| | ...
-| | [Template] | Discover NDR or PDR for IPv4 routing with ACLs
-| | wt=4 | rxq=2 | framesize=${64} | min_rate=${50000} | search_type=NDR
+| | phy_cores=${4} | framesize=${64} | search_type=NDR
| tc06-64B-4t4c-ethip4udp-ip4base-oacl10-stateful-flows100-pdrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 routing config with ACL with\
-| | ... | 4 phy cores, 2 receive queues per NIC port.
-| | ... | [Ver] Find PDR for 64 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 50kpps, LT=0.5%.
-| | ...
| | [Tags] | 64B | 4C | PDRDISC | SKIP_PATCH
-| | ...
-| | [Template] | Discover NDR or PDR for IPv4 routing with ACLs
-| | wt=4 | rxq=2 | framesize=${64} | min_rate=${50000} | search_type=PDR
+| | phy_cores=${4} | framesize=${64} | search_type=PDR
diff --git a/tests/vpp/perf/ip4/10ge2p1x520-ethip4udp-ip4base-oacl10sf-100kflows-ndrpdrdisc.robot b/tests/vpp/perf/ip4/10ge2p1x520-ethip4udp-ip4base-oacl10sf-100kflows-ndrpdrdisc.robot
index 2edbb2f93a..ba11329750 100644
--- a/tests/vpp/perf/ip4/10ge2p1x520-ethip4udp-ip4base-oacl10sf-100kflows-ndrpdrdisc.robot
+++ b/tests/vpp/perf/ip4/10ge2p1x520-ethip4udp-ip4base-oacl10sf-100kflows-ndrpdrdisc.robot
@@ -29,6 +29,8 @@
| Test Teardown | Tear down performance test with ACL
| ... | ${min_rate}pps | ${framesize} | ${traffic_profile}
| ...
+| Test Template | Local template
+| ...
| Documentation | *RFC2544: Packet throughput IPv4 test cases with ACL*
| ...
| ... | *[Top] Network Topologies:* TG-DUT1-DUT2-TG 3-node circular topology\
@@ -73,15 +75,17 @@
| ${trex_stream2_subnet}= | 20.20.20.0/24
*** Keywords ***
-| Discover NDR or PDR for IPv4 routing with ACLs
-| | [Arguments] | ${wt} | ${rxq} | ${framesize} | ${min_rate} | ${search_type}
+| Local template
+| | [Arguments] | ${phy_cores} | ${framesize} | ${search_type}
+| | ... | ${rxq}=${None} | ${min_rate}=${50000}
+| | ...
| | Set Test Variable | ${framesize}
| | Set Test Variable | ${min_rate}
| | ${max_rate}= | Calculate pps | ${s_limit} | ${framesize}
| | ${binary_min}= | Set Variable | ${min_rate}
| | ${binary_max}= | Set Variable | ${max_rate}
| | ${threshold}= | Set Variable | ${min_rate}
-| | Given Add '${wt}' worker threads and '${rxq}' rxqueues in 3-node single-link circular topology
+| | Given Add worker threads and rxqueues to all DUTs | ${phy_cores} | ${rxq}
| | And Add PCI devices to all DUTs
| | ${get_framesize}= | Get Frame Size | ${framesize}
| | And Run Keyword If | ${get_framesize} < ${1522} | Add no multi seg to all DUTs
@@ -102,73 +106,25 @@
*** Test Cases ***
| tc01-64B-1t1c-ethip4udp-ip4base-oacl10-stateful-flows100k-ndrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 routing config with ACL with\
-| | ... | 1 phy core, 1 receive queue per NIC port.
-| | ... | [Ver] Find NDR for 64 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 50kpps.
-| | ...
| | [Tags] | 64B | 1C | NDRDISC
-| | ...
-| | [Template] | Discover NDR or PDR for IPv4 routing with ACLs
-| | wt=1 | rxq=1 | framesize=${64} | min_rate=${50000} | search_type=NDR
+| | phy_cores=${1} | framesize=${64} | search_type=NDR
| tc02-64B-1t1c-ethip4udp-ip4base-oacl10-stateful-flows100k-pdrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 routing config with ACL with\
-| | ... | 1 phy core, 1 receive queue per NIC port.
-| | ... | [Ver] Find PDR for 64 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 50kpps, LT=0.5%.
-| | ...
| | [Tags] | 64B | 1C | PDRDISC | SKIP_PATCH
-| | ...
-| | [Template] | Discover NDR or PDR for IPv4 routing with ACLs
-| | wt=1 | rxq=1 | framesize=${64} | min_rate=${50000} | search_type=PDR
+| | phy_cores=${1} | framesize=${64} | search_type=PDR
| tc03-64B-2t2c-ethip4udp-ip4base-oacl10-stateful-flows100k-ndrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 routing config with ACL with\
-| | ... | 2 phy cores, 1 receive queue per NIC port.
-| | ... | [Ver] Find NDR for 64 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 50kpps.
-| | ...
| | [Tags] | 64B | 2C | NDRDISC
-| | ...
-| | [Template] | Discover NDR or PDR for IPv4 routing with ACLs
-| | wt=2 | rxq=1 | framesize=${64} | min_rate=${50000} | search_type=NDR
+| | phy_cores=${2} | framesize=${64} | search_type=NDR
| tc04-64B-2t2c-ethip4udp-ip4base-oacl10-stateful-flows100k-pdrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 routing config with ACL with\
-| | ... | 2 phy cores, 1 receive queue per NIC port.
-| | ... | [Ver] Find PDR for 64 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 50kpps, LT=0.5%.
-| | ...
| | [Tags] | 64B | 2C | PDRDISC | SKIP_PATCH
-| | ...
-| | [Template] | Discover NDR or PDR for IPv4 routing with ACLs
-| | wt=2 | rxq=1 | framesize=${64} | min_rate=${50000} | search_type=PDR
+| | phy_cores=${2} | framesize=${64} | search_type=PDR
| tc05-64B-4t4c-ethip4udp-ip4base-oacl10-stateful-flows100k-ndrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 routing config with ACL with\
-| | ... | 4 phy cores, 2 receive queues per NIC port.
-| | ... | [Ver] Find NDR for 64 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 50kpps.
-| | ...
| | [Tags] | 64B | 4C | NDRDISC
-| | ...
-| | [Template] | Discover NDR or PDR for IPv4 routing with ACLs
-| | wt=4 | rxq=2 | framesize=${64} | min_rate=${50000} | search_type=NDR
+| | phy_cores=${4} | framesize=${64} | search_type=NDR
| tc06-64B-4t4c-ethip4udp-ip4base-oacl10-stateful-flows100k-pdrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 routing config with ACL with\
-| | ... | 4 phy cores, 2 receive queues per NIC port.
-| | ... | [Ver] Find PDR for 64 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 50kpps, LT=0.5%.
-| | ...
| | [Tags] | 64B | 4C | PDRDISC | SKIP_PATCH
-| | ...
-| | [Template] | Discover NDR or PDR for IPv4 routing with ACLs
-| | wt=4 | rxq=2 | framesize=${64} | min_rate=${50000} | search_type=PDR
+| | phy_cores=${4} | framesize=${64} | search_type=PDR
diff --git a/tests/vpp/perf/ip4/10ge2p1x520-ethip4udp-ip4base-oacl10sf-10kflows-ndrpdrdisc.robot b/tests/vpp/perf/ip4/10ge2p1x520-ethip4udp-ip4base-oacl10sf-10kflows-ndrpdrdisc.robot
index bf8d21dd21..0df726440c 100644
--- a/tests/vpp/perf/ip4/10ge2p1x520-ethip4udp-ip4base-oacl10sf-10kflows-ndrpdrdisc.robot
+++ b/tests/vpp/perf/ip4/10ge2p1x520-ethip4udp-ip4base-oacl10sf-10kflows-ndrpdrdisc.robot
@@ -29,6 +29,8 @@
| Test Teardown | Tear down performance test with ACL
| ... | ${min_rate}pps | ${framesize} | ${traffic_profile}
| ...
+| Test Template | Local template
+| ...
| Documentation | *RFC2544: Packet throughput IPv4 test cases with ACL*
| ...
| ... | *[Top] Network Topologies:* TG-DUT1-DUT2-TG 3-node circular topology\
@@ -73,15 +75,17 @@
| ${trex_stream2_subnet}= | 20.20.20.0/24
*** Keywords ***
-| Discover NDR or PDR for IPv4 routing with ACLs
-| | [Arguments] | ${wt} | ${rxq} | ${framesize} | ${min_rate} | ${search_type}
+| Local template
+| | [Arguments] | ${phy_cores} | ${framesize} | ${search_type}
+| | ... | ${rxq}=${None} | ${min_rate}=${50000}
+| | ...
| | Set Test Variable | ${framesize}
| | Set Test Variable | ${min_rate}
| | ${max_rate}= | Calculate pps | ${s_limit} | ${framesize}
| | ${binary_min}= | Set Variable | ${min_rate}
| | ${binary_max}= | Set Variable | ${max_rate}
| | ${threshold}= | Set Variable | ${min_rate}
-| | Given Add '${wt}' worker threads and '${rxq}' rxqueues in 3-node single-link circular topology
+| | Given Add worker threads and rxqueues to all DUTs | ${phy_cores} | ${rxq}
| | And Add PCI devices to all DUTs
| | ${get_framesize}= | Get Frame Size | ${framesize}
| | And Run Keyword If | ${get_framesize} < ${1522} | Add no multi seg to all DUTs
@@ -102,73 +106,25 @@
*** Test Cases ***
| tc01-64B-1t1c-ethip4udp-ip4base-oacl10-stateful-flows10k-ndrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 routing config with ACL with\
-| | ... | 1 phy core, 1 receive queue per NIC port.
-| | ... | [Ver] Find NDR for 64 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 50kpps.
-| | ...
| | [Tags] | 64B | 1C | NDRDISC
-| | ...
-| | [Template] | Discover NDR or PDR for IPv4 routing with ACLs
-| | wt=1 | rxq=1 | framesize=${64} | min_rate=${50000} | search_type=NDR
+| | phy_cores=${1} | framesize=${64} | search_type=NDR
| tc02-64B-1t1c-ethip4udp-ip4base-oacl10-stateful-flows10k-pdrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 routing config with ACL with\
-| | ... | 1 phy core, 1 receive queue per NIC port.
-| | ... | [Ver] Find PDR for 64 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 50kpps, LT=0.5%.
-| | ...
| | [Tags] | 64B | 1C | PDRDISC | SKIP_PATCH
-| | ...
-| | [Template] | Discover NDR or PDR for IPv4 routing with ACLs
-| | wt=1 | rxq=1 | framesize=${64} | min_rate=${50000} | search_type=PDR
+| | phy_cores=${1} | framesize=${64} | search_type=PDR
| tc03-64B-2t2c-ethip4udp-ip4base-oacl10-stateful-flows10k-ndrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 routing config with ACL with\
-| | ... | 2 phy cores, 1 receive queue per NIC port.
-| | ... | [Ver] Find NDR for 64 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 50kpps.
-| | ...
| | [Tags] | 64B | 2C | NDRDISC
-| | ...
-| | [Template] | Discover NDR or PDR for IPv4 routing with ACLs
-| | wt=2 | rxq=1 | framesize=${64} | min_rate=${50000} | search_type=NDR
+| | phy_cores=${2} | framesize=${64} | search_type=NDR
| tc04-64B-2t2c-ethip4udp-ip4base-oacl10-stateful-flows10k-pdrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 routing config with ACL with\
-| | ... | 2 phy cores, 1 receive queue per NIC port.
-| | ... | [Ver] Find PDR for 64 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 50kpps, LT=0.5%.
-| | ...
| | [Tags] | 64B | 2C | PDRDISC | SKIP_PATCH
-| | ...
-| | [Template] | Discover NDR or PDR for IPv4 routing with ACLs
-| | wt=2 | rxq=1 | framesize=${64} | min_rate=${50000} | search_type=PDR
+| | phy_cores=${2} | framesize=${64} | search_type=PDR
| tc05-64B-4t4c-ethip4udp-ip4base-oacl10-stateful-flows10k-ndrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 routing config with ACL with\
-| | ... | 4 phy cores, 2 receive queues per NIC port.
-| | ... | [Ver] Find NDR for 64 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 50kpps.
-| | ...
| | [Tags] | 64B | 4C | NDRDISC
-| | ...
-| | [Template] | Discover NDR or PDR for IPv4 routing with ACLs
-| | wt=4 | rxq=2 | framesize=${64} | min_rate=${50000} | search_type=NDR
+| | phy_cores=${4} | framesize=${64} | search_type=NDR
| tc06-64B-4t4c-ethip4udp-ip4base-oacl10-stateful-flows10k-pdrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 routing config with ACL with\
-| | ... | 4 phy cores, 2 receive queues per NIC port.
-| | ... | [Ver] Find PDR for 64 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 50kpps, LT=0.5%.
-| | ...
| | [Tags] | 64B | 4C | PDRDISC | SKIP_PATCH
-| | ...
-| | [Template] | Discover NDR or PDR for IPv4 routing with ACLs
-| | wt=4 | rxq=2 | framesize=${64} | min_rate=${50000} | search_type=PDR
+| | phy_cores=${4} | framesize=${64} | search_type=PDR
diff --git a/tests/vpp/perf/ip4/10ge2p1x520-ethip4udp-ip4base-oacl10sl-100flows-ndrpdrdisc.robot b/tests/vpp/perf/ip4/10ge2p1x520-ethip4udp-ip4base-oacl10sl-100flows-ndrpdrdisc.robot
index 9fa9a0fe57..d38cd33232 100644
--- a/tests/vpp/perf/ip4/10ge2p1x520-ethip4udp-ip4base-oacl10sl-100flows-ndrpdrdisc.robot
+++ b/tests/vpp/perf/ip4/10ge2p1x520-ethip4udp-ip4base-oacl10sl-100flows-ndrpdrdisc.robot
@@ -29,6 +29,8 @@
| Test Teardown | Tear down performance test with ACL
| ... | ${min_rate}pps | ${framesize} | ${traffic_profile}
| ...
+| Test Template | Local template
+| ...
| Documentation | *RFC2544: Packet throughput IPv4 test cases with ACL*
| ...
| ... | *[Top] Network Topologies:* TG-DUT1-DUT2-TG 3-node circular topology\
@@ -73,15 +75,17 @@
| ${trex_stream2_subnet}= | 20.20.20.0/24
*** Keywords ***
-| Discover NDR or PDR for IPv4 routing with ACLs
-| | [Arguments] | ${wt} | ${rxq} | ${framesize} | ${min_rate} | ${search_type}
+| Local template
+| | [Arguments] | ${phy_cores} | ${framesize} | ${search_type}
+| | ... | ${rxq}=${None} | ${min_rate}=${50000}
+| | ...
| | Set Test Variable | ${framesize}
| | Set Test Variable | ${min_rate}
| | ${max_rate}= | Calculate pps | ${s_limit} | ${framesize}
| | ${binary_min}= | Set Variable | ${min_rate}
| | ${binary_max}= | Set Variable | ${max_rate}
| | ${threshold}= | Set Variable | ${min_rate}
-| | Given Add '${wt}' worker threads and '${rxq}' rxqueues in 3-node single-link circular topology
+| | Given Add worker threads and rxqueues to all DUTs | ${phy_cores} | ${rxq}
| | And Add PCI devices to all DUTs
| | ${get_framesize}= | Get Frame Size | ${framesize}
| | And Run Keyword If | ${get_framesize} < ${1522} | Add no multi seg to all DUTs
@@ -102,73 +106,25 @@
*** Test Cases ***
| tc01-64B-1t1c-ethip4udp-ip4base-oacl10-stateless-flows100-ndrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 routing config with ACL with\
-| | ... | 1 phy core, 1 receive queue per NIC port.
-| | ... | [Ver] Find NDR for 64 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 50kpps.
-| | ...
| | [Tags] | 64B | 1C | NDRDISC
-| | ...
-| | [Template] | Discover NDR or PDR for IPv4 routing with ACLs
-| | wt=1 | rxq=1 | framesize=${64} | min_rate=${50000} | search_type=NDR
+| | phy_cores=${1} | framesize=${64} | search_type=NDR
| tc02-64B-1t1c-ethip4udp-ip4base-oacl10-stateless-flows100-pdrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 routing config with ACL with\
-| | ... | 1 phy core, 1 receive queue per NIC port.
-| | ... | [Ver] Find PDR for 64 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 50kpps, LT=0.5%.
-| | ...
| | [Tags] | 64B | 1C | PDRDISC | SKIP_PATCH
-| | ...
-| | [Template] | Discover NDR or PDR for IPv4 routing with ACLs
-| | wt=1 | rxq=1 | framesize=${64} | min_rate=${50000} | search_type=PDR
+| | phy_cores=${1} | framesize=${64} | search_type=PDR
| tc03-64B-2t2c-ethip4udp-ip4base-oacl10-stateless-flows100-ndrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 routing config with ACL with\
-| | ... | 2 phy cores, 1 receive queue per NIC port.
-| | ... | [Ver] Find NDR for 64 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 50kpps.
-| | ...
| | [Tags] | 64B | 2C | NDRDISC
-| | ...
-| | [Template] | Discover NDR or PDR for IPv4 routing with ACLs
-| | wt=2 | rxq=1 | framesize=${64} | min_rate=${50000} | search_type=NDR
+| | phy_cores=${2} | framesize=${64} | search_type=NDR
| tc04-64B-2t2c-ethip4udp-ip4base-oacl10-stateless-flows100-pdrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 routing config with ACL with\
-| | ... | 2 phy cores, 1 receive queue per NIC port.
-| | ... | [Ver] Find PDR for 64 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 50kpps, LT=0.5%.
-| | ...
| | [Tags] | 64B | 2C | PDRDISC | SKIP_PATCH
-| | ...
-| | [Template] | Discover NDR or PDR for IPv4 routing with ACLs
-| | wt=2 | rxq=1 | framesize=${64} | min_rate=${50000} | search_type=PDR
+| | phy_cores=${2} | framesize=${64} | search_type=PDR
| tc05-64B-4t4c-ethip4udp-ip4base-oacl10-stateless-flows100-ndrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 routing config with ACL with\
-| | ... | 4 phy cores, 2 receive queues per NIC port.
-| | ... | [Ver] Find NDR for 64 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 50kpps.
-| | ...
| | [Tags] | 64B | 4C | NDRDISC
-| | ...
-| | [Template] | Discover NDR or PDR for IPv4 routing with ACLs
-| | wt=4 | rxq=2 | framesize=${64} | min_rate=${50000} | search_type=NDR
+| | phy_cores=${4} | framesize=${64} | search_type=NDR
| tc06-64B-4t4c-ethip4udp-ip4base-oacl10-stateless-flows100-pdrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 routing config with ACL with\
-| | ... | 4 phy cores, 2 receive queues per NIC port.
-| | ... | [Ver] Find PDR for 64 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 50kpps, LT=0.5%.
-| | ...
| | [Tags] | 64B | 4C | PDRDISC | SKIP_PATCH
-| | ...
-| | [Template] | Discover NDR or PDR for IPv4 routing with ACLs
-| | wt=4 | rxq=2 | framesize=${64} | min_rate=${50000} | search_type=PDR
+| | phy_cores=${4} | framesize=${64} | search_type=PDR
diff --git a/tests/vpp/perf/ip4/10ge2p1x520-ethip4udp-ip4base-oacl10sl-100kflows-ndrpdrdisc.robot b/tests/vpp/perf/ip4/10ge2p1x520-ethip4udp-ip4base-oacl10sl-100kflows-ndrpdrdisc.robot
index 292ce51a35..3b99ce3825 100644
--- a/tests/vpp/perf/ip4/10ge2p1x520-ethip4udp-ip4base-oacl10sl-100kflows-ndrpdrdisc.robot
+++ b/tests/vpp/perf/ip4/10ge2p1x520-ethip4udp-ip4base-oacl10sl-100kflows-ndrpdrdisc.robot
@@ -29,6 +29,8 @@
| Test Teardown | Tear down performance test with ACL
| ... | ${min_rate}pps | ${framesize} | ${traffic_profile}
| ...
+| Test Template | Local template
+| ...
| Documentation | *RFC2544: Packet throughput IPv4 test cases with ACL*
| ...
| ... | *[Top] Network Topologies:* TG-DUT1-DUT2-TG 3-node circular topology\
@@ -73,15 +75,17 @@
| ${trex_stream2_subnet}= | 20.20.20.0/24
*** Keywords ***
-| Discover NDR or PDR for IPv4 routing with ACLs
-| | [Arguments] | ${wt} | ${rxq} | ${framesize} | ${min_rate} | ${search_type}
+| Local template
+| | [Arguments] | ${phy_cores} | ${framesize} | ${search_type}
+| | ... | ${rxq}=${None} | ${min_rate}=${50000}
+| | ...
| | Set Test Variable | ${framesize}
| | Set Test Variable | ${min_rate}
| | ${max_rate}= | Calculate pps | ${s_limit} | ${framesize}
| | ${binary_min}= | Set Variable | ${min_rate}
| | ${binary_max}= | Set Variable | ${max_rate}
| | ${threshold}= | Set Variable | ${min_rate}
-| | Given Add '${wt}' worker threads and '${rxq}' rxqueues in 3-node single-link circular topology
+| | Given Add worker threads and rxqueues to all DUTs | ${phy_cores} | ${rxq}
| | And Add PCI devices to all DUTs
| | ${get_framesize}= | Get Frame Size | ${framesize}
| | And Run Keyword If | ${get_framesize} < ${1522} | Add no multi seg to all DUTs
@@ -102,73 +106,25 @@
*** Test Cases ***
| tc01-64B-1t1c-ethip4udp-ip4base-oacl10-stateless-flows100k-ndrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 routing config with ACL with\
-| | ... | 1 phy core, 1 receive queue per NIC port.
-| | ... | [Ver] Find NDR for 64 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 50kpps.
-| | ...
| | [Tags] | 64B | 1C | NDRDISC
-| | ...
-| | [Template] | Discover NDR or PDR for IPv4 routing with ACLs
-| | wt=1 | rxq=1 | framesize=${64} | min_rate=${50000} | search_type=NDR
+| | phy_cores=${1} | framesize=${64} | search_type=NDR
| tc02-64B-1t1c-ethip4udp-ip4base-oacl10-stateless-flows100k-pdrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 routing config with ACL with\
-| | ... | 1 phy core, 1 receive queue per NIC port.
-| | ... | [Ver] Find PDR for 64 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 50kpps, LT=0.5%.
-| | ...
| | [Tags] | 64B | 1C | PDRDISC | SKIP_PATCH
-| | ...
-| | [Template] | Discover NDR or PDR for IPv4 routing with ACLs
-| | wt=1 | rxq=1 | framesize=${64} | min_rate=${50000} | search_type=PDR
+| | phy_cores=${1} | framesize=${64} | search_type=PDR
| tc03-64B-2t2c-ethip4udp-ip4base-oacl10-stateless-flows100k-ndrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 routing config with ACL with\
-| | ... | 2 phy cores, 1 receive queue per NIC port.
-| | ... | [Ver] Find NDR for 64 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 50kpps.
-| | ...
| | [Tags] | 64B | 2C | NDRDISC
-| | ...
-| | [Template] | Discover NDR or PDR for IPv4 routing with ACLs
-| | wt=2 | rxq=1 | framesize=${64} | min_rate=${50000} | search_type=NDR
+| | phy_cores=${2} | framesize=${64} | search_type=NDR
| tc04-64B-2t2c-ethip4udp-ip4base-oacl10-stateless-flows100k-pdrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 routing config with ACL with\
-| | ... | 2 phy cores, 1 receive queue per NIC port.
-| | ... | [Ver] Find PDR for 64 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 50kpps, LT=0.5%.
-| | ...
| | [Tags] | 64B | 2C | PDRDISC | SKIP_PATCH
-| | ...
-| | [Template] | Discover NDR or PDR for IPv4 routing with ACLs
-| | wt=2 | rxq=1 | framesize=${64} | min_rate=${50000} | search_type=PDR
+| | phy_cores=${2} | framesize=${64} | search_type=PDR
| tc05-64B-4t4c-ethip4udp-ip4base-oacl10-stateless-flows100k-ndrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 routing config with ACL with\
-| | ... | 4 phy cores, 2 receive queues per NIC port.
-| | ... | [Ver] Find NDR for 64 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 50kpps.
-| | ...
| | [Tags] | 64B | 4C | NDRDISC
-| | ...
-| | [Template] | Discover NDR or PDR for IPv4 routing with ACLs
-| | wt=4 | rxq=2 | framesize=${64} | min_rate=${50000} | search_type=NDR
+| | phy_cores=${4} | framesize=${64} | search_type=NDR
| tc06-64B-4t4c-ethip4udp-ip4base-oacl10-stateless-flows100k-pdrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 routing config with ACL with\
-| | ... | 4 phy cores, 2 receive queues per NIC port.
-| | ... | [Ver] Find PDR for 64 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 50kpps, LT=0.5%.
-| | ...
| | [Tags] | 64B | 4C | PDRDISC | SKIP_PATCH
-| | ...
-| | [Template] | Discover NDR or PDR for IPv4 routing with ACLs
-| | wt=4 | rxq=2 | framesize=${64} | min_rate=${50000} | search_type=PDR
+| | phy_cores=${4} | framesize=${64} | search_type=PDR
diff --git a/tests/vpp/perf/ip4/10ge2p1x520-ethip4udp-ip4base-oacl10sl-10kflows-ndrpdrdisc.robot b/tests/vpp/perf/ip4/10ge2p1x520-ethip4udp-ip4base-oacl10sl-10kflows-ndrpdrdisc.robot
index 1db38bf01a..cca06bc1ab 100644
--- a/tests/vpp/perf/ip4/10ge2p1x520-ethip4udp-ip4base-oacl10sl-10kflows-ndrpdrdisc.robot
+++ b/tests/vpp/perf/ip4/10ge2p1x520-ethip4udp-ip4base-oacl10sl-10kflows-ndrpdrdisc.robot
@@ -29,6 +29,8 @@
| Test Teardown | Tear down performance test with ACL
| ... | ${min_rate}pps | ${framesize} | ${traffic_profile}
| ...
+| Test Template | Local template
+| ...
| Documentation | *RFC2544: Packet throughput IPv4 test cases with ACL*
| ...
| ... | *[Top] Network Topologies:* TG-DUT1-DUT2-TG 3-node circular topology\
@@ -73,15 +75,17 @@
| ${trex_stream2_subnet}= | 20.20.20.0/24
*** Keywords ***
-| Discover NDR or PDR for IPv4 routing with ACLs
-| | [Arguments] | ${wt} | ${rxq} | ${framesize} | ${min_rate} | ${search_type}
+| Local template
+| | [Arguments] | ${phy_cores} | ${framesize} | ${search_type}
+| | ... | ${rxq}=${None} | ${min_rate}=${50000}
+| | ...
| | Set Test Variable | ${framesize}
| | Set Test Variable | ${min_rate}
| | ${max_rate}= | Calculate pps | ${s_limit} | ${framesize}
| | ${binary_min}= | Set Variable | ${min_rate}
| | ${binary_max}= | Set Variable | ${max_rate}
| | ${threshold}= | Set Variable | ${min_rate}
-| | Given Add '${wt}' worker threads and '${rxq}' rxqueues in 3-node single-link circular topology
+| | Given Add worker threads and rxqueues to all DUTs | ${phy_cores} | ${rxq}
| | And Add PCI devices to all DUTs
| | ${get_framesize}= | Get Frame Size | ${framesize}
| | And Run Keyword If | ${get_framesize} < ${1522} | Add no multi seg to all DUTs
@@ -102,73 +106,25 @@
*** Test Cases ***
| tc01-64B-1t1c-ethip4udp-ip4base-oacl10-stateless-flows10k-ndrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 routing config with ACL with\
-| | ... | 1 phy core, 1 receive queue per NIC port.
-| | ... | [Ver] Find NDR for 64 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 50kpps.
-| | ...
| | [Tags] | 64B | 1C | NDRDISC
-| | ...
-| | [Template] | Discover NDR or PDR for IPv4 routing with ACLs
-| | wt=1 | rxq=1 | framesize=${64} | min_rate=${50000} | search_type=NDR
+| | phy_cores=${1} | framesize=${64} | search_type=NDR
| tc02-64B-1t1c-ethip4udp-ip4base-oacl10-stateless-flows10k-pdrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 routing config with ACL with\
-| | ... | 1 phy core, 1 receive queue per NIC port.
-| | ... | [Ver] Find PDR for 64 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 50kpps, LT=0.5%.
-| | ...
| | [Tags] | 64B | 1C | PDRDISC | SKIP_PATCH
-| | ...
-| | [Template] | Discover NDR or PDR for IPv4 routing with ACLs
-| | wt=1 | rxq=1 | framesize=${64} | min_rate=${50000} | search_type=PDR
+| | phy_cores=${1} | framesize=${64} | search_type=PDR
| tc03-64B-2t2c-ethip4udp-ip4base-oacl10-stateless-flows10k-ndrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 routing config with ACL with\
-| | ... | 2 phy cores, 1 receive queue per NIC port.
-| | ... | [Ver] Find NDR for 64 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 50kpps.
-| | ...
| | [Tags] | 64B | 2C | NDRDISC
-| | ...
-| | [Template] | Discover NDR or PDR for IPv4 routing with ACLs
-| | wt=2 | rxq=1 | framesize=${64} | min_rate=${50000} | search_type=NDR
+| | phy_cores=${2} | framesize=${64} | search_type=NDR
| tc04-64B-2t2c-ethip4udp-ip4base-oacl10-stateless-flows10k-pdrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 routing config with ACL with\
-| | ... | 2 phy cores, 1 receive queue per NIC port.
-| | ... | [Ver] Find PDR for 64 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 50kpps, LT=0.5%.
-| | ...
| | [Tags] | 64B | 2C | PDRDISC | SKIP_PATCH
-| | ...
-| | [Template] | Discover NDR or PDR for IPv4 routing with ACLs
-| | wt=2 | rxq=1 | framesize=${64} | min_rate=${50000} | search_type=PDR
+| | phy_cores=${2} | framesize=${64} | search_type=PDR
| tc05-64B-4t4c-ethip4udp-ip4base-oacl10-stateless-flows10k-ndrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 routing config with ACL with\
-| | ... | 4 phy cores, 2 receive queues per NIC port.
-| | ... | [Ver] Find NDR for 64 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 50kpps.
-| | ...
| | [Tags] | 64B | 4C | NDRDISC
-| | ...
-| | [Template] | Discover NDR or PDR for IPv4 routing with ACLs
-| | wt=4 | rxq=2 | framesize=${64} | min_rate=${50000} | search_type=NDR
+| | phy_cores=${4} | framesize=${64} | search_type=NDR
| tc06-64B-4t4c-ethip4udp-ip4base-oacl10-stateless-flows10k-pdrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 routing config with ACL with\
-| | ... | 4 phy cores, 2 receive queues per NIC port.
-| | ... | [Ver] Find PDR for 64 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 50kpps, LT=0.5%.
-| | ...
| | [Tags] | 64B | 4C | PDRDISC | SKIP_PATCH
-| | ...
-| | [Template] | Discover NDR or PDR for IPv4 routing with ACLs
-| | wt=4 | rxq=2 | framesize=${64} | min_rate=${50000} | search_type=PDR
+| | phy_cores=${4} | framesize=${64} | search_type=PDR
diff --git a/tests/vpp/perf/ip4/10ge2p1x520-ethip4udp-ip4base-oacl1sf-100flows-ndrpdrdisc.robot b/tests/vpp/perf/ip4/10ge2p1x520-ethip4udp-ip4base-oacl1sf-100flows-ndrpdrdisc.robot
index 3c0be4f08f..3bb25e1546 100644
--- a/tests/vpp/perf/ip4/10ge2p1x520-ethip4udp-ip4base-oacl1sf-100flows-ndrpdrdisc.robot
+++ b/tests/vpp/perf/ip4/10ge2p1x520-ethip4udp-ip4base-oacl1sf-100flows-ndrpdrdisc.robot
@@ -29,6 +29,8 @@
| Test Teardown | Tear down performance test with ACL
| ... | ${min_rate}pps | ${framesize} | ${traffic_profile}
| ...
+| Test Template | Local template
+| ...
| Documentation | *RFC2544: Packet throughput IPv4 test cases with ACL*
| ...
| ... | *[Top] Network Topologies:* TG-DUT1-DUT2-TG 3-node circular topology\
@@ -73,15 +75,17 @@
| ${trex_stream2_subnet}= | 20.20.20.0/24
*** Keywords ***
-| Discover NDR or PDR for IPv4 routing with ACLs
-| | [Arguments] | ${wt} | ${rxq} | ${framesize} | ${min_rate} | ${search_type}
+| Local template
+| | [Arguments] | ${phy_cores} | ${framesize} | ${search_type}
+| | ... | ${rxq}=${None} | ${min_rate}=${50000}
+| | ...
| | Set Test Variable | ${framesize}
| | Set Test Variable | ${min_rate}
| | ${max_rate}= | Calculate pps | ${s_limit} | ${framesize}
| | ${binary_min}= | Set Variable | ${min_rate}
| | ${binary_max}= | Set Variable | ${max_rate}
| | ${threshold}= | Set Variable | ${min_rate}
-| | Given Add '${wt}' worker threads and '${rxq}' rxqueues in 3-node single-link circular topology
+| | Given Add worker threads and rxqueues to all DUTs | ${phy_cores} | ${rxq}
| | And Add PCI devices to all DUTs
| | ${get_framesize}= | Get Frame Size | ${framesize}
| | And Run Keyword If | ${get_framesize} < ${1522} | Add no multi seg to all DUTs
@@ -102,73 +106,25 @@
*** Test Cases ***
| tc01-64B-1t1c-ethip4udp-ip4base-oacl1-stateful-flows100-ndrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 routing config with ACL with\
-| | ... | 1 phy core, 1 receive queue per NIC port.
-| | ... | [Ver] Find NDR for 64 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 50kpps.
-| | ...
| | [Tags] | 64B | 1C | NDRDISC
-| | ...
-| | [Template] | Discover NDR or PDR for IPv4 routing with ACLs
-| | wt=1 | rxq=1 | framesize=${64} | min_rate=${50000} | search_type=NDR
+| | phy_cores=${1} | framesize=${64} | search_type=NDR
| tc02-64B-1t1c-ethip4udp-ip4base-oacl1-stateful-flows100-pdrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 routing config with ACL with\
-| | ... | 1 phy core, 1 receive queue per NIC port.
-| | ... | [Ver] Find PDR for 64 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 50kpps, LT=0.5%.
-| | ...
| | [Tags] | 64B | 1C | PDRDISC | SKIP_PATCH
-| | ...
-| | [Template] | Discover NDR or PDR for IPv4 routing with ACLs
-| | wt=1 | rxq=1 | framesize=${64} | min_rate=${50000} | search_type=PDR
+| | phy_cores=${1} | framesize=${64} | search_type=PDR
| tc03-64B-2t2c-ethip4udp-ip4base-oacl1-stateful-flows100-ndrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 routing config with ACL with\
-| | ... | 2 phy cores, 1 receive queue per NIC port.
-| | ... | [Ver] Find NDR for 64 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 50kpps.
-| | ...
| | [Tags] | 64B | 2C | NDRDISC
-| | ...
-| | [Template] | Discover NDR or PDR for IPv4 routing with ACLs
-| | wt=2 | rxq=1 | framesize=${64} | min_rate=${50000} | search_type=NDR
+| | phy_cores=${2} | framesize=${64} | search_type=NDR
| tc04-64B-2t2c-ethip4udp-ip4base-oacl1-stateful-flows100-pdrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 routing config with ACL with\
-| | ... | 2 phy cores, 1 receive queue per NIC port.
-| | ... | [Ver] Find PDR for 64 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 50kpps, LT=0.5%.
-| | ...
| | [Tags] | 64B | 2C | PDRDISC | SKIP_PATCH
-| | ...
-| | [Template] | Discover NDR or PDR for IPv4 routing with ACLs
-| | wt=2 | rxq=1 | framesize=${64} | min_rate=${50000} | search_type=PDR
+| | phy_cores=${2} | framesize=${64} | search_type=PDR
| tc05-64B-4t4c-ethip4udp-ip4base-oacl1-stateful-flows100-ndrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 routing config with ACL with\
-| | ... | 4 phy cores, 2 receive queues per NIC port.
-| | ... | [Ver] Find NDR for 64 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 50kpps.
-| | ...
| | [Tags] | 64B | 4C | NDRDISC
-| | ...
-| | [Template] | Discover NDR or PDR for IPv4 routing with ACLs
-| | wt=4 | rxq=2 | framesize=${64} | min_rate=${50000} | search_type=NDR
+| | phy_cores=${4} | framesize=${64} | search_type=NDR
| tc06-64B-4t4c-ethip4udp-ip4base-oacl1-stateful-flows100-pdrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 routing config with ACL with\
-| | ... | 4 phy cores, 2 receive queues per NIC port.
-| | ... | [Ver] Find PDR for 64 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 50kpps, LT=0.5%.
-| | ...
| | [Tags] | 64B | 4C | PDRDISC | SKIP_PATCH
-| | ...
-| | [Template] | Discover NDR or PDR for IPv4 routing with ACLs
-| | wt=4 | rxq=2 | framesize=${64} | min_rate=${50000} | search_type=PDR
+| | phy_cores=${4} | framesize=${64} | search_type=PDR
diff --git a/tests/vpp/perf/ip4/10ge2p1x520-ethip4udp-ip4base-oacl1sf-100kflows-ndrpdrdisc.robot b/tests/vpp/perf/ip4/10ge2p1x520-ethip4udp-ip4base-oacl1sf-100kflows-ndrpdrdisc.robot
index 2f746e258d..cda66cc035 100644
--- a/tests/vpp/perf/ip4/10ge2p1x520-ethip4udp-ip4base-oacl1sf-100kflows-ndrpdrdisc.robot
+++ b/tests/vpp/perf/ip4/10ge2p1x520-ethip4udp-ip4base-oacl1sf-100kflows-ndrpdrdisc.robot
@@ -29,6 +29,8 @@
| Test Teardown | Tear down performance test with ACL
| ... | ${min_rate}pps | ${framesize} | ${traffic_profile}
| ...
+| Test Template | Local template
+| ...
| Documentation | *RFC2544: Packet throughput IPv4 test cases with ACL*
| ...
| ... | *[Top] Network Topologies:* TG-DUT1-DUT2-TG 3-node circular topology\
@@ -73,15 +75,17 @@
| ${trex_stream2_subnet}= | 20.20.20.0/24
*** Keywords ***
-| Discover NDR or PDR for IPv4 routing with ACLs
-| | [Arguments] | ${wt} | ${rxq} | ${framesize} | ${min_rate} | ${search_type}
+| Local template
+| | [Arguments] | ${phy_cores} | ${framesize} | ${search_type}
+| | ... | ${rxq}=${None} | ${min_rate}=${50000}
+| | ...
| | Set Test Variable | ${framesize}
| | Set Test Variable | ${min_rate}
| | ${max_rate}= | Calculate pps | ${s_limit} | ${framesize}
| | ${binary_min}= | Set Variable | ${min_rate}
| | ${binary_max}= | Set Variable | ${max_rate}
| | ${threshold}= | Set Variable | ${min_rate}
-| | Given Add '${wt}' worker threads and '${rxq}' rxqueues in 3-node single-link circular topology
+| | Given Add worker threads and rxqueues to all DUTs | ${phy_cores} | ${rxq}
| | And Add PCI devices to all DUTs
| | ${get_framesize}= | Get Frame Size | ${framesize}
| | And Run Keyword If | ${get_framesize} < ${1522} | Add no multi seg to all DUTs
@@ -102,73 +106,25 @@
*** Test Cases ***
| tc01-64B-1t1c-ethip4udp-ip4base-oacl1-stateful-flows100k-ndrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 routing config with ACL with\
-| | ... | 1 phy core, 1 receive queue per NIC port.
-| | ... | [Ver] Find NDR for 64 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 50kpps.
-| | ...
| | [Tags] | 64B | 1C | NDRDISC
-| | ...
-| | [Template] | Discover NDR or PDR for IPv4 routing with ACLs
-| | wt=1 | rxq=1 | framesize=${64} | min_rate=${50000} | search_type=NDR
+| | phy_cores=${1} | framesize=${64} | search_type=NDR
| tc02-64B-1t1c-ethip4udp-ip4base-oacl1-stateful-flows100k-pdrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 routing config with ACL with\
-| | ... | 1 phy core, 1 receive queue per NIC port.
-| | ... | [Ver] Find PDR for 64 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 50kpps, LT=0.5%.
-| | ...
| | [Tags] | 64B | 1C | PDRDISC | SKIP_PATCH
-| | ...
-| | [Template] | Discover NDR or PDR for IPv4 routing with ACLs
-| | wt=1 | rxq=1 | framesize=${64} | min_rate=${50000} | search_type=PDR
+| | phy_cores=${1} | framesize=${64} | search_type=PDR
| tc03-64B-2t2c-ethip4udp-ip4base-oacl1-stateful-flows100k-ndrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 routing config with ACL with\
-| | ... | 2 phy cores, 1 receive queue per NIC port.
-| | ... | [Ver] Find NDR for 64 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 50kpps.
-| | ...
| | [Tags] | 64B | 2C | NDRDISC
-| | ...
-| | [Template] | Discover NDR or PDR for IPv4 routing with ACLs
-| | wt=2 | rxq=1 | framesize=${64} | min_rate=${50000} | search_type=NDR
+| | phy_cores=${2} | framesize=${64} | search_type=NDR
| tc04-64B-2t2c-ethip4udp-ip4base-oacl1-stateful-flows100k-pdrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 routing config with ACL with\
-| | ... | 2 phy cores, 1 receive queue per NIC port.
-| | ... | [Ver] Find PDR for 64 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 50kpps, LT=0.5%.
-| | ...
| | [Tags] | 64B | 2C | PDRDISC | SKIP_PATCH
-| | ...
-| | [Template] | Discover NDR or PDR for IPv4 routing with ACLs
-| | wt=2 | rxq=1 | framesize=${64} | min_rate=${50000} | search_type=PDR
+| | phy_cores=${2} | framesize=${64} | search_type=PDR
| tc05-64B-4t4c-ethip4udp-ip4base-oacl1-stateful-flows100k-ndrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 routing config with ACL with\
-| | ... | 4 phy cores, 2 receive queues per NIC port.
-| | ... | [Ver] Find NDR for 64 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 50kpps.
-| | ...
| | [Tags] | 64B | 4C | NDRDISC
-| | ...
-| | [Template] | Discover NDR or PDR for IPv4 routing with ACLs
-| | wt=4 | rxq=2 | framesize=${64} | min_rate=${50000} | search_type=NDR
+| | phy_cores=${4} | framesize=${64} | search_type=NDR
| tc06-64B-4t4c-ethip4udp-ip4base-oacl1-stateful-flows100k-pdrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 routing config with ACL with\
-| | ... | 4 phy cores, 2 receive queues per NIC port.
-| | ... | [Ver] Find PDR for 64 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 50kpps, LT=0.5%.
-| | ...
| | [Tags] | 64B | 4C | PDRDISC | SKIP_PATCH
-| | ...
-| | [Template] | Discover NDR or PDR for IPv4 routing with ACLs
-| | wt=4 | rxq=2 | framesize=${64} | min_rate=${50000} | search_type=PDR
+| | phy_cores=${4} | framesize=${64} | search_type=PDR
diff --git a/tests/vpp/perf/ip4/10ge2p1x520-ethip4udp-ip4base-oacl1sf-10kflows-ndrpdrdisc.robot b/tests/vpp/perf/ip4/10ge2p1x520-ethip4udp-ip4base-oacl1sf-10kflows-ndrpdrdisc.robot
index 195ac35546..685f188da8 100644
--- a/tests/vpp/perf/ip4/10ge2p1x520-ethip4udp-ip4base-oacl1sf-10kflows-ndrpdrdisc.robot
+++ b/tests/vpp/perf/ip4/10ge2p1x520-ethip4udp-ip4base-oacl1sf-10kflows-ndrpdrdisc.robot
@@ -29,6 +29,8 @@
| Test Teardown | Tear down performance test with ACL
| ... | ${min_rate}pps | ${framesize} | ${traffic_profile}
| ...
+| Test Template | Local template
+| ...
| Documentation | *RFC2544: Packet throughput IPv4 test cases with ACL*
| ...
| ... | *[Top] Network Topologies:* TG-DUT1-DUT2-TG 3-node circular topology\
@@ -73,15 +75,17 @@
| ${trex_stream2_subnet}= | 20.20.20.0/24
*** Keywords ***
-| Discover NDR or PDR for IPv4 routing with ACLs
-| | [Arguments] | ${wt} | ${rxq} | ${framesize} | ${min_rate} | ${search_type}
+| Local template
+| | [Arguments] | ${phy_cores} | ${framesize} | ${search_type}
+| | ... | ${rxq}=${None} | ${min_rate}=${50000}
+| | ...
| | Set Test Variable | ${framesize}
| | Set Test Variable | ${min_rate}
| | ${max_rate}= | Calculate pps | ${s_limit} | ${framesize}
| | ${binary_min}= | Set Variable | ${min_rate}
| | ${binary_max}= | Set Variable | ${max_rate}
| | ${threshold}= | Set Variable | ${min_rate}
-| | Given Add '${wt}' worker threads and '${rxq}' rxqueues in 3-node single-link circular topology
+| | Given Add worker threads and rxqueues to all DUTs | ${phy_cores} | ${rxq}
| | And Add PCI devices to all DUTs
| | ${get_framesize}= | Get Frame Size | ${framesize}
| | And Run Keyword If | ${get_framesize} < ${1522} | Add no multi seg to all DUTs
@@ -102,73 +106,25 @@
*** Test Cases ***
| tc01-64B-1t1c-ethip4udp-ip4base-oacl1-stateful-flows10k-ndrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 routing config with ACL with\
-| | ... | 1 phy core, 1 receive queue per NIC port.
-| | ... | [Ver] Find NDR for 64 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 50kpps.
-| | ...
| | [Tags] | 64B | 1C | NDRDISC
-| | ...
-| | [Template] | Discover NDR or PDR for IPv4 routing with ACLs
-| | wt=1 | rxq=1 | framesize=${64} | min_rate=${50000} | search_type=NDR
+| | phy_cores=${1} | framesize=${64} | search_type=NDR
| tc02-64B-1t1c-ethip4udp-ip4base-oacl1-stateful-flows10k-pdrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 routing config with ACL with\
-| | ... | 1 phy core, 1 receive queue per NIC port.
-| | ... | [Ver] Find PDR for 64 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 50kpps, LT=0.5%.
-| | ...
| | [Tags] | 64B | 1C | PDRDISC | SKIP_PATCH
-| | ...
-| | [Template] | Discover NDR or PDR for IPv4 routing with ACLs
-| | wt=1 | rxq=1 | framesize=${64} | min_rate=${50000} | search_type=PDR
+| | phy_cores=${1} | framesize=${64} | search_type=PDR
| tc03-64B-2t2c-ethip4udp-ip4base-oacl1-stateful-flows10k-ndrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 routing config with ACL with\
-| | ... | 2 phy cores, 1 receive queue per NIC port.
-| | ... | [Ver] Find NDR for 64 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 50kpps.
-| | ...
| | [Tags] | 64B | 2C | NDRDISC
-| | ...
-| | [Template] | Discover NDR or PDR for IPv4 routing with ACLs
-| | wt=2 | rxq=1 | framesize=${64} | min_rate=${50000} | search_type=NDR
+| | phy_cores=${2} | framesize=${64} | search_type=NDR
| tc04-64B-2t2c-ethip4udp-ip4base-oacl1-stateful-flows10k-pdrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 routing config with ACL with\
-| | ... | 2 phy cores, 1 receive queue per NIC port.
-| | ... | [Ver] Find PDR for 64 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 50kpps, LT=0.5%.
-| | ...
| | [Tags] | 64B | 2C | PDRDISC | SKIP_PATCH
-| | ...
-| | [Template] | Discover NDR or PDR for IPv4 routing with ACLs
-| | wt=2 | rxq=1 | framesize=${64} | min_rate=${50000} | search_type=PDR
+| | phy_cores=${2} | framesize=${64} | search_type=PDR
| tc05-64B-4t4c-ethip4udp-ip4base-oacl1-stateful-flows10k-ndrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 routing config with ACL with\
-| | ... | 4 phy cores, 2 receive queues per NIC port.
-| | ... | [Ver] Find NDR for 64 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 50kpps.
-| | ...
| | [Tags] | 64B | 4C | NDRDISC
-| | ...
-| | [Template] | Discover NDR or PDR for IPv4 routing with ACLs
-| | wt=4 | rxq=2 | framesize=${64} | min_rate=${50000} | search_type=NDR
+| | phy_cores=${4} | framesize=${64} | search_type=NDR
| tc06-64B-4t4c-ethip4udp-ip4base-oacl1-stateful-flows10k-pdrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 routing config with ACL with\
-| | ... | 4 phy cores, 2 receive queues per NIC port.
-| | ... | [Ver] Find PDR for 64 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 50kpps, LT=0.5%.
-| | ...
| | [Tags] | 64B | 4C | PDRDISC | SKIP_PATCH
-| | ...
-| | [Template] | Discover NDR or PDR for IPv4 routing with ACLs
-| | wt=4 | rxq=2 | framesize=${64} | min_rate=${50000} | search_type=PDR
+| | phy_cores=${4} | framesize=${64} | search_type=PDR
diff --git a/tests/vpp/perf/ip4/10ge2p1x520-ethip4udp-ip4base-oacl1sl-100flows-ndrpdrdisc.robot b/tests/vpp/perf/ip4/10ge2p1x520-ethip4udp-ip4base-oacl1sl-100flows-ndrpdrdisc.robot
index ddf6baedc2..e6b67c7ab7 100644
--- a/tests/vpp/perf/ip4/10ge2p1x520-ethip4udp-ip4base-oacl1sl-100flows-ndrpdrdisc.robot
+++ b/tests/vpp/perf/ip4/10ge2p1x520-ethip4udp-ip4base-oacl1sl-100flows-ndrpdrdisc.robot
@@ -29,6 +29,8 @@
| Test Teardown | Tear down performance test with ACL
| ... | ${min_rate}pps | ${framesize} | ${traffic_profile}
| ...
+| Test Template | Local template
+| ...
| Documentation | *RFC2544: Packet throughput IPv4 test cases with ACL*
| ...
| ... | *[Top] Network Topologies:* TG-DUT1-DUT2-TG 3-node circular topology\
@@ -73,15 +75,17 @@
| ${trex_stream2_subnet}= | 20.20.20.0/24
*** Keywords ***
-| Discover NDR or PDR for IPv4 routing with ACLs
-| | [Arguments] | ${wt} | ${rxq} | ${framesize} | ${min_rate} | ${search_type}
+| Local template
+| | [Arguments] | ${phy_cores} | ${framesize} | ${search_type}
+| | ... | ${rxq}=${None} | ${min_rate}=${50000}
+| | ...
| | Set Test Variable | ${framesize}
| | Set Test Variable | ${min_rate}
| | ${max_rate}= | Calculate pps | ${s_limit} | ${framesize}
| | ${binary_min}= | Set Variable | ${min_rate}
| | ${binary_max}= | Set Variable | ${max_rate}
| | ${threshold}= | Set Variable | ${min_rate}
-| | Given Add '${wt}' worker threads and '${rxq}' rxqueues in 3-node single-link circular topology
+| | Given Add worker threads and rxqueues to all DUTs | ${phy_cores} | ${rxq}
| | And Add PCI devices to all DUTs
| | ${get_framesize}= | Get Frame Size | ${framesize}
| | And Run Keyword If | ${get_framesize} < ${1522} | Add no multi seg to all DUTs
@@ -102,73 +106,25 @@
*** Test Cases ***
| tc01-64B-1t1c-ethip4udp-ip4base-oacl1-stateless-flows100-ndrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 routing config with ACL with\
-| | ... | 1 phy core, 1 receive queue per NIC port.
-| | ... | [Ver] Find NDR for 64 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 50kpps.
-| | ...
| | [Tags] | 64B | 1C | NDRDISC
-| | ...
-| | [Template] | Discover NDR or PDR for IPv4 routing with ACLs
-| | wt=1 | rxq=1 | framesize=${64} | min_rate=${50000} | search_type=NDR
+| | phy_cores=${1} | framesize=${64} | search_type=NDR
| tc02-64B-1t1c-ethip4udp-ip4base-oacl1-stateless-flows100-pdrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 routing config with ACL with\
-| | ... | 1 phy core, 1 receive queue per NIC port.
-| | ... | [Ver] Find PDR for 64 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 50kpps, LT=0.5%.
-| | ...
| | [Tags] | 64B | 1C | PDRDISC | SKIP_PATCH
-| | ...
-| | [Template] | Discover NDR or PDR for IPv4 routing with ACLs
-| | wt=1 | rxq=1 | framesize=${64} | min_rate=${50000} | search_type=PDR
+| | phy_cores=${1} | framesize=${64} | search_type=PDR
| tc03-64B-2t2c-ethip4udp-ip4base-oacl1-stateless-flows100-ndrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 routing config with ACL with\
-| | ... | 2 phy cores, 1 receive queue per NIC port.
-| | ... | [Ver] Find NDR for 64 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 50kpps.
-| | ...
| | [Tags] | 64B | 2C | NDRDISC
-| | ...
-| | [Template] | Discover NDR or PDR for IPv4 routing with ACLs
-| | wt=2 | rxq=1 | framesize=${64} | min_rate=${50000} | search_type=NDR
+| | phy_cores=${2} | framesize=${64} | search_type=NDR
| tc04-64B-2t2c-ethip4udp-ip4base-oacl1-stateless-flows100-pdrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 routing config with ACL with\
-| | ... | 2 phy cores, 1 receive queue per NIC port.
-| | ... | [Ver] Find PDR for 64 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 50kpps, LT=0.5%.
-| | ...
| | [Tags] | 64B | 2C | PDRDISC | SKIP_PATCH
-| | ...
-| | [Template] | Discover NDR or PDR for IPv4 routing with ACLs
-| | wt=2 | rxq=1 | framesize=${64} | min_rate=${50000} | search_type=PDR
+| | phy_cores=${2} | framesize=${64} | search_type=PDR
| tc05-64B-4t4c-ethip4udp-ip4base-oacl1-stateless-flows100-ndrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 routing config with ACL with\
-| | ... | 4 phy cores, 2 receive queues per NIC port.
-| | ... | [Ver] Find NDR for 64 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 50kpps.
-| | ...
| | [Tags] | 64B | 4C | NDRDISC
-| | ...
-| | [Template] | Discover NDR or PDR for IPv4 routing with ACLs
-| | wt=4 | rxq=2 | framesize=${64} | min_rate=${50000} | search_type=NDR
+| | phy_cores=${4} | framesize=${64} | search_type=NDR
| tc06-64B-4t4c-ethip4udp-ip4base-oacl1-stateless-flows100-pdrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 routing config with ACL with\
-| | ... | 4 phy cores, 2 receive queues per NIC port.
-| | ... | [Ver] Find PDR for 64 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 50kpps, LT=0.5%.
-| | ...
| | [Tags] | 64B | 4C | PDRDISC | SKIP_PATCH
-| | ...
-| | [Template] | Discover NDR or PDR for IPv4 routing with ACLs
-| | wt=4 | rxq=2 | framesize=${64} | min_rate=${50000} | search_type=PDR
+| | phy_cores=${4} | framesize=${64} | search_type=PDR
diff --git a/tests/vpp/perf/ip4/10ge2p1x520-ethip4udp-ip4base-oacl1sl-100kflows-ndrpdrdisc.robot b/tests/vpp/perf/ip4/10ge2p1x520-ethip4udp-ip4base-oacl1sl-100kflows-ndrpdrdisc.robot
index b13aee5b00..19bca2c4b9 100644
--- a/tests/vpp/perf/ip4/10ge2p1x520-ethip4udp-ip4base-oacl1sl-100kflows-ndrpdrdisc.robot
+++ b/tests/vpp/perf/ip4/10ge2p1x520-ethip4udp-ip4base-oacl1sl-100kflows-ndrpdrdisc.robot
@@ -29,6 +29,8 @@
| Test Teardown | Tear down performance test with ACL
| ... | ${min_rate}pps | ${framesize} | ${traffic_profile}
| ...
+| Test Template | Local template
+| ...
| Documentation | *RFC2544: Packet throughput IPv4 test cases with ACL*
| ...
| ... | *[Top] Network Topologies:* TG-DUT1-DUT2-TG 3-node circular topology\
@@ -73,15 +75,17 @@
| ${trex_stream2_subnet}= | 20.20.20.0/24
*** Keywords ***
-| Discover NDR or PDR for IPv4 routing with ACLs
-| | [Arguments] | ${wt} | ${rxq} | ${framesize} | ${min_rate} | ${search_type}
+| Local template
+| | [Arguments] | ${phy_cores} | ${framesize} | ${search_type}
+| | ... | ${rxq}=${None} | ${min_rate}=${50000}
+| | ...
| | Set Test Variable | ${framesize}
| | Set Test Variable | ${min_rate}
| | ${max_rate}= | Calculate pps | ${s_limit} | ${framesize}
| | ${binary_min}= | Set Variable | ${min_rate}
| | ${binary_max}= | Set Variable | ${max_rate}
| | ${threshold}= | Set Variable | ${min_rate}
-| | Given Add '${wt}' worker threads and '${rxq}' rxqueues in 3-node single-link circular topology
+| | Given Add worker threads and rxqueues to all DUTs | ${phy_cores} | ${rxq}
| | And Add PCI devices to all DUTs
| | ${get_framesize}= | Get Frame Size | ${framesize}
| | And Run Keyword If | ${get_framesize} < ${1522} | Add no multi seg to all DUTs
@@ -102,73 +106,25 @@
*** Test Cases ***
| tc01-64B-1t1c-ethip4udp-ip4base-oacl1-stateless-flows100k-ndrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 routing config with ACL with\
-| | ... | 1 phy core, 1 receive queue per NIC port.
-| | ... | [Ver] Find NDR for 64 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 50kpps.
-| | ...
| | [Tags] | 64B | 1C | NDRDISC
-| | ...
-| | [Template] | Discover NDR or PDR for IPv4 routing with ACLs
-| | wt=1 | rxq=1 | framesize=${64} | min_rate=${50000} | search_type=NDR
+| | phy_cores=${1} | framesize=${64} | search_type=NDR
| tc02-64B-1t1c-ethip4udp-ip4base-oacl1-stateless-flows100k-pdrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 routing config with ACL with\
-| | ... | 1 phy core, 1 receive queue per NIC port.
-| | ... | [Ver] Find PDR for 64 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 50kpps, LT=0.5%.
-| | ...
| | [Tags] | 64B | 1C | PDRDISC | SKIP_PATCH
-| | ...
-| | [Template] | Discover NDR or PDR for IPv4 routing with ACLs
-| | wt=1 | rxq=1 | framesize=${64} | min_rate=${50000} | search_type=PDR
+| | phy_cores=${1} | framesize=${64} | search_type=PDR
| tc03-64B-2t2c-ethip4udp-ip4base-oacl1-stateless-flows100k-ndrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 routing config with ACL with\
-| | ... | 2 phy cores, 1 receive queue per NIC port.
-| | ... | [Ver] Find NDR for 64 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 50kpps.
-| | ...
| | [Tags] | 64B | 2C | NDRDISC
-| | ...
-| | [Template] | Discover NDR or PDR for IPv4 routing with ACLs
-| | wt=2 | rxq=1 | framesize=${64} | min_rate=${50000} | search_type=NDR
+| | phy_cores=${2} | framesize=${64} | search_type=NDR
| tc04-64B-2t2c-ethip4udp-ip4base-oacl1-stateless-flows100k-pdrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 routing config with ACL with\
-| | ... | 2 phy cores, 1 receive queue per NIC port.
-| | ... | [Ver] Find PDR for 64 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 50kpps, LT=0.5%.
-| | ...
| | [Tags] | 64B | 2C | PDRDISC | SKIP_PATCH
-| | ...
-| | [Template] | Discover NDR or PDR for IPv4 routing with ACLs
-| | wt=2 | rxq=1 | framesize=${64} | min_rate=${50000} | search_type=PDR
+| | phy_cores=${2} | framesize=${64} | search_type=PDR
| tc05-64B-4t4c-ethip4udp-ip4base-oacl1-stateless-flows100k-ndrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 routing config with ACL with\
-| | ... | 4 phy cores, 2 receive queues per NIC port.
-| | ... | [Ver] Find NDR for 64 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 50kpps.
-| | ...
| | [Tags] | 64B | 4C | NDRDISC
-| | ...
-| | [Template] | Discover NDR or PDR for IPv4 routing with ACLs
-| | wt=4 | rxq=2 | framesize=${64} | min_rate=${50000} | search_type=NDR
+| | phy_cores=${4} | framesize=${64} | search_type=NDR
| tc06-64B-4t4c-ethip4udp-ip4base-oacl1-stateless-flows100k-pdrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 routing config with ACL with\
-| | ... | 4 phy cores, 2 receive queues per NIC port.
-| | ... | [Ver] Find PDR for 64 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 50kpps, LT=0.5%.
-| | ...
| | [Tags] | 64B | 4C | PDRDISC | SKIP_PATCH
-| | ...
-| | [Template] | Discover NDR or PDR for IPv4 routing with ACLs
-| | wt=4 | rxq=2 | framesize=${64} | min_rate=${50000} | search_type=PDR
+| | phy_cores=${4} | framesize=${64} | search_type=PDR
diff --git a/tests/vpp/perf/ip4/10ge2p1x520-ethip4udp-ip4base-oacl1sl-10kflows-ndrpdrdisc.robot b/tests/vpp/perf/ip4/10ge2p1x520-ethip4udp-ip4base-oacl1sl-10kflows-ndrpdrdisc.robot
index 993e8e6a2d..321d2ef780 100644
--- a/tests/vpp/perf/ip4/10ge2p1x520-ethip4udp-ip4base-oacl1sl-10kflows-ndrpdrdisc.robot
+++ b/tests/vpp/perf/ip4/10ge2p1x520-ethip4udp-ip4base-oacl1sl-10kflows-ndrpdrdisc.robot
@@ -29,6 +29,8 @@
| Test Teardown | Tear down performance test with ACL
| ... | ${min_rate}pps | ${framesize} | ${traffic_profile}
| ...
+| Test Template | Local template
+| ...
| Documentation | *RFC2544: Packet throughput IPv4 test cases with ACL*
| ...
| ... | *[Top] Network Topologies:* TG-DUT1-DUT2-TG 3-node circular topology\
@@ -73,15 +75,17 @@
| ${trex_stream2_subnet}= | 20.20.20.0/24
*** Keywords ***
-| Discover NDR or PDR for IPv4 routing with ACLs
-| | [Arguments] | ${wt} | ${rxq} | ${framesize} | ${min_rate} | ${search_type}
+| Local template
+| | [Arguments] | ${phy_cores} | ${framesize} | ${search_type}
+| | ... | ${rxq}=${None} | ${min_rate}=${50000}
+| | ...
| | Set Test Variable | ${framesize}
| | Set Test Variable | ${min_rate}
| | ${max_rate}= | Calculate pps | ${s_limit} | ${framesize}
| | ${binary_min}= | Set Variable | ${min_rate}
| | ${binary_max}= | Set Variable | ${max_rate}
| | ${threshold}= | Set Variable | ${min_rate}
-| | Given Add '${wt}' worker threads and '${rxq}' rxqueues in 3-node single-link circular topology
+| | Given Add worker threads and rxqueues to all DUTs | ${phy_cores} | ${rxq}
| | And Add PCI devices to all DUTs
| | ${get_framesize}= | Get Frame Size | ${framesize}
| | And Run Keyword If | ${get_framesize} < ${1522} | Add no multi seg to all DUTs
@@ -102,73 +106,25 @@
*** Test Cases ***
| tc01-64B-1t1c-ethip4udp-ip4base-oacl1-stateless-flows10k-ndrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 routing config with ACL with\
-| | ... | 1 phy core, 1 receive queue per NIC port.
-| | ... | [Ver] Find NDR for 64 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 50kpps.
-| | ...
| | [Tags] | 64B | 1C | NDRDISC
-| | ...
-| | [Template] | Discover NDR or PDR for IPv4 routing with ACLs
-| | wt=1 | rxq=1 | framesize=${64} | min_rate=${50000} | search_type=NDR
+| | phy_cores=${1} | framesize=${64} | search_type=NDR
| tc02-64B-1t1c-ethip4udp-ip4base-oacl1-stateless-flows10k-pdrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 routing config with ACL with\
-| | ... | 1 phy core, 1 receive queue per NIC port.
-| | ... | [Ver] Find PDR for 64 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 50kpps, LT=0.5%.
-| | ...
| | [Tags] | 64B | 1C | PDRDISC | SKIP_PATCH
-| | ...
-| | [Template] | Discover NDR or PDR for IPv4 routing with ACLs
-| | wt=1 | rxq=1 | framesize=${64} | min_rate=${50000} | search_type=PDR
+| | phy_cores=${1} | framesize=${64} | search_type=PDR
| tc03-64B-2t2c-ethip4udp-ip4base-oacl1-stateless-flows10k-ndrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 routing config with ACL with\
-| | ... | 2 phy cores, 1 receive queue per NIC port.
-| | ... | [Ver] Find NDR for 64 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 50kpps.
-| | ...
| | [Tags] | 64B | 2C | NDRDISC
-| | ...
-| | [Template] | Discover NDR or PDR for IPv4 routing with ACLs
-| | wt=2 | rxq=1 | framesize=${64} | min_rate=${50000} | search_type=NDR
+| | phy_cores=${2} | framesize=${64} | search_type=NDR
| tc04-64B-2t2c-ethip4udp-ip4base-oacl1-stateless-flows10k-pdrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 routing config with ACL with\
-| | ... | 2 phy cores, 1 receive queue per NIC port.
-| | ... | [Ver] Find PDR for 64 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 50kpps, LT=0.5%.
-| | ...
| | [Tags] | 64B | 2C | PDRDISC | SKIP_PATCH
-| | ...
-| | [Template] | Discover NDR or PDR for IPv4 routing with ACLs
-| | wt=2 | rxq=1 | framesize=${64} | min_rate=${50000} | search_type=PDR
+| | phy_cores=${2} | framesize=${64} | search_type=PDR
| tc05-64B-4t4c-ethip4udp-ip4base-oacl1-stateless-flows10k-ndrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 routing config with ACL with\
-| | ... | 4 phy cores, 2 receive queues per NIC port.
-| | ... | [Ver] Find NDR for 64 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 50kpps.
-| | ...
| | [Tags] | 64B | 4C | NDRDISC
-| | ...
-| | [Template] | Discover NDR or PDR for IPv4 routing with ACLs
-| | wt=4 | rxq=2 | framesize=${64} | min_rate=${50000} | search_type=NDR
+| | phy_cores=${4} | framesize=${64} | search_type=NDR
| tc06-64B-4t4c-ethip4udp-ip4base-oacl1-stateless-flows10k-pdrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 routing config with ACL with\
-| | ... | 4 phy cores, 2 receive queues per NIC port.
-| | ... | [Ver] Find PDR for 64 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 50kpps, LT=0.5%.
-| | ...
| | [Tags] | 64B | 4C | PDRDISC | SKIP_PATCH
-| | ...
-| | [Template] | Discover NDR or PDR for IPv4 routing with ACLs
-| | wt=4 | rxq=2 | framesize=${64} | min_rate=${50000} | search_type=PDR
+| | phy_cores=${4} | framesize=${64} | search_type=PDR
diff --git a/tests/vpp/perf/ip4/10ge2p1x520-ethip4udp-ip4base-oacl50sf-100flows-ndrpdrdisc.robot b/tests/vpp/perf/ip4/10ge2p1x520-ethip4udp-ip4base-oacl50sf-100flows-ndrpdrdisc.robot
index 3804c8fa65..141ad893dd 100644
--- a/tests/vpp/perf/ip4/10ge2p1x520-ethip4udp-ip4base-oacl50sf-100flows-ndrpdrdisc.robot
+++ b/tests/vpp/perf/ip4/10ge2p1x520-ethip4udp-ip4base-oacl50sf-100flows-ndrpdrdisc.robot
@@ -29,6 +29,8 @@
| Test Teardown | Tear down performance test with ACL
| ... | ${min_rate}pps | ${framesize} | ${traffic_profile}
| ...
+| Test Template | Local template
+| ...
| Documentation | *RFC2544: Packet throughput IPv4 test cases with ACL*
| ...
| ... | *[Top] Network Topologies:* TG-DUT1-DUT2-TG 3-node circular topology\
@@ -73,15 +75,17 @@
| ${trex_stream2_subnet}= | 20.20.20.0/24
*** Keywords ***
-| Discover NDR or PDR for IPv4 routing with ACLs
-| | [Arguments] | ${wt} | ${rxq} | ${framesize} | ${min_rate} | ${search_type}
+| Local template
+| | [Arguments] | ${phy_cores} | ${framesize} | ${search_type}
+| | ... | ${rxq}=${None} | ${min_rate}=${50000}
+| | ...
| | Set Test Variable | ${framesize}
| | Set Test Variable | ${min_rate}
| | ${max_rate}= | Calculate pps | ${s_limit} | ${framesize}
| | ${binary_min}= | Set Variable | ${min_rate}
| | ${binary_max}= | Set Variable | ${max_rate}
| | ${threshold}= | Set Variable | ${min_rate}
-| | Given Add '${wt}' worker threads and '${rxq}' rxqueues in 3-node single-link circular topology
+| | Given Add worker threads and rxqueues to all DUTs | ${phy_cores} | ${rxq}
| | And Add PCI devices to all DUTs
| | ${get_framesize}= | Get Frame Size | ${framesize}
| | And Run Keyword If | ${get_framesize} < ${1522} | Add no multi seg to all DUTs
@@ -102,73 +106,25 @@
*** Test Cases ***
| tc01-64B-1t1c-ethip4udp-ip4base-oacl50-stateful-flows100-ndrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 routing config with ACL with\
-| | ... | 1 phy core, 1 receive queue per NIC port.
-| | ... | [Ver] Find NDR for 64 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 50kpps.
-| | ...
| | [Tags] | 64B | 1C | NDRDISC
-| | ...
-| | [Template] | Discover NDR or PDR for IPv4 routing with ACLs
-| | wt=1 | rxq=1 | framesize=${64} | min_rate=${50000} | search_type=NDR
+| | phy_cores=${1} | framesize=${64} | search_type=NDR
| tc02-64B-1t1c-ethip4udp-ip4base-oacl50-stateful-flows100-pdrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 routing config with ACL with\
-| | ... | 1 phy core, 1 receive queue per NIC port.
-| | ... | [Ver] Find PDR for 64 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 50kpps, LT=0.5%.
-| | ...
| | [Tags] | 64B | 1C | PDRDISC | SKIP_PATCH
-| | ...
-| | [Template] | Discover NDR or PDR for IPv4 routing with ACLs
-| | wt=1 | rxq=1 | framesize=${64} | min_rate=${50000} | search_type=PDR
+| | phy_cores=${1} | framesize=${64} | search_type=PDR
| tc03-64B-2t2c-ethip4udp-ip4base-oacl50-stateful-flows100-ndrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 routing config with ACL with\
-| | ... | 2 phy cores, 1 receive queue per NIC port.
-| | ... | [Ver] Find NDR for 64 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 50kpps.
-| | ...
| | [Tags] | 64B | 2C | NDRDISC
-| | ...
-| | [Template] | Discover NDR or PDR for IPv4 routing with ACLs
-| | wt=2 | rxq=1 | framesize=${64} | min_rate=${50000} | search_type=NDR
+| | phy_cores=${2} | framesize=${64} | search_type=NDR
| tc04-64B-2t2c-ethip4udp-ip4base-oacl50-stateful-flows100-pdrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 routing config with ACL with\
-| | ... | 2 phy cores, 1 receive queue per NIC port.
-| | ... | [Ver] Find PDR for 64 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 50kpps, LT=0.5%.
-| | ...
| | [Tags] | 64B | 2C | PDRDISC | SKIP_PATCH
-| | ...
-| | [Template] | Discover NDR or PDR for IPv4 routing with ACLs
-| | wt=2 | rxq=1 | framesize=${64} | min_rate=${50000} | search_type=PDR
+| | phy_cores=${2} | framesize=${64} | search_type=PDR
| tc05-64B-4t4c-ethip4udp-ip4base-oacl50-stateful-flows100-ndrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 routing config with ACL with\
-| | ... | 4 phy cores, 2 receive queues per NIC port.
-| | ... | [Ver] Find NDR for 64 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 50kpps.
-| | ...
| | [Tags] | 64B | 4C | NDRDISC
-| | ...
-| | [Template] | Discover NDR or PDR for IPv4 routing with ACLs
-| | wt=4 | rxq=2 | framesize=${64} | min_rate=${50000} | search_type=NDR
+| | phy_cores=${4} | framesize=${64} | search_type=NDR
| tc06-64B-4t4c-ethip4udp-ip4base-oacl50-stateful-flows100-pdrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 routing config with ACL with\
-| | ... | 4 phy cores, 2 receive queues per NIC port.
-| | ... | [Ver] Find PDR for 64 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 50kpps, LT=0.5%.
-| | ...
| | [Tags] | 64B | 4C | PDRDISC | SKIP_PATCH
-| | ...
-| | [Template] | Discover NDR or PDR for IPv4 routing with ACLs
-| | wt=4 | rxq=2 | framesize=${64} | min_rate=${50000} | search_type=PDR
+| | phy_cores=${4} | framesize=${64} | search_type=PDR
diff --git a/tests/vpp/perf/ip4/10ge2p1x520-ethip4udp-ip4base-oacl50sf-100kflows-ndrpdrdisc.robot b/tests/vpp/perf/ip4/10ge2p1x520-ethip4udp-ip4base-oacl50sf-100kflows-ndrpdrdisc.robot
index b879bec631..94d73f84fe 100644
--- a/tests/vpp/perf/ip4/10ge2p1x520-ethip4udp-ip4base-oacl50sf-100kflows-ndrpdrdisc.robot
+++ b/tests/vpp/perf/ip4/10ge2p1x520-ethip4udp-ip4base-oacl50sf-100kflows-ndrpdrdisc.robot
@@ -29,6 +29,8 @@
| Test Teardown | Tear down performance test with ACL
| ... | ${min_rate}pps | ${framesize} | ${traffic_profile}
| ...
+| Test Template | Local template
+| ...
| Documentation | *RFC2544: Packet throughput IPv4 test cases with ACL*
| ...
| ... | *[Top] Network Topologies:* TG-DUT1-DUT2-TG 3-node circular topology\
@@ -73,15 +75,17 @@
| ${trex_stream2_subnet}= | 20.20.20.0/24
*** Keywords ***
-| Discover NDR or PDR for IPv4 routing with ACLs
-| | [Arguments] | ${wt} | ${rxq} | ${framesize} | ${min_rate} | ${search_type}
+| Local template
+| | [Arguments] | ${phy_cores} | ${framesize} | ${search_type}
+| | ... | ${rxq}=${None} | ${min_rate}=${50000}
+| | ...
| | Set Test Variable | ${framesize}
| | Set Test Variable | ${min_rate}
| | ${max_rate}= | Calculate pps | ${s_limit} | ${framesize}
| | ${binary_min}= | Set Variable | ${min_rate}
| | ${binary_max}= | Set Variable | ${max_rate}
| | ${threshold}= | Set Variable | ${min_rate}
-| | Given Add '${wt}' worker threads and '${rxq}' rxqueues in 3-node single-link circular topology
+| | Given Add worker threads and rxqueues to all DUTs | ${phy_cores} | ${rxq}
| | And Add PCI devices to all DUTs
| | ${get_framesize}= | Get Frame Size | ${framesize}
| | And Run Keyword If | ${get_framesize} < ${1522} | Add no multi seg to all DUTs
@@ -102,73 +106,25 @@
*** Test Cases ***
| tc01-64B-1t1c-ethip4udp-ip4base-oacl50-stateful-flows100k-ndrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 routing config with ACL with\
-| | ... | 1 phy core, 1 receive queue per NIC port.
-| | ... | [Ver] Find NDR for 64 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 50kpps.
-| | ...
| | [Tags] | 64B | 1C | NDRDISC
-| | ...
-| | [Template] | Discover NDR or PDR for IPv4 routing with ACLs
-| | wt=1 | rxq=1 | framesize=${64} | min_rate=${50000} | search_type=NDR
+| | phy_cores=${1} | framesize=${64} | search_type=NDR
| tc02-64B-1t1c-ethip4udp-ip4base-oacl50-stateful-flows100k-pdrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 routing config with ACL with\
-| | ... | 1 phy core, 1 receive queue per NIC port.
-| | ... | [Ver] Find PDR for 64 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 50kpps, LT=0.5%.
-| | ...
| | [Tags] | 64B | 1C | PDRDISC | SKIP_PATCH
-| | ...
-| | [Template] | Discover NDR or PDR for IPv4 routing with ACLs
-| | wt=1 | rxq=1 | framesize=${64} | min_rate=${50000} | search_type=PDR
+| | phy_cores=${1} | framesize=${64} | search_type=PDR
| tc03-64B-2t2c-ethip4udp-ip4base-oacl50-stateful-flows100k-ndrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 routing config with ACL with\
-| | ... | 2 phy cores, 1 receive queue per NIC port.
-| | ... | [Ver] Find NDR for 64 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 50kpps.
-| | ...
| | [Tags] | 64B | 2C | NDRDISC
-| | ...
-| | [Template] | Discover NDR or PDR for IPv4 routing with ACLs
-| | wt=2 | rxq=1 | framesize=${64} | min_rate=${50000} | search_type=NDR
+| | phy_cores=${2} | framesize=${64} | search_type=NDR
| tc04-64B-2t2c-ethip4udp-ip4base-oacl50-stateful-flows100k-pdrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 routing config with ACL with\
-| | ... | 2 phy cores, 1 receive queue per NIC port.
-| | ... | [Ver] Find PDR for 64 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 50kpps, LT=0.5%.
-| | ...
| | [Tags] | 64B | 2C | PDRDISC | SKIP_PATCH
-| | ...
-| | [Template] | Discover NDR or PDR for IPv4 routing with ACLs
-| | wt=2 | rxq=1 | framesize=${64} | min_rate=${50000} | search_type=PDR
+| | phy_cores=${2} | framesize=${64} | search_type=PDR
| tc05-64B-4t4c-ethip4udp-ip4base-oacl50-stateful-flows100k-ndrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 routing config with ACL with\
-| | ... | 4 phy cores, 2 receive queues per NIC port.
-| | ... | [Ver] Find NDR for 64 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 50kpps.
-| | ...
| | [Tags] | 64B | 4C | NDRDISC
-| | ...
-| | [Template] | Discover NDR or PDR for IPv4 routing with ACLs
-| | wt=4 | rxq=2 | framesize=${64} | min_rate=${50000} | search_type=NDR
+| | phy_cores=${4} | framesize=${64} | search_type=NDR
| tc06-64B-4t4c-ethip4udp-ip4base-oacl50-stateful-flows100k-pdrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 routing config with ACL with\
-| | ... | 4 phy cores, 2 receive queues per NIC port.
-| | ... | [Ver] Find PDR for 64 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 50kpps, LT=0.5%.
-| | ...
| | [Tags] | 64B | 4C | PDRDISC | SKIP_PATCH
-| | ...
-| | [Template] | Discover NDR or PDR for IPv4 routing with ACLs
-| | wt=4 | rxq=2 | framesize=${64} | min_rate=${50000} | search_type=PDR
+| | phy_cores=${4} | framesize=${64} | search_type=PDR
diff --git a/tests/vpp/perf/ip4/10ge2p1x520-ethip4udp-ip4base-oacl50sf-10kflows-ndrpdrdisc.robot b/tests/vpp/perf/ip4/10ge2p1x520-ethip4udp-ip4base-oacl50sf-10kflows-ndrpdrdisc.robot
index e2801c660c..316d2135b5 100644
--- a/tests/vpp/perf/ip4/10ge2p1x520-ethip4udp-ip4base-oacl50sf-10kflows-ndrpdrdisc.robot
+++ b/tests/vpp/perf/ip4/10ge2p1x520-ethip4udp-ip4base-oacl50sf-10kflows-ndrpdrdisc.robot
@@ -29,6 +29,8 @@
| Test Teardown | Tear down performance test with ACL
| ... | ${min_rate}pps | ${framesize} | ${traffic_profile}
| ...
+| Test Template | Local template
+| ...
| Documentation | *RFC2544: Packet throughput IPv4 test cases with ACL*
| ...
| ... | *[Top] Network Topologies:* TG-DUT1-DUT2-TG 3-node circular topology\
@@ -73,15 +75,17 @@
| ${trex_stream2_subnet}= | 20.20.20.0/24
*** Keywords ***
-| Discover NDR or PDR for IPv4 routing with ACLs
-| | [Arguments] | ${wt} | ${rxq} | ${framesize} | ${min_rate} | ${search_type}
+| Local template
+| | [Arguments] | ${phy_cores} | ${framesize} | ${search_type}
+| | ... | ${rxq}=${None} | ${min_rate}=${50000}
+| | ...
| | Set Test Variable | ${framesize}
| | Set Test Variable | ${min_rate}
| | ${max_rate}= | Calculate pps | ${s_limit} | ${framesize}
| | ${binary_min}= | Set Variable | ${min_rate}
| | ${binary_max}= | Set Variable | ${max_rate}
| | ${threshold}= | Set Variable | ${min_rate}
-| | Given Add '${wt}' worker threads and '${rxq}' rxqueues in 3-node single-link circular topology
+| | Given Add worker threads and rxqueues to all DUTs | ${phy_cores} | ${rxq}
| | And Add PCI devices to all DUTs
| | ${get_framesize}= | Get Frame Size | ${framesize}
| | And Run Keyword If | ${get_framesize} < ${1522} | Add no multi seg to all DUTs
@@ -102,73 +106,25 @@
*** Test Cases ***
| tc01-64B-1t1c-ethip4udp-ip4base-oacl50-stateful-flows10k-ndrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 routing config with ACL with\
-| | ... | 1 phy core, 1 receive queue per NIC port.
-| | ... | [Ver] Find NDR for 64 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 50kpps.
-| | ...
| | [Tags] | 64B | 1C | NDRDISC
-| | ...
-| | [Template] | Discover NDR or PDR for IPv4 routing with ACLs
-| | wt=1 | rxq=1 | framesize=${64} | min_rate=${50000} | search_type=NDR
+| | phy_cores=${1} | framesize=${64} | search_type=NDR
| tc02-64B-1t1c-ethip4udp-ip4base-oacl50-stateful-flows10k-pdrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 routing config with ACL with\
-| | ... | 1 phy core, 1 receive queue per NIC port.
-| | ... | [Ver] Find PDR for 64 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 50kpps, LT=0.5%.
-| | ...
| | [Tags] | 64B | 1C | PDRDISC | SKIP_PATCH
-| | ...
-| | [Template] | Discover NDR or PDR for IPv4 routing with ACLs
-| | wt=1 | rxq=1 | framesize=${64} | min_rate=${50000} | search_type=PDR
+| | phy_cores=${1} | framesize=${64} | search_type=PDR
| tc03-64B-2t2c-ethip4udp-ip4base-oacl50-stateful-flows10k-ndrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 routing config with ACL with\
-| | ... | 2 phy cores, 1 receive queue per NIC port.
-| | ... | [Ver] Find NDR for 64 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 50kpps.
-| | ...
| | [Tags] | 64B | 2C | NDRDISC
-| | ...
-| | [Template] | Discover NDR or PDR for IPv4 routing with ACLs
-| | wt=2 | rxq=1 | framesize=${64} | min_rate=${50000} | search_type=NDR
+| | phy_cores=${2} | framesize=${64} | search_type=NDR
| tc04-64B-2t2c-ethip4udp-ip4base-oacl50-stateful-flows10k-pdrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 routing config with ACL with\
-| | ... | 2 phy cores, 1 receive queue per NIC port.
-| | ... | [Ver] Find PDR for 64 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 50kpps, LT=0.5%.
-| | ...
| | [Tags] | 64B | 2C | PDRDISC | SKIP_PATCH
-| | ...
-| | [Template] | Discover NDR or PDR for IPv4 routing with ACLs
-| | wt=2 | rxq=1 | framesize=${64} | min_rate=${50000} | search_type=PDR
+| | phy_cores=${2} | framesize=${64} | search_type=PDR
| tc05-64B-4t4c-ethip4udp-ip4base-oacl50-stateful-flows10k-ndrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 routing config with ACL with\
-| | ... | 4 phy cores, 2 receive queues per NIC port.
-| | ... | [Ver] Find NDR for 64 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 50kpps.
-| | ...
| | [Tags] | 64B | 4C | NDRDISC
-| | ...
-| | [Template] | Discover NDR or PDR for IPv4 routing with ACLs
-| | wt=4 | rxq=2 | framesize=${64} | min_rate=${50000} | search_type=NDR
+| | phy_cores=${4} | framesize=${64} | search_type=NDR
| tc06-64B-4t4c-ethip4udp-ip4base-oacl50-stateful-flows10k-pdrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 routing config with ACL with\
-| | ... | 4 phy cores, 2 receive queues per NIC port.
-| | ... | [Ver] Find PDR for 64 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 50kpps, LT=0.5%.
-| | ...
| | [Tags] | 64B | 4C | PDRDISC | SKIP_PATCH
-| | ...
-| | [Template] | Discover NDR or PDR for IPv4 routing with ACLs
-| | wt=4 | rxq=2 | framesize=${64} | min_rate=${50000} | search_type=PDR
+| | phy_cores=${4} | framesize=${64} | search_type=PDR
diff --git a/tests/vpp/perf/ip4/10ge2p1x520-ethip4udp-ip4base-oacl50sl-100flows-ndrpdrdisc.robot b/tests/vpp/perf/ip4/10ge2p1x520-ethip4udp-ip4base-oacl50sl-100flows-ndrpdrdisc.robot
index 982e0faa08..c9899ce2d4 100644
--- a/tests/vpp/perf/ip4/10ge2p1x520-ethip4udp-ip4base-oacl50sl-100flows-ndrpdrdisc.robot
+++ b/tests/vpp/perf/ip4/10ge2p1x520-ethip4udp-ip4base-oacl50sl-100flows-ndrpdrdisc.robot
@@ -29,6 +29,8 @@
| Test Teardown | Tear down performance test with ACL
| ... | ${min_rate}pps | ${framesize} | ${traffic_profile}
| ...
+| Test Template | Local template
+| ...
| Documentation | *RFC2544: Packet throughput IPv4 test cases with ACL*
| ...
| ... | *[Top] Network Topologies:* TG-DUT1-DUT2-TG 3-node circular topology\
@@ -73,15 +75,17 @@
| ${trex_stream2_subnet}= | 20.20.20.0/24
*** Keywords ***
-| Discover NDR or PDR for IPv4 routing with ACLs
-| | [Arguments] | ${wt} | ${rxq} | ${framesize} | ${min_rate} | ${search_type}
+| Local template
+| | [Arguments] | ${phy_cores} | ${framesize} | ${search_type}
+| | ... | ${rxq}=${None} | ${min_rate}=${50000}
+| | ...
| | Set Test Variable | ${framesize}
| | Set Test Variable | ${min_rate}
| | ${max_rate}= | Calculate pps | ${s_limit} | ${framesize}
| | ${binary_min}= | Set Variable | ${min_rate}
| | ${binary_max}= | Set Variable | ${max_rate}
| | ${threshold}= | Set Variable | ${min_rate}
-| | Given Add '${wt}' worker threads and '${rxq}' rxqueues in 3-node single-link circular topology
+| | Given Add worker threads and rxqueues to all DUTs | ${phy_cores} | ${rxq}
| | And Add PCI devices to all DUTs
| | ${get_framesize}= | Get Frame Size | ${framesize}
| | And Run Keyword If | ${get_framesize} < ${1522} | Add no multi seg to all DUTs
@@ -102,73 +106,25 @@
*** Test Cases ***
| tc01-64B-1t1c-ethip4udp-ip4base-oacl50-stateless-flows100-ndrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 routing config with ACL with\
-| | ... | 1 phy core, 1 receive queue per NIC port.
-| | ... | [Ver] Find NDR for 64 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 50kpps.
-| | ...
| | [Tags] | 64B | 1C | NDRDISC
-| | ...
-| | [Template] | Discover NDR or PDR for IPv4 routing with ACLs
-| | wt=1 | rxq=1 | framesize=${64} | min_rate=${50000} | search_type=NDR
+| | phy_cores=${1} | framesize=${64} | search_type=NDR
| tc02-64B-1t1c-ethip4udp-ip4base-oacl50-stateless-flows100-pdrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 routing config with ACL with\
-| | ... | 1 phy core, 1 receive queue per NIC port.
-| | ... | [Ver] Find PDR for 64 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 50kpps, LT=0.5%.
-| | ...
| | [Tags] | 64B | 1C | PDRDISC | SKIP_PATCH
-| | ...
-| | [Template] | Discover NDR or PDR for IPv4 routing with ACLs
-| | wt=1 | rxq=1 | framesize=${64} | min_rate=${50000} | search_type=PDR
+| | phy_cores=${1} | framesize=${64} | search_type=PDR
| tc03-64B-2t2c-ethip4udp-ip4base-oacl50-stateless-flows100-ndrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 routing config with ACL with\
-| | ... | 2 phy cores, 1 receive queue per NIC port.
-| | ... | [Ver] Find NDR for 64 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 50kpps.
-| | ...
| | [Tags] | 64B | 2C | NDRDISC
-| | ...
-| | [Template] | Discover NDR or PDR for IPv4 routing with ACLs
-| | wt=2 | rxq=1 | framesize=${64} | min_rate=${50000} | search_type=NDR
+| | phy_cores=${2} | framesize=${64} | search_type=NDR
| tc04-64B-2t2c-ethip4udp-ip4base-oacl50-stateless-flows100-pdrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 routing config with ACL with\
-| | ... | 2 phy cores, 1 receive queue per NIC port.
-| | ... | [Ver] Find PDR for 64 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 50kpps, LT=0.5%.
-| | ...
| | [Tags] | 64B | 2C | PDRDISC | SKIP_PATCH
-| | ...
-| | [Template] | Discover NDR or PDR for IPv4 routing with ACLs
-| | wt=2 | rxq=1 | framesize=${64} | min_rate=${50000} | search_type=PDR
+| | phy_cores=${2} | framesize=${64} | search_type=PDR
| tc05-64B-4t4c-ethip4udp-ip4base-oacl50-stateless-flows100-ndrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 routing config with ACL with\
-| | ... | 4 phy cores, 2 receive queues per NIC port.
-| | ... | [Ver] Find NDR for 64 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 50kpps.
-| | ...
| | [Tags] | 64B | 4C | NDRDISC
-| | ...
-| | [Template] | Discover NDR or PDR for IPv4 routing with ACLs
-| | wt=4 | rxq=2 | framesize=${64} | min_rate=${50000} | search_type=NDR
+| | phy_cores=${4} | framesize=${64} | search_type=NDR
| tc06-64B-4t4c-ethip4udp-ip4base-oacl50-stateless-flows100-pdrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 routing config with ACL with\
-| | ... | 4 phy cores, 2 receive queues per NIC port.
-| | ... | [Ver] Find PDR for 64 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 50kpps, LT=0.5%.
-| | ...
| | [Tags] | 64B | 4C | PDRDISC | SKIP_PATCH
-| | ...
-| | [Template] | Discover NDR or PDR for IPv4 routing with ACLs
-| | wt=4 | rxq=2 | framesize=${64} | min_rate=${50000} | search_type=PDR
+| | phy_cores=${4} | framesize=${64} | search_type=PDR
diff --git a/tests/vpp/perf/ip4/10ge2p1x520-ethip4udp-ip4base-oacl50sl-100kflows-ndrpdrdisc.robot b/tests/vpp/perf/ip4/10ge2p1x520-ethip4udp-ip4base-oacl50sl-100kflows-ndrpdrdisc.robot
index 912912de7a..124810b7f9 100644
--- a/tests/vpp/perf/ip4/10ge2p1x520-ethip4udp-ip4base-oacl50sl-100kflows-ndrpdrdisc.robot
+++ b/tests/vpp/perf/ip4/10ge2p1x520-ethip4udp-ip4base-oacl50sl-100kflows-ndrpdrdisc.robot
@@ -29,6 +29,8 @@
| Test Teardown | Tear down performance test with ACL
| ... | ${min_rate}pps | ${framesize} | ${traffic_profile}
| ...
+| Test Template | Local template
+| ...
| Documentation | *RFC2544: Packet throughput IPv4 test cases with ACL*
| ...
| ... | *[Top] Network Topologies:* TG-DUT1-DUT2-TG 3-node circular topology\
@@ -73,15 +75,17 @@
| ${trex_stream2_subnet}= | 20.20.20.0/24
*** Keywords ***
-| Discover NDR or PDR for IPv4 routing with ACLs
-| | [Arguments] | ${wt} | ${rxq} | ${framesize} | ${min_rate} | ${search_type}
+| Local template
+| | [Arguments] | ${phy_cores} | ${framesize} | ${search_type}
+| | ... | ${rxq}=${None} | ${min_rate}=${50000}
+| | ...
| | Set Test Variable | ${framesize}
| | Set Test Variable | ${min_rate}
| | ${max_rate}= | Calculate pps | ${s_limit} | ${framesize}
| | ${binary_min}= | Set Variable | ${min_rate}
| | ${binary_max}= | Set Variable | ${max_rate}
| | ${threshold}= | Set Variable | ${min_rate}
-| | Given Add '${wt}' worker threads and '${rxq}' rxqueues in 3-node single-link circular topology
+| | Given Add worker threads and rxqueues to all DUTs | ${phy_cores} | ${rxq}
| | And Add PCI devices to all DUTs
| | ${get_framesize}= | Get Frame Size | ${framesize}
| | And Run Keyword If | ${get_framesize} < ${1522} | Add no multi seg to all DUTs
@@ -102,73 +106,25 @@
*** Test Cases ***
| tc01-64B-1t1c-ethip4udp-ip4base-oacl50-stateless-flows100k-ndrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 routing config with ACL with\
-| | ... | 1 phy core, 1 receive queue per NIC port.
-| | ... | [Ver] Find NDR for 64 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 50kpps.
-| | ...
| | [Tags] | 64B | 1C | NDRDISC
-| | ...
-| | [Template] | Discover NDR or PDR for IPv4 routing with ACLs
-| | wt=1 | rxq=1 | framesize=${64} | min_rate=${50000} | search_type=NDR
+| | phy_cores=${1} | framesize=${64} | search_type=NDR
| tc02-64B-1t1c-ethip4udp-ip4base-oacl50-stateless-flows100k-pdrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 routing config with ACL with\
-| | ... | 1 phy core, 1 receive queue per NIC port.
-| | ... | [Ver] Find PDR for 64 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 50kpps, LT=0.5%.
-| | ...
| | [Tags] | 64B | 1C | PDRDISC | SKIP_PATCH
-| | ...
-| | [Template] | Discover NDR or PDR for IPv4 routing with ACLs
-| | wt=1 | rxq=1 | framesize=${64} | min_rate=${50000} | search_type=PDR
+| | phy_cores=${1} | framesize=${64} | search_type=PDR
| tc03-64B-2t2c-ethip4udp-ip4base-oacl50-stateless-flows100k-ndrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 routing config with ACL with\
-| | ... | 2 phy cores, 1 receive queue per NIC port.
-| | ... | [Ver] Find NDR for 64 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 50kpps.
-| | ...
| | [Tags] | 64B | 2C | NDRDISC
-| | ...
-| | [Template] | Discover NDR or PDR for IPv4 routing with ACLs
-| | wt=2 | rxq=1 | framesize=${64} | min_rate=${50000} | search_type=NDR
+| | phy_cores=${2} | framesize=${64} | search_type=NDR
| tc04-64B-2t2c-ethip4udp-ip4base-oacl50-stateless-flows100k-pdrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 routing config with ACL with\
-| | ... | 2 phy cores, 1 receive queue per NIC port.
-| | ... | [Ver] Find PDR for 64 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 50kpps, LT=0.5%.
-| | ...
| | [Tags] | 64B | 2C | PDRDISC | SKIP_PATCH
-| | ...
-| | [Template] | Discover NDR or PDR for IPv4 routing with ACLs
-| | wt=2 | rxq=1 | framesize=${64} | min_rate=${50000} | search_type=PDR
+| | phy_cores=${2} | framesize=${64} | search_type=PDR
| tc05-64B-4t4c-ethip4udp-ip4base-oacl50-stateless-flows100k-ndrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 routing config with ACL with\
-| | ... | 4 phy cores, 2 receive queues per NIC port.
-| | ... | [Ver] Find NDR for 64 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 50kpps.
-| | ...
| | [Tags] | 64B | 4C | NDRDISC
-| | ...
-| | [Template] | Discover NDR or PDR for IPv4 routing with ACLs
-| | wt=4 | rxq=2 | framesize=${64} | min_rate=${50000} | search_type=NDR
+| | phy_cores=${4} | framesize=${64} | search_type=NDR
| tc06-64B-4t4c-ethip4udp-ip4base-oacl50-stateless-flows100k-pdrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 routing config with ACL with\
-| | ... | 4 phy cores, 2 receive queues per NIC port.
-| | ... | [Ver] Find PDR for 64 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 50kpps, LT=0.5%.
-| | ...
| | [Tags] | 64B | 4C | PDRDISC | SKIP_PATCH
-| | ...
-| | [Template] | Discover NDR or PDR for IPv4 routing with ACLs
-| | wt=4 | rxq=2 | framesize=${64} | min_rate=${50000} | search_type=PDR
+| | phy_cores=${4} | framesize=${64} | search_type=PDR
diff --git a/tests/vpp/perf/ip4/10ge2p1x520-ethip4udp-ip4base-oacl50sl-10kflows-ndrpdrdisc.robot b/tests/vpp/perf/ip4/10ge2p1x520-ethip4udp-ip4base-oacl50sl-10kflows-ndrpdrdisc.robot
index c040cfff7d..d8fbc85198 100644
--- a/tests/vpp/perf/ip4/10ge2p1x520-ethip4udp-ip4base-oacl50sl-10kflows-ndrpdrdisc.robot
+++ b/tests/vpp/perf/ip4/10ge2p1x520-ethip4udp-ip4base-oacl50sl-10kflows-ndrpdrdisc.robot
@@ -29,6 +29,8 @@
| Test Teardown | Tear down performance test with ACL
| ... | ${min_rate}pps | ${framesize} | ${traffic_profile}
| ...
+| Test Template | Local template
+| ...
| Documentation | *RFC2544: Packet throughput IPv4 test cases with ACL*
| ...
| ... | *[Top] Network Topologies:* TG-DUT1-DUT2-TG 3-node circular topology\
@@ -73,15 +75,17 @@
| ${trex_stream2_subnet}= | 20.20.20.0/24
*** Keywords ***
-| Discover NDR or PDR for IPv4 routing with ACLs
-| | [Arguments] | ${wt} | ${rxq} | ${framesize} | ${min_rate} | ${search_type}
+| Local template
+| | [Arguments] | ${phy_cores} | ${framesize} | ${search_type}
+| | ... | ${rxq}=${None} | ${min_rate}=${50000}
+| | ...
| | Set Test Variable | ${framesize}
| | Set Test Variable | ${min_rate}
| | ${max_rate}= | Calculate pps | ${s_limit} | ${framesize}
| | ${binary_min}= | Set Variable | ${min_rate}
| | ${binary_max}= | Set Variable | ${max_rate}
| | ${threshold}= | Set Variable | ${min_rate}
-| | Given Add '${wt}' worker threads and '${rxq}' rxqueues in 3-node single-link circular topology
+| | Given Add worker threads and rxqueues to all DUTs | ${phy_cores} | ${rxq}
| | And Add PCI devices to all DUTs
| | ${get_framesize}= | Get Frame Size | ${framesize}
| | And Run Keyword If | ${get_framesize} < ${1522} | Add no multi seg to all DUTs
@@ -102,73 +106,25 @@
*** Test Cases ***
| tc01-64B-1t1c-ethip4udp-ip4base-oacl50-stateless-flows10k-ndrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 routing config with ACL with\
-| | ... | 1 phy core, 1 receive queue per NIC port.
-| | ... | [Ver] Find NDR for 64 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 50kpps.
-| | ...
| | [Tags] | 64B | 1C | NDRDISC
-| | ...
-| | [Template] | Discover NDR or PDR for IPv4 routing with ACLs
-| | wt=1 | rxq=1 | framesize=${64} | min_rate=${50000} | search_type=NDR
+| | phy_cores=${1} | framesize=${64} | search_type=NDR
| tc02-64B-1t1c-ethip4udp-ip4base-oacl50-stateless-flows10k-pdrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 routing config with ACL with\
-| | ... | 1 phy core, 1 receive queue per NIC port.
-| | ... | [Ver] Find PDR for 64 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 50kpps, LT=0.5%.
-| | ...
| | [Tags] | 64B | 1C | PDRDISC | SKIP_PATCH
-| | ...
-| | [Template] | Discover NDR or PDR for IPv4 routing with ACLs
-| | wt=1 | rxq=1 | framesize=${64} | min_rate=${50000} | search_type=PDR
+| | phy_cores=${1} | framesize=${64} | search_type=PDR
| tc03-64B-2t2c-ethip4udp-ip4base-oacl50-stateless-flows10k-ndrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 routing config with ACL with\
-| | ... | 2 phy cores, 1 receive queue per NIC port.
-| | ... | [Ver] Find NDR for 64 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 50kpps.
-| | ...
| | [Tags] | 64B | 2C | NDRDISC
-| | ...
-| | [Template] | Discover NDR or PDR for IPv4 routing with ACLs
-| | wt=2 | rxq=1 | framesize=${64} | min_rate=${50000} | search_type=NDR
+| | phy_cores=${2} | framesize=${64} | search_type=NDR
| tc04-64B-2t2c-ethip4udp-ip4base-oacl50-stateless-flows10k-pdrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 routing config with ACL with\
-| | ... | 2 phy cores, 1 receive queue per NIC port.
-| | ... | [Ver] Find PDR for 64 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 50kpps, LT=0.5%.
-| | ...
| | [Tags] | 64B | 2C | PDRDISC | SKIP_PATCH
-| | ...
-| | [Template] | Discover NDR or PDR for IPv4 routing with ACLs
-| | wt=2 | rxq=1 | framesize=${64} | min_rate=${50000} | search_type=PDR
+| | phy_cores=${2} | framesize=${64} | search_type=PDR
| tc05-64B-4t4c-ethip4udp-ip4base-oacl50-stateless-flows10k-ndrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 routing config with ACL with\
-| | ... | 4 phy cores, 2 receive queues per NIC port.
-| | ... | [Ver] Find NDR for 64 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 50kpps.
-| | ...
| | [Tags] | 64B | 4C | NDRDISC
-| | ...
-| | [Template] | Discover NDR or PDR for IPv4 routing with ACLs
-| | wt=4 | rxq=2 | framesize=${64} | min_rate=${50000} | search_type=NDR
+| | phy_cores=${4} | framesize=${64} | search_type=NDR
| tc06-64B-4t4c-ethip4udp-ip4base-oacl50-stateless-flows10k-pdrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 routing config with ACL with\
-| | ... | 4 phy cores, 2 receive queues per NIC port.
-| | ... | [Ver] Find PDR for 64 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 50kpps, LT=0.5%.
-| | ...
| | [Tags] | 64B | 4C | PDRDISC | SKIP_PATCH
-| | ...
-| | [Template] | Discover NDR or PDR for IPv4 routing with ACLs
-| | wt=4 | rxq=2 | framesize=${64} | min_rate=${50000} | search_type=PDR
+| | phy_cores=${4} | framesize=${64} | search_type=PDR
diff --git a/tests/vpp/perf/ip4/10ge2p1x520-ethip4udp-ip4base-udpsrcscale15-nat44-ndrpdrdisc.robot b/tests/vpp/perf/ip4/10ge2p1x520-ethip4udp-ip4base-udpsrcscale15-nat44-ndrpdrdisc.robot
index d434426dc6..46a2b39271 100644
--- a/tests/vpp/perf/ip4/10ge2p1x520-ethip4udp-ip4base-udpsrcscale15-nat44-ndrpdrdisc.robot
+++ b/tests/vpp/perf/ip4/10ge2p1x520-ethip4udp-ip4base-udpsrcscale15-nat44-ndrpdrdisc.robot
@@ -30,6 +30,8 @@
| Test Teardown | Tear down performance discovery test with NAT
| ... | ${min_rate}pps | ${framesize} | ${traffic_profile}
| ...
+| Test Template | Local template
+| ...
| Documentation | *NAT44 performance test cases*
| ...
| ... | *[Top] Network Topologies:* TG-DUT1-DUT2-TG 3-node circular topology
@@ -59,9 +61,9 @@
| ${traffic_profile} | trex-sl-3n-ethip4udp-1u15p
*** Keywords ***
-| Discover NDR or PDR for IPv4 routing with NAT44
-| | ...
-| | [Arguments] | ${wt} | ${rxq} | ${framesize} | ${min_rate} | ${search_type}
+| Local template
+| | [Arguments] | ${phy_cores} | ${framesize} | ${search_type}
+| | ... | ${rxq}=${None} | ${min_rate}=${50000}
| | ...
| | Set Test Variable | ${framesize}
| | Set Test Variable | ${min_rate}
@@ -71,7 +73,7 @@
| | ${threshold}= | Set Variable | ${min_rate}
| | ${get_framesize}= | Get Frame Size | ${framesize}
| | ...
-| | Given Add '${wt}' worker threads and '${rxq}' rxqueues in 3-node single-link circular topology
+| | Given Add worker threads and rxqueues to all DUTs | ${phy_cores} | ${rxq}
| | And Add PCI devices to all DUTs
| | And Run Keyword If | ${get_framesize} < ${1522}
| | ... | Add no multi seg to all DUTs
@@ -90,235 +92,73 @@
*** Test Cases ***
| tc01-64B-1t1c-ethip4udp-ip4base-udpsrcscale15-snat-ndrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 routing config with 1 phy core,\
-| | ... | 1 receive queue per NIC port. NAT44 is configured between DUTs -\
-| | ... | 1 user and 15 ports (sessions) per user.
-| | ... | [Ver] Find NDR for 64 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 50kpps.
-| | ...
| | [Tags] | 64B | 1C | NDRDISC
-| | ...
-| | [Template] | Discover NDR or PDR for IPv4 routing with NAT44
-| | wt=1 | rxq=1 | framesize=${64} | min_rate=${50000} | search_type=NDR
+| | phy_cores=${1} | framesize=${64} | search_type=NDR
| tc02-64B-1t1c-ethip4udp-ip4base-udpsrcscale15-snat-pdrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 routing config with 1 phy core,\
-| | ... | 1 receive queue per NIC port. NAT44 is configured between DUTs -\
-| | ... | 1 user and 15 ports (sessions) per user.
-| | ... | [Ver] Find PDR for 64 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 50kpps.
-| | ...
| | [Tags] | 64B | 1C | PDRDISC | SKIP_PATCH
-| | ...
-| | [Template] | Discover NDR or PDR for IPv4 routing with NAT44
-| | wt=1 | rxq=1 | framesize=${64} | min_rate=${50000} | search_type=PDR
+| | phy_cores=${1} | framesize=${64} | search_type=PDR
| tc03-1518B-1t1c-ethip4udp-ip4base-udpsrcscale15-snat-ndrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 routing config with 1 phy core,\
-| | ... | 1 receive queue per NIC port. NAT44 is configured between DUTs -\
-| | ... | 1 user and 15 ports (sessions) per user.
-| | ... | [Ver] Find NDR for 1518 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 50kpps.
-| | ...
| | [Tags] | 1518B | 1C | NDRDISC
-| | ...
-| | [Template] | Discover NDR or PDR for IPv4 routing with NAT44
-| | wt=1 | rxq=1 | framesize=${1518} | min_rate=${50000} | search_type=NDR
+| | phy_cores=${1} | framesize=${1518} | search_type=NDR
| tc04-1518B-1t1c-ethip4udp-ip4base-udpsrcscale15-snat-pdrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 routing config with 1 phy core,\
-| | ... | 1 receive queue per NIC port. NAT44 is configured between DUTs -\
-| | ... | 1 user and 15 ports (sessions) per user.
-| | ... | [Ver] Find PDR for 1518 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 50kpps.
-| | ...
| | [Tags] | 1518B | 1C | PDRDISC | SKIP_PATCH
-| | ...
-| | [Template] | Discover NDR or PDR for IPv4 routing with NAT44
-| | wt=1 | rxq=1 | framesize=${1518} | min_rate=${50000} | search_type=PDR
+| | phy_cores=${1} | framesize=${1518} | search_type=PDR
| tc05-IMIX-1t1c-ethip4udp-ip4base-udpsrcscale15-snat-ndrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 routing config with 1 phy core,\
-| | ... | 1 receive queue per NIC port. NAT44 is configured between DUTs -\
-| | ... | 1 user and 15 ports (sessions) per user.
-| | ... | [Ver] Find NDR for IMIX frames using binary search start at 10GE\
-| | ... | linerate, step 50kpps.
-| | ...
| | [Tags] | IMIX | 1C | NDRDISC
-| | ...
-| | [Template] | Discover NDR or PDR for IPv4 routing with NAT44
-| | wt=1 | rxq=1 | framesize=IMIX_v4_1 | min_rate=${50000} | search_type=NDR
+| | phy_cores=${1} | framesize=IMIX_v4_1 | search_type=NDR
| tc06-IMIX-1t1c-ethip4udp-ip4base-udpsrcscale15-snat-pdrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 routing config with 1 phy core,\
-| | ... | 1 receive queue per NIC port. NAT44 is configured between DUTs -\
-| | ... | 1 user and 15 ports (sessions) per user.
-| | ... | [Ver] Find PDR for IMIX frames using binary search start at 10GE\
-| | ... | linerate, step 50kpps.
-| | ...
| | [Tags] | IMIX | 1C | PDRDISC | SKIP_PATCH
-| | ...
-| | [Template] | Discover NDR or PDR for IPv4 routing with NAT44
-| | wt=1 | rxq=1 | framesize=IMIX_v4_1 | min_rate=${50000} | search_type=PDR
+| | phy_cores=${1} | framesize=IMIX_v4_1 | search_type=PDR
| tc07-64B-2t2c-ethip4udp-ip4base-udpsrcscale15-snat-ndrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 routing config with 2 phy cores,\
-| | ... | 1 receive queue per NIC port. NAT44 is configured between DUTs -\
-| | ... | 1 user and 15 ports (sessions) per user.
-| | ... | [Ver] Find NDR for 64 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 50kpps.
-| | ...
| | [Tags] | 64B | 2C | NDRDISC
-| | ...
-| | [Template] | Discover NDR or PDR for IPv4 routing with NAT44
-| | wt=2 | rxq=1 | framesize=${64} | min_rate=${50000} | search_type=NDR
+| | phy_cores=${2} | framesize=${64} | search_type=NDR
| tc08-64B-2t2c-ethip4udp-ip4base-udpsrcscale15-snat-pdrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 routing config with 2 phy cores,\
-| | ... | 1 receive queue per NIC port. NAT44 is configured between DUTs -\
-| | ... | 1 user and 15 ports (sessions) per user.
-| | ... | [Ver] Find PDR for 64 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 50kpps.
-| | ...
| | [Tags] | 64B | 2C | PDRDISC | SKIP_PATCH
-| | ...
-| | [Template] | Discover NDR or PDR for IPv4 routing with NAT44
-| | wt=2 | rxq=1 | framesize=${64} | min_rate=${50000} | search_type=PDR
+| | phy_cores=${2} | framesize=${64} | search_type=PDR
| tc09-1518B-2t2c-ethip4udp-ip4base-udpsrcscale15-snat-ndrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 routing config with 2 phy cores,\
-| | ... | 1 receive queue per NIC port. NAT44 is configured between DUTs -\
-| | ... | 1 user and 15 ports (sessions) per user.
-| | ... | [Ver] Find NDR for 1518 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 50kpps.
-| | ...
| | [Tags] | 1518B | 2C | NDRDISC
-| | ...
-| | [Template] | Discover NDR or PDR for IPv4 routing with NAT44
-| | wt=2 | rxq=1 | framesize=${1518} | min_rate=${50000} | search_type=NDR
+| | phy_cores=${2} | framesize=${1518} | search_type=NDR
| tc10-1518B-2t2c-ethip4udp-ip4base-udpsrcscale15-snat-pdrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 routing config with 2 phy cores,\
-| | ... | 1 receive queue per NIC port. NAT44 is configured between DUTs -\
-| | ... | 1 user and 15 ports (sessions) per user.
-| | ... | [Ver] Find PDR for 1518 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 50kpps.
-| | ...
| | [Tags] | 1518B | 2C | PDRDISC | SKIP_PATCH
-| | ...
-| | [Template] | Discover NDR or PDR for IPv4 routing with NAT44
-| | wt=2 | rxq=1 | framesize=${1518} | min_rate=${50000} | search_type=PDR
+| | phy_cores=${2} | framesize=${1518} | search_type=PDR
| tc11-IMIX-2t2c-ethip4udp-ip4base-udpsrcscale15-snat-ndrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 routing config with 2 phy cores,\
-| | ... | 1 receive queue per NIC port. NAT44 is configured between DUTs -\
-| | ... | 1 user and 15 ports (sessions) per user.
-| | ... | [Ver] Find NDR for IMIX frames using binary search start at 10GE\
-| | ... | linerate, step 50kpps.
-| | ...
| | [Tags] | IMIX | 2C | NDRDISC
-| | ...
-| | [Template] | Discover NDR or PDR for IPv4 routing with NAT44
-| | wt=2 | rxq=1 | framesize=IMIX_v4_1 | min_rate=${50000} | search_type=NDR
+| | phy_cores=${2} | framesize=IMIX_v4_1 | search_type=NDR
| tc12-IMIX-2t2c-ethip4udp-ip4base-udpsrcscale15-snat-pdrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 routing config with 2 phy cores,\
-| | ... | 1 receive queue per NIC port. NAT44 is configured between DUTs -\
-| | ... | 1 user and 15 ports (sessions) per user.
-| | ... | [Ver] Find PDR for IMIX frames using binary search start at 10GE\
-| | ... | linerate, step 50kpps.
-| | ...
| | [Tags] | IMIX | 2C | PDRDISC | SKIP_PATCH
-| | ...
-| | [Template] | Discover NDR or PDR for IPv4 routing with NAT44
-| | wt=2 | rxq=1 | framesize=IMIX_v4_1 | min_rate=${50000} | search_type=PDR
+| | phy_cores=${2} | framesize=IMIX_v4_1 | search_type=PDR
| tc13-64B-4t4c-ethip4udp-ip4base-udpsrcscale15-snat-ndrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 routing config with 4 phy cores,\
-| | ... | 2 receive queues per NIC port. NAT44 is configured between DUTs -\
-| | ... | 1 user and 15 ports (sessions) per user.
-| | ... | [Ver] Find NDR for 64 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 50kpps.
-| | ...
| | [Tags] | 64B | 4C | NDRDISC
-| | ...
-| | [Template] | Discover NDR or PDR for IPv4 routing with NAT44
-| | wt=4 | rxq=2 | framesize=${64} | min_rate=${50000} | search_type=NDR
+| | phy_cores=${4} | framesize=${64} | search_type=NDR
| tc14-64B-4t4c-ethip4udp-ip4base-udpsrcscale15-snat-pdrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 routing config with 4 phy cores,\
-| | ... | 2 receive queues per NIC port. NAT44 is configured between DUTs -\
-| | ... | 1 user and 15 ports (sessions) per user.
-| | ... | [Ver] Find PDR for 64 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 50kpps.
-| | ...
| | [Tags] | 64B | 4C | PDRDISC | SKIP_PATCH
-| | ...
-| | [Template] | Discover NDR or PDR for IPv4 routing with NAT44
-| | wt=4 | rxq=2 | framesize=${64} | min_rate=${50000} | search_type=PDR
+| | phy_cores=${4} | framesize=${64} | search_type=PDR
| tc15-1518B-4t4c-ethip4udp-ip4base-udpsrcscale15-snat-ndrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 routing config with 4 phy cores,\
-| | ... | 2 receive queues per NIC port. NAT44 is configured between DUTs -\
-| | ... | 1 user and 15 ports (sessions) per user.
-| | ... | [Ver] Find NDR for 1518 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 50kpps.
-| | ...
| | [Tags] | 1518B | 4C | NDRDISC
-| | ...
-| | [Template] | Discover NDR or PDR for IPv4 routing with NAT44
-| | wt=4 | rxq=2 | framesize=${1518} | min_rate=${50000} | search_type=NDR
+| | phy_cores=${4} | framesize=${1518} | search_type=NDR
| tc16-1518B-4t4c-ethip4udp-ip4base-udpsrcscale15-snat-pdrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 routing config with 4 phy cores,\
-| | ... | 2 receive queues per NIC port. NAT44 is configured between DUTs -\
-| | ... | 1 user and 15 ports (sessions) per user.
-| | ... | [Ver] Find PDR for 1518 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 50kpps.
-| | ...
| | [Tags] | 1518B | 4C | PDRDISC | SKIP_PATCH
-| | ...
-| | [Template] | Discover NDR or PDR for IPv4 routing with NAT44
-| | wt=4 | rxq=2 | framesize=${1518} | min_rate=${50000} | search_type=PDR
+| | phy_cores=${4} | framesize=${1518} | search_type=PDR
| tc17-IMIX-4t4c-ethip4udp-ip4base-udpsrcscale15-snat-ndrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 routing config with 4 phy cores,\
-| | ... | 2 receive queues per NIC port. NAT44 is configured between DUTs -\
-| | ... | 1 user and 15 ports (sessions) per user.
-| | ... | [Ver] Find NDR for IMIX frames using binary search start at 10GE\
-| | ... | linerate, step 50kpps.
-| | ...
| | [Tags] | IMIX | 4C | NDRDISC
-| | ...
-| | [Template] | Discover NDR or PDR for IPv4 routing with NAT44
-| | wt=4 | rxq=2 | framesize=IMIX_v4_1 | min_rate=${50000} | search_type=NDR
+| | phy_cores=${4} | framesize=IMIX_v4_1 | search_type=NDR
| tc18-IMIX-4t4c-ethip4udp-ip4base-udpsrcscale15-snat-pdrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 routing config with 4 phy cores,\
-| | ... | 2 receive queues per NIC port. NAT44 is configured between DUTs -\
-| | ... | 1 user and 15 ports (sessions) per user.
-| | ... | [Ver] Find PDR for IMIX frames using binary search start at 10GE\
-| | ... | linerate, step 50kpps.
-| | ...
| | [Tags] | IMIX | 4C | PDRDISC | SKIP_PATCH
-| | ...
-| | [Template] | Discover NDR or PDR for IPv4 routing with NAT44
-| | wt=4 | rxq=2 | framesize=IMIX_v4_1 | min_rate=${50000} | search_type=PDR
+| | phy_cores=${4} | framesize=IMIX_v4_1 | search_type=PDR
diff --git a/tests/vpp/perf/ip4/10ge2p1x520-ethip4udp-ip4scale10-udpsrcscale15-nat44-ndrpdrdisc.robot b/tests/vpp/perf/ip4/10ge2p1x520-ethip4udp-ip4scale10-udpsrcscale15-nat44-ndrpdrdisc.robot
index f688aa333a..cedfea3c50 100644
--- a/tests/vpp/perf/ip4/10ge2p1x520-ethip4udp-ip4scale10-udpsrcscale15-nat44-ndrpdrdisc.robot
+++ b/tests/vpp/perf/ip4/10ge2p1x520-ethip4udp-ip4scale10-udpsrcscale15-nat44-ndrpdrdisc.robot
@@ -31,6 +31,8 @@
| Test Teardown | Tear down performance discovery test with NAT
| ... | ${min_rate}pps | ${framesize} | ${traffic_profile}
| ...
+| Test Template | Local template
+| ...
| Documentation | *NAT44 performance test cases*
| ...
| ... | *[Top] Network Topologies:* TG-DUT1-DUT2-TG 3-node circular topology
@@ -60,9 +62,9 @@
| ${traffic_profile} | trex-sl-3n-ethip4udp-10u15p
*** Keywords ***
-| Discover NDR or PDR for IPv4 routing with NAT44
-| | ...
-| | [Arguments] | ${wt} | ${rxq} | ${framesize} | ${min_rate} | ${search_type}
+| Local template
+| | [Arguments] | ${phy_cores} | ${framesize} | ${search_type}
+| | ... | ${rxq}=${None} | ${min_rate}=${50000}
| | ...
| | Set Test Variable | ${framesize}
| | Set Test Variable | ${min_rate}
@@ -72,7 +74,7 @@
| | ${threshold}= | Set Variable | ${min_rate}
| | ${get_framesize}= | Get Frame Size | ${framesize}
| | ...
-| | Given Add '${wt}' worker threads and '${rxq}' rxqueues in 3-node single-link circular topology
+| | Given Add worker threads and rxqueues to all DUTs | ${phy_cores} | ${rxq}
| | And Add PCI devices to all DUTs
| | And Run Keyword If | ${get_framesize} < ${1522}
| | ... | Add no multi seg to all DUTs
@@ -91,235 +93,73 @@
*** Test Cases ***
| tc01-64B-1t1c-ethip4udp-ip4scale10-udpsrcscale15-snat-ndrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 routing config with 1 phy core,\
-| | ... | 1 receive queue per NIC port. NAT44 is configured between DUTs -\
-| | ... | 10 users and 15 ports (sessions) per user.
-| | ... | [Ver] Find NDR for 64 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 50kpps.
-| | ...
| | [Tags] | 64B | 1C | NDRDISC
-| | ...
-| | [Template] | Discover NDR or PDR for IPv4 routing with NAT44
-| | wt=1 | rxq=1 | framesize=${64} | min_rate=${50000} | search_type=NDR
+| | phy_cores=${1} | framesize=${64} | search_type=NDR
| tc02-64B-1t1c-ethip4udp-ip4scale10-udpsrcscale15-snat-pdrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 routing config with 1 phy core,\
-| | ... | 1 receive queue per NIC port. NAT44 is configured between DUTs -\
-| | ... | 10 users and 15 ports (sessions) per user.
-| | ... | [Ver] Find PDR for 64 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 50kpps.
-| | ...
| | [Tags] | 64B | 1C | PDRDISC | SKIP_PATCH
-| | ...
-| | [Template] | Discover NDR or PDR for IPv4 routing with NAT44
-| | wt=1 | rxq=1 | framesize=${64} | min_rate=${50000} | search_type=PDR
+| | phy_cores=${1} | framesize=${64} | search_type=PDR
| tc03-1518B-1t1c-ethip4udp-ip4scale10-udpsrcscale15-snat-ndrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 routing config with 1 phy core,\
-| | ... | 1 receive queue per NIC port. NAT44 is configured between DUTs -\
-| | ... | 10 users and 15 ports (sessions) per user.
-| | ... | [Ver] Find NDR for 1518 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 50kpps.
-| | ...
| | [Tags] | 1518B | 1C | NDRDISC
-| | ...
-| | [Template] | Discover NDR or PDR for IPv4 routing with NAT44
-| | wt=1 | rxq=1 | framesize=${1518} | min_rate=${50000} | search_type=NDR
+| | phy_cores=${1} | framesize=${1518} | search_type=NDR
| tc04-1518B-1t1c-ethip4udp-ip4scale10-udpsrcscale15-snat-pdrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 routing config with 1 phy core,\
-| | ... | 1 receive queue per NIC port. NAT44 is configured between DUTs -\
-| | ... | 10 users and 15 ports (sessions) per user.
-| | ... | [Ver] Find PDR for 1518 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 50kpps.
-| | ...
| | [Tags] | 1518B | 1C | PDRDISC | SKIP_PATCH
-| | ...
-| | [Template] | Discover NDR or PDR for IPv4 routing with NAT44
-| | wt=1 | rxq=1 | framesize=${1518} | min_rate=${50000} | search_type=PDR
+| | phy_cores=${1} | framesize=${1518} | search_type=PDR
| tc05-IMIX-1t1c-ethip4udp-ip4scale10-udpsrcscale15-snat-ndrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 routing config with 1 phy core,\
-| | ... | 1 receive queue per NIC port. NAT44 is configured between DUTs -\
-| | ... | 10 users and 15 ports (sessions) per user.
-| | ... | [Ver] Find NDR for IMIX frames using binary search start at 10GE\
-| | ... | linerate, step 50kpps.
-| | ...
| | [Tags] | IMIX | 1C | NDRDISC
-| | ...
-| | [Template] | Discover NDR or PDR for IPv4 routing with NAT44
-| | wt=1 | rxq=1 | framesize=IMIX_v4_1 | min_rate=${50000} | search_type=NDR
+| | phy_cores=${1} | framesize=IMIX_v4_1 | search_type=NDR
| tc06-IMIX-1t1c-ethip4udp-ip4scale10-udpsrcscale15-snat-pdrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 routing config with 1 phy core,\
-| | ... | 1 receive queue per NIC port. NAT44 is configured between DUTs -\
-| | ... | 10 users and 15 ports (sessions) per user.
-| | ... | [Ver] Find PDR for IMIX frames using binary search start at 10GE\
-| | ... | linerate, step 50kpps.
-| | ...
| | [Tags] | IMIX | 1C | PDRDISC | SKIP_PATCH
-| | ...
-| | [Template] | Discover NDR or PDR for IPv4 routing with NAT44
-| | wt=1 | rxq=1 | framesize=IMIX_v4_1 | min_rate=${50000} | search_type=PDR
+| | phy_cores=${1} | framesize=IMIX_v4_1 | search_type=PDR
| tc07-64B-2t2c-ethip4udp-ip4scale10-udpsrcscale15-snat-ndrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 routing config with 2 phy cores,\
-| | ... | 1 receive queue per NIC port. NAT44 is configured between DUTs -\
-| | ... | 10 users and 15 ports (sessions) per user.
-| | ... | [Ver] Find NDR for 64 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 50kpps.
-| | ...
| | [Tags] | 64B | 2C | NDRDISC
-| | ...
-| | [Template] | Discover NDR or PDR for IPv4 routing with NAT44
-| | wt=2 | rxq=1 | framesize=${64} | min_rate=${50000} | search_type=NDR
+| | phy_cores=${2} | framesize=${64} | search_type=NDR
| tc08-64B-2t2c-ethip4udp-ip4scale10-udpsrcscale15-snat-pdrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 routing config with 2 phy cores,\
-| | ... | 1 receive queue per NIC port. NAT44 is configured between DUTs -\
-| | ... | 10 users and 15 ports (sessions) per user.
-| | ... | [Ver] Find PDR for 64 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 50kpps.
-| | ...
| | [Tags] | 64B | 2C | PDRDISC | SKIP_PATCH
-| | ...
-| | [Template] | Discover NDR or PDR for IPv4 routing with NAT44
-| | wt=2 | rxq=1 | framesize=${64} | min_rate=${50000} | search_type=PDR
+| | phy_cores=${2} | framesize=${64} | search_type=PDR
| tc09-1518B-2t2c-ethip4udp-ip4scale10-udpsrcscale15-snat-ndrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 routing config with 2 phy cores,\
-| | ... | 1 receive queue per NIC port. NAT44 is configured between DUTs -\
-| | ... | 10 users and 15 ports (sessions) per user.
-| | ... | [Ver] Find NDR for 1518 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 50kpps.
-| | ...
| | [Tags] | 1518B | 2C | NDRDISC
-| | ...
-| | [Template] | Discover NDR or PDR for IPv4 routing with NAT44
-| | wt=2 | rxq=1 | framesize=${1518} | min_rate=${50000} | search_type=NDR
+| | phy_cores=${2} | framesize=${1518} | search_type=NDR
| tc10-1518B-2t2c-ethip4udp-ip4scale10-udpsrcscale15-snat-pdrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 routing config with 2 phy cores,\
-| | ... | 1 receive queue per NIC port. NAT44 is configured between DUTs -\
-| | ... | 10 users and 15 ports (sessions) per user.
-| | ... | [Ver] Find PDR for 1518 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 50kpps.
-| | ...
| | [Tags] | 1518B | 2C | PDRDISC | SKIP_PATCH
-| | ...
-| | [Template] | Discover NDR or PDR for IPv4 routing with NAT44
-| | wt=2 | rxq=1 | framesize=${1518} | min_rate=${50000} | search_type=PDR
+| | phy_cores=${2} | framesize=${1518} | search_type=PDR
| tc11-IMIX-2t2c-ethip4udp-ip4scale10-udpsrcscale15-snat-ndrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 routing config with 2 phy cores,\
-| | ... | 1 receive queue per NIC port. NAT44 is configured between DUTs -\
-| | ... | 10 users and 15 ports (sessions) per user.
-| | ... | [Ver] Find NDR for IMIX frames using binary search start at 10GE\
-| | ... | linerate, step 50kpps.
-| | ...
| | [Tags] | IMIX | 2C | NDRDISC
-| | ...
-| | [Template] | Discover NDR or PDR for IPv4 routing with NAT44
-| | wt=2 | rxq=1 | framesize=IMIX_v4_1 | min_rate=${50000} | search_type=NDR
+| | phy_cores=${2} | framesize=IMIX_v4_1 | search_type=NDR
| tc12-IMIX-2t2c-ethip4udp-ip4scale10-udpsrcscale15-snat-pdrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 routing config with 2 phy cores,\
-| | ... | 1 receive queue per NIC port. NAT44 is configured between DUTs -\
-| | ... | 10 users and 15 ports (sessions) per user.
-| | ... | [Ver] Find PDR for IMIX frames using binary search start at 10GE\
-| | ... | linerate, step 50kpps.
-| | ...
| | [Tags] | IMIX | 2C | PDRDISC | SKIP_PATCH
-| | ...
-| | [Template] | Discover NDR or PDR for IPv4 routing with NAT44
-| | wt=2 | rxq=1 | framesize=IMIX_v4_1 | min_rate=${50000} | search_type=PDR
+| | phy_cores=${2} | framesize=IMIX_v4_1 | search_type=PDR
| tc13-64B-4t4c-ethip4udp-ip4scale10-udpsrcscale15-snat-ndrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 routing config with 4 phy cores,\
-| | ... | 2 receive queues per NIC port. NAT44 is configured between DUTs -\
-| | ... | 10 users and 15 ports (sessions) per user.
-| | ... | [Ver] Find NDR for 64 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 50kpps.
-| | ...
| | [Tags] | 64B | 4C | NDRDISC
-| | ...
-| | [Template] | Discover NDR or PDR for IPv4 routing with NAT44
-| | wt=4 | rxq=2 | framesize=${64} | min_rate=${50000} | search_type=NDR
+| | phy_cores=${4} | framesize=${64} | search_type=NDR
| tc14-64B-4t4c-ethip4udp-ip4scale10-udpsrcscale15-snat-pdrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 routing config with 4 phy cores,\
-| | ... | 2 receive queues per NIC port. NAT44 is configured between DUTs -\
-| | ... | 10 users and 15 ports (sessions) per user.
-| | ... | [Ver] Find PDR for 64 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 50kpps.
-| | ...
| | [Tags] | 64B | 4C | PDRDISC | SKIP_PATCH
-| | ...
-| | [Template] | Discover NDR or PDR for IPv4 routing with NAT44
-| | wt=4 | rxq=2 | framesize=${64} | min_rate=${50000} | search_type=PDR
+| | phy_cores=${4} | framesize=${64} | search_type=PDR
| tc15-1518B-4t4c-ethip4udp-ip4scale10-udpsrcscale15-snat-ndrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 routing config with 4 phy cores,\
-| | ... | 2 receive queues per NIC port. NAT44 is configured between DUTs -\
-| | ... | 10 users and 15 ports (sessions) per user.
-| | ... | [Ver] Find NDR for 1518 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 50kpps.
-| | ...
| | [Tags] | 1518B | 4C | NDRDISC
-| | ...
-| | [Template] | Discover NDR or PDR for IPv4 routing with NAT44
-| | wt=4 | rxq=2 | framesize=${1518} | min_rate=${50000} | search_type=NDR
+| | phy_cores=${4} | framesize=${1518} | search_type=NDR
| tc16-1518B-4t4c-ethip4udp-ip4scale10-udpsrcscale15-snat-pdrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 routing config with 4 phy cores,\
-| | ... | 2 receive queues per NIC port. NAT44 is configured between DUTs -\
-| | ... | 10 users and 15 ports (sessions) per user.
-| | ... | [Ver] Find PDR for 1518 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 50kpps.
-| | ...
| | [Tags] | 1518B | 4C | PDRDISC | SKIP_PATCH
-| | ...
-| | [Template] | Discover NDR or PDR for IPv4 routing with NAT44
-| | wt=4 | rxq=2 | framesize=${1518} | min_rate=${50000} | search_type=PDR
+| | phy_cores=${4} | framesize=${1518} | search_type=PDR
| tc17-IMIX-4t4c-ethip4udp-ip4scale10-udpsrcscale15-snat-ndrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 routing config with 4 phy cores,\
-| | ... | 2 receive queues per NIC port. NAT44 is configured between DUTs -\
-| | ... | 10 users and 15 ports (sessions) per user.
-| | ... | [Ver] Find NDR for IMIX frames using binary search start at 10GE\
-| | ... | linerate, step 50kpps.
-| | ...
| | [Tags] | IMIX | 4C | NDRDISC
-| | ...
-| | [Template] | Discover NDR or PDR for IPv4 routing with NAT44
-| | wt=4 | rxq=2 | framesize=IMIX_v4_1 | min_rate=${50000} | search_type=NDR
+| | phy_cores=${4} | framesize=IMIX_v4_1 | search_type=NDR
| tc18-IMIX-4t4c-ethip4udp-ip4scale10-udpsrcscale15-snat-pdrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 routing config with 4 phy cores,\
-| | ... | 2 receive queues per NIC port. NAT44 is configured between DUTs -\
-| | ... | 10 users and 15 ports (sessions) per user.
-| | ... | [Ver] Find PDR for IMIX frames using binary search start at 10GE\
-| | ... | linerate, step 50kpps.
-| | ...
| | [Tags] | IMIX | 4C | PDRDISC | SKIP_PATCH
-| | ...
-| | [Template] | Discover NDR or PDR for IPv4 routing with NAT44
-| | wt=4 | rxq=2 | framesize=IMIX_v4_1 | min_rate=${50000} | search_type=PDR
+| | phy_cores=${4} | framesize=IMIX_v4_1 | search_type=PDR
diff --git a/tests/vpp/perf/ip4/10ge2p1x520-ethip4udp-ip4scale100-udpsrcscale15-nat44-ndrpdrdisc.robot b/tests/vpp/perf/ip4/10ge2p1x520-ethip4udp-ip4scale100-udpsrcscale15-nat44-ndrpdrdisc.robot
index 81795d01b8..487528d3ef 100644
--- a/tests/vpp/perf/ip4/10ge2p1x520-ethip4udp-ip4scale100-udpsrcscale15-nat44-ndrpdrdisc.robot
+++ b/tests/vpp/perf/ip4/10ge2p1x520-ethip4udp-ip4scale100-udpsrcscale15-nat44-ndrpdrdisc.robot
@@ -31,6 +31,8 @@
| Test Teardown | Tear down performance discovery test with NAT
| ... | ${min_rate}pps | ${framesize} | ${traffic_profile}
| ...
+| Test Template | Local template
+| ...
| Documentation | *NAT44 performance test cases*
| ...
| ... | *[Top] Network Topologies:* TG-DUT1-DUT2-TG 3-node circular topology
@@ -60,9 +62,9 @@
| ${traffic_profile} | trex-sl-3n-ethip4udp-100u15p
*** Keywords ***
-| Discover NDR or PDR for IPv4 routing with NAT44
-| | ...
-| | [Arguments] | ${wt} | ${rxq} | ${framesize} | ${min_rate} | ${search_type}
+| Local template
+| | [Arguments] | ${phy_cores} | ${framesize} | ${search_type}
+| | ... | ${rxq}=${None} | ${min_rate}=${50000}
| | ...
| | Set Test Variable | ${framesize}
| | Set Test Variable | ${min_rate}
@@ -72,7 +74,7 @@
| | ${threshold}= | Set Variable | ${min_rate}
| | ${get_framesize}= | Get Frame Size | ${framesize}
| | ...
-| | Given Add '${wt}' worker threads and '${rxq}' rxqueues in 3-node single-link circular topology
+| | Given Add worker threads and rxqueues to all DUTs | ${phy_cores} | ${rxq}
| | And Add PCI devices to all DUTs
| | And Run Keyword If | ${get_framesize} < ${1522}
| | ... | Add no multi seg to all DUTs
@@ -91,235 +93,73 @@
*** Test Cases ***
| tc01-64B-1t1c-ethip4udp-ip4scale100-udpsrcscale15-snat-ndrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 routing config with 1 phy core,\
-| | ... | 1 receive queue per NIC port. NAT44 is configured between DUTs -\
-| | ... | 100 users and 15 ports (sessions) per user.
-| | ... | [Ver] Find NDR for 64 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 50kpps.
-| | ...
| | [Tags] | 64B | 1C | NDRDISC
-| | ...
-| | [Template] | Discover NDR or PDR for IPv4 routing with NAT44
-| | wt=1 | rxq=1 | framesize=${64} | min_rate=${50000} | search_type=NDR
+| | phy_cores=${1} | framesize=${64} | search_type=NDR
| tc02-64B-1t1c-ethip4udp-ip4scale100-udpsrcscale15-snat-pdrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 routing config with 1 phy core,\
-| | ... | 1 receive queue per NIC port. NAT44 is configured between DUTs -\
-| | ... | 100 users and 15 ports (sessions) per user.
-| | ... | [Ver] Find PDR for 64 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 50kpps.
-| | ...
| | [Tags] | 64B | 1C | PDRDISC | SKIP_PATCH
-| | ...
-| | [Template] | Discover NDR or PDR for IPv4 routing with NAT44
-| | wt=1 | rxq=1 | framesize=${64} | min_rate=${50000} | search_type=PDR
+| | phy_cores=${1} | framesize=${64} | search_type=PDR
| tc03-1518B-1t1c-ethip4udp-ip4scale100-udpsrcscale15-snat-ndrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 routing config with 1 phy core,\
-| | ... | 1 receive queue per NIC port. NAT44 is configured between DUTs -\
-| | ... | 100 users and 15 ports (sessions) per user.
-| | ... | [Ver] Find NDR for 1518 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 50kpps.
-| | ...
| | [Tags] | 1518B | 1C | NDRDISC
-| | ...
-| | [Template] | Discover NDR or PDR for IPv4 routing with NAT44
-| | wt=1 | rxq=1 | framesize=${1518} | min_rate=${50000} | search_type=NDR
+| | phy_cores=${1} | framesize=${1518} | search_type=NDR
| tc04-1518B-1t1c-ethip4udp-ip4scale100-udpsrcscale15-snat-pdrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 routing config with 1 phy core,\
-| | ... | 1 receive queue per NIC port. NAT44 is configured between DUTs -\
-| | ... | 100 users and 15 ports (sessions) per user.
-| | ... | [Ver] Find PDR for 1518 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 50kpps.
-| | ...
| | [Tags] | 1518B | 1C | PDRDISC | SKIP_PATCH
-| | ...
-| | [Template] | Discover NDR or PDR for IPv4 routing with NAT44
-| | wt=1 | rxq=1 | framesize=${1518} | min_rate=${50000} | search_type=PDR
+| | phy_cores=${1} | framesize=${1518} | search_type=PDR
| tc05-IMIX-1t1c-ethip4udp-ip4scale100-udpsrcscale15-snat-ndrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 routing config with 1 phy core,\
-| | ... | 1 receive queue per NIC port. NAT44 is configured between DUTs -\
-| | ... | 100 users and 15 ports (sessions) per user.
-| | ... | [Ver] Find NDR for IMIX frames using binary search start at 10GE\
-| | ... | linerate, step 50kpps.
-| | ...
| | [Tags] | IMIX | 1C | NDRDISC
-| | ...
-| | [Template] | Discover NDR or PDR for IPv4 routing with NAT44
-| | wt=1 | rxq=1 | framesize=IMIX_v4_1 | min_rate=${50000} | search_type=NDR
+| | phy_cores=${1} | framesize=IMIX_v4_1 | search_type=NDR
| tc06-IMIX-1t1c-ethip4udp-ip4scale100-udpsrcscale15-snat-pdrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 routing config with 1 phy core,\
-| | ... | 1 receive queue per NIC port. NAT44 is configured between DUTs -\
-| | ... | 100 users and 15 ports (sessions) per user.
-| | ... | [Ver] Find PDR for IMIX frames using binary search start at 10GE\
-| | ... | linerate, step 50kpps.
-| | ...
| | [Tags] | IMIX | 1C | PDRDISC | SKIP_PATCH
-| | ...
-| | [Template] | Discover NDR or PDR for IPv4 routing with NAT44
-| | wt=1 | rxq=1 | framesize=IMIX_v4_1 | min_rate=${50000} | search_type=PDR
+| | phy_cores=${1} | framesize=IMIX_v4_1 | search_type=PDR
| tc07-64B-2t2c-ethip4udp-ip4scale100-udpsrcscale15-snat-ndrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 routing config with 2 phy cores,\
-| | ... | 1 receive queue per NIC port. NAT44 is configured between DUTs -\
-| | ... | 100 users and 15 ports (sessions) per user.
-| | ... | [Ver] Find NDR for 64 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 50kpps.
-| | ...
| | [Tags] | 64B | 2C | NDRDISC
-| | ...
-| | [Template] | Discover NDR or PDR for IPv4 routing with NAT44
-| | wt=2 | rxq=1 | framesize=${64} | min_rate=${50000} | search_type=NDR
+| | phy_cores=${2} | framesize=${64} | search_type=NDR
| tc08-64B-2t2c-ethip4udp-ip4scale100-udpsrcscale15-snat-pdrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 routing config with 2 phy cores,\
-| | ... | 1 receive queue per NIC port. NAT44 is configured between DUTs -\
-| | ... | 100 users and 15 ports (sessions) per user.
-| | ... | [Ver] Find PDR for 64 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 50kpps.
-| | ...
| | [Tags] | 64B | 2C | PDRDISC | SKIP_PATCH
-| | ...
-| | [Template] | Discover NDR or PDR for IPv4 routing with NAT44
-| | wt=2 | rxq=1 | framesize=${64} | min_rate=${50000} | search_type=PDR
+| | phy_cores=${2} | framesize=${64} | search_type=PDR
| tc09-1518B-2t2c-ethip4udp-ip4scale100-udpsrcscale15-snat-ndrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 routing config with 2 phy cores,\
-| | ... | 1 receive queue per NIC port. NAT44 is configured between DUTs -\
-| | ... | 100 users and 15 ports (sessions) per user.
-| | ... | [Ver] Find NDR for 1518 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 50kpps.
-| | ...
| | [Tags] | 1518B | 2C | NDRDISC
-| | ...
-| | [Template] | Discover NDR or PDR for IPv4 routing with NAT44
-| | wt=2 | rxq=1 | framesize=${1518} | min_rate=${50000} | search_type=NDR
+| | phy_cores=${2} | framesize=${1518} | search_type=NDR
| tc10-1518B-2t2c-ethip4udp-ip4scale100-udpsrcscale15-snat-pdrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 routing config with 2 phy cores,\
-| | ... | 1 receive queue per NIC port. NAT44 is configured between DUTs -\
-| | ... | 100 users and 15 ports (sessions) per user.
-| | ... | [Ver] Find PDR for 1518 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 50kpps.
-| | ...
| | [Tags] | 1518B | 2C | PDRDISC | SKIP_PATCH
-| | ...
-| | [Template] | Discover NDR or PDR for IPv4 routing with NAT44
-| | wt=2 | rxq=1 | framesize=${1518} | min_rate=${50000} | search_type=PDR
+| | phy_cores=${2} | framesize=${1518} | search_type=PDR
| tc11-IMIX-2t2c-ethip4udp-ip4scale100-udpsrcscale15-snat-ndrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 routing config with 2 phy cores,\
-| | ... | 1 receive queue per NIC port. NAT44 is configured between DUTs -\
-| | ... | 100 users and 15 ports (sessions) per user.
-| | ... | [Ver] Find NDR for IMIX frames using binary search start at 10GE\
-| | ... | linerate, step 50kpps.
-| | ...
| | [Tags] | IMIX | 2C | NDRDISC
-| | ...
-| | [Template] | Discover NDR or PDR for IPv4 routing with NAT44
-| | wt=2 | rxq=1 | framesize=IMIX_v4_1 | min_rate=${50000} | search_type=NDR
+| | phy_cores=${2} | framesize=IMIX_v4_1 | search_type=NDR
| tc12-IMIX-2t2c-ethip4udp-ip4scale100-udpsrcscale15-snat-pdrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 routing config with 2 phy cores,\
-| | ... | 1 receive queue per NIC port. NAT44 is configured between DUTs -\
-| | ... | 100 users and 15 ports (sessions) per user.
-| | ... | [Ver] Find PDR for IMIX frames using binary search start at 10GE\
-| | ... | linerate, step 50kpps.
-| | ...
| | [Tags] | IMIX | 2C | PDRDISC | SKIP_PATCH
-| | ...
-| | [Template] | Discover NDR or PDR for IPv4 routing with NAT44
-| | wt=2 | rxq=1 | framesize=IMIX_v4_1 | min_rate=${50000} | search_type=PDR
+| | phy_cores=${2} | framesize=IMIX_v4_1 | search_type=PDR
| tc13-64B-4t4c-ethip4udp-ip4scale100-udpsrcscale15-snat-ndrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 routing config with 4 phy cores,\
-| | ... | 2 receive queues per NIC port. NAT44 is configured between DUTs -\
-| | ... | 100 users and 15 ports (sessions) per user.
-| | ... | [Ver] Find NDR for 64 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 50kpps.
-| | ...
| | [Tags] | 64B | 4C | NDRDISC
-| | ...
-| | [Template] | Discover NDR or PDR for IPv4 routing with NAT44
-| | wt=4 | rxq=2 | framesize=${64} | min_rate=${50000} | search_type=NDR
+| | phy_cores=${4} | framesize=${64} | search_type=NDR
| tc14-64B-4t4c-ethip4udp-ip4scale100-udpsrcscale15-snat-pdrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 routing config with 4 phy cores,\
-| | ... | 2 receive queues per NIC port. NAT44 is configured between DUTs -\
-| | ... | 100 users and 15 ports (sessions) per user.
-| | ... | [Ver] Find PDR for 64 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 50kpps.
-| | ...
| | [Tags] | 64B | 4C | PDRDISC | SKIP_PATCH
-| | ...
-| | [Template] | Discover NDR or PDR for IPv4 routing with NAT44
-| | wt=4 | rxq=2 | framesize=${64} | min_rate=${50000} | search_type=PDR
+| | phy_cores=${4} | framesize=${64} | search_type=PDR
| tc15-1518B-4t4c-ethip4udp-ip4scale100-udpsrcscale15-snat-ndrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 routing config with 4 phy cores,\
-| | ... | 2 receive queues per NIC port. NAT44 is configured between DUTs -\
-| | ... | 100 users and 15 ports (sessions) per user.
-| | ... | [Ver] Find NDR for 1518 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 50kpps.
-| | ...
| | [Tags] | 1518B | 4C | NDRDISC
-| | ...
-| | [Template] | Discover NDR or PDR for IPv4 routing with NAT44
-| | wt=4 | rxq=2 | framesize=${1518} | min_rate=${50000} | search_type=NDR
+| | phy_cores=${4} | framesize=${1518} | search_type=NDR
| tc16-1518B-4t4c-ethip4udp-ip4scale100-udpsrcscale15-snat-pdrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 routing config with 4 phy cores,\
-| | ... | 2 receive queues per NIC port. NAT44 is configured between DUTs -\
-| | ... | 100 users and 15 ports (sessions) per user.
-| | ... | [Ver] Find PDR for 1518 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 50kpps.
-| | ...
| | [Tags] | 1518B | 4C | PDRDISC | SKIP_PATCH
-| | ...
-| | [Template] | Discover NDR or PDR for IPv4 routing with NAT44
-| | wt=4 | rxq=2 | framesize=${1518} | min_rate=${50000} | search_type=PDR
+| | phy_cores=${4} | framesize=${1518} | search_type=PDR
| tc17-IMIX-4t4c-ethip4udp-ip4scale100-udpsrcscale15-snat-ndrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 routing config with 4 phy cores,\
-| | ... | 2 receive queues per NIC port. NAT44 is configured between DUTs -\
-| | ... | 100 users and 15 ports (sessions) per user.
-| | ... | [Ver] Find NDR for IMIX frames using binary search start at 10GE\
-| | ... | linerate, step 50kpps.
-| | ...
| | [Tags] | IMIX | 4C | NDRDISC
-| | ...
-| | [Template] | Discover NDR or PDR for IPv4 routing with NAT44
-| | wt=4 | rxq=2 | framesize=IMIX_v4_1 | min_rate=${50000} | search_type=NDR
+| | phy_cores=${4} | framesize=IMIX_v4_1 | search_type=NDR
| tc18-IMIX-4t4c-ethip4udp-ip4scale100-udpsrcscale15-snat-pdrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 routing config with 4 phy cores,\
-| | ... | 2 receive queues per NIC port. NAT44 is configured between DUTs -\
-| | ... | 100 users and 15 ports (sessions) per user.
-| | ... | [Ver] Find PDR for IMIX frames using binary search start at 10GE\
-| | ... | linerate, step 50kpps.
-| | ...
| | [Tags] | IMIX | 4C | PDRDISC | SKIP_PATCH
-| | ...
-| | [Template] | Discover NDR or PDR for IPv4 routing with NAT44
-| | wt=4 | rxq=2 | framesize=IMIX_v4_1 | min_rate=${50000} | search_type=PDR
+| | phy_cores=${4} | framesize=IMIX_v4_1 | search_type=PDR
diff --git a/tests/vpp/perf/ip4/10ge2p1x520-ethip4udp-ip4scale1000-udpsrcscale15-nat44-mrr.robot b/tests/vpp/perf/ip4/10ge2p1x520-ethip4udp-ip4scale1000-udpsrcscale15-nat44-mrr.robot
index f8c88a8433..ea4096b172 100644
--- a/tests/vpp/perf/ip4/10ge2p1x520-ethip4udp-ip4scale1000-udpsrcscale15-nat44-mrr.robot
+++ b/tests/vpp/perf/ip4/10ge2p1x520-ethip4udp-ip4scale1000-udpsrcscale15-nat44-mrr.robot
@@ -30,6 +30,8 @@
| ...
| Test Teardown | Tear down performance mrr test
| ...
+| Test Template | Local template
+| ...
| Documentation | *Raw results NAT44 performance test cases*
| ...
| ... | *[Top] Network Topologies:* TG-DUT1-DUT2-TG 3-node circular topology
@@ -54,22 +56,27 @@
| ${traffic_profile}= | trex-sl-3n-ethip4udp-1000u15p
*** Keywords ***
-| Check RR for IPv4 routing with NAT44
+| Local template
| | ...
| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 routing config with ${wt} thread(s), ${wt}\
-| | ... | phy core(s), ${rxq} receive queue(s) per NIC port.NAT44 is configured\
-| | ... | between DUTs - 1000 users and 15 ports (sessions) per user.
-| | ... | [Ver] Measure MaxReceivedRate for ${framesize} frames using single\
+| | ... | [Cfg] DUT runs IPv4 routing config.
+| | ... | Each DUT uses ${phy_cores} physical core(s) for worker threads.
+| | ... | [Ver] Measure MaxReceivedRate for ${framesize}B frames using single\
| | ... | trial throughput test.
| | ...
-| | [Arguments] | ${wt} | ${rxq} | ${framesize}
+| | ... | *Arguments:*
+| | ... | - framesize - Framesize in Bytes in integer or string (IMIX_v4_1).
+| | ... | Type: integer, string
+| | ... | - phy_cores - Number of physical cores. Type: integer
+| | ... | - rxq - Number of RX queues, default value: ${None}. Type: integer
+| | ...
+| | [Arguments] | ${phy_cores} | ${framesize} | ${rxq}=${None}
| | ...
| | Set Test Variable | ${framesize}
| | ${max_rate}= | Calculate pps | ${s_limit} | ${framesize}
| | ${get_framesize}= | Get Frame Size | ${framesize}
| | ...
-| | Given Add '${wt}' worker threads and '${rxq}' rxqueues in 3-node single-link circular topology
+| | Given Add worker threads and rxqueues to all DUTs | ${phy_cores} | ${rxq}
| | And Add PCI devices to all DUTs
| | And Run Keyword If | ${get_framesize} < ${1522}
| | ... | Add no multi seg to all DUTs
@@ -81,157 +88,49 @@
*** Test Cases ***
| tc01-64B-1t1c-ethip4udp-ip4scale1000-udpsrcscale15-snat-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 routing config with 1 phy core,\
-| | ... | 1 receive queue per NIC port. NAT44 is configured between DUTs -\
-| | ... | 1000 users and 15 ports (sessions) per user.
-| | ... | [Ver] Measure MaxReceivedRate for 64B frames using single trial\
-| | ... | throughput test.
-| | ...
| | [Tags] | 64B | 1C
-| | ...
-| | [Template] | Check RR for IPv4 routing with NAT44
-| | wt=1 | rxq=1 | framesize=${64}
+| | phy_cores=${1} | framesize=${64}
| tc02-1518B-1t1c-ethip4udp-ip4scale1000-udpsrcscale15-snat-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 routing config with 1 phy core,\
-| | ... | 1 receive queue per NIC port. NAT44 is configured between DUTs -\
-| | ... | 1000 users and 15 ports (sessions) per user.
-| | ... | [Ver] Measure MaxReceivedRate for 1518B frames using single\
-| | ... | trial throughput test.
-| | ...
| | [Tags] | 1518B | 1C
-| | ...
-| | [Template] | Check RR for IPv4 routing with NAT44
-| | wt=1 | rxq=1 | framesize=${1518}
+| | phy_cores=${1} | framesize=${1518}
| tc03-9000B-1t1c-ethip4udp-ip4scale1000-udpsrcscale15-snat-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 routing config with 1 phy core,\
-| | ... | 1 receive queue per NIC port. NAT44 is configured between DUTs -\
-| | ... | 1000 users and 15 ports (sessions) per user.
-| | ... | [Ver] Measure MaxReceivedRate for 9000B frames using single\
-| | ... | trial throughput test.
-| | ...
| | [Tags] | 9000B | 1C
-| | ...
-| | [Template] | Check RR for IPv4 routing with NAT44
-| | wt=1 | rxq=1 | framesize=${9000}
+| | phy_cores=${1} | framesize=${9000}
| tc04-IMIX-1t1c-ethip4udp-ip4scale1000-udpsrcscale15-snat-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 routing config with 1 phy core,\
-| | ... | 1 receive queue per NIC port. NAT44 is configured between DUTs -\
-| | ... | 1000 users and 15 ports (sessions) per user.
-| | ... | [Ver] Measure MaxReceivedRate for IMIX_v4_1 frames using single trial\
-| | ... | throughput test.
-| | ...
| | [Tags] | IMIX | 1C
-| | ...
-| | [Template] | Check RR for IPv4 routing with NAT44
-| | wt=1 | rxq=1 | framesize=IMIX_v4_1
+| | phy_cores=${1} | framesize=IMIX_v4_1
| tc05-64B-2t2c-ethip4udp-ip4scale1000-udpsrcscale15-snat-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 routing config with 2 phy cores,\
-| | ... | 1 receive queue per NIC port. NAT44 is configured between DUTs -\
-| | ... | 1000 users and 15 ports (sessions) per user.
-| | ... | [Ver] Measure MaxReceivedRate for 64B frames using single trial\
-| | ... | throughput test.
-| | ...
| | [Tags] | 64B | 2C
-| | ...
-| | [Template] | Check RR for IPv4 routing with NAT44
-| | wt=2 | rxq=1 | framesize=${64}
+| | phy_cores=${2} | framesize=${64}
| tc06-1518B-2t2c-ethip4udp-ip4scale1000-udpsrcscale15-snat-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 routing config with 2 phy cores,\
-| | ... | 1 receive queue per NIC port. NAT44 is configured between DUTs -\
-| | ... | 1000 users and 15 ports (sessions) per user.
-| | ... | [Ver] Measure MaxReceivedRate for 1518B frames using single\
-| | ... | trial throughput test.
-| | ...
| | [Tags] | 1518B | 2C
-| | ...
-| | [Template] | Check RR for IPv4 routing with NAT44
-| | wt=2 | rxq=1 | framesize=${1518}
+| | phy_cores=${2} | framesize=${1518}
| tc07-9000B-2t2c-ethip4udp-ip4scale1000-udpsrcscale15-snat-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 routing config with 2 phy cores,\
-| | ... | 1 receive queue per NIC port. NAT44 is configured between DUTs -\
-| | ... | 1000 users and 15 ports (sessions) per user.
-| | ... | [Ver] Measure MaxReceivedRate for 9000B frames using single\
-| | ... | trial throughput test.
-| | ...
| | [Tags] | 9000B | 2C
-| | ...
-| | [Template] | Check RR for IPv4 routing with NAT44
-| | wt=2 | rxq=1 | framesize=${9000}
+| | phy_cores=${2} | framesize=${9000}
| tc08-IMIX-2t2c-ethip4udp-ip4scale1000-udpsrcscale15-snat-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 routing config with 2 phy cores,\
-| | ... | 1 receive queue per NIC port. NAT44 is configured between DUTs -\
-| | ... | 1000 users and 15 ports (sessions) per user.
-| | ... | [Ver] Measure MaxReceivedRate for IMIX_v4_1 frames using single trial\
-| | ... | throughput test.
-| | ...
| | [Tags] | IMIX | 2C
-| | ...
-| | [Template] | Check RR for IPv4 routing with NAT44
-| | wt=2 | rxq=1 | framesize=IMIX_v4_1
+| | phy_cores=${2} | framesize=IMIX_v4_1
| tc09-64B-4t4c-ethip4udp-ip4scale1000-udpsrcscale15-snat-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 routing config with 4 phy cores,\
-| | ... | 2 receive queues per NIC port. NAT44 is configured between DUTs -\
-| | ... | 1000 users and 15 ports (sessions) per user.
-| | ... | [Ver] Measure MaxReceivedRate for 64B frames using single trial\
-| | ... | throughput test.
-| | ...
| | [Tags] | 64B | 4C
-| | ...
-| | [Template] | Check RR for IPv4 routing with NAT44
-| | wt=4 | rxq=2 | framesize=${64}
+| | phy_cores=${4} | framesize=${64}
| tc10-1518B-4t4c-ethip4udp-ip4scale1000-udpsrcscale15-snat-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 routing config with 4 phy cores,\
-| | ... | 2 receive queues per NIC port. NAT44 is configured between DUTs -\
-| | ... | 1000 users and 15 ports (sessions) per user.
-| | ... | [Ver] Measure MaxReceivedRate for 1518B frames using single\
-| | ... | trial throughput test.
-| | ...
| | [Tags] | 1518B | 4C
-| | ...
-| | [Template] | Check RR for IPv4 routing with NAT44
-| | wt=4 | rxq=2 | framesize=${1518}
+| | phy_cores=${4} | framesize=${1518}
| tc11-9000B-4t4c-ethip4udp-ip4scale1000-udpsrcscale15-snat-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 routing config with 4 phy cores,\
-| | ... | 2 receive queues per NIC port. NAT44 is configured between DUTs -\
-| | ... | 1000 users and 15 ports (sessions) per user.
-| | ... | [Ver] Measure MaxReceivedRate for 9000B frames using single\
-| | ... | trial throughput test.
-| | ...
| | [Tags] | 9000B | 4C
-| | ...
-| | [Template] | Check RR for IPv4 routing with NAT44
-| | wt=4 | rxq=2 | framesize=${9000}
+| | phy_cores=${4} | framesize=${9000}
| tc12-IMIX-4t4c-ethip4udp-ip4scale1000-udpsrcscale15-snat-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 routing config with 4 phy cores,\
-| | ... | 2 receive queues per NIC port. NAT44 is configured between DUTs -\
-| | ... | 1000 users and 15 ports (sessions) per user.
-| | ... | [Ver] Measure MaxReceivedRate for IMIX_v4_1 frames using single trial\
-| | ... | throughput test.
-| | ...
| | [Tags] | IMIX | 4C
-| | ...
-| | [Template] | Check RR for IPv4 routing with NAT44
-| | wt=4 | rxq=2 | framesize=IMIX_v4_1
+| | phy_cores=${4} | framesize=IMIX_v4_1
diff --git a/tests/vpp/perf/ip4/10ge2p1x520-ethip4udp-ip4scale1000-udpsrcscale15-nat44-ndrpdrdisc.robot b/tests/vpp/perf/ip4/10ge2p1x520-ethip4udp-ip4scale1000-udpsrcscale15-nat44-ndrpdrdisc.robot
index c63f0c5ccc..7d1df407f3 100644
--- a/tests/vpp/perf/ip4/10ge2p1x520-ethip4udp-ip4scale1000-udpsrcscale15-nat44-ndrpdrdisc.robot
+++ b/tests/vpp/perf/ip4/10ge2p1x520-ethip4udp-ip4scale1000-udpsrcscale15-nat44-ndrpdrdisc.robot
@@ -31,6 +31,8 @@
| Test Teardown | Tear down performance discovery test with NAT
| ... | ${min_rate}pps | ${framesize} | ${traffic_profile}
| ...
+| Test Template | Local template
+| ...
| Documentation | *NAT44 performance test cases*
| ...
| ... | *[Top] Network Topologies:* TG-DUT1-DUT2-TG 3-node circular topology
@@ -60,9 +62,9 @@
| ${traffic_profile} | trex-sl-3n-ethip4udp-1000u15p
*** Keywords ***
-| Discover NDR or PDR for IPv4 routing with NAT44
-| | ...
-| | [Arguments] | ${wt} | ${rxq} | ${framesize} | ${min_rate} | ${search_type}
+| Local template
+| | [Arguments] | ${phy_cores} | ${framesize} | ${search_type}
+| | ... | ${rxq}=${None} | ${min_rate}=${50000}
| | ...
| | Set Test Variable | ${framesize}
| | Set Test Variable | ${min_rate}
@@ -72,7 +74,7 @@
| | ${threshold}= | Set Variable | ${min_rate}
| | ${get_framesize}= | Get Frame Size | ${framesize}
| | ...
-| | Given Add '${wt}' worker threads and '${rxq}' rxqueues in 3-node single-link circular topology
+| | Given Add worker threads and rxqueues to all DUTs | ${phy_cores} | ${rxq}
| | And Add PCI devices to all DUTs
| | And Run Keyword If | ${get_framesize} < ${1522}
| | ... | Add no multi seg to all DUTs
@@ -91,235 +93,73 @@
*** Test Cases ***
| tc01-64B-1t1c-ethip4udp-ip4scale1000-udpsrcscale15-snat-ndrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 routing config with 1 phy core,\
-| | ... | 1 receive queue per NIC port. NAT44 is configured between DUTs -\
-| | ... | 1000 users and 15 ports (sessions) per user.
-| | ... | [Ver] Find NDR for 64 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 50kpps.
-| | ...
| | [Tags] | 64B | 1C | NDRDISC
-| | ...
-| | [Template] | Discover NDR or PDR for IPv4 routing with NAT44
-| | wt=1 | rxq=1 | framesize=${64} | min_rate=${50000} | search_type=NDR
+| | phy_cores=${1} | framesize=${64} | search_type=NDR
| tc02-64B-1t1c-ethip4udp-ip4scale1000-udpsrcscale15-snat-pdrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 routing config with 1 phy core,\
-| | ... | 1 receive queue per NIC port. NAT44 is configured between DUTs -\
-| | ... | 1000 users and 15 ports (sessions) per user.
-| | ... | [Ver] Find PDR for 64 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 50kpps.
-| | ...
| | [Tags] | 64B | 1C | PDRDISC | SKIP_PATCH
-| | ...
-| | [Template] | Discover NDR or PDR for IPv4 routing with NAT44
-| | wt=1 | rxq=1 | framesize=${64} | min_rate=${50000} | search_type=PDR
+| | phy_cores=${1} | framesize=${64} | search_type=PDR
| tc03-1518B-1t1c-ethip4udp-ip4scale1000-udpsrcscale15-snat-ndrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 routing config with 1 phy core,\
-| | ... | 1 receive queue per NIC port. NAT44 is configured between DUTs -\
-| | ... | 1000 users and 15 ports (sessions) per user.
-| | ... | [Ver] Find NDR for 1518 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 50kpps.
-| | ...
| | [Tags] | 1518B | 1C | NDRDISC
-| | ...
-| | [Template] | Discover NDR or PDR for IPv4 routing with NAT44
-| | wt=1 | rxq=1 | framesize=${1518} | min_rate=${50000} | search_type=NDR
+| | phy_cores=${1} | framesize=${1518} | search_type=NDR
| tc04-1518B-1t1c-ethip4udp-ip4scale1000-udpsrcscale15-snat-pdrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 routing config with 1 phy core,\
-| | ... | 1 receive queue per NIC port. NAT44 is configured between DUTs -\
-| | ... | 1000 users and 15 ports (sessions) per user.
-| | ... | [Ver] Find PDR for 1518 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 50kpps.
-| | ...
| | [Tags] | 1518B | 1C | PDRDISC | SKIP_PATCH
-| | ...
-| | [Template] | Discover NDR or PDR for IPv4 routing with NAT44
-| | wt=1 | rxq=1 | framesize=${1518} | min_rate=${50000} | search_type=PDR
+| | phy_cores=${1} | framesize=${1518} | search_type=PDR
| tc05-IMIX-1t1c-ethip4udp-ip4scale1000-udpsrcscale15-snat-ndrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 routing config with 1 phy core,\
-| | ... | 1 receive queue per NIC port. NAT44 is configured between DUTs -\
-| | ... | 1000 users and 15 ports (sessions) per user.
-| | ... | [Ver] Find NDR for IMIX frames using binary search start at 10GE\
-| | ... | linerate, step 50kpps.
-| | ...
| | [Tags] | IMIX | 1C | NDRDISC
-| | ...
-| | [Template] | Discover NDR or PDR for IPv4 routing with NAT44
-| | wt=1 | rxq=1 | framesize=IMIX_v4_1 | min_rate=${50000} | search_type=NDR
+| | phy_cores=${1} | framesize=IMIX_v4_1 | search_type=NDR
| tc06-IMIX-1t1c-ethip4udp-ip4scale1000-udpsrcscale15-snat-pdrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 routing config with 1 phy core,\
-| | ... | 1 receive queue per NIC port. NAT44 is configured between DUTs -\
-| | ... | 1000 users and 15 ports (sessions) per user.
-| | ... | [Ver] Find PDR for IMIX frames using binary search start at 10GE\
-| | ... | linerate, step 50kpps.
-| | ...
| | [Tags] | IMIX | 1C | PDRDISC | SKIP_PATCH
-| | ...
-| | [Template] | Discover NDR or PDR for IPv4 routing with NAT44
-| | wt=1 | rxq=1 | framesize=IMIX_v4_1 | min_rate=${50000} | search_type=PDR
+| | phy_cores=${1} | framesize=IMIX_v4_1 | search_type=PDR
| tc07-64B-2t2c-ethip4udp-ip4scale1000-udpsrcscale15-snat-ndrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 routing config with 2 phy cores,\
-| | ... | 1 receive queue per NIC port. NAT44 is configured between DUTs -\
-| | ... | 1000 users and 15 ports (sessions) per user.
-| | ... | [Ver] Find NDR for 64 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 50kpps.
-| | ...
| | [Tags] | 64B | 2C | NDRDISC
-| | ...
-| | [Template] | Discover NDR or PDR for IPv4 routing with NAT44
-| | wt=2 | rxq=1 | framesize=${64} | min_rate=${50000} | search_type=NDR
+| | phy_cores=${2} | framesize=${64} | search_type=NDR
| tc08-64B-2t2c-ethip4udp-ip4scale1000-udpsrcscale15-snat-pdrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 routing config with 2 phy cores,\
-| | ... | 1 receive queue per NIC port. NAT44 is configured between DUTs -\
-| | ... | 1000 users and 15 ports (sessions) per user.
-| | ... | [Ver] Find PDR for 64 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 50kpps.
-| | ...
| | [Tags] | 64B | 2C | PDRDISC | SKIP_PATCH
-| | ...
-| | [Template] | Discover NDR or PDR for IPv4 routing with NAT44
-| | wt=2 | rxq=1 | framesize=${64} | min_rate=${50000} | search_type=PDR
+| | phy_cores=${2} | framesize=${64} | search_type=PDR
| tc09-1518B-2t2c-ethip4udp-ip4scale1000-udpsrcscale15-snat-ndrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 routing config with 2 phy cores,\
-| | ... | 1 receive queue per NIC port. NAT44 is configured between DUTs -\
-| | ... | 1000 users and 15 ports (sessions) per user.
-| | ... | [Ver] Find NDR for 1518 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 50kpps.
-| | ...
| | [Tags] | 1518B | 2C | NDRDISC
-| | ...
-| | [Template] | Discover NDR or PDR for IPv4 routing with NAT44
-| | wt=2 | rxq=1 | framesize=${1518} | min_rate=${50000} | search_type=NDR
+| | phy_cores=${2} | framesize=${1518} | search_type=NDR
| tc10-1518B-2t2c-ethip4udp-ip4scale1000-udpsrcscale15-snat-pdrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 routing config with 2 phy cores,\
-| | ... | 1 receive queue per NIC port. NAT44 is configured between DUTs -\
-| | ... | 1000 users and 15 ports (sessions) per user.
-| | ... | [Ver] Find PDR for 1518 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 50kpps.
-| | ...
| | [Tags] | 1518B | 2C | PDRDISC | SKIP_PATCH
-| | ...
-| | [Template] | Discover NDR or PDR for IPv4 routing with NAT44
-| | wt=2 | rxq=1 | framesize=${1518} | min_rate=${50000} | search_type=PDR
+| | phy_cores=${2} | framesize=${1518} | search_type=PDR
| tc11-IMIX-2t2c-ethip4udp-ip4scale1000-udpsrcscale15-snat-ndrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 routing config with 2 phy cores,\
-| | ... | 1 receive queue per NIC port. NAT44 is configured between DUTs -\
-| | ... | 1000 users and 15 ports (sessions) per user.
-| | ... | [Ver] Find NDR for IMIX frames using binary search start at 10GE\
-| | ... | linerate, step 50kpps.
-| | ...
| | [Tags] | IMIX | 2C | NDRDISC
-| | ...
-| | [Template] | Discover NDR or PDR for IPv4 routing with NAT44
-| | wt=2 | rxq=1 | framesize=IMIX_v4_1 | min_rate=${50000} | search_type=NDR
+| | phy_cores=${2} | framesize=IMIX_v4_1 | search_type=NDR
| tc12-IMIX-2t2c-ethip4udp-ip4scale1000-udpsrcscale15-snat-pdrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 routing config with 2 phy cores,\
-| | ... | 1 receive queue per NIC port. NAT44 is configured between DUTs -\
-| | ... | 1000 users and 15 ports (sessions) per user.
-| | ... | [Ver] Find PDR for IMIX frames using binary search start at 10GE\
-| | ... | linerate, step 50kpps.
-| | ...
| | [Tags] | IMIX | 2C | PDRDISC | SKIP_PATCH
-| | ...
-| | [Template] | Discover NDR or PDR for IPv4 routing with NAT44
-| | wt=2 | rxq=1 | framesize=IMIX_v4_1 | min_rate=${50000} | search_type=PDR
+| | phy_cores=${2} | framesize=IMIX_v4_1 | search_type=PDR
| tc13-64B-4t4c-ethip4udp-ip4scale1000-udpsrcscale15-snat-ndrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 routing config with 4 phy cores,\
-| | ... | 2 receive queues per NIC port. NAT44 is configured between DUTs -\
-| | ... | 1000 users and 15 ports (sessions) per user.
-| | ... | [Ver] Find NDR for 64 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 50kpps.
-| | ...
| | [Tags] | 64B | 4C | NDRDISC
-| | ...
-| | [Template] | Discover NDR or PDR for IPv4 routing with NAT44
-| | wt=4 | rxq=2 | framesize=${64} | min_rate=${50000} | search_type=NDR
+| | phy_cores=${4} | framesize=${64} | search_type=NDR
| tc14-64B-4t4c-ethip4udp-ip4scale1000-udpsrcscale15-snat-pdrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 routing config with 4 phy cores,\
-| | ... | 2 receive queues per NIC port. NAT44 is configured between DUTs -\
-| | ... | 1000 users and 15 ports (sessions) per user.
-| | ... | [Ver] Find PDR for 64 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 50kpps.
-| | ...
| | [Tags] | 64B | 4C | PDRDISC | SKIP_PATCH
-| | ...
-| | [Template] | Discover NDR or PDR for IPv4 routing with NAT44
-| | wt=4 | rxq=2 | framesize=${64} | min_rate=${50000} | search_type=PDR
+| | phy_cores=${4} | framesize=${64} | search_type=PDR
| tc15-1518B-4t4c-ethip4udp-ip4scale1000-udpsrcscale15-snat-ndrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 routing config with 4 phy cores,\
-| | ... | 2 receive queues per NIC port. NAT44 is configured between DUTs -\
-| | ... | 1000 users and 15 ports (sessions) per user.
-| | ... | [Ver] Find NDR for 1518 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 50kpps.
-| | ...
| | [Tags] | 1518B | 4C | NDRDISC
-| | ...
-| | [Template] | Discover NDR or PDR for IPv4 routing with NAT44
-| | wt=4 | rxq=2 | framesize=${1518} | min_rate=${50000} | search_type=NDR
+| | phy_cores=${4} | framesize=${1518} | search_type=NDR
| tc16-1518B-4t4c-ethip4udp-ip4scale1000-udpsrcscale15-snat-pdrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 routing config with 4 phy cores,\
-| | ... | 2 receive queues per NIC port. NAT44 is configured between DUTs -\
-| | ... | 1000 users and 15 ports (sessions) per user.
-| | ... | [Ver] Find PDR for 1518 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 50kpps.
-| | ...
| | [Tags] | 1518B | 4C | PDRDISC | SKIP_PATCH
-| | ...
-| | [Template] | Discover NDR or PDR for IPv4 routing with NAT44
-| | wt=4 | rxq=2 | framesize=${1518} | min_rate=${50000} | search_type=PDR
+| | phy_cores=${4} | framesize=${1518} | search_type=PDR
| tc17-IMIX-4t4c-ethip4udp-ip4scale1000-udpsrcscale15-snat-ndrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 routing config with 4 phy cores,\
-| | ... | 2 receive queues per NIC port. NAT44 is configured between DUTs -\
-| | ... | 1000 users and 15 ports (sessions) per user.
-| | ... | [Ver] Find NDR for IMIX frames using binary search start at 10GE\
-| | ... | linerate, step 50kpps.
-| | ...
| | [Tags] | IMIX | 4C | NDRDISC
-| | ...
-| | [Template] | Discover NDR or PDR for IPv4 routing with NAT44
-| | wt=4 | rxq=2 | framesize=IMIX_v4_1 | min_rate=${50000} | search_type=NDR
+| | phy_cores=${4} | framesize=IMIX_v4_1 | search_type=NDR
| tc18-IMIX-4t4c-ethip4udp-ip4scale1000-udpsrcscale15-snat-pdrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 routing config with 4 phy cores,\
-| | ... | 2 receive queues per NIC port. NAT44 is configured between DUTs -\
-| | ... | 1000 users and 15 ports (sessions) per user.
-| | ... | [Ver] Find PDR for IMIX frames using binary search start at 10GE\
-| | ... | linerate, step 50kpps.
-| | ...
| | [Tags] | IMIX | 4C | PDRDISC | SKIP_PATCH
-| | ...
-| | [Template] | Discover NDR or PDR for IPv4 routing with NAT44
-| | wt=4 | rxq=2 | framesize=IMIX_v4_1 | min_rate=${50000} | search_type=PDR
+| | phy_cores=${4} | framesize=IMIX_v4_1 | search_type=PDR
diff --git a/tests/vpp/perf/ip4/10ge2p1x520-ethip4udp-ip4scale2000-udpsrcscale15-nat44-ndrpdrdisc.robot b/tests/vpp/perf/ip4/10ge2p1x520-ethip4udp-ip4scale2000-udpsrcscale15-nat44-ndrpdrdisc.robot
index b5980ca6a4..d4befa97c4 100644
--- a/tests/vpp/perf/ip4/10ge2p1x520-ethip4udp-ip4scale2000-udpsrcscale15-nat44-ndrpdrdisc.robot
+++ b/tests/vpp/perf/ip4/10ge2p1x520-ethip4udp-ip4scale2000-udpsrcscale15-nat44-ndrpdrdisc.robot
@@ -31,6 +31,8 @@
| Test Teardown | Tear down performance discovery test with NAT
| ... | ${min_rate}pps | ${framesize} | ${traffic_profile}
| ...
+| Test Template | Local template
+| ...
| Documentation | *NAT44 performance test cases*
| ...
| ... | *[Top] Network Topologies:* TG-DUT1-DUT2-TG 3-node circular topology
@@ -60,9 +62,9 @@
| ${traffic_profile} | trex-sl-3n-ethip4udp-2000u15p
*** Keywords ***
-| Discover NDR or PDR for IPv4 routing with NAT44
-| | ...
-| | [Arguments] | ${wt} | ${rxq} | ${framesize} | ${min_rate} | ${search_type}
+| Local template
+| | [Arguments] | ${phy_cores} | ${framesize} | ${search_type}
+| | ... | ${rxq}=${None} | ${min_rate}=${50000}
| | ...
| | Set Test Variable | ${framesize}
| | Set Test Variable | ${min_rate}
@@ -72,7 +74,7 @@
| | ${threshold}= | Set Variable | ${min_rate}
| | ${get_framesize}= | Get Frame Size | ${framesize}
| | ...
-| | Given Add '${wt}' worker threads and '${rxq}' rxqueues in 3-node single-link circular topology
+| | Given Add worker threads and rxqueues to all DUTs | ${phy_cores} | ${rxq}
| | And Add PCI devices to all DUTs
| | And Run Keyword If | ${get_framesize} < ${1522}
| | ... | Add no multi seg to all DUTs
@@ -91,235 +93,73 @@
*** Test Cases ***
| tc01-64B-1t1c-ethip4udp-ip4scale2000-udpsrcscale15-snat-ndrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 routing config with 1 phy core,\
-| | ... | 1 receive queue per NIC port. NAT44 is configured between DUTs -\
-| | ... | 2000 users and 15 ports (sessions) per user.
-| | ... | [Ver] Find NDR for 64 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 50kpps.
-| | ...
| | [Tags] | 64B | 1C | NDRDISC
-| | ...
-| | [Template] | Discover NDR or PDR for IPv4 routing with NAT44
-| | wt=1 | rxq=1 | framesize=${64} | min_rate=${50000} | search_type=NDR
+| | phy_cores=${1} | framesize=${64} | search_type=NDR
| tc02-64B-1t1c-ethip4udp-ip4scale2000-udpsrcscale15-snat-pdrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 routing config with 1 phy core,\
-| | ... | 1 receive queue per NIC port. NAT44 is configured between DUTs -\
-| | ... | 2000 users and 15 ports (sessions) per user.
-| | ... | [Ver] Find PDR for 64 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 50kpps.
-| | ...
| | [Tags] | 64B | 1C | PDRDISC | SKIP_PATCH
-| | ...
-| | [Template] | Discover NDR or PDR for IPv4 routing with NAT44
-| | wt=1 | rxq=1 | framesize=${64} | min_rate=${50000} | search_type=PDR
+| | phy_cores=${1} | framesize=${64} | search_type=PDR
| tc03-1518B-1t1c-ethip4udp-ip4scale2000-udpsrcscale15-snat-ndrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 routing config with 1 phy core,\
-| | ... | 1 receive queue per NIC port. NAT44 is configured between DUTs -\
-| | ... | 2000 users and 15 ports (sessions) per user.
-| | ... | [Ver] Find NDR for 1518 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 50kpps.
-| | ...
| | [Tags] | 1518B | 1C | NDRDISC
-| | ...
-| | [Template] | Discover NDR or PDR for IPv4 routing with NAT44
-| | wt=1 | rxq=1 | framesize=${1518} | min_rate=${50000} | search_type=NDR
+| | phy_cores=${1} | framesize=${1518} | search_type=NDR
| tc04-1518B-1t1c-ethip4udp-ip4scale2000-udpsrcscale15-snat-pdrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 routing config with 1 phy core,\
-| | ... | 1 receive queue per NIC port. NAT44 is configured between DUTs -\
-| | ... | 2000 users and 15 ports (sessions) per user.
-| | ... | [Ver] Find PDR for 1518 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 50kpps.
-| | ...
| | [Tags] | 1518B | 1C | PDRDISC | SKIP_PATCH
-| | ...
-| | [Template] | Discover NDR or PDR for IPv4 routing with NAT44
-| | wt=1 | rxq=1 | framesize=${1518} | min_rate=${50000} | search_type=PDR
+| | phy_cores=${1} | framesize=${1518} | search_type=PDR
| tc05-IMIX-1t1c-ethip4udp-ip4scale2000-udpsrcscale15-snat-ndrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 routing config with 1 phy core,\
-| | ... | 1 receive queue per NIC port. NAT44 is configured between DUTs -\
-| | ... | 2000 users and 15 ports (sessions) per user.
-| | ... | [Ver] Find NDR for IMIX frames using binary search start at 10GE\
-| | ... | linerate, step 50kpps.
-| | ...
| | [Tags] | IMIX | 1C | NDRDISC
-| | ...
-| | [Template] | Discover NDR or PDR for IPv4 routing with NAT44
-| | wt=1 | rxq=1 | framesize=IMIX_v4_1 | min_rate=${50000} | search_type=NDR
+| | phy_cores=${1} | framesize=IMIX_v4_1 | search_type=NDR
| tc06-IMIX-1t1c-ethip4udp-ip4scale2000-udpsrcscale15-snat-pdrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 routing config with 1 phy core,\
-| | ... | 1 receive queue per NIC port. NAT44 is configured between DUTs -\
-| | ... | 2000 users and 15 ports (sessions) per user.
-| | ... | [Ver] Find PDR for IMIX frames using binary search start at 10GE\
-| | ... | linerate, step 50kpps.
-| | ...
| | [Tags] | IMIX | 1C | PDRDISC | SKIP_PATCH
-| | ...
-| | [Template] | Discover NDR or PDR for IPv4 routing with NAT44
-| | wt=1 | rxq=1 | framesize=IMIX_v4_1 | min_rate=${50000} | search_type=PDR
+| | phy_cores=${1} | framesize=IMIX_v4_1 | search_type=PDR
| tc07-64B-2t2c-ethip4udp-ip4scale2000-udpsrcscale15-snat-ndrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 routing config with 2 phy cores,\
-| | ... | 1 receive queue per NIC port. NAT44 is configured between DUTs -\
-| | ... | 2000 users and 15 ports (sessions) per user.
-| | ... | [Ver] Find NDR for 64 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 50kpps.
-| | ...
| | [Tags] | 64B | 2C | NDRDISC
-| | ...
-| | [Template] | Discover NDR or PDR for IPv4 routing with NAT44
-| | wt=2 | rxq=1 | framesize=${64} | min_rate=${50000} | search_type=NDR
+| | phy_cores=${2} | framesize=${64} | search_type=NDR
| tc08-64B-2t2c-ethip4udp-ip4scale2000-udpsrcscale15-snat-pdrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 routing config with 2 phy cores,\
-| | ... | 1 receive queue per NIC port. NAT44 is configured between DUTs -\
-| | ... | 2000 users and 15 ports (sessions) per user.
-| | ... | [Ver] Find PDR for 64 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 50kpps.
-| | ...
| | [Tags] | 64B | 2C | PDRDISC | SKIP_PATCH
-| | ...
-| | [Template] | Discover NDR or PDR for IPv4 routing with NAT44
-| | wt=2 | rxq=1 | framesize=${64} | min_rate=${50000} | search_type=PDR
+| | phy_cores=${2} | framesize=${64} | search_type=PDR
| tc09-1518B-2t2c-ethip4udp-ip4scale2000-udpsrcscale15-snat-ndrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 routing config with 2 phy cores,\
-| | ... | 1 receive queue per NIC port. NAT44 is configured between DUTs -\
-| | ... | 2000 users and 15 ports (sessions) per user.
-| | ... | [Ver] Find NDR for 1518 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 50kpps.
-| | ...
| | [Tags] | 1518B | 2C | NDRDISC
-| | ...
-| | [Template] | Discover NDR or PDR for IPv4 routing with NAT44
-| | wt=2 | rxq=1 | framesize=${1518} | min_rate=${50000} | search_type=NDR
+| | phy_cores=${2} | framesize=${1518} | search_type=NDR
| tc10-1518B-2t2c-ethip4udp-ip4scale2000-udpsrcscale15-snat-pdrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 routing config with 2 phy cores,\
-| | ... | 1 receive queue per NIC port. NAT44 is configured between DUTs -\
-| | ... | 2000 users and 15 ports (sessions) per user.
-| | ... | [Ver] Find PDR for 1518 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 50kpps.
-| | ...
| | [Tags] | 1518B | 2C | PDRDISC | SKIP_PATCH
-| | ...
-| | [Template] | Discover NDR or PDR for IPv4 routing with NAT44
-| | wt=2 | rxq=1 | framesize=${1518} | min_rate=${50000} | search_type=PDR
+| | phy_cores=${2} | framesize=${1518} | search_type=PDR
| tc11-IMIX-2t2c-ethip4udp-ip4scale2000-udpsrcscale15-snat-ndrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 routing config with 2 phy cores,\
-| | ... | 1 receive queue per NIC port. NAT44 is configured between DUTs -\
-| | ... | 2000 users and 15 ports (sessions) per user.
-| | ... | [Ver] Find NDR for IMIX frames using binary search start at 10GE\
-| | ... | linerate, step 50kpps.
-| | ...
| | [Tags] | IMIX | 2C | NDRDISC
-| | ...
-| | [Template] | Discover NDR or PDR for IPv4 routing with NAT44
-| | wt=2 | rxq=1 | framesize=IMIX_v4_1 | min_rate=${50000} | search_type=NDR
+| | phy_cores=${2} | framesize=IMIX_v4_1 | search_type=NDR
| tc12-IMIX-2t2c-ethip4udp-ip4scale2000-udpsrcscale15-snat-pdrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 routing config with 2 phy cores,\
-| | ... | 1 receive queue per NIC port. NAT44 is configured between DUTs -\
-| | ... | 2000 users and 15 ports (sessions) per user.
-| | ... | [Ver] Find PDR for IMIX frames using binary search start at 10GE\
-| | ... | linerate, step 50kpps.
-| | ...
| | [Tags] | IMIX | 2C | PDRDISC | SKIP_PATCH
-| | ...
-| | [Template] | Discover NDR or PDR for IPv4 routing with NAT44
-| | wt=2 | rxq=1 | framesize=IMIX_v4_1 | min_rate=${50000} | search_type=PDR
+| | phy_cores=${2} | framesize=IMIX_v4_1 | search_type=PDR
| tc13-64B-4t4c-ethip4udp-ip4scale2000-udpsrcscale15-snat-ndrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 routing config with 4 phy cores,\
-| | ... | 2 receive queues per NIC port. NAT44 is configured between DUTs -\
-| | ... | 2000 users and 15 ports (sessions) per user.
-| | ... | [Ver] Find NDR for 64 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 50kpps.
-| | ...
| | [Tags] | 64B | 4C | NDRDISC
-| | ...
-| | [Template] | Discover NDR or PDR for IPv4 routing with NAT44
-| | wt=4 | rxq=2 | framesize=${64} | min_rate=${50000} | search_type=NDR
+| | phy_cores=${4} | framesize=${64} | search_type=NDR
| tc14-64B-4t4c-ethip4udp-ip4scale2000-udpsrcscale15-snat-pdrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 routing config with 4 phy cores,\
-| | ... | 2 receive queues per NIC port. NAT44 is configured between DUTs -\
-| | ... | 2000 users and 15 ports (sessions) per user.
-| | ... | [Ver] Find PDR for 64 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 50kpps.
-| | ...
| | [Tags] | 64B | 4C | PDRDISC | SKIP_PATCH
-| | ...
-| | [Template] | Discover NDR or PDR for IPv4 routing with NAT44
-| | wt=4 | rxq=2 | framesize=${64} | min_rate=${50000} | search_type=PDR
+| | phy_cores=${4} | framesize=${64} | search_type=PDR
| tc15-1518B-4t4c-ethip4udp-ip4scale2000-udpsrcscale15-snat-ndrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 routing config with 4 phy cores,\
-| | ... | 2 receive queues per NIC port. NAT44 is configured between DUTs -\
-| | ... | 2000 users and 15 ports (sessions) per user.
-| | ... | [Ver] Find NDR for 1518 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 50kpps.
-| | ...
| | [Tags] | 1518B | 4C | NDRDISC
-| | ...
-| | [Template] | Discover NDR or PDR for IPv4 routing with NAT44
-| | wt=4 | rxq=2 | framesize=${1518} | min_rate=${50000} | search_type=NDR
+| | phy_cores=${4} | framesize=${1518} | search_type=NDR
| tc16-1518B-4t4c-ethip4udp-ip4scale2000-udpsrcscale15-snat-pdrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 routing config with 4 phy cores,\
-| | ... | 2 receive queues per NIC port. NAT44 is configured between DUTs -\
-| | ... | 2000 users and 15 ports (sessions) per user.
-| | ... | [Ver] Find PDR for 1518 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 50kpps.
-| | ...
| | [Tags] | 1518B | 4C | PDRDISC | SKIP_PATCH
-| | ...
-| | [Template] | Discover NDR or PDR for IPv4 routing with NAT44
-| | wt=4 | rxq=2 | framesize=${1518} | min_rate=${50000} | search_type=PDR
+| | phy_cores=${4} | framesize=${1518} | search_type=PDR
| tc17-IMIX-4t4c-ethip4udp-ip4scale2000-udpsrcscale15-snat-ndrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 routing config with 4 phy cores,\
-| | ... | 2 receive queues per NIC port. NAT44 is configured between DUTs -\
-| | ... | 2000 users and 15 ports (sessions) per user.
-| | ... | [Ver] Find NDR for IMIX frames using binary search start at 10GE\
-| | ... | linerate, step 50kpps.
-| | ...
| | [Tags] | IMIX | 4C | NDRDISC
-| | ...
-| | [Template] | Discover NDR or PDR for IPv4 routing with NAT44
-| | wt=4 | rxq=2 | framesize=IMIX_v4_1 | min_rate=${50000} | search_type=NDR
+| | phy_cores=${4} | framesize=IMIX_v4_1 | search_type=NDR
| tc18-IMIX-4t4c-ethip4udp-ip4scale2000-udpsrcscale15-snat-pdrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 routing config with 4 phy cores,\
-| | ... | 2 receive queues per NIC port. NAT44 is configured between DUTs -\
-| | ... | 2000 users and 15 ports (sessions) per user.
-| | ... | [Ver] Find PDR for IMIX frames using binary search start at 10GE\
-| | ... | linerate, step 50kpps.
-| | ...
| | [Tags] | IMIX | 4C | PDRDISC | SKIP_PATCH
-| | ...
-| | [Template] | Discover NDR or PDR for IPv4 routing with NAT44
-| | wt=4 | rxq=2 | framesize=IMIX_v4_1 | min_rate=${50000} | search_type=PDR
+| | phy_cores=${4} | framesize=IMIX_v4_1 | search_type=PDR
diff --git a/tests/vpp/perf/ip4/10ge2p1x520-ethip4udp-ip4scale4000-udpsrcscale15-nat44-ndrpdrdisc.robot b/tests/vpp/perf/ip4/10ge2p1x520-ethip4udp-ip4scale4000-udpsrcscale15-nat44-ndrpdrdisc.robot
index 395668c119..da11430106 100644
--- a/tests/vpp/perf/ip4/10ge2p1x520-ethip4udp-ip4scale4000-udpsrcscale15-nat44-ndrpdrdisc.robot
+++ b/tests/vpp/perf/ip4/10ge2p1x520-ethip4udp-ip4scale4000-udpsrcscale15-nat44-ndrpdrdisc.robot
@@ -31,6 +31,8 @@
| Test Teardown | Tear down performance discovery test with NAT
| ... | ${min_rate}pps | ${framesize} | ${traffic_profile}
| ...
+| Test Template | Local template
+| ...
| Documentation | *NAT44 performance test cases*
| ...
| ... | *[Top] Network Topologies:* TG-DUT1-DUT2-TG 3-node circular topology
@@ -60,9 +62,9 @@
| ${traffic_profile} | trex-sl-3n-ethip4udp-4000u15p
*** Keywords ***
-| Discover NDR or PDR for IPv4 routing with NAT44
-| | ...
-| | [Arguments] | ${wt} | ${rxq} | ${framesize} | ${min_rate} | ${search_type}
+| Local template
+| | [Arguments] | ${phy_cores} | ${framesize} | ${search_type}
+| | ... | ${rxq}=${None} | ${min_rate}=${50000}
| | ...
| | Set Test Variable | ${framesize}
| | Set Test Variable | ${min_rate}
@@ -72,7 +74,7 @@
| | ${threshold}= | Set Variable | ${min_rate}
| | ${get_framesize}= | Get Frame Size | ${framesize}
| | ...
-| | Given Add '${wt}' worker threads and '${rxq}' rxqueues in 3-node single-link circular topology
+| | Given Add worker threads and rxqueues to all DUTs | ${phy_cores} | ${rxq}
| | And Add PCI devices to all DUTs
| | And Run Keyword If | ${get_framesize} < ${1522}
| | ... | Add no multi seg to all DUTs
@@ -91,235 +93,73 @@
*** Test Cases ***
| tc01-64B-1t1c-ethip4udp-ip4scale4000-udpsrcscale15-snat-ndrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 routing config with 1 phy core,\
-| | ... | 1 receive queue per NIC port. NAT44 is configured between DUTs -\
-| | ... | 4000 users and 15 ports (sessions) per user.
-| | ... | [Ver] Find NDR for 64 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 50kpps.
-| | ...
| | [Tags] | 64B | 1C | NDRDISC
-| | ...
-| | [Template] | Discover NDR or PDR for IPv4 routing with NAT44
-| | wt=1 | rxq=1 | framesize=${64} | min_rate=${50000} | search_type=NDR
+| | phy_cores=${1} | framesize=${64} | search_type=NDR
| tc02-64B-1t1c-ethip4udp-ip4scale4000-udpsrcscale15-snat-pdrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 routing config with 1 phy core,\
-| | ... | 1 receive queue per NIC port. NAT44 is configured between DUTs -\
-| | ... | 4000 users and 15 ports (sessions) per user.
-| | ... | [Ver] Find PDR for 64 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 50kpps.
-| | ...
| | [Tags] | 64B | 1C | PDRDISC | SKIP_PATCH
-| | ...
-| | [Template] | Discover NDR or PDR for IPv4 routing with NAT44
-| | wt=1 | rxq=1 | framesize=${64} | min_rate=${50000} | search_type=PDR
+| | phy_cores=${1} | framesize=${64} | search_type=PDR
| tc03-1518B-1t1c-ethip4udp-ip4scale4000-udpsrcscale15-snat-ndrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 routing config with 1 phy core,\
-| | ... | 1 receive queue per NIC port. NAT44 is configured between DUTs -\
-| | ... | 4000 users and 15 ports (sessions) per user.
-| | ... | [Ver] Find NDR for 1518 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 50kpps.
-| | ...
| | [Tags] | 1518B | 1C | NDRDISC
-| | ...
-| | [Template] | Discover NDR or PDR for IPv4 routing with NAT44
-| | wt=1 | rxq=1 | framesize=${1518} | min_rate=${50000} | search_type=NDR
+| | phy_cores=${1} | framesize=${1518} | search_type=NDR
| tc04-1518B-1t1c-ethip4udp-ip4scale4000-udpsrcscale15-snat-pdrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 routing config with 1 phy core,\
-| | ... | 1 receive queue per NIC port. NAT44 is configured between DUTs -\
-| | ... | 4000 users and 15 ports (sessions) per user.
-| | ... | [Ver] Find PDR for 1518 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 50kpps.
-| | ...
| | [Tags] | 1518B | 1C | PDRDISC | SKIP_PATCH
-| | ...
-| | [Template] | Discover NDR or PDR for IPv4 routing with NAT44
-| | wt=1 | rxq=1 | framesize=${1518} | min_rate=${50000} | search_type=PDR
+| | phy_cores=${1} | framesize=${1518} | search_type=PDR
| tc05-IMIX-1t1c-ethip4udp-ip4scale4000-udpsrcscale15-snat-ndrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 routing config with 1 phy core,\
-| | ... | 1 receive queue per NIC port. NAT44 is configured between DUTs -\
-| | ... | 4000 users and 15 ports (sessions) per user.
-| | ... | [Ver] Find NDR for IMIX frames using binary search start at 10GE\
-| | ... | linerate, step 50kpps.
-| | ...
| | [Tags] | IMIX | 1C | NDRDISC
-| | ...
-| | [Template] | Discover NDR or PDR for IPv4 routing with NAT44
-| | wt=1 | rxq=1 | framesize=IMIX_v4_1 | min_rate=${50000} | search_type=NDR
+| | phy_cores=${1} | framesize=IMIX_v4_1 | search_type=NDR
| tc06-IMIX-1t1c-ethip4udp-ip4scale4000-udpsrcscale15-snat-pdrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 routing config with 1 phy core,\
-| | ... | 1 receive queue per NIC port. NAT44 is configured between DUTs -\
-| | ... | 4000 users and 15 ports (sessions) per user.
-| | ... | [Ver] Find PDR for IMIX frames using binary search start at 10GE\
-| | ... | linerate, step 50kpps.
-| | ...
| | [Tags] | IMIX | 1C | PDRDISC | SKIP_PATCH
-| | ...
-| | [Template] | Discover NDR or PDR for IPv4 routing with NAT44
-| | wt=1 | rxq=1 | framesize=IMIX_v4_1 | min_rate=${50000} | search_type=PDR
+| | phy_cores=${1} | framesize=IMIX_v4_1 | search_type=PDR
| tc07-64B-2t2c-ethip4udp-ip4scale4000-udpsrcscale15-snat-ndrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 routing config with 2 phy cores,\
-| | ... | 1 receive queue per NIC port. NAT44 is configured between DUTs -\
-| | ... | 4000 users and 15 ports (sessions) per user.
-| | ... | [Ver] Find NDR for 64 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 50kpps.
-| | ...
| | [Tags] | 64B | 2C | NDRDISC
-| | ...
-| | [Template] | Discover NDR or PDR for IPv4 routing with NAT44
-| | wt=2 | rxq=1 | framesize=${64} | min_rate=${50000} | search_type=NDR
+| | phy_cores=${2} | framesize=${64} | search_type=NDR
| tc08-64B-2t2c-ethip4udp-ip4scale4000-udpsrcscale15-snat-pdrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 routing config with 2 phy cores,\
-| | ... | 1 receive queue per NIC port. NAT44 is configured between DUTs -\
-| | ... | 4000 users and 15 ports (sessions) per user.
-| | ... | [Ver] Find PDR for 64 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 50kpps.
-| | ...
| | [Tags] | 64B | 2C | PDRDISC | SKIP_PATCH
-| | ...
-| | [Template] | Discover NDR or PDR for IPv4 routing with NAT44
-| | wt=2 | rxq=1 | framesize=${64} | min_rate=${50000} | search_type=PDR
+| | phy_cores=${2} | framesize=${64} | search_type=PDR
| tc09-1518B-2t2c-ethip4udp-ip4scale4000-udpsrcscale15-snat-ndrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 routing config with 2 phy cores,\
-| | ... | 1 receive queue per NIC port. NAT44 is configured between DUTs -\
-| | ... | 4000 users and 15 ports (sessions) per user.
-| | ... | [Ver] Find NDR for 1518 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 50kpps.
-| | ...
| | [Tags] | 1518B | 2C | NDRDISC
-| | ...
-| | [Template] | Discover NDR or PDR for IPv4 routing with NAT44
-| | wt=2 | rxq=1 | framesize=${1518} | min_rate=${50000} | search_type=NDR
+| | phy_cores=${2} | framesize=${1518} | search_type=NDR
| tc10-1518B-2t2c-ethip4udp-ip4scale4000-udpsrcscale15-snat-pdrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 routing config with 2 phy cores,\
-| | ... | 1 receive queue per NIC port. NAT44 is configured between DUTs -\
-| | ... | 4000 users and 15 ports (sessions) per user.
-| | ... | [Ver] Find PDR for 1518 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 50kpps.
-| | ...
| | [Tags] | 1518B | 2C | PDRDISC | SKIP_PATCH
-| | ...
-| | [Template] | Discover NDR or PDR for IPv4 routing with NAT44
-| | wt=2 | rxq=1 | framesize=${1518} | min_rate=${50000} | search_type=PDR
+| | phy_cores=${2} | framesize=${1518} | search_type=PDR
| tc11-IMIX-2t2c-ethip4udp-ip4scale4000-udpsrcscale15-snat-ndrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 routing config with 2 phy cores,\
-| | ... | 1 receive queue per NIC port. NAT44 is configured between DUTs -\
-| | ... | 4000 users and 15 ports (sessions) per user.
-| | ... | [Ver] Find NDR for IMIX frames using binary search start at 10GE\
-| | ... | linerate, step 50kpps.
-| | ...
| | [Tags] | IMIX | 2C | NDRDISC
-| | ...
-| | [Template] | Discover NDR or PDR for IPv4 routing with NAT44
-| | wt=2 | rxq=1 | framesize=IMIX_v4_1 | min_rate=${50000} | search_type=NDR
+| | phy_cores=${2} | framesize=IMIX_v4_1 | search_type=NDR
| tc12-IMIX-2t2c-ethip4udp-ip4scale4000-udpsrcscale15-snat-pdrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 routing config with 2 phy cores,\
-| | ... | 1 receive queue per NIC port. NAT44 is configured between DUTs -\
-| | ... | 4000 users and 15 ports (sessions) per user.
-| | ... | [Ver] Find PDR for IMIX frames using binary search start at 10GE\
-| | ... | linerate, step 50kpps.
-| | ...
| | [Tags] | IMIX | 2C | PDRDISC | SKIP_PATCH
-| | ...
-| | [Template] | Discover NDR or PDR for IPv4 routing with NAT44
-| | wt=2 | rxq=1 | framesize=IMIX_v4_1 | min_rate=${50000} | search_type=PDR
+| | phy_cores=${2} | framesize=IMIX_v4_1 | search_type=PDR
| tc13-64B-4t4c-ethip4udp-ip4scale4000-udpsrcscale15-snat-ndrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 routing config with 4 phy cores,\
-| | ... | 2 receive queues per NIC port. NAT44 is configured between DUTs -\
-| | ... | 4000 users and 15 ports (sessions) per user.
-| | ... | [Ver] Find NDR for 64 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 50kpps.
-| | ...
| | [Tags] | 64B | 4C | NDRDISC
-| | ...
-| | [Template] | Discover NDR or PDR for IPv4 routing with NAT44
-| | wt=4 | rxq=2 | framesize=${64} | min_rate=${50000} | search_type=NDR
+| | phy_cores=${4} | framesize=${64} | search_type=NDR
| tc14-64B-4t4c-ethip4udp-ip4scale4000-udpsrcscale15-snat-pdrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 routing config with 4 phy cores,\
-| | ... | 2 receive queues per NIC port. NAT44 is configured between DUTs -\
-| | ... | 4000 users and 15 ports (sessions) per user.
-| | ... | [Ver] Find PDR for 64 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 50kpps.
-| | ...
| | [Tags] | 64B | 4C | PDRDISC | SKIP_PATCH
-| | ...
-| | [Template] | Discover NDR or PDR for IPv4 routing with NAT44
-| | wt=4 | rxq=2 | framesize=${64} | min_rate=${50000} | search_type=PDR
+| | phy_cores=${4} | framesize=${64} | search_type=PDR
| tc15-1518B-4t4c-ethip4udp-ip4scale4000-udpsrcscale15-snat-ndrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 routing config with 4 phy cores,\
-| | ... | 2 receive queues per NIC port. NAT44 is configured between DUTs -\
-| | ... | 4000 users and 15 ports (sessions) per user.
-| | ... | [Ver] Find NDR for 1518 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 50kpps.
-| | ...
| | [Tags] | 1518B | 4C | NDRDISC
-| | ...
-| | [Template] | Discover NDR or PDR for IPv4 routing with NAT44
-| | wt=4 | rxq=2 | framesize=${1518} | min_rate=${50000} | search_type=NDR
+| | phy_cores=${4} | framesize=${1518} | search_type=NDR
| tc16-1518B-4t4c-ethip4udp-ip4scale4000-udpsrcscale15-snat-pdrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 routing config with 4 phy cores,\
-| | ... | 2 receive queues per NIC port. NAT44 is configured between DUTs -\
-| | ... | 4000 users and 15 ports (sessions) per user.
-| | ... | [Ver] Find PDR for 1518 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 50kpps.
-| | ...
| | [Tags] | 1518B | 4C | PDRDISC | SKIP_PATCH
-| | ...
-| | [Template] | Discover NDR or PDR for IPv4 routing with NAT44
-| | wt=4 | rxq=2 | framesize=${1518} | min_rate=${50000} | search_type=PDR
+| | phy_cores=${4} | framesize=${1518} | search_type=PDR
| tc17-IMIX-4t4c-ethip4udp-ip4scale4000-udpsrcscale15-snat-ndrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 routing config with 4 phy cores,\
-| | ... | 2 receive queues per NIC port. NAT44 is configured between DUTs -\
-| | ... | 4000 users and 15 ports (sessions) per user.
-| | ... | [Ver] Find NDR for IMIX frames using binary search start at 10GE\
-| | ... | linerate, step 50kpps.
-| | ...
| | [Tags] | IMIX | 4C | NDRDISC
-| | ...
-| | [Template] | Discover NDR or PDR for IPv4 routing with NAT44
-| | wt=4 | rxq=2 | framesize=IMIX_v4_1 | min_rate=${50000} | search_type=NDR
+| | phy_cores=${4} | framesize=IMIX_v4_1 | search_type=NDR
| tc18-IMIX-4t4c-ethip4udp-ip4scale4000-udpsrcscale15-snat-pdrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 routing config with 4 phy cores,\
-| | ... | 2 receive queues per NIC port. NAT44 is configured between DUTs -\
-| | ... | 4000 users and 15 ports (sessions) per user.
-| | ... | [Ver] Find PDR for IMIX frames using binary search start at 10GE\
-| | ... | linerate, step 50kpps.
-| | ...
| | [Tags] | IMIX | 4C | PDRDISC | SKIP_PATCH
-| | ...
-| | [Template] | Discover NDR or PDR for IPv4 routing with NAT44
-| | wt=4 | rxq=2 | framesize=IMIX_v4_1 | min_rate=${50000} | search_type=PDR
+| | phy_cores=${4} | framesize=IMIX_v4_1 | search_type=PDR
diff --git a/tests/vpp/perf/ip4/10ge2p1x710-ethip4-ip4base-copwhtlistbase-mrr.robot b/tests/vpp/perf/ip4/10ge2p1x710-ethip4-ip4base-copwhtlistbase-mrr.robot
index 670c26fd52..5650f473f7 100644
--- a/tests/vpp/perf/ip4/10ge2p1x710-ethip4-ip4base-copwhtlistbase-mrr.robot
+++ b/tests/vpp/perf/ip4/10ge2p1x710-ethip4-ip4base-copwhtlistbase-mrr.robot
@@ -26,6 +26,8 @@
| ...
| Test Teardown | Tear down performance mrr test
| ...
+| Test Template | Local template
+| ...
| Documentation | *Raw results IPv4 whitelist test cases*
| ...
| ... | *[Top] Network Topologies:* TG-DUT1-DUT2-TG 3-node circular topology
@@ -51,22 +53,27 @@
| ${traffic_profile}= | trex-sl-3n-ethip4-ip4src253
*** Keywords ***
-| Check RR for ethip4-ip4base-copwhtlistbase
+| Local template
| | ...
| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 routing config with ${wt} thread(s), ${wt}\
-| | ... | phy core(s), ${rxq} receive queue(s) per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for ${framesize} frames using single\
+| | ... | [Cfg] DUT runs IPv4 routing config.
+| | ... | Each DUT uses ${phy_cores} physical core(s) for worker threads.
+| | ... | [Ver] Measure MaxReceivedRate for ${framesize}B frames using single\
| | ... | trial throughput test.
| | ...
-| | [Arguments] | ${wt} | ${rxq} | ${framesize}
+| | ... | *Arguments:*
+| | ... | - framesize - Framesize in Bytes in integer or string (IMIX_v4_1).
+| | ... | Type: integer, string
+| | ... | - phy_cores - Number of physical cores. Type: integer
+| | ... | - rxq - Number of RX queues, default value: ${None}. Type: integer
+| | ...
+| | [Arguments] | ${phy_cores} | ${framesize} | ${rxq}=${None}
| | ...
-| | # Test Variables required for test execution and test teardown
| | Set Test Variable | ${framesize}
| | ${get_framesize}= | Get Frame Size | ${framesize}
| | ${max_rate}= | Calculate pps | ${s_limit} | ${get_framesize}
| | ...
-| | Given Add '${wt}' worker threads and '${rxq}' rxqueues in 3-node single-link circular topology
+| | Given Add worker threads and rxqueues to all DUTs | ${phy_cores} | ${rxq}
| | And Add PCI devices to all DUTs
| | And Run Keyword If | ${get_framesize} < ${1522}
| | ... | Add no multi seg to all DUTs
@@ -85,148 +92,49 @@
*** Test Cases ***
| tc01-64B-1t1c-ethip4-ip4base-copwhtlistbase-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 routing and whitelist filters config with \
-| | ... | 1 phy core, 1 receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 64B frames using single trial\
-| | ... | throughput test.
-| | ...
| | [Tags] | 64B | 1C
-| | ...
-| | [Template] | Check RR for ethip4-ip4base-copwhtlistbase
-| | wt=1 | rxq=1 | framesize=${64}
+| | phy_cores=${1} | framesize=${64}
| tc02-1518B-1t1c-ethip4-ip4base-copwhtlistbase-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 routing and whitelist filters config with \
-| | ... | 1 phy core, 1 receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 1518B frames using single trial\
-| | ... | throughput test.
-| | ...
| | [Tags] | 1518B | 1C
-| | ...
-| | [Template] | Check RR for ethip4-ip4base-copwhtlistbase
-| | wt=1 | rxq=1 | framesize=${1518}
+| | phy_cores=${1} | framesize=${1518}
| tc03-9000B-1t1c-ethip4-ip4base-copwhtlistbase-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 routing and whitelist filters config with \
-| | ... | 1 phy core, 1 receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 9000B frames using single trial\
-| | ... | throughput test.
-| | ...
| | [Tags] | 9000B | 1C
-| | ...
-| | [Template] | Check RR for ethip4-ip4base-copwhtlistbase
-| | wt=1 | rxq=1 | framesize=${9000}
+| | phy_cores=${1} | framesize=${9000}
| tc04-IMIX-1t1c-ethip4-ip4base-copwhtlistbase-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 routing and whitelist filters config with \
-| | ... | 1 phy core, 1 receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for IMIX_v4_1 frames using single trial\
-| | ... | throughput test.
-| | ... | IMIX_v4_1 = (28x64B; 16x570B; 4x1518B)
-| | ...
| | [Tags] | IMIX | 1C
-| | ...
-| | [Template] | Check RR for ethip4-ip4base-copwhtlistbase
-| | wt=1 | rxq=1 | framesize=IMIX_v4_1
+| | phy_cores=${1} | framesize=IMIX_v4_1
| tc05-64B-2t2c-ethip4-ip4base-copwhtlistbase-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 routing and whitelist filters config with \
-| | ... | 2 phy cores, 1 receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 64B frames using single trial\
-| | ... | throughput test.
-| | ...
| | [Tags] | 64B | 2C
-| | ...
-| | [Template] | Check RR for ethip4-ip4base-copwhtlistbase
-| | wt=2 | rxq=1 | framesize=${64}
+| | phy_cores=${2} | framesize=${64}
| tc06-1518B-2t2c-ethip4-ip4base-copwhtlistbase-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 routing and whitelist filters config with \
-| | ... | 2 phy cores, 1 receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 1518B frames using single trial\
-| | ... | throughput test.
-| | ...
| | [Tags] | 1518B | 2C
-| | ...
-| | [Template] | Check RR for ethip4-ip4base-copwhtlistbase
-| | wt=2 | rxq=1 | framesize=${1518}
+| | phy_cores=${2} | framesize=${1518}
| tc07-9000B-2t2c-ethip4-ip4base-copwhtlistbase-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 routing and whitelist filters config with \
-| | ... | 2 phy cores, 1 receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 9000B frames using single trial\
-| | ... | throughput test.
-| | ...
| | [Tags] | 9000B | 2C
-| | ...
-| | [Template] | Check RR for ethip4-ip4base-copwhtlistbase
-| | wt=2 | rxq=1 | framesize=${9000}
+| | phy_cores=${2} | framesize=${9000}
| tc08-IMIX-2t2c-ethip4-ip4base-copwhtlistbase-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 routing and whitelist filters config with \
-| | ... | 2 phy cores, 1 receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for IMIX_v4_1 frames using single trial\
-| | ... | throughput test.
-| | ... | IMIX_v4_1 = (28x64B; 16x570B; 4x1518B)
-| | ...
| | [Tags] | IMIX | 2C
-| | ...
-| | [Template] | Check RR for ethip4-ip4base-copwhtlistbase
-| | wt=2 | rxq=1 | framesize=IMIX_v4_1
+| | phy_cores=${2} | framesize=IMIX_v4_1
| tc09-64B-4t4c-ethip4-ip4base-copwhtlistbase-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 routing and whitelist filters config with \
-| | ... | 4 phy cores, 2 receive queues per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 64B frames using single trial\
-| | ... | throughput test.
-| | ...
| | [Tags] | 64B | 4C
-| | ...
-| | [Template] | Check RR for ethip4-ip4base-copwhtlistbase
-| | wt=4 | rxq=2 | framesize=${64}
+| | phy_cores=${4} | framesize=${64}
| tc10-1518B-4t4c-ethip4-ip4base-copwhtlistbase-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 routing and whitelist filters config with \
-| | ... | 4 phy cores, 2 receive queues per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 1518B frames using single trial\
-| | ... | throughput test.
-| | ...
| | [Tags] | 1518B | 4C
-| | ...
-| | [Template] | Check RR for ethip4-ip4base-copwhtlistbase
-| | wt=4 | rxq=2 | framesize=${1518}
+| | phy_cores=${4} | framesize=${1518}
| tc11-9000B-4t4c-ethip4-ip4base-copwhtlistbase-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 routing and whitelist filters config with \
-| | ... | 4 phy cores, 2 receive queues per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 9000B frames using single trial\
-| | ... | throughput test.
-| | ...
| | [Tags] | 9000B | 4C
-| | ...
-| | [Template] | Check RR for ethip4-ip4base-copwhtlistbase
-| | wt=4 | rxq=2 | framesize=${9000}
+| | phy_cores=${4} | framesize=${9000}
| tc12-IMIX-4t4c-ethip4-ip4base-copwhtlistbase-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 routing and whitelist filters config with \
-| | ... | 4 phy cores, 2 receive queues per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for IMIX_v4_1 frames using single trial\
-| | ... | throughput test.
-| | ... | IMIX_v4_1 = (28x64B; 16x570B; 4x1518B)
-| | ...
| | [Tags] | IMIX | 4C
-| | ...
-| | [Template] | Check RR for ethip4-ip4base-copwhtlistbase
-| | wt=4 | rxq=2 | framesize=IMIX_v4_1
+| | phy_cores=${4} | framesize=IMIX_v4_1
diff --git a/tests/vpp/perf/ip4/10ge2p1x710-ethip4-ip4base-iacldstbase-mrr.robot b/tests/vpp/perf/ip4/10ge2p1x710-ethip4-ip4base-iacldstbase-mrr.robot
index 38af1a0a52..d4937e700d 100644
--- a/tests/vpp/perf/ip4/10ge2p1x710-ethip4-ip4base-iacldstbase-mrr.robot
+++ b/tests/vpp/perf/ip4/10ge2p1x710-ethip4-ip4base-iacldstbase-mrr.robot
@@ -25,6 +25,8 @@
| ...
| Test Teardown | Tear down performance mrr test
| ...
+| Test Template | Local template
+| ...
| Documentation | *Raw results IPv4 iAcl whitelist test cases*
| ...
| ... | *[Top] Network Topologies:* TG-DUT1-DUT2-TG 3-node circular topology
@@ -50,22 +52,27 @@
| ${traffic_profile}= | trex-sl-3n-ethip4-ip4src253
*** Keywords ***
-| Check RR for ethip4-ip4base-iacldstbase
+| Local template
| | ...
| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 routing config with ${wt} thread(s), ${wt}\
-| | ... | phy core(s), ${rxq} receive queue(s) per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for ${framesize} frames using single\
+| | ... | [Cfg] DUT runs IPv4 routing config.
+| | ... | Each DUT uses ${phy_cores} physical core(s) for worker threads.
+| | ... | [Ver] Measure MaxReceivedRate for ${framesize}B frames using single\
| | ... | trial throughput test.
| | ...
-| | [Arguments] | ${wt} | ${rxq} | ${framesize}
+| | ... | *Arguments:*
+| | ... | - framesize - Framesize in Bytes in integer or string (IMIX_v4_1).
+| | ... | Type: integer, string
+| | ... | - phy_cores - Number of physical cores. Type: integer
+| | ... | - rxq - Number of RX queues, default value: ${None}. Type: integer
+| | ...
+| | [Arguments] | ${phy_cores} | ${framesize} | ${rxq}=${None}
| | ...
-| | # Test Variables required for test execution and test teardown
| | Set Test Variable | ${framesize}
| | ${get_framesize}= | Get Frame Size | ${framesize}
| | ${max_rate}= | Calculate pps | ${s_limit} | ${get_framesize}
| | ...
-| | Given Add '${wt}' worker threads and '${rxq}' rxqueues in 3-node single-link circular topology
+| | Given Add worker threads and rxqueues to all DUTs | ${phy_cores} | ${rxq}
| | And Add PCI devices to all DUTs
| | And Run Keyword If | ${get_framesize} < ${1522}
| | ... | Add no multi seg to all DUTs
@@ -90,148 +97,49 @@
*** Test Cases ***
| tc01-64B-1t1c-ethip4-ip4base-iacldstbase-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 routing and whitelist filters config with \
-| | ... | 1 phy core, 1 receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 64B frames using single trial\
-| | ... | throughput test.
-| | ...
| | [Tags] | 64B | 1C
-| | ...
-| | [Template] | Check RR for ethip4-ip4base-iacldstbase
-| | wt=1 | rxq=1 | framesize=${64}
+| | phy_cores=${1} | framesize=${64}
| tc02-1518B-1t1c-ethip4-ip4base-iacldstbase-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 routing and whitelist filters config with \
-| | ... | 1 phy core, 1 receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 1518B frames using single trial\
-| | ... | throughput test.
-| | ...
| | [Tags] | 1518B | 1C
-| | ...
-| | [Template] | Check RR for ethip4-ip4base-iacldstbase
-| | wt=1 | rxq=1 | framesize=${1518}
+| | phy_cores=${1} | framesize=${1518}
| tc03-9000B-1t1c-ethip4-ip4base-iacldstbase-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 routing and whitelist filters config with \
-| | ... | 1 phy core, 1 receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 9000B frames using single trial\
-| | ... | throughput test.
-| | ...
| | [Tags] | 9000B | 1CC
-| | ...
-| | [Template] | Check RR for ethip4-ip4base-iacldstbase
-| | wt=1 | rxq=1 | framesize=${9000}
+| | phy_cores=${1} | framesize=${9000}
| tc04-IMIX-1t1c-ethip4-ip4base-iacldstbase-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 routing and whitelist filters config with \
-| | ... | 1 phy core, 1 receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for IMIX_v4_1 frames using single trial\
-| | ... | throughput test.
-| | ... | IMIX_v4_1 = (28x64B; 16x570B; 4x1518B)
-| | ...
| | [Tags] | IMIX | 1C
-| | ...
-| | [Template] | Check RR for ethip4-ip4base-iacldstbase
-| | wt=1 | rxq=1 | framesize=IMIX_v4_1
+| | phy_cores=${1} | framesize=IMIX_v4_1
| tc05-64B-2t2c-ethip4-ip4base-iacldstbase-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 routing and whitelist filters config with \
-| | ... | 2 phy cores, 1 receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 64B frames using single trial\
-| | ... | throughput test.
-| | ...
| | [Tags] | 64B | 2C
-| | ...
-| | [Template] | Check RR for ethip4-ip4base-iacldstbase
-| | wt=2 | rxq=1 | framesize=${64}
+| | phy_cores=${2} | framesize=${64}
| tc06-1518B-2t2c-ethip4-ip4base-iacldstbase-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 routing and whitelist filters config with \
-| | ... | 2 phy cores, 1 receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 1518B frames using single trial\
-| | ... | throughput test.
-| | ...
| | [Tags] | 1518B | 2C
-| | ...
-| | [Template] | Check RR for ethip4-ip4base-iacldstbase
-| | wt=2 | rxq=1 | framesize=${1518}
+| | phy_cores=${2} | framesize=${1518}
| tc07-9000B-2t2c-ethip4-ip4base-iacldstbase-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 routing and whitelist filters config with \
-| | ... | 2 phy cores, 1 receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 9000B frames using single trial\
-| | ... | throughput test.
-| | ...
| | [Tags] | 9000B | 2C
-| | ...
-| | [Template] | Check RR for ethip4-ip4base-iacldstbase
-| | wt=2 | rxq=1 | framesize=${9000}
+| | phy_cores=${2} | framesize=${9000}
| tc08-IMIX-2t2c-ethip4-ip4base-iacldstbase-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 routing and whitelist filters config with \
-| | ... | 2 phy cores, 1 receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for IMIX_v4_1 frames using single trial\
-| | ... | throughput test.
-| | ... | IMIX_v4_1 = (28x64B; 16x570B; 4x1518B)
-| | ...
| | [Tags] | IMIX | 2C
-| | ...
-| | [Template] | Check RR for ethip4-ip4base-iacldstbase
-| | wt=2 | rxq=1 | framesize=IMIX_v4_1
+| | phy_cores=${2} | framesize=IMIX_v4_1
| tc09-64B-4t4c-ethip4-ip4base-iacldstbase-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 routing and whitelist filters config with \
-| | ... | 4 phy cores, 2 receive queues per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 64B frames using single trial\
-| | ... | throughput test.
-| | ...
| | [Tags] | 64B | 4C
-| | ...
-| | [Template] | Check RR for ethip4-ip4base-iacldstbase
-| | wt=4 | rxq=2 | framesize=${64}
+| | phy_cores=${4} | framesize=${64}
| tc10-1518B-4t4c-ethip4-ip4base-iacldstbase-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 routing and whitelist filters config with \
-| | ... | 4 phy cores, 2 receive queues per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 1518B frames using single trial\
-| | ... | throughput test.
-| | ...
| | [Tags] | 1518B | 4C
-| | ...
-| | [Template] | Check RR for ethip4-ip4base-iacldstbase
-| | wt=4 | rxq=2 | framesize=${1518}
+| | phy_cores=${4} | framesize=${1518}
| tc11-9000B-4t4c-ethip4-ip4base-iacldstbase-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 routing and whitelist filters config with \
-| | ... | 4 phy cores, 2 receive queues per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 9000B frames using single trial\
-| | ... | throughput test.
-| | ...
| | [Tags] | 9000B | 4C
-| | ...
-| | [Template] | Check RR for ethip4-ip4base-iacldstbase
-| | wt=4 | rxq=2 | framesize=${9000}
+| | phy_cores=${4} | framesize=${9000}
| tc12-IMIX-4t4c-ethip4-ip4base-iacldstbase-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 routing and whitelist filters config with \
-| | ... | 4 phy cores, 2 receive queues per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for IMIX_v4_1 frames using single trial\
-| | ... | throughput test.
-| | ... | IMIX_v4_1 = (28x64B; 16x570B; 4x1518B)
-| | ...
| | [Tags] | IMIX | 4C
-| | ...
-| | [Template] | Check RR for ethip4-ip4base-iacldstbase
-| | wt=4 | rxq=2 | framesize=IMIX_v4_1
+| | phy_cores=${4} | framesize=IMIX_v4_1
diff --git a/tests/vpp/perf/ip4/10ge2p1x710-ethip4-ip4base-ipolicemarkbase-mrr.robot b/tests/vpp/perf/ip4/10ge2p1x710-ethip4-ip4base-ipolicemarkbase-mrr.robot
index d0c23c8f37..277932a18c 100644
--- a/tests/vpp/perf/ip4/10ge2p1x710-ethip4-ip4base-ipolicemarkbase-mrr.robot
+++ b/tests/vpp/perf/ip4/10ge2p1x710-ethip4-ip4base-ipolicemarkbase-mrr.robot
@@ -26,6 +26,8 @@
| ...
| Test Teardown | Tear down performance mrr test
| ...
+| Test Template | Local template
+| ...
| Documentation | *Raw results IPv4 policer test cases*
| ...
| ... | *[Top] Network Topologies:* TG-DUT1-DUT2-TG 3-node circular topology
@@ -53,17 +55,22 @@
| ${traffic_profile}= | trex-sl-3n-ethip4-ip4src253
*** Keywords ***
-| Check RR for ethip4-ip4base-ipolicemarkbase
+| Local template
| | ...
| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 routing config with ${wt} thread(s), ${wt}\
-| | ... | phy core(s), ${rxq} receive queue(s) per NIC port.
-| | ... | [Ver] Find NDR or PDR for ${framesize} frames using binary search\
-| | ... | start at 10GE linerate.
+| | ... | [Cfg] DUT runs IPv4 routing config.
+| | ... | Each DUT uses ${phy_cores} physical core(s) for worker threads.
+| | ... | [Ver] Measure MaxReceivedRate for ${framesize}B frames using single\
+| | ... | trial throughput test.
+| | ...
+| | ... | *Arguments:*
+| | ... | - framesize - Framesize in Bytes in integer or string (IMIX_v4_1).
+| | ... | Type: integer, string
+| | ... | - phy_cores - Number of physical cores. Type: integer
+| | ... | - rxq - Number of RX queues, default value: ${None}. Type: integer
| | ...
-| | [Arguments] | ${wt} | ${rxq} | ${framesize}
+| | [Arguments] | ${phy_cores} | ${framesize} | ${rxq}=${None}
| | ...
-| | # Test Variables required for test execution and test teardown
| | Set Test Variable | ${framesize}
| | ${cb}= | Set Variable If
| | ... | '${framesize}' == 'IMIX_v4_1' | ${1518} | ${framesize}
@@ -74,7 +81,7 @@
| | ${get_framesize}= | Get Frame Size | ${framesize}
| | ${max_rate}= | Calculate pps | ${s_limit} | ${get_framesize}
| | ...
-| | Given Add '${wt}' worker threads and '${rxq}' rxqueues in 3-node single-link circular topology
+| | Given Add worker threads and rxqueues to all DUTs | ${phy_cores} | ${rxq}
| | And Add PCI devices to all DUTs
| | And Run Keyword If | ${get_framesize} < ${1522}
| | ... | Add no multi seg to all DUTs
@@ -86,148 +93,49 @@
*** Test Cases ***
| tc01-64B-1t1c-ethip4-ip4base-ipolicemarkbase-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 routing and policer config with 1 \
-| | ... | phy core, 1 receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 64B frames using single trial\
-| | ... | throughput test.
-| | ...
| | [Tags] | 64B | 1C
-| | ...
-| | [Template] | Check RR for ethip4-ip4base-ipolicemarkbase
-| | wt=1 | rxq=1 | framesize=${64}
+| | phy_cores=${1} | framesize=${64}
| tc02-1518B-1t1c-ethip4-ip4base-ipolicemarkbase-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 routing and policer config with 1 \
-| | ... | phy core, 1 receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 1518B frames using single trial\
-| | ... | throughput test.
-| | ...
| | [Tags] | 1518B | 1C
-| | ...
-| | [Template] | Check RR for ethip4-ip4base-ipolicemarkbase
-| | wt=1 | rxq=1 | framesize=${1518}
+| | phy_cores=${1} | framesize=${1518}
| tc03-9000B-1t1c-ethip4-ip4base-ipolicemarkbase-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 routing and policer config with 1 \
-| | ... | phy core, 1 receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 9000B frames using single trial\
-| | ... | throughput test.
-| | ...
| | [Tags] | 9000B | 1C
-| | ...
-| | [Template] | Check RR for ethip4-ip4base-ipolicemarkbase
-| | wt=1 | rxq=1 | framesize=${9000}
+| | phy_cores=${1} | framesize=${9000}
| tc04-IMIX-1t1c-ethip4-ip4base-ipolicemarkbase-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 routing and policer config with 1 \
-| | ... | phy core, 1 receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for IMIX_v4_1 frames using single trial\
-| | ... | throughput test.
-| | ... | IMIX_v4_1 = (28x64B; 16x570B; 4x1518B)
-| | ...
| | [Tags] | IMIX | 1C
-| | ...
-| | [Template] | Check RR for ethip4-ip4base-ipolicemarkbase
-| | wt=1 | rxq=1 | framesize=IMIX_v4_1
+| | phy_cores=${1} | framesize=IMIX_v4_1
| tc05-64B-2t2c-ethip4-ip4base-ipolicemarkbase-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 routing and policer config with 2 \
-| | ... | phy cores, 1 receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 64B frames using single trial\
-| | ... | throughput test.
-| | ...
| | [Tags] | 64B | 2C
-| | ...
-| | [Template] | Check RR for ethip4-ip4base-ipolicemarkbase
-| | wt=2 | rxq=1 | framesize=${64}
+| | phy_cores=${2} | framesize=${64}
| tc06-1518B-2t2c-ethip4-ip4base-ipolicemarkbase-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 routing and policer config with 2 \
-| | ... | phy cores, 1 receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 1518B frames using single trial\
-| | ... | throughput test.
-| | ...
| | [Tags] | 1518B | 2C
-| | ...
-| | [Template] | Check RR for ethip4-ip4base-ipolicemarkbase
-| | wt=2 | rxq=1 | framesize=${1518}
+| | phy_cores=${2} | framesize=${1518}
| tc07-9000B-2t2c-ethip4-ip4base-ipolicemarkbase-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 routing and policer config with 2 \
-| | ... | phy cores, 1 receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 9000B frames using single trial\
-| | ... | throughput test.
-| | ...
| | [Tags] | 9000B | 2C
-| | ...
-| | [Template] | Check RR for ethip4-ip4base-ipolicemarkbase
-| | wt=2 | rxq=1 | framesize=${9000}
+| | phy_cores=${2} | framesize=${9000}
| tc08-IMIX-2t2c-ethip4-ip4base-ipolicemarkbase-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 routing and policer config with 2 threada, 2 \
-| | ... | phy cores, 1 receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for IMIX_v4_1 frames using single trial\
-| | ... | throughput test.
-| | ... | IMIX_v4_1 = (28x64B; 16x570B; 4x1518B)
-| | ...
| | [Tags] | IMIX | 2C
-| | ...
-| | [Template] | Check RR for ethip4-ip4base-ipolicemarkbase
-| | wt=2 | rxq=1 | framesize=IMIX_v4_1
+| | phy_cores=${2} | framesize=IMIX_v4_1
| tc09-64B-4t4c-ethip4-ip4base-ipolicemarkbase-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 routing and policer config with 4 \
-| | ... | phy cores, 2 receive queues per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 64B frames using single trial\
-| | ... | throughput test.
-| | ...
| | [Tags] | 64B | 4C
-| | ...
-| | [Template] | Check RR for ethip4-ip4base-ipolicemarkbase
-| | wt=4 | rxq=2 | framesize=${64}
+| | phy_cores=${4} | framesize=${64}
| tc10-1518B-4t4c-ethip4-ip4base-ipolicemarkbase-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 routing and policer config with 4 \
-| | ... | phy cores, 2 receive queues per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 1518B frames using single trial\
-| | ... | throughput test.
-| | ...
| | [Tags] | 1518B | 4C
-| | ...
-| | [Template] | Check RR for ethip4-ip4base-ipolicemarkbase
-| | wt=4 | rxq=2 | framesize=${1518}
+| | phy_cores=${4} | framesize=${1518}
| tc11-9000B-4t4c-ethip4-ip4base-ipolicemarkbase-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 routing and policer config with 4 \
-| | ... | phy cores, 2 receive queues per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 9000B frames using single trial\
-| | ... | throughput test.
-| | ...
| | [Tags] | 9000B | 4C
-| | ...
-| | [Template] | Check RR for ethip4-ip4base-ipolicemarkbase
-| | wt=4 | rxq=2 | framesize=${9000}
+| | phy_cores=${4} | framesize=${9000}
| tc12-IMIX-4t4c-ethip4-ip4base-ipolicemarkbase-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 routing and policer config with 4 threada, 4 \
-| | ... | phy cores, 2 receive queues per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for IMIX_v4_1 frames using single trial\
-| | ... | throughput test.
-| | ... | IMIX_v4_1 = (28x64B; 16x570B; 4x1518B)
-| | ...
| | [Tags] | IMIX | 4C
-| | ...
-| | [Template] | Check RR for ethip4-ip4base-ipolicemarkbase
-| | wt=4 | rxq=2 | framesize=IMIX_v4_1
+| | phy_cores=${4} | framesize=IMIX_v4_1
diff --git a/tests/vpp/perf/ip4/10ge2p1x710-ethip4-ip4base-mrr.robot b/tests/vpp/perf/ip4/10ge2p1x710-ethip4-ip4base-mrr.robot
index 062b3e7f2c..3e76b7027e 100644
--- a/tests/vpp/perf/ip4/10ge2p1x710-ethip4-ip4base-mrr.robot
+++ b/tests/vpp/perf/ip4/10ge2p1x710-ethip4-ip4base-mrr.robot
@@ -24,6 +24,8 @@
| Test Setup | Set up performance test
| Test Teardown | Tear down performance mrr test
| ...
+| Test Template | Local template
+| ...
| Documentation | *Raw results IPv4 routing test cases*
| ...
| ... | *[Top] Network Topologies:* TG-DUT1-DUT2-TG 3-node circular topology
@@ -48,22 +50,27 @@
| ${traffic_profile}= | trex-sl-3n-ethip4-ip4src253
*** Keywords ***
-| Check RR for ethip4-ip4base
+| Local template
| | ...
| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 routing config with ${wt} thread(s), ${wt}\
-| | ... | phy core(s), ${rxq} receive queue(s) per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for ${framesize} frames using single\
+| | ... | [Cfg] DUT runs IPv4 routing config.
+| | ... | Each DUT uses ${phy_cores} physical core(s) for worker threads.
+| | ... | [Ver] Measure MaxReceivedRate for ${framesize}B frames using single\
| | ... | trial throughput test.
| | ...
-| | [Arguments] | ${wt} | ${rxq} | ${framesize}
+| | ... | *Arguments:*
+| | ... | - framesize - Framesize in Bytes in integer or string (IMIX_v4_1).
+| | ... | Type: integer, string
+| | ... | - phy_cores - Number of physical cores. Type: integer
+| | ... | - rxq - Number of RX queues, default value: ${None}. Type: integer
+| | ...
+| | [Arguments] | ${phy_cores} | ${framesize} | ${rxq}=${None}
| | ...
-| | # Test Variables required for test execution and test teardown
| | Set Test Variable | ${framesize}
| | ${get_framesize}= | Get Frame Size | ${framesize}
| | ${max_rate}= | Calculate pps | ${s_limit} | ${framesize}
| | ...
-| | Given Add '${wt}' worker threads and '${rxq}' rxqueues in 3-node single-link circular topology
+| | Given Add worker threads and rxqueues to all DUTs | ${phy_cores} | ${rxq}
| | And Add PCI devices to all DUTs
| | And Run Keyword If | ${get_framesize} < ${1522}
| | ... | Add no multi seg to all DUTs
@@ -74,148 +81,49 @@
*** Test Cases ***
| tc01-64B-1t1c-ethip4-ip4base-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 routing config with 1 phy core,\
-| | ... | 1 receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 64B frames using single trial\
-| | ... | throughput test.
-| | ...
| | [Tags] | 64B | 1C
-| | ...
-| | [Template] | Check RR for ethip4-ip4base
-| | wt=1 | rxq=1 | framesize=${64}
+| | phy_cores=${1} | framesize=${64}
| tc02-1518B-1t1c-ethip4-ip4base-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 routing config with 1 phy core,\
-| | ... | 1 receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 1518B frames using single\
-| | ... | trial throughput test.
-| | ...
| | [Tags] | 1518B | 1C
-| | ...
-| | [Template] | Check RR for ethip4-ip4base
-| | wt=1 | rxq=1 | framesize=${1518}
+| | phy_cores=${1} | framesize=${1518}
| tc03-9000B-1t1c-ethip4-ip4base-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 routing config with 1 phy core,\
-| | ... | 1 receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 9000B frames using single\
-| | ... | trial throughput test.
-| | ...
| | [Tags] | 9000B | 1C
-| | ...
-| | [Template] | Check RR for ethip4-ip4base
-| | wt=1 | rxq=1 | framesize=${9000}
+| | phy_cores=${1} | framesize=${9000}
| tc04-IMIX-1t1c-ethip4-ip4base-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 routing config with \
-| | ... | 1 phy core, 1 receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for IMIX_v4_1 frames using single trial\
-| | ... | throughput test.
-| | ... | IMIX_v4_1 = (28x64B; 16x570B; 4x1518B)
-| | ...
| | [Tags] | IMIX | 1C
-| | ...
-| | [Template] | Check RR for ethip4-ip4base
-| | wt=1 | rxq=1 | framesize=IMIX_v4_1
+| | phy_cores=${1} | framesize=IMIX_v4_1
| tc05-64B-2t2c-ethip4-ip4base-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 routing config with 2 phy cores,\
-| | ... | 1 receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 64B frames using single trial\
-| | ... | throughput test.
-| | ...
| | [Tags] | 64B | 2C
-| | ...
-| | [Template] | Check RR for ethip4-ip4base
-| | wt=2 | rxq=1 | framesize=${64}
+| | phy_cores=${2} | framesize=${64}
| tc06-1518B-2t2c-ethip4-ip4base-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 routing config with 2 phy cores,\
-| | ... | 1 receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 1518B frames using single\
-| | ... | trial throughput test.
-| | ...
| | [Tags] | 1518B | 2C
-| | ...
-| | [Template] | Check RR for ethip4-ip4base
-| | wt=2 | rxq=1 | framesize=${1518}
+| | phy_cores=${2} | framesize=${1518}
| tc07-9000B-2t2c-ethip4-ip4base-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 routing config with 2 phy cores,\
-| | ... | 1 receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 9000B frames using single\
-| | ... | trial throughput test.
-| | ...
| | [Tags] | 9000B | 2C
-| | ...
-| | [Template] | Check RR for ethip4-ip4base
-| | wt=2 | rxq=1 | framesize=${9000}
+| | phy_cores=${2} | framesize=${9000}
| tc08-IMIX-2t2c-ethip4-ip4base-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 routing config with \
-| | ... | 2 phy cores, 1 receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for IMIX_v4_1 frames using single trial\
-| | ... | throughput test.
-| | ... | IMIX_v4_1 = (28x64B; 16x570B; 4x1518B)
-| | ...
| | [Tags] | IMIX | 2C
-| | ...
-| | [Template] | Check RR for ethip4-ip4base
-| | wt=2 | rxq=1 | framesize=IMIX_v4_1
+| | phy_cores=${2} | framesize=IMIX_v4_1
| tc09-64B-4t4c-ethip4-ip4base-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 routing config with 4 phy cores,\
-| | ... | 2 receive queues per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 64B frames using single trial\
-| | ... | throughput test.
-| | ...
| | [Tags] | 64B | 4C
-| | ...
-| | [Template] | Check RR for ethip4-ip4base
-| | wt=4 | rxq=2 | framesize=${64}
+| | phy_cores=${4} | framesize=${64}
| tc10-1518B-4t4c-ethip4-ip4base-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 routing config with 4 phy cores,\
-| | ... | 2 receive queues per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 1518B frames using single\
-| | ... | trial throughput test.
-| | ...
| | [Tags] | 1518B | 4C
-| | ...
-| | [Template] | Check RR for ethip4-ip4base
-| | wt=4 | rxq=2 | framesize=${1518}
+| | phy_cores=${4} | framesize=${1518}
| tc11-9000B-4t4c-ethip4-ip4base-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 routing config with 4 phy cores,\
-| | ... | 2 receive queues per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 9000B frames using single\
-| | ... | trial throughput test.
-| | ...
| | [Tags] | 9000B | 4C
-| | ...
-| | [Template] | Check RR for ethip4-ip4base
-| | wt=4 | rxq=2 | framesize=${9000}
+| | phy_cores=${4} | framesize=${9000}
| tc12-IMIX-4t4c-ethip4-ip4base-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 routing config with \
-| | ... | 4 phy cores, 2 receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for IMIX_v4_1 frames using single trial\
-| | ... | throughput test.
-| | ... | IMIX_v4_1 = (28x64B; 16x570B; 4x1518B)
-| | ...
| | [Tags] | IMIX | 4C
-| | ...
-| | [Template] | Check RR for ethip4-ip4base
-| | wt=4 | rxq=2 | framesize=IMIX_v4_1
+| | phy_cores=${4} | framesize=IMIX_v4_1
diff --git a/tests/vpp/perf/ip4/10ge2p1x710-ethip4-ip4scale200k-mrr.robot b/tests/vpp/perf/ip4/10ge2p1x710-ethip4-ip4scale200k-mrr.robot
index 369feba589..e3461bcf97 100644
--- a/tests/vpp/perf/ip4/10ge2p1x710-ethip4-ip4scale200k-mrr.robot
+++ b/tests/vpp/perf/ip4/10ge2p1x710-ethip4-ip4scale200k-mrr.robot
@@ -25,6 +25,8 @@
| ...
| Test Teardown | Tear down performance mrr test
| ...
+| Test Template | Local template
+| ...
| Documentation | *Raw results IPv4 routing test cases*
| ...
| ... | *[Top] Network Topologies:* TG-DUT1-DUT2-TG 3-node circular topology
@@ -50,22 +52,27 @@
| ${traffic_profile}= | trex-sl-3n-ethip4-ip4dst${rts_per_flow}
*** Keywords ***
-| Check RR for ethip4-ip4scale200k
+| Local template
| | ...
| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 routing config with ${wt} thread(s), ${wt}\
-| | ... | phy core(s), ${rxq} receive queue(s) per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for ${framesize} frames using single\
+| | ... | [Cfg] DUT runs IPv4 routing config.
+| | ... | Each DUT uses ${phy_cores} physical core(s) for worker threads.
+| | ... | [Ver] Measure MaxReceivedRate for ${framesize}B frames using single\
| | ... | trial throughput test.
| | ...
-| | [Arguments] | ${wt} | ${rxq} | ${framesize}
+| | ... | *Arguments:*
+| | ... | - framesize - Framesize in Bytes in integer or string (IMIX_v4_1).
+| | ... | Type: integer, string
+| | ... | - phy_cores - Number of physical cores. Type: integer
+| | ... | - rxq - Number of RX queues, default value: ${None}. Type: integer
+| | ...
+| | [Arguments] | ${phy_cores} | ${framesize} | ${rxq}=${None}
| | ...
-| | # Test Variables required for test execution and test teardown
| | Set Test Variable | ${framesize}
| | ${get_framesize}= | Get Frame Size | ${framesize}
| | ${max_rate}= | Calculate pps | ${s_limit} | ${framesize}
| | ...
-| | Given Add '${wt}' worker threads and '${rxq}' rxqueues in 3-node single-link circular topology
+| | Given Add worker threads and rxqueues to all DUTs | ${phy_cores} | ${rxq}
| | And Add PCI devices to all DUTs
| | And Run Keyword If | ${get_framesize} < ${1522}
| | ... | Add no multi seg to all DUTs
@@ -77,148 +84,49 @@
*** Test Cases ***
| tc01-64B-1t1c-ethip4-ip4scale200k-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 routing config with 1 phy core, \
-| | ... | 1 receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 64B frames using single trial\
-| | ... | throughput test.
-| | ...
| | [Tags] | 64B | 1C
-| | ...
-| | [Template] | Check RR for ethip4-ip4scale200k
-| | wt=1 | rxq=1 | framesize=${64}
+| | phy_cores=${1} | framesize=${64}
| tc02-1518B-1t1c-ethip4-ip4scale200k-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 routing config with 1 phy core, \
-| | ... | 1 receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 1518B frames using single\
-| | ... | trial throughput test.
-| | ...
| | [Tags] | 1518B | 1C
-| | ...
-| | [Template] | Check RR for ethip4-ip4scale200k
-| | wt=1 | rxq=1 | framesize=${1518}
+| | phy_cores=${1} | framesize=${1518}
| tc03-9000B-1t1c-ethip4-ip4scale200k-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 routing config with 1 phy core, \
-| | ... | 1 receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 9000B frames using single\
-| | ... | trial throughput test.
-| | ...
| | [Tags] | 9000B | 1C
-| | ...
-| | [Template] | Check RR for ethip4-ip4scale200k
-| | wt=1 | rxq=1 | framesize=${9000}
+| | phy_cores=${1} | framesize=${9000}
| tc04-IMIX-1t1c-ethip4-ip4scale200k-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 routing config with \
-| | ... | 1 phy core, 1 receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for IMIX_v4_1 frames using single trial\
-| | ... | throughput test.
-| | ... | IMIX_v4_1 = (28x64B; 16x570B; 4x1518B)
-| | ...
| | [Tags] | IMIX | 1C
-| | ...
-| | [Template] | Check RR for ethip4-ip4scale200k
-| | wt=1 | rxq=1 | framesize=IMIX_v4_1
+| | phy_cores=${1} | framesize=IMIX_v4_1
| tc05-64B-2t2c-ethip4-ip4scale200k-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 routing config with 2 phy cores, \
-| | ... | 1 receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 64B frames using single trial\
-| | ... | throughput test.
-| | ...
| | [Tags] | 64B | 2C
-| | ...
-| | [Template] | Check RR for ethip4-ip4scale200k
-| | wt=2 | rxq=1 | framesize=${64}
+| | phy_cores=${2} | framesize=${64}
| tc06-1518B-2t2c-ethip4-ip4scale200k-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 routing config with 2 phy cores, \
-| | ... | 1 receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 1518B frames using single\
-| | ... | trial throughput test.
-| | ...
| | [Tags] | 1518B | 2C
-| | ...
-| | [Template] | Check RR for ethip4-ip4scale200k
-| | wt=2 | rxq=1 | framesize=${1518}
+| | phy_cores=${2} | framesize=${1518}
| tc07-9000B-2t2c-ethip4-ip4scale200k-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 routing config with 2 phy cores, \
-| | ... | 1 receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 9000B frames using single\
-| | ... | trial throughput test.
-| | ...
| | [Tags] | 9000B | 2C
-| | ...
-| | [Template] | Check RR for ethip4-ip4scale200k
-| | wt=2 | rxq=1 | framesize=${9000}
+| | phy_cores=${2} | framesize=${9000}
| tc08-IMIX-2t2c-ethip4-ip4scale200k-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 routing config with \
-| | ... | 2 phy cores, 1 receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for IMIX_v4_1 frames using single trial\
-| | ... | throughput test.
-| | ... | IMIX_v4_1 = (28x64B; 16x570B; 4x1518B)
-| | ...
| | [Tags] | IMIX | 2C
-| | ...
-| | [Template] | Check RR for ethip4-ip4scale200k
-| | wt=2 | rxq=1 | framesize=IMIX_v4_1
+| | phy_cores=${2} | framesize=IMIX_v4_1
| tc09-64B-4t4c-ethip4-ip4scale200k-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 routing config with 4 phy cores, \
-| | ... | 2 receive queues per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 64B frames using single trial\
-| | ... | throughput test.
-| | ...
| | [Tags] | 64B | 4C
-| | ...
-| | [Template] | Check RR for ethip4-ip4scale200k
-| | wt=4 | rxq=2 | framesize=${64}
+| | phy_cores=${4} | framesize=${64}
| tc10-1518B-4t4c-ethip4-ip4scale200k-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 routing config with 4 phy cores, \
-| | ... | 2 receive queues per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 1518B frames using single\
-| | ... | trial throughput test.
-| | ...
| | [Tags] | 1518B | 4C
-| | ...
-| | [Template] | Check RR for ethip4-ip4scale200k
-| | wt=4 | rxq=2 | framesize=${1518}
+| | phy_cores=${4} | framesize=${1518}
| tc11-9000B-4t4c-ethip4-ip4scale200k-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 routing config with 4 phy cores, \
-| | ... | 2 receive queues per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 9000B frames using single\
-| | ... | trial throughput test.
-| | ...
| | [Tags] | 9000B | 4C
-| | ...
-| | [Template] | Check RR for ethip4-ip4scale200k
-| | wt=4 | rxq=2 | framesize=${9000}
+| | phy_cores=${4} | framesize=${9000}
| tc12-IMIX-4t4c-ethip4-ip4scale200k-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 routing config with \
-| | ... | 4 phy cores, 2 receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for IMIX_v4_1 frames using single trial\
-| | ... | throughput test.
-| | ... | IMIX_v4_1 = (28x64B; 16x570B; 4x1518B)
-| | ...
| | [Tags] | IMIX | 4C
-| | ...
-| | [Template] | Check RR for ethip4-ip4scale200k
-| | wt=4 | rxq=2 | framesize=IMIX_v4_1
+| | phy_cores=${4} | framesize=IMIX_v4_1
diff --git a/tests/vpp/perf/ip4/10ge2p1x710-ethip4-ip4scale20k-mrr.robot b/tests/vpp/perf/ip4/10ge2p1x710-ethip4-ip4scale20k-mrr.robot
index 3436d0ab3d..95767a4b00 100644
--- a/tests/vpp/perf/ip4/10ge2p1x710-ethip4-ip4scale20k-mrr.robot
+++ b/tests/vpp/perf/ip4/10ge2p1x710-ethip4-ip4scale20k-mrr.robot
@@ -25,6 +25,8 @@
| ...
| Test Teardown | Tear down performance mrr test
| ...
+| Test Template | Local template
+| ...
| Documentation | *Raw results IPv4 routing test cases*
| ...
| ... | *[Top] Network Topologies:* TG-DUT1-DUT2-TG 3-node circular topology
@@ -50,22 +52,27 @@
| ${traffic_profile}= | trex-sl-3n-ethip4-ip4dst${rts_per_flow}
*** Keywords ***
-| Check RR for ethip4-ip4scale20k
+| Local template
| | ...
| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 routing config with ${wt} thread(s), ${wt}\
-| | ... | phy core(s), ${rxq} receive queue(s) per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for ${framesize} frames using single\
+| | ... | [Cfg] DUT runs IPv4 routing config.
+| | ... | Each DUT uses ${phy_cores} physical core(s) for worker threads.
+| | ... | [Ver] Measure MaxReceivedRate for ${framesize}B frames using single\
| | ... | trial throughput test.
| | ...
-| | [Arguments] | ${wt} | ${rxq} | ${framesize}
+| | ... | *Arguments:*
+| | ... | - framesize - Framesize in Bytes in integer or string (IMIX_v4_1).
+| | ... | Type: integer, string
+| | ... | - phy_cores - Number of physical cores. Type: integer
+| | ... | - rxq - Number of RX queues, default value: ${None}. Type: integer
+| | ...
+| | [Arguments] | ${phy_cores} | ${framesize} | ${rxq}=${None}
| | ...
-| | # Test Variables required for test execution and test teardown
| | Set Test Variable | ${framesize}
| | ${get_framesize}= | Get Frame Size | ${framesize}
| | ${max_rate}= | Calculate pps | ${s_limit} | ${framesize}
| | ...
-| | Given Add '${wt}' worker threads and '${rxq}' rxqueues in 3-node single-link circular topology
+| | Given Add worker threads and rxqueues to all DUTs | ${phy_cores} | ${rxq}
| | And Add PCI devices to all DUTs
| | And Run Keyword If | ${get_framesize} < ${1522}
| | ... | Add no multi seg to all DUTs
@@ -77,148 +84,49 @@
*** Test Cases ***
| tc01-64B-1t1c-ethip4-ip4scale20k-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 routing config with 1 phy core, \
-| | ... | 1 receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 64B frames using single trial\
-| | ... | throughput test.
-| | ...
| | [Tags] | 64B | 1C
-| | ...
-| | [Template] | Check RR for ethip4-ip4scale20k
-| | wt=1 | rxq=1 | framesize=${64}
+| | phy_cores=${1} | framesize=${64}
| tc02-1518B-1t1c-ethip4-ip4scale20k-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 routing config with 1 phy core, \
-| | ... | 1 receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 1518B frames using single\
-| | ... | trial throughput test.
-| | ...
| | [Tags] | 1518B | 1C
-| | ...
-| | [Template] | Check RR for ethip4-ip4scale20k
-| | wt=1 | rxq=1 | framesize=${1518}
+| | phy_cores=${1} | framesize=${1518}
| tc03-9000B-1t1c-ethip4-ip4scale20k-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 routing config with 1 phy core, \
-| | ... | 1 receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 9000B frames using single\
-| | ... | trial throughput test.
-| | ...
| | [Tags] | 9000B | 1C
-| | ...
-| | [Template] | Check RR for ethip4-ip4scale20k
-| | wt=1 | rxq=1 | framesize=${9000}
+| | phy_cores=${1} | framesize=${9000}
| tc04-IMIX-1t1c-ethip4-ip4scale20k-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 routing config with \
-| | ... | 1 phy core, 1 receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for IMIX_v4_1 frames using single trial\
-| | ... | throughput test.
-| | ... | IMIX_v4_1 = (28x64B; 16x570B; 4x1518B)
-| | ...
| | [Tags] | IMIX | 1C
-| | ...
-| | [Template] | Check RR for ethip4-ip4scale20k
-| | wt=1 | rxq=1 | framesize=IMIX_v4_1
+| | phy_cores=${1} | framesize=IMIX_v4_1
| tc05-64B-2t2c-ethip4-ip4scale20k-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 routing config with 2 phy cores, \
-| | ... | 1 receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 64B frames using single trial\
-| | ... | throughput test.
-| | ...
| | [Tags] | 64B | 2C
-| | ...
-| | [Template] | Check RR for ethip4-ip4scale20k
-| | wt=2 | rxq=1 | framesize=${64}
+| | phy_cores=${2} | framesize=${64}
| tc06-1518B-2t2c-ethip4-ip4scale20k-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 routing config with 2 phy cores, \
-| | ... | 1 receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 1518B frames using single\
-| | ... | trial throughput test.
-| | ...
| | [Tags] | 1518B | 2C
-| | ...
-| | [Template] | Check RR for ethip4-ip4scale20k
-| | wt=2 | rxq=1 | framesize=${1518}
+| | phy_cores=${2} | framesize=${1518}
| tc07-9000B-2t2c-ethip4-ip4scale20k-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 routing config with 2 phy cores, \
-| | ... | 1 receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 9000B frames using single\
-| | ... | trial throughput test.
-| | ...
| | [Tags] | 9000B | 2C
-| | ...
-| | [Template] | Check RR for ethip4-ip4scale20k
-| | wt=2 | rxq=1 | framesize=${9000}
+| | phy_cores=${2} | framesize=${9000}
| tc08-IMIX-2t2c-ethip4-ip4scale20k-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 routing config with \
-| | ... | 2 phy cores, 1 receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for IMIX_v4_1 frames using single trial\
-| | ... | throughput test.
-| | ... | IMIX_v4_1 = (28x64B; 16x570B; 4x1518B)
-| | ...
| | [Tags] | IMIX | 2C
-| | ...
-| | [Template] | Check RR for ethip4-ip4scale20k
-| | wt=2 | rxq=1 | framesize=IMIX_v4_1
+| | phy_cores=${2} | framesize=IMIX_v4_1
| tc09-64B-4t4c-ethip4-ip4scale20k-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 routing config with 4 phy cores, \
-| | ... | 2 receive queues per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 64B frames using single trial\
-| | ... | throughput test.
-| | ...
| | [Tags] | 64B | 4C
-| | ...
-| | [Template] | Check RR for ethip4-ip4scale20k
-| | wt=4 | rxq=2 | framesize=${64}
+| | phy_cores=${4} | framesize=${64}
| tc10-1518B-4t4c-ethip4-ip4scale20k-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 routing config with 4 phy cores, \
-| | ... | 2 receive queues per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 1518B frames using single\
-| | ... | trial throughput test.
-| | ...
| | [Tags] | 1518B | 4C
-| | ...
-| | [Template] | Check RR for ethip4-ip4scale20k
-| | wt=4 | rxq=2 | framesize=${1518}
+| | phy_cores=${4} | framesize=${1518}
| tc11-9000B-4t4c-ethip4-ip4scale20k-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 routing config with 4 phy cores, \
-| | ... | 2 receive queues per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 9000B frames using single\
-| | ... | trial throughput test.
-| | ...
| | [Tags] | 9000B | 4C
-| | ...
-| | [Template] | Check RR for ethip4-ip4scale20k
-| | wt=4 | rxq=2 | framesize=${9000}
+| | phy_cores=${4} | framesize=${9000}
| tc12-IMIX-4t4c-ethip4-ip4scale20k-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 routing config with \
-| | ... | 4 phy cores, 2 receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for IMIX_v4_1 frames using single trial\
-| | ... | throughput test.
-| | ... | IMIX_v4_1 = (28x64B; 16x570B; 4x1518B)
-| | ...
| | [Tags] | IMIX | 4C
-| | ...
-| | [Template] | Check RR for ethip4-ip4scale20k
-| | wt=4 | rxq=2 | framesize=IMIX_v4_1
+| | phy_cores=${4} | framesize=IMIX_v4_1
diff --git a/tests/vpp/perf/ip4/10ge2p1x710-ethip4-ip4scale2m-mrr.robot b/tests/vpp/perf/ip4/10ge2p1x710-ethip4-ip4scale2m-mrr.robot
index 91b95a8c5e..968b5fe309 100644
--- a/tests/vpp/perf/ip4/10ge2p1x710-ethip4-ip4scale2m-mrr.robot
+++ b/tests/vpp/perf/ip4/10ge2p1x710-ethip4-ip4scale2m-mrr.robot
@@ -25,6 +25,8 @@
| ...
| Test Teardown | Tear down performance mrr test
| ...
+| Test Template | Local template
+| ...
| Documentation | *Raw results IPv4 routing test cases*
| ...
| ... | *[Top] Network Topologies:* TG-DUT1-DUT2-TG 3-node circular topology
@@ -50,22 +52,27 @@
| ${traffic_profile}= | trex-sl-3n-ethip4-ip4dst${rts_per_flow}
*** Keywords ***
-| Check RR for ethip4-ip4scale2m
+| Local template
| | ...
| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 routing config with ${wt} thread(s), ${wt}\
-| | ... | phy core(s), ${rxq} receive queue(s) per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for ${framesize} frames using single\
+| | ... | [Cfg] DUT runs IPv4 routing config.
+| | ... | Each DUT uses ${phy_cores} physical core(s) for worker threads.
+| | ... | [Ver] Measure MaxReceivedRate for ${framesize}B frames using single\
| | ... | trial throughput test.
| | ...
-| | [Arguments] | ${wt} | ${rxq} | ${framesize}
+| | ... | *Arguments:*
+| | ... | - framesize - Framesize in Bytes in integer or string (IMIX_v4_1).
+| | ... | Type: integer, string
+| | ... | - phy_cores - Number of physical cores. Type: integer
+| | ... | - rxq - Number of RX queues, default value: ${None}. Type: integer
+| | ...
+| | [Arguments] | ${phy_cores} | ${framesize} | ${rxq}=${None}
| | ...
-| | # Test Variables required for test execution and test teardown
| | Set Test Variable | ${framesize}
| | ${get_framesize}= | Get Frame Size | ${framesize}
| | ${max_rate}= | Calculate pps | ${s_limit} | ${framesize}
| | ...
-| | Given Add '${wt}' worker threads and '${rxq}' rxqueues in 3-node single-link circular topology
+| | Given Add worker threads and rxqueues to all DUTs | ${phy_cores} | ${rxq}
| | And Add PCI devices to all DUTs
| | And Run Keyword If | ${get_framesize} < ${1522}
| | ... | Add no multi seg to all DUTs
@@ -77,148 +84,49 @@
*** Test Cases ***
| tc01-64B-1t1c-ethip4-ip4scale2m-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 routing config with 1 phy core, \
-| | ... | 1 receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 64B frames using single trial\
-| | ... | throughput test.
-| | ...
| | [Tags] | 64B | 1C
-| | ...
-| | [Template] | Check RR for ethip4-ip4scale2m
-| | wt=1 | rxq=1 | framesize=${64}
+| | phy_cores=${1} | framesize=${64}
| tc02-1518B-1t1c-ethip4-ip4scale2m-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 routing config with 1 phy core, \
-| | ... | 1 receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 1518B frames using single\
-| | ... | trial throughput test.
-| | ...
| | [Tags] | 1518B | 1C
-| | ...
-| | [Template] | Check RR for ethip4-ip4scale2m
-| | wt=1 | rxq=1 | framesize=${1518}
+| | phy_cores=${1} | framesize=${1518}
| tc03-9000B-1t1c-ethip4-ip4scale2m-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 routing config with 1 phy core, \
-| | ... | 1 receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 9000B frames using single\
-| | ... | trial throughput test.
-| | ...
| | [Tags] | 9000B | 1C
-| | ...
-| | [Template] | Check RR for ethip4-ip4scale2m
-| | wt=1 | rxq=1 | framesize=${9000}
+| | phy_cores=${1} | framesize=${9000}
| tc04-IMIX-1t1c-ethip4-ip4scale2m-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 routing config with \
-| | ... | 1 phy core, 1 receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for IMIX_v4_1 frames using single trial\
-| | ... | throughput test.
-| | ... | IMIX_v4_1 = (28x64B; 16x570B; 4x1518B)
-| | ...
| | [Tags] | IMIX | 1C
-| | ...
-| | [Template] | Check RR for ethip4-ip4scale2m
-| | wt=1 | rxq=1 | framesize=IMIX_v4_1
+| | phy_cores=${1} | framesize=IMIX_v4_1
| tc05-64B-2t2c-ethip4-ip4scale2m-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 routing config with 2 phy cores, \
-| | ... | 1 receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 64B frames using single trial\
-| | ... | throughput test.
-| | ...
| | [Tags] | 64B | 2C
-| | ...
-| | [Template] | Check RR for ethip4-ip4scale2m
-| | wt=2 | rxq=1 | framesize=${64}
+| | phy_cores=${2} | framesize=${64}
| tc06-1518B-2t2c-ethip4-ip4scale2m-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 routing config with 2 phy cores, \
-| | ... | 1 receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 1518B frames using single\
-| | ... | trial throughput test.
-| | ...
| | [Tags] | 1518B | 2C
-| | ...
-| | [Template] | Check RR for ethip4-ip4scale2m
-| | wt=2 | rxq=1 | framesize=${1518}
+| | phy_cores=${2} | framesize=${1518}
| tc07-9000B-2t2c-ethip4-ip4scale2m-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 routing config with 2 phy cores, \
-| | ... | 1 receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 9000B frames using single\
-| | ... | trial throughput test.
-| | ...
| | [Tags] | 9000B | 2C
-| | ...
-| | [Template] | Check RR for ethip4-ip4scale2m
-| | wt=2 | rxq=1 | framesize=${9000}
+| | phy_cores=${2} | framesize=${9000}
| tc08-IMIX-2t2c-ethip4-ip4scale2m-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 routing config with \
-| | ... | 2 phy cores, 1 receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for IMIX_v4_1 frames using single trial\
-| | ... | throughput test.
-| | ... | IMIX_v4_1 = (28x64B; 16x570B; 4x1518B)
-| | ...
| | [Tags] | IMIX | 2C
-| | ...
-| | [Template] | Check RR for ethip4-ip4scale2m
-| | wt=2 | rxq=1 | framesize=IMIX_v4_1
+| | phy_cores=${2} | framesize=IMIX_v4_1
| tc09-64B-4t4c-ethip4-ip4scale2m-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 routing config with 4 phy cores, \
-| | ... | 2 receive queues per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 64B frames using single trial\
-| | ... | throughput test.
-| | ...
| | [Tags] | 64B | 4C
-| | ...
-| | [Template] | Check RR for ethip4-ip4scale2m
-| | wt=4 | rxq=2 | framesize=${64}
+| | phy_cores=${4} | framesize=${64}
| tc10-1518B-4t4c-ethip4-ip4scale2m-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 routing config with 4 phy cores, \
-| | ... | 2 receive queues per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 1518B frames using single\
-| | ... | trial throughput test.
-| | ...
| | [Tags] | 1518B | 4C
-| | ...
-| | [Template] | Check RR for ethip4-ip4scale2m
-| | wt=4 | rxq=2 | framesize=${1518}
+| | phy_cores=${4} | framesize=${1518}
| tc11-9000B-4t4c-ethip4-ip4scale2m-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 routing config with 4 phy cores, \
-| | ... | 2 receive queues per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 9000B frames using single\
-| | ... | trial throughput test.
-| | ...
| | [Tags] | 9000B | 4C
-| | ...
-| | [Template] | Check RR for ethip4-ip4scale2m
-| | wt=4 | rxq=2 | framesize=${9000}
+| | phy_cores=${4} | framesize=${9000}
| tc12-IMIX-4t4c-ethip4-ip4scale2m-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 routing config with \
-| | ... | 4 phy cores, 2 receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for IMIX_v4_1 frames using single trial\
-| | ... | throughput test.
-| | ... | IMIX_v4_1 = (28x64B; 16x570B; 4x1518B)
-| | ...
| | [Tags] | IMIX | 4C
-| | ...
-| | [Template] | Check RR for ethip4-ip4scale2m
-| | wt=4 | rxq=2 | framesize=IMIX_v4_1
+| | phy_cores=${4} | framesize=IMIX_v4_1
diff --git a/tests/vpp/perf/ip4/10ge2p1x710-ethip4udp-ip4base-iacl1sf-10kflows-mrr.robot b/tests/vpp/perf/ip4/10ge2p1x710-ethip4udp-ip4base-iacl1sf-10kflows-mrr.robot
index 1dc5ae42f7..fe1e260629 100644
--- a/tests/vpp/perf/ip4/10ge2p1x710-ethip4udp-ip4base-iacl1sf-10kflows-mrr.robot
+++ b/tests/vpp/perf/ip4/10ge2p1x710-ethip4udp-ip4base-iacl1sf-10kflows-mrr.robot
@@ -28,6 +28,8 @@
| ...
| Test Teardown | Tear down performance mrr test
| ...
+| Test Template | Local template
+| ...
| Documentation | *Raw results IPv4 test cases with ACL*
| ...
| ... | *[Top] Network Topologies:* TG-DUT1-DUT2-TG 3-node circular topology\
@@ -67,22 +69,27 @@
| ${trex_stream2_subnet}= | 20.20.20.0/24
*** Keywords ***
-| Check RR for IPv4 routing with ACLs
+| Local template
| | ...
| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 routing config with ACL with ${wt} thread(s),\
-| | ... | ${wt} phy core(s), ${rxq} receive queue(s) per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for ${framesize} frames using single\
+| | ... | [Cfg] DUT runs IPv4 routing config.
+| | ... | Each DUT uses ${phy_cores} physical core(s) for worker threads.
+| | ... | [Ver] Measure MaxReceivedRate for ${framesize}B frames using single\
| | ... | trial throughput test.
| | ...
-| | [Arguments] | ${wt} | ${rxq} | ${framesize}
+| | ... | *Arguments:*
+| | ... | - framesize - Framesize in Bytes in integer or string (IMIX_v4_1).
+| | ... | Type: integer, string
+| | ... | - phy_cores - Number of physical cores. Type: integer
+| | ... | - rxq - Number of RX queues, default value: ${None}. Type: integer
+| | ...
+| | [Arguments] | ${phy_cores} | ${framesize} | ${rxq}=${None}
| | ...
-| | # Test Variables required for test execution and test teardown
| | Set Test Variable | ${framesize}
| | ${get_framesize}= | Get Frame Size | ${framesize}
| | ${max_rate}= | Calculate pps | ${s_limit} | ${framesize}
| | ...
-| | Given Add '${wt}' worker threads and '${rxq}' rxqueues in 3-node single-link circular topology
+| | Given Add worker threads and rxqueues to all DUTs | ${phy_cores} | ${rxq}
| | And Add PCI devices to all DUTs
| | And Run Keyword If | ${get_framesize} < ${1522}
| | ... | Add no multi seg to all DUTs
@@ -96,148 +103,49 @@
*** Test Cases ***
| tc01-64B-1t1c-ethip4udp-ip4base-iacl1-stateful-flows10k-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 routing config with ACL with\
-| | ... | 1 phy core, 1 receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 64B frames using single trial\
-| | ... | throughput test.
-| | ...
| | [Tags] | 64B | 1C
-| | ...
-| | [Template] | Check RR for IPv4 routing with ACLs
-| | wt=1 | rxq=1 | framesize=${64}
+| | phy_cores=${1} | framesize=${64}
| tc02-1518B-1t1c-ethip4udp-ip4base-iacl1-stateful-flows10k-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 routing config with ACL with\
-| | ... | 1 phy core, 1 receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 1518B frames using single trial\
-| | ... | throughput test.
-| | ...
| | [Tags] | 1518B | 1C
-| | ...
-| | [Template] | Check RR for IPv4 routing with ACLs
-| | wt=1 | rxq=1 | framesize=${1518}
+| | phy_cores=${1} | framesize=${1518}
| tc03-9000B-1t1c-ethip4udp-ip4base-iacl1-stateful-flows10k-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 routing config with ACL with\
-| | ... | 1 phy core, 1 receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 9000B frames using single trial\
-| | ... | throughput test.
-| | ...
| | [Tags] | 9000B | 1C
-| | ...
-| | [Template] | Check RR for IPv4 routing with ACLs
-| | wt=1 | rxq=1 | framesize=${9000}
+| | phy_cores=${1} | framesize=${9000}
| tc04-IMIX-1t1c-ethip4udp-ip4base-iacl1-stateful-flows10k-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 routing config with ACL with\
-| | ... | 1 phy core, 1 receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for IMIX_v4_1 frames using single trial\
-| | ... | throughput test.
-| | ... | IMIX_v4_1 = (28x64B; 16x570B; 4x1518B)
-| | ...
| | [Tags] | IMIX | 1C
-| | ...
-| | [Template] | Check RR for IPv4 routing with ACLs
-| | wt=1 | rxq=1 | framesize=IMIX_v4_1
+| | phy_cores=${1} | framesize=IMIX_v4_1
| tc05-64B-2t2c-ethip4udp-ip4base-iacl1-stateful-flows10k-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 routing config with ACL with\
-| | ... | 2 phy cores, 1 receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 64B frames using single trial\
-| | ... | throughput test.
-| | ...
| | [Tags] | 64B | 2C
-| | ...
-| | [Template] | Check RR for IPv4 routing with ACLs
-| | wt=2 | rxq=1 | framesize=${64}
+| | phy_cores=${2} | framesize=${64}
| tc06-1518B-2t2c-ethip4udp-ip4base-iacl1-stateful-flows10k-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 routing config with ACL with\
-| | ... | 2 phy cores, 1 receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 1518B frames using single trial\
-| | ... | throughput test.
-| | ...
| | [Tags] | 1518B | 2C
-| | ...
-| | [Template] | Check RR for IPv4 routing with ACLs
-| | wt=2 | rxq=1 | framesize=${1518}
+| | phy_cores=${2} | framesize=${1518}
| tc07-9000B-2t2c-ethip4udp-ip4base-iacl1-stateful-flows10k-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 routing config with ACL with\
-| | ... | 2 phy cores, 1 receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 9000B frames using single trial\
-| | ... | throughput test.
-| | ...
| | [Tags] | 9000B | 2C
-| | ...
-| | [Template] | Check RR for IPv4 routing with ACLs
-| | wt=2 | rxq=1 | framesize=${9000}
+| | phy_cores=${2} | framesize=${9000}
| tc08-IMIX-2t2c-ethip4udp-ip4base-iacl1-stateful-flows10k-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 routing config with ACL with\
-| | ... | 2 phy cores, 1 receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for IMIX_v4_1 frames using single trial\
-| | ... | throughput test.
-| | ... | IMIX_v4_1 = (28x64B; 16x570B; 4x1518B)
-| | ...
| | [Tags] | IMIX | 2C
-| | ...
-| | [Template] | Check RR for IPv4 routing with ACLs
-| | wt=2 | rxq=1 | framesize=IMIX_v4_1
+| | phy_cores=${2} | framesize=IMIX_v4_1
| tc09-64B-4t4c-ethip4udp-ip4base-iacl1-stateful-flows10k-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 routing config with ACL with\
-| | ... | 4 phy cores, 2 receive queues per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 64B frames using single trial\
-| | ... | throughput test.
-| | ...
| | [Tags] | 64B | 4C
-| | ...
-| | [Template] | Check RR for IPv4 routing with ACLs
-| | wt=4 | rxq=2 | framesize=${64}
+| | phy_cores=${4} | framesize=${64}
| tc10-1518B-4t4c-ethip4udp-ip4base-iacl1-stateful-flows10k-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 routing config with ACL with\
-| | ... | 4 phy cores, 2 receive queues per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 1518B frames using single trial\
-| | ... | throughput test.
-| | ...
| | [Tags] | 1518B | 4C
-| | ...
-| | [Template] | Check RR for IPv4 routing with ACLs
-| | wt=4 | rxq=2 | framesize=${1518}
+| | phy_cores=${4} | framesize=${1518}
| tc11-9000B-4t4c-ethip4udp-ip4base-iacl1-stateful-flows10k-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 routing config with ACL with\
-| | ... | 4 phy cores, 2 receive queues per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 9000B frames using single trial\
-| | ... | throughput test.
-| | ...
| | [Tags] | 9000B | 4C
-| | ...
-| | [Template] | Check RR for IPv4 routing with ACLs
-| | wt=4 | rxq=2 | framesize=${9000}
+| | phy_cores=${4} | framesize=${9000}
| tc12-IMIX-4t4c-ethip4udp-ip4base-iacl1-stateful-flows10k-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 routing config with ACL with\
-| | ... | 4 phy cores, 2 receive queues per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for IMIX_v4_1 frames using single trial\
-| | ... | throughput test.
-| | ... | IMIX_v4_1 = (28x64B; 16x570B; 4x1518B)
-| | ...
| | [Tags] | IMIX | 4C
-| | ...
-| | [Template] | Check RR for IPv4 routing with ACLs
-| | wt=4 | rxq=2 | framesize=IMIX_v4_1
+| | phy_cores=${4} | framesize=IMIX_v4_1
diff --git a/tests/vpp/perf/ip4/10ge2p1x710-ethip4udp-ip4base-iacl1sl-10kflows-mrr.robot b/tests/vpp/perf/ip4/10ge2p1x710-ethip4udp-ip4base-iacl1sl-10kflows-mrr.robot
index 8602970de4..67e498d2ae 100644
--- a/tests/vpp/perf/ip4/10ge2p1x710-ethip4udp-ip4base-iacl1sl-10kflows-mrr.robot
+++ b/tests/vpp/perf/ip4/10ge2p1x710-ethip4udp-ip4base-iacl1sl-10kflows-mrr.robot
@@ -28,6 +28,8 @@
| ...
| Test Teardown | Tear down performance mrr test
| ...
+| Test Template | Local template
+| ...
| Documentation | *Raw results IPv4 test cases with ACL*
| ...
| ... | *[Top] Network Topologies:* TG-DUT1-DUT2-TG 3-node circular topology\
@@ -67,22 +69,27 @@
| ${trex_stream2_subnet}= | 20.20.20.0/24
*** Keywords ***
-| Check RR for IPv4 routing with ACLs
+| Local template
| | ...
| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 routing config with ACL with ${wt} thread(s),\
-| | ... | ${wt} phy core(s), ${rxq} receive queue(s) per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for ${framesize} frames using single\
+| | ... | [Cfg] DUT runs IPv4 routing config.
+| | ... | Each DUT uses ${phy_cores} physical core(s) for worker threads.
+| | ... | [Ver] Measure MaxReceivedRate for ${framesize}B frames using single\
| | ... | trial throughput test.
| | ...
-| | [Arguments] | ${wt} | ${rxq} | ${framesize}
+| | ... | *Arguments:*
+| | ... | - framesize - Framesize in Bytes in integer or string (IMIX_v4_1).
+| | ... | Type: integer, string
+| | ... | - phy_cores - Number of physical cores. Type: integer
+| | ... | - rxq - Number of RX queues, default value: ${None}. Type: integer
+| | ...
+| | [Arguments] | ${phy_cores} | ${framesize} | ${rxq}=${None}
| | ...
-| | # Test Variables required for test execution and test teardown
| | Set Test Variable | ${framesize}
| | ${get_framesize}= | Get Frame Size | ${framesize}
| | ${max_rate}= | Calculate pps | ${s_limit} | ${framesize}
| | ...
-| | Given Add '${wt}' worker threads and '${rxq}' rxqueues in 3-node single-link circular topology
+| | Given Add worker threads and rxqueues to all DUTs | ${phy_cores} | ${rxq}
| | And Add PCI devices to all DUTs
| | And Run Keyword If | ${get_framesize} < ${1522}
| | ... | Add no multi seg to all DUTs
@@ -96,148 +103,49 @@
*** Test Cases ***
| tc01-64B-1t1c-ethip4udp-ip4base-iacl1-stateless-flows10k-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 routing config with ACL with\
-| | ... | 1 phy core, 1 receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 64B frames using single trial\
-| | ... | throughput test.
-| | ...
| | [Tags] | 64B | 1C
-| | ...
-| | [Template] | Check RR for IPv4 routing with ACLs
-| | wt=1 | rxq=1 | framesize=${64}
+| | phy_cores=${1} | framesize=${64}
| tc02-1518B-1t1c-ethip4udp-ip4base-iacl1-stateless-flows10k-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 routing config with ACL with\
-| | ... | 1 phy core, 1 receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 1518B frames using single trial\
-| | ... | throughput test.
-| | ...
| | [Tags] | 1518B | 1C
-| | ...
-| | [Template] | Check RR for IPv4 routing with ACLs
-| | wt=1 | rxq=1 | framesize=${1518}
+| | phy_cores=${1} | framesize=${1518}
| tc03-9000B-1t1c-ethip4udp-ip4base-iacl1-stateless-flows10k-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 routing config with ACL with\
-| | ... | 1 phy core, 1 receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 9000B frames using single trial\
-| | ... | throughput test.
-| | ...
| | [Tags] | 9000B | 1C
-| | ...
-| | [Template] | Check RR for IPv4 routing with ACLs
-| | wt=1 | rxq=1 | framesize=${9000}
+| | phy_cores=${1} | framesize=${9000}
| tc04-IMIX-1t1c-ethip4udp-ip4base-iacl1-stateless-flows10k-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 routing config with ACL with\
-| | ... | 1 phy core, 1 receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for IMIX_v4_1 frames using single trial\
-| | ... | throughput test.
-| | ... | IMIX_v4_1 = (28x64B; 16x570B; 4x1518B)
-| | ...
| | [Tags] | IMIX | 1C
-| | ...
-| | [Template] | Check RR for IPv4 routing with ACLs
-| | wt=1 | rxq=1 | framesize=IMIX_v4_1
+| | phy_cores=${1} | framesize=IMIX_v4_1
| tc05-64B-2t2c-ethip4udp-ip4base-iacl1-stateless-flows10k-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 routing config with ACL with\
-| | ... | 2 phy cores, 1 receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 64B frames using single trial\
-| | ... | throughput test.
-| | ...
| | [Tags] | 64B | 2C
-| | ...
-| | [Template] | Check RR for IPv4 routing with ACLs
-| | wt=2 | rxq=1 | framesize=${64}
+| | phy_cores=${2} | framesize=${64}
| tc06-1518B-2t2c-ethip4udp-ip4base-iacl1-stateless-flows10k-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 routing config with ACL with\
-| | ... | 2 phy cores, 1 receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 1518B frames using single trial\
-| | ... | throughput test.
-| | ...
| | [Tags] | 1518B | 2C
-| | ...
-| | [Template] | Check RR for IPv4 routing with ACLs
-| | wt=2 | rxq=1 | framesize=${1518}
+| | phy_cores=${2} | framesize=${1518}
| tc07-9000B-2t2c-ethip4udp-ip4base-iacl1-stateless-flows10k-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 routing config with ACL with\
-| | ... | 2 phy cores, 1 receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 9000B frames using single trial\
-| | ... | throughput test.
-| | ...
| | [Tags] | 9000B | 2C
-| | ...
-| | [Template] | Check RR for IPv4 routing with ACLs
-| | wt=2 | rxq=1 | framesize=${9000}
+| | phy_cores=${2} | framesize=${9000}
| tc08-IMIX-2t2c-ethip4udp-ip4base-iacl1-stateless-flows10k-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 routing config with ACL with\
-| | ... | 2 phy cores, 1 receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for IMIX_v4_1 frames using single trial\
-| | ... | throughput test.
-| | ... | IMIX_v4_1 = (28x64B; 16x570B; 4x1518B)
-| | ...
| | [Tags] | IMIX | 2C
-| | ...
-| | [Template] | Check RR for IPv4 routing with ACLs
-| | wt=2 | rxq=1 | framesize=IMIX_v4_1
+| | phy_cores=${2} | framesize=IMIX_v4_1
| tc09-64B-4t4c-ethip4udp-ip4base-iacl1-stateless-flows10k-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 routing config with ACL with\
-| | ... | 4 phy cores, 2 receive queues per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 64B frames using single trial\
-| | ... | throughput test.
-| | ...
| | [Tags] | 64B | 4C
-| | ...
-| | [Template] | Check RR for IPv4 routing with ACLs
-| | wt=4 | rxq=2 | framesize=${64}
+| | phy_cores=${4} | framesize=${64}
| tc10-1518B-4t4c-ethip4udp-ip4base-iacl1-stateless-flows10k-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 routing config with ACL with\
-| | ... | 4 phy cores, 2 receive queues per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 1518B frames using single trial\
-| | ... | throughput test.
-| | ...
| | [Tags] | 1518B | 4C
-| | ...
-| | [Template] | Check RR for IPv4 routing with ACLs
-| | wt=4 | rxq=2 | framesize=${1518}
+| | phy_cores=${4} | framesize=${1518}
| tc11-9000B-4t4c-ethip4udp-ip4base-iacl1-stateless-flows10k-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 routing config with ACL with\
-| | ... | 4 phy cores, 2 receive queues per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 9000B frames using single trial\
-| | ... | throughput test.
-| | ...
| | [Tags] | 9000B | 4C
-| | ...
-| | [Template] | Check RR for IPv4 routing with ACLs
-| | wt=4 | rxq=2 | framesize=${9000}
+| | phy_cores=${4} | framesize=${9000}
| tc12-IMIX-4t4c-ethip4udp-ip4base-iacl1-stateless-flows10k-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 routing config with ACL with\
-| | ... | 4 phy cores, 2 receive queues per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for IMIX_v4_1 frames using single trial\
-| | ... | throughput test.
-| | ... | IMIX_v4_1 = (28x64B; 16x570B; 4x1518B)
-| | ...
| | [Tags] | IMIX | 4C
-| | ...
-| | [Template] | Check RR for IPv4 routing with ACLs
-| | wt=4 | rxq=2 | framesize=IMIX_v4_1
+| | phy_cores=${4} | framesize=IMIX_v4_1
diff --git a/tests/vpp/perf/ip4/10ge2p1x710-ethip4udp-ip4base-iacl50sf-10kflows-mrr.robot b/tests/vpp/perf/ip4/10ge2p1x710-ethip4udp-ip4base-iacl50sf-10kflows-mrr.robot
index 2bf633d14f..8e3d74361f 100644
--- a/tests/vpp/perf/ip4/10ge2p1x710-ethip4udp-ip4base-iacl50sf-10kflows-mrr.robot
+++ b/tests/vpp/perf/ip4/10ge2p1x710-ethip4udp-ip4base-iacl50sf-10kflows-mrr.robot
@@ -28,6 +28,8 @@
| ...
| Test Teardown | Tear down performance mrr test
| ...
+| Test Template | Local template
+| ...
| Documentation | *Raw results IPv4 test cases with ACL*
| ...
| ... | *[Top] Network Topologies:* TG-DUT1-DUT2-TG 3-node circular topology\
@@ -67,22 +69,27 @@
| ${trex_stream2_subnet}= | 20.20.20.0/24
*** Keywords ***
-| Check RR for IPv4 routing with ACLs
+| Local template
| | ...
| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 routing config with ACL with ${wt} thread(s),\
-| | ... | ${wt} phy core(s), ${rxq} receive queue(s) per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for ${framesize} frames using single\
+| | ... | [Cfg] DUT runs IPv4 routing config.
+| | ... | Each DUT uses ${phy_cores} physical core(s) for worker threads.
+| | ... | [Ver] Measure MaxReceivedRate for ${framesize}B frames using single\
| | ... | trial throughput test.
| | ...
-| | [Arguments] | ${wt} | ${rxq} | ${framesize}
+| | ... | *Arguments:*
+| | ... | - framesize - Framesize in Bytes in integer or string (IMIX_v4_1).
+| | ... | Type: integer, string
+| | ... | - phy_cores - Number of physical cores. Type: integer
+| | ... | - rxq - Number of RX queues, default value: ${None}. Type: integer
+| | ...
+| | [Arguments] | ${phy_cores} | ${framesize} | ${rxq}=${None}
| | ...
-| | # Test Variables required for test execution and test teardown
| | Set Test Variable | ${framesize}
| | ${get_framesize}= | Get Frame Size | ${framesize}
| | ${max_rate}= | Calculate pps | ${s_limit} | ${framesize}
| | ...
-| | Given Add '${wt}' worker threads and '${rxq}' rxqueues in 3-node single-link circular topology
+| | Given Add worker threads and rxqueues to all DUTs | ${phy_cores} | ${rxq}
| | And Add PCI devices to all DUTs
| | And Run Keyword If | ${get_framesize} < ${1522}
| | ... | Add no multi seg to all DUTs
@@ -96,148 +103,49 @@
*** Test Cases ***
| tc01-64B-1t1c-ethip4udp-ip4base-iacl50-stateful-flows10k-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 routing config with ACL with\
-| | ... | 1 phy core, 1 receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 64B frames using single trial\
-| | ... | throughput test.
-| | ...
| | [Tags] | 64B | 1C
-| | ...
-| | [Template] | Check RR for IPv4 routing with ACLs
-| | wt=1 | rxq=1 | framesize=${64}
+| | phy_cores=${1} | framesize=${64}
| tc02-1518B-1t1c-ethip4udp-ip4base-iacl50-stateful-flows10k-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 routing config with ACL with\
-| | ... | 1 phy core, 1 receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 1518B frames using single trial\
-| | ... | throughput test.
-| | ...
| | [Tags] | 1518B | 1C
-| | ...
-| | [Template] | Check RR for IPv4 routing with ACLs
-| | wt=1 | rxq=1 | framesize=${1518}
+| | phy_cores=${1} | framesize=${1518}
| tc03-9000B-1t1c-ethip4udp-ip4base-iacl50-stateful-flows10k-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 routing config with ACL with\
-| | ... | 1 phy core, 1 receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 9000B frames using single trial\
-| | ... | throughput test.
-| | ...
| | [Tags] | 9000B | 1C
-| | ...
-| | [Template] | Check RR for IPv4 routing with ACLs
-| | wt=1 | rxq=1 | framesize=${9000}
+| | phy_cores=${1} | framesize=${9000}
| tc04-IMIX-1t1c-ethip4udp-ip4base-iacl50-stateful-flows10k-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 routing config with ACL with\
-| | ... | 1 phy core, 1 receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for IMIX_v4_1 frames using single trial\
-| | ... | throughput test.
-| | ... | IMIX_v4_1 = (28x64B; 16x570B; 4x1518B)
-| | ...
| | [Tags] | IMIX | 1C
-| | ...
-| | [Template] | Check RR for IPv4 routing with ACLs
-| | wt=1 | rxq=1 | framesize=IMIX_v4_1
+| | phy_cores=${1} | framesize=IMIX_v4_1
| tc05-64B-2t2c-ethip4udp-ip4base-iacl50-stateful-flows10k-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 routing config with ACL with\
-| | ... | 2 phy cores, 1 receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 64B frames using single trial\
-| | ... | throughput test.
-| | ...
| | [Tags] | 64B | 2C
-| | ...
-| | [Template] | Check RR for IPv4 routing with ACLs
-| | wt=2 | rxq=1 | framesize=${64}
+| | phy_cores=${2} | framesize=${64}
| tc06-1518B-2t2c-ethip4udp-ip4base-iacl50-stateful-flows10k-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 routing config with ACL with\
-| | ... | 2 phy cores, 1 receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 1518B frames using single trial\
-| | ... | throughput test.
-| | ...
| | [Tags] | 1518B | 2C
-| | ...
-| | [Template] | Check RR for IPv4 routing with ACLs
-| | wt=2 | rxq=1 | framesize=${1518}
+| | phy_cores=${2} | framesize=${1518}
| tc07-9000B-2t2c-ethip4udp-ip4base-iacl50-stateful-flows10k-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 routing config with ACL with\
-| | ... | 2 phy cores, 1 receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 9000B frames using single trial\
-| | ... | throughput test.
-| | ...
| | [Tags] | 9000B | 2C
-| | ...
-| | [Template] | Check RR for IPv4 routing with ACLs
-| | wt=2 | rxq=1 | framesize=${9000}
+| | phy_cores=${2} | framesize=${9000}
| tc08-IMIX-2t2c-ethip4udp-ip4base-iacl50-stateful-flows10k-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 routing config with ACL with\
-| | ... | 2 phy cores, 1 receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for IMIX_v4_1 frames using single trial\
-| | ... | throughput test.
-| | ... | IMIX_v4_1 = (28x64B; 16x570B; 4x1518B)
-| | ...
| | [Tags] | IMIX | 2C
-| | ...
-| | [Template] | Check RR for IPv4 routing with ACLs
-| | wt=2 | rxq=1 | framesize=IMIX_v4_1
+| | phy_cores=${2} | framesize=IMIX_v4_1
| tc09-64B-4t4c-ethip4udp-ip4base-iacl50-stateful-flows10k-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 routing config with ACL with\
-| | ... | 4 phy cores, 2 receive queues per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 64B frames using single trial\
-| | ... | throughput test.
-| | ...
| | [Tags] | 64B | 4C
-| | ...
-| | [Template] | Check RR for IPv4 routing with ACLs
-| | wt=4 | rxq=2 | framesize=${64}
+| | phy_cores=${4} | framesize=${64}
| tc10-1518B-4t4c-ethip4udp-ip4base-iacl50-stateful-flows10k-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 routing config with ACL with\
-| | ... | 4 phy cores, 2 receive queues per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 1518B frames using single trial\
-| | ... | throughput test.
-| | ...
| | [Tags] | 1518B | 4C
-| | ...
-| | [Template] | Check RR for IPv4 routing with ACLs
-| | wt=4 | rxq=2 | framesize=${1518}
+| | phy_cores=${4} | framesize=${1518}
| tc11-9000B-4t4c-ethip4udp-ip4base-iacl50-stateful-flows10k-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 routing config with ACL with\
-| | ... | 4 phy cores, 2 receive queues per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 9000B frames using single trial\
-| | ... | throughput test.
-| | ...
| | [Tags] | 9000B | 4C
-| | ...
-| | [Template] | Check RR for IPv4 routing with ACLs
-| | wt=4 | rxq=2 | framesize=${9000}
+| | phy_cores=${4} | framesize=${9000}
| tc12-IMIX-4t4c-ethip4udp-ip4base-iacl50-stateful-flows10k-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 routing config with ACL with\
-| | ... | 4 phy cores, 2 receive queues per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for IMIX_v4_1 frames using single trial\
-| | ... | throughput test.
-| | ... | IMIX_v4_1 = (28x64B; 16x570B; 4x1518B)
-| | ...
| | [Tags] | IMIX | 4C
-| | ...
-| | [Template] | Check RR for IPv4 routing with ACLs
-| | wt=4 | rxq=2 | framesize=IMIX_v4_1
+| | phy_cores=${4} | framesize=IMIX_v4_1
diff --git a/tests/vpp/perf/ip4/10ge2p1x710-ethip4udp-ip4base-iacl50sl-10kflows-mrr.robot b/tests/vpp/perf/ip4/10ge2p1x710-ethip4udp-ip4base-iacl50sl-10kflows-mrr.robot
index dd3273c7db..8f56bbad83 100644
--- a/tests/vpp/perf/ip4/10ge2p1x710-ethip4udp-ip4base-iacl50sl-10kflows-mrr.robot
+++ b/tests/vpp/perf/ip4/10ge2p1x710-ethip4udp-ip4base-iacl50sl-10kflows-mrr.robot
@@ -28,6 +28,8 @@
| ...
| Test Teardown | Tear down performance mrr test
| ...
+| Test Template | Local template
+| ...
| Documentation | *Raw results IPv4 test cases with ACL*
| ...
| ... | *[Top] Network Topologies:* TG-DUT1-DUT2-TG 3-node circular topology\
@@ -67,22 +69,27 @@
| ${trex_stream2_subnet}= | 20.20.20.0/24
*** Keywords ***
-| Check RR for IPv4 routing with ACLs
+| Local template
| | ...
| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 routing config with ACL with ${wt} thread(s),\
-| | ... | ${wt} phy core(s), ${rxq} receive queue(s) per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for ${framesize} frames using single\
+| | ... | [Cfg] DUT runs IPv4 routing config.
+| | ... | Each DUT uses ${phy_cores} physical core(s) for worker threads.
+| | ... | [Ver] Measure MaxReceivedRate for ${framesize}B frames using single\
| | ... | trial throughput test.
| | ...
-| | [Arguments] | ${wt} | ${rxq} | ${framesize}
+| | ... | *Arguments:*
+| | ... | - framesize - Framesize in Bytes in integer or string (IMIX_v4_1).
+| | ... | Type: integer, string
+| | ... | - phy_cores - Number of physical cores. Type: integer
+| | ... | - rxq - Number of RX queues, default value: ${None}. Type: integer
+| | ...
+| | [Arguments] | ${phy_cores} | ${framesize} | ${rxq}=${None}
| | ...
-| | # Test Variables required for test execution and test teardown
| | Set Test Variable | ${framesize}
| | ${get_framesize}= | Get Frame Size | ${framesize}
| | ${max_rate}= | Calculate pps | ${s_limit} | ${framesize}
| | ...
-| | Given Add '${wt}' worker threads and '${rxq}' rxqueues in 3-node single-link circular topology
+| | Given Add worker threads and rxqueues to all DUTs | ${phy_cores} | ${rxq}
| | And Add PCI devices to all DUTs
| | And Run Keyword If | ${get_framesize} < ${1522}
| | ... | Add no multi seg to all DUTs
@@ -96,148 +103,49 @@
*** Test Cases ***
| tc01-64B-1t1c-ethip4udp-ip4base-iacl50-stateless-flows10k-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 routing config with ACL with\
-| | ... | 1 phy core, 1 receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 64B frames using single trial\
-| | ... | throughput test.
-| | ...
| | [Tags] | 64B | 1C
-| | ...
-| | [Template] | Check RR for IPv4 routing with ACLs
-| | wt=1 | rxq=1 | framesize=${64}
+| | phy_cores=${1} | framesize=${64}
| tc02-1518B-1t1c-ethip4udp-ip4base-iacl50-stateless-flows10k-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 routing config with ACL with\
-| | ... | 1 phy core, 1 receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 1518B frames using single trial\
-| | ... | throughput test.
-| | ...
| | [Tags] | 1518B | 1C
-| | ...
-| | [Template] | Check RR for IPv4 routing with ACLs
-| | wt=1 | rxq=1 | framesize=${1518}
+| | phy_cores=${1} | framesize=${1518}
| tc03-9000B-1t1c-ethip4udp-ip4base-iacl50-stateless-flows10k-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 routing config with ACL with\
-| | ... | 1 phy core, 1 receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 9000B frames using single trial\
-| | ... | throughput test.
-| | ...
| | [Tags] | 9000B | 1C
-| | ...
-| | [Template] | Check RR for IPv4 routing with ACLs
-| | wt=1 | rxq=1 | framesize=${9000}
+| | phy_cores=${1} | framesize=${9000}
| tc04-IMIX-1t1c-ethip4udp-ip4base-iacl50-stateless-flows10k-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 routing config with ACL with\
-| | ... | 1 phy core, 1 receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for IMIX_v4_1 frames using single trial\
-| | ... | throughput test.
-| | ... | IMIX_v4_1 = (28x64B; 16x570B; 4x1518B)
-| | ...
| | [Tags] | IMIX | 1C
-| | ...
-| | [Template] | Check RR for IPv4 routing with ACLs
-| | wt=1 | rxq=1 | framesize=IMIX_v4_1
+| | phy_cores=${1} | framesize=IMIX_v4_1
| tc05-64B-2t2c-ethip4udp-ip4base-iacl50-stateless-flows10k-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 routing config with ACL with\
-| | ... | 2 phy cores, 1 receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 64B frames using single trial\
-| | ... | throughput test.
-| | ...
| | [Tags] | 64B | 2C
-| | ...
-| | [Template] | Check RR for IPv4 routing with ACLs
-| | wt=2 | rxq=1 | framesize=${64}
+| | phy_cores=${2} | framesize=${64}
| tc06-1518B-2t2c-ethip4udp-ip4base-iacl50-stateless-flows10k-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 routing config with ACL with\
-| | ... | 2 phy cores, 1 receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 1518B frames using single trial\
-| | ... | throughput test.
-| | ...
| | [Tags] | 1518B | 2C
-| | ...
-| | [Template] | Check RR for IPv4 routing with ACLs
-| | wt=2 | rxq=1 | framesize=${1518}
+| | phy_cores=${2} | framesize=${1518}
| tc07-9000B-2t2c-ethip4udp-ip4base-iacl50-stateless-flows10k-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 routing config with ACL with\
-| | ... | 2 phy cores, 1 receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 9000B frames using single trial\
-| | ... | throughput test.
-| | ...
| | [Tags] | 9000B | 2C
-| | ...
-| | [Template] | Check RR for IPv4 routing with ACLs
-| | wt=2 | rxq=1 | framesize=${9000}
+| | phy_cores=${2} | framesize=${9000}
| tc08-IMIX-2t2c-ethip4udp-ip4base-iacl50-stateless-flows10k-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 routing config with ACL with\
-| | ... | 2 phy cores, 1 receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for IMIX_v4_1 frames using single trial\
-| | ... | throughput test.
-| | ... | IMIX_v4_1 = (28x64B; 16x570B; 4x1518B)
-| | ...
| | [Tags] | IMIX | 2C
-| | ...
-| | [Template] | Check RR for IPv4 routing with ACLs
-| | wt=2 | rxq=1 | framesize=IMIX_v4_1
+| | phy_cores=${2} | framesize=IMIX_v4_1
| tc09-64B-4t4c-ethip4udp-ip4base-iacl50-stateless-flows10k-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 routing config with ACL with\
-| | ... | 4 phy cores, 2 receive queues per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 64B frames using single trial\
-| | ... | throughput test.
-| | ...
| | [Tags] | 64B | 4C
-| | ...
-| | [Template] | Check RR for IPv4 routing with ACLs
-| | wt=4 | rxq=2 | framesize=${64}
+| | phy_cores=${4} | framesize=${64}
| tc10-1518B-4t4c-ethip4udp-ip4base-iacl50-stateless-flows10k-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 routing config with ACL with\
-| | ... | 4 phy cores, 2 receive queues per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 1518B frames using single trial\
-| | ... | throughput test.
-| | ...
| | [Tags] | 1518B | 4C
-| | ...
-| | [Template] | Check RR for IPv4 routing with ACLs
-| | wt=4 | rxq=2 | framesize=${1518}
+| | phy_cores=${4} | framesize=${1518}
| tc11-9000B-4t4c-ethip4udp-ip4base-iacl50-stateless-flows10k-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 routing config with ACL with\
-| | ... | 4 phy cores, 2 receive queues per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 9000B frames using single trial\
-| | ... | throughput test.
-| | ...
| | [Tags] | 9000B | 4C
-| | ...
-| | [Template] | Check RR for IPv4 routing with ACLs
-| | wt=4 | rxq=2 | framesize=${9000}
+| | phy_cores=${4} | framesize=${9000}
| tc12-IMIX-4t4c-ethip4udp-ip4base-iacl50-stateless-flows10k-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 routing config with ACL with\
-| | ... | 4 phy cores, 2 receive queues per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for IMIX_v4_1 frames using single trial\
-| | ... | throughput test.
-| | ... | IMIX_v4_1 = (28x64B; 16x570B; 4x1518B)
-| | ...
| | [Tags] | IMIX | 4C
-| | ...
-| | [Template] | Check RR for IPv4 routing with ACLs
-| | wt=4 | rxq=2 | framesize=IMIX_v4_1
+| | phy_cores=${4} | framesize=IMIX_v4_1
diff --git a/tests/vpp/perf/ip4/10ge2p1x710-ethip4udp-ip4base-nat44-mrr.robot b/tests/vpp/perf/ip4/10ge2p1x710-ethip4udp-ip4base-nat44-mrr.robot
index 6826fd0383..a64e2c1e48 100644
--- a/tests/vpp/perf/ip4/10ge2p1x710-ethip4udp-ip4base-nat44-mrr.robot
+++ b/tests/vpp/perf/ip4/10ge2p1x710-ethip4udp-ip4base-nat44-mrr.robot
@@ -29,6 +29,8 @@
| ...
| Test Teardown | Tear down performance mrr test
| ...
+| Test Template | Local template
+| ...
| Documentation | *NAT44 performance test cases*
| ...
| ... | *[Top] Network Topologies:* TG-DUT1-DUT2-TG 3-node circular topology
@@ -53,23 +55,27 @@
| ${traffic_profile}= | trex-sl-3n-ethip4udp-1u1p
*** Keywords ***
-| Check RR for IPv4 routing with NAT44
+| Local template
| | ...
| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 routing config with ${wt} thread(s), ${wt}\
-| | ... | phy core(s), ${rxq} receive queue(s) per NIC port. NAT44 is\
-| | ... | configured between DUTs - 1 user and 1 port (session) per user.
-| | ... | [Ver] Measure MaxReceivedRate for ${framesize} frames using single\
+| | ... | [Cfg] DUT runs IPv4 routing config.
+| | ... | Each DUT uses ${phy_cores} physical core(s) for worker threads.
+| | ... | [Ver] Measure MaxReceivedRate for ${framesize}B frames using single\
| | ... | trial throughput test.
| | ...
-| | [Arguments] | ${wt} | ${rxq} | ${framesize}
+| | ... | *Arguments:*
+| | ... | - framesize - Framesize in Bytes in integer or string (IMIX_v4_1).
+| | ... | Type: integer, string
+| | ... | - phy_cores - Number of physical cores. Type: integer
+| | ... | - rxq - Number of RX queues, default value: ${None}. Type: integer
+| | ...
+| | [Arguments] | ${phy_cores} | ${framesize} | ${rxq}=${None}
| | ...
-| | # Test Variables required for test execution and test teardown
| | Set Test Variable | ${framesize}
| | ${max_rate}= | Calculate pps | ${s_limit} | ${framesize}
| | ${get_framesize}= | Get Frame Size | ${framesize}
| | ...
-| | Given Add '${wt}' worker threads and '${rxq}' rxqueues in 3-node single-link circular topology
+| | Given Add worker threads and rxqueues to all DUTs | ${phy_cores} | ${rxq}
| | And Add PCI devices to all DUTs
| | And Run Keyword If | ${get_framesize} < ${1522}
| | ... | Add no multi seg to all DUTs
@@ -81,160 +87,49 @@
*** Test Cases ***
| tc01-64B-1t1c-ethip4-ip4base-snat-1u-1p-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 routing config with 1 phy core,\
-| | ... | 1 receive queue per NIC port. NAT44 is configured between DUTs -\
-| | ... | 1 user and 1 port (session) per user.
-| | ... | [Ver] Measure MaxReceivedRate for 64B frames using single trial\
-| | ... | throughput test.
-| | ...
| | [Tags] | 64B | 1C
-| | ...
-| | [Template] | Check RR for IPv4 routing with NAT44
-| | wt=1 | rxq=1 | framesize=${64}
+| | phy_cores=${1} | framesize=${64}
| tc02-1518B-1t1c-ethip4-ip4base-snat-1u-1p-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 routing config with 1 phy core,\
-| | ... | 1 receive queue per NIC port. NAT44 is configured between DUTs -\
-| | ... | 1 user and 1 port (session) per user.
-| | ... | [Ver] Measure MaxReceivedRate for 1518B frames using single\
-| | ... | trial throughput test.
-| | ...
| | [Tags] | 1518B | 1C
-| | ...
-| | [Template] | Check RR for IPv4 routing with NAT44
-| | wt=1 | rxq=1 | framesize=${1518}
+| | phy_cores=${1} | framesize=${1518}
| tc03-9000B-1t1c-ethip4-ip4base-snat-1u-1p-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 routing config with 1 phy core,\
-| | ... | 1 receive queue per NIC port. NAT44 is configured between DUTs -\
-| | ... | 1 user and 1 port (session) per user.
-| | ... | [Ver] Measure MaxReceivedRate for 9000B frames using single\
-| | ... | trial throughput test.
-| | ...
| | [Tags] | 9000B | 1C
-| | ...
-| | [Template] | Check RR for IPv4 routing with NAT44
-| | wt=1 | rxq=1 | framesize=${9000}
+| | phy_cores=${1} | framesize=${9000}
| tc04-IMIX-1t1c-ethip4-ip4base-snat-1u-1p-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 routing config with 1 phy core,\
-| | ... | 1 receive queue per NIC port. NAT44 is configured between DUTs -\
-| | ... | 1 user and 1 port (session) per user.
-| | ... | [Ver] Find NDR for IMIX frames using binary search start at 10GE\
-| | ... | linerate, step 50kpps.
-| | ... | IMIX_v4_1 = (28x64B; 16x570B; 4x1518B)
-| | ...
| | [Tags] | IMIX | 1C
-| | ...
-| | [Template] | Check RR for IPv4 routing with NAT44
-| | wt=1 | rxq=1 | framesize=IMIX_v4_1
+| | phy_cores=${1} | framesize=IMIX_v4_1
| tc05-64B-2t2c-ethip4-ip4base-snat-1u-1p-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 routing config with 2 phy cores,\
-| | ... | 1 receive queue per NIC port. NAT44 is configured between DUTs -\
-| | ... | 1 user and 1 port (session) per user.
-| | ... | [Ver] Measure MaxReceivedRate for 64B frames using single trial\
-| | ... | throughput test.
-| | ...
| | [Tags] | 64B | 2C
-| | ...
-| | [Template] | Check RR for IPv4 routing with NAT44
-| | wt=2 | rxq=1 | framesize=${64}
+| | phy_cores=${2} | framesize=${64}
| tc06-1518B-2t2c-ethip4-ip4base-snat-1u-1p-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 routing config with 2 phy cores,\
-| | ... | 1 receive queue per NIC port. NAT44 is configured between DUTs -\
-| | ... | 1 user and 1 port (session) per user.
-| | ... | [Ver] Measure MaxReceivedRate for 1518B frames using single\
-| | ... | trial throughput test.
-| | ...
| | [Tags] | 1518B | 2C
-| | ...
-| | [Template] | Check RR for IPv4 routing with NAT44
-| | wt=2 | rxq=1 | framesize=${1518}
+| | phy_cores=${2} | framesize=${1518}
| tc07-9000B-2t2c-ethip4-ip4base-snat-1u-1p-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 routing config with 2 phy cores,\
-| | ... | 1 receive queue per NIC port. NAT44 is configured between DUTs -\
-| | ... | 1 user and 1 port (session) per user.
-| | ... | [Ver] Measure MaxReceivedRate for 9000B frames using single\
-| | ... | trial throughput test.
-| | ...
| | [Tags] | 9000B | 2C
-| | ...
-| | [Template] | Check RR for IPv4 routing with NAT44
-| | wt=2 | rxq=1 | framesize=${9000}
+| | phy_cores=${2} | framesize=${9000}
| tc08-IMIX-2t2c-ethip4-ip4base-snat-1u-1p-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 routing config with 2 phy cores,\
-| | ... | 1 receive queue per NIC port. NAT44 is configured between DUTs -\
-| | ... | 1 user and 1 port (session) per user.
-| | ... | [Ver] Find NDR for IMIX frames using binary search start at 10GE\
-| | ... | linerate, step 50kpps.
-| | ... | IMIX_v4_1 = (28x64B; 16x570B; 4x1518B)
-| | ...
| | [Tags] | IMIX | 2C
-| | ...
-| | [Template] | Check RR for IPv4 routing with NAT44
-| | wt=2 | rxq=1 | framesize=IMIX_v4_1
+| | phy_cores=${2} | framesize=IMIX_v4_1
| tc09-64B-4t4c-ethip4-ip4base-snat-1u-1p-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 routing config with 4 phy cores,\
-| | ... | 2 receive queues per NIC port. NAT44 is configured between DUTs -\
-| | ... | 1 user and 1 port (session) per user.
-| | ... | [Ver] Measure MaxReceivedRate for 64B frames using single trial\
-| | ... | throughput test.
-| | ...
| | [Tags] | 64B | 4C
-| | ...
-| | [Template] | Check RR for IPv4 routing with NAT44
-| | wt=4 | rxq=2 | framesize=${64}
+| | phy_cores=${4} | framesize=${64}
| tc10-1518B-4t4c-ethip4-ip4base-snat-1u-1p-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 routing config with 4 phy cores,\
-| | ... | 2 receive queues per NIC port. NAT44 is configured between DUTs -\
-| | ... | 1 user and 1 port (session) per user.
-| | ... | [Ver] Measure MaxReceivedRate for 1518B frames using single\
-| | ... | trial throughput test.
-| | ...
| | [Tags] | 1518B | 4C
-| | ...
-| | [Template] | Check RR for IPv4 routing with NAT44
-| | wt=4 | rxq=2 | framesize=${1518}
+| | phy_cores=${4} | framesize=${1518}
| tc11-9000B-4t4c-ethip4-ip4base-snat-1u-1p-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 routing config with 4 phy cores,\
-| | ... | 2 receive queues per NIC port. NAT44 is configured between DUTs -\
-| | ... | 1 user and 1 port (session) per user.
-| | ... | [Ver] Measure MaxReceivedRate for 9000B frames using single\
-| | ... | trial throughput test.
-| | ...
| | [Tags] | 9000B | 4C
-| | ...
-| | [Template] | Check RR for IPv4 routing with NAT44
-| | wt=4 | rxq=2 | framesize=${9000}
+| | phy_cores=${4} | framesize=${9000}
| tc12-IMIX-4t4c-ethip4-ip4base-snat-1u-1p-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 routing config with 4 phy cores,\
-| | ... | 2 receive queues per NIC port. NAT44 is configured between DUTs -\
-| | ... | 1 user and 1 port (session) per user.
-| | ... | [Ver] Find NDR for IMIX frames using binary search start at 10GE\
-| | ... | linerate, step 50kpps.
-| | ... | IMIX_v4_1 = (28x64B; 16x570B; 4x1518B)
-| | ...
| | [Tags] | IMIX | 4C
-| | ...
-| | [Template] | Check RR for IPv4 routing with NAT44
-| | wt=4 | rxq=2 | framesize=IMIX_v4_1
+| | phy_cores=${4} | framesize=IMIX_v4_1
diff --git a/tests/vpp/perf/ip4/10ge2p1x710-ethip4udp-ip4scale1000-udpsrcscale15-nat44-mrr.robot b/tests/vpp/perf/ip4/10ge2p1x710-ethip4udp-ip4scale1000-udpsrcscale15-nat44-mrr.robot
index d297773bf4..386b742adb 100644
--- a/tests/vpp/perf/ip4/10ge2p1x710-ethip4udp-ip4scale1000-udpsrcscale15-nat44-mrr.robot
+++ b/tests/vpp/perf/ip4/10ge2p1x710-ethip4udp-ip4scale1000-udpsrcscale15-nat44-mrr.robot
@@ -30,6 +30,8 @@
| ...
| Test Teardown | Tear down performance mrr test
| ...
+| Test Template | Local template
+| ...
| Documentation | *Raw results NAT44 performance test cases*
| ...
| ... | *[Top] Network Topologies:* TG-DUT1-DUT2-TG 3-node circular topology
@@ -54,22 +56,27 @@
| ${traffic_profile}= | trex-sl-3n-ethip4udp-1000u15p
*** Keywords ***
-| Check RR for IPv4 routing with NAT44
+| Local template
| | ...
| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 routing config with ${wt} thread(s), ${wt}\
-| | ... | phy core(s), ${rxq} receive queue(s) per NIC port.NAT44 is configured\
-| | ... | between DUTs - 1000 users and 15 ports (sessions) per user.
-| | ... | [Ver] Measure MaxReceivedRate for ${framesize} frames using single\
+| | ... | [Cfg] DUT runs IPv4 routing config.
+| | ... | Each DUT uses ${phy_cores} physical core(s) for worker threads.
+| | ... | [Ver] Measure MaxReceivedRate for ${framesize}B frames using single\
| | ... | trial throughput test.
| | ...
-| | [Arguments] | ${wt} | ${rxq} | ${framesize}
+| | ... | *Arguments:*
+| | ... | - framesize - Framesize in Bytes in integer or string (IMIX_v4_1).
+| | ... | Type: integer, string
+| | ... | - phy_cores - Number of physical cores. Type: integer
+| | ... | - rxq - Number of RX queues, default value: ${None}. Type: integer
+| | ...
+| | [Arguments] | ${phy_cores} | ${framesize} | ${rxq}=${None}
| | ...
| | Set Test Variable | ${framesize}
| | ${max_rate}= | Calculate pps | ${s_limit} | ${framesize}
| | ${get_framesize}= | Get Frame Size | ${framesize}
| | ...
-| | Given Add '${wt}' worker threads and '${rxq}' rxqueues in 3-node single-link circular topology
+| | Given Add worker threads and rxqueues to all DUTs | ${phy_cores} | ${rxq}
| | And Add PCI devices to all DUTs
| | And Run Keyword If | ${get_framesize} < ${1522}
| | ... | Add no multi seg to all DUTs
@@ -81,160 +88,49 @@
*** Test Cases ***
| tc01-64B-1t1c-ethip4udp-ip4scale1000-udpsrcscale15-snat-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 routing config with 1 phy core,\
-| | ... | 1 receive queue per NIC port. NAT44 is configured between DUTs -\
-| | ... | 1000 users and 15 ports (sessions) per user.
-| | ... | [Ver] Measure MaxReceivedRate for 64B frames using single trial\
-| | ... | throughput test.
-| | ...
| | [Tags] | 64B | 1C
-| | ...
-| | [Template] | Check RR for IPv4 routing with NAT44
-| | wt=1 | rxq=1 | framesize=${64}
+| | phy_cores=${1} | framesize=${64}
| tc02-1518B-1t1c-ethip4udp-ip4scale1000-udpsrcscale15-snat-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 routing config with 1 phy core,\
-| | ... | 1 receive queue per NIC port. NAT44 is configured between DUTs -\
-| | ... | 1000 users and 15 ports (sessions) per user.
-| | ... | [Ver] Measure MaxReceivedRate for 1518B frames using single\
-| | ... | trial throughput test.
-| | ...
| | [Tags] | 1518B | 1C
-| | ...
-| | [Template] | Check RR for IPv4 routing with NAT44
-| | wt=1 | rxq=1 | framesize=${1518}
+| | phy_cores=${1} | framesize=${1518}
| tc03-9000B-1t1c-ethip4udp-ip4scale1000-udpsrcscale15-snat-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 routing config with 1 phy core,\
-| | ... | 1 receive queue per NIC port. NAT44 is configured between DUTs -\
-| | ... | 1000 users and 15 ports (sessions) per user.
-| | ... | [Ver] Measure MaxReceivedRate for 9000B frames using single\
-| | ... | trial throughput test.
-| | ...
| | [Tags] | 9000B | 1C
-| | ...
-| | [Template] | Check RR for IPv4 routing with NAT44
-| | wt=1 | rxq=1 | framesize=${9000}
+| | phy_cores=${1} | framesize=${9000}
| tc04-IMIX-1t1c-ethip4udp-ip4scale1000-udpsrcscale15-snat-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 routing config with 1 phy core,\
-| | ... | 1 receive queue per NIC port. NAT44 is configured between DUTs -\
-| | ... | 1000 users and 15 ports (sessions) per user.
-| | ... | [Ver] Measure MaxReceivedRate for IMIX_v4_1 frames using single trial\
-| | ... | throughput test.
-| | ... | IMIX_v4_1 = (28x64B; 16x570B; 4x1518B)
-| | ...
| | [Tags] | IMIX | 1C
-| | ...
-| | [Template] | Check RR for IPv4 routing with NAT44
-| | wt=1 | rxq=1 | framesize=IMIX_v4_1
+| | phy_cores=${1} | framesize=IMIX_v4_1
| tc05-64B-2t2c-ethip4udp-ip4scale1000-udpsrcscale15-snat-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 routing config with 2 phy cores,\
-| | ... | 1 receive queue per NIC port. NAT44 is configured between DUTs -\
-| | ... | 1000 users and 15 ports (sessions) per user.
-| | ... | [Ver] Measure MaxReceivedRate for 64B frames using single trial\
-| | ... | throughput test.
-| | ...
| | [Tags] | 64B | 2C
-| | ...
-| | [Template] | Check RR for IPv4 routing with NAT44
-| | wt=2 | rxq=1 | framesize=${64}
+| | phy_cores=${2} | framesize=${64}
| tc06-1518B-2t2c-ethip4udp-ip4scale1000-udpsrcscale15-snat-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 routing config with 2 phy cores,\
-| | ... | 1 receive queue per NIC port. NAT44 is configured between DUTs -\
-| | ... | 1000 users and 15 ports (sessions) per user.
-| | ... | [Ver] Measure MaxReceivedRate for 1518B frames using single\
-| | ... | trial throughput test.
-| | ...
| | [Tags] | 1518B | 2C
-| | ...
-| | [Template] | Check RR for IPv4 routing with NAT44
-| | wt=2 | rxq=1 | framesize=${1518}
+| | phy_cores=${2} | framesize=${1518}
| tc07-9000B-2t2c-ethip4udp-ip4scale1000-udpsrcscale15-snat-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 routing config with 2 phy cores,\
-| | ... | 1 receive queue per NIC port. NAT44 is configured between DUTs -\
-| | ... | 1000 users and 15 ports (sessions) per user.
-| | ... | [Ver] Measure MaxReceivedRate for 9000B frames using single\
-| | ... | trial throughput test.
-| | ...
| | [Tags] | 9000B | 2C
-| | ...
-| | [Template] | Check RR for IPv4 routing with NAT44
-| | wt=2 | rxq=1 | framesize=${9000}
+| | phy_cores=${2} | framesize=${9000}
| tc08-IMIX-2t2c-ethip4udp-ip4scale1000-udpsrcscale15-snat-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 routing config with 2 phy cores,\
-| | ... | 1 receive queue per NIC port. NAT44 is configured between DUTs -\
-| | ... | 1000 users and 15 ports (sessions) per user.
-| | ... | [Ver] Measure MaxReceivedRate for IMIX_v4_1 frames using single trial\
-| | ... | throughput test.
-| | ... | IMIX_v4_1 = (28x64B; 16x570B; 4x1518B)
-| | ...
| | [Tags] | IMIX | 2C
-| | ...
-| | [Template] | Check RR for IPv4 routing with NAT44
-| | wt=2 | rxq=1 | framesize=IMIX_v4_1
+| | phy_cores=${2} | framesize=IMIX_v4_1
| tc09-64B-4t4c-ethip4udp-ip4scale1000-udpsrcscale15-snat-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 routing config with 4 phy cores,\
-| | ... | 2 receive queues per NIC port. NAT44 is configured between DUTs -\
-| | ... | 1000 users and 15 ports (sessions) per user.
-| | ... | [Ver] Measure MaxReceivedRate for 64B frames using single trial\
-| | ... | throughput test.
-| | ...
| | [Tags] | 64B | 4C
-| | ...
-| | [Template] | Check RR for IPv4 routing with NAT44
-| | wt=4 | rxq=2 | framesize=${64}
+| | phy_cores=${4} | framesize=${64}
| tc10-1518B-4t4c-ethip4udp-ip4scale1000-udpsrcscale15-snat-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 routing config with 4 phy cores,\
-| | ... | 2 receive queues per NIC port. NAT44 is configured between DUTs -\
-| | ... | 1000 users and 15 ports (sessions) per user.
-| | ... | [Ver] Measure MaxReceivedRate for 1518B frames using single\
-| | ... | trial throughput test.
-| | ...
| | [Tags] | 1518B | 4C
-| | ...
-| | [Template] | Check RR for IPv4 routing with NAT44
-| | wt=4 | rxq=2 | framesize=${1518}
+| | phy_cores=${4} | framesize=${1518}
| tc11-9000B-4t4c-ethip4udp-ip4scale1000-udpsrcscale15-snat-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 routing config with 4 phy cores,\
-| | ... | 2 receive queues per NIC port. NAT44 is configured between DUTs -\
-| | ... | 1000 users and 15 ports (sessions) per user.
-| | ... | [Ver] Measure MaxReceivedRate for 9000B frames using single\
-| | ... | trial throughput test.
-| | ...
| | [Tags] | 9000B | 4C
-| | ...
-| | [Template] | Check RR for IPv4 routing with NAT44
-| | wt=4 | rxq=2 | framesize=${9000}
+| | phy_cores=${4} | framesize=${9000}
| tc12-IMIX-4t4c-ethip4udp-ip4scale1000-udpsrcscale15-snat-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 routing config with 4 phy cores,\
-| | ... | 2 receive queues per NIC port. NAT44 is configured between DUTs -\
-| | ... | 1000 users and 15 ports (sessions) per user.
-| | ... | [Ver] Measure MaxReceivedRate for IMIX_v4_1 frames using single trial\
-| | ... | throughput test.
-| | ... | IMIX_v4_1 = (28x64B; 16x570B; 4x1518B)
-| | ...
| | [Tags] | IMIX | 4C
-| | ...
-| | [Template] | Check RR for IPv4 routing with NAT44
-| | wt=4 | rxq=2 | framesize=IMIX_v4_1
+| | phy_cores=${4} | framesize=IMIX_v4_1
diff --git a/tests/vpp/perf/ip4/40ge2p1xl710-ethip4-ip4base-mrr.robot b/tests/vpp/perf/ip4/40ge2p1xl710-ethip4-ip4base-mrr.robot
index c11f973397..9cb24f6701 100644
--- a/tests/vpp/perf/ip4/40ge2p1xl710-ethip4-ip4base-mrr.robot
+++ b/tests/vpp/perf/ip4/40ge2p1xl710-ethip4-ip4base-mrr.robot
@@ -24,6 +24,8 @@
| Test Setup | Set up performance test
| Test Teardown | Tear down performance mrr test
| ...
+| Test Template | Local template
+| ...
| Documentation | *Raw results IPv4 routing test cases*
| ...
| ... | *[Top] Network Topologies:* TG-DUT1-DUT2-TG 3-node circular topology
@@ -50,24 +52,29 @@
| ${traffic_profile}= | trex-sl-3n-ethip4-ip4src253
*** Keywords ***
-| Check RR for ethip4-ip4base
+| Local template
| | ...
| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 routing config with ${wt} thread(s), ${wt}\
-| | ... | phy core(s), ${rxq} receive queue(s) per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for ${framesize} frames using single\
+| | ... | [Cfg] DUT runs IPv4 routing config.
+| | ... | Each DUT uses ${phy_cores} physical core(s) for worker threads.
+| | ... | [Ver] Measure MaxReceivedRate for ${framesize}B frames using single\
| | ... | trial throughput test.
| | ...
-| | [Arguments] | ${wt} | ${rxq} | ${framesize}
+| | ... | *Arguments:*
+| | ... | - framesize - Framesize in Bytes in integer or string (IMIX_v4_1).
+| | ... | Type: integer, string
+| | ... | - phy_cores - Number of physical cores. Type: integer
+| | ... | - rxq - Number of RX queues, default value: ${None}. Type: integer
+| | ...
+| | [Arguments] | ${phy_cores} | ${framesize} | ${rxq}=${None}
| | ...
-| | # Test Variables required for test execution and test teardown
| | Set Test Variable | ${framesize}
| | ${get_framesize}= | Get Frame Size | ${framesize}
| | ${max_rate}= | Calculate pps | ${s_24.5G} | ${get_framesize}
| | ${max_rate}= | Set Variable If
| | ... | ${max_rate} > ${s_18.75Mpps} | ${s_18.75Mpps} | ${max_rate}
| | ...
-| | Given Add '${wt}' worker threads and '${rxq}' rxqueues in 3-node single-link circular topology
+| | Given Add worker threads and rxqueues to all DUTs | ${phy_cores} | ${rxq}
| | And Add PCI devices to all DUTs
| | And Run Keyword If | ${get_framesize} < ${1522}
| | ... | Add no multi seg to all DUTs
@@ -78,148 +85,49 @@
*** Test Cases ***
| tc01-64B-1t1c-ethip4-ip4base-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 routing config with 1 phy core,\
-| | ... | 1 receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 64B frames using single trial\
-| | ... | throughput test.
-| | ...
| | [Tags] | 64B | 1C
-| | ...
-| | [Template] | Check RR for ethip4-ip4base
-| | wt=1 | rxq=1 | framesize=${64}
+| | phy_cores=${1} | framesize=${64}
| tc02-1518B-1t1c-ethip4-ip4base-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 routing config with 1 phy core,\
-| | ... | 1 receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 1518B frames using single\
-| | ... | trial throughput test.
-| | ...
| | [Tags] | 1518B | 1C
-| | ...
-| | [Template] | Check RR for ethip4-ip4base
-| | wt=1 | rxq=1 | framesize=${1518}
+| | phy_cores=${1} | framesize=${1518}
| tc03-9000B-1t1c-ethip4-ip4base-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 routing config with 1 phy core,\
-| | ... | 1 receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 9000B frames using single\
-| | ... | trial throughput test.
-| | ...
| | [Tags] | 9000B | 1C
-| | ...
-| | [Template] | Check RR for ethip4-ip4base
-| | wt=1 | rxq=1 | framesize=${9000}
+| | phy_cores=${1} | framesize=${9000}
| tc04-IMIX-1t1c-ethip4-ip4base-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 routing config with \
-| | ... | 1 phy core, 1 receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for IMIX_v4_1 frames using single trial\
-| | ... | throughput test.
-| | ... | IMIX_v4_1 = (28x64B; 16x570B; 4x1518B)
-| | ...
| | [Tags] | IMIX | 1C
-| | ...
-| | [Template] | Check RR for ethip4-ip4base
-| | wt=1 | rxq=1 | framesize=IMIX_v4_1
+| | phy_cores=${1} | framesize=IMIX_v4_1
| tc05-64B-2t2c-ethip4-ip4base-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 routing config with 2 phy cores,\
-| | ... | 1 receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 64B frames using single trial\
-| | ... | throughput test.
-| | ...
| | [Tags] | 64B | 2C
-| | ...
-| | [Template] | Check RR for ethip4-ip4base
-| | wt=2 | rxq=1 | framesize=${64}
+| | phy_cores=${2} | framesize=${64}
| tc06-1518B-2t2c-ethip4-ip4base-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 routing config with 2 phy cores,\
-| | ... | 1 receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 1518B frames using single\
-| | ... | trial throughput test.
-| | ...
| | [Tags] | 1518B | 2C
-| | ...
-| | [Template] | Check RR for ethip4-ip4base
-| | wt=2 | rxq=1 | framesize=${1518}
+| | phy_cores=${2} | framesize=${1518}
| tc07-9000B-2t2c-ethip4-ip4base-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 routing config with 2 phy cores,\
-| | ... | 1 receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 9000B frames using single\
-| | ... | trial throughput test.
-| | ...
| | [Tags] | 9000B | 2C
-| | ...
-| | [Template] | Check RR for ethip4-ip4base
-| | wt=2 | rxq=1 | framesize=${9000}
+| | phy_cores=${2} | framesize=${9000}
| tc08-IMIX-2t2c-ethip4-ip4base-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 routing config with \
-| | ... | 2 phy cores, 1 receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for IMIX_v4_1 frames using single trial\
-| | ... | throughput test.
-| | ... | IMIX_v4_1 = (28x64B; 16x570B; 4x1518B)
-| | ...
| | [Tags] | IMIX | 2C
-| | ...
-| | [Template] | Check RR for ethip4-ip4base
-| | wt=2 | rxq=1 | framesize=IMIX_v4_1
+| | phy_cores=${2} | framesize=IMIX_v4_1
| tc09-64B-4t4c-ethip4-ip4base-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 routing config with 4 phy cores,\
-| | ... | 2 receive queues per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 64B frames using single trial\
-| | ... | throughput test.
-| | ...
| | [Tags] | 64B | 4C
-| | ...
-| | [Template] | Check RR for ethip4-ip4base
-| | wt=4 | rxq=2 | framesize=${64}
+| | phy_cores=${4} | framesize=${64}
| tc10-1518B-4t4c-ethip4-ip4base-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 routing config with 4 phy cores,\
-| | ... | 2 receive queues per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 1518B frames using single\
-| | ... | trial throughput test.
-| | ...
| | [Tags] | 1518B | 4C
-| | ...
-| | [Template] | Check RR for ethip4-ip4base
-| | wt=4 | rxq=2 | framesize=${1518}
+| | phy_cores=${4} | framesize=${1518}
| tc11-9000B-4t4c-ethip4-ip4base-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 routing config with 4 phy cores,\
-| | ... | 2 receive queues per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 9000B frames using single\
-| | ... | trial throughput test.
-| | ...
| | [Tags] | 9000B | 4C
-| | ...
-| | [Template] | Check RR for ethip4-ip4base
-| | wt=4 | rxq=2 | framesize=${9000}
+| | phy_cores=${4} | framesize=${9000}
| tc12-IMIX-4t4c-ethip4-ip4base-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 routing config with \
-| | ... | 4 phy cores, 2 receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for IMIX_v4_1 frames using single trial\
-| | ... | throughput test.
-| | ... | IMIX_v4_1 = (28x64B; 16x570B; 4x1518B)
-| | ...
| | [Tags] | IMIX | 4C
-| | ...
-| | [Template] | Check RR for ethip4-ip4base
-| | wt=4 | rxq=2 | framesize=IMIX_v4_1
+| | phy_cores=${4} | framesize=IMIX_v4_1
diff --git a/tests/vpp/perf/ip4/40ge2p1xl710-ethip4-ip4base-ndrpdrdisc.robot b/tests/vpp/perf/ip4/40ge2p1xl710-ethip4-ip4base-ndrpdrdisc.robot
index 07a2a51836..b913ed6c8e 100644
--- a/tests/vpp/perf/ip4/40ge2p1xl710-ethip4-ip4base-ndrpdrdisc.robot
+++ b/tests/vpp/perf/ip4/40ge2p1xl710-ethip4-ip4base-ndrpdrdisc.robot
@@ -76,7 +76,7 @@
| | ${binary_min}= | Set Variable | ${min_rate}
| | ${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
+| | Given Add worker threads and rxqueues to all DUTs | 1
| | And Add PCI devices to all DUTs
| | And Add no multi seg to all DUTs
| | And Add DPDK dev default RXD to all DUTs | 2048
@@ -99,7 +99,7 @@
| | ${binary_min}= | Set Variable | ${min_rate}
| | ${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
+| | Given Add worker threads and rxqueues to all DUTs | 1
| | And Add PCI devices to all DUTs
| | And Add no multi seg to all DUTs
| | And Add DPDK dev default RXD to all DUTs | 2048
@@ -122,7 +122,7 @@
| | ${binary_min}= | Set Variable | ${min_rate}
| | ${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
+| | Given Add worker threads and rxqueues to all DUTs | 2
| | And Add PCI devices to all DUTs
| | And Add no multi seg to all DUTs
| | And Add DPDK dev default RXD to all DUTs | 2048
@@ -145,7 +145,7 @@
| | ${binary_min}= | Set Variable | ${min_rate}
| | ${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
+| | Given Add worker threads and rxqueues to all DUTs | 2
| | And Add PCI devices to all DUTs
| | And Add no multi seg to all DUTs
| | And Add DPDK dev default RXD to all DUTs | 2048
@@ -168,7 +168,7 @@
| | ${binary_min}= | Set Variable | ${min_rate}
| | ${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
+| | Given Add worker threads and rxqueues to all DUTs | 4
| | And Add PCI devices to all DUTs
| | And Add no multi seg to all DUTs
| | And Add DPDK dev default RXD to all DUTs | 2048
@@ -191,7 +191,7 @@
| | ${binary_min}= | Set Variable | ${min_rate}
| | ${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
+| | Given Add worker threads and rxqueues to all DUTs | 4
| | And Add PCI devices to all DUTs
| | And Add no multi seg to all DUTs
| | And Add DPDK dev default RXD to all DUTs | 2048
@@ -215,7 +215,7 @@
| | ${binary_min}= | Set Variable | ${min_rate}
| | ${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
+| | Given Add worker threads and rxqueues to all DUTs | 1
| | And Add PCI devices to all DUTs
| | And Add no multi seg to all DUTs
| | And Add DPDK dev default RXD to all DUTs | 2048
@@ -239,7 +239,7 @@
| | ${binary_min}= | Set Variable | ${min_rate}
| | ${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
+| | Given Add worker threads and rxqueues to all DUTs | 2
| | And Add PCI devices to all DUTs
| | And Add no multi seg to all DUTs
| | And Add DPDK dev default RXD to all DUTs | 2048
@@ -263,7 +263,7 @@
| | ${binary_min}= | Set Variable | ${min_rate}
| | ${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
+| | Given Add worker threads and rxqueues to all DUTs | 4
| | And Add PCI devices to all DUTs
| | And Add no multi seg to all DUTs
| | And Add DPDK dev default RXD to all DUTs | 2048
diff --git a/tests/vpp/perf/ip4_tunnels/10ge2p1x520-ethip4lispip4-ip4base-mrr.robot b/tests/vpp/perf/ip4_tunnels/10ge2p1x520-ethip4lispip4-ip4base-mrr.robot
index a925929c8b..f86f1bf419 100644
--- a/tests/vpp/perf/ip4_tunnels/10ge2p1x520-ethip4lispip4-ip4base-mrr.robot
+++ b/tests/vpp/perf/ip4_tunnels/10ge2p1x520-ethip4lispip4-ip4base-mrr.robot
@@ -27,6 +27,8 @@
| ...
| Test Teardown | Tear down performance mrr test
| ...
+| Test Template | Local template
+| ...
| Documentation | *Raw results Lisp test cases*
| ...
| ... | *[Top] Network Topologies:* TG-DUT1-DUT2-TG 3-node circular topology\
@@ -53,16 +55,21 @@
| ${traffic_profile}= | trex-sl-3n-ethip4-ip4src253
*** Keywords ***
-| Check RR for ethip4lispip4-ip4base
-| | ...
+| Local template
| | [Documentation]
| | ... | [Cfg] DUT runs IPv4 LISP remote static mappings and whitelist filters\
-| | ... | config with ${wt} thread(s), ${wt} phy core(s), ${rxq} receive\
-| | ... | queue(s) per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for ${framesize} frames using single\
+| | ... | config.
+| | ... | Each DUT uses ${phy_cores} physical core(s) for worker threads.
+| | ... | [Ver] Measure MaxReceivedRate for ${framesize}B frames using single\
| | ... | trial throughput test.
| | ...
-| | [Arguments] | ${wt} | ${rxq} | ${framesize}
+| | ... | *Arguments:*
+| | ... | - framesize - Framesize in Bytes in integer or string (IMIX_v4_1).
+| | ... | Type: integer, string
+| | ... | - phy_cores - Number of physical cores. Type: integer
+| | ... | - rxq - Number of RX queues, default value: ${None}. Type: integer
+| | ...
+| | [Arguments] | ${phy_cores} | ${framesize} | ${rxq}=${None}
| | ...
| | # Test Variables required for test execution and test teardown
| | Set Test Variable | ${framesize}
@@ -70,7 +77,7 @@
| | ${max_rate}= | Calculate pps | ${s_limit}
| | ... | ${get_framesize + ${lisp_overhead}}
| | ...
-| | Given Add '${wt}' worker threads and '${rxq}' rxqueues in 3-node single-link circular topology
+| | Given Add worker threads and rxqueues to all DUTs | ${phy_cores} | ${rxq}
| | And Add PCI devices to all DUTs
| | And Run Keyword If | ${get_framesize + ${lisp_overhead}} < ${1522}
| | ... | Add no multi seg to all DUTs
@@ -88,160 +95,49 @@
*** Test Cases ***
| tc01-64B-1t1c-ethip4lispip4-ip4base-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 LISP remote static mappings and whitelist\
-| | ... | filters config with 1 phy core, 1 receive queue per NIC\
-| | ... | port.
-| | ... | [Ver] Measure MaxReceivedRate for 64B frames using single trial\
-| | ... | throughput test.
-| | ...
| | [Tags] | 64B | 1C
-| | ...
-| | [Template] | Check RR for ethip4lispip4-ip4base
-| | wt=1 | rxq=1 | framesize=${64}
+| | phy_cores=${1} | framesize=${64}
| tc02-1480B-1t1c-ethip4lispip4-ip4base-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 LISP remote static mappings and whitelist\
-| | ... | filters config with 1 phy core, 1 receive queue per NIC\
-| | ... | port.
-| | ... | [Ver] Measure MaxReceivedRate for 1480B frames using single trial\
-| | ... | throughput test.
-| | ...
| | [Tags] | 1480B | 1C
-| | ...
-| | [Template] | Check RR for ethip4lispip4-ip4base
-| | wt=1 | rxq=1 | framesize=${1480}
+| | phy_cores=${1} | framesize=${1480}
| tc03-9000B-1t1c-ethip4lispip4-ip4base-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 LISP remote static mappings and whitelist\
-| | ... | filters config with 1 phy core, 1 receive queue per NIC\
-| | ... | port.
-| | ... | [Ver] Measure MaxReceivedRate for 9000B frames using single trial\
-| | ... | throughput test.
-| | ...
| | [Tags] | 9000B | 1C
-| | ...
-| | [Template] | Check RR for ethip4lispip4-ip4base
-| | wt=1 | rxq=1 | framesize=${9000}
+| | phy_cores=${1} | framesize=${9000}
| tc04-IMIX-1t1c-ethip4lispip4-ip4base-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 LISP remote static mappings and whitelist\
-| | ... | filters config with 1 phy core, 1 receive queue per NIC\
-| | ... | port.
-| | ... | [Ver] Measure MaxReceivedRate for IMIX_v4_1 frames using single trial\
-| | ... | throughput test.
-| | ... | IMIX_v4_1 = (28x64B; 16x570B; 4x1518B)
-| | ...
| | [Tags] | IMIX | 1C
-| | ...
-| | [Template] | Check RR for ethip4lispip4-ip4base
-| | wt=1 | rxq=1 | framesize=IMIX_v4_1
+| | phy_cores=${1} | framesize=IMIX_v4_1
| tc05-64B-2t2c-ethip4lispip4-ip4base-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 LISP remote static mappings and whitelist\
-| | ... | filters config with 2 phy cores, 1 receive queue per NIC\
-| | ... | port.
-| | ... | [Ver] Measure MaxReceivedRate for 64B frames using single trial\
-| | ... | throughput test.
-| | ...
| | [Tags] | 64B | 2C
-| | ...
-| | [Template] | Check RR for ethip4lispip4-ip4base
-| | wt=2 | rxq=1 | framesize=${64}
+| | phy_cores=${2} | framesize=${64}
| tc06-1480B-2t2c-ethip4lispip4-ip4base-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 LISP remote static mappings and whitelist\
-| | ... | filters config with 2 phy cores, 1 receive queue per NIC\
-| | ... | port.
-| | ... | [Ver] Measure MaxReceivedRate for 1480B frames using single trial\
-| | ... | throughput test.
-| | ...
| | [Tags] | 1480B | 2C
-| | ...
-| | [Template] | Check RR for ethip4lispip4-ip4base
-| | wt=2 | rxq=1 | framesize=${1480}
+| | phy_cores=${2} | framesize=${1480}
| tc07-9000B-2t2c-ethip4lispip4-ip4base-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 LISP remote static mappings and whitelist\
-| | ... | filters config with 2 phy cores, 1 receive queue per NIC\
-| | ... | port.
-| | ... | [Ver] Measure MaxReceivedRate for 9000B frames using single trial\
-| | ... | throughput test.
-| | ...
| | [Tags] | 9000B | 2C
-| | ...
-| | [Template] | Check RR for ethip4lispip4-ip4base
-| | wt=2 | rxq=1 | framesize=${9000}
+| | phy_cores=${2} | framesize=${9000}
| tc08-IMIX-2t2c-ethip4lispip4-ip4base-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 LISP remote static mappings and whitelist\
-| | ... | filters config with 2 phy cores, 1 receive queue per NIC\
-| | ... | port.
-| | ... | [Ver] Measure MaxReceivedRate for IMIX_v4_1 frames using single trial\
-| | ... | throughput test.
-| | ... | IMIX_v4_1 = (28x64B; 16x570B; 4x1518B)
-| | ...
| | [Tags] | IMIX | 2C
-| | ...
-| | [Template] | Check RR for ethip4lispip4-ip4base
-| | wt=2 | rxq=1 | framesize=IMIX_v4_1
+| | phy_cores=${2} | framesize=IMIX_v4_1
| tc09-64B-4t4c-ethip4lispip4-ip4base-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 LISP remote static mappings and whitelist\
-| | ... | filters config with 4 phy cores, 2 receive queues per NIC\
-| | ... | port.
-| | ... | [Ver] Measure MaxReceivedRate for 64B frames using single trial\
-| | ... | throughput test.
-| | ...
| | [Tags] | 64B | 4C
-| | ...
-| | [Template] | Check RR for ethip4lispip4-ip4base
-| | wt=4 | rxq=2 | framesize=${64}
+| | phy_cores=${4} | framesize=${64}
| tc10-1480B-4t4c-ethip4lispip4-ip4base-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 LISP remote static mappings and whitelist\
-| | ... | filters config with 4 phy cores, 2 receive queues per NIC\
-| | ... | port.
-| | ... | [Ver] Measure MaxReceivedRate for 1480B frames using single trial\
-| | ... | throughput test.
-| | ...
| | [Tags] | 1480B | 4C
-| | ...
-| | [Template] | Check RR for ethip4lispip4-ip4base
-| | wt=4 | rxq=2 | framesize=${1480}
+| | phy_cores=${4} | framesize=${1480}
| tc11-9000B-4t4c-ethip4lispip4-ip4base-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 LISP remote static mappings and whitelist\
-| | ... | filters config with 4 phy cores, 2 receive queues per NIC\
-| | ... | port.
-| | ... | [Ver] Measure MaxReceivedRate for 9000B frames using single trial\
-| | ... | throughput test.
-| | ...
| | [Tags] | 9000B | 4C
-| | ...
-| | [Template] | Check RR for ethip4lispip4-ip4base
-| | wt=4 | rxq=2 | framesize=${9000}
+| | phy_cores=${4} | framesize=${9000}
| tc12-IMIX-4t4c-ethip4lispip4-ip4base-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 LISP remote static mappings and whitelist\
-| | ... | filters config with 4 phy cores, 2 receive queues per NIC\
-| | ... | port.
-| | ... | [Ver] Measure MaxReceivedRate for IMIX_v4_1 frames using single trial\
-| | ... | throughput test.
-| | ... | IMIX_v4_1 = (28x64B; 16x570B; 4x1518B)
-| | ...
| | [Tags] | IMIX | 4C
-| | ...
-| | [Template] | Check RR for ethip4lispip4-ip4base
-| | wt=4 | rxq=2 | framesize=IMIX_v4_1
+| | phy_cores=${4} | framesize=IMIX_v4_1
diff --git a/tests/vpp/perf/ip4_tunnels/10ge2p1x520-ethip4lispip4-ip4base-ndrpdrdisc.robot b/tests/vpp/perf/ip4_tunnels/10ge2p1x520-ethip4lispip4-ip4base-ndrpdrdisc.robot
index e1e1aa4fc8..7b75d7d48f 100644
--- a/tests/vpp/perf/ip4_tunnels/10ge2p1x520-ethip4lispip4-ip4base-ndrpdrdisc.robot
+++ b/tests/vpp/perf/ip4_tunnels/10ge2p1x520-ethip4lispip4-ip4base-ndrpdrdisc.robot
@@ -65,7 +65,7 @@
| | ${binary_min}= | Set Variable | ${min_rate}
| | ${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
+| | Given Add worker threads and rxqueues to all DUTs | 1
| | And Add PCI devices to all DUTs
| | And Add no multi seg to all DUTs
| | And Apply startup configuration on all VPP DUTs
@@ -95,7 +95,7 @@
| | ${binary_min}= | Set Variable | ${min_rate}
| | ${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
+| | Given Add worker threads and rxqueues to all DUTs | 1
| | And Add PCI devices to all DUTs
| | And Add no multi seg to all DUTs
| | And Apply startup configuration on all VPP DUTs
@@ -126,7 +126,7 @@
| | ${binary_min}= | Set Variable | ${min_rate}
| | ${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
+| | Given Add worker threads and rxqueues to all DUTs | 1
| | And Add PCI devices to all DUTs
| | And Add no multi seg to all DUTs
| | And Apply startup configuration on all VPP DUTs
@@ -156,7 +156,7 @@
| | ${binary_min}= | Set Variable | ${min_rate}
| | ${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
+| | Given Add worker threads and rxqueues to all DUTs | 1
| | And Add PCI devices to all DUTs
| | And Add no multi seg to all DUTs
| | And Apply startup configuration on all VPP DUTs
@@ -187,7 +187,7 @@
| | ${binary_min}= | Set Variable | ${min_rate}
| | ${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
+| | Given Add worker threads and rxqueues to all DUTs | 1
| | And Add PCI devices to all DUTs
| | And Apply startup configuration on all VPP DUTs
| | When Initialize LISP IPv4 forwarding in 3-node circular topology
@@ -216,7 +216,7 @@
| | ${binary_min}= | Set Variable | ${min_rate}
| | ${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
+| | Given Add worker threads and rxqueues to all DUTs | 1
| | And Add PCI devices to all DUTs
| | And Apply startup configuration on all VPP DUTs
| | When Initialize LISP IPv4 forwarding in 3-node circular topology
@@ -246,7 +246,7 @@
| | ${binary_min}= | Set Variable | ${min_rate}
| | ${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
+| | Given Add worker threads and rxqueues to all DUTs | 2
| | And Add PCI devices to all DUTs
| | And Add no multi seg to all DUTs
| | And Apply startup configuration on all VPP DUTs
@@ -276,7 +276,7 @@
| | ${binary_min}= | Set Variable | ${min_rate}
| | ${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
+| | Given Add worker threads and rxqueues to all DUTs | 2
| | And Add PCI devices to all DUTs
| | And Add no multi seg to all DUTs
| | And Apply startup configuration on all VPP DUTs
@@ -307,7 +307,7 @@
| | ${binary_min}= | Set Variable | ${min_rate}
| | ${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
+| | Given Add worker threads and rxqueues to all DUTs | 2
| | And Add PCI devices to all DUTs
| | And Add no multi seg to all DUTs
| | And Apply startup configuration on all VPP DUTs
@@ -337,7 +337,7 @@
| | ${binary_min}= | Set Variable | ${min_rate}
| | ${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
+| | Given Add worker threads and rxqueues to all DUTs | 2
| | And Add PCI devices to all DUTs
| | And Add no multi seg to all DUTs
| | And Apply startup configuration on all VPP DUTs
@@ -368,7 +368,7 @@
| | ${binary_min}= | Set Variable | ${min_rate}
| | ${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
+| | Given Add worker threads and rxqueues to all DUTs | 2
| | And Add PCI devices to all DUTs
| | And Apply startup configuration on all VPP DUTs
| | When Initialize LISP IPv4 forwarding in 3-node circular topology
@@ -397,7 +397,7 @@
| | ${binary_min}= | Set Variable | ${min_rate}
| | ${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
+| | Given Add worker threads and rxqueues to all DUTs | 2
| | And Add PCI devices to all DUTs
| | And Apply startup configuration on all VPP DUTs
| | When Initialize LISP IPv4 forwarding in 3-node circular topology
@@ -427,7 +427,7 @@
| | ${binary_min}= | Set Variable | ${min_rate}
| | ${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
+| | Given Add worker threads and rxqueues to all DUTs | 4
| | And Add PCI devices to all DUTs
| | And Add no multi seg to all DUTs
| | And Apply startup configuration on all VPP DUTs
@@ -457,7 +457,7 @@
| | ${binary_min}= | Set Variable | ${min_rate}
| | ${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
+| | Given Add worker threads and rxqueues to all DUTs | 4
| | And Add PCI devices to all DUTs
| | And Add no multi seg to all DUTs
| | And Apply startup configuration on all VPP DUTs
@@ -488,7 +488,7 @@
| | ${binary_min}= | Set Variable | ${min_rate}
| | ${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
+| | Given Add worker threads and rxqueues to all DUTs | 4
| | And Add PCI devices to all DUTs
| | And Add no multi seg to all DUTs
| | And Apply startup configuration on all VPP DUTs
@@ -518,7 +518,7 @@
| | ${binary_min}= | Set Variable | ${min_rate}
| | ${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
+| | Given Add worker threads and rxqueues to all DUTs | 4
| | And Add PCI devices to all DUTs
| | And Add no multi seg to all DUTs
| | And Apply startup configuration on all VPP DUTs
@@ -549,7 +549,7 @@
| | ${binary_min}= | Set Variable | ${min_rate}
| | ${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
+| | Given Add worker threads and rxqueues to all DUTs | 4
| | And Add PCI devices to all DUTs
| | And Apply startup configuration on all VPP DUTs
| | When Initialize LISP IPv4 forwarding in 3-node circular topology
@@ -578,7 +578,7 @@
| | ${binary_min}= | Set Variable | ${min_rate}
| | ${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
+| | Given Add worker threads and rxqueues to all DUTs | 4
| | And Add PCI devices to all DUTs
| | And Apply startup configuration on all VPP DUTs
| | When Initialize LISP IPv4 forwarding in 3-node circular topology
diff --git a/tests/vpp/perf/ip4_tunnels/10ge2p1x520-ethip4lispip6-ip4base-ndrpdrdisc.robot b/tests/vpp/perf/ip4_tunnels/10ge2p1x520-ethip4lispip6-ip4base-ndrpdrdisc.robot
index 162db49639..5f3f7bdd42 100644
--- a/tests/vpp/perf/ip4_tunnels/10ge2p1x520-ethip4lispip6-ip4base-ndrpdrdisc.robot
+++ b/tests/vpp/perf/ip4_tunnels/10ge2p1x520-ethip4lispip6-ip4base-ndrpdrdisc.robot
@@ -66,7 +66,7 @@
| | ${binary_min}= | Set Variable | ${min_rate}
| | ${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
+| | Given Add worker threads and rxqueues to all DUTs | 1
| | And Add PCI devices to all DUTs
| | And Add no multi seg to all DUTs
| | And Apply startup configuration on all VPP DUTs
@@ -96,7 +96,7 @@
| | ${binary_min}= | Set Variable | ${min_rate}
| | ${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
+| | Given Add worker threads and rxqueues to all DUTs | 1
| | And Add PCI devices to all DUTs
| | And Add no multi seg to all DUTs
| | And Apply startup configuration on all VPP DUTs
@@ -127,7 +127,7 @@
| | ${binary_min}= | Set Variable | ${min_rate}
| | ${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
+| | Given Add worker threads and rxqueues to all DUTs | 1
| | And Add PCI devices to all DUTs
| | And Add no multi seg to all DUTs
| | And Apply startup configuration on all VPP DUTs
@@ -157,7 +157,7 @@
| | ${binary_min}= | Set Variable | ${min_rate}
| | ${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
+| | Given Add worker threads and rxqueues to all DUTs | 1
| | And Add PCI devices to all DUTs
| | And Add no multi seg to all DUTs
| | And Apply startup configuration on all VPP DUTs
@@ -188,7 +188,7 @@
| | ${binary_min}= | Set Variable | ${min_rate}
| | ${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
+| | Given Add worker threads and rxqueues to all DUTs | 1
| | And Add PCI devices to all DUTs
| | And Apply startup configuration on all VPP DUTs
| | When Initialize LISP IPv4 over IPv6 forwarding in 3-node circular topology
@@ -217,7 +217,7 @@
| | ${binary_min}= | Set Variable | ${min_rate}
| | ${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
+| | Given Add worker threads and rxqueues to all DUTs | 1
| | And Add PCI devices to all DUTs
| | And Apply startup configuration on all VPP DUTs
| | When Initialize LISP IPv4 over IPv6 forwarding in 3-node circular topology
@@ -247,7 +247,7 @@
| | ${binary_min}= | Set Variable | ${min_rate}
| | ${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
+| | Given Add worker threads and rxqueues to all DUTs | 2
| | And Add PCI devices to all DUTs
| | And Add no multi seg to all DUTs
| | And Apply startup configuration on all VPP DUTs
@@ -277,7 +277,7 @@
| | ${binary_min}= | Set Variable | ${min_rate}
| | ${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
+| | Given Add worker threads and rxqueues to all DUTs | 2
| | And Add PCI devices to all DUTs
| | And Add no multi seg to all DUTs
| | And Apply startup configuration on all VPP DUTs
@@ -308,7 +308,7 @@
| | ${binary_min}= | Set Variable | ${min_rate}
| | ${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
+| | Given Add worker threads and rxqueues to all DUTs | 2
| | And Add PCI devices to all DUTs
| | And Add no multi seg to all DUTs
| | And Apply startup configuration on all VPP DUTs
@@ -338,7 +338,7 @@
| | ${binary_min}= | Set Variable | ${min_rate}
| | ${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
+| | Given Add worker threads and rxqueues to all DUTs | 2
| | And Add PCI devices to all DUTs
| | And Add no multi seg to all DUTs
| | And Apply startup configuration on all VPP DUTs
@@ -369,7 +369,7 @@
| | ${binary_min}= | Set Variable | ${min_rate}
| | ${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
+| | Given Add worker threads and rxqueues to all DUTs | 2
| | And Add PCI devices to all DUTs
| | And Apply startup configuration on all VPP DUTs
| | When Initialize LISP IPv4 over IPv6 forwarding in 3-node circular topology
@@ -398,7 +398,7 @@
| | ${binary_min}= | Set Variable | ${min_rate}
| | ${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
+| | Given Add worker threads and rxqueues to all DUTs | 2
| | And Add PCI devices to all DUTs
| | And Apply startup configuration on all VPP DUTs
| | When Initialize LISP IPv4 over IPv6 forwarding in 3-node circular topology
@@ -428,7 +428,7 @@
| | ${binary_min}= | Set Variable | ${min_rate}
| | ${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
+| | Given Add worker threads and rxqueues to all DUTs | 4
| | And Add PCI devices to all DUTs
| | And Add no multi seg to all DUTs
| | And Apply startup configuration on all VPP DUTs
@@ -458,7 +458,7 @@
| | ${binary_min}= | Set Variable | ${min_rate}
| | ${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
+| | Given Add worker threads and rxqueues to all DUTs | 4
| | And Add PCI devices to all DUTs
| | And Add no multi seg to all DUTs
| | And Apply startup configuration on all VPP DUTs
@@ -489,7 +489,7 @@
| | ${binary_min}= | Set Variable | ${min_rate}
| | ${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
+| | Given Add worker threads and rxqueues to all DUTs | 4
| | And Add PCI devices to all DUTs
| | And Add no multi seg to all DUTs
| | And Apply startup configuration on all VPP DUTs
@@ -519,7 +519,7 @@
| | ${binary_min}= | Set Variable | ${min_rate}
| | ${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
+| | Given Add worker threads and rxqueues to all DUTs | 4
| | And Add PCI devices to all DUTs
| | And Add no multi seg to all DUTs
| | And Apply startup configuration on all VPP DUTs
@@ -550,7 +550,7 @@
| | ${binary_min}= | Set Variable | ${min_rate}
| | ${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
+| | Given Add worker threads and rxqueues to all DUTs | 4
| | And Add PCI devices to all DUTs
| | And Apply startup configuration on all VPP DUTs
| | When Initialize LISP IPv4 over IPv6 forwarding in 3-node circular topology
@@ -579,7 +579,7 @@
| | ${binary_min}= | Set Variable | ${min_rate}
| | ${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
+| | Given Add worker threads and rxqueues to all DUTs | 4
| | And Add PCI devices to all DUTs
| | And Apply startup configuration on all VPP DUTs
| | When Initialize LISP IPv4 over IPv6 forwarding in 3-node circular topology
diff --git a/tests/vpp/perf/ip4_tunnels/10ge2p1x520-ethip4vxlan-l2bdbasemaclrn-mrr.robot b/tests/vpp/perf/ip4_tunnels/10ge2p1x520-ethip4vxlan-l2bdbasemaclrn-mrr.robot
index 2273ef4b66..093ffea82d 100644
--- a/tests/vpp/perf/ip4_tunnels/10ge2p1x520-ethip4vxlan-l2bdbasemaclrn-mrr.robot
+++ b/tests/vpp/perf/ip4_tunnels/10ge2p1x520-ethip4vxlan-l2bdbasemaclrn-mrr.robot
@@ -25,6 +25,8 @@
| ...
| Test Teardown | Tear down performance mrr test
| ...
+| Test Template | Local template
+| ...
| Documentation | *Raw results L2BD with VXLANoIPv4 test cases*
| ...
| ... | *[Top] Network Topologies:* TG-DUT1-DUT2-TG 3-node circular topology
@@ -51,23 +53,28 @@
| ${traffic_profile}= | trex-sl-3n-ethip4-ip4src254
*** Keywords ***
-| Check RR for ethip4vxlan-l2bdbasemaclrn
+| Local template
| | ...
| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD forwarding config with ${wt} thread(s), ${wt}\
-| | ... | phy core(s), ${rxq} receive queue(s) per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for ${framesize} frames using single\
+| | ... | [Cfg] DUT runs L2BD forwarding config.
+| | ... | Each DUT uses ${phy_cores} physical core(s) for worker threads.
+| | ... | [Ver] Measure MaxReceivedRate for ${framesize}B frames using single\
| | ... | trial throughput test.
| | ...
-| | [Arguments] | ${wt} | ${rxq} | ${framesize}
+| | ... | *Arguments:*
+| | ... | - framesize - Framesize in Bytes in integer or string (IMIX_v4_1).
+| | ... | Type: integer, string
+| | ... | - phy_cores - Number of physical cores. Type: integer
+| | ... | - rxq - Number of RX queues, default value: ${None}. Type: integer
+| | ...
+| | [Arguments] | ${phy_cores} | ${framesize} | ${rxq}=${None}
| | ...
-| | # Test Variables required for test execution and test teardown
| | Set Test Variable | ${framesize}
| | ${get_framesize}= | Get Frame Size | ${framesize}
| | ${max_rate}= | Calculate pps | ${s_limit}
| | ... | ${get_framesize + ${vxlan_overhead}}
| | ...
-| | Given Add '${wt}' worker threads and '${rxq}' rxqueues in 3-node single-link circular topology
+| | Given Add worker threads and rxqueues to all DUTs | ${phy_cores} | ${rxq}
| | And Add PCI devices to all DUTs
| | And Run Keyword If | ${get_framesize + ${vxlan_overhead}} < ${1522}
| | ... | Add no multi seg to all DUTs
@@ -78,148 +85,49 @@
*** Test Cases ***
| tc01-64B-1t1c-ethip4vxlan-l2bdbasemaclrn-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD forwarding config with 1 phy core,\
-| | ... | 1 receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 64B frames using single trial\
-| | ... | throughput test.
-| | ...
| | [Tags] | 64B | 1C
-| | ...
-| | [Template] | Check RR for ethip4vxlan-l2bdbasemaclrn
-| | wt=1 | rxq=1 | framesize=${64}
+| | phy_cores=${1} | framesize=${64}
| tc02-1518B-1t1c-ethip4vxlan-l2bdbasemaclrn-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD forwarding config with 1 phy core,\
-| | ... | 1 receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 1518B frames using single\
-| | ... | trial throughput test.
-| | ...
| | [Tags] | 1518B | 1C
-| | ...
-| | [Template] | Check RR for ethip4vxlan-l2bdbasemaclrn
-| | wt=1 | rxq=1 | framesize=${1518}
+| | phy_cores=${1} | framesize=${1518}
| tc03-9000B-1t1c-ethip4vxlan-l2bdbasemaclrn-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD forwarding config with 1 phy core,\
-| | ... | 1 receive queue per NIC port.
-| | ... | [Ver] Find NDR for 9000 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 10kpps.
-| | ...
| | [Tags] | 9000B | 1C
-| | ...
-| | [Template] | Check RR for ethip4vxlan-l2bdbasemaclrn
-| | wt=1 | rxq=1 | framesize=${9000}
+| | phy_cores=${1} | framesize=${9000}
| tc04-IMIX-1t1c-ethip4vxlan-l2bdbasemaclrn-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD forwarding config with 1 phy core,\
-| | ... | 1 receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for IMIX_v4_1 frames using single trial\
-| | ... | throughput test.
-| | ... | IMIX_v4_1 = (28x64B; 16x570B; 4x1518B)
-| | ...
| | [Tags] | IMIX | 1C
-| | ...
-| | [Template] | Check RR for ethip4vxlan-l2bdbasemaclrn
-| | wt=1 | rxq=1 | framesize=IMIX_v4_1
+| | phy_cores=${1} | framesize=IMIX_v4_1
| tc05-64B-2t2c-ethip4vxlan-l2bdbasemaclrn-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD forwarding config with 2 phy cores,\
-| | ... | 1 receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 64B frames using single trial\
-| | ... | throughput test.
-| | ...
| | [Tags] | 64B | 2C
-| | ...
-| | [Template] | Check RR for ethip4vxlan-l2bdbasemaclrn
-| | wt=2 | rxq=1 | framesize=${64}
+| | phy_cores=${2} | framesize=${64}
| tc06-1518B-2t2c-ethip4vxlan-l2bdbasemaclrn-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD forwarding config with 2 phy cores,\
-| | ... | 1 receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 1518B frames using single\
-| | ... | trial throughput test.
-| | ...
| | [Tags] | 1518B | 2C | SKIP_PATCH
-| | ...
-| | [Template] | Check RR for ethip4vxlan-l2bdbasemaclrn
-| | wt=2 | rxq=1 | framesize=${1518}
+| | phy_cores=${2} | framesize=${1518}
| tc07-9000B-2t2c-ethip4vxlan-l2bdbasemaclrn-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD forwarding config with 2 phy cores,\
-| | ... | 1 receive queue per NIC port.
-| | ... | [Ver] Find NDR for 9000 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 10kpps.
-| | ...
| | [Tags] | 9000B | 2C | SKIP_PATCH
-| | ...
-| | [Template] | Check RR for ethip4vxlan-l2bdbasemaclrn
-| | wt=2 | rxq=1 | framesize=${9000}
+| | phy_cores=${2} | framesize=${9000}
| tc08-IMIX-2t2c-ethip4vxlan-l2bdbasemaclrn-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD forwarding config with 2 phy cores,\
-| | ... | 1 receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for IMIX_v4_1 frames using single trial\
-| | ... | throughput test.
-| | ... | IMIX_v4_1 = (28x64B; 16x570B; 4x1518B)
-| | ...
| | [Tags] | IMIX | 2C
-| | ...
-| | [Template] | Check RR for ethip4vxlan-l2bdbasemaclrn
-| | wt=2 | rxq=1 | framesize=IMIX_v4_1
+| | phy_cores=${2} | framesize=IMIX_v4_1
| tc09-64B-4t4c-ethip4vxlan-l2bdbasemaclrn-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD forwarding config with 4 phy cores,\
-| | ... | 2 receive queues per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 64B frames using single trial\
-| | ... | throughput test.
-| | ...
| | [Tags] | 64B | 4C
-| | ...
-| | [Template] | Check RR for ethip4vxlan-l2bdbasemaclrn
-| | wt=4 | rxq=2 | framesize=${64}
+| | phy_cores=${4} | framesize=${64}
| tc10-1518B-4t4c-ethip4vxlan-l2bdbasemaclrn-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD forwarding config with 4 phy cores,\
-| | ... | 2 receive queues per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 1518B frames using single\
-| | ... | trial throughput test.
-| | ...
| | [Tags] | 1518B | 4C | SKIP_PATCH
-| | ...
-| | [Template] | Check RR for ethip4vxlan-l2bdbasemaclrn
-| | wt=4 | rxq=2 | framesize=${1518}
+| | phy_cores=${4} | framesize=${1518}
| tc11-9000B-4t4c-ethip4vxlan-l2bdbasemaclrn-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD forwarding config with 4 phy cores,\
-| | ... | 2 receive queues per NIC port.
-| | ... | [Ver] Find NDR for 9000 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 10kpps.
-| | ...
| | [Tags] | 9000B | 4C | SKIP_PATCH
-| | ...
-| | [Template] | Check RR for ethip4vxlan-l2bdbasemaclrn
-| | wt=4 | rxq=2 | framesize=${9000}
+| | phy_cores=${4} | framesize=${9000}
| tc12-IMIX-4t4c-ethip4vxlan-l2bdbasemaclrn-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD forwarding config with 4 phy cores,\
-| | ... | 2 receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for IMIX_v4_1 frames using single trial\
-| | ... | throughput test.
-| | ... | IMIX_v4_1 = (28x64B; 16x570B; 4x1518B)
-| | ...
| | [Tags] | IMIX | 4C
-| | ...
-| | [Template] | Check RR for ethip4vxlan-l2bdbasemaclrn
-| | wt=4 | rxq=2 | framesize=IMIX_v4_1
+| | phy_cores=${4} | framesize=IMIX_v4_1
diff --git a/tests/vpp/perf/ip4_tunnels/10ge2p1x520-ethip4vxlan-l2bdbasemaclrn-ndrpdrdisc.robot b/tests/vpp/perf/ip4_tunnels/10ge2p1x520-ethip4vxlan-l2bdbasemaclrn-ndrpdrdisc.robot
index 50318db9a7..ddf080230a 100644
--- a/tests/vpp/perf/ip4_tunnels/10ge2p1x520-ethip4vxlan-l2bdbasemaclrn-ndrpdrdisc.robot
+++ b/tests/vpp/perf/ip4_tunnels/10ge2p1x520-ethip4vxlan-l2bdbasemaclrn-ndrpdrdisc.robot
@@ -72,7 +72,7 @@
| | ${binary_min}= | Set Variable | ${min_rate}
| | ${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
+| | Given Add worker threads and rxqueues to all DUTs | 1
| | And Add PCI devices to all DUTs
| | And Add no multi seg to all DUTs
| | And Apply startup configuration on all VPP DUTs
@@ -96,7 +96,7 @@
| | ${binary_min}= | Set Variable | ${min_rate}
| | ${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
+| | Given Add worker threads and rxqueues to all DUTs | 1
| | And Add PCI devices to all DUTs
| | And Add no multi seg to all DUTs
| | And Apply startup configuration on all VPP DUTs
@@ -121,7 +121,7 @@
| | ${binary_min}= | Set Variable | ${min_rate}
| | ${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
+| | Given Add worker threads and rxqueues to all DUTs | 1
| | And Add PCI devices to all DUTs
| | And Apply startup configuration on all VPP DUTs
| | And Initialize L2 bridge domain with VXLANoIPv4 in 3-node circular topology
@@ -144,7 +144,7 @@
| | ${binary_min}= | Set Variable | ${min_rate}
| | ${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
+| | Given Add worker threads and rxqueues to all DUTs | 1
| | And Add PCI devices to all DUTs
| | And Apply startup configuration on all VPP DUTs
| | And Initialize L2 bridge domain with VXLANoIPv4 in 3-node circular topology
@@ -168,7 +168,7 @@
| | ${binary_min}= | Set Variable | ${min_rate}
| | ${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
+| | Given Add worker threads and rxqueues to all DUTs | 1
| | And Add PCI devices to all DUTs
| | And Apply startup configuration on all VPP DUTs
| | And Initialize L2 bridge domain with VXLANoIPv4 in 3-node circular topology
@@ -191,7 +191,7 @@
| | ${binary_min}= | Set Variable | ${min_rate}
| | ${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
+| | Given Add worker threads and rxqueues to all DUTs | 1
| | And Add PCI devices to all DUTs
| | And Apply startup configuration on all VPP DUTs
| | And Initialize L2 bridge domain with VXLANoIPv4 in 3-node circular topology
@@ -215,7 +215,7 @@
| | ${binary_min}= | Set Variable | ${min_rate}
| | ${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
+| | Given Add worker threads and rxqueues to all DUTs | 2
| | And Add PCI devices to all DUTs
| | And Add no multi seg to all DUTs
| | And Apply startup configuration on all VPP DUTs
@@ -239,7 +239,7 @@
| | ${binary_min}= | Set Variable | ${min_rate}
| | ${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
+| | Given Add worker threads and rxqueues to all DUTs | 2
| | And Add PCI devices to all DUTs
| | And Add no multi seg to all DUTs
| | And Apply startup configuration on all VPP DUTs
@@ -264,7 +264,7 @@
| | ${binary_min}= | Set Variable | ${min_rate}
| | ${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
+| | Given Add worker threads and rxqueues to all DUTs | 2
| | And Add PCI devices to all DUTs
| | And Apply startup configuration on all VPP DUTs
| | And Initialize L2 bridge domain with VXLANoIPv4 in 3-node circular topology
@@ -287,7 +287,7 @@
| | ${binary_min}= | Set Variable | ${min_rate}
| | ${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
+| | Given Add worker threads and rxqueues to all DUTs | 2
| | And Add PCI devices to all DUTs
| | And Apply startup configuration on all VPP DUTs
| | And Initialize L2 bridge domain with VXLANoIPv4 in 3-node circular topology
@@ -311,7 +311,7 @@
| | ${binary_min}= | Set Variable | ${min_rate}
| | ${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
+| | Given Add worker threads and rxqueues to all DUTs | 2
| | And Add PCI devices to all DUTs
| | And Apply startup configuration on all VPP DUTs
| | And Initialize L2 bridge domain with VXLANoIPv4 in 3-node circular topology
@@ -334,7 +334,7 @@
| | ${binary_min}= | Set Variable | ${min_rate}
| | ${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
+| | Given Add worker threads and rxqueues to all DUTs | 2
| | And Add PCI devices to all DUTs
| | And Apply startup configuration on all VPP DUTs
| | And Initialize L2 bridge domain with VXLANoIPv4 in 3-node circular topology
@@ -358,7 +358,7 @@
| | ${binary_min}= | Set Variable | ${min_rate}
| | ${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
+| | Given Add worker threads and rxqueues to all DUTs | 4
| | And Add PCI devices to all DUTs
| | And Add no multi seg to all DUTs
| | And Apply startup configuration on all VPP DUTs
@@ -382,7 +382,7 @@
| | ${binary_min}= | Set Variable | ${min_rate}
| | ${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
+| | Given Add worker threads and rxqueues to all DUTs | 4
| | And Add PCI devices to all DUTs
| | And Add no multi seg to all DUTs
| | And Apply startup configuration on all VPP DUTs
@@ -407,7 +407,7 @@
| | ${binary_min}= | Set Variable | ${min_rate}
| | ${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
+| | Given Add worker threads and rxqueues to all DUTs | 4
| | And Add PCI devices to all DUTs
| | And Apply startup configuration on all VPP DUTs
| | And Initialize L2 bridge domain with VXLANoIPv4 in 3-node circular topology
@@ -430,7 +430,7 @@
| | ${binary_min}= | Set Variable | ${min_rate}
| | ${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
+| | Given Add worker threads and rxqueues to all DUTs | 4
| | And Add PCI devices to all DUTs
| | And Apply startup configuration on all VPP DUTs
| | And Initialize L2 bridge domain with VXLANoIPv4 in 3-node circular topology
@@ -454,7 +454,7 @@
| | ${binary_min}= | Set Variable | ${min_rate}
| | ${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
+| | Given Add worker threads and rxqueues to all DUTs | 4
| | And Add PCI devices to all DUTs
| | And Apply startup configuration on all VPP DUTs
| | And Initialize L2 bridge domain with VXLANoIPv4 in 3-node circular topology
@@ -477,7 +477,7 @@
| | ${binary_min}= | Set Variable | ${min_rate}
| | ${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
+| | Given Add worker threads and rxqueues to all DUTs | 4
| | And Add PCI devices to all DUTs
| | And Apply startup configuration on all VPP DUTs
| | And Initialize L2 bridge domain with VXLANoIPv4 in 3-node circular topology
diff --git a/tests/vpp/perf/ip4_tunnels/10ge2p1x520-ethip4vxlan-l2xcbase-mrr.robot b/tests/vpp/perf/ip4_tunnels/10ge2p1x520-ethip4vxlan-l2xcbase-mrr.robot
index e611431f8c..5c9020f66a 100644
--- a/tests/vpp/perf/ip4_tunnels/10ge2p1x520-ethip4vxlan-l2xcbase-mrr.robot
+++ b/tests/vpp/perf/ip4_tunnels/10ge2p1x520-ethip4vxlan-l2xcbase-mrr.robot
@@ -51,23 +51,27 @@
| ${traffic_profile}= | trex-sl-3n-ethip4-ip4src254
*** Keywords ***
-| Check RR for ethip4vxlan-l2xcbase
-| | ...
+| Local template
| | [Documentation]
-| | ... | [Cfg] DUT runs L2XC forwarding config with ${wt} thread(s), ${wt}\
-| | ... | phy core(s), ${rxq} receive queue(s) per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for ${framesize} frames using single\
+| | ... | [Cfg] DUT runs L2XC forwarding config.
+| | ... | Each DUT uses ${phy_cores} physical core(s) for worker threads.
+| | ... | [Ver] Measure MaxReceivedRate for ${framesize}B frames using single\
| | ... | trial throughput test.
| | ...
-| | [Arguments] | ${wt} | ${rxq} | ${framesize}
+| | ... | *Arguments:*
+| | ... | - framesize - Framesize in Bytes in integer or string (IMIX_v4_1).
+| | ... | Type: integer, string
+| | ... | - phy_cores - Number of physical cores. Type: integer
+| | ... | - rxq - Number of RX queues, default value: ${None}. Type: integer
+| | ...
+| | [Arguments] | ${phy_cores} | ${framesize} | ${rxq}=${None}
| | ...
-| | # Test Variables required for test execution and test teardown
| | Set Test Variable | ${framesize}
| | ${get_framesize}= | Get Frame Size | ${framesize}
| | ${max_rate}= | Calculate pps | ${s_limit}
| | ... | ${get_framesize + ${vxlan_overhead}}
| | ...
-| | Given Add '${wt}' worker threads and '${rxq}' rxqueues in 3-node single-link circular topology
+| | Given Add worker threads and rxqueues to all DUTs | ${phy_cores} | ${rxq}
| | And Add PCI devices to all DUTs
| | And Run Keyword If | ${get_framesize + ${vxlan_overhead}} < ${1522}
| | ... | Add no multi seg to all DUTs
@@ -78,148 +82,49 @@
*** Test Cases ***
| tc01-64B-1t1c-ethip4vxlan-l2xcbase-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2XC forwarding config with 1 phy core, \
-| | ... | 1 receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 64B frames using single trial\
-| | ... | throughput test.
-| | ...
| | [Tags] | 64B | 1C
-| | ...
-| | [Template] | Check RR for ethip4vxlan-l2xcbase
-| | wt=1 | rxq=1 | framesize=${64}
+| | phy_cores=${1} | framesize=${64}
| tc02-1518B-1t1c-ethip4vxlan-l2xcbase-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2XC forwarding config with 1 phy core, \
-| | ... | 1 receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 1518B frames using single trial\
-| | ... | throughput test.
-| | ...
| | [Tags] | 1518B | 1C
-| | ...
-| | [Template] | Check RR for ethip4vxlan-l2xcbase
-| | wt=1 | rxq=1 | framesize=${1518}
+| | phy_cores=${1} | framesize=${1518}
| tc03-9000B-1t1c-ethip4vxlan-l2xcbase-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2XC forwarding config with 1 phy core, \
-| | ... | 1 receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 9000B frames using single trial\
-| | ... | throughput test.
-| | ...
| | [Tags] | 9000B | 1C
-| | ...
-| | [Template] | Check RR for ethip4vxlan-l2xcbase
-| | wt=1 | rxq=1 | framesize=${9000}
+| | phy_cores=${1} | framesize=${9000}
| tc04-IMIX-1t1c-ethip4vxlan-l2xcbase-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2XC forwarding config with 1 phy core,\
-| | ... | 1 receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for IMIX_v4_1 frames using single trial\
-| | ... | throughput test.
-| | ... | IMIX_v4_1 = (28x64B; 16x570B; 4x1518B)
-| | ...
| | [Tags] | IMIX | 1C
-| | ...
-| | [Template] | Check RR for ethip4vxlan-l2xcbase
-| | wt=1 | rxq=1 | framesize=IMIX_v4_1
+| | phy_cores=${1} | framesize=IMIX_v4_1
| tc05-64B-2t2c-ethip4vxlan-l2xcbase-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2XC forwarding config with 2 phy cores, \
-| | ... | 1 receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 64B frames using single trial\
-| | ... | throughput test.
-| | ...
| | [Tags] | 64B | 2C
-| | ...
-| | [Template] | Check RR for ethip4vxlan-l2xcbase
-| | wt=2 | rxq=1 | framesize=${64}
+| | phy_cores=${2} | framesize=${64}
| tc06-1518B-2t2c-ethip4vxlan-l2xcbase-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2XC forwarding config with 2 phy cores, \
-| | ... | 1 receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 1518B frames using single trial\
-| | ... | throughput test.
-| | ...
| | [Tags] | 1518B | 2C
-| | ...
-| | [Template] | Check RR for ethip4vxlan-l2xcbase
-| | wt=2 | rxq=1 | framesize=${1518}
+| | phy_cores=${2} | framesize=${1518}
| tc07-9000B-2t2c-ethip4vxlan-l2xcbase-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2XC forwarding config with 2 phy cores, \
-| | ... | 1 receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 9000B frames using single trial\
-| | ... | throughput test.
-| | ...
| | [Tags] | 9000B | 2C
-| | ...
-| | [Template] | Check RR for ethip4vxlan-l2xcbase
-| | wt=2 | rxq=1 | framesize=${9000}
+| | phy_cores=${2} | framesize=${9000}
| tc08-IMIX-2t2c-ethip4vxlan-l2xcbase-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2XC forwarding config with 2 phy cores,\
-| | ... | 1 receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for IMIX_v4_1 frames using single trial\
-| | ... | throughput test.
-| | ... | IMIX_v4_1 = (28x64B; 16x570B; 4x1518B)
-| | ...
| | [Tags] | IMIX | 2C
-| | ...
-| | [Template] | Check RR for ethip4vxlan-l2xcbase
-| | wt=2 | rxq=1 | framesize=IMIX_v4_1
+| | phy_cores=${2} | framesize=IMIX_v4_1
| tc09-64B-4t4c-ethip4vxlan-l2xcbase-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2XC forwarding config with 4 phy cores, \
-| | ... | 2 receive queues per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 64B frames using single trial\
-| | ... | throughput test.
-| | ...
| | [Tags] | 64B | 4C
-| | ...
-| | [Template] | Check RR for ethip4vxlan-l2xcbase
-| | wt=4 | rxq=2 | framesize=${64}
+| | phy_cores=${4} | framesize=${64}
| tc10-1518B-4t4c-ethip4vxlan-l2xcbase-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2XC forwarding config with 4 phy cores, \
-| | ... | 2 receive queues per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 1518B frames using single trial\
-| | ... | throughput test.
-| | ...
| | [Tags] | 1518B | 4C
-| | ...
-| | [Template] | Check RR for ethip4vxlan-l2xcbase
-| | wt=4 | rxq=2 | framesize=${1518}
+| | phy_cores=${4} | framesize=${1518}
| tc11-9000B-4t4c-ethip4vxlan-l2xcbase-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2XC forwarding config with 4 phy cores, \
-| | ... | 2 receive queues per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 9000B frames using single trial\
-| | ... | throughput test.
-| | ...
| | [Tags] | 9000B | 4C
-| | ...
-| | [Template] | Check RR for ethip4vxlan-l2xcbase
-| | wt=4 | rxq=2 | framesize=${9000}
+| | phy_cores=${4} | framesize=${9000}
| tc12-IMIX-4t4c-ethip4vxlan-l2xcbase-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2XC forwarding config with 4 phy cores,\
-| | ... | 2 receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for IMIX_v4_1 frames using single trial\
-| | ... | throughput test.
-| | ... | IMIX_v4_1 = (28x64B; 16x570B; 4x1518B)
-| | ...
| | [Tags] | IMIX | 4C
-| | ...
-| | [Template] | Check RR for ethip4vxlan-l2xcbase
-| | wt=4 | rxq=2 | framesize=IMIX_v4_1
+| | phy_cores=${4} | framesize=IMIX_v4_1
diff --git a/tests/vpp/perf/ip4_tunnels/10ge2p1x520-ethip4vxlan-l2xcbase-ndrpdrdisc.robot b/tests/vpp/perf/ip4_tunnels/10ge2p1x520-ethip4vxlan-l2xcbase-ndrpdrdisc.robot
index 615aa57e7e..9598dd0294 100644
--- a/tests/vpp/perf/ip4_tunnels/10ge2p1x520-ethip4vxlan-l2xcbase-ndrpdrdisc.robot
+++ b/tests/vpp/perf/ip4_tunnels/10ge2p1x520-ethip4vxlan-l2xcbase-ndrpdrdisc.robot
@@ -68,7 +68,7 @@
| | ${binary_min}= | Set Variable | ${min_rate}
| | ${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
+| | Given Add worker threads and rxqueues to all DUTs | 1
| | And Add PCI devices to all DUTs
| | And Add no multi seg to all DUTs
| | And Apply startup configuration on all VPP DUTs
@@ -89,7 +89,7 @@
| | ${binary_min}= | Set Variable | ${min_rate}
| | ${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
+| | Given Add worker threads and rxqueues to all DUTs | 1
| | And Add PCI devices to all DUTs
| | And Add no multi seg to all DUTs
| | And Apply startup configuration on all VPP DUTs
@@ -111,7 +111,7 @@
| | ${binary_min}= | Set Variable | ${min_rate}
| | ${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
+| | Given Add worker threads and rxqueues to all DUTs | 1
| | And Add PCI devices to all DUTs
| | And Apply startup configuration on all VPP DUTs
| | And Initialize L2 xconnect with VXLANoIPv4 in 3-node circular topology
@@ -131,7 +131,7 @@
| | ${binary_min}= | Set Variable | ${min_rate}
| | ${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
+| | Given Add worker threads and rxqueues to all DUTs | 1
| | And Add PCI devices to all DUTs
| | And Apply startup configuration on all VPP DUTs
| | And Initialize L2 xconnect with VXLANoIPv4 in 3-node circular topology
@@ -152,7 +152,7 @@
| | ${binary_min}= | Set Variable | ${min_rate}
| | ${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
+| | Given Add worker threads and rxqueues to all DUTs | 1
| | And Add PCI devices to all DUTs
| | And Apply startup configuration on all VPP DUTs
| | And Initialize L2 xconnect with VXLANoIPv4 in 3-node circular topology
@@ -172,7 +172,7 @@
| | ${binary_min}= | Set Variable | ${min_rate}
| | ${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
+| | Given Add worker threads and rxqueues to all DUTs | 1
| | And Add PCI devices to all DUTs
| | And Apply startup configuration on all VPP DUTs
| | And Initialize L2 xconnect with VXLANoIPv4 in 3-node circular topology
@@ -193,7 +193,7 @@
| | ${binary_min}= | Set Variable | ${min_rate}
| | ${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
+| | Given Add worker threads and rxqueues to all DUTs | 2
| | And Add PCI devices to all DUTs
| | And Add no multi seg to all DUTs
| | And Apply startup configuration on all VPP DUTs
@@ -214,7 +214,7 @@
| | ${binary_min}= | Set Variable | ${min_rate}
| | ${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
+| | Given Add worker threads and rxqueues to all DUTs | 2
| | And Add PCI devices to all DUTs
| | And Add no multi seg to all DUTs
| | And Apply startup configuration on all VPP DUTs
@@ -236,7 +236,7 @@
| | ${binary_min}= | Set Variable | ${min_rate}
| | ${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
+| | Given Add worker threads and rxqueues to all DUTs | 2
| | And Add PCI devices to all DUTs
| | And Apply startup configuration on all VPP DUTs
| | And Initialize L2 xconnect with VXLANoIPv4 in 3-node circular topology
@@ -256,7 +256,7 @@
| | ${binary_min}= | Set Variable | ${min_rate}
| | ${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
+| | Given Add worker threads and rxqueues to all DUTs | 2
| | And Add PCI devices to all DUTs
| | And Apply startup configuration on all VPP DUTs
| | And Initialize L2 xconnect with VXLANoIPv4 in 3-node circular topology
@@ -277,7 +277,7 @@
| | ${binary_min}= | Set Variable | ${min_rate}
| | ${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
+| | Given Add worker threads and rxqueues to all DUTs | 2
| | And Add PCI devices to all DUTs
| | And Apply startup configuration on all VPP DUTs
| | And Initialize L2 xconnect with VXLANoIPv4 in 3-node circular topology
@@ -297,7 +297,7 @@
| | ${binary_min}= | Set Variable | ${min_rate}
| | ${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
+| | Given Add worker threads and rxqueues to all DUTs | 2
| | And Add PCI devices to all DUTs
| | And Apply startup configuration on all VPP DUTs
| | And Initialize L2 xconnect with VXLANoIPv4 in 3-node circular topology
@@ -318,7 +318,7 @@
| | ${binary_min}= | Set Variable | ${min_rate}
| | ${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
+| | Given Add worker threads and rxqueues to all DUTs | 4
| | And Add PCI devices to all DUTs
| | And Add no multi seg to all DUTs
| | And Apply startup configuration on all VPP DUTs
@@ -339,7 +339,7 @@
| | ${binary_min}= | Set Variable | ${min_rate}
| | ${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
+| | Given Add worker threads and rxqueues to all DUTs | 4
| | And Add PCI devices to all DUTs
| | And Add no multi seg to all DUTs
| | And Apply startup configuration on all VPP DUTs
@@ -361,7 +361,7 @@
| | ${binary_min}= | Set Variable | ${min_rate}
| | ${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
+| | Given Add worker threads and rxqueues to all DUTs | 4
| | And Add PCI devices to all DUTs
| | And Apply startup configuration on all VPP DUTs
| | And Initialize L2 xconnect with VXLANoIPv4 in 3-node circular topology
@@ -381,7 +381,7 @@
| | ${binary_min}= | Set Variable | ${min_rate}
| | ${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
+| | Given Add worker threads and rxqueues to all DUTs | 4
| | And Add PCI devices to all DUTs
| | And Apply startup configuration on all VPP DUTs
| | And Initialize L2 xconnect with VXLANoIPv4 in 3-node circular topology
@@ -402,7 +402,7 @@
| | ${binary_min}= | Set Variable | ${min_rate}
| | ${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
+| | Given Add worker threads and rxqueues to all DUTs | 4
| | And Add PCI devices to all DUTs
| | And Apply startup configuration on all VPP DUTs
| | And Initialize L2 xconnect with VXLANoIPv4 in 3-node circular topology
@@ -422,7 +422,7 @@
| | ${binary_min}= | Set Variable | ${min_rate}
| | ${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
+| | Given Add worker threads and rxqueues to all DUTs | 4
| | And Add PCI devices to all DUTs
| | And Apply startup configuration on all VPP DUTs
| | And Initialize L2 xconnect with VXLANoIPv4 in 3-node circular topology
diff --git a/tests/vpp/perf/ip4_tunnels/10ge2p1x710-ethip4lispip4-ip4base-mrr.robot b/tests/vpp/perf/ip4_tunnels/10ge2p1x710-ethip4lispip4-ip4base-mrr.robot
index a804b72cac..9ad56b6a80 100644
--- a/tests/vpp/perf/ip4_tunnels/10ge2p1x710-ethip4lispip4-ip4base-mrr.robot
+++ b/tests/vpp/perf/ip4_tunnels/10ge2p1x710-ethip4lispip4-ip4base-mrr.robot
@@ -27,6 +27,8 @@
| ...
| Test Teardown | Tear down performance mrr test
| ...
+| Test Template | Local template
+| ...
| Documentation | *Raw results Lisp test cases*
| ...
| ... | *[Top] Network Topologies:* TG-DUT1-DUT2-TG 3-node circular topology\
@@ -53,24 +55,28 @@
| ${traffic_profile}= | trex-sl-3n-ethip4-ip4src253
*** Keywords ***
-| Check RR for ethip4lispip4-ip4base
-| | ...
+| Local template
| | [Documentation]
| | ... | [Cfg] DUT runs IPv4 LISP remote static mappings and whitelist filters\
-| | ... | config with ${wt} thread(s), ${wt} phy core(s), ${rxq} receive\
-| | ... | queue(s) per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for ${framesize} frames using single\
+| | ... | config.
+| | ... | Each DUT uses ${phy_cores} physical core(s) for worker threads.
+| | ... | [Ver] Measure MaxReceivedRate for ${framesize}B frames using single\
| | ... | trial throughput test.
| | ...
-| | [Arguments] | ${wt} | ${rxq} | ${framesize}
+| | ... | *Arguments:*
+| | ... | - framesize - Framesize in Bytes in integer or string (IMIX_v4_1).
+| | ... | Type: integer, string
+| | ... | - phy_cores - Number of physical cores. Type: integer
+| | ... | - rxq - Number of RX queues, default value: ${None}. Type: integer
+| | ...
+| | [Arguments] | ${phy_cores} | ${framesize} | ${rxq}=${None}
| | ...
-| | # Test Variables required for test execution and test teardown
| | Set Test Variable | ${framesize}
| | ${get_framesize}= | Get Frame Size | ${framesize}
| | ${max_rate}= | Calculate pps | ${s_limit}
| | ... | ${get_framesize + ${lisp_overhead}}
| | ...
-| | Given Add '${wt}' worker threads and '${rxq}' rxqueues in 3-node single-link circular topology
+| | Given Add worker threads and rxqueues to all DUTs | ${phy_cores} | ${rxq}
| | And Add PCI devices to all DUTs
| | And Run Keyword If | ${get_framesize + ${lisp_overhead}} < ${1522}
| | ... | Add no multi seg to all DUTs
@@ -88,160 +94,49 @@
*** Test Cases ***
| tc01-64B-1t1c-ethip4lispip4-ip4base-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 LISP remote static mappings and whitelist\
-| | ... | filters config with 1 phy core, 1 receive queue per NIC\
-| | ... | port.
-| | ... | [Ver] Measure MaxReceivedRate for 64B frames using single trial\
-| | ... | throughput test.
-| | ...
| | [Tags] | 64B | 1C
-| | ...
-| | [Template] | Check RR for ethip4lispip4-ip4base
-| | wt=1 | rxq=1 | framesize=${64}
+| | phy_cores=${1} | framesize=${64}
| tc02-1480B-1t1c-ethip4lispip4-ip4base-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 LISP remote static mappings and whitelist\
-| | ... | filters config with 1 phy core, 1 receive queue per NIC\
-| | ... | port.
-| | ... | [Ver] Measure MaxReceivedRate for 1480B frames using single trial\
-| | ... | throughput test.
-| | ...
| | [Tags] | 1480B | 1C
-| | ...
-| | [Template] | Check RR for ethip4lispip4-ip4base
-| | wt=1 | rxq=1 | framesize=${1480}
+| | phy_cores=${1} | framesize=${1480}
| tc03-9000B-1t1c-ethip4lispip4-ip4base-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 LISP remote static mappings and whitelist\
-| | ... | filters config with 1 phy core, 1 receive queue per NIC\
-| | ... | port.
-| | ... | [Ver] Measure MaxReceivedRate for 9000B frames using single trial\
-| | ... | throughput test.
-| | ...
| | [Tags] | 9000B | 1C
-| | ...
-| | [Template] | Check RR for ethip4lispip4-ip4base
-| | wt=1 | rxq=1 | framesize=${9000}
+| | phy_cores=${1} | framesize=${9000}
| tc04-IMIX-1t1c-ethip4lispip4-ip4base-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 LISP remote static mappings and whitelist\
-| | ... | filters config with 1 phy core, 1 receive queue per NIC\
-| | ... | port.
-| | ... | [Ver] Measure MaxReceivedRate for IMIX_v4_1 frames using single trial\
-| | ... | throughput test.
-| | ... | IMIX_v4_1 = (28x64B; 16x570B; 4x1518B)
-| | ...
| | [Tags] | IMIX | 1C
-| | ...
-| | [Template] | Check RR for ethip4lispip4-ip4base
-| | wt=1 | rxq=1 | framesize=IMIX_v4_1
+| | phy_cores=${1} | framesize=IMIX_v4_1
| tc05-64B-2t2c-ethip4lispip4-ip4base-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 LISP remote static mappings and whitelist\
-| | ... | filters config with 2 phy cores, 1 receive queue per NIC\
-| | ... | port.
-| | ... | [Ver] Measure MaxReceivedRate for 64B frames using single trial\
-| | ... | throughput test.
-| | ...
| | [Tags] | 64B | 2C
-| | ...
-| | [Template] | Check RR for ethip4lispip4-ip4base
-| | wt=2 | rxq=1 | framesize=${64}
+| | phy_cores=${2} | framesize=${64}
| tc06-1480B-2t2c-ethip4lispip4-ip4base-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 LISP remote static mappings and whitelist\
-| | ... | filters config with 2 phy cores, 1 receive queue per NIC\
-| | ... | port.
-| | ... | [Ver] Measure MaxReceivedRate for 1480B frames using single trial\
-| | ... | throughput test.
-| | ...
| | [Tags] | 1480B | 2C
-| | ...
-| | [Template] | Check RR for ethip4lispip4-ip4base
-| | wt=2 | rxq=1 | framesize=${1480}
+| | phy_cores=${2} | framesize=${1480}
| tc07-9000B-2t2c-ethip4lispip4-ip4base-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 LISP remote static mappings and whitelist\
-| | ... | filters config with 2 phy cores, 1 receive queue per NIC\
-| | ... | port.
-| | ... | [Ver] Measure MaxReceivedRate for 9000B frames using single trial\
-| | ... | throughput test.
-| | ...
| | [Tags] | 9000B | 2C
-| | ...
-| | [Template] | Check RR for ethip4lispip4-ip4base
-| | wt=2 | rxq=1 | framesize=${9000}
+| | phy_cores=${2} | framesize=${9000}
| tc08-IMIX-2t2c-ethip4lispip4-ip4base-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 LISP remote static mappings and whitelist\
-| | ... | filters config with 2 phy cores, 1 receive queue per NIC\
-| | ... | port.
-| | ... | [Ver] Measure MaxReceivedRate for IMIX_v4_1 frames using single trial\
-| | ... | throughput test.
-| | ... | IMIX_v4_1 = (28x64B; 16x570B; 4x1518B)
-| | ...
| | [Tags] | IMIX | 2C
-| | ...
-| | [Template] | Check RR for ethip4lispip4-ip4base
-| | wt=2 | rxq=1 | framesize=IMIX_v4_1
+| | phy_cores=${2} | framesize=IMIX_v4_1
| tc09-64B-4t4c-ethip4lispip4-ip4base-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 LISP remote static mappings and whitelist\
-| | ... | filters config with 4 phy cores, 2 receive queues per NIC\
-| | ... | port.
-| | ... | [Ver] Measure MaxReceivedRate for 64B frames using single trial\
-| | ... | throughput test.
-| | ...
| | [Tags] | 64B | 4C
-| | ...
-| | [Template] | Check RR for ethip4lispip4-ip4base
-| | wt=4 | rxq=2 | framesize=${64}
+| | phy_cores=${4} | framesize=${64}
| tc10-1480B-4t4c-ethip4lispip4-ip4base-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 LISP remote static mappings and whitelist\
-| | ... | filters config with 4 phy cores, 2 receive queues per NIC\
-| | ... | port.
-| | ... | [Ver] Measure MaxReceivedRate for 1480B frames using single trial\
-| | ... | throughput test.
-| | ...
| | [Tags] | 1480B | 4C
-| | ...
-| | [Template] | Check RR for ethip4lispip4-ip4base
-| | wt=4 | rxq=2 | framesize=${1480}
+| | phy_cores=${4} | framesize=${1480}
| tc11-9000B-4t4c-ethip4lispip4-ip4base-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 LISP remote static mappings and whitelist\
-| | ... | filters config with 4 phy cores, 2 receive queues per NIC\
-| | ... | port.
-| | ... | [Ver] Measure MaxReceivedRate for 9000B frames using single trial\
-| | ... | throughput test.
-| | ...
| | [Tags] | 9000B | 4C
-| | ...
-| | [Template] | Check RR for ethip4lispip4-ip4base
-| | wt=4 | rxq=2 | framesize=${9000}
+| | phy_cores=${4} | framesize=${9000}
| tc12-IMIX-4t4c-ethip4lispip4-ip4base-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 LISP remote static mappings and whitelist\
-| | ... | filters config with 4 phy cores, 2 receive queues per NIC\
-| | ... | port.
-| | ... | [Ver] Measure MaxReceivedRate for IMIX_v4_1 frames using single trial\
-| | ... | throughput test.
-| | ... | IMIX_v4_1 = (28x64B; 16x570B; 4x1518B)
-| | ...
| | [Tags] | IMIX | 4C
-| | ...
-| | [Template] | Check RR for ethip4lispip4-ip4base
-| | wt=4 | rxq=2 | framesize=IMIX_v4_1
+| | phy_cores=${4} | framesize=IMIX_v4_1
diff --git a/tests/vpp/perf/ip4_tunnels/10ge2p1x710-ethip4vxlan-l2bdbasemaclrn-mrr.robot b/tests/vpp/perf/ip4_tunnels/10ge2p1x710-ethip4vxlan-l2bdbasemaclrn-mrr.robot
index 6cc7f35537..29a9a215e9 100644
--- a/tests/vpp/perf/ip4_tunnels/10ge2p1x710-ethip4vxlan-l2bdbasemaclrn-mrr.robot
+++ b/tests/vpp/perf/ip4_tunnels/10ge2p1x710-ethip4vxlan-l2bdbasemaclrn-mrr.robot
@@ -25,6 +25,8 @@
| ...
| Test Teardown | Tear down performance mrr test
| ...
+| Test Template | Local template
+| ...
| Documentation | *Raw results L2BD with VXLANoIPv4 test cases*
| ...
| ... | *[Top] Network Topologies:* TG-DUT1-DUT2-TG 3-node circular topology
@@ -51,23 +53,27 @@
| ${traffic_profile}= | trex-sl-3n-ethip4-ip4src254
*** Keywords ***
-| Check RR for ethip4vxlan-l2bdbasemaclrn
-| | ...
+| Local template
| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD forwarding config with ${wt} thread(s), ${wt}\
-| | ... | phy core(s), ${rxq} receive queue(s) per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for ${framesize} frames using single\
+| | ... | [Cfg] DUT runs L2BD forwarding config.
+| | ... | Each DUT uses ${phy_cores} physical core(s) for worker threads.
+| | ... | [Ver] Measure MaxReceivedRate for ${framesize}B frames using single\
| | ... | trial throughput test.
| | ...
-| | [Arguments] | ${wt} | ${rxq} | ${framesize}
+| | ... | *Arguments:*
+| | ... | - framesize - Framesize in Bytes in integer or string (IMIX_v4_1).
+| | ... | Type: integer, string
+| | ... | - phy_cores - Number of physical cores. Type: integer
+| | ... | - rxq - Number of RX queues, default value: ${None}. Type: integer
+| | ...
+| | [Arguments] | ${phy_cores} | ${framesize} | ${rxq}=${None}
| | ...
-| | # Test Variables required for test execution and test teardown
| | Set Test Variable | ${framesize}
| | ${get_framesize}= | Get Frame Size | ${framesize}
| | ${max_rate}= | Calculate pps | ${s_limit}
| | ... | ${get_framesize + ${vxlan_overhead}}
| | ...
-| | Given Add '${wt}' worker threads and '${rxq}' rxqueues in 3-node single-link circular topology
+| | Given Add worker threads and rxqueues to all DUTs | ${phy_cores} | ${rxq}
| | And Add PCI devices to all DUTs
| | And Run Keyword If | ${get_framesize + ${vxlan_overhead}} < ${1522}
| | ... | Add no multi seg to all DUTs
@@ -78,148 +84,49 @@
*** Test Cases ***
| tc01-64B-1t1c-ethip4vxlan-l2bdbasemaclrn-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD forwarding config with 1 phy core,\
-| | ... | 1 receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 64B frames using single trial\
-| | ... | throughput test.
-| | ...
| | [Tags] | 64B | 1C
-| | ...
-| | [Template] | Check RR for ethip4vxlan-l2bdbasemaclrn
-| | wt=1 | rxq=1 | framesize=${64}
+| | phy_cores=${1} | framesize=${64}
| tc02-1518B-1t1c-ethip4vxlan-l2bdbasemaclrn-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD forwarding config with 1 phy core,\
-| | ... | 1 receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 1518B frames using single\
-| | ... | trial throughput test.
-| | ...
| | [Tags] | 1518B | 1C
-| | ...
-| | [Template] | Check RR for ethip4vxlan-l2bdbasemaclrn
-| | wt=1 | rxq=1 | framesize=${1518}
+| | phy_cores=${1} | framesize=${1518}
| tc03-9000B-1t1c-ethip4vxlan-l2bdbasemaclrn-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD forwarding config with 1 phy core,\
-| | ... | 1 receive queue per NIC port.
-| | ... | [Ver] Find NDR for 9000 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 10kpps.
-| | ...
| | [Tags] | 9000B | 1C
-| | ...
-| | [Template] | Check RR for ethip4vxlan-l2bdbasemaclrn
-| | wt=1 | rxq=1 | framesize=${9000}
+| | phy_cores=${1} | framesize=${9000}
| tc04-IMIX-1t1c-ethip4vxlan-l2bdbasemaclrn-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD forwarding config with 1 phy core,\
-| | ... | 1 receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for IMIX_v4_1 frames using single trial\
-| | ... | throughput test.
-| | ... | IMIX_v4_1 = (28x64B; 16x570B; 4x1518B)
-| | ...
| | [Tags] | IMIX | 1C
-| | ...
-| | [Template] | Check RR for ethip4vxlan-l2bdbasemaclrn
-| | wt=1 | rxq=1 | framesize=IMIX_v4_1
+| | phy_cores=${1} | framesize=IMIX_v4_1
| tc05-64B-2t2c-ethip4vxlan-l2bdbasemaclrn-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD forwarding config with 2 phy cores,\
-| | ... | 1 receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 64B frames using single trial\
-| | ... | throughput test.
-| | ...
| | [Tags] | 64B | 2C
-| | ...
-| | [Template] | Check RR for ethip4vxlan-l2bdbasemaclrn
-| | wt=2 | rxq=1 | framesize=${64}
+| | phy_cores=${2} | framesize=${64}
| tc06-1518B-2t2c-ethip4vxlan-l2bdbasemaclrn-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD forwarding config with 2 phy cores,\
-| | ... | 1 receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 1518B frames using single\
-| | ... | trial throughput test.
-| | ...
| | [Tags] | 1518B | 2C | SKIP_PATCH
-| | ...
-| | [Template] | Check RR for ethip4vxlan-l2bdbasemaclrn
-| | wt=2 | rxq=1 | framesize=${1518}
+| | phy_cores=${2} | framesize=${1518}
| tc07-9000B-2t2c-ethip4vxlan-l2bdbasemaclrn-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD forwarding config with 2 phy cores,\
-| | ... | 1 receive queue per NIC port.
-| | ... | [Ver] Find NDR for 9000 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 10kpps.
-| | ...
| | [Tags] | 9000B | 2C | SKIP_PATCH
-| | ...
-| | [Template] | Check RR for ethip4vxlan-l2bdbasemaclrn
-| | wt=2 | rxq=1 | framesize=${9000}
+| | phy_cores=${2} | framesize=${9000}
| tc08-IMIX-2t2c-ethip4vxlan-l2bdbasemaclrn-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD forwarding config with 2 phy cores,\
-| | ... | 1 receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for IMIX_v4_1 frames using single trial\
-| | ... | throughput test.
-| | ... | IMIX_v4_1 = (28x64B; 16x570B; 4x1518B)
-| | ...
| | [Tags] | IMIX | 2C
-| | ...
-| | [Template] | Check RR for ethip4vxlan-l2bdbasemaclrn
-| | wt=2 | rxq=1 | framesize=IMIX_v4_1
+| | phy_cores=${2} | framesize=IMIX_v4_1
| tc09-64B-4t4c-ethip4vxlan-l2bdbasemaclrn-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD forwarding config with 4 phy cores,\
-| | ... | 2 receive queues per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 64B frames using single trial\
-| | ... | throughput test.
-| | ...
| | [Tags] | 64B | 4C
-| | ...
-| | [Template] | Check RR for ethip4vxlan-l2bdbasemaclrn
-| | wt=4 | rxq=2 | framesize=${64}
+| | phy_cores=${4} | framesize=${64}
| tc10-1518B-4t4c-ethip4vxlan-l2bdbasemaclrn-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD forwarding config with 4 phy cores,\
-| | ... | 2 receive queues per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 1518B frames using single\
-| | ... | trial throughput test.
-| | ...
| | [Tags] | 1518B | 4C | SKIP_PATCH
-| | ...
-| | [Template] | Check RR for ethip4vxlan-l2bdbasemaclrn
-| | wt=4 | rxq=2 | framesize=${1518}
+| | phy_cores=${4} | framesize=${1518}
| tc11-9000B-4t4c-ethip4vxlan-l2bdbasemaclrn-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD forwarding config with 4 phy cores,\
-| | ... | 2 receive queues per NIC port.
-| | ... | [Ver] Find NDR for 9000 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 10kpps.
-| | ...
| | [Tags] | 9000B | 4C | SKIP_PATCH
-| | ...
-| | [Template] | Check RR for ethip4vxlan-l2bdbasemaclrn
-| | wt=4 | rxq=2 | framesize=${9000}
+| | phy_cores=${4} | framesize=${9000}
| tc12-IMIX-4t4c-ethip4vxlan-l2bdbasemaclrn-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD forwarding config with 4 phy cores,\
-| | ... | 2 receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for IMIX_v4_1 frames using single trial\
-| | ... | throughput test.
-| | ... | IMIX_v4_1 = (28x64B; 16x570B; 4x1518B)
-| | ...
| | [Tags] | IMIX | 4C
-| | ...
-| | [Template] | Check RR for ethip4vxlan-l2bdbasemaclrn
-| | wt=4 | rxq=2 | framesize=IMIX_v4_1
+| | phy_cores=${4} | framesize=IMIX_v4_1
diff --git a/tests/vpp/perf/ip4_tunnels/10ge2p1x710-ethip4vxlan-l2xcbase-mrr.robot b/tests/vpp/perf/ip4_tunnels/10ge2p1x710-ethip4vxlan-l2xcbase-mrr.robot
index b8c3f5c2c2..22fc9f44dc 100644
--- a/tests/vpp/perf/ip4_tunnels/10ge2p1x710-ethip4vxlan-l2xcbase-mrr.robot
+++ b/tests/vpp/perf/ip4_tunnels/10ge2p1x710-ethip4vxlan-l2xcbase-mrr.robot
@@ -25,6 +25,8 @@
| ...
| Test Teardown | Tear down performance mrr test
| ...
+| Test Template | Local template
+| ...
| Documentation | *Raw results L2XC with VXLANoIPv4 test cases*
| ...
| ... | *[Top] Network Topologies:* TG-DUT1-DUT2-TG 3-node circular topology
@@ -51,23 +53,27 @@
| ${traffic_profile}= | trex-sl-3n-ethip4-ip4src254
*** Keywords ***
-| Check RR for ethip4vxlan-l2xcbase
-| | ...
+| Local template
| | [Documentation]
-| | ... | [Cfg] DUT runs L2XC forwarding config with ${wt} thread(s), ${wt}\
-| | ... | phy core(s), ${rxq} receive queue(s) per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for ${framesize} frames using single\
+| | ... | [Cfg] DUT runs L2XC forwarding config.
+| | ... | Each DUT uses ${phy_cores} physical core(s) for worker threads.
+| | ... | [Ver] Measure MaxReceivedRate for ${framesize}B frames using single\
| | ... | trial throughput test.
| | ...
-| | [Arguments] | ${wt} | ${rxq} | ${framesize}
+| | ... | *Arguments:*
+| | ... | - framesize - Framesize in Bytes in integer or string (IMIX_v4_1).
+| | ... | Type: integer, string
+| | ... | - phy_cores - Number of physical cores. Type: integer
+| | ... | - rxq - Number of RX queues, default value: ${None}. Type: integer
+| | ...
+| | [Arguments] | ${phy_cores} | ${framesize} | ${rxq}=${None}
| | ...
-| | # Test Variables required for test execution and test teardown
| | Set Test Variable | ${framesize}
| | ${get_framesize}= | Get Frame Size | ${framesize}
| | ${max_rate}= | Calculate pps | ${s_limit}
| | ... | ${get_framesize + ${vxlan_overhead}}
| | ...
-| | Given Add '${wt}' worker threads and '${rxq}' rxqueues in 3-node single-link circular topology
+| | Given Add worker threads and rxqueues to all DUTs | ${phy_cores} | ${rxq}
| | And Add PCI devices to all DUTs
| | And Run Keyword If | ${get_framesize + ${vxlan_overhead}} < ${1522}
| | ... | Add no multi seg to all DUTs
@@ -78,148 +84,49 @@
*** Test Cases ***
| tc01-64B-1t1c-ethip4vxlan-l2xcbase-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2XC forwarding config with 1 phy core, \
-| | ... | 1 receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 64B frames using single trial\
-| | ... | throughput test.
-| | ...
| | [Tags] | 64B | 1C
-| | ...
-| | [Template] | Check RR for ethip4vxlan-l2xcbase
-| | wt=1 | rxq=1 | framesize=${64}
+| | phy_cores=${1} | framesize=${64}
| tc02-1518B-1t1c-ethip4vxlan-l2xcbase-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2XC forwarding config with 1 phy core, \
-| | ... | 1 receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 1518B frames using single trial\
-| | ... | throughput test.
-| | ...
| | [Tags] | 1518B | 1C
-| | ...
-| | [Template] | Check RR for ethip4vxlan-l2xcbase
-| | wt=1 | rxq=1 | framesize=${1518}
+| | phy_cores=${1} | framesize=${1518}
| tc03-9000B-1t1c-ethip4vxlan-l2xcbase-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2XC forwarding config with 1 phy core, \
-| | ... | 1 receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 9000B frames using single trial\
-| | ... | throughput test.
-| | ...
| | [Tags] | 9000B | 1C
-| | ...
-| | [Template] | Check RR for ethip4vxlan-l2xcbase
-| | wt=1 | rxq=1 | framesize=${9000}
+| | phy_cores=${1} | framesize=${9000}
| tc04-IMIX-1t1c-ethip4vxlan-l2xcbase-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2XC forwarding config with 1 phy core,\
-| | ... | 1 receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for IMIX_v4_1 frames using single trial\
-| | ... | throughput test.
-| | ... | IMIX_v4_1 = (28x64B; 16x570B; 4x1518B)
-| | ...
| | [Tags] | IMIX | 1C
-| | ...
-| | [Template] | Check RR for ethip4vxlan-l2xcbase
-| | wt=1 | rxq=1 | framesize=IMIX_v4_1
+| | phy_cores=${1} | framesize=IMIX_v4_1
| tc05-64B-2t2c-ethip4vxlan-l2xcbase-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2XC forwarding config with 2 phy cores, \
-| | ... | 1 receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 64B frames using single trial\
-| | ... | throughput test.
-| | ...
| | [Tags] | 64B | 2C
-| | ...
-| | [Template] | Check RR for ethip4vxlan-l2xcbase
-| | wt=2 | rxq=1 | framesize=${64}
+| | phy_cores=${2} | framesize=${64}
| tc06-1518B-2t2c-ethip4vxlan-l2xcbase-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2XC forwarding config with 2 phy cores, \
-| | ... | 1 receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 1518B frames using single trial\
-| | ... | throughput test.
-| | ...
| | [Tags] | 1518B | 2C
-| | ...
-| | [Template] | Check RR for ethip4vxlan-l2xcbase
-| | wt=2 | rxq=1 | framesize=${1518}
+| | phy_cores=${2} | framesize=${1518}
| tc07-9000B-2t2c-ethip4vxlan-l2xcbase-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2XC forwarding config with 2 phy cores, \
-| | ... | 1 receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 9000B frames using single trial\
-| | ... | throughput test.
-| | ...
| | [Tags] | 9000B | 2C
-| | ...
-| | [Template] | Check RR for ethip4vxlan-l2xcbase
-| | wt=2 | rxq=1 | framesize=${9000}
+| | phy_cores=${2} | framesize=${9000}
| tc08-IMIX-2t2c-ethip4vxlan-l2xcbase-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2XC forwarding config with 2 phy cores,\
-| | ... | 1 receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for IMIX_v4_1 frames using single trial\
-| | ... | throughput test.
-| | ... | IMIX_v4_1 = (28x64B; 16x570B; 4x1518B)
-| | ...
| | [Tags] | IMIX | 2C
-| | ...
-| | [Template] | Check RR for ethip4vxlan-l2xcbase
-| | wt=2 | rxq=1 | framesize=IMIX_v4_1
+| | phy_cores=${2} | framesize=IMIX_v4_1
| tc09-64B-4t4c-ethip4vxlan-l2xcbase-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2XC forwarding config with 4 phy cores, \
-| | ... | 2 receive queues per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 64B frames using single trial\
-| | ... | throughput test.
-| | ...
| | [Tags] | 64B | 4C
-| | ...
-| | [Template] | Check RR for ethip4vxlan-l2xcbase
-| | wt=4 | rxq=2 | framesize=${64}
+| | phy_cores=${4} | framesize=${64}
| tc10-1518B-4t4c-ethip4vxlan-l2xcbase-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2XC forwarding config with 4 phy cores, \
-| | ... | 2 receive queues per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 1518B frames using single trial\
-| | ... | throughput test.
-| | ...
| | [Tags] | 1518B | 4C
-| | ...
-| | [Template] | Check RR for ethip4vxlan-l2xcbase
-| | wt=4 | rxq=2 | framesize=${1518}
+| | phy_cores=${4} | framesize=${1518}
| tc11-9000B-4t4c-ethip4vxlan-l2xcbase-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2XC forwarding config with 4 phy cores, \
-| | ... | 2 receive queues per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 9000B frames using single trial\
-| | ... | throughput test.
-| | ...
| | [Tags] | 9000B | 4C
-| | ...
-| | [Template] | Check RR for ethip4vxlan-l2xcbase
-| | wt=4 | rxq=2 | framesize=${9000}
+| | phy_cores=${4} | framesize=${9000}
| tc12-IMIX-4t4c-ethip4vxlan-l2xcbase-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2XC forwarding config with 4 phy cores,\
-| | ... | 2 receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for IMIX_v4_1 frames using single trial\
-| | ... | throughput test.
-| | ... | IMIX_v4_1 = (28x64B; 16x570B; 4x1518B)
-| | ...
| | [Tags] | IMIX | 4C
-| | ...
-| | [Template] | Check RR for ethip4vxlan-l2xcbase
-| | wt=4 | rxq=2 | framesize=IMIX_v4_1
+| | phy_cores=${4} | framesize=IMIX_v4_1
diff --git a/tests/vpp/perf/ip6/10ge2p1x520-ethip6-ip6base-copwhtlistbase-mrr.robot b/tests/vpp/perf/ip6/10ge2p1x520-ethip6-ip6base-copwhtlistbase-mrr.robot
index 1a06a0fc73..f7904c2380 100644
--- a/tests/vpp/perf/ip6/10ge2p1x520-ethip6-ip6base-copwhtlistbase-mrr.robot
+++ b/tests/vpp/perf/ip6/10ge2p1x520-ethip6-ip6base-copwhtlistbase-mrr.robot
@@ -26,6 +26,8 @@
| ...
| Test Teardown | Tear down performance mrr test
| ...
+| Test Template | Local template
+| ...
| Documentation | *Raw results IPv6 whitelist test cases*
| ...
| ... | *[Top] Network Topologies:* TG-DUT1-DUT2-TG 3-node circular topology
@@ -52,21 +54,26 @@
| ${traffic_profile} | trex-sl-3n-ethip6-ip6src253
*** Keywords ***
-| Check RR for ip6base-copwhtlistbase
+| Local template
| | [Documentation]
-| | ... | [Cfg] DUT runs IPv6 routing and whitelist filters config with ${wt} \
-| | ... | thread(s), ${wt} phy core(s), ${rxq} receive queue(s) per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for ${framesize} frames using single\
+| | ... | [Cfg] DUT runs IPv6 routing and whitelist filters config with
+| | ... | ${phy_cores} phy core(s).
+| | ... | [Ver] Measure MaxReceivedRate for ${framesize}B frames using single\
| | ... | trial throughput test.
| | ...
-| | [Arguments] | ${framesize} | ${wt} | ${rxq}
+| | ... | *Arguments:*
+| | ... | - framesize - Framesize in Bytes in integer or string (IMIX_v4_1).
+| | ... | Type: integer, string
+| | ... | - phy_cores - Number of physical cores. Type: integer
+| | ... | - rxq - Number of RX queues, default value: ${None}. Type: integer
+| | ...
+| | [Arguments] | ${phy_cores} | ${framesize} | ${rxq}=${None}
| | ...
-| | # Test Variables required for test teardown
| | Set Test Variable | ${framesize}
| | ${get_framesize}= | Get Frame Size | ${framesize}
| | ${max_rate}= | Calculate pps | ${s_limit} | ${get_framesize}
| | ...
-| | Given Add '${wt}' worker threads and '${rxq}' rxqueues in 3-node single-link circular topology
+| | Given Add worker threads and rxqueues to all DUTs | ${phy_cores} | ${rxq}
| | And Add PCI devices to all DUTs
| | And Run Keyword If | ${get_framesize} < ${1522}
| | ... | Add no multi seg to all DUTs
@@ -85,148 +92,49 @@
*** Test Cases ***
| tc01-78B-1t1c-ethip6-ip6base-copwhtlistbase-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv6 routing and whitelist filters config with \
-| | ... | 1 phy core, 1 receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 78B frames using single trial\
-| | ... | throughput test.
-| | ...
| | [Tags] | 78B | 1C
-| | ...
-| | [Template] | Check RR for ip6base-copwhtlistbase
-| | wt=1 | rxq=1 | framesize=${78}
+| | phy_cores=${1} | framesize=${78}
| tc02-1518B-1t1c-ethip6-ip6base-copwhtlistbase-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv6 routing and whitelist filters config with \
-| | ... | 1 phy core, 1 receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 1518B frames using single trial\
-| | ... | throughput test.
-| | ...
| | [Tags] | 1518B | 1C
-| | ...
-| | [Template] | Check RR for ip6base-copwhtlistbase
-| | wt=1 | rxq=1 | framesize=${1518}
+| | phy_cores=${1} | framesize=${1518}
| tc03-9000B-1t1c-ethip6-ip6base-copwhtlistbase-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv6 routing and whitelist filters config with \
-| | ... | 1 phy core, 1 receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 9000B frames using single trial\
-| | ... | throughput test.
-| | ...
| | [Tags] | 9000B | 1C
-| | ...
-| | [Template] | Check RR for ip6base-copwhtlistbase
-| | wt=1 | rxq=1 | framesize=${9000}
+| | phy_cores=${1} | framesize=${9000}
| tc04-IMIX-1t1c-ethip6-ip6base-copwhtlistbase-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv6 routing and whitelist filters config with \
-| | ... | 1 phy core, 1 receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for IMIX_v4_1 frames using single trial\
-| | ... | throughput test.
-| | ... | IMIX_v4_1 = (28x64B; 16x570B; 4x1518B)
-| | ...
| | [Tags] | IMIX | 1C
-| | ...
-| | [Template] | Check RR for ip6base-copwhtlistbase
-| | wt=1 | rxq=1 | framesize=IMIX_v4_1
+| | phy_cores=${1} | framesize=IMIX_v4_1
| tc05-78B-2t2c-ethip6-ip6base-copwhtlistbase-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv6 routing and whitelist filters config with \
-| | ... | 2 phy cores, 1 receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 78B frames using single trial\
-| | ... | throughput test.
-| | ...
| | [Tags] | 78B | 2C
-| | ...
-| | [Template] | Check RR for ip6base-copwhtlistbase
-| | wt=2 | rxq=1 | framesize=${78}
+| | phy_cores=${2} | framesize=${78}
| tc06-1518B-2t2c-ethip6-ip6base-copwhtlistbase-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv6 routing and whitelist filters config with \
-| | ... | 2 phy cores, 1 receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 1518B frames using single trial\
-| | ... | throughput test.
-| | ...
| | [Tags] | 1518B | 2C
-| | ...
-| | [Template] | Check RR for ip6base-copwhtlistbase
-| | wt=2 | rxq=1 | framesize=${1518}
+| | phy_cores=${2} | framesize=${1518}
| tc07-9000B-2t2c-ethip6-ip6base-copwhtlistbase-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv6 routing and whitelist filters config with \
-| | ... | 2 phy cores, 1 receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 9000B frames using single trial\
-| | ... | throughput test.
-| | ...
| | [Tags] | 9000B | 2C
-| | ...
-| | [Template] | Check RR for ip6base-copwhtlistbase
-| | wt=2 | rxq=1 | framesize=${9000}
+| | phy_cores=${2} | framesize=${9000}
| tc08-IMIX-2t2c-ethip6-ip6base-copwhtlistbase-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv6 routing and whitelist filters config with \
-| | ... | 2 phy cores, 1 receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for IMIX_v4_1 frames using single trial\
-| | ... | throughput test.
-| | ... | IMIX_v4_1 = (28x64B; 16x570B; 4x1518B)
-| | ...
| | [Tags] | IMIX | 2C
-| | ...
-| | [Template] | Check RR for ip6base-copwhtlistbase
-| | wt=2 | rxq=1 | framesize=IMIX_v4_1
+| | phy_cores=${2} | framesize=IMIX_v4_1
| tc09-78B-4t4c-ethip6-ip6base-copwhtlistbase-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv6 routing and whitelist filters config with \
-| | ... | 4 phy cores, 2 receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 78B frames using single trial\
-| | ... | throughput test.
-| | ...
| | [Tags] | 78B | 4C
-| | ...
-| | [Template] | Check RR for ip6base-copwhtlistbase
-| | wt=4 | rxq=2 | framesize=${78}
+| | phy_cores=${4} | framesize=${78}
| tc10-1518B-4t4c-ethip6-ip6base-copwhtlistbase-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv6 routing and whitelist filters config with \
-| | ... | 4 phy cores, 2 receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 1518B frames using single trial\
-| | ... | throughput test.
-| | ...
| | [Tags] | 1518B | 4C
-| | ...
-| | [Template] | Check RR for ip6base-copwhtlistbase
-| | wt=4 | rxq=2 | framesize=${1518}
+| | phy_cores=${4} | framesize=${1518}
| tc11-9000B-4t4c-ethip6-ip6base-copwhtlistbase-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv6 routing and whitelist filters config with \
-| | ... | 4 phy cores, 2 receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 9000B frames using single trial\
-| | ... | throughput test.
-| | ...
| | [Tags] | 9000B | 4C
-| | ...
-| | [Template] | Check RR for ip6base-copwhtlistbase
-| | wt=4 | rxq=2 | framesize=${9000}
+| | phy_cores=${4} | framesize=${9000}
| tc12-IMIX-4t4c-ethip6-ip6base-copwhtlistbase-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv6 routing and whitelist filters config with \
-| | ... | 4 phy cores, 2 receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for IMIX_v4_1 frames using single trial\
-| | ... | throughput test.
-| | ... | IMIX_v4_1 = (28x64B; 16x570B; 4x1518B)
-| | ...
| | [Tags] | IMIX | 4C
-| | ...
-| | [Template] | Check RR for ip6base-copwhtlistbase
-| | wt=4 | rxq=2 | framesize=IMIX_v4_1
+| | phy_cores=${4} | framesize=IMIX_v4_1
diff --git a/tests/vpp/perf/ip6/10ge2p1x520-ethip6-ip6base-copwhtlistbase-ndrpdrdisc.robot b/tests/vpp/perf/ip6/10ge2p1x520-ethip6-ip6base-copwhtlistbase-ndrpdrdisc.robot
index e11df36848..b2d3f7134a 100644
--- a/tests/vpp/perf/ip6/10ge2p1x520-ethip6-ip6base-copwhtlistbase-ndrpdrdisc.robot
+++ b/tests/vpp/perf/ip6/10ge2p1x520-ethip6-ip6base-copwhtlistbase-ndrpdrdisc.robot
@@ -70,7 +70,7 @@
| | ${binary_min}= | Set Variable | ${min_rate}
| | ${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
+| | Given Add worker threads and rxqueues to all DUTs | 1
| | And Add PCI devices to all DUTs
| | And Add no multi seg to all DUTs
| | And Apply startup configuration on all VPP DUTs
@@ -100,7 +100,7 @@
| | ${binary_min}= | Set Variable | ${min_rate}
| | ${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
+| | Given Add worker threads and rxqueues to all DUTs | 1
| | And Add PCI devices to all DUTs
| | And Add no multi seg to all DUTs
| | And Apply startup configuration on all VPP DUTs
@@ -131,7 +131,7 @@
| | ${binary_min}= | Set Variable | ${min_rate}
| | ${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
+| | Given Add worker threads and rxqueues to all DUTs | 1
| | And Add PCI devices to all DUTs
| | And Add no multi seg to all DUTs
| | And Apply startup configuration on all VPP DUTs
@@ -161,7 +161,7 @@
| | ${binary_min}= | Set Variable | ${min_rate}
| | ${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
+| | Given Add worker threads and rxqueues to all DUTs | 1
| | And Add PCI devices to all DUTs
| | And Add no multi seg to all DUTs
| | And Apply startup configuration on all VPP DUTs
@@ -192,7 +192,7 @@
| | ${binary_min}= | Set Variable | ${min_rate}
| | ${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
+| | Given Add worker threads and rxqueues to all DUTs | 1
| | And Add PCI devices to all DUTs
| | And Apply startup configuration on all VPP DUTs
| | When Initialize IPv6 forwarding in 3-node circular topology
@@ -221,7 +221,7 @@
| | ${binary_min}= | Set Variable | ${min_rate}
| | ${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
+| | Given Add worker threads and rxqueues to all DUTs | 1
| | And Add PCI devices to all DUTs
| | And Apply startup configuration on all VPP DUTs
| | When Initialize IPv6 forwarding in 3-node circular topology
@@ -251,7 +251,7 @@
| | ${binary_min}= | Set Variable | ${min_rate}
| | ${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
+| | Given Add worker threads and rxqueues to all DUTs | 2
| | And Add PCI devices to all DUTs
| | And Add no multi seg to all DUTs
| | And Apply startup configuration on all VPP DUTs
@@ -281,7 +281,7 @@
| | ${binary_min}= | Set Variable | ${min_rate}
| | ${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
+| | Given Add worker threads and rxqueues to all DUTs | 2
| | And Add PCI devices to all DUTs
| | And Add no multi seg to all DUTs
| | And Apply startup configuration on all VPP DUTs
@@ -312,7 +312,7 @@
| | ${binary_min}= | Set Variable | ${min_rate}
| | ${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
+| | Given Add worker threads and rxqueues to all DUTs | 2
| | And Add PCI devices to all DUTs
| | And Add no multi seg to all DUTs
| | And Apply startup configuration on all VPP DUTs
@@ -342,7 +342,7 @@
| | ${binary_min}= | Set Variable | ${min_rate}
| | ${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
+| | Given Add worker threads and rxqueues to all DUTs | 2
| | And Add PCI devices to all DUTs
| | And Add no multi seg to all DUTs
| | And Apply startup configuration on all VPP DUTs
@@ -373,7 +373,7 @@
| | ${binary_min}= | Set Variable | ${min_rate}
| | ${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
+| | Given Add worker threads and rxqueues to all DUTs | 2
| | And Add PCI devices to all DUTs
| | And Apply startup configuration on all VPP DUTs
| | When Initialize IPv6 forwarding in 3-node circular topology
@@ -402,7 +402,7 @@
| | ${binary_min}= | Set Variable | ${min_rate}
| | ${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
+| | Given Add worker threads and rxqueues to all DUTs | 2
| | And Add PCI devices to all DUTs
| | And Apply startup configuration on all VPP DUTs
| | When Initialize IPv6 forwarding in 3-node circular topology
@@ -432,7 +432,7 @@
| | ${binary_min}= | Set Variable | ${min_rate}
| | ${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
+| | Given Add worker threads and rxqueues to all DUTs | 4
| | And Add PCI devices to all DUTs
| | And Add no multi seg to all DUTs
| | And Apply startup configuration on all VPP DUTs
@@ -462,7 +462,7 @@
| | ${binary_min}= | Set Variable | ${min_rate}
| | ${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
+| | Given Add worker threads and rxqueues to all DUTs | 4
| | And Add PCI devices to all DUTs
| | And Add no multi seg to all DUTs
| | And Apply startup configuration on all VPP DUTs
@@ -493,7 +493,7 @@
| | ${binary_min}= | Set Variable | ${min_rate}
| | ${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
+| | Given Add worker threads and rxqueues to all DUTs | 4
| | And Add PCI devices to all DUTs
| | And Add no multi seg to all DUTs
| | And Apply startup configuration on all VPP DUTs
@@ -523,7 +523,7 @@
| | ${binary_min}= | Set Variable | ${min_rate}
| | ${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
+| | Given Add worker threads and rxqueues to all DUTs | 4
| | And Add PCI devices to all DUTs
| | And Add no multi seg to all DUTs
| | And Apply startup configuration on all VPP DUTs
@@ -554,7 +554,7 @@
| | ${binary_min}= | Set Variable | ${min_rate}
| | ${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
+| | Given Add worker threads and rxqueues to all DUTs | 4
| | And Add PCI devices to all DUTs
| | And Apply startup configuration on all VPP DUTs
| | When Initialize IPv6 forwarding in 3-node circular topology
@@ -583,7 +583,7 @@
| | ${binary_min}= | Set Variable | ${min_rate}
| | ${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
+| | Given Add worker threads and rxqueues to all DUTs | 4
| | And Add PCI devices to all DUTs
| | And Apply startup configuration on all VPP DUTs
| | When Initialize IPv6 forwarding in 3-node circular topology
diff --git a/tests/vpp/perf/ip6/10ge2p1x520-ethip6-ip6base-iacldstbase-mrr.robot b/tests/vpp/perf/ip6/10ge2p1x520-ethip6-ip6base-iacldstbase-mrr.robot
index 7e8bfa1db5..2e27749802 100644
--- a/tests/vpp/perf/ip6/10ge2p1x520-ethip6-ip6base-iacldstbase-mrr.robot
+++ b/tests/vpp/perf/ip6/10ge2p1x520-ethip6-ip6base-iacldstbase-mrr.robot
@@ -25,6 +25,8 @@
| ...
| Test Teardown | Tear down performance mrr test
| ...
+| Test Template | Local template
+| ...
| Documentation | *Raw results IPv6 iAcl whitelist test cases*
| ...
| ... | *[Top] Network Topologies:* TG-DUT1-DUT2-TG 3-node circular topology
@@ -50,21 +52,26 @@
| ${traffic_profile} | trex-sl-3n-ethip6-ip6src253
*** Keywords ***
-| Check RR for ip6base-iacldstbase
+| Local template
| | [Documentation]
-| | ... | [Cfg] DUT runs IPv6 routing and whitelist filters config with ${wt} \
-| | ... | thread(s), ${wt} phy core(s), ${rxq} receive queue(s) per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for ${framesize} frames using single\
+| | ... | [Cfg] DUT runs IPv6 routing and whitelist filters config with
+| | ... | ${phy_cores} phy core(s).
+| | ... | [Ver] Measure MaxReceivedRate for ${framesize}B frames using single\
| | ... | trial throughput test.
| | ...
-| | [Arguments] | ${framesize} | ${wt} | ${rxq}
+| | ... | *Arguments:*
+| | ... | - framesize - Framesize in Bytes in integer or string (IMIX_v4_1).
+| | ... | Type: integer, string
+| | ... | - phy_cores - Number of physical cores. Type: integer
+| | ... | - rxq - Number of RX queues, default value: ${None}. Type: integer
+| | ...
+| | [Arguments] | ${phy_cores} | ${framesize} | ${rxq}=${None}
| | ...
-| | # Test Variables required for test teardown
| | Set Test Variable | ${framesize}
| | ${get_framesize}= | Get Frame Size | ${framesize}
| | ${max_rate}= | Calculate pps | ${s_limit} | ${get_framesize}
| | ...
-| | Given Add '${wt}' worker threads and '${rxq}' rxqueues in 3-node single-link circular topology
+| | Given Add worker threads and rxqueues to all DUTs | ${phy_cores} | ${rxq}
| | And Add PCI devices to all DUTs
| | And Run Keyword If | ${get_framesize} < ${1522}
| | ... | Add no multi seg to all DUTs
@@ -76,148 +83,49 @@
*** Test Cases ***
| tc01-78B-1t1c-ethip6-ip6base-iacldstbase-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv6 routing and whitelist filters config with \
-| | ... | 1 phy core, 1 receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 78B frames using single trial\
-| | ... | throughput test.
-| | ...
| | [Tags] | 78B | 1C
-| | ...
-| | [Template] | Check RR for ip6base-iacldstbase
-| | wt=1 | rxq=1 | framesize=${78}
+| | phy_cores=${1} | framesize=${78}
| tc02-1518B-1t1c-ethip6-ip6base-iacldstbase-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv6 routing and whitelist filters config with \
-| | ... | 1 phy core, 1 receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 1518B frames using single trial\
-| | ... | throughput test.
-| | ...
| | [Tags] | 1518B | 1C
-| | ...
-| | [Template] | Check RR for ip6base-iacldstbase
-| | wt=1 | rxq=1 | framesize=${1518}
+| | phy_cores=${1} | framesize=${1518}
| tc03-9000B-1t1c-ethip6-ip6base-iacldstbase-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv6 routing and whitelist filters config with \
-| | ... | 1 phy core, 1 receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 9000B frames using single trial\
-| | ... | throughput test.
-| | ...
| | [Tags] | 9000B | 1C
-| | ...
-| | [Template] | Check RR for ip6base-iacldstbase
-| | wt=1 | rxq=1 | framesize=${9000}
+| | phy_cores=${1} | framesize=${9000}
| tc04-IMIX-1t1c-ethip6-ip6base-iacldstbase-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv6 routing and whitelist filters config with \
-| | ... | 1 phy core, 1 receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for IMIX_v4_1 frames using single trial\
-| | ... | throughput test.
-| | ... | IMIX_v4_1 = (28x64B; 16x570B; 4x1518B)
-| | ...
| | [Tags] | IMIX | 1C
-| | ...
-| | [Template] | Check RR for ip6base-iacldstbase
-| | wt=1 | rxq=1 | framesize=IMIX_v4_1
+| | phy_cores=${1} | framesize=IMIX_v4_1
| tc05-78B-2t2c-ethip6-ip6base-iacldstbase-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv6 routing and whitelist filters config with \
-| | ... | 2 phy cores, 1 receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 78B frames using single trial\
-| | ... | throughput test.
-| | ...
| | [Tags] | 78B | 2C
-| | ...
-| | [Template] | Check RR for ip6base-iacldstbase
-| | wt=2 | rxq=1 | framesize=${78}
+| | phy_cores=${2} | framesize=${78}
| tc06-1518B-2t2c-ethip6-ip6base-iacldstbase-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv6 routing and whitelist filters config with \
-| | ... | 2 phy cores, 1 receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 1518B frames using single trial\
-| | ... | throughput test.
-| | ...
| | [Tags] | 1518B | 2C
-| | ...
-| | [Template] | Check RR for ip6base-iacldstbase
-| | wt=2 | rxq=1 | framesize=${1518}
+| | phy_cores=${2} | framesize=${1518}
| tc07-9000B-2t2c-ethip6-ip6base-iacldstbase-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv6 routing and whitelist filters config with \
-| | ... | 2 phy cores, 1 receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 9000B frames using single trial\
-| | ... | throughput test.
-| | ...
| | [Tags] | 9000B | 2C
-| | ...
-| | [Template] | Check RR for ip6base-iacldstbase
-| | wt=2 | rxq=1 | framesize=${9000}
+| | phy_cores=${2} | framesize=${9000}
| tc08-IMIX-2t2c-ethip6-ip6base-iacldstbase-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv6 routing and whitelist filters config with \
-| | ... | 2 phy cores, 1 receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for IMIX_v4_1 frames using single trial\
-| | ... | throughput test.
-| | ... | IMIX_v4_1 = (28x64B; 16x570B; 4x1518B)
-| | ...
| | [Tags] | IMIX | 2C
-| | ...
-| | [Template] | Check RR for ip6base-iacldstbase
-| | wt=2 | rxq=1 | framesize=IMIX_v4_1
+| | phy_cores=${2} | framesize=IMIX_v4_1
| tc09-78B-4t4c-ethip6-ip6base-iacldstbase-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv6 routing and whitelist filters config with \
-| | ... | 4 phy cores, 2 receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 78B frames using single trial\
-| | ... | throughput test.
-| | ...
| | [Tags] | 78B | 4C
-| | ...
-| | [Template] | Check RR for ip6base-iacldstbase
-| | wt=4 | rxq=2 | framesize=${78}
+| | phy_cores=${4} | framesize=${78}
| tc10-1518B-4t4c-ethip6-ip6base-iacldstbase-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv6 routing and whitelist filters config with \
-| | ... | 4 phy cores, 2 receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 1518B frames using single trial\
-| | ... | throughput test.
-| | ...
| | [Tags] | 1518B | 4C
-| | ...
-| | [Template] | Check RR for ip6base-iacldstbase
-| | wt=4 | rxq=2 | framesize=${1518}
+| | phy_cores=${4} | framesize=${1518}
| tc11-9000B-4t4c-ethip6-ip6base-iacldstbase-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv6 routing and whitelist filters config with \
-| | ... | 4 phy cores, 2 receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 9000B frames using single trial\
-| | ... | throughput test.
-| | ...
| | [Tags] | 9000B | 4C
-| | ...
-| | [Template] | Check RR for ip6base-iacldstbase
-| | wt=4 | rxq=2 | framesize=${9000}
+| | phy_cores=${4} | framesize=${9000}
| tc12-IMIX-4t4c-ethip6-ip6base-iacldstbase-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv6 routing and whitelist filters config with \
-| | ... | 4 phy cores, 2 receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for IMIX_v4_1 frames using single trial\
-| | ... | throughput test.
-| | ... | IMIX_v4_1 = (28x64B; 16x570B; 4x1518B)
-| | ...
| | [Tags] | IMIX | 4C
-| | ...
-| | [Template] | Check RR for ip6base-iacldstbase
-| | wt=4 | rxq=2 | framesize=IMIX_v4_1
+| | phy_cores=${4} | framesize=IMIX_v4_1
diff --git a/tests/vpp/perf/ip6/10ge2p1x520-ethip6-ip6base-iacldstbase-ndrpdrdisc.robot b/tests/vpp/perf/ip6/10ge2p1x520-ethip6-ip6base-iacldstbase-ndrpdrdisc.robot
index 49e8240e4f..15581383e7 100644
--- a/tests/vpp/perf/ip6/10ge2p1x520-ethip6-ip6base-iacldstbase-ndrpdrdisc.robot
+++ b/tests/vpp/perf/ip6/10ge2p1x520-ethip6-ip6base-iacldstbase-ndrpdrdisc.robot
@@ -68,7 +68,7 @@
| | ${binary_min}= | Set Variable | ${min_rate}
| | ${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
+| | Given Add worker threads and rxqueues to all DUTs | 1
| | And Add PCI devices to all DUTs
| | And Add no multi seg to all DUTs
| | And Apply startup configuration on all VPP DUTs
@@ -91,7 +91,7 @@
| | ${binary_min}= | Set Variable | ${min_rate}
| | ${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
+| | Given Add worker threads and rxqueues to all DUTs | 1
| | And Add PCI devices to all DUTs
| | And Add no multi seg to all DUTs
| | And Apply startup configuration on all VPP DUTs
@@ -115,7 +115,7 @@
| | ${binary_min}= | Set Variable | ${min_rate}
| | ${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
+| | Given Add worker threads and rxqueues to all DUTs | 1
| | And Add PCI devices to all DUTs
| | And Add no multi seg to all DUTs
| | And Apply startup configuration on all VPP DUTs
@@ -138,7 +138,7 @@
| | ${binary_min}= | Set Variable | ${min_rate}
| | ${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
+| | Given Add worker threads and rxqueues to all DUTs | 1
| | And Add PCI devices to all DUTs
| | And Add no multi seg to all DUTs
| | And Apply startup configuration on all VPP DUTs
@@ -162,7 +162,7 @@
| | ${binary_min}= | Set Variable | ${min_rate}
| | ${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
+| | Given Add worker threads and rxqueues to all DUTs | 1
| | And Add PCI devices to all DUTs
| | And Apply startup configuration on all VPP DUTs
| | And Initialize IPv6 forwarding in 3-node circular topology
@@ -184,7 +184,7 @@
| | ${binary_min}= | Set Variable | ${min_rate}
| | ${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
+| | Given Add worker threads and rxqueues to all DUTs | 1
| | And Add PCI devices to all DUTs
| | And Apply startup configuration on all VPP DUTs
| | And Initialize IPv6 forwarding in 3-node circular topology
@@ -207,7 +207,7 @@
| | ${binary_min}= | Set Variable | ${min_rate}
| | ${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
+| | Given Add worker threads and rxqueues to all DUTs | 2
| | And Add PCI devices to all DUTs
| | And Add no multi seg to all DUTs
| | And Apply startup configuration on all VPP DUTs
@@ -230,7 +230,7 @@
| | ${binary_min}= | Set Variable | ${min_rate}
| | ${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
+| | Given Add worker threads and rxqueues to all DUTs | 2
| | And Add PCI devices to all DUTs
| | And Add no multi seg to all DUTs
| | And Apply startup configuration on all VPP DUTs
@@ -254,7 +254,7 @@
| | ${binary_min}= | Set Variable | ${min_rate}
| | ${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
+| | Given Add worker threads and rxqueues to all DUTs | 2
| | And Add PCI devices to all DUTs
| | And Add no multi seg to all DUTs
| | And Apply startup configuration on all VPP DUTs
@@ -277,7 +277,7 @@
| | ${binary_min}= | Set Variable | ${min_rate}
| | ${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
+| | Given Add worker threads and rxqueues to all DUTs | 2
| | And Add PCI devices to all DUTs
| | And Add no multi seg to all DUTs
| | And Apply startup configuration on all VPP DUTs
@@ -301,7 +301,7 @@
| | ${binary_min}= | Set Variable | ${min_rate}
| | ${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
+| | Given Add worker threads and rxqueues to all DUTs | 2
| | And Add PCI devices to all DUTs
| | And Apply startup configuration on all VPP DUTs
| | And Initialize IPv6 forwarding in 3-node circular topology
@@ -323,7 +323,7 @@
| | ${binary_min}= | Set Variable | ${min_rate}
| | ${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
+| | Given Add worker threads and rxqueues to all DUTs | 2
| | And Add PCI devices to all DUTs
| | And Apply startup configuration on all VPP DUTs
| | And Initialize IPv6 forwarding in 3-node circular topology
@@ -346,7 +346,7 @@
| | ${binary_min}= | Set Variable | ${min_rate}
| | ${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
+| | Given Add worker threads and rxqueues to all DUTs | 4
| | And Add PCI devices to all DUTs
| | And Add no multi seg to all DUTs
| | And Apply startup configuration on all VPP DUTs
@@ -369,7 +369,7 @@
| | ${binary_min}= | Set Variable | ${min_rate}
| | ${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
+| | Given Add worker threads and rxqueues to all DUTs | 4
| | And Add PCI devices to all DUTs
| | And Add no multi seg to all DUTs
| | And Apply startup configuration on all VPP DUTs
@@ -393,7 +393,7 @@
| | ${binary_min}= | Set Variable | ${min_rate}
| | ${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
+| | Given Add worker threads and rxqueues to all DUTs | 4
| | And Add PCI devices to all DUTs
| | And Add no multi seg to all DUTs
| | And Apply startup configuration on all VPP DUTs
@@ -416,7 +416,7 @@
| | ${binary_min}= | Set Variable | ${min_rate}
| | ${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
+| | Given Add worker threads and rxqueues to all DUTs | 4
| | And Add PCI devices to all DUTs
| | And Add no multi seg to all DUTs
| | And Apply startup configuration on all VPP DUTs
@@ -440,7 +440,7 @@
| | ${binary_min}= | Set Variable | ${min_rate}
| | ${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
+| | Given Add worker threads and rxqueues to all DUTs | 4
| | And Add PCI devices to all DUTs
| | And Apply startup configuration on all VPP DUTs
| | And Initialize IPv6 forwarding in 3-node circular topology
@@ -462,7 +462,7 @@
| | ${binary_min}= | Set Variable | ${min_rate}
| | ${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
+| | Given Add worker threads and rxqueues to all DUTs | 4
| | And Add PCI devices to all DUTs
| | And Apply startup configuration on all VPP DUTs
| | And Initialize IPv6 forwarding in 3-node circular topology
diff --git a/tests/vpp/perf/ip6/10ge2p1x520-ethip6-ip6base-mrr.robot b/tests/vpp/perf/ip6/10ge2p1x520-ethip6-ip6base-mrr.robot
index 5e5e98f6e0..dd43716841 100644
--- a/tests/vpp/perf/ip6/10ge2p1x520-ethip6-ip6base-mrr.robot
+++ b/tests/vpp/perf/ip6/10ge2p1x520-ethip6-ip6base-mrr.robot
@@ -24,6 +24,8 @@
| Test Setup | Set up performance test
| Test Teardown | Tear down performance mrr test
| ...
+| Test Template | Local template
+| ...
| Documentation | *Raw results IPv6 routing test cases*
| ...
| ... | *[Top] Network Topologies:* TG-DUT1-DUT2-TG 3-node circular topology
@@ -48,21 +50,26 @@
| ${traffic_profile} | trex-sl-3n-ethip6-ip6src253
*** Keywords ***
-| Check RR for ethip6-ip6base
+| Local template
| | [Documentation]
-| | ... | [Cfg] DUT runs IPv6 routing config with ${wt} thread(s), ${wt}\
-| | ... | phy core(s), ${rxq} receive queue(s) per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for ${framesize} frames using single\
+| | ... | [Cfg] DUT runs IPv6 routing config.
+| | ... | Each DUT uses ${phy_cores} physical core(s) for worker threads.
+| | ... | [Ver] Measure MaxReceivedRate for ${framesize}B frames using single\
| | ... | trial throughput test.
| | ...
-| | [Arguments] | ${framesize} | ${wt} | ${rxq}
+| | ... | *Arguments:*
+| | ... | - framesize - Framesize in Bytes in integer or string (IMIX_v4_1).
+| | ... | Type: integer, string
+| | ... | - phy_cores - Number of physical cores. Type: integer
+| | ... | - rxq - Number of RX queues, default value: ${None}. Type: integer
+| | ...
+| | [Arguments] | ${phy_cores} | ${framesize} | ${rxq}=${None}
| | ...
-| | # Test Variables required for test teardown
| | Set Test Variable | ${framesize}
| | ${get_framesize}= | Get Frame Size | ${framesize}
| | ${max_rate}= | Calculate pps | ${s_limit} | ${framesize}
| | ...
-| | Given Add '${wt}' worker threads and '${rxq}' rxqueues in 3-node single-link circular topology
+| | Given Add worker threads and rxqueues to all DUTs | ${phy_cores} | ${rxq}
| | And Add PCI devices to all DUTs
| | And Run Keyword If | ${get_framesize} < ${1522}
| | ... | Add no multi seg to all DUTs
@@ -73,148 +80,49 @@
*** Test Cases ***
| tc01-78B-1t1c-ethip6-ip6base-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv6 routing config with 1 phy core,\
-| | ... | 1 receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 64B frames using single trial\
-| | ... | throughput test.
-| | ...
| | [Tags] | 78B | 1C
-| | ...
-| | [Template] | Check RR for ethip6-ip6base
-| | framesize=${78} | wt=1 | rxq=1
+| | framesize=${78} | phy_cores=${1}
| tc02-1518B-1t1c-ethip6-ip6base-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv6 routing config with 1 phy core,\
-| | ... | 1 receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 1518B frames using single\
-| | ... | trial throughput test.
-| | ...
| | [Tags] | 1518B | 1C
-| | ...
-| | [Template] | Check RR for ethip6-ip6base
-| | framesize=${1518} | wt=1 | rxq=1
+| | framesize=${1518} | phy_cores=${1}
| tc03-9000B-1t1c-ethip6-ip6base-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv6 routing config with 1 phy core,\
-| | ... | 1 receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 9000B frames using single\
-| | ... | trial throughput test.
-| | ...
| | [Tags] | 9000B | 1C
-| | ...
-| | [Template] | Check RR for ethip6-ip6base
-| | framesize=${9000} | wt=1 | rxq=1
+| | framesize=${9000} | phy_cores=${1}
| tc04-IMIX-1t1c-ethip6-ip6base-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv6 routing config with \
-| | ... | 1 phy core, 1 receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for IMIX_v4_1 frames using single trial\
-| | ... | throughput test.
-| | ... | IMIX_v4_1 = (28x64B; 16x570B; 4x1518B)
-| | ...
| | [Tags] | IMIX | 1C
-| | ...
-| | [Template] | Check RR for ethip6-ip6base
-| | wt=1 | rxq=1 | framesize=IMIX_v4_1
+| | phy_cores=${1} | framesize=IMIX_v4_1
| tc05-78B-2t2c-ethip6-ip6base-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv6 routing config with 2 phy cores,\
-| | ... | 1 receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 64B frames using single trial\
-| | ... | throughput test.
-| | ...
| | [Tags] | 78B | 2C
-| | ...
-| | [Template] | Check RR for ethip6-ip6base
-| | framesize=${78} | wt=2 | rxq=1
+| | framesize=${78} | phy_cores=${2}
| tc06-1518B-2t2c-ethip6-ip6base-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv6 routing config with 2 phy cores,\
-| | ... | 1 receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 1518B frames using single\
-| | ... | trial throughput test.
-| | ...
| | [Tags] | 1518B | 2C
-| | ...
-| | [Template] | Check RR for ethip6-ip6base
-| | framesize=${1518} | wt=2 | rxq=1
+| | framesize=${1518} | phy_cores=${2}
| tc07-9000B-2t2c-ethip6-ip6base-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv6 routing config with 2 phy cores,\
-| | ... | 1 receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 9000B frames using single\
-| | ... | trial throughput test.
-| | ...
| | [Tags] | 9000B | 2C
-| | ...
-| | [Template] | Check RR for ethip6-ip6base
-| | framesize=${9000} | wt=2 | rxq=1
+| | framesize=${9000} | phy_cores=${2}
| tc08-IMIX-2t2c-ethip6-ip6base-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv6 routing config with \
-| | ... | 2 phy cores, 1 receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for IMIX_v4_1 frames using single trial\
-| | ... | throughput test.
-| | ... | IMIX_v4_1 = (28x64B; 16x570B; 4x1518B)
-| | ...
| | [Tags] | IMIX | 2C
-| | ...
-| | [Template] | Check RR for ethip6-ip6base
-| | wt=2 | rxq=1 | framesize=IMIX_v4_1
+| | phy_cores=${2} | framesize=IMIX_v4_1
| tc09-78B-4t4c-ethip6-ip6base-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv6 routing config with 4 phy cores,\
-| | ... | 2 receive queues per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 64B frames using single trial\
-| | ... | throughput test.
-| | ...
| | [Tags] | 78B | 4C
-| | ...
-| | [Template] | Check RR for ethip6-ip6base
-| | framesize=${78} | wt=4 | rxq=2
+| | framesize=${78} | phy_cores=${4}
| tc10-1518B-4t4c-ethip6-ip6base-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv6 routing config with 4 phy cores,\
-| | ... | 2 receive queues per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 1518B frames using single\
-| | ... | trial throughput test.
-| | ...
| | [Tags] | 1518B | 4C
-| | ...
-| | [Template] | Check RR for ethip6-ip6base
-| | framesize=${1518} | wt=4 | rxq=2
+| | framesize=${1518} | phy_cores=${4}
| tc11-9000B-4t4c-ethip6-ip6base-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv6 routing config with 4 phy cores,\
-| | ... | 2 receive queues per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 9000B frames using single\
-| | ... | trial throughput test.
-| | ...
| | [Tags] | 9000B | 4C
-| | ...
-| | [Template] | Check RR for ethip6-ip6base
-| | framesize=${9000} | wt=4 | rxq=2
+| | framesize=${9000} | phy_cores=${4}
| tc12-IMIX-4t4c-ethip6-ip6base-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv6 routing config with \
-| | ... | 4 phy cores, 2 receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for IMIX_v4_1 frames using single trial\
-| | ... | throughput test.
-| | ... | IMIX_v4_1 = (28x64B; 16x570B; 4x1518B)
-| | ...
| | [Tags] | IMIX | 4C
-| | ...
-| | [Template] | Check RR for ethip6-ip6base
-| | wt=4 | rxq=2 | framesize=IMIX_v4_1
+| | phy_cores=${4} | framesize=IMIX_v4_1
diff --git a/tests/vpp/perf/ip6/10ge2p1x520-ethip6-ip6base-ndrpdrdisc.robot b/tests/vpp/perf/ip6/10ge2p1x520-ethip6-ip6base-ndrpdrdisc.robot
index faadd24f22..0222b99df7 100644
--- a/tests/vpp/perf/ip6/10ge2p1x520-ethip6-ip6base-ndrpdrdisc.robot
+++ b/tests/vpp/perf/ip6/10ge2p1x520-ethip6-ip6base-ndrpdrdisc.robot
@@ -66,7 +66,7 @@
| | ${binary_min}= | Set Variable | ${min_rate}
| | ${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
+| | Given Add worker threads and rxqueues to all DUTs | 1
| | And Add PCI devices to all DUTs
| | And Add no multi seg to all DUTs
| | And Apply startup configuration on all VPP DUTs
@@ -87,7 +87,7 @@
| | ${binary_min}= | Set Variable | ${min_rate}
| | ${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
+| | Given Add worker threads and rxqueues to all DUTs | 1
| | And Add PCI devices to all DUTs
| | And Add no multi seg to all DUTs
| | And Apply startup configuration on all VPP DUTs
@@ -109,7 +109,7 @@
| | ${binary_min}= | Set Variable | ${min_rate}
| | ${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
+| | Given Add worker threads and rxqueues to all DUTs | 1
| | And Add PCI devices to all DUTs
| | And Add no multi seg to all DUTs
| | And Apply startup configuration on all VPP DUTs
@@ -130,7 +130,7 @@
| | ${binary_min}= | Set Variable | ${min_rate}
| | ${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
+| | Given Add worker threads and rxqueues to all DUTs | 1
| | And Add PCI devices to all DUTs
| | And Add no multi seg to all DUTs
| | And Apply startup configuration on all VPP DUTs
@@ -152,7 +152,7 @@
| | ${binary_min}= | Set Variable | ${min_rate}
| | ${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
+| | Given Add worker threads and rxqueues to all DUTs | 1
| | And Add PCI devices to all DUTs
| | And Apply startup configuration on all VPP DUTs
| | And Initialize IPv6 forwarding in 3-node circular topology
@@ -172,7 +172,7 @@
| | ${binary_min}= | Set Variable | ${min_rate}
| | ${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
+| | Given Add worker threads and rxqueues to all DUTs | 1
| | And Add PCI devices to all DUTs
| | And Apply startup configuration on all VPP DUTs
| | And Initialize IPv6 forwarding in 3-node circular topology
@@ -193,7 +193,7 @@
| | ${binary_min}= | Set Variable | ${min_rate}
| | ${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
+| | Given Add worker threads and rxqueues to all DUTs | 2
| | And Add PCI devices to all DUTs
| | And Add no multi seg to all DUTs
| | And Apply startup configuration on all VPP DUTs
@@ -214,7 +214,7 @@
| | ${binary_min}= | Set Variable | ${min_rate}
| | ${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
+| | Given Add worker threads and rxqueues to all DUTs | 2
| | And Add PCI devices to all DUTs
| | And Add no multi seg to all DUTs
| | And Apply startup configuration on all VPP DUTs
@@ -236,7 +236,7 @@
| | ${binary_min}= | Set Variable | ${min_rate}
| | ${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
+| | Given Add worker threads and rxqueues to all DUTs | 2
| | And Add PCI devices to all DUTs
| | And Add no multi seg to all DUTs
| | And Apply startup configuration on all VPP DUTs
@@ -257,7 +257,7 @@
| | ${binary_min}= | Set Variable | ${min_rate}
| | ${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
+| | Given Add worker threads and rxqueues to all DUTs | 2
| | And Add PCI devices to all DUTs
| | And Add no multi seg to all DUTs
| | And Apply startup configuration on all VPP DUTs
@@ -279,7 +279,7 @@
| | ${binary_min}= | Set Variable | ${min_rate}
| | ${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
+| | Given Add worker threads and rxqueues to all DUTs | 2
| | And Add PCI devices to all DUTs
| | And Apply startup configuration on all VPP DUTs
| | And Initialize IPv6 forwarding in 3-node circular topology
@@ -299,7 +299,7 @@
| | ${binary_min}= | Set Variable | ${min_rate}
| | ${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
+| | Given Add worker threads and rxqueues to all DUTs | 2
| | And Add PCI devices to all DUTs
| | And Apply startup configuration on all VPP DUTs
| | And Initialize IPv6 forwarding in 3-node circular topology
@@ -320,7 +320,7 @@
| | ${binary_min}= | Set Variable | ${min_rate}
| | ${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
+| | Given Add worker threads and rxqueues to all DUTs | 4
| | And Add PCI devices to all DUTs
| | And Add no multi seg to all DUTs
| | And Apply startup configuration on all VPP DUTs
@@ -341,7 +341,7 @@
| | ${binary_min}= | Set Variable | ${min_rate}
| | ${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
+| | Given Add worker threads and rxqueues to all DUTs | 4
| | And Add PCI devices to all DUTs
| | And Add no multi seg to all DUTs
| | And Apply startup configuration on all VPP DUTs
@@ -363,7 +363,7 @@
| | ${binary_min}= | Set Variable | ${min_rate}
| | ${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
+| | Given Add worker threads and rxqueues to all DUTs | 4
| | And Add PCI devices to all DUTs
| | And Add no multi seg to all DUTs
| | And Apply startup configuration on all VPP DUTs
@@ -384,7 +384,7 @@
| | ${binary_min}= | Set Variable | ${min_rate}
| | ${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
+| | Given Add worker threads and rxqueues to all DUTs | 4
| | And Add PCI devices to all DUTs
| | And Add no multi seg to all DUTs
| | And Apply startup configuration on all VPP DUTs
@@ -406,7 +406,7 @@
| | ${binary_min}= | Set Variable | ${min_rate}
| | ${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
+| | Given Add worker threads and rxqueues to all DUTs | 4
| | And Add PCI devices to all DUTs
| | And Apply startup configuration on all VPP DUTs
| | And Initialize IPv6 forwarding in 3-node circular topology
@@ -426,7 +426,7 @@
| | ${binary_min}= | Set Variable | ${min_rate}
| | ${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
+| | Given Add worker threads and rxqueues to all DUTs | 4
| | And Add PCI devices to all DUTs
| | And Apply startup configuration on all VPP DUTs
| | And Initialize IPv6 forwarding in 3-node circular topology
diff --git a/tests/vpp/perf/ip6/10ge2p1x520-ethip6-ip6scale200k-mrr.robot b/tests/vpp/perf/ip6/10ge2p1x520-ethip6-ip6scale200k-mrr.robot
index 5986b1f440..18f206f49f 100644
--- a/tests/vpp/perf/ip6/10ge2p1x520-ethip6-ip6scale200k-mrr.robot
+++ b/tests/vpp/perf/ip6/10ge2p1x520-ethip6-ip6scale200k-mrr.robot
@@ -25,6 +25,8 @@
| ...
| Test Teardown | Tear down performance mrr test
| ...
+| Test Template | Local template
+| ...
| Documentation | *Raw results IPv6 routing test cases*
| ...
| ... | *[Top] Network Topologies:* TG-DUT1-DUT2-TG 3-node circular topology
@@ -52,21 +54,26 @@
| ${traffic_profile} | trex-sl-3n-ethip6-ip6dst${rts_per_flow}
*** Keywords ***
-| Check RR for ip6base-ip6scale
+| Local template
| | [Documentation]
-| | ... | [Cfg] DUT runs IPv6 routing config with ${wt} \
-| | ... | thread(s), ${wt} phy core(s), ${rxq} receive queue(s) per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for ${framesize} frames using single\
+| | ... | [Cfg] DUT runs IPv6 routing config.
+| | ... | Each DUT uses ${phy_cores} physical core(s) for worker threads.
+| | ... | [Ver] Measure MaxReceivedRate for ${framesize}B frames using single\
| | ... | trial throughput test.
| | ...
-| | [Arguments] | ${framesize} | ${wt} | ${rxq}
+| | ... | *Arguments:*
+| | ... | - framesize - Framesize in Bytes in integer or string (IMIX_v4_1).
+| | ... | Type: integer, string
+| | ... | - phy_cores - Number of physical cores. Type: integer
+| | ... | - rxq - Number of RX queues, default value: ${None}. Type: integer
+| | ...
+| | [Arguments] | ${phy_cores} | ${framesize} | ${rxq}=${None}
| | ...
-| | # Test Variables required for test teardown
| | Set Test Variable | ${framesize}
| | ${get_framesize}= | Get Frame Size | ${framesize}
| | ${max_rate}= | Calculate pps | ${s_limit} | ${get_framesize}
| | ...
-| | Given Add '${wt}' worker threads and '${rxq}' rxqueues in 3-node single-link circular topology
+| | Given Add worker threads and rxqueues to all DUTs | ${phy_cores} | ${rxq}
| | And Add PCI devices to all DUTs
| | And Run Keyword If | ${get_framesize} < ${1522}
| | ... | Add no multi seg to all DUTs
@@ -78,148 +85,49 @@
*** Test Cases ***
| tc01-78B-1t1c-ethip6-ip6base-ip6scale200k-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv6 routing config with \
-| | ... | 1 phy core, 1 receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 78B frames using single trial\
-| | ... | throughput test.
-| | ...
| | [Tags] | 78B | 1C
-| | ...
-| | [Template] | Check RR for ip6base-ip6scale
-| | wt=1 | rxq=1 | framesize=${78}
+| | phy_cores=${1} | framesize=${78}
| tc02-1518B-1t1c-ethip6-ip6base-ip6scale200k-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv6 routing config with \
-| | ... | 1 phy core, 1 receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 1518B frames using single trial\
-| | ... | throughput test.
-| | ...
| | [Tags] | 1518B | 1C
-| | ...
-| | [Template] | Check RR for ip6base-ip6scale
-| | wt=1 | rxq=1 | framesize=${1518}
+| | phy_cores=${1} | framesize=${1518}
| tc03-9000B-1t1c-ethip6-ip6base-ip6scale200k-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv6 routing config with \
-| | ... | 1 phy core, 1 receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 9000B frames using single trial\
-| | ... | throughput test.
-| | ...
| | [Tags] | 9000B | 1C
-| | ...
-| | [Template] | Check RR for ip6base-ip6scale
-| | wt=1 | rxq=1 | framesize=${9000}
+| | phy_cores=${1} | framesize=${9000}
| tc04-IMIX-1t1c-ethip6-ip6base-ip6scale200k-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv6 routing config with \
-| | ... | 1 phy core, 1 receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for IMIX_v4_1 frames using single trial\
-| | ... | throughput test.
-| | ... | IMIX_v4_1 = (28x64B; 16x570B; 4x1518B)
-| | ...
| | [Tags] | IMIX | 1C
-| | ...
-| | [Template] | Check RR for ip6base-ip6scale
-| | wt=1 | rxq=1 | framesize=IMIX_v4_1
+| | phy_cores=${1} | framesize=IMIX_v4_1
| tc05-78B-2t2c-ethip6-ip6base-ip6scale200k-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv6 routing config with \
-| | ... | 2 phy cores, 1 receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 78B frames using single trial\
-| | ... | throughput test.
-| | ...
| | [Tags] | 78B | 2C
-| | ...
-| | [Template] | Check RR for ip6base-ip6scale
-| | wt=2 | rxq=1 | framesize=${78}
+| | phy_cores=${2} | framesize=${78}
| tc06-1518B-2t2c-ethip6-ip6base-ip6scale200k-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv6 routing config with \
-| | ... | 2 phy cores, 1 receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 1518B frames using single trial\
-| | ... | throughput test.
-| | ...
| | [Tags] | 1518B | 2C
-| | ...
-| | [Template] | Check RR for ip6base-ip6scale
-| | wt=2 | rxq=1 | framesize=${1518}
+| | phy_cores=${2} | framesize=${1518}
| tc07-9000B-2t2c-ethip6-ip6base-ip6scale200k-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv6 routing config with \
-| | ... | 2 phy cores, 1 receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 9000B frames using single trial\
-| | ... | throughput test.
-| | ...
| | [Tags] | 9000B | 2C
-| | ...
-| | [Template] | Check RR for ip6base-ip6scale
-| | wt=2 | rxq=1 | framesize=${9000}
+| | phy_cores=${2} | framesize=${9000}
| tc08-IMIX-2t2c-ethip6-ip6base-ip6scale200k-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv6 routing config with \
-| | ... | 2 phy cores, 1 receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for IMIX_v4_1 frames using single trial\
-| | ... | throughput test.
-| | ... | IMIX_v4_1 = (28x64B; 16x570B; 4x1518B)
-| | ...
| | [Tags] | IMIX | 2C
-| | ...
-| | [Template] | Check RR for ip6base-ip6scale
-| | wt=2 | rxq=1 | framesize=IMIX_v4_1
+| | phy_cores=${2} | framesize=IMIX_v4_1
| tc09-78B-4t4c-ethip6-ip6base-ip6scale200k-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv6 routing config with \
-| | ... | 4 phy cores, 2 receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 78B frames using single trial\
-| | ... | throughput test.
-| | ...
| | [Tags] | 78B | 4C
-| | ...
-| | [Template] | Check RR for ip6base-ip6scale
-| | wt=4 | rxq=2 | framesize=${78}
+| | phy_cores=${4} | framesize=${78}
| tc10-1518B-4t4c-ethip6-ip6base-ip6scale200k-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv6 routing config with \
-| | ... | 4 phy cores, 2 receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 1518B frames using single trial\
-| | ... | throughput test.
-| | ...
| | [Tags] | 1518B | 4C
-| | ...
-| | [Template] | Check RR for ip6base-ip6scale
-| | wt=4 | rxq=2 | framesize=${1518}
+| | phy_cores=${4} | framesize=${1518}
| tc11-9000B-4t4c-ethip6-ip6base-ip6scale200k-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv6 routing config with \
-| | ... | 4 phy cores, 2 receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 9000B frames using single trial\
-| | ... | throughput test.
-| | ...
| | [Tags] | 9000B | 4C
-| | ...
-| | [Template] | Check RR for ip6base-ip6scale
-| | wt=4 | rxq=2 | framesize=${9000}
+| | phy_cores=${4} | framesize=${9000}
| tc12-IMIX-4t4c-ethip6-ip6base-ip6scale200k-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv6 routing config with \
-| | ... | 4 phy cores, 2 receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for IMIX_v4_1 frames using single trial\
-| | ... | throughput test.
-| | ... | IMIX_v4_1 = (28x64B; 16x570B; 4x1518B)
-| | ...
| | [Tags] | IMIX | 4C
-| | ...
-| | [Template] | Check RR for ip6base-ip6scale
-| | wt=4 | rxq=2 | framesize=IMIX_v4_1
+| | phy_cores=${4} | framesize=IMIX_v4_1
diff --git a/tests/vpp/perf/ip6/10ge2p1x520-ethip6-ip6scale200k-ndrpdrdisc.robot b/tests/vpp/perf/ip6/10ge2p1x520-ethip6-ip6scale200k-ndrpdrdisc.robot
index 225c5d4a7d..26b94f8919 100644
--- a/tests/vpp/perf/ip6/10ge2p1x520-ethip6-ip6scale200k-ndrpdrdisc.robot
+++ b/tests/vpp/perf/ip6/10ge2p1x520-ethip6-ip6scale200k-ndrpdrdisc.robot
@@ -69,7 +69,7 @@
| | ${binary_min}= | Set Variable | ${min_rate}
| | ${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
+| | Given Add worker threads and rxqueues to all DUTs | 1
| | And Add PCI devices to all DUTs
| | And Add no multi seg to all DUTs
| | And Apply startup configuration on all VPP DUTs
@@ -91,7 +91,7 @@
| | ${binary_min}= | Set Variable | ${min_rate}
| | ${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
+| | Given Add worker threads and rxqueues to all DUTs | 1
| | And Add PCI devices to all DUTs
| | And Add no multi seg to all DUTs
| | And Apply startup configuration on all VPP DUTs
@@ -114,7 +114,7 @@
| | ${binary_min}= | Set Variable | ${min_rate}
| | ${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
+| | Given Add worker threads and rxqueues to all DUTs | 1
| | And Add PCI devices to all DUTs
| | And Add no multi seg to all DUTs
| | And Apply startup configuration on all VPP DUTs
@@ -136,7 +136,7 @@
| | ${binary_min}= | Set Variable | ${min_rate}
| | ${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
+| | Given Add worker threads and rxqueues to all DUTs | 1
| | And Add PCI devices to all DUTs
| | And Add no multi seg to all DUTs
| | And Apply startup configuration on all VPP DUTs
@@ -159,7 +159,7 @@
| | ${binary_min}= | Set Variable | ${min_rate}
| | ${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
+| | Given Add worker threads and rxqueues to all DUTs | 1
| | And Add PCI devices to all DUTs
| | And Apply startup configuration on all VPP DUTs
| | And Initialize IPv6 forwarding with scaling in 3-node circular topology
@@ -180,7 +180,7 @@
| | ${binary_min}= | Set Variable | ${min_rate}
| | ${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
+| | Given Add worker threads and rxqueues to all DUTs | 1
| | And Add PCI devices to all DUTs
| | And Apply startup configuration on all VPP DUTs
| | And Initialize IPv6 forwarding with scaling in 3-node circular topology
@@ -202,7 +202,7 @@
| | ${binary_min}= | Set Variable | ${min_rate}
| | ${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
+| | Given Add worker threads and rxqueues to all DUTs | 2
| | And Add PCI devices to all DUTs
| | And Add no multi seg to all DUTs
| | And Apply startup configuration on all VPP DUTs
@@ -224,7 +224,7 @@
| | ${binary_min}= | Set Variable | ${min_rate}
| | ${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
+| | Given Add worker threads and rxqueues to all DUTs | 2
| | And Add PCI devices to all DUTs
| | And Add no multi seg to all DUTs
| | And Apply startup configuration on all VPP DUTs
@@ -247,7 +247,7 @@
| | ${binary_min}= | Set Variable | ${min_rate}
| | ${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
+| | Given Add worker threads and rxqueues to all DUTs | 2
| | And Add PCI devices to all DUTs
| | And Add no multi seg to all DUTs
| | And Apply startup configuration on all VPP DUTs
@@ -269,7 +269,7 @@
| | ${binary_min}= | Set Variable | ${min_rate}
| | ${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
+| | Given Add worker threads and rxqueues to all DUTs | 2
| | And Add PCI devices to all DUTs
| | And Add no multi seg to all DUTs
| | And Apply startup configuration on all VPP DUTs
@@ -292,7 +292,7 @@
| | ${binary_min}= | Set Variable | ${min_rate}
| | ${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
+| | Given Add worker threads and rxqueues to all DUTs | 2
| | And Add PCI devices to all DUTs
| | And Apply startup configuration on all VPP DUTs
| | And Initialize IPv6 forwarding with scaling in 3-node circular topology
@@ -313,7 +313,7 @@
| | ${binary_min}= | Set Variable | ${min_rate}
| | ${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
+| | Given Add worker threads and rxqueues to all DUTs | 2
| | And Add PCI devices to all DUTs
| | And Apply startup configuration on all VPP DUTs
| | And Initialize IPv6 forwarding with scaling in 3-node circular topology
@@ -335,7 +335,7 @@
| | ${binary_min}= | Set Variable | ${min_rate}
| | ${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
+| | Given Add worker threads and rxqueues to all DUTs | 4
| | And Add PCI devices to all DUTs
| | And Add no multi seg to all DUTs
| | And Apply startup configuration on all VPP DUTs
@@ -357,7 +357,7 @@
| | ${binary_min}= | Set Variable | ${min_rate}
| | ${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
+| | Given Add worker threads and rxqueues to all DUTs | 4
| | And Add PCI devices to all DUTs
| | And Add no multi seg to all DUTs
| | And Apply startup configuration on all VPP DUTs
@@ -380,7 +380,7 @@
| | ${binary_min}= | Set Variable | ${min_rate}
| | ${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
+| | Given Add worker threads and rxqueues to all DUTs | 4
| | And Add PCI devices to all DUTs
| | And Add no multi seg to all DUTs
| | And Apply startup configuration on all VPP DUTs
@@ -402,7 +402,7 @@
| | ${binary_min}= | Set Variable | ${min_rate}
| | ${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
+| | Given Add worker threads and rxqueues to all DUTs | 4
| | And Add PCI devices to all DUTs
| | And Add no multi seg to all DUTs
| | And Apply startup configuration on all VPP DUTs
@@ -425,7 +425,7 @@
| | ${binary_min}= | Set Variable | ${min_rate}
| | ${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
+| | Given Add worker threads and rxqueues to all DUTs | 4
| | And Add PCI devices to all DUTs
| | And Apply startup configuration on all VPP DUTs
| | And Initialize IPv6 forwarding with scaling in 3-node circular topology
@@ -446,7 +446,7 @@
| | ${binary_min}= | Set Variable | ${min_rate}
| | ${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
+| | Given Add worker threads and rxqueues to all DUTs | 4
| | And Add PCI devices to all DUTs
| | And Apply startup configuration on all VPP DUTs
| | And Initialize IPv6 forwarding with scaling in 3-node circular topology
diff --git a/tests/vpp/perf/ip6/10ge2p1x520-ethip6-ip6scale20k-mrr.robot b/tests/vpp/perf/ip6/10ge2p1x520-ethip6-ip6scale20k-mrr.robot
index 2e8be63d51..2be3e5e875 100644
--- a/tests/vpp/perf/ip6/10ge2p1x520-ethip6-ip6scale20k-mrr.robot
+++ b/tests/vpp/perf/ip6/10ge2p1x520-ethip6-ip6scale20k-mrr.robot
@@ -25,6 +25,8 @@
| ...
| Test Teardown | Tear down performance mrr test
| ...
+| Test Template | Local template
+| ...
| Documentation | *Raw results IPv6 routing test cases*
| ...
| ... | *[Top] Network Topologies:* TG-DUT1-DUT2-TG 3-node circular topology
@@ -52,21 +54,26 @@
| ${traffic_profile} | trex-sl-3n-ethip6-ip6dst${rts_per_flow}
*** Keywords ***
-| Check RR for ip6base-ip6scale
+| Local template
| | [Documentation]
-| | ... | [Cfg] DUT runs IPv6 routing config with ${wt} \
-| | ... | thread(s), ${wt} phy core(s), ${rxq} receive queue(s) per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for ${framesize} frames using single\
+| | ... | [Cfg] DUT runs IPv6 routing config.
+| | ... | Each DUT uses ${phy_cores} physical core(s) for worker threads.
+| | ... | [Ver] Measure MaxReceivedRate for ${framesize}B frames using single\
| | ... | trial throughput test.
| | ...
-| | [Arguments] | ${framesize} | ${wt} | ${rxq}
+| | ... | *Arguments:*
+| | ... | - framesize - Framesize in Bytes in integer or string (IMIX_v4_1).
+| | ... | Type: integer, string
+| | ... | - phy_cores - Number of physical cores. Type: integer
+| | ... | - rxq - Number of RX queues, default value: ${None}. Type: integer
+| | ...
+| | [Arguments] | ${phy_cores} | ${framesize} | ${rxq}=${None}
| | ...
-| | # Test Variables required for test teardown
| | Set Test Variable | ${framesize}
| | ${get_framesize}= | Get Frame Size | ${framesize}
| | ${max_rate}= | Calculate pps | ${s_limit} | ${get_framesize}
| | ...
-| | Given Add '${wt}' worker threads and '${rxq}' rxqueues in 3-node single-link circular topology
+| | Given Add worker threads and rxqueues to all DUTs | ${phy_cores} | ${rxq}
| | And Add PCI devices to all DUTs
| | And Run Keyword If | ${get_framesize} < ${1522}
| | ... | Add no multi seg to all DUTs
@@ -78,148 +85,49 @@
*** Test Cases ***
| tc01-78B-1t1c-ethip6-ip6base-ip6scale20k-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv6 routing config with \
-| | ... | 1 phy core, 1 receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 78B frames using single trial\
-| | ... | throughput test.
-| | ...
| | [Tags] | 78B | 1C
-| | ...
-| | [Template] | Check RR for ip6base-ip6scale
-| | wt=1 | rxq=1 | framesize=${78}
+| | phy_cores=${1} | framesize=${78}
| tc02-1518B-1t1c-ethip6-ip6base-ip6scale20k-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv6 routing config with \
-| | ... | 1 phy core, 1 receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 1518B frames using single trial\
-| | ... | throughput test.
-| | ...
| | [Tags] | 1518B | 1C
-| | ...
-| | [Template] | Check RR for ip6base-ip6scale
-| | wt=1 | rxq=1 | framesize=${1518}
+| | phy_cores=${1} | framesize=${1518}
| tc03-9000B-1t1c-ethip6-ip6base-ip6scale20k-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv6 routing config with \
-| | ... | 1 phy core, 1 receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 9000B frames using single trial\
-| | ... | throughput test.
-| | ...
| | [Tags] | 9000B | 1C
-| | ...
-| | [Template] | Check RR for ip6base-ip6scale
-| | wt=1 | rxq=1 | framesize=${9000}
+| | phy_cores=${1} | framesize=${9000}
| tc04-IMIX-1t1c-ethip6-ip6base-ip6scale20k-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv6 routing config with \
-| | ... | 1 phy core, 1 receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for IMIX_v4_1 frames using single trial\
-| | ... | throughput test.
-| | ... | IMIX_v4_1 = (28x64B; 16x570B; 4x1518B)
-| | ...
| | [Tags] | IMIX | 1C
-| | ...
-| | [Template] | Check RR for ip6base-ip6scale
-| | wt=1 | rxq=1 | framesize=IMIX_v4_1
+| | phy_cores=${1} | framesize=IMIX_v4_1
| tc05-78B-2t2c-ethip6-ip6base-ip6scale20k-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv6 routing config with \
-| | ... | 2 phy cores, 1 receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 78B frames using single trial\
-| | ... | throughput test.
-| | ...
| | [Tags] | 78B | 2C
-| | ...
-| | [Template] | Check RR for ip6base-ip6scale
-| | wt=2 | rxq=1 | framesize=${78}
+| | phy_cores=${2} | framesize=${78}
| tc06-1518B-2t2c-ethip6-ip6base-ip6scale20k-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv6 routing config with \
-| | ... | 2 phy cores, 1 receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 1518B frames using single trial\
-| | ... | throughput test.
-| | ...
| | [Tags] | 1518B | 2C
-| | ...
-| | [Template] | Check RR for ip6base-ip6scale
-| | wt=2 | rxq=1 | framesize=${1518}
+| | phy_cores=${2} | framesize=${1518}
| tc07-9000B-2t2c-ethip6-ip6base-ip6scale20k-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv6 routing config with \
-| | ... | 2 phy cores, 1 receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 9000B frames using single trial\
-| | ... | throughput test.
-| | ...
| | [Tags] | 9000B | 2C
-| | ...
-| | [Template] | Check RR for ip6base-ip6scale
-| | wt=2 | rxq=1 | framesize=${9000}
+| | phy_cores=${2} | framesize=${9000}
| tc08-IMIX-2t2c-ethip6-ip6base-ip6scale20k-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv6 routing config with \
-| | ... | 2 phy cores, 1 receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for IMIX_v4_1 frames using single trial\
-| | ... | throughput test.
-| | ... | IMIX_v4_1 = (28x64B; 16x570B; 4x1518B)
-| | ...
| | [Tags] | IMIX | 2C
-| | ...
-| | [Template] | Check RR for ip6base-ip6scale
-| | wt=2 | rxq=1 | framesize=IMIX_v4_1
+| | phy_cores=${2} | framesize=IMIX_v4_1
| tc09-78B-4t4c-ethip6-ip6base-ip6scale20k-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv6 routing config with \
-| | ... | 4 phy cores, 2 receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 78B frames using single trial\
-| | ... | throughput test.
-| | ...
| | [Tags] | 78B | 4C
-| | ...
-| | [Template] | Check RR for ip6base-ip6scale
-| | wt=4 | rxq=2 | framesize=${78}
+| | phy_cores=${4} | framesize=${78}
| tc10-1518B-4t4c-ethip6-ip6base-ip6scale20k-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv6 routing config with \
-| | ... | 4 phy cores, 2 receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 1518B frames using single trial\
-| | ... | throughput test.
-| | ...
| | [Tags] | 1518B | 4C
-| | ...
-| | [Template] | Check RR for ip6base-ip6scale
-| | wt=4 | rxq=2 | framesize=${1518}
+| | phy_cores=${4} | framesize=${1518}
| tc11-9000B-4t4c-ethip6-ip6base-ip6scale20k-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv6 routing config with \
-| | ... | 4 phy cores, 2 receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 9000B frames using single trial\
-| | ... | throughput test.
-| | ...
| | [Tags] | 9000B | 4C
-| | ...
-| | [Template] | Check RR for ip6base-ip6scale
-| | wt=4 | rxq=2 | framesize=${9000}
+| | phy_cores=${4} | framesize=${9000}
| tc12-IMIX-4t4c-ethip6-ip6base-ip6scale20k-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv6 routing config with \
-| | ... | 4 phy cores, 2 receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for IMIX_v4_1 frames using single trial\
-| | ... | throughput test.
-| | ... | IMIX_v4_1 = (28x64B; 16x570B; 4x1518B)
-| | ...
| | [Tags] | IMIX | 4C
-| | ...
-| | [Template] | Check RR for ip6base-ip6scale
-| | wt=4 | rxq=2 | framesize=IMIX_v4_1
+| | phy_cores=${4} | framesize=IMIX_v4_1
diff --git a/tests/vpp/perf/ip6/10ge2p1x520-ethip6-ip6scale20k-ndrpdrdisc.robot b/tests/vpp/perf/ip6/10ge2p1x520-ethip6-ip6scale20k-ndrpdrdisc.robot
index 4d5b30a4fb..79101a07c1 100644
--- a/tests/vpp/perf/ip6/10ge2p1x520-ethip6-ip6scale20k-ndrpdrdisc.robot
+++ b/tests/vpp/perf/ip6/10ge2p1x520-ethip6-ip6scale20k-ndrpdrdisc.robot
@@ -69,7 +69,7 @@
| | ${binary_min}= | Set Variable | ${min_rate}
| | ${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
+| | Given Add worker threads and rxqueues to all DUTs | 1
| | And Add PCI devices to all DUTs
| | And Add no multi seg to all DUTs
| | And Apply startup configuration on all VPP DUTs
@@ -91,7 +91,7 @@
| | ${binary_min}= | Set Variable | ${min_rate}
| | ${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
+| | Given Add worker threads and rxqueues to all DUTs | 1
| | And Add PCI devices to all DUTs
| | And Add no multi seg to all DUTs
| | And Apply startup configuration on all VPP DUTs
@@ -114,7 +114,7 @@
| | ${binary_min}= | Set Variable | ${min_rate}
| | ${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
+| | Given Add worker threads and rxqueues to all DUTs | 1
| | And Add PCI devices to all DUTs
| | And Add no multi seg to all DUTs
| | And Apply startup configuration on all VPP DUTs
@@ -136,7 +136,7 @@
| | ${binary_min}= | Set Variable | ${min_rate}
| | ${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
+| | Given Add worker threads and rxqueues to all DUTs | 1
| | And Add PCI devices to all DUTs
| | And Add no multi seg to all DUTs
| | And Apply startup configuration on all VPP DUTs
@@ -159,7 +159,7 @@
| | ${binary_min}= | Set Variable | ${min_rate}
| | ${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
+| | Given Add worker threads and rxqueues to all DUTs | 1
| | And Add PCI devices to all DUTs
| | And Apply startup configuration on all VPP DUTs
| | And Initialize IPv6 forwarding with scaling in 3-node circular topology
@@ -180,7 +180,7 @@
| | ${binary_min}= | Set Variable | ${min_rate}
| | ${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
+| | Given Add worker threads and rxqueues to all DUTs | 1
| | And Add PCI devices to all DUTs
| | And Apply startup configuration on all VPP DUTs
| | And Initialize IPv6 forwarding with scaling in 3-node circular topology
@@ -202,7 +202,7 @@
| | ${binary_min}= | Set Variable | ${min_rate}
| | ${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
+| | Given Add worker threads and rxqueues to all DUTs | 2
| | And Add PCI devices to all DUTs
| | And Add no multi seg to all DUTs
| | And Apply startup configuration on all VPP DUTs
@@ -224,7 +224,7 @@
| | ${binary_min}= | Set Variable | ${min_rate}
| | ${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
+| | Given Add worker threads and rxqueues to all DUTs | 2
| | And Add PCI devices to all DUTs
| | And Add no multi seg to all DUTs
| | And Apply startup configuration on all VPP DUTs
@@ -247,7 +247,7 @@
| | ${binary_min}= | Set Variable | ${min_rate}
| | ${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
+| | Given Add worker threads and rxqueues to all DUTs | 2
| | And Add PCI devices to all DUTs
| | And Add no multi seg to all DUTs
| | And Apply startup configuration on all VPP DUTs
@@ -269,7 +269,7 @@
| | ${binary_min}= | Set Variable | ${min_rate}
| | ${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
+| | Given Add worker threads and rxqueues to all DUTs | 2
| | And Add PCI devices to all DUTs
| | And Add no multi seg to all DUTs
| | And Apply startup configuration on all VPP DUTs
@@ -292,7 +292,7 @@
| | ${binary_min}= | Set Variable | ${min_rate}
| | ${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
+| | Given Add worker threads and rxqueues to all DUTs | 2
| | And Add PCI devices to all DUTs
| | And Apply startup configuration on all VPP DUTs
| | And Initialize IPv6 forwarding with scaling in 3-node circular topology
@@ -313,7 +313,7 @@
| | ${binary_min}= | Set Variable | ${min_rate}
| | ${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
+| | Given Add worker threads and rxqueues to all DUTs | 2
| | And Add PCI devices to all DUTs
| | And Apply startup configuration on all VPP DUTs
| | And Initialize IPv6 forwarding with scaling in 3-node circular topology
@@ -335,7 +335,7 @@
| | ${binary_min}= | Set Variable | ${min_rate}
| | ${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
+| | Given Add worker threads and rxqueues to all DUTs | 4
| | And Add PCI devices to all DUTs
| | And Add no multi seg to all DUTs
| | And Apply startup configuration on all VPP DUTs
@@ -357,7 +357,7 @@
| | ${binary_min}= | Set Variable | ${min_rate}
| | ${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
+| | Given Add worker threads and rxqueues to all DUTs | 4
| | And Add PCI devices to all DUTs
| | And Add no multi seg to all DUTs
| | And Apply startup configuration on all VPP DUTs
@@ -380,7 +380,7 @@
| | ${binary_min}= | Set Variable | ${min_rate}
| | ${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
+| | Given Add worker threads and rxqueues to all DUTs | 4
| | And Add PCI devices to all DUTs
| | And Add no multi seg to all DUTs
| | And Apply startup configuration on all VPP DUTs
@@ -402,7 +402,7 @@
| | ${binary_min}= | Set Variable | ${min_rate}
| | ${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
+| | Given Add worker threads and rxqueues to all DUTs | 4
| | And Add PCI devices to all DUTs
| | And Add no multi seg to all DUTs
| | And Apply startup configuration on all VPP DUTs
@@ -425,7 +425,7 @@
| | ${binary_min}= | Set Variable | ${min_rate}
| | ${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
+| | Given Add worker threads and rxqueues to all DUTs | 4
| | And Add PCI devices to all DUTs
| | And Apply startup configuration on all VPP DUTs
| | And Initialize IPv6 forwarding with scaling in 3-node circular topology
@@ -446,7 +446,7 @@
| | ${binary_min}= | Set Variable | ${min_rate}
| | ${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
+| | Given Add worker threads and rxqueues to all DUTs | 4
| | And Add PCI devices to all DUTs
| | And Apply startup configuration on all VPP DUTs
| | And Initialize IPv6 forwarding with scaling in 3-node circular topology
diff --git a/tests/vpp/perf/ip6/10ge2p1x520-ethip6-ip6scale2m-mrr.robot b/tests/vpp/perf/ip6/10ge2p1x520-ethip6-ip6scale2m-mrr.robot
index 124934d283..2b241e3c61 100644
--- a/tests/vpp/perf/ip6/10ge2p1x520-ethip6-ip6scale2m-mrr.robot
+++ b/tests/vpp/perf/ip6/10ge2p1x520-ethip6-ip6scale2m-mrr.robot
@@ -25,6 +25,8 @@
| ...
| Test Teardown | Tear down performance mrr test
| ...
+| Test Template | Local template
+| ...
| Documentation | *Raw results IPv6 routing test cases*
| ...
| ... | *[Top] Network Topologies:* TG-DUT1-DUT2-TG 3-node circular topology
@@ -52,21 +54,26 @@
| ${traffic_profile} | trex-sl-3n-ethip6-ip6dst${rts_per_flow}
*** Keywords ***
-| Check RR for ip6base-ip6scale
+| Local template
| | [Documentation]
-| | ... | [Cfg] DUT runs IPv6 routing config with ${wt} \
-| | ... | thread(s), ${wt} phy core(s), ${rxq} receive queue(s) per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for ${framesize} frames using single\
+| | ... | [Cfg] DUT runs IPv6 routing config.
+| | ... | Each DUT uses ${phy_cores} physical core(s) for worker threads.
+| | ... | [Ver] Measure MaxReceivedRate for ${framesize}B frames using single\
| | ... | trial throughput test.
| | ...
-| | [Arguments] | ${framesize} | ${wt} | ${rxq}
+| | ... | *Arguments:*
+| | ... | - framesize - Framesize in Bytes in integer or string (IMIX_v4_1).
+| | ... | Type: integer, string
+| | ... | - phy_cores - Number of physical cores. Type: integer
+| | ... | - rxq - Number of RX queues, default value: ${None}. Type: integer
+| | ...
+| | [Arguments] | ${phy_cores} | ${framesize} | ${rxq}=${None}
| | ...
-| | # Test Variables required for test teardown
| | Set Test Variable | ${framesize}
| | ${get_framesize}= | Get Frame Size | ${framesize}
| | ${max_rate}= | Calculate pps | ${s_limit} | ${get_framesize}
| | ...
-| | Given Add '${wt}' worker threads and '${rxq}' rxqueues in 3-node single-link circular topology
+| | Given Add worker threads and rxqueues to all DUTs | ${phy_cores} | ${rxq}
| | And Add PCI devices to all DUTs
| | And Run Keyword If | ${get_framesize} < ${1522}
| | ... | Add no multi seg to all DUTs
@@ -78,148 +85,49 @@
*** Test Cases ***
| tc01-78B-1t1c-ethip6-ip6base-ip6scale2m-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv6 routing config with \
-| | ... | 1 phy core, 1 receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 78B frames using single trial\
-| | ... | throughput test.
-| | ...
| | [Tags] | 78B | 1C
-| | ...
-| | [Template] | Check RR for ip6base-ip6scale
-| | wt=1 | rxq=1 | framesize=${78}
+| | phy_cores=${1} | framesize=${78}
| tc02-1518B-1t1c-ethip6-ip6base-ip6scale2m-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv6 routing config with \
-| | ... | 1 phy core, 1 receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 1518B frames using single trial\
-| | ... | throughput test.
-| | ...
| | [Tags] | 1518B | 1C
-| | ...
-| | [Template] | Check RR for ip6base-ip6scale
-| | wt=1 | rxq=1 | framesize=${1518}
+| | phy_cores=${1} | framesize=${1518}
| tc03-9000B-1t1c-ethip6-ip6base-ip6scale2m-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv6 routing config with \
-| | ... | 1 phy core, 1 receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 9000B frames using single trial\
-| | ... | throughput test.
-| | ...
| | [Tags] | 9000B | 1C
-| | ...
-| | [Template] | Check RR for ip6base-ip6scale
-| | wt=1 | rxq=1 | framesize=${9000}
+| | phy_cores=${1} | framesize=${9000}
| tc04-IMIX-1t1c-ethip6-ip6base-ip6scale2m-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv6 routing config with \
-| | ... | 1 phy core, 1 receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for IMIX_v4_1 frames using single trial\
-| | ... | throughput test.
-| | ... | IMIX_v4_1 = (28x64B; 16x570B; 4x1518B)
-| | ...
| | [Tags] | IMIX | 1C
-| | ...
-| | [Template] | Check RR for ip6base-ip6scale
-| | wt=1 | rxq=1 | framesize=IMIX_v4_1
+| | phy_cores=${1} | framesize=IMIX_v4_1
| tc05-78B-2t2c-ethip6-ip6base-ip6scale2m-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv6 routing config with \
-| | ... | 2 phy cores, 1 receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 78B frames using single trial\
-| | ... | throughput test.
-| | ...
| | [Tags] | 78B | 2C
-| | ...
-| | [Template] | Check RR for ip6base-ip6scale
-| | wt=2 | rxq=1 | framesize=${78}
+| | phy_cores=${2} | framesize=${78}
| tc06-1518B-2t2c-ethip6-ip6base-ip6scale2m-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv6 routing config with \
-| | ... | 2 phy cores, 1 receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 1518B frames using single trial\
-| | ... | throughput test.
-| | ...
| | [Tags] | 1518B | 2C
-| | ...
-| | [Template] | Check RR for ip6base-ip6scale
-| | wt=2 | rxq=1 | framesize=${1518}
+| | phy_cores=${2} | framesize=${1518}
| tc07-9000B-2t2c-ethip6-ip6base-ip6scale2m-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv6 routing config with \
-| | ... | 2 phy cores, 1 receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 9000B frames using single trial\
-| | ... | throughput test.
-| | ...
| | [Tags] | 9000B | 2C
-| | ...
-| | [Template] | Check RR for ip6base-ip6scale
-| | wt=2 | rxq=1 | framesize=${9000}
+| | phy_cores=${2} | framesize=${9000}
| tc08-IMIX-2t2c-ethip6-ip6base-ip6scale2m-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv6 routing config with \
-| | ... | 2 phy cores, 1 receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for IMIX_v4_1 frames using single trial\
-| | ... | throughput test.
-| | ... | IMIX_v4_1 = (28x64B; 16x570B; 4x1518B)
-| | ...
| | [Tags] | IMIX | 2C
-| | ...
-| | [Template] | Check RR for ip6base-ip6scale
-| | wt=2 | rxq=1 | framesize=IMIX_v4_1
+| | phy_cores=${2} | framesize=IMIX_v4_1
| tc09-78B-4t4c-ethip6-ip6base-ip6scale2m-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv6 routing config with \
-| | ... | 4 phy cores, 2 receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 78B frames using single trial\
-| | ... | throughput test.
-| | ...
| | [Tags] | 78B | 4C
-| | ...
-| | [Template] | Check RR for ip6base-ip6scale
-| | wt=4 | rxq=2 | framesize=${78}
+| | phy_cores=${4} | framesize=${78}
| tc10-1518B-4t4c-ethip6-ip6base-ip6scale2m-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv6 routing config with \
-| | ... | 4 phy cores, 2 receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 1518B frames using single trial\
-| | ... | throughput test.
-| | ...
| | [Tags] | 1518B | 4C
-| | ...
-| | [Template] | Check RR for ip6base-ip6scale
-| | wt=4 | rxq=2 | framesize=${1518}
+| | phy_cores=${4} | framesize=${1518}
| tc11-9000B-4t4c-ethip6-ip6base-ip6scale2m-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv6 routing config with \
-| | ... | 4 phy cores, 2 receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 9000B frames using single trial\
-| | ... | throughput test.
-| | ...
| | [Tags] | 9000B | 4C
-| | ...
-| | [Template] | Check RR for ip6base-ip6scale
-| | wt=4 | rxq=2 | framesize=${9000}
+| | phy_cores=${4} | framesize=${9000}
| tc12-IMIX-4t4c-ethip6-ip6base-ip6scale2m-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv6 routing config with \
-| | ... | 4 phy cores, 2 receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for IMIX_v4_1 frames using single trial\
-| | ... | throughput test.
-| | ... | IMIX_v4_1 = (28x64B; 16x570B; 4x1518B)
-| | ...
| | [Tags] | IMIX | 4C
-| | ...
-| | [Template] | Check RR for ip6base-ip6scale
-| | wt=4 | rxq=2 | framesize=IMIX_v4_1
+| | phy_cores=${4} | framesize=IMIX_v4_1 \ No newline at end of file
diff --git a/tests/vpp/perf/ip6/10ge2p1x520-ethip6-ip6scale2m-ndrpdrdisc.robot b/tests/vpp/perf/ip6/10ge2p1x520-ethip6-ip6scale2m-ndrpdrdisc.robot
index 1570d777e3..f196c0d707 100644
--- a/tests/vpp/perf/ip6/10ge2p1x520-ethip6-ip6scale2m-ndrpdrdisc.robot
+++ b/tests/vpp/perf/ip6/10ge2p1x520-ethip6-ip6scale2m-ndrpdrdisc.robot
@@ -69,7 +69,7 @@
| | ${binary_min}= | Set Variable | ${min_rate}
| | ${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
+| | Given Add worker threads and rxqueues to all DUTs | 1
| | And Add PCI devices to all DUTs
| | And Add no multi seg to all DUTs
| | And Apply startup configuration on all VPP DUTs
@@ -91,7 +91,7 @@
| | ${binary_min}= | Set Variable | ${min_rate}
| | ${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
+| | Given Add worker threads and rxqueues to all DUTs | 1
| | And Add PCI devices to all DUTs
| | And Add no multi seg to all DUTs
| | And Apply startup configuration on all VPP DUTs
@@ -114,7 +114,7 @@
| | ${binary_min}= | Set Variable | ${min_rate}
| | ${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
+| | Given Add worker threads and rxqueues to all DUTs | 1
| | And Add PCI devices to all DUTs
| | And Add no multi seg to all DUTs
| | And Apply startup configuration on all VPP DUTs
@@ -136,7 +136,7 @@
| | ${binary_min}= | Set Variable | ${min_rate}
| | ${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
+| | Given Add worker threads and rxqueues to all DUTs | 1
| | And Add PCI devices to all DUTs
| | And Add no multi seg to all DUTs
| | And Apply startup configuration on all VPP DUTs
@@ -159,7 +159,7 @@
| | ${binary_min}= | Set Variable | ${min_rate}
| | ${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
+| | Given Add worker threads and rxqueues to all DUTs | 1
| | And Add PCI devices to all DUTs
| | And Apply startup configuration on all VPP DUTs
| | And Initialize IPv6 forwarding with scaling in 3-node circular topology
@@ -180,7 +180,7 @@
| | ${binary_min}= | Set Variable | ${min_rate}
| | ${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
+| | Given Add worker threads and rxqueues to all DUTs | 1
| | And Add PCI devices to all DUTs
| | And Apply startup configuration on all VPP DUTs
| | And Initialize IPv6 forwarding with scaling in 3-node circular topology
@@ -202,7 +202,7 @@
| | ${binary_min}= | Set Variable | ${min_rate}
| | ${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
+| | Given Add worker threads and rxqueues to all DUTs | 2
| | And Add PCI devices to all DUTs
| | And Add no multi seg to all DUTs
| | And Apply startup configuration on all VPP DUTs
@@ -224,7 +224,7 @@
| | ${binary_min}= | Set Variable | ${min_rate}
| | ${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
+| | Given Add worker threads and rxqueues to all DUTs | 2
| | And Add PCI devices to all DUTs
| | And Add no multi seg to all DUTs
| | And Apply startup configuration on all VPP DUTs
@@ -247,7 +247,7 @@
| | ${binary_min}= | Set Variable | ${min_rate}
| | ${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
+| | Given Add worker threads and rxqueues to all DUTs | 2
| | And Add PCI devices to all DUTs
| | And Add no multi seg to all DUTs
| | And Apply startup configuration on all VPP DUTs
@@ -269,7 +269,7 @@
| | ${binary_min}= | Set Variable | ${min_rate}
| | ${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
+| | Given Add worker threads and rxqueues to all DUTs | 2
| | And Add PCI devices to all DUTs
| | And Add no multi seg to all DUTs
| | And Apply startup configuration on all VPP DUTs
@@ -292,7 +292,7 @@
| | ${binary_min}= | Set Variable | ${min_rate}
| | ${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
+| | Given Add worker threads and rxqueues to all DUTs | 2
| | And Add PCI devices to all DUTs
| | And Apply startup configuration on all VPP DUTs
| | And Initialize IPv6 forwarding with scaling in 3-node circular topology
@@ -313,7 +313,7 @@
| | ${binary_min}= | Set Variable | ${min_rate}
| | ${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
+| | Given Add worker threads and rxqueues to all DUTs | 2
| | And Add PCI devices to all DUTs
| | And Apply startup configuration on all VPP DUTs
| | And Initialize IPv6 forwarding with scaling in 3-node circular topology
@@ -335,7 +335,7 @@
| | ${binary_min}= | Set Variable | ${min_rate}
| | ${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
+| | Given Add worker threads and rxqueues to all DUTs | 4
| | And Add PCI devices to all DUTs
| | And Add no multi seg to all DUTs
| | And Apply startup configuration on all VPP DUTs
@@ -357,7 +357,7 @@
| | ${binary_min}= | Set Variable | ${min_rate}
| | ${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
+| | Given Add worker threads and rxqueues to all DUTs | 4
| | And Add PCI devices to all DUTs
| | And Add no multi seg to all DUTs
| | And Apply startup configuration on all VPP DUTs
@@ -380,7 +380,7 @@
| | ${binary_min}= | Set Variable | ${min_rate}
| | ${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
+| | Given Add worker threads and rxqueues to all DUTs | 4
| | And Add PCI devices to all DUTs
| | And Add no multi seg to all DUTs
| | And Apply startup configuration on all VPP DUTs
@@ -402,7 +402,7 @@
| | ${binary_min}= | Set Variable | ${min_rate}
| | ${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
+| | Given Add worker threads and rxqueues to all DUTs | 4
| | And Add PCI devices to all DUTs
| | And Add no multi seg to all DUTs
| | And Apply startup configuration on all VPP DUTs
@@ -425,7 +425,7 @@
| | ${binary_min}= | Set Variable | ${min_rate}
| | ${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
+| | Given Add worker threads and rxqueues to all DUTs | 4
| | And Add PCI devices to all DUTs
| | And Apply startup configuration on all VPP DUTs
| | And Initialize IPv6 forwarding with scaling in 3-node circular topology
@@ -446,7 +446,7 @@
| | ${binary_min}= | Set Variable | ${min_rate}
| | ${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
+| | Given Add worker threads and rxqueues to all DUTs | 4
| | And Add PCI devices to all DUTs
| | And Apply startup configuration on all VPP DUTs
| | And Initialize IPv6 forwarding with scaling in 3-node circular topology
diff --git a/tests/vpp/perf/ip6/10ge2p1x710-ethip6-ip6base-copwhtlistbase-mrr.robot b/tests/vpp/perf/ip6/10ge2p1x710-ethip6-ip6base-copwhtlistbase-mrr.robot
index 016979ca74..dbc9bd2d78 100644
--- a/tests/vpp/perf/ip6/10ge2p1x710-ethip6-ip6base-copwhtlistbase-mrr.robot
+++ b/tests/vpp/perf/ip6/10ge2p1x710-ethip6-ip6base-copwhtlistbase-mrr.robot
@@ -26,6 +26,8 @@
| ...
| Test Teardown | Tear down performance mrr test
| ...
+| Test Template | Local template
+| ...
| Documentation | *Raw results IPv6 whitelist test cases*
| ...
| ... | *[Top] Network Topologies:* TG-DUT1-DUT2-TG 3-node circular topology
@@ -52,21 +54,26 @@
| ${traffic_profile}= | trex-sl-3n-ethip6-ip6src253
*** Keywords ***
-| Check RR for ip6base-copwhtlistbase
+| Local template
| | [Documentation]
-| | ... | [Cfg] DUT runs IPv6 routing and whitelist filters config with ${wt} \
-| | ... | thread(s), ${wt} phy core(s), ${rxq} receive queue(s) per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for ${framesize} frames using single\
+| | ... | [Cfg] DUT runs IPv6 routing and whitelist filters config with
+| | ... | ${phy_cores} phy core(s).
+| | ... | [Ver] Measure MaxReceivedRate for ${framesize}B frames using single\
| | ... | trial throughput test.
| | ...
-| | [Arguments] | ${framesize} | ${wt} | ${rxq}
+| | ... | *Arguments:*
+| | ... | - framesize - Framesize in Bytes in integer or string (IMIX_v4_1).
+| | ... | Type: integer, string
+| | ... | - phy_cores - Number of physical cores. Type: integer
+| | ... | - rxq - Number of RX queues, default value: ${None}. Type: integer
+| | ...
+| | [Arguments] | ${phy_cores} | ${framesize} | ${rxq}=${None}
| | ...
-| | # Test Variables required for test teardown
| | Set Test Variable | ${framesize}
| | ${get_framesize}= | Get Frame Size | ${framesize}
| | ${max_rate}= | Calculate pps | ${s_limit} | ${get_framesize}
| | ...
-| | Given Add '${wt}' worker threads and '${rxq}' rxqueues in 3-node single-link circular topology
+| | Given Add worker threads and rxqueues to all DUTs | ${phy_cores} | ${rxq}
| | And Add PCI devices to all DUTs
| | And Run Keyword If | ${get_framesize} < ${1522}
| | ... | Add no multi seg to all DUTs
@@ -85,148 +92,49 @@
*** Test Cases ***
| tc01-78B-1t1c-ethip6-ip6base-copwhtlistbase-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv6 routing and whitelist filters config with \
-| | ... | 1 phy core, 1 receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 78B frames using single trial\
-| | ... | throughput test.
-| | ...
| | [Tags] | 78B | 1C
-| | ...
-| | [Template] | Check RR for ip6base-copwhtlistbase
-| | wt=1 | rxq=1 | framesize=${78}
+| | phy_cores=${1} | framesize=${78}
| tc02-1518B-1t1c-ethip6-ip6base-copwhtlistbase-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv6 routing and whitelist filters config with \
-| | ... | 1 phy core, 1 receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 1518B frames using single trial\
-| | ... | throughput test.
-| | ...
| | [Tags] | 1518B | 1C
-| | ...
-| | [Template] | Check RR for ip6base-copwhtlistbase
-| | wt=1 | rxq=1 | framesize=${1518}
+| | phy_cores=${1} | framesize=${1518}
| tc03-9000B-1t1c-ethip6-ip6base-copwhtlistbase-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv6 routing and whitelist filters config with \
-| | ... | 1 phy core, 1 receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 9000B frames using single trial\
-| | ... | throughput test.
-| | ...
| | [Tags] | 9000B | 1C
-| | ...
-| | [Template] | Check RR for ip6base-copwhtlistbase
-| | wt=1 | rxq=1 | framesize=${9000}
+| | phy_cores=${1} | framesize=${9000}
| tc04-IMIX-1t1c-ethip6-ip6base-copwhtlistbase-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv6 routing and whitelist filters config with \
-| | ... | 1 phy core, 1 receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for IMIX_v4_1 frames using single trial\
-| | ... | throughput test.
-| | ... | IMIX_v4_1 = (28x64B; 16x570B; 4x1518B)
-| | ...
| | [Tags] | IMIX | 1C
-| | ...
-| | [Template] | Check RR for ip6base-copwhtlistbase
-| | wt=1 | rxq=1 | framesize=IMIX_v4_1
+| | phy_cores=${1} | framesize=IMIX_v4_1
| tc05-78B-2t2c-ethip6-ip6base-copwhtlistbase-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv6 routing and whitelist filters config with \
-| | ... | 2 phy cores, 1 receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 78B frames using single trial\
-| | ... | throughput test.
-| | ...
| | [Tags] | 78B | 2C
-| | ...
-| | [Template] | Check RR for ip6base-copwhtlistbase
-| | wt=2 | rxq=1 | framesize=${78}
+| | phy_cores=${2} | framesize=${78}
| tc06-1518B-2t2c-ethip6-ip6base-copwhtlistbase-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv6 routing and whitelist filters config with \
-| | ... | 2 phy cores, 1 receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 1518B frames using single trial\
-| | ... | throughput test.
-| | ...
| | [Tags] | 1518B | 2C
-| | ...
-| | [Template] | Check RR for ip6base-copwhtlistbase
-| | wt=2 | rxq=1 | framesize=${1518}
+| | phy_cores=${2} | framesize=${1518}
| tc07-9000B-2t2c-ethip6-ip6base-copwhtlistbase-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv6 routing and whitelist filters config with \
-| | ... | 2 phy cores, 1 receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 9000B frames using single trial\
-| | ... | throughput test.
-| | ...
| | [Tags] | 9000B | 2C
-| | ...
-| | [Template] | Check RR for ip6base-copwhtlistbase
-| | wt=2 | rxq=1 | framesize=${9000}
+| | phy_cores=${2} | framesize=${9000}
| tc08-IMIX-2t2c-ethip6-ip6base-copwhtlistbase-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv6 routing and whitelist filters config with \
-| | ... | 2 phy cores, 1 receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for IMIX_v4_1 frames using single trial\
-| | ... | throughput test.
-| | ... | IMIX_v4_1 = (28x64B; 16x570B; 4x1518B)
-| | ...
| | [Tags] | IMIX | 2C
-| | ...
-| | [Template] | Check RR for ip6base-copwhtlistbase
-| | wt=2 | rxq=1 | framesize=IMIX_v4_1
+| | phy_cores=${2} | framesize=IMIX_v4_1
| tc09-78B-4t4c-ethip6-ip6base-copwhtlistbase-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv6 routing and whitelist filters config with \
-| | ... | 4 phy cores, 2 receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 78B frames using single trial\
-| | ... | throughput test.
-| | ...
| | [Tags] | 78B | 4C
-| | ...
-| | [Template] | Check RR for ip6base-copwhtlistbase
-| | wt=4 | rxq=2 | framesize=${78}
+| | phy_cores=${4} | framesize=${78}
| tc10-1518B-4t4c-ethip6-ip6base-copwhtlistbase-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv6 routing and whitelist filters config with \
-| | ... | 4 phy cores, 2 receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 1518B frames using single trial\
-| | ... | throughput test.
-| | ...
| | [Tags] | 1518B | 4C
-| | ...
-| | [Template] | Check RR for ip6base-copwhtlistbase
-| | wt=4 | rxq=2 | framesize=${1518}
+| | phy_cores=${4} | framesize=${1518}
| tc11-9000B-4t4c-ethip6-ip6base-copwhtlistbase-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv6 routing and whitelist filters config with \
-| | ... | 4 phy cores, 2 receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 9000B frames using single trial\
-| | ... | throughput test.
-| | ...
| | [Tags] | 9000B | 4C
-| | ...
-| | [Template] | Check RR for ip6base-copwhtlistbase
-| | wt=4 | rxq=2 | framesize=${9000}
+| | phy_cores=${4} | framesize=${9000}
| tc12-IMIX-4t4c-ethip6-ip6base-copwhtlistbase-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv6 routing and whitelist filters config with \
-| | ... | 4 phy cores, 2 receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for IMIX_v4_1 frames using single trial\
-| | ... | throughput test.
-| | ... | IMIX_v4_1 = (28x64B; 16x570B; 4x1518B)
-| | ...
| | [Tags] | IMIX | 4C
-| | ...
-| | [Template] | Check RR for ip6base-copwhtlistbase
-| | wt=4 | rxq=2 | framesize=IMIX_v4_1
+| | phy_cores=${4} | framesize=IMIX_v4_1
diff --git a/tests/vpp/perf/ip6/10ge2p1x710-ethip6-ip6base-iacldstbase-mrr.robot b/tests/vpp/perf/ip6/10ge2p1x710-ethip6-ip6base-iacldstbase-mrr.robot
index fa069bdca2..92297eeb64 100644
--- a/tests/vpp/perf/ip6/10ge2p1x710-ethip6-ip6base-iacldstbase-mrr.robot
+++ b/tests/vpp/perf/ip6/10ge2p1x710-ethip6-ip6base-iacldstbase-mrr.robot
@@ -25,6 +25,8 @@
| ...
| Test Teardown | Tear down performance mrr test
| ...
+| Test Template | Local template
+| ...
| Documentation | *Raw results IPv6 iAcl whitelist test cases*
| ...
| ... | *[Top] Network Topologies:* TG-DUT1-DUT2-TG 3-node circular topology
@@ -50,21 +52,26 @@
| ${traffic_profile}= | trex-sl-3n-ethip6-ip6src253
*** Keywords ***
-| Check RR for ip6base-iacldstbase
+| Local template
| | [Documentation]
-| | ... | [Cfg] DUT runs IPv6 routing and whitelist filters config with ${wt} \
-| | ... | thread(s), ${wt} phy core(s), ${rxq} receive queue(s) per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for ${framesize} frames using single\
+| | ... | [Cfg] DUT runs IPv6 routing and whitelist filters config with
+| | ... | ${phy_cores} phy core(s).
+| | ... | [Ver] Measure MaxReceivedRate for ${framesize}B frames using single\
| | ... | trial throughput test.
| | ...
-| | [Arguments] | ${framesize} | ${wt} | ${rxq}
+| | ... | *Arguments:*
+| | ... | - framesize - Framesize in Bytes in integer or string (IMIX_v4_1).
+| | ... | Type: integer, string
+| | ... | - phy_cores - Number of physical cores. Type: integer
+| | ... | - rxq - Number of RX queues, default value: ${None}. Type: integer
+| | ...
+| | [Arguments] | ${phy_cores} | ${framesize} | ${rxq}=${None}
| | ...
-| | # Test Variables required for test teardown
| | Set Test Variable | ${framesize}
| | ${get_framesize}= | Get Frame Size | ${framesize}
| | ${max_rate}= | Calculate pps | ${s_limit} | ${get_framesize}
| | ...
-| | Given Add '${wt}' worker threads and '${rxq}' rxqueues in 3-node single-link circular topology
+| | Given Add worker threads and rxqueues to all DUTs | ${phy_cores} | ${rxq}
| | And Add PCI devices to all DUTs
| | And Run Keyword If | ${get_framesize} < ${1522}
| | ... | Add no multi seg to all DUTs
@@ -76,148 +83,49 @@
*** Test Cases ***
| tc01-78B-1t1c-ethip6-ip6base-iacldstbase-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv6 routing and whitelist filters config with \
-| | ... | 1 phy core, 1 receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 78B frames using single trial\
-| | ... | throughput test.
-| | ...
| | [Tags] | 78B | 1C
-| | ...
-| | [Template] | Check RR for ip6base-iacldstbase
-| | wt=1 | rxq=1 | framesize=${78}
+| | phy_cores=${1} | framesize=${78}
| tc02-1518B-1t1c-ethip6-ip6base-iacldstbase-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv6 routing and whitelist filters config with \
-| | ... | 1 phy core, 1 receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 1518B frames using single trial\
-| | ... | throughput test.
-| | ...
| | [Tags] | 1518B | 1C
-| | ...
-| | [Template] | Check RR for ip6base-iacldstbase
-| | wt=1 | rxq=1 | framesize=${1518}
+| | phy_cores=${1} | framesize=${1518}
| tc03-9000B-1t1c-ethip6-ip6base-iacldstbase-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv6 routing and whitelist filters config with \
-| | ... | 1 phy core, 1 receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 9000B frames using single trial\
-| | ... | throughput test.
-| | ...
| | [Tags] | 9000B | 1C
-| | ...
-| | [Template] | Check RR for ip6base-iacldstbase
-| | wt=1 | rxq=1 | framesize=${9000}
+| | phy_cores=${1} | framesize=${9000}
| tc04-IMIX-1t1c-ethip6-ip6base-iacldstbase-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv6 routing and whitelist filters config with \
-| | ... | 1 phy core, 1 receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for IMIX_v4_1 frames using single trial\
-| | ... | throughput test.
-| | ... | IMIX_v4_1 = (28x64B; 16x570B; 4x1518B)
-| | ...
| | [Tags] | IMIX | 1C
-| | ...
-| | [Template] | Check RR for ip6base-iacldstbase
-| | wt=1 | rxq=1 | framesize=IMIX_v4_1
+| | phy_cores=${1} | framesize=IMIX_v4_1
| tc05-78B-2t2c-ethip6-ip6base-iacldstbase-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv6 routing and whitelist filters config with \
-| | ... | 2 phy cores, 1 receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 78B frames using single trial\
-| | ... | throughput test.
-| | ...
| | [Tags] | 78B | 2C
-| | ...
-| | [Template] | Check RR for ip6base-iacldstbase
-| | wt=2 | rxq=1 | framesize=${78}
+| | phy_cores=${2} | framesize=${78}
| tc06-1518B-2t2c-ethip6-ip6base-iacldstbase-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv6 routing and whitelist filters config with \
-| | ... | 2 phy cores, 1 receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 1518B frames using single trial\
-| | ... | throughput test.
-| | ...
| | [Tags] | 1518B | 2C
-| | ...
-| | [Template] | Check RR for ip6base-iacldstbase
-| | wt=2 | rxq=1 | framesize=${1518}
+| | phy_cores=${2} | framesize=${1518}
| tc07-9000B-2t2c-ethip6-ip6base-iacldstbase-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv6 routing and whitelist filters config with \
-| | ... | 2 phy cores, 1 receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 9000B frames using single trial\
-| | ... | throughput test.
-| | ...
| | [Tags] | 9000B | 2C
-| | ...
-| | [Template] | Check RR for ip6base-iacldstbase
-| | wt=2 | rxq=1 | framesize=${9000}
+| | phy_cores=${2} | framesize=${9000}
| tc08-IMIX-2t2c-ethip6-ip6base-iacldstbase-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv6 routing and whitelist filters config with \
-| | ... | 2 phy cores, 1 receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for IMIX_v4_1 frames using single trial\
-| | ... | throughput test.
-| | ... | IMIX_v4_1 = (28x64B; 16x570B; 4x1518B)
-| | ...
| | [Tags] | IMIX | 2C
-| | ...
-| | [Template] | Check RR for ip6base-iacldstbase
-| | wt=2 | rxq=1 | framesize=IMIX_v4_1
+| | phy_cores=${2} | framesize=IMIX_v4_1
| tc09-78B-4t4c-ethip6-ip6base-iacldstbase-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv6 routing and whitelist filters config with \
-| | ... | 4 phy cores, 2 receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 78B frames using single trial\
-| | ... | throughput test.
-| | ...
| | [Tags] | 78B | 4C
-| | ...
-| | [Template] | Check RR for ip6base-iacldstbase
-| | wt=4 | rxq=2 | framesize=${78}
+| | phy_cores=${4} | framesize=${78}
| tc10-1518B-4t4c-ethip6-ip6base-iacldstbase-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv6 routing and whitelist filters config with \
-| | ... | 4 phy cores, 2 receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 1518B frames using single trial\
-| | ... | throughput test.
-| | ...
| | [Tags] | 1518B | 4C
-| | ...
-| | [Template] | Check RR for ip6base-iacldstbase
-| | wt=4 | rxq=2 | framesize=${1518}
+| | phy_cores=${4} | framesize=${1518}
| tc11-9000B-4t4c-ethip6-ip6base-iacldstbase-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv6 routing and whitelist filters config with \
-| | ... | 4 phy cores, 2 receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 9000B frames using single trial\
-| | ... | throughput test.
-| | ...
| | [Tags] | 9000B | 4C
-| | ...
-| | [Template] | Check RR for ip6base-iacldstbase
-| | wt=4 | rxq=2 | framesize=${9000}
+| | phy_cores=${4} | framesize=${9000}
| tc12-IMIX-4t4c-ethip6-ip6base-iacldstbase-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv6 routing and whitelist filters config with \
-| | ... | 4 phy cores, 2 receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for IMIX_v4_1 frames using single trial\
-| | ... | throughput test.
-| | ... | IMIX_v4_1 = (28x64B; 16x570B; 4x1518B)
-| | ...
| | [Tags] | IMIX | 4C
-| | ...
-| | [Template] | Check RR for ip6base-iacldstbase
-| | wt=4 | rxq=2 | framesize=IMIX_v4_1
+| | phy_cores=${4} | framesize=IMIX_v4_1
diff --git a/tests/vpp/perf/ip6/10ge2p1x710-ethip6-ip6base-mrr.robot b/tests/vpp/perf/ip6/10ge2p1x710-ethip6-ip6base-mrr.robot
index 83574bdd58..88043d7193 100644
--- a/tests/vpp/perf/ip6/10ge2p1x710-ethip6-ip6base-mrr.robot
+++ b/tests/vpp/perf/ip6/10ge2p1x710-ethip6-ip6base-mrr.robot
@@ -24,6 +24,8 @@
| Test Setup | Set up performance test
| Test Teardown | Tear down performance mrr test
| ...
+| Test Template | Local template
+| ...
| Documentation | *Raw results IPv6 routing test cases*
| ...
| ... | *[Top] Network Topologies:* TG-DUT1-DUT2-TG 3-node circular topology
@@ -48,21 +50,26 @@
| ${traffic_profile}= | trex-sl-3n-ethip6-ip6src253
*** Keywords ***
-| Check RR for ethip6-ip6base
+| Local template
| | [Documentation]
-| | ... | [Cfg] DUT runs IPv6 routing config with ${wt} thread(s), ${wt}\
-| | ... | phy core(s), ${rxq} receive queue(s) per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for ${framesize} frames using single\
+| | ... | [Cfg] DUT runs IPv6 routing config.
+| | ... | Each DUT uses ${phy_cores} physical core(s) for worker threads.
+| | ... | [Ver] Measure MaxReceivedRate for ${framesize}B frames using single\
| | ... | trial throughput test.
| | ...
-| | [Arguments] | ${framesize} | ${wt} | ${rxq}
+| | ... | *Arguments:*
+| | ... | - framesize - Framesize in Bytes in integer or string (IMIX_v4_1).
+| | ... | Type: integer, string
+| | ... | - phy_cores - Number of physical cores. Type: integer
+| | ... | - rxq - Number of RX queues, default value: ${None}. Type: integer
+| | ...
+| | [Arguments] | ${phy_cores} | ${framesize} | ${rxq}=${None}
| | ...
-| | # Test Variables required for test teardown
| | Set Test Variable | ${framesize}
| | ${get_framesize}= | Get Frame Size | ${framesize}
| | ${max_rate}= | Calculate pps | ${s_limit} | ${framesize}
| | ...
-| | Given Add '${wt}' worker threads and '${rxq}' rxqueues in 3-node single-link circular topology
+| | Given Add worker threads and rxqueues to all DUTs | ${phy_cores} | ${rxq}
| | And Add PCI devices to all DUTs
| | And Run Keyword If | ${get_framesize} < ${1522}
| | ... | Add no multi seg to all DUTs
@@ -73,148 +80,49 @@
*** Test Cases ***
| tc01-78B-1t1c-ethip6-ip6base-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv6 routing config with 1 phy core,\
-| | ... | 1 receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 64B frames using single trial\
-| | ... | throughput test.
-| | ...
| | [Tags] | 78B | 1C
-| | ...
-| | [Template] | Check RR for ethip6-ip6base
-| | framesize=${78} | wt=1 | rxq=1
+| | framesize=${78} | phy_cores=${1}
| tc02-1518B-1t1c-ethip6-ip6base-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv6 routing config with 1 phy core,\
-| | ... | 1 receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 1518B frames using single\
-| | ... | trial throughput test.
-| | ...
| | [Tags] | 1518B | 1C
-| | ...
-| | [Template] | Check RR for ethip6-ip6base
-| | framesize=${1518} | wt=1 | rxq=1
+| | framesize=${1518} | phy_cores=${1}
| tc03-9000B-1t1c-ethip6-ip6base-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv6 routing config with 1 phy core,\
-| | ... | 1 receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 9000B frames using single\
-| | ... | trial throughput test.
-| | ...
| | [Tags] | 9000B | 1C
-| | ...
-| | [Template] | Check RR for ethip6-ip6base
-| | framesize=${9000} | wt=1 | rxq=1
+| | framesize=${9000} | phy_cores=${1}
| tc04-IMIX-1t1c-ethip6-ip6base-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv6 routing config with \
-| | ... | 1 phy core, 1 receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for IMIX_v4_1 frames using single trial\
-| | ... | throughput test.
-| | ... | IMIX_v4_1 = (28x64B; 16x570B; 4x1518B)
-| | ...
| | [Tags] | IMIX | 1C
-| | ...
-| | [Template] | Check RR for ethip6-ip6base
-| | wt=1 | rxq=1 | framesize=IMIX_v4_1
+| | phy_cores=${1} | framesize=IMIX_v4_1
| tc05-78B-2t2c-ethip6-ip6base-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv6 routing config with 2 phy cores,\
-| | ... | 1 receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 64B frames using single trial\
-| | ... | throughput test.
-| | ...
| | [Tags] | 78B | 2C
-| | ...
-| | [Template] | Check RR for ethip6-ip6base
-| | framesize=${78} | wt=2 | rxq=1
+| | framesize=${78} | phy_cores=${2}
| tc06-1518B-2t2c-ethip6-ip6base-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv6 routing config with 2 phy cores,\
-| | ... | 1 receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 1518B frames using single\
-| | ... | trial throughput test.
-| | ...
| | [Tags] | 1518B | 2C
-| | ...
-| | [Template] | Check RR for ethip6-ip6base
-| | framesize=${1518} | wt=2 | rxq=1
+| | framesize=${1518} | phy_cores=${2}
| tc07-9000B-2t2c-ethip6-ip6base-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv6 routing config with 2 phy cores,\
-| | ... | 1 receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 9000B frames using single\
-| | ... | trial throughput test.
-| | ...
| | [Tags] | 9000B | 2C
-| | ...
-| | [Template] | Check RR for ethip6-ip6base
-| | framesize=${9000} | wt=2 | rxq=1
+| | framesize=${9000} | phy_cores=${2}
| tc08-IMIX-2t2c-ethip6-ip6base-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv6 routing config with \
-| | ... | 2 phy cores, 1 receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for IMIX_v4_1 frames using single trial\
-| | ... | throughput test.
-| | ... | IMIX_v4_1 = (28x64B; 16x570B; 4x1518B)
-| | ...
| | [Tags] | IMIX | 2C
-| | ...
-| | [Template] | Check RR for ethip6-ip6base
-| | wt=2 | rxq=1 | framesize=IMIX_v4_1
+| | phy_cores=${2} | framesize=IMIX_v4_1
| tc09-78B-4t4c-ethip6-ip6base-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv6 routing config with 4 phy cores,\
-| | ... | 2 receive queues per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 64B frames using single trial\
-| | ... | throughput test.
-| | ...
| | [Tags] | 78B | 4C
-| | ...
-| | [Template] | Check RR for ethip6-ip6base
-| | framesize=${78} | wt=4 | rxq=2
+| | framesize=${78} | phy_cores=${4}
| tc10-1518B-4t4c-ethip6-ip6base-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv6 routing config with 4 phy cores,\
-| | ... | 2 receive queues per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 1518B frames using single\
-| | ... | trial throughput test.
-| | ...
| | [Tags] | 1518B | 4C
-| | ...
-| | [Template] | Check RR for ethip6-ip6base
-| | framesize=${1518} | wt=4 | rxq=2
+| | framesize=${1518} | phy_cores=${4}
| tc11-9000B-4t4c-ethip6-ip6base-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv6 routing config with 4 phy cores,\
-| | ... | 2 receive queues per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 9000B frames using single\
-| | ... | trial throughput test.
-| | ...
| | [Tags] | 9000B | 4C
-| | ...
-| | [Template] | Check RR for ethip6-ip6base
-| | framesize=${9000} | wt=4 | rxq=2
+| | framesize=${9000} | phy_cores=${4}
| tc12-IMIX-4t4c-ethip6-ip6base-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv6 routing config with \
-| | ... | 4 phy cores, 2 receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for IMIX_v4_1 frames using single trial\
-| | ... | throughput test.
-| | ... | IMIX_v4_1 = (28x64B; 16x570B; 4x1518B)
-| | ...
| | [Tags] | IMIX | 4C
-| | ...
-| | [Template] | Check RR for ethip6-ip6base
-| | wt=4 | rxq=2 | framesize=IMIX_v4_1
+| | phy_cores=${4} | framesize=IMIX_v4_1
diff --git a/tests/vpp/perf/ip6/10ge2p1x710-ethip6-ip6scale200k-mrr.robot b/tests/vpp/perf/ip6/10ge2p1x710-ethip6-ip6scale200k-mrr.robot
index d434dcff87..28872e58c7 100644
--- a/tests/vpp/perf/ip6/10ge2p1x710-ethip6-ip6scale200k-mrr.robot
+++ b/tests/vpp/perf/ip6/10ge2p1x710-ethip6-ip6scale200k-mrr.robot
@@ -25,6 +25,8 @@
| ...
| Test Teardown | Tear down performance mrr test
| ...
+| Test Template | Local template
+| ...
| Documentation | *Raw results IPv6 routing test cases*
| ...
| ... | *[Top] Network Topologies:* TG-DUT1-DUT2-TG 3-node circular topology
@@ -52,21 +54,26 @@
| ${traffic_profile}= | trex-sl-3n-ethip6-ip6dst${rts_per_flow}
*** Keywords ***
-| Check RR for ip6base-ip6scale
+| Local template
| | [Documentation]
-| | ... | [Cfg] DUT runs IPv6 routing config with ${wt} \
-| | ... | thread(s), ${wt} phy core(s), ${rxq} receive queue(s) per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for ${framesize} frames using single\
+| | ... | [Cfg] DUT runs IPv6 routing config.
+| | ... | Each DUT uses ${phy_cores} physical core(s) for worker threads.
+| | ... | [Ver] Measure MaxReceivedRate for ${framesize}B frames using single\
| | ... | trial throughput test.
| | ...
-| | [Arguments] | ${framesize} | ${wt} | ${rxq}
+| | ... | *Arguments:*
+| | ... | - framesize - Framesize in Bytes in integer or string (IMIX_v4_1).
+| | ... | Type: integer, string
+| | ... | - phy_cores - Number of physical cores. Type: integer
+| | ... | - rxq - Number of RX queues, default value: ${None}. Type: integer
+| | ...
+| | [Arguments] | ${phy_cores} | ${framesize} | ${rxq}=${None}
| | ...
-| | # Test Variables required for test teardown
| | Set Test Variable | ${framesize}
| | ${get_framesize}= | Get Frame Size | ${framesize}
| | ${max_rate}= | Calculate pps | ${s_limit} | ${get_framesize}
| | ...
-| | Given Add '${wt}' worker threads and '${rxq}' rxqueues in 3-node single-link circular topology
+| | Given Add worker threads and rxqueues to all DUTs | ${phy_cores} | ${rxq}
| | And Add PCI devices to all DUTs
| | And Run Keyword If | ${get_framesize} < ${1522}
| | ... | Add no multi seg to all DUTs
@@ -78,148 +85,49 @@
*** Test Cases ***
| tc01-78B-1t1c-ethip6-ip6base-ip6scale200k-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv6 routing config with \
-| | ... | 1 phy core, 1 receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 78B frames using single trial\
-| | ... | throughput test.
-| | ...
| | [Tags] | 78B | 1C
-| | ...
-| | [Template] | Check RR for ip6base-ip6scale
-| | wt=1 | rxq=1 | framesize=${78}
+| | phy_cores=${1} | framesize=${78}
| tc02-1518B-1t1c-ethip6-ip6base-ip6scale200k-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv6 routing config with \
-| | ... | 1 phy core, 1 receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 1518B frames using single trial\
-| | ... | throughput test.
-| | ...
| | [Tags] | 1518B | 1C
-| | ...
-| | [Template] | Check RR for ip6base-ip6scale
-| | wt=1 | rxq=1 | framesize=${1518}
+| | phy_cores=${1} | framesize=${1518}
| tc03-9000B-1t1c-ethip6-ip6base-ip6scale200k-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv6 routing config with \
-| | ... | 1 phy core, 1 receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 9000B frames using single trial\
-| | ... | throughput test.
-| | ...
| | [Tags] | 9000B | 1C
-| | ...
-| | [Template] | Check RR for ip6base-ip6scale
-| | wt=1 | rxq=1 | framesize=${9000}
+| | phy_cores=${1} | framesize=${9000}
| tc04-IMIX-1t1c-ethip6-ip6base-ip6scale200k-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv6 routing config with \
-| | ... | 1 phy core, 1 receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for IMIX_v4_1 frames using single trial\
-| | ... | throughput test.
-| | ... | IMIX_v4_1 = (28x64B; 16x570B; 4x1518B)
-| | ...
| | [Tags] | IMIX | 1C
-| | ...
-| | [Template] | Check RR for ip6base-ip6scale
-| | wt=1 | rxq=1 | framesize=IMIX_v4_1
+| | phy_cores=${1} | framesize=IMIX_v4_1
| tc05-78B-2t2c-ethip6-ip6base-ip6scale200k-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv6 routing config with \
-| | ... | 2 phy cores, 1 receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 78B frames using single trial\
-| | ... | throughput test.
-| | ...
| | [Tags] | 78B | 2C
-| | ...
-| | [Template] | Check RR for ip6base-ip6scale
-| | wt=2 | rxq=1 | framesize=${78}
+| | phy_cores=${2} | framesize=${78}
| tc06-1518B-2t2c-ethip6-ip6base-ip6scale200k-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv6 routing config with \
-| | ... | 2 phy cores, 1 receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 1518B frames using single trial\
-| | ... | throughput test.
-| | ...
| | [Tags] | 1518B | 2C
-| | ...
-| | [Template] | Check RR for ip6base-ip6scale
-| | wt=2 | rxq=1 | framesize=${1518}
+| | phy_cores=${2} | framesize=${1518}
| tc07-9000B-2t2c-ethip6-ip6base-ip6scale200k-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv6 routing config with \
-| | ... | 2 phy cores, 1 receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 9000B frames using single trial\
-| | ... | throughput test.
-| | ...
| | [Tags] | 9000B | 2C
-| | ...
-| | [Template] | Check RR for ip6base-ip6scale
-| | wt=2 | rxq=1 | framesize=${9000}
+| | phy_cores=${2} | framesize=${9000}
| tc08-IMIX-2t2c-ethip6-ip6base-ip6scale200k-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv6 routing config with \
-| | ... | 2 phy cores, 1 receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for IMIX_v4_1 frames using single trial\
-| | ... | throughput test.
-| | ... | IMIX_v4_1 = (28x64B; 16x570B; 4x1518B)
-| | ...
| | [Tags] | IMIX | 2C
-| | ...
-| | [Template] | Check RR for ip6base-ip6scale
-| | wt=2 | rxq=1 | framesize=IMIX_v4_1
+| | phy_cores=${2} | framesize=IMIX_v4_1
| tc09-78B-4t4c-ethip6-ip6base-ip6scale200k-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv6 routing config with \
-| | ... | 4 phy cores, 2 receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 78B frames using single trial\
-| | ... | throughput test.
-| | ...
| | [Tags] | 78B | 4C
-| | ...
-| | [Template] | Check RR for ip6base-ip6scale
-| | wt=4 | rxq=2 | framesize=${78}
+| | phy_cores=${4} | framesize=${78}
| tc10-1518B-4t4c-ethip6-ip6base-ip6scale200k-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv6 routing config with \
-| | ... | 4 phy cores, 2 receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 1518B frames using single trial\
-| | ... | throughput test.
-| | ...
| | [Tags] | 1518B | 4C
-| | ...
-| | [Template] | Check RR for ip6base-ip6scale
-| | wt=4 | rxq=2 | framesize=${1518}
+| | phy_cores=${4} | framesize=${1518}
| tc11-9000B-4t4c-ethip6-ip6base-ip6scale200k-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv6 routing config with \
-| | ... | 4 phy cores, 2 receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 9000B frames using single trial\
-| | ... | throughput test.
-| | ...
| | [Tags] | 9000B | 4C
-| | ...
-| | [Template] | Check RR for ip6base-ip6scale
-| | wt=4 | rxq=2 | framesize=${9000}
+| | phy_cores=${4} | framesize=${9000}
| tc12-IMIX-4t4c-ethip6-ip6base-ip6scale200k-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv6 routing config with \
-| | ... | 4 phy cores, 2 receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for IMIX_v4_1 frames using single trial\
-| | ... | throughput test.
-| | ... | IMIX_v4_1 = (28x64B; 16x570B; 4x1518B)
-| | ...
| | [Tags] | IMIX | 4C
-| | ...
-| | [Template] | Check RR for ip6base-ip6scale
-| | wt=4 | rxq=2 | framesize=IMIX_v4_1
+| | phy_cores=${4} | framesize=IMIX_v4_1
diff --git a/tests/vpp/perf/ip6/10ge2p1x710-ethip6-ip6scale20k-mrr.robot b/tests/vpp/perf/ip6/10ge2p1x710-ethip6-ip6scale20k-mrr.robot
index 6c78447762..f38bcfb877 100644
--- a/tests/vpp/perf/ip6/10ge2p1x710-ethip6-ip6scale20k-mrr.robot
+++ b/tests/vpp/perf/ip6/10ge2p1x710-ethip6-ip6scale20k-mrr.robot
@@ -25,6 +25,8 @@
| ...
| Test Teardown | Tear down performance mrr test
| ...
+| Test Template | Local template
+| ...
| Documentation | *Raw results IPv6 routing test cases*
| ...
| ... | *[Top] Network Topologies:* TG-DUT1-DUT2-TG 3-node circular topology
@@ -52,21 +54,26 @@
| ${traffic_profile}= | trex-sl-3n-ethip6-ip6dst${rts_per_flow}
*** Keywords ***
-| Check RR for ip6base-ip6scale
+| Local template
| | [Documentation]
-| | ... | [Cfg] DUT runs IPv6 routing config with ${wt} \
-| | ... | thread(s), ${wt} phy core(s), ${rxq} receive queue(s) per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for ${framesize} frames using single\
+| | ... | [Cfg] DUT runs IPv6 routing config.
+| | ... | Each DUT uses ${phy_cores} physical core(s) for worker threads.
+| | ... | [Ver] Measure MaxReceivedRate for ${framesize}B frames using single\
| | ... | trial throughput test.
| | ...
-| | [Arguments] | ${framesize} | ${wt} | ${rxq}
+| | ... | *Arguments:*
+| | ... | - framesize - Framesize in Bytes in integer or string (IMIX_v4_1).
+| | ... | Type: integer, string
+| | ... | - phy_cores - Number of physical cores. Type: integer
+| | ... | - rxq - Number of RX queues, default value: ${None}. Type: integer
+| | ...
+| | [Arguments] | ${phy_cores} | ${framesize} | ${rxq}=${None}
| | ...
-| | # Test Variables required for test teardown
| | Set Test Variable | ${framesize}
| | ${get_framesize}= | Get Frame Size | ${framesize}
| | ${max_rate}= | Calculate pps | ${s_limit} | ${get_framesize}
| | ...
-| | Given Add '${wt}' worker threads and '${rxq}' rxqueues in 3-node single-link circular topology
+| | Given Add worker threads and rxqueues to all DUTs | ${phy_cores} | ${rxq}
| | And Add PCI devices to all DUTs
| | And Run Keyword If | ${get_framesize} < ${1522}
| | ... | Add no multi seg to all DUTs
@@ -78,148 +85,49 @@
*** Test Cases ***
| tc01-78B-1t1c-ethip6-ip6base-ip6scale20k-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv6 routing config with \
-| | ... | 1 phy core, 1 receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 78B frames using single trial\
-| | ... | throughput test.
-| | ...
| | [Tags] | 78B | 1C
-| | ...
-| | [Template] | Check RR for ip6base-ip6scale
-| | wt=1 | rxq=1 | framesize=${78}
+| | phy_cores=${1} | framesize=${78}
| tc02-1518B-1t1c-ethip6-ip6base-ip6scale20k-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv6 routing config with \
-| | ... | 1 phy core, 1 receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 1518B frames using single trial\
-| | ... | throughput test.
-| | ...
| | [Tags] | 1518B | 1C
-| | ...
-| | [Template] | Check RR for ip6base-ip6scale
-| | wt=1 | rxq=1 | framesize=${1518}
+| | phy_cores=${1} | framesize=${1518}
| tc03-9000B-1t1c-ethip6-ip6base-ip6scale20k-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv6 routing config with \
-| | ... | 1 phy core, 1 receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 9000B frames using single trial\
-| | ... | throughput test.
-| | ...
| | [Tags] | 9000B | 1C
-| | ...
-| | [Template] | Check RR for ip6base-ip6scale
-| | wt=1 | rxq=1 | framesize=${9000}
+| | phy_cores=${1} | framesize=${9000}
| tc04-IMIX-1t1c-ethip6-ip6base-ip6scale20k-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv6 routing config with \
-| | ... | 1 phy core, 1 receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for IMIX_v4_1 frames using single trial\
-| | ... | throughput test.
-| | ... | IMIX_v4_1 = (28x64B; 16x570B; 4x1518B)
-| | ...
| | [Tags] | IMIX | 1C
-| | ...
-| | [Template] | Check RR for ip6base-ip6scale
-| | wt=1 | rxq=1 | framesize=IMIX_v4_1
+| | phy_cores=${1} | framesize=IMIX_v4_1
| tc05-78B-2t2c-ethip6-ip6base-ip6scale20k-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv6 routing config with \
-| | ... | 2 phy cores, 1 receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 78B frames using single trial\
-| | ... | throughput test.
-| | ...
| | [Tags] | 78B | 2C
-| | ...
-| | [Template] | Check RR for ip6base-ip6scale
-| | wt=2 | rxq=1 | framesize=${78}
+| | phy_cores=${2} | framesize=${78}
| tc06-1518B-2t2c-ethip6-ip6base-ip6scale20k-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv6 routing config with \
-| | ... | 2 phy cores, 1 receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 1518B frames using single trial\
-| | ... | throughput test.
-| | ...
| | [Tags] | 1518B | 2C
-| | ...
-| | [Template] | Check RR for ip6base-ip6scale
-| | wt=2 | rxq=1 | framesize=${1518}
+| | phy_cores=${2} | framesize=${1518}
| tc07-9000B-2t2c-ethip6-ip6base-ip6scale20k-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv6 routing config with \
-| | ... | 2 phy cores, 1 receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 9000B frames using single trial\
-| | ... | throughput test.
-| | ...
| | [Tags] | 9000B | 2C
-| | ...
-| | [Template] | Check RR for ip6base-ip6scale
-| | wt=2 | rxq=1 | framesize=${9000}
+| | phy_cores=${2} | framesize=${9000}
| tc08-IMIX-2t2c-ethip6-ip6base-ip6scale20k-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv6 routing config with \
-| | ... | 2 phy cores, 1 receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for IMIX_v4_1 frames using single trial\
-| | ... | throughput test.
-| | ... | IMIX_v4_1 = (28x64B; 16x570B; 4x1518B)
-| | ...
| | [Tags] | IMIX | 2C
-| | ...
-| | [Template] | Check RR for ip6base-ip6scale
-| | wt=2 | rxq=1 | framesize=IMIX_v4_1
+| | phy_cores=${2} | framesize=IMIX_v4_1
| tc09-78B-4t4c-ethip6-ip6base-ip6scale20k-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv6 routing config with \
-| | ... | 4 phy cores, 2 receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 78B frames using single trial\
-| | ... | throughput test.
-| | ...
| | [Tags] | 78B | 4C
-| | ...
-| | [Template] | Check RR for ip6base-ip6scale
-| | wt=4 | rxq=2 | framesize=${78}
+| | phy_cores=${4} | framesize=${78}
| tc10-1518B-4t4c-ethip6-ip6base-ip6scale20k-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv6 routing config with \
-| | ... | 4 phy cores, 2 receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 1518B frames using single trial\
-| | ... | throughput test.
-| | ...
| | [Tags] | 1518B | 4C
-| | ...
-| | [Template] | Check RR for ip6base-ip6scale
-| | wt=4 | rxq=2 | framesize=${1518}
+| | phy_cores=${4} | framesize=${1518}
| tc11-9000B-4t4c-ethip6-ip6base-ip6scale20k-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv6 routing config with \
-| | ... | 4 phy cores, 2 receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 9000B frames using single trial\
-| | ... | throughput test.
-| | ...
| | [Tags] | 9000B | 4C
-| | ...
-| | [Template] | Check RR for ip6base-ip6scale
-| | wt=4 | rxq=2 | framesize=${9000}
+| | phy_cores=${4} | framesize=${9000}
| tc12-IMIX-4t4c-ethip6-ip6base-ip6scale20k-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv6 routing config with \
-| | ... | 4 phy cores, 2 receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for IMIX_v4_1 frames using single trial\
-| | ... | throughput test.
-| | ... | IMIX_v4_1 = (28x64B; 16x570B; 4x1518B)
-| | ...
| | [Tags] | IMIX | 4C
-| | ...
-| | [Template] | Check RR for ip6base-ip6scale
-| | wt=4 | rxq=2 | framesize=IMIX_v4_1
+| | phy_cores=${4} | framesize=IMIX_v4_1
diff --git a/tests/vpp/perf/ip6/10ge2p1x710-ethip6-ip6scale2m-mrr.robot b/tests/vpp/perf/ip6/10ge2p1x710-ethip6-ip6scale2m-mrr.robot
index 8fb9eec6e3..20f0f8c708 100644
--- a/tests/vpp/perf/ip6/10ge2p1x710-ethip6-ip6scale2m-mrr.robot
+++ b/tests/vpp/perf/ip6/10ge2p1x710-ethip6-ip6scale2m-mrr.robot
@@ -25,6 +25,8 @@
| ...
| Test Teardown | Tear down performance mrr test
| ...
+| Test Template | Local template
+| ...
| Documentation | *Raw results IPv6 routing test cases*
| ...
| ... | *[Top] Network Topologies:* TG-DUT1-DUT2-TG 3-node circular topology
@@ -52,21 +54,26 @@
| ${traffic_profile}= | trex-sl-3n-ethip6-ip6dst${rts_per_flow}
*** Keywords ***
-| Check RR for ip6base-ip6scale
+| Local template
| | [Documentation]
-| | ... | [Cfg] DUT runs IPv6 routing config with ${wt} \
-| | ... | thread(s), ${wt} phy core(s), ${rxq} receive queue(s) per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for ${framesize} frames using single\
+| | ... | [Cfg] DUT runs IPv6 routing config.
+| | ... | Each DUT uses ${phy_cores} physical core(s) for worker threads.
+| | ... | [Ver] Measure MaxReceivedRate for ${framesize}B frames using single\
| | ... | trial throughput test.
| | ...
-| | [Arguments] | ${framesize} | ${wt} | ${rxq}
+| | ... | *Arguments:*
+| | ... | - framesize - Framesize in Bytes in integer or string (IMIX_v4_1).
+| | ... | Type: integer, string
+| | ... | - phy_cores - Number of physical cores. Type: integer
+| | ... | - rxq - Number of RX queues, default value: ${None}. Type: integer
+| | ...
+| | [Arguments] | ${phy_cores} | ${framesize} | ${rxq}=${None}
| | ...
-| | # Test Variables required for test teardown
| | Set Test Variable | ${framesize}
| | ${get_framesize}= | Get Frame Size | ${framesize}
| | ${max_rate}= | Calculate pps | ${s_limit} | ${get_framesize}
| | ...
-| | Given Add '${wt}' worker threads and '${rxq}' rxqueues in 3-node single-link circular topology
+| | Given Add worker threads and rxqueues to all DUTs | ${phy_cores} | ${rxq}
| | And Add PCI devices to all DUTs
| | And Run Keyword If | ${get_framesize} < ${1522}
| | ... | Add no multi seg to all DUTs
@@ -78,148 +85,49 @@
*** Test Cases ***
| tc01-78B-1t1c-ethip6-ip6base-ip6scale2m-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv6 routing config with \
-| | ... | 1 phy core, 1 receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 78B frames using single trial\
-| | ... | throughput test.
-| | ...
| | [Tags] | 78B | 1C
-| | ...
-| | [Template] | Check RR for ip6base-ip6scale
-| | wt=1 | rxq=1 | framesize=${78}
+| | phy_cores=${1} | framesize=${78}
| tc02-1518B-1t1c-ethip6-ip6base-ip6scale2m-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv6 routing config with \
-| | ... | 1 phy core, 1 receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 1518B frames using single trial\
-| | ... | throughput test.
-| | ...
| | [Tags] | 1518B | 1C
-| | ...
-| | [Template] | Check RR for ip6base-ip6scale
-| | wt=1 | rxq=1 | framesize=${1518}
+| | phy_cores=${1} | framesize=${1518}
| tc03-9000B-1t1c-ethip6-ip6base-ip6scale2m-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv6 routing config with \
-| | ... | 1 phy core, 1 receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 9000B frames using single trial\
-| | ... | throughput test.
-| | ...
| | [Tags] | 9000B | 1C
-| | ...
-| | [Template] | Check RR for ip6base-ip6scale
-| | wt=1 | rxq=1 | framesize=${9000}
+| | phy_cores=${1} | framesize=${9000}
| tc04-IMIX-1t1c-ethip6-ip6base-ip6scale2m-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv6 routing config with \
-| | ... | 1 phy core, 1 receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for IMIX_v4_1 frames using single trial\
-| | ... | throughput test.
-| | ... | IMIX_v4_1 = (28x64B; 16x570B; 4x1518B)
-| | ...
| | [Tags] | IMIX | 1C
-| | ...
-| | [Template] | Check RR for ip6base-ip6scale
-| | wt=1 | rxq=1 | framesize=IMIX_v4_1
+| | phy_cores=${1} | framesize=IMIX_v4_1
| tc05-78B-2t2c-ethip6-ip6base-ip6scale2m-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv6 routing config with \
-| | ... | 2 phy cores, 1 receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 78B frames using single trial\
-| | ... | throughput test.
-| | ...
| | [Tags] | 78B | 2C
-| | ...
-| | [Template] | Check RR for ip6base-ip6scale
-| | wt=2 | rxq=1 | framesize=${78}
+| | phy_cores=${2} | framesize=${78}
| tc06-1518B-2t2c-ethip6-ip6base-ip6scale2m-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv6 routing config with \
-| | ... | 2 phy cores, 1 receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 1518B frames using single trial\
-| | ... | throughput test.
-| | ...
| | [Tags] | 1518B | 2C
-| | ...
-| | [Template] | Check RR for ip6base-ip6scale
-| | wt=2 | rxq=1 | framesize=${1518}
+| | phy_cores=${2} | framesize=${1518}
| tc07-9000B-2t2c-ethip6-ip6base-ip6scale2m-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv6 routing config with \
-| | ... | 2 phy cores, 1 receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 9000B frames using single trial\
-| | ... | throughput test.
-| | ...
| | [Tags] | 9000B | 2C
-| | ...
-| | [Template] | Check RR for ip6base-ip6scale
-| | wt=2 | rxq=1 | framesize=${9000}
+| | phy_cores=${2} | framesize=${9000}
| tc08-IMIX-2t2c-ethip6-ip6base-ip6scale2m-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv6 routing config with \
-| | ... | 2 phy cores, 1 receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for IMIX_v4_1 frames using single trial\
-| | ... | throughput test.
-| | ... | IMIX_v4_1 = (28x64B; 16x570B; 4x1518B)
-| | ...
| | [Tags] | IMIX | 2C
-| | ...
-| | [Template] | Check RR for ip6base-ip6scale
-| | wt=2 | rxq=1 | framesize=IMIX_v4_1
+| | phy_cores=${2} | framesize=IMIX_v4_1
| tc09-78B-4t4c-ethip6-ip6base-ip6scale2m-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv6 routing config with \
-| | ... | 4 phy cores, 2 receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 78B frames using single trial\
-| | ... | throughput test.
-| | ...
| | [Tags] | 78B | 4C
-| | ...
-| | [Template] | Check RR for ip6base-ip6scale
-| | wt=4 | rxq=2 | framesize=${78}
+| | phy_cores=${4} | framesize=${78}
| tc10-1518B-4t4c-ethip6-ip6base-ip6scale2m-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv6 routing config with \
-| | ... | 4 phy cores, 2 receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 1518B frames using single trial\
-| | ... | throughput test.
-| | ...
| | [Tags] | 1518B | 4C
-| | ...
-| | [Template] | Check RR for ip6base-ip6scale
-| | wt=4 | rxq=2 | framesize=${1518}
+| | phy_cores=${4} | framesize=${1518}
| tc11-9000B-4t4c-ethip6-ip6base-ip6scale2m-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv6 routing config with \
-| | ... | 4 phy cores, 2 receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 9000B frames using single trial\
-| | ... | throughput test.
-| | ...
| | [Tags] | 9000B | 4C
-| | ...
-| | [Template] | Check RR for ip6base-ip6scale
-| | wt=4 | rxq=2 | framesize=${9000}
+| | phy_cores=${4} | framesize=${9000}
| tc12-IMIX-4t4c-ethip6-ip6base-ip6scale2m-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv6 routing config with \
-| | ... | 4 phy cores, 2 receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for IMIX_v4_1 frames using single trial\
-| | ... | throughput test.
-| | ... | IMIX_v4_1 = (28x64B; 16x570B; 4x1518B)
-| | ...
| | [Tags] | IMIX | 4C
-| | ...
-| | [Template] | Check RR for ip6base-ip6scale
-| | wt=4 | rxq=2 | framesize=IMIX_v4_1
+| | phy_cores=${4} | framesize=IMIX_v4_1
diff --git a/tests/vpp/perf/ip6/40ge2p1xl710-ethip6-ip6base-mrr.robot b/tests/vpp/perf/ip6/40ge2p1xl710-ethip6-ip6base-mrr.robot
index a0b41cbe52..99b882edf8 100644
--- a/tests/vpp/perf/ip6/40ge2p1xl710-ethip6-ip6base-mrr.robot
+++ b/tests/vpp/perf/ip6/40ge2p1xl710-ethip6-ip6base-mrr.robot
@@ -25,6 +25,8 @@
| ...
| Test Teardown | Tear down performance mrr test
| ...
+| Test Template | Local template
+| ...
| Documentation | *Raw results IPv6 routing test cases*
| ...
| ... | *[Top] Network Topologies:* TG-DUT1-DUT2-TG 3-node circular topology
@@ -51,23 +53,28 @@
| ${traffic_profile} | trex-sl-3n-ethip6-ip6src253
*** Keywords ***
-| Check RR for ethip6-ip6base
+| Local template
| | [Documentation]
-| | ... | [Cfg] DUT runs IPv6 routing config with ${wt} thread(s), ${wt}\
-| | ... | phy core(s), ${rxq} receive queue(s) per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for ${framesize} frames using single\
+| | ... | [Cfg] DUT runs IPv6 routing config.
+| | ... | Each DUT uses ${phy_cores} physical core(s) for worker threads.
+| | ... | [Ver] Measure MaxReceivedRate for ${framesize}B frames using single\
| | ... | trial throughput test.
| | ...
-| | [Arguments] | ${framesize} | ${wt} | ${rxq}
+| | ... | *Arguments:*
+| | ... | - framesize - Framesize in Bytes in integer or string (IMIX_v4_1).
+| | ... | Type: integer, string
+| | ... | - phy_cores - Number of physical cores. Type: integer
+| | ... | - rxq - Number of RX queues, default value: ${None}. Type: integer
+| | ...
+| | [Arguments] | ${phy_cores} | ${framesize} | ${rxq}=${None}
| | ...
-| | # Test Variables required for test teardown
| | Set Test Variable | ${framesize}
| | ${get_framesize}= | Get Frame Size | ${framesize}
| | ${max_rate}= | Calculate pps | ${s_24.5G} | ${get_framesize}
| | ${max_rate}= | Set Variable If
| | ... | ${max_rate} > ${s_18.75Mpps} | ${s_18.75Mpps} | ${max_rate}
| | ...
-| | Given Add '${wt}' worker threads and '${rxq}' rxqueues in 3-node single-link circular topology
+| | Given Add worker threads and rxqueues to all DUTs | ${phy_cores} | ${rxq}
| | And Add PCI devices to all DUTs
| | And Run Keyword If | ${get_framesize} < ${1522}
| | ... | Add no multi seg to all DUTs
@@ -80,148 +87,49 @@
*** Test Cases ***
| tc01-78B-1t1c-ethip6-ip6base-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv6 routing config with 1 phy core, \
-| | ... | 1 receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 64B frames using single trial\
-| | ... | throughput test.
-| | ...
| | [Tags] | 78B | 1C
-| | ...
-| | [Template] | Check RR for ethip6-ip6base
-| | framesize=${78} | wt=1 | rxq=1
+| | framesize=${78} | phy_cores=${1}
| tc02-1518B-1t1c-ethip6-ip6base-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv6 routing config with 1 phy core, \
-| | ... | 1 receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 1518B frames using single trial\
-| | ... | throughput test.
-| | ...
| | [Tags] | 1518B | 1C
-| | ...
-| | [Template] | Check RR for ethip6-ip6base
-| | framesize=${1518} | wt=1 | rxq=1
+| | framesize=${1518} | phy_cores=${1}
| tc03-9000B-1t1c-ethip6-ip6base-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv6 routing config with 1 phy core, \
-| | ... | 1 receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 9000B frames using single trial\
-| | ... | throughput test.
-| | ...
| | [Tags] | 9000B | 1C
-| | ...
-| | [Template] | Check RR for ethip6-ip6base
-| | framesize=${9000} | wt=1 | rxq=1
+| | framesize=${9000} | phy_cores=${1}
| tc04-IMIX-1t1c-ethip6-ip6base-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv6 routing config with 1 phy core, \
-| | ... | 1 receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for IMIX_v4_1 frames using single trial\
-| | ... | throughput test.
-| | ... | IMIX_v4_1 = (28x64B;16x570B;4x1518B)
-| | ...
| | [Tags] | IMIX | 1C
-| | ...
-| | [Template] | Check RR for ethip6-ip6base
-| | framesize=IMIX_v4_1 | wt=1 | rxq=1
+| | framesize=IMIX_v4_1 | phy_cores=${1}
| tc05-78B-2t2c-ethip6-ip6base-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv6 routing config with 2 phy cores, \
-| | ... | 1 receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 64B frames using single trial\
-| | ... | throughput test.
-| | ...
| | [Tags] | 78B | 2C
-| | ...
-| | [Template] | Check RR for ethip6-ip6base
-| | framesize=${78} | wt=2 | rxq=1
+| | framesize=${78} | phy_cores=${2}
| tc06-1518B-2t2c-ethip6-ip6base-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv6 routing config with 2 phy cores, \
-| | ... | 1 receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 1518B frames using single trial\
-| | ... | throughput test.
-| | ...
| | [Tags] | 1518B | 2C
-| | ...
-| | [Template] | Check RR for ethip6-ip6base
-| | framesize=${1518} | wt=2 | rxq=1
+| | framesize=${1518} | phy_cores=${2}
| tc07-9000B-2t2c-ethip6-ip6base-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv6 routing config with 2 phy cores, \
-| | ... | 1 receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 9000B frames using single trial\
-| | ... | throughput test.
-| | ...
| | [Tags] | 9000B | 2C
-| | ...
-| | [Template] | Check RR for ethip6-ip6base
-| | framesize=${9000} | wt=2 | rxq=1
+| | framesize=${9000} | phy_cores=${2}
| tc08-IMIX-2t2c-ethip6-ip6base-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv6 routing config with 2 phy cores, \
-| | ... | 1 receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for IMIX_v4_1 frames using single trial\
-| | ... | throughput test.
-| | ... | IMIX_v4_1 = (28x64B;16x570B;4x1518B)
-| | ...
| | [Tags] | IMIX | 2C
-| | ...
-| | [Template] | Check RR for ethip6-ip6base
-| | framesize=IMIX_v4_1 | wt=2 | rxq=1
+| | framesize=IMIX_v4_1 | phy_cores=${2}
| tc09-78B-4t4c-ethip6-ip6base-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv6 routing config with 4 phy cores, \
-| | ... | 2 receive queues per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 64B frames using single trial\
-| | ... | throughput test.
-| | ...
| | [Tags] | 78B | 4C
-| | ...
-| | [Template] | Check RR for ethip6-ip6base
-| | framesize=${78} | wt=4 | rxq=2
+| | framesize=${78} | phy_cores=${4}
| tc10-1518B-4t4c-ethip6-ip6base-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv6 routing config with 4 phy cores, \
-| | ... | 2 receive queues per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 1518B frames using single trial\
-| | ... | throughput test.
-| | ...
| | [Tags] | 1518B | 4C
-| | ...
-| | [Template] | Check RR for ethip6-ip6base
-| | framesize=${1518} | wt=4 | rxq=2
+| | framesize=${1518} | phy_cores=${4}
| tc11-9000B-4t4c-ethip6-ip6base-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv6 routing config with 4 phy cores, \
-| | ... | 2 receive queues per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 9000B frames using single trial\
-| | ... | throughput test.
-| | ...
| | [Tags] | 9000B | 4C
-| | ...
-| | [Template] | Check RR for ethip6-ip6base
-| | framesize=${9000} | wt=4 | rxq=2
+| | framesize=${9000} | phy_cores=${4}
| tc12-IMIX-4t4c-ethip6-ip6base-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv6 routing config with 4 phy cores, \
-| | ... | 2 receive queues per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for IMIX_v4_1 frames using single trial\
-| | ... | throughput test.
-| | ... | IMIX_v4_1 = (28x64B;16x570B;4x1518B)
-| | ...
| | [Tags] | IMIX | 4C
-| | ...
-| | [Template] | Check RR for ethip6-ip6base
-| | framesize=IMIX_v4_1 | wt=4 | rxq=2
+| | framesize=IMIX_v4_1 | phy_cores=${4}
diff --git a/tests/vpp/perf/ip6/40ge2p1xl710-ethip6-ip6base-ndrpdrdisc.robot b/tests/vpp/perf/ip6/40ge2p1xl710-ethip6-ip6base-ndrpdrdisc.robot
index a78019ab5c..55c61b99fa 100644
--- a/tests/vpp/perf/ip6/40ge2p1xl710-ethip6-ip6base-ndrpdrdisc.robot
+++ b/tests/vpp/perf/ip6/40ge2p1xl710-ethip6-ip6base-ndrpdrdisc.robot
@@ -68,7 +68,7 @@
| | ${binary_min}= | Set Variable | ${min_rate}
| | ${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
+| | Given Add worker threads and rxqueues to all DUTs | 1
| | And Add PCI devices to all DUTs
| | And Add no multi seg to all DUTs
| | And Add DPDK dev default RXD to all DUTs | 2048
@@ -91,7 +91,7 @@
| | ${binary_min}= | Set Variable | ${min_rate}
| | ${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
+| | Given Add worker threads and rxqueues to all DUTs | 1
| | And Add PCI devices to all DUTs
| | And Add no multi seg to all DUTs
| | And Add DPDK dev default RXD to all DUTs | 2048
@@ -114,7 +114,7 @@
| | ${binary_min}= | Set Variable | ${min_rate}
| | ${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
+| | Given Add worker threads and rxqueues to all DUTs | 2
| | And Add PCI devices to all DUTs
| | And Add no multi seg to all DUTs
| | And Add DPDK dev default RXD to all DUTs | 2048
@@ -137,7 +137,7 @@
| | ${binary_min}= | Set Variable | ${min_rate}
| | ${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
+| | Given Add worker threads and rxqueues to all DUTs | 2
| | And Add PCI devices to all DUTs
| | And Add no multi seg to all DUTs
| | And Add DPDK dev default RXD to all DUTs | 2048
@@ -160,7 +160,7 @@
| | ${binary_min}= | Set Variable | ${min_rate}
| | ${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
+| | Given Add worker threads and rxqueues to all DUTs | 4
| | And Add PCI devices to all DUTs
| | And Add no multi seg to all DUTs
| | And Add DPDK dev default RXD to all DUTs | 2048
@@ -183,7 +183,7 @@
| | ${binary_min}= | Set Variable | ${min_rate}
| | ${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
+| | Given Add worker threads and rxqueues to all DUTs | 4
| | And Add PCI devices to all DUTs
| | And Add no multi seg to all DUTs
| | And Add DPDK dev default RXD to all DUTs | 2048
diff --git a/tests/vpp/perf/ip6_tunnels/10ge2p1x520-ethip6lispip4-ip6base-ndrpdrdisc.robot b/tests/vpp/perf/ip6_tunnels/10ge2p1x520-ethip6lispip4-ip6base-ndrpdrdisc.robot
index 7f5f8d29d3..ba0a51a5b2 100644
--- a/tests/vpp/perf/ip6_tunnels/10ge2p1x520-ethip6lispip4-ip6base-ndrpdrdisc.robot
+++ b/tests/vpp/perf/ip6_tunnels/10ge2p1x520-ethip6lispip4-ip6base-ndrpdrdisc.robot
@@ -66,7 +66,7 @@
| | ${binary_min}= | Set Variable | ${min_rate}
| | ${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
+| | Given Add worker threads and rxqueues to all DUTs | 1
| | And Add PCI devices to all DUTs
| | And Add no multi seg to all DUTs
| | And Apply startup configuration on all VPP DUTs
@@ -96,7 +96,7 @@
| | ${binary_min}= | Set Variable | ${min_rate}
| | ${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
+| | Given Add worker threads and rxqueues to all DUTs | 1
| | And Add PCI devices to all DUTs
| | And Add no multi seg to all DUTs
| | And Apply startup configuration on all VPP DUTs
@@ -127,7 +127,7 @@
| | ${binary_min}= | Set Variable | ${min_rate}
| | ${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
+| | Given Add worker threads and rxqueues to all DUTs | 1
| | And Add PCI devices to all DUTs
| | And Add no multi seg to all DUTs
| | And Apply startup configuration on all VPP DUTs
@@ -157,7 +157,7 @@
| | ${binary_min}= | Set Variable | ${min_rate}
| | ${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
+| | Given Add worker threads and rxqueues to all DUTs | 1
| | And Add PCI devices to all DUTs
| | And Add no multi seg to all DUTs
| | And Apply startup configuration on all VPP DUTs
@@ -188,7 +188,7 @@
| | ${binary_min}= | Set Variable | ${min_rate}
| | ${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
+| | Given Add worker threads and rxqueues to all DUTs | 1
| | And Add PCI devices to all DUTs
| | And Apply startup configuration on all VPP DUTs
| | When Initialize LISP IPv6 over IPv4 forwarding in 3-node circular topology
@@ -217,7 +217,7 @@
| | ${binary_min}= | Set Variable | ${min_rate}
| | ${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
+| | Given Add worker threads and rxqueues to all DUTs | 1
| | And Add PCI devices to all DUTs
| | And Apply startup configuration on all VPP DUTs
| | When Initialize LISP IPv6 over IPv4 forwarding in 3-node circular topology
@@ -247,7 +247,7 @@
| | ${binary_min}= | Set Variable | ${min_rate}
| | ${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
+| | Given Add worker threads and rxqueues to all DUTs | 2
| | And Add PCI devices to all DUTs
| | And Add no multi seg to all DUTs
| | And Apply startup configuration on all VPP DUTs
@@ -277,7 +277,7 @@
| | ${binary_min}= | Set Variable | ${min_rate}
| | ${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
+| | Given Add worker threads and rxqueues to all DUTs | 2
| | And Add PCI devices to all DUTs
| | And Add no multi seg to all DUTs
| | And Apply startup configuration on all VPP DUTs
@@ -308,7 +308,7 @@
| | ${binary_min}= | Set Variable | ${min_rate}
| | ${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
+| | Given Add worker threads and rxqueues to all DUTs | 2
| | And Add PCI devices to all DUTs
| | And Add no multi seg to all DUTs
| | And Apply startup configuration on all VPP DUTs
@@ -338,7 +338,7 @@
| | ${binary_min}= | Set Variable | ${min_rate}
| | ${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
+| | Given Add worker threads and rxqueues to all DUTs | 2
| | And Add PCI devices to all DUTs
| | And Add no multi seg to all DUTs
| | And Apply startup configuration on all VPP DUTs
@@ -369,7 +369,7 @@
| | ${binary_min}= | Set Variable | ${min_rate}
| | ${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
+| | Given Add worker threads and rxqueues to all DUTs | 2
| | And Add PCI devices to all DUTs
| | And Apply startup configuration on all VPP DUTs
| | When Initialize LISP IPv6 over IPv4 forwarding in 3-node circular topology
@@ -398,7 +398,7 @@
| | ${binary_min}= | Set Variable | ${min_rate}
| | ${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
+| | Given Add worker threads and rxqueues to all DUTs | 2
| | And Add PCI devices to all DUTs
| | And Apply startup configuration on all VPP DUTs
| | When Initialize LISP IPv6 over IPv4 forwarding in 3-node circular topology
@@ -428,7 +428,7 @@
| | ${binary_min}= | Set Variable | ${min_rate}
| | ${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
+| | Given Add worker threads and rxqueues to all DUTs | 4
| | And Add PCI devices to all DUTs
| | And Add no multi seg to all DUTs
| | And Apply startup configuration on all VPP DUTs
@@ -458,7 +458,7 @@
| | ${binary_min}= | Set Variable | ${min_rate}
| | ${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
+| | Given Add worker threads and rxqueues to all DUTs | 4
| | And Add PCI devices to all DUTs
| | And Add no multi seg to all DUTs
| | And Apply startup configuration on all VPP DUTs
@@ -489,7 +489,7 @@
| | ${binary_min}= | Set Variable | ${min_rate}
| | ${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
+| | Given Add worker threads and rxqueues to all DUTs | 4
| | And Add PCI devices to all DUTs
| | And Add no multi seg to all DUTs
| | And Apply startup configuration on all VPP DUTs
@@ -519,7 +519,7 @@
| | ${binary_min}= | Set Variable | ${min_rate}
| | ${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
+| | Given Add worker threads and rxqueues to all DUTs | 4
| | And Add PCI devices to all DUTs
| | And Add no multi seg to all DUTs
| | And Apply startup configuration on all VPP DUTs
@@ -550,7 +550,7 @@
| | ${binary_min}= | Set Variable | ${min_rate}
| | ${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
+| | Given Add worker threads and rxqueues to all DUTs | 4
| | And Add PCI devices to all DUTs
| | And Apply startup configuration on all VPP DUTs
| | When Initialize LISP IPv6 over IPv4 forwarding in 3-node circular topology
@@ -579,7 +579,7 @@
| | ${binary_min}= | Set Variable | ${min_rate}
| | ${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
+| | Given Add worker threads and rxqueues to all DUTs | 4
| | And Add PCI devices to all DUTs
| | And Apply startup configuration on all VPP DUTs
| | When Initialize LISP IPv6 over IPv4 forwarding in 3-node circular topology
diff --git a/tests/vpp/perf/ip6_tunnels/10ge2p1x520-ethip6lispip6-ip6base-ndrpdrdisc.robot b/tests/vpp/perf/ip6_tunnels/10ge2p1x520-ethip6lispip6-ip6base-ndrpdrdisc.robot
index 993b014dc2..cc3ec136fa 100644
--- a/tests/vpp/perf/ip6_tunnels/10ge2p1x520-ethip6lispip6-ip6base-ndrpdrdisc.robot
+++ b/tests/vpp/perf/ip6_tunnels/10ge2p1x520-ethip6lispip6-ip6base-ndrpdrdisc.robot
@@ -66,7 +66,7 @@
| | ${binary_min}= | Set Variable | ${min_rate}
| | ${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
+| | Given Add worker threads and rxqueues to all DUTs | 1
| | And Add PCI devices to all DUTs
| | And Add no multi seg to all DUTs
| | And Apply startup configuration on all VPP DUTs
@@ -96,7 +96,7 @@
| | ${binary_min}= | Set Variable | ${min_rate}
| | ${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
+| | Given Add worker threads and rxqueues to all DUTs | 1
| | And Add PCI devices to all DUTs
| | And Add no multi seg to all DUTs
| | And Apply startup configuration on all VPP DUTs
@@ -127,7 +127,7 @@
| | ${binary_min}= | Set Variable | ${min_rate}
| | ${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
+| | Given Add worker threads and rxqueues to all DUTs | 1
| | And Add PCI devices to all DUTs
| | And Add no multi seg to all DUTs
| | And Apply startup configuration on all VPP DUTs
@@ -157,7 +157,7 @@
| | ${binary_min}= | Set Variable | ${min_rate}
| | ${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
+| | Given Add worker threads and rxqueues to all DUTs | 1
| | And Add PCI devices to all DUTs
| | And Add no multi seg to all DUTs
| | And Apply startup configuration on all VPP DUTs
@@ -188,7 +188,7 @@
| | ${binary_min}= | Set Variable | ${min_rate}
| | ${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
+| | Given Add worker threads and rxqueues to all DUTs | 1
| | And Add PCI devices to all DUTs
| | And Apply startup configuration on all VPP DUTs
| | When Initialize LISP IPv6 forwarding in 3-node circular topology
@@ -217,7 +217,7 @@
| | ${binary_min}= | Set Variable | ${min_rate}
| | ${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
+| | Given Add worker threads and rxqueues to all DUTs | 1
| | And Add PCI devices to all DUTs
| | And Apply startup configuration on all VPP DUTs
| | When Initialize LISP IPv6 forwarding in 3-node circular topology
@@ -247,7 +247,7 @@
| | ${binary_min}= | Set Variable | ${min_rate}
| | ${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
+| | Given Add worker threads and rxqueues to all DUTs | 2
| | And Add PCI devices to all DUTs
| | And Add no multi seg to all DUTs
| | And Apply startup configuration on all VPP DUTs
@@ -277,7 +277,7 @@
| | ${binary_min}= | Set Variable | ${min_rate}
| | ${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
+| | Given Add worker threads and rxqueues to all DUTs | 2
| | And Add PCI devices to all DUTs
| | And Add no multi seg to all DUTs
| | And Apply startup configuration on all VPP DUTs
@@ -308,7 +308,7 @@
| | ${binary_min}= | Set Variable | ${min_rate}
| | ${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
+| | Given Add worker threads and rxqueues to all DUTs | 2
| | And Add PCI devices to all DUTs
| | And Add no multi seg to all DUTs
| | And Apply startup configuration on all VPP DUTs
@@ -338,7 +338,7 @@
| | ${binary_min}= | Set Variable | ${min_rate}
| | ${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
+| | Given Add worker threads and rxqueues to all DUTs | 2
| | And Add PCI devices to all DUTs
| | And Add no multi seg to all DUTs
| | And Apply startup configuration on all VPP DUTs
@@ -369,7 +369,7 @@
| | ${binary_min}= | Set Variable | ${min_rate}
| | ${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
+| | Given Add worker threads and rxqueues to all DUTs | 2
| | And Add PCI devices to all DUTs
| | And Apply startup configuration on all VPP DUTs
| | When Initialize LISP IPv6 forwarding in 3-node circular topology
@@ -398,7 +398,7 @@
| | ${binary_min}= | Set Variable | ${min_rate}
| | ${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
+| | Given Add worker threads and rxqueues to all DUTs | 2
| | And Add PCI devices to all DUTs
| | And Apply startup configuration on all VPP DUTs
| | When Initialize LISP IPv6 forwarding in 3-node circular topology
@@ -428,7 +428,7 @@
| | ${binary_min}= | Set Variable | ${min_rate}
| | ${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
+| | Given Add worker threads and rxqueues to all DUTs | 4
| | And Add PCI devices to all DUTs
| | And Add no multi seg to all DUTs
| | And Apply startup configuration on all VPP DUTs
@@ -458,7 +458,7 @@
| | ${binary_min}= | Set Variable | ${min_rate}
| | ${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
+| | Given Add worker threads and rxqueues to all DUTs | 4
| | And Add PCI devices to all DUTs
| | And Add no multi seg to all DUTs
| | And Apply startup configuration on all VPP DUTs
@@ -489,7 +489,7 @@
| | ${binary_min}= | Set Variable | ${min_rate}
| | ${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
+| | Given Add worker threads and rxqueues to all DUTs | 4
| | And Add PCI devices to all DUTs
| | And Add no multi seg to all DUTs
| | And Apply startup configuration on all VPP DUTs
@@ -519,7 +519,7 @@
| | ${binary_min}= | Set Variable | ${min_rate}
| | ${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
+| | Given Add worker threads and rxqueues to all DUTs | 4
| | And Add PCI devices to all DUTs
| | And Add no multi seg to all DUTs
| | And Apply startup configuration on all VPP DUTs
@@ -550,7 +550,7 @@
| | ${binary_min}= | Set Variable | ${min_rate}
| | ${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
+| | Given Add worker threads and rxqueues to all DUTs | 4
| | And Add PCI devices to all DUTs
| | And Apply startup configuration on all VPP DUTs
| | When Initialize LISP IPv6 forwarding in 3-node circular topology
@@ -579,7 +579,7 @@
| | ${binary_min}= | Set Variable | ${min_rate}
| | ${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
+| | Given Add worker threads and rxqueues to all DUTs | 4
| | And Add PCI devices to all DUTs
| | And Apply startup configuration on all VPP DUTs
| | When Initialize LISP IPv6 forwarding in 3-node circular topology
diff --git a/tests/vpp/perf/l2/10ge2p1vic1227-eth-l2bdbasemaclrn-ndrpdrdisc.robot b/tests/vpp/perf/l2/10ge2p1vic1227-eth-l2bdbasemaclrn-ndrpdrdisc.robot
index 9a2f26e887..2f09211ecb 100644
--- a/tests/vpp/perf/l2/10ge2p1vic1227-eth-l2bdbasemaclrn-ndrpdrdisc.robot
+++ b/tests/vpp/perf/l2/10ge2p1vic1227-eth-l2bdbasemaclrn-ndrpdrdisc.robot
@@ -56,21 +56,20 @@
*** Keywords ***
| L2 Bridge Domain NDR Binary Search
-| | [Arguments] | ${framesize} | ${min_rate} | ${wt} | ${rxq}
-| | # Test Variables required for test teardown
+| | [Documentation]
+| | ... | [Cfg] DUT runs L2BD switching config with with\
+| | ... | ${phy_cores} phy core.
+| | ... | [Ver] Find NDR for ${framesize}B Byte frames using binary search\
+| | ... | start at 10GE linerate, step 50kpps.
+| | [Arguments] | ${framesize} | ${phy_cores} | ${min_rate}=${50000}
+| | ...
| | Set Test Variable | ${framesize}
| | Set Test Variable | ${min_rate}
| | ${max_rate}= | Calculate pps | ${s_limit} | ${framesize}
| | ${binary_min}= | Set Variable | ${min_rate}
| | ${binary_max}= | Set Variable | ${max_rate}
| | ${threshold}= | Set Variable | ${min_rate}
-| | Set Test Documentation | [Cfg] DUT runs L2BD switching config with ${wt}\
-| | Set Test Documentation | thread, ${wt} phy core, ${rxq}\ | append=True
-| | Set Test Documentation | receive queue per NIC port. | append=True
-| | Set Test Documentation | [Ver] Find NDR for ${framesize} Byte\ | append=True
-| | Set Test Documentation | frames using binary search start at\ | append=True
-| | Set Test Documentation | 10GE linerate, step ${threshold}pps. | append=True
-| | Add '${wt}' worker threads and '${rxq}' rxqueues in 3-node single-link circular topology
+| | Add worker threads and rxqueues to all DUTs | ${phy_cores}
| | Add PCI devices to all DUTs
| | Run Keyword If | ${framesize} < ${1522} | Add no multi seg to all DUTs
| | Apply startup configuration on all VPP DUTs
@@ -80,23 +79,20 @@
| | ... | ${min_rate} | ${max_rate} | ${threshold}
| L2 Bridge Domain PDR Binary Search
-| | [Arguments] | ${framesize} | ${min_rate} | ${wt} | ${rxq}
-| | # Test Variables required for test teardown
+| | [Documentation]
+| | ... | [Cfg] DUT runs L2BD switching config with with\
+| | ... | ${phy_cores} phy core.
+| | ... | [Ver] Find PDR for ${framesize}B Byte frames using binary search\
+| | ... | start at 10GE linerate, step 50kpps.
+| | [Arguments] | ${framesize} | ${phy_cores} | ${min_rate}=${50000}
+| | ...
| | Set Test Variable | ${framesize}
| | Set Test Variable | ${min_rate}
| | ${max_rate}= | Calculate pps | ${s_limit} | ${framesize}
| | ${binary_min}= | Set Variable | ${min_rate}
| | ${binary_max}= | Set Variable | ${max_rate}
| | ${threshold}= | Set Variable | ${min_rate}
-| | Set Test Documentation | [Cfg] DUT runs L2BD switching config with ${wt}\
-| | Set Test Documentation | thread, ${wt} phy core, ${rxq}\ | append=True
-| | Set Test Documentation | receive queue per NIC port. | append=True
-| | Set Test Documentation | [Ver] Find PDR for ${framesize} Byte\ | append=True
-| | Set Test Documentation | frames using binary search start at\ | append=True
-| | Set Test Documentation | 10GE linerate, step ${threshold}pps, | append=True
-| | Set Test Documentation | LT=${perf_pdr_loss_acceptance} | append=True
-| | Set Test Documentation | ${perf_pdr_loss_acceptance_type}. | append=True
-| | Add '${wt}' worker threads and '${rxq}' rxqueues in 3-node single-link circular topology
+| | Add worker threads and rxqueues to all DUTs | ${phy_cores}
| | Add PCI devices to all DUTs
| | Run Keyword If | ${framesize} < ${1522} | Add no multi seg to all DUTs
| | Apply startup configuration on all VPP DUTs
@@ -108,181 +104,91 @@
*** Test Cases ***
| tc01-64B-1t1c-eth-l2bdbasemaclrn-ndrdisc
-| | ... | framesize=${64} | min_rate=${50000} | wt=1 | rxq=1
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with with\
-| | ... | 1 phy core, 1 receive queue per NIC port.
-| | ... | [Ver] Find NDR for 64 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 50kpps.
| | [Tags] | 64B | 1C | NDRDISC
| | [Template] | L2 Bridge Domain NDR Binary Search
+| | framesize=${64} | phy_cores=${1}
| tc02-64B-1t1c-eth-l2bdbasemaclrn-pdrdisc
-| | ... | framesize=${64} | min_rate=${50000} | wt=1 | rxq=1
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with with\
-| | ... | 1 phy core, 1 receive queue per NIC port.
-| | ... | [Ver] Find PDR for 64 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 50kpps, LT=0.5%.
| | [Tags] | 64B | 1C | PDRDISC | SKIP_PATCH
| | [Template] | L2 Bridge Domain PDR Binary Search
+| | framesize=${64} | phy_cores=${1}
| tc03-1518B-1t1c-eth-l2bdbasemaclrn-ndrdisc
-| | ... | framesize=${1518} | min_rate=${50000} | wt=1 | rxq=1
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with with\
-| | ... | 1 phy core, 1 receive queue per NIC port.
-| | ... | [Ver] Find NDR for 1518 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 50kpps.
| | [Tags] | 1518B | 1C | NDRDISC
| | [Template] | L2 Bridge Domain NDR Binary Search
+| | framesize=${1518} | phy_cores=${1}
| tc04-1518B-1t1c-eth-l2bdbasemaclrn-pdrdisc
-| | ... | framesize=${1518} | min_rate=${50000} | wt=1 | rxq=1
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with with\
-| | ... | 1 phy core, 1 receive queue per NIC port.
-| | ... | [Ver] Find PDR for 1518 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 50kpps, LT=0.5%.
| | [Tags] | 1518B | 1C | PDRDISC | SKIP_PATCH
| | [Template] | L2 Bridge Domain PDR Binary Search
+| | framesize=${1518} | phy_cores=${1}
| tc05-9000B-1t1c-eth-l2bdbasemaclrn-ndrdisc
-| | ... | framesize=${9000} | min_rate=${10000} | wt=1 | rxq=1
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with with\
-| | ... | 1 phy core, 1 receive queue per NIC port.
-| | ... | [Ver] Find NDR for 9000 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 10kpps.
| | [Tags] | 9000B | 1C | NDRDISC
| | [Template] | L2 Bridge Domain NDR Binary Search
+| | framesize=${9000} | phy_cores=${1}
| tc06-9000B-1t1c-eth-l2bdbasemaclrn-pdrdisc
-| | ... | framesize=${9000} | min_rate=${10000} | wt=1 | rxq=1
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with with\
-| | ... | 1 phy core, 1 receive queue per NIC port.
-| | ... | [Ver] Find PDR for 9000 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 10kpps, LT=0.5%.
| | [Tags] | 9000B | 1C | PDRDISC | SKIP_PATCH
| | [Template] | L2 Bridge Domain PDR Binary Search
+| | framesize=${9000} | phy_cores=${1}
| tc07-64B-2t2c-eth-l2bdbasemaclrn-ndrdisc
-| | ... | framesize=${64} | min_rate=${50000} | wt=2 | rxq=1
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with with\
-| | ... | 2 phy cores, 1 receive queue per NIC port.
-| | ... | [Ver] Find NDR for 64 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 50kpps.
| | [Tags] | 64B | 2C | NDRDISC
| | [Template] | L2 Bridge Domain NDR Binary Search
+| | framesize=${64} | phy_cores=${2}
| tc08-64B-2t2c-eth-l2bdbasemaclrn-pdrdisc
-| | ... | framesize=${64} | min_rate=${50000} | wt=2 | rxq=1
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with with\
-| | ... | 2 phy cores, 1 receive queue per NIC port.
-| | ... | [Ver] Find PDR for 64 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 50kpps, LT=0.5%.
| | [Tags] | 64B | 2C | PDRDISC | SKIP_PATCH
| | [Template] | L2 Bridge Domain PDR Binary Search
+| | framesize=${64} | phy_cores=${2}
| tc09-1518B-2t2c-eth-l2bdbasemaclrn-ndrdisc
-| | ... | framesize=${1518} | min_rate=${50000} | wt=2 | rxq=1
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with with\
-| | ... | 2 phy cores, 1 receive queue per NIC port.
-| | ... | [Ver] Find NDR for 1518 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 50kpps.
| | [Tags] | 1518B | 2C | NDRDISC | SKIP_PATCH
| | [Template] | L2 Bridge Domain NDR Binary Search
+| | framesize=${1518} | phy_cores=${2}
| tc10-1518B-2t2c-eth-l2bdbasemaclrn-pdrdisc
-| | ... | framesize=${1518} | min_rate=${50000} | wt=2 | rxq=1
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with with\
-| | ... | 2 phy cores, 1 receive queue per NIC port.
-| | ... | [Ver] Find PDR for 1518 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 50kpps, LT=0.5%.
| | [Tags] | 1518B | 2C | PDRDISC | SKIP_PATCH
| | [Template] | L2 Bridge Domain PDR Binary Search
+| | framesize=${1518} | phy_cores=${2}
| tc11-9000B-2t2c-eth-l2bdbasemaclrn-ndrdisc
-| | ... | framesize=${9000} | min_rate=${10000} | wt=2 | rxq=1
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with with\
-| | ... | 2 phy cores, 1 receive queue per NIC port.
-| | ... | [Ver] Find NDR for 9000 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 10kpps.
| | [Tags] | 9000B | 2C | NDRDISC | SKIP_PATCH
| | [Template] | L2 Bridge Domain NDR Binary Search
+| | framesize=${9000} | phy_cores=${2}
| tc12-9000B-2t2c-eth-l2bdbasemaclrn-pdrdisc
-| | ... | framesize=${9000} | min_rate=${10000} | wt=2 | rxq=1
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with with\
-| | ... | 2 phy cores, 1 receive queue per NIC port.
-| | ... | [Ver] Find PDR for 9000 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 10kpps, LT=0.5%.
| | [Tags] | 9000B | 2C | PDRDISC | SKIP_PATCH
| | [Template] | L2 Bridge Domain PDR Binary Search
+| | framesize=${9000} | phy_cores=${2}
| tc13-64B-4t4c-eth-l2bdbasemaclrn-ndrdisc
-| | ... | framesize=${64} | min_rate=${50000} | wt=4 | rxq=2
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with with\
-| | ... | 4 phy cores, 2 receive queues per NIC port.
-| | ... | [Ver] Find NDR for 64 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 50kpps.
| | [Tags] | 64B | 4C | NDRDISC
| | [Template] | L2 Bridge Domain NDR Binary Search
+| | framesize=${64} | phy_cores=${4}
| tc14-64B-4t4c-eth-l2bdbasemaclrn-pdrdisc
-| | ... | framesize=${64} | min_rate=${50000} | wt=4 | rxq=2
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with with\
-| | ... | 4 phy cores, 2 receive queues per NIC port.
-| | ... | [Ver] Find PDR for 64 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 50kpps, LT=0.5%.
| | [Tags] | 64B | 4C | PDRDISC | SKIP_PATCH
| | [Template] | L2 Bridge Domain PDR Binary Search
+| | framesize=${64} | phy_cores=${4}
| tc15-1518B-4t4c-eth-l2bdbasemaclrn-ndrdisc
-| | ... | framesize=${1518} | min_rate=${50000} | wt=4 | rxq=2
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with with\
-| | ... | 4 phy cores, 2 receive queues per NIC port.
-| | ... | [Ver] Find NDR for 1518 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 50kpps.
| | [Tags] | 1518B | 4C | NDRDISC | SKIP_PATCH
| | [Template] | L2 Bridge Domain NDR Binary Search
+| | framesize=${1518} | phy_cores=${4}
| tc16-1518B-4t4c-eth-l2bdbasemaclrn-pdrdisc
-| | ... | framesize=${1518} | min_rate=${50000} | wt=4 | rxq=2
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with with\
-| | ... | 4 phy cores, 2 receive queues per NIC port.
-| | ... | [Ver] Find PDR for 1518 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 50kpps, LT=0.5%.
| | [Tags] | 1518B | 4C | PDRDISC | SKIP_PATCH
| | [Template] | L2 Bridge Domain PDR Binary Search
+| | framesize=${1518} | phy_cores=${4}
| tc17-9000B-4t4c-eth-l2bdbasemaclrn-ndrdisc
-| | ... | framesize=${9000} | min_rate=${10000} | wt=4 | rxq=2
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with with\
-| | ... | 4 phy cores, 2 receive queues per NIC port.
-| | ... | [Ver] Find NDR for 9000 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 10kpps.
| | [Tags] | 9000B | 4C | NDRDISC | SKIP_PATCH
| | [Template] | L2 Bridge Domain NDR Binary Search
+| | framesize=${9000} | phy_cores=${4}
| tc18-9000B-4t4c-eth-l2bdbasemaclrn-pdrdisc
-| | ... | framesize=${9000} | min_rate=${10000} | wt=4 | rxq=2
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with with\
-| | ... | 4 phy cores, 2 receive queues per NIC port.
-| | ... | [Ver] Find PDR for 9000 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 10kpps, LT=0.5%.
| | [Tags] | 9000B | 4C | PDRDISC | SKIP_PATCH
| | [Template] | L2 Bridge Domain PDR Binary Search
+| | framesize=${9000} | phy_cores=${4}
diff --git a/tests/vpp/perf/l2/10ge2p1x520-dot1ad-l2xcbase-ndrpdrdisc.robot b/tests/vpp/perf/l2/10ge2p1x520-dot1ad-l2xcbase-ndrpdrdisc.robot
index 36f39df087..01716c8913 100644
--- a/tests/vpp/perf/l2/10ge2p1x520-dot1ad-l2xcbase-ndrpdrdisc.robot
+++ b/tests/vpp/perf/l2/10ge2p1x520-dot1ad-l2xcbase-ndrpdrdisc.robot
@@ -74,7 +74,7 @@
| | ${binary_min}= | Set Variable | ${min_rate}
| | ${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
+| | Given Add worker threads and rxqueues to all DUTs | 1
| | And Add PCI devices to all DUTs
| | And Add no multi seg to all DUTs
| | And Apply startup configuration on all VPP DUTs
@@ -104,7 +104,7 @@
| | ${binary_min}= | Set Variable | ${min_rate}
| | ${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
+| | Given Add worker threads and rxqueues to all DUTs | 1
| | And Add PCI devices to all DUTs
| | And Add no multi seg to all DUTs
| | And Apply startup configuration on all VPP DUTs
@@ -135,7 +135,7 @@
| | ${binary_min}= | Set Variable | ${min_rate}
| | ${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
+| | Given Add worker threads and rxqueues to all DUTs | 1
| | And Add PCI devices to all DUTs
| | And Add no multi seg to all DUTs
| | And Apply startup configuration on all VPP DUTs
@@ -165,7 +165,7 @@
| | ${binary_min}= | Set Variable | ${min_rate}
| | ${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
+| | Given Add worker threads and rxqueues to all DUTs | 1
| | And Add PCI devices to all DUTs
| | And Add no multi seg to all DUTs
| | And Apply startup configuration on all VPP DUTs
@@ -196,7 +196,7 @@
| | ${binary_min}= | Set Variable | ${min_rate}
| | ${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
+| | Given Add worker threads and rxqueues to all DUTs | 1
| | And Add PCI devices to all DUTs
| | And Apply startup configuration on all VPP DUTs
| | And Set interfaces in path in 3-node circular topology up
@@ -225,7 +225,7 @@
| | ${binary_min}= | Set Variable | ${min_rate}
| | ${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
+| | Given Add worker threads and rxqueues to all DUTs | 1
| | And Add PCI devices to all DUTs
| | And Apply startup configuration on all VPP DUTs
| | And Set interfaces in path in 3-node circular topology up
@@ -255,7 +255,7 @@
| | ${binary_min}= | Set Variable | ${min_rate}
| | ${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
+| | Given Add worker threads and rxqueues to all DUTs | 2
| | And Add PCI devices to all DUTs
| | And Add no multi seg to all DUTs
| | And Apply startup configuration on all VPP DUTs
@@ -285,7 +285,7 @@
| | ${binary_min}= | Set Variable | ${min_rate}
| | ${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
+| | Given Add worker threads and rxqueues to all DUTs | 2
| | And Add PCI devices to all DUTs
| | And Add no multi seg to all DUTs
| | And Apply startup configuration on all VPP DUTs
@@ -316,7 +316,7 @@
| | ${binary_min}= | Set Variable | ${min_rate}
| | ${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
+| | Given Add worker threads and rxqueues to all DUTs | 2
| | And Add PCI devices to all DUTs
| | And Add no multi seg to all DUTs
| | And Apply startup configuration on all VPP DUTs
@@ -346,7 +346,7 @@
| | ${binary_min}= | Set Variable | ${min_rate}
| | ${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
+| | Given Add worker threads and rxqueues to all DUTs | 2
| | And Add PCI devices to all DUTs
| | And Add no multi seg to all DUTs
| | And Apply startup configuration on all VPP DUTs
@@ -377,7 +377,7 @@
| | ${binary_min}= | Set Variable | ${min_rate}
| | ${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
+| | Given Add worker threads and rxqueues to all DUTs | 2
| | And Add PCI devices to all DUTs
| | And Apply startup configuration on all VPP DUTs
| | And Set interfaces in path in 3-node circular topology up
@@ -406,7 +406,7 @@
| | ${binary_min}= | Set Variable | ${min_rate}
| | ${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
+| | Given Add worker threads and rxqueues to all DUTs | 2
| | And Add PCI devices to all DUTs
| | And Apply startup configuration on all VPP DUTs
| | And Set interfaces in path in 3-node circular topology up
@@ -436,7 +436,7 @@
| | ${binary_min}= | Set Variable | ${min_rate}
| | ${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
+| | Given Add worker threads and rxqueues to all DUTs | 4
| | And Add PCI devices to all DUTs
| | And Add no multi seg to all DUTs
| | And Apply startup configuration on all VPP DUTs
@@ -466,7 +466,7 @@
| | ${binary_min}= | Set Variable | ${min_rate}
| | ${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
+| | Given Add worker threads and rxqueues to all DUTs | 4
| | And Add PCI devices to all DUTs
| | And Add no multi seg to all DUTs
| | And Apply startup configuration on all VPP DUTs
@@ -497,7 +497,7 @@
| | ${binary_min}= | Set Variable | ${min_rate}
| | ${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
+| | Given Add worker threads and rxqueues to all DUTs | 4
| | And Add PCI devices to all DUTs
| | And Add no multi seg to all DUTs
| | And Apply startup configuration on all VPP DUTs
@@ -527,7 +527,7 @@
| | ${binary_min}= | Set Variable | ${min_rate}
| | ${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
+| | Given Add worker threads and rxqueues to all DUTs | 4
| | And Add PCI devices to all DUTs
| | And Add no multi seg to all DUTs
| | And Apply startup configuration on all VPP DUTs
@@ -558,7 +558,7 @@
| | ${binary_min}= | Set Variable | ${min_rate}
| | ${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
+| | Given Add worker threads and rxqueues to all DUTs | 4
| | And Add PCI devices to all DUTs
| | And Apply startup configuration on all VPP DUTs
| | And Set interfaces in path in 3-node circular topology up
@@ -587,7 +587,7 @@
| | ${binary_min}= | Set Variable | ${min_rate}
| | ${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
+| | Given Add worker threads and rxqueues to all DUTs | 4
| | And Add PCI devices to all DUTs
| | And Apply startup configuration on all VPP DUTs
| | And Set interfaces in path in 3-node circular topology up
diff --git a/tests/vpp/perf/l2/10ge2p1x520-dot1q-l2bdbasemaclrn-mrr.robot b/tests/vpp/perf/l2/10ge2p1x520-dot1q-l2bdbasemaclrn-mrr.robot
index 1905eefb47..4bc8427e4d 100644
--- a/tests/vpp/perf/l2/10ge2p1x520-dot1q-l2bdbasemaclrn-mrr.robot
+++ b/tests/vpp/perf/l2/10ge2p1x520-dot1q-l2bdbasemaclrn-mrr.robot
@@ -24,6 +24,8 @@
| Test Setup | Set up performance test
| Test Teardown | Tear down performance mrr test
| ...
+| Test Template | Local template
+| ...
| Documentation | *Raw results L2BD test cases with 802.1q test cases*
| ...
| ... | *[Top] Network Topologies:* TG-DUT1-DUT2-TG 3-node circular topology\
@@ -57,22 +59,27 @@
| ${traffic_profile} | trex-sl-3n-ethip4-ip4src254
*** Keywords ***
-| Check RR for L2 dot1q-l2bdbasemaclrn
+| Local template
| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD config with VLAN with ${wt} thread(s), ${wt}\
-| | ... | phy core(s), ${rxq} receive queue(s) per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for ${framesize} frames using single\
+| | ... | [Cfg] DUT runs L2BD config with VLAN.
+| | ... | Each DUT uses ${phy_cores} physical core(s) for worker threads.
+| | ... | [Ver] Measure MaxReceivedRate for ${framesize}B frames using single\
| | ... | trial throughput test.
| | ...
-| | [Arguments] | ${framesize} | ${wt} | ${rxq}
+| | ... | *Arguments:*
+| | ... | - framesize - Framesize in Bytes in integer or string (IMIX_v4_1).
+| | ... | Type: integer, string
+| | ... | - phy_cores - Number of physical cores. Type: integer
+| | ... | - rxq - Number of RX queues, default value: ${None}. Type: integer
+| | ...
+| | [Arguments] | ${phy_cores} | ${framesize} | ${rxq}=${None}
| | ...
-| | # Test Variables required for test teardown
| | Set Test Variable | ${framesize}
| | ${get_framesize}= | Get Frame Size | ${framesize}
| | ${max_rate}= | Calculate pps | ${s_limit}
| | ... | ${get_framesize} + ${vlan_overhead}
| | ...
-| | Given Add '${wt}' worker threads and '${rxq}' rxqueues in 3-node single-link circular topology
+| | Given Add worker threads and rxqueues to all DUTs | ${phy_cores} | ${rxq}
| | And Add PCI devices to all DUTs
| | And Run Keyword If | ${get_framesize} < ${1522}
| | ... | Add no multi seg to all DUTs
@@ -84,148 +91,49 @@
*** Test Cases ***
| tc01-64B-1t1c-dot1q-l2bdbasemaclrn-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with 1 phy core,\
-| | ... | 1 receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 64B frames using single trial\
-| | ... | throughput test.
-| | ...
| | [Tags] | 64B | 1C
-| | ...
-| | [Template] | Check RR for L2 dot1q-l2bdbasemaclrn
-| | wt=1 | rxq=1 | framesize=${64}
+| | phy_cores=${1} | framesize=${64}
| tc02-1518B-1t1c-dot1q-l2bdbasemaclrn-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with 1 phy core,\
-| | ... | 1 receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 1518B frames using single trial\
-| | ... | throughput test.
-| | ...
| | [Tags] | 1518B | 1C
-| | ...
-| | [Template] | Check RR for L2 dot1q-l2bdbasemaclrn
-| | wt=1 | rxq=1 | framesize=${1518}
+| | phy_cores=${1} | framesize=${1518}
| tc03-9000B-1t1c-dot1q-l2bdbasemaclrn-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with 1 phy core,\
-| | ... | 1 receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 9000B frames using single trial\
-| | ... | throughput test.
-| | ...
| | [Tags] | 9000B | 1C
-| | ...
-| | [Template] | Check RR for L2 dot1q-l2bdbasemaclrn
-| | wt=1 | rxq=1 | framesize=${9000}
+| | phy_cores=${1} | framesize=${9000}
| tc04-IMIX-1t1c-dot1q-l2bdbasemaclrn-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with 1 phy core,\
-| | ... | 1 receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for IMIX_v4_1 frames using single trial\
-| | ... | throughput test.
-| | ... | IMIX_v4_1 = (28x64B; 16x570B; 4x1518B)
-| | ...
| | [Tags] | IMIX | 1C
-| | ...
-| | [Template] | Check RR for L2 dot1q-l2bdbasemaclrn
-| | wt=1 | rxq=1 | framesize=IMIX_v4_1
+| | phy_cores=${1} | framesize=IMIX_v4_1
| tc05-64B-2t2c-dot1q-l2bdbasemaclrn-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with 2 phy cores,\
-| | ... | 1 receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 64B frames using single trial\
-| | ... | throughput test.
-| | ...
| | [Tags] | 64B | 2C
-| | ...
-| | [Template] | Check RR for L2 dot1q-l2bdbasemaclrn
-| | wt=2 | rxq=1 | framesize=${64}
+| | phy_cores=${2} | framesize=${64}
| tc06-1518B-2t2c-dot1q-l2bdbasemaclrn-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with 2 phy cores,\
-| | ... | 1 receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 1518B frames using single trial\
-| | ... | throughput test.
-| | ...
| | [Tags] | 1518B | 2C
-| | ...
-| | [Template] | Check RR for L2 dot1q-l2bdbasemaclrn
-| | wt=2 | rxq=1 | framesize=${1518}
+| | phy_cores=${2} | framesize=${1518}
| tc07-9000B-2t2c-dot1q-l2bdbasemaclrn-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with 2 phy cores,\
-| | ... | 1 receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 9000B frames using single trial\
-| | ... | throughput test.
-| | ...
| | [Tags] | 9000B | 2C
-| | ...
-| | [Template] | Check RR for L2 dot1q-l2bdbasemaclrn
-| | wt=2 | rxq=1 | framesize=${9000}
+| | phy_cores=${2} | framesize=${9000}
| tc08-IMIX-2t2c-dot1q-l2bdbasemaclrn-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with 2 phy cores,\
-| | ... | 1 receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for IMIX_v4_1 frames using single trial\
-| | ... | throughput test.
-| | ... | IMIX_v4_1 = (28x64B; 16x570B; 4x1518B)
-| | ...
| | [Tags] | IMIX | 2C
-| | ...
-| | [Template] | Check RR for L2 dot1q-l2bdbasemaclrn
-| | wt=2 | rxq=1 | framesize=IMIX_v4_1
+| | phy_cores=${2} | framesize=IMIX_v4_1
| tc09-64B-4t4c-dot1q-l2bdbasemaclrn-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with 4 phy cores,\
-| | ... | 2 receive queues per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 64B frames using single trial\
-| | ... | throughput test.
-| | ...
| | [Tags] | 64B | 4C
-| | ...
-| | [Template] | Check RR for L2 dot1q-l2bdbasemaclrn
-| | wt=4 | rxq=2 | framesize=${64}
+| | phy_cores=${4} | framesize=${64}
| tc10-1518B-4t4c-dot1q-l2bdbasemaclrn-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with 4 phy cores,\
-| | ... | 2 receive queues per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 1518B frames using single trial\
-| | ... | throughput test.
-| | ...
| | [Tags] | 1518B | 4C
-| | ...
-| | [Template] | Check RR for L2 dot1q-l2bdbasemaclrn
-| | wt=4 | rxq=2 | framesize=${1518}
+| | phy_cores=${4} | framesize=${1518}
| tc11-9000B-4t4c-dot1q-l2bdbasemaclrn-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with 4 phy cores,\
-| | ... | 2 receive queues per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 9000B frames using single trial\
-| | ... | throughput test.
-| | ...
| | [Tags] | 9000B | 4C
-| | ...
-| | [Template] | Check RR for L2 dot1q-l2bdbasemaclrn
-| | wt=4 | rxq=2 | framesize=${9000}
+| | phy_cores=${4} | framesize=${9000}
| tc12-IMIX-4t4c-dot1q-l2bdbasemaclrn-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with 4 phy cores,\
-| | ... | 2 receive queues per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for IMIX_v4_1 frames using single trial\
-| | ... | throughput test.
-| | ... | IMIX_v4_1 = (28x64B; 16x570B; 4x1518B)
-| | ...
| | [Tags] | IMIX | 4C
-| | ...
-| | [Template] | Check RR for L2 dot1q-l2bdbasemaclrn
-| | wt=4 | rxq=2 | framesize=IMIX_v4_1
+| | phy_cores=${4} | framesize=IMIX_v4_1
diff --git a/tests/vpp/perf/l2/10ge2p1x520-dot1q-l2bdbasemaclrn-ndrpdrdisc.robot b/tests/vpp/perf/l2/10ge2p1x520-dot1q-l2bdbasemaclrn-ndrpdrdisc.robot
index aadcc5f2f8..0e6a13b44c 100644
--- a/tests/vpp/perf/l2/10ge2p1x520-dot1q-l2bdbasemaclrn-ndrpdrdisc.robot
+++ b/tests/vpp/perf/l2/10ge2p1x520-dot1q-l2bdbasemaclrn-ndrpdrdisc.robot
@@ -25,6 +25,8 @@
| Test Teardown | Tear down performance discovery test | ${min_rate}pps
| ... | ${framesize} | ${traffic_profile}
| ...
+| Test Template | Local template
+| ...
| Documentation | *RFC2544: Packet throughput L2BD test cases with 802.1q test
| ... | cases*
| ...
@@ -63,8 +65,9 @@
| ${traffic_profile} | trex-sl-3n-ethip4-ip4src254
*** Keywords ***
-| Discover NDR or PDR for L2 Bridge Domain with VLAN
-| | [Arguments] | ${wt} | ${rxq} | ${framesize} | ${min_rate} | ${search_type}
+| Local template
+| | [Arguments] | ${phy_core} | ${framesize} | ${search_type}
+| | ... | ${min_rate}=${50000} | ${rxq}=${None}
| | ...
| | Set Test Variable | ${framesize}
| | Set Test Variable | ${min_rate}
@@ -76,7 +79,7 @@
| | ${binary_min}= | Set Variable | ${min_rate}
| | ${binary_max}= | Set Variable | ${max_rate}
| | ${threshold}= | Set Variable | ${min_rate}
-| | Given Add '${wt}' worker threads and '${rxq}' rxqueues in 3-node single-link circular topology
+| | Given Add worker threads and rxqueues to all DUTs | ${phy_cores} | ${rxq}
| | And Add PCI devices to all DUTs
| | And Run Keyword If | ${get_framesize} < ${1522}
| | ... | Add no multi seg to all DUTs
@@ -95,223 +98,73 @@
*** Test Cases ***
| tc01-64B-1t1c-dot1q-l2bdbasemaclrn-ndrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with 1 phy core,\
-| | ... | 1 receive queue per NIC port.
-| | ... | [Ver] Find NDR for 64 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 50kpps.
-| | ...
| | [Tags] | 64B | 1C | NDRDISC
-| | ...
-| | [Template] | Discover NDR or PDR for L2 Bridge Domain with VLAN
-| | wt=1 | rxq=1 | framesize=${64} | min_rate=${50000} | search_type=NDR
+| | phy_cores=${1} | framesize=${64} | search_type=NDR
| tc02-64B-1t1c-dot1q-l2bdbasemaclrn-pdrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with 1 phy core,\
-| | ... | 1 receive queue per NIC port.
-| | ... | [Ver] Find PDR for 64 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 50kpps, LT=0.5%.
-| | ...
| | [Tags] | 64B | 1C | PDRDISC | SKIP_PATCH
-| | ...
-| | [Template] | Discover NDR or PDR for L2 Bridge Domain with VLAN
-| | wt=1 | rxq=1 | framesize=${64} | min_rate=${50000} | search_type=PDR
+| | phy_cores=${1} | framesize=${64} | search_type=PDR
| tc03-1518B-1t1c-dot1q-l2bdbasemaclrn-ndrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with 1 phy core,\
-| | ... | 1 receive queue per NIC port.
-| | ... | [Ver] Find NDR for 1518 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 50kpps.
-| | ...
| | [Tags] | 1518B | 1C | NDRDISC
-| | ...
-| | [Template] | Discover NDR or PDR for L2 Bridge Domain with VLAN
-| | wt=1 | rxq=1 | framesize=${1518} | min_rate=${50000} | search_type=NDR
+| | phy_cores=${1} | framesize=${1518} | search_type=NDR
| tc04-1518B-1t1c-dot1q-l2bdbasemaclrn-pdrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with 1 phy core,\
-| | ... | 1 receive queue per NIC port.
-| | ... | [Ver] Find PDR for 1518 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 50kpps, LT=0.5%.
-| | ...
| | [Tags] | 1518B | 1C | PDRDISC | SKIP_PATCH
-| | ...
-| | [Template] | Discover NDR or PDR for L2 Bridge Domain with VLAN
-| | wt=1 | rxq=1 | framesize=${1518} | min_rate=${50000} | search_type=PDR
+| | phy_cores=${1} | framesize=${1518} | search_type=PDR
| tc05-IMIX-1t1c-dot1q-l2bdbasemaclrn-ndrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with 1 phy core,\
-| | ... | 1 receive queue per NIC port.
-| | ... | [Ver] Find NDR for IMIX_v4_1 framesize using binary search start at\
-| | ... | 10GE linerate, step 50kpps.
-| | ... | IMIX_v4_1 = (28x64B; 16x570B; 4x1518B)
-| | ...
| | [Tags] | IMIX | 1C | NDRDISC
-| | ...
-| | [Template] | Discover NDR or PDR for L2 Bridge Domain with VLAN
-| | wt=1 | rxq=1 | framesize=IMIX_v4_1 | min_rate=${50000} | search_type=NDR
+| | phy_cores=${1} | framesize=IMIX_v4_1 | search_type=NDR
| tc06-IMIX-1t1c-dot1q-l2bdbasemaclrn-pdrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with 1 phy core,\
-| | ... | 1 receive queue per NIC port.
-| | ... | [Ver] Find PDR for IMIX_v4_1 framesize using binary search start at\
-| | ... | 10GE linerate, step 50kpps, LT=0.5%.
-| | ... | IMIX_v4_1 = (28x64B; 16x570B; 4x1518B)
-| | ...
| | [Tags] | IMIX | 1C | PDRDISC | SKIP_PATCH
-| | ...
-| | [Template] | Discover NDR or PDR for L2 Bridge Domain with VLAN
-| | wt=1 | rxq=1 | framesize=IMIX_v4_1 | min_rate=${50000} | search_type=PDR
+| | phy_cores=${1} | framesize=IMIX_v4_1 | search_type=PDR
| tc07-64B-2t2c-dot1q-l2bdbasemaclrn-ndrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with 2 phy cores,\
-| | ... | 1 receive queue per NIC port.
-| | ... | [Ver] Find NDR for 64 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 50kpps.
-| | ...
| | [Tags] | 64B | 2C | NDRDISC
-| | ...
-| | [Template] | Discover NDR or PDR for L2 Bridge Domain with VLAN
-| | wt=2 | rxq=1 | framesize=${64} | min_rate=${50000} | search_type=NDR
+| | phy_cores=${2} | framesize=${64} | search_type=NDR
| tc08-64B-2t2c-dot1q-l2bdbasemaclrn-pdrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with 2 phy cores,\
-| | ... | 1 receive queue per NIC port.
-| | ... | [Ver] Find PDR for 64 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 50kpps, LT=0.5%.
-| | ...
| | [Tags] | 64B | 2C | PDRDISC | SKIP_PATCH
-| | ...
-| | [Template] | Discover NDR or PDR for L2 Bridge Domain with VLAN
-| | wt=2 | rxq=1 | framesize=${64} | min_rate=${50000} | search_type=PDR
+| | phy_cores=${2} | framesize=${64} | search_type=PDR
| tc09-1518B-2t2c-dot1q-l2bdbasemaclrn-ndrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with 2 phy cores,\
-| | ... | 1 receive queue per NIC port.
-| | ... | [Ver] Find NDR for 1518 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 50kpps.
-| | ...
| | [Tags] | 1518B | 2C | NDRDISC | SKIP_PATCH
-| | ...
-| | [Template] | Discover NDR or PDR for L2 Bridge Domain with VLAN
-| | wt=2 | rxq=1 | framesize=${1518} | min_rate=${50000} | search_type=NDR
+| | phy_cores=${2} | framesize=${1518} | search_type=NDR
| tc10-1518B-2t2c-dot1q-l2bdbasemaclrn-pdrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with 2 phy cores,\
-| | ... | 1 receive queue per NIC port.
-| | ... | [Ver] Find PDR for 1518 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 50kpps, LT=0.5%.
-| | ...
| | [Tags] | 1518B | 2C | PDRDISC | SKIP_PATCH
-| | ...
-| | [Template] | Discover NDR or PDR for L2 Bridge Domain with VLAN
-| | wt=2 | rxq=1 | framesize=${1518} | min_rate=${50000} | search_type=PDR
+| | phy_cores=${2} | framesize=${1518} | search_type=PDR
| tc11-IMIX-2t2c-dot1q-l2bdbasemaclrn-ndrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with 2 phy cores,\
-| | ... | 1 receive queue per NIC port.
-| | ... | [Ver] Find NDR for IMIX_v4_1 framesize using binary search start at\
-| | ... | 10GE linerate, step 50kpps.
-| | ... | IMIX_v4_1 = (28x64B; 16x570B; 4x1518B)
-| | ...
| | [Tags] | IMIX | 2C | NDRDISC | SKIP_PATCH
-| | ...
-| | [Template] | Discover NDR or PDR for L2 Bridge Domain with VLAN
-| | wt=2 | rxq=1 | framesize=IMIX_v4_1 | min_rate=${50000} | search_type=NDR
+| | phy_cores=${2} | framesize=IMIX_v4_1 | search_type=NDR
| tc12-IMIX-2t2c-dot1q-l2bdbasemaclrn-pdrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with 2 phy cores,\
-| | ... | 1 receive queue per NIC port.
-| | ... | [Ver] Find PDR for IMIX_v4_1 framesize using binary search start at\
-| | ... | 10GE linerate, step 50kpps.
-| | ... | IMIX_v4_1 = (28x64B; 16x570B; 4x1518B)
-| | ...
| | [Tags] | IMIX | 2C | PDRDISC | SKIP_PATCH
-| | ...
-| | [Template] | Discover NDR or PDR for L2 Bridge Domain with VLAN
-| | wt=2 | rxq=1 | framesize=IMIX_v4_1 | min_rate=${50000} | search_type=PDR
+| | phy_cores=${2} | framesize=IMIX_v4_1 | search_type=PDR
| tc13-64B-4t4c-dot1q-l2bdbasemaclrn-ndrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with 4 phy cores,\
-| | ... | 2 receive queues per NIC port.
-| | ... | [Ver] Find NDR for 64 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 50kpps.
-| | ...
| | [Tags] | 64B | 4C | NDRDISC
-| | ...
-| | [Template] | Discover NDR or PDR for L2 Bridge Domain with VLAN
-| | wt=4 | rxq=2 | framesize=${64} | min_rate=${50000} | search_type=NDR
+| | phy_cores=${4} | framesize=${64} | search_type=NDR
| tc14-64B-4t4c-dot1q-l2bdbasemaclrn-pdrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with 4 phy cores,\
-| | ... | 2 receive queues per NIC port.
-| | ... | [Ver] Find PDR for 64 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 50kpps, LT=0.5%.
-| | ...
| | [Tags] | 64B | 4C | PDRDISC | SKIP_PATCH
-| | ...
-| | [Template] | Discover NDR or PDR for L2 Bridge Domain with VLAN
-| | wt=4 | rxq=2 | framesize=${64} | min_rate=${50000} | search_type=PDR
+| | phy_cores=${4} | framesize=${64} | search_type=PDR
| tc15-1518B-4t4c-dot1q-l2bdbasemaclrn-ndrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with 4 phy cores,\
-| | ... | 2 receive queues per NIC port.
-| | ... | [Ver] Find NDR for 1518 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 50kpps.
-| | ...
| | [Tags] | 1518B | 4C | NDRDISC | SKIP_PATCH
-| | ...
-| | [Template] | Discover NDR or PDR for L2 Bridge Domain with VLAN
-| | wt=4 | rxq=2 | framesize=${1518} | min_rate=${50000} | search_type=NDR
+| | phy_cores=${4} | framesize=${1518} | search_type=NDR
| tc16-1518B-4t4c-dot1q-l2bdbasemaclrn-pdrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with 4 phy cores,\
-| | ... | 2 receive queues per NIC port.
-| | ... | [Ver] Find PDR for 1518 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 50kpps, LT=0.5%.
-| | ...
| | [Tags] | 1518B | 4C | PDRDISC | SKIP_PATCH
-| | ...
-| | [Template] | Discover NDR or PDR for L2 Bridge Domain with VLAN
-| | wt=4 | rxq=2 | framesize=${1518} | min_rate=${50000} | search_type=PDR
+| | phy_cores=${4} | framesize=${1518} | search_type=PDR
| tc17-IMIX-4t4c-dot1q-l2bdbasemaclrn-ndrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with 4 phy cores,\
-| | ... | 2 receive queues per NIC port.
-| | ... | [Ver] Find NDR for IMIX_v4_1 framesize using binary search start at\
-| | ... | 10GE linerate, step 50kpps.
-| | ... | IMIX_v4_1 = (28x64B; 16x570B; 4x1518B)
-| | ...
| | [Tags] | IMIX | 4C | NDRDISC | SKIP_PATCH
-| | ...
-| | [Template] | Discover NDR or PDR for L2 Bridge Domain with VLAN
-| | wt=4 | rxq=2 | framesize=IMIX_v4_1 | min_rate=${50000} | search_type=NDR
+| | phy_cores=${4} | framesize=IMIX_v4_1 | search_type=NDR
| tc18-IMIX-4t4c-dot1q-l2bdbasemaclrn-pdrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with 4 phy cores,\
-| | ... | 2 receive queues per NIC port.
-| | ... | [Ver] Find PDR for IMIX_v4_1 framesize using binary search start at\
-| | ... | 10GE linerate, step 50kpps, LT=0.5%.
-| | ... | IMIX_v4_1 = (28x64B; 16x570B; 4x1518B)
-| | ...
| | [Tags] | IMIX | 4C | PDRDISC | SKIP_PATCH
-| | ...
-| | [Template] | Discover NDR or PDR for L2 Bridge Domain with VLAN
-| | wt=4 | rxq=2 | framesize=IMIX_v4_1 | min_rate=${50000} | search_type=PDR
+| | phy_cores=${4} | framesize=IMIX_v4_1 | search_type=PDR
diff --git a/tests/vpp/perf/l2/10ge2p1x520-dot1q-l2xcbase-mrr.robot b/tests/vpp/perf/l2/10ge2p1x520-dot1q-l2xcbase-mrr.robot
index 8436affa64..c1051d7a02 100644
--- a/tests/vpp/perf/l2/10ge2p1x520-dot1q-l2xcbase-mrr.robot
+++ b/tests/vpp/perf/l2/10ge2p1x520-dot1q-l2xcbase-mrr.robot
@@ -26,6 +26,8 @@
| ...
| Test Teardown | Tear down performance mrr test
| ...
+| Test Template | Local template
+| ...
| Documentation | *Raw results L2XC with 802.1q test cases*
| ...
| ... | *[Top] Network Topologies:* TG-DUT1-DUT2-TG 3-node circular topology\
@@ -53,21 +55,26 @@
| ${traffic_profile} | trex-sl-3n-ethip4-ip4src254
*** Keywords ***
-| Check RR for L2XC dot1q-l2xcbase
+| Local template
| | [Documentation]
-| | ... | [Cfg] DUT runs L2XC config with VLAN dot1q with ${wt} thread(s), \
-| | ... | ${wt} phy core(s), ${rxq} receive queue(s) per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for ${framesize} frames using single\
+| | ... | [Cfg] DUT runs L2XC config with VLAN dot1q with ${phy_cores} phy
+| | ... | core(s).
+| | ... | [Ver] Measure MaxReceivedRate for ${framesize}B frames using single\
| | ... | trial throughput test.
| | ...
-| | [Arguments] | ${framesize} | ${wt} | ${rxq}
+| | ... | *Arguments:*
+| | ... | - framesize - Framesize in Bytes in integer or string (IMIX_v4_1).
+| | ... | Type: integer, string
+| | ... | - phy_cores - Number of physical cores. Type: integer
+| | ... | - rxq - Number of RX queues, default value: ${None}. Type: integer
+| | ...
+| | [Arguments] | ${phy_cores} | ${framesize} | ${rxq}=${None}
| | ...
-| | # Test Variables required for test teardown
| | Set Test Variable | ${framesize}
| | ${get_framesize}= | Get Frame Size | ${framesize}
| | ${max_rate}= | Calculate pps | ${s_limit} | ${get_framesize}
| | ...
-| | Given Add '${wt}' worker threads and '${rxq}' rxqueues in 3-node single-link circular topology
+| | Given Add worker threads and rxqueues to all DUTs | ${phy_cores} | ${rxq}
| | And Add PCI devices to all DUTs
| | And Run Keyword If | ${get_framesize} < ${1522}
| | ... | Add no multi seg to all DUTs
@@ -86,148 +93,49 @@
*** Test Cases ***
| tc01-64B-1t1c-dot1q-l2xcbase-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2XC switching config with 1 phy core, \
-| | ... | 1 receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 64B frames using single trial\
-| | ... | throughput test.
-| | ...
| | [Tags] | 64B | 1C
-| | ...
-| | [Template] | Check RR for L2XC dot1q-l2xcbase
-| | wt=1 | rxq=1 | framesize=${64}
+| | phy_cores=${1} | framesize=${64}
| tc02-1518B-1t1c-dot1q-l2xcbase-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2XC switching config with 1 phy core, \
-| | ... | 1 receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 1518B frames using single trial\
-| | ... | throughput test.
-| | ...
| | [Tags] | 1518B | 1C
-| | ...
-| | [Template] | Check RR for L2XC dot1q-l2xcbase
-| | wt=1 | rxq=1 | framesize=${1518}
+| | phy_cores=${1} | framesize=${1518}
| tc03-9000B-1t1c-dot1q-l2xcbase-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2XC switching config with 1 phy core, \
-| | ... | 1 receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 9000B frames using single trial\
-| | ... | throughput test.
-| | ...
| | [Tags] | 9000B | 1C
-| | ...
-| | [Template] | Check RR for L2XC dot1q-l2xcbase
-| | wt=1 | rxq=1 | framesize=${9000}
+| | phy_cores=${1} | framesize=${9000}
| tc04-IMIX-1t1c-dot1q-l2xcbase-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2XC switching config with 1 phy core, \
-| | ... | 1 receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for IMIX_v4_1 frames using single trial\
-| | ... | throughput test.
-| | ... | IMIX_v4_1 = (28x64B; 16x570B; 4x1518B)
-| | ...
| | [Tags] | IMIX | 1C
-| | ...
-| | [Template] | Check RR for L2XC dot1q-l2xcbase
-| | wt=1 | rxq=1 | framesize=IMIX_v4_1
+| | phy_cores=${1} | framesize=IMIX_v4_1
| tc05-64B-2t2c-dot1q-l2xcbase-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2XC switching config with 2 phy cores, \
-| | ... | 1 receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 64B frames using single trial\
-| | ... | throughput test.
-| | ...
| | [Tags] | 64B | 2C
-| | ...
-| | [Template] | Check RR for L2XC dot1q-l2xcbase
-| | wt=2 | rxq=1 | framesize=${64}
+| | phy_cores=${2} | framesize=${64}
| tc06-1518B-2t2c-dot1q-l2xcbase-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2XC switching config with 2 phy cores, \
-| | ... | 1 receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 1518B frames using single trial\
-| | ... | throughput test.
-| | ...
| | [Tags] | 1518B | 2C
-| | ...
-| | [Template] | Check RR for L2XC dot1q-l2xcbase
-| | wt=2 | rxq=1 | framesize=${1518}
+| | phy_cores=${2} | framesize=${1518}
| tc07-9000B-2t2c-dot1q-l2xcbase-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2XC switching config with 2 phy cores, \
-| | ... | 1 receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 9000B frames using single trial\
-| | ... | throughput test.
-| | ...
| | [Tags] | 9000B | 2C
-| | ...
-| | [Template] | Check RR for L2XC dot1q-l2xcbase
-| | wt=2 | rxq=1 | framesize=${9000}
+| | phy_cores=${2} | framesize=${9000}
| tc08-IMIX-2t2c-dot1q-l2xcbase-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2XC switching config with 2 phy cores, \
-| | ... | 1 receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for IMIX_v4_1 frames using single trial\
-| | ... | throughput test.
-| | ... | IMIX_v4_1 = (28x64B; 16x570B; 4x1518B)
-| | ...
| | [Tags] | IMIX | 2C
-| | ...
-| | [Template] | Check RR for L2XC dot1q-l2xcbase
-| | wt=2 | rxq=1 | framesize=IMIX_v4_1
+| | phy_cores=${2} | framesize=IMIX_v4_1
| tc09-64B-4t4c-dot1q-l2xcbase-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2XC switching config with 4 phy cores, \
-| | ... | 2 receive queues per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 64B frames using single trial\
-| | ... | throughput test.
-| | ...
| | [Tags] | 64B | 4C
-| | ...
-| | [Template] | Check RR for L2XC dot1q-l2xcbase
-| | wt=4 | rxq=2 | framesize=${64}
+| | phy_cores=${4} | framesize=${64}
| tc10-1518B-4t4c-dot1q-l2xcbase-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2XC switching config with 4 phy cores, \
-| | ... | 2 receive queues per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 1518B frames using single trial\
-| | ... | throughput test.
-| | ...
| | [Tags] | 1518B | 4C
-| | ...
-| | [Template] | Check RR for L2XC dot1q-l2xcbase
-| | wt=4 | rxq=2 | framesize=${1518}
+| | phy_cores=${4} | framesize=${1518}
| tc11-9000B-4t4c-dot1q-l2xcbase-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2XC switching config with 4 phy cores, \
-| | ... | 2 receive queues per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 9000B frames using single trial\
-| | ... | throughput test.
-| | ...
| | [Tags] | 9000B | 4C
-| | ...
-| | [Template] | Check RR for L2XC dot1q-l2xcbase
-| | wt=4 | rxq=2 | framesize=${9000}
+| | phy_cores=${4} | framesize=${9000}
| tc12-IMIX-4t4c-dot1q-l2xcbase-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2XC switching config with 4 phy cores, \
-| | ... | 2 receive queues per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for IMIX_v4_1 frames using single trial\
-| | ... | throughput test.
-| | ... | IMIX_v4_1 = (28x64B; 16x570B; 4x1518B)
-| | ...
| | [Tags] | IMIX | 4C
-| | ...
-| | [Template] | Check RR for L2XC dot1q-l2xcbase
-| | wt=4 | rxq=2 | framesize=IMIX_v4_1
+| | phy_cores=${4} | framesize=IMIX_v4_1
diff --git a/tests/vpp/perf/l2/10ge2p1x520-dot1q-l2xcbase-ndrpdrdisc.robot b/tests/vpp/perf/l2/10ge2p1x520-dot1q-l2xcbase-ndrpdrdisc.robot
index e5fc3b66ff..f8688b5f04 100644
--- a/tests/vpp/perf/l2/10ge2p1x520-dot1q-l2xcbase-ndrpdrdisc.robot
+++ b/tests/vpp/perf/l2/10ge2p1x520-dot1q-l2xcbase-ndrpdrdisc.robot
@@ -70,7 +70,7 @@
| | ${binary_min}= | Set Variable | ${min_rate}
| | ${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
+| | Given Add worker threads and rxqueues to all DUTs | 1
| | And Add PCI devices to all DUTs
| | And Add no multi seg to all DUTs
| | And Apply startup configuration on all VPP DUTs
@@ -99,7 +99,7 @@
| | ${binary_min}= | Set Variable | ${min_rate}
| | ${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
+| | Given Add worker threads and rxqueues to all DUTs | 1
| | And Add PCI devices to all DUTs
| | And Add no multi seg to all DUTs
| | And Apply startup configuration on all VPP DUTs
@@ -129,7 +129,7 @@
| | ${binary_min}= | Set Variable | ${min_rate}
| | ${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
+| | Given Add worker threads and rxqueues to all DUTs | 1
| | And Add PCI devices to all DUTs
| | And Add no multi seg to all DUTs
| | And Apply startup configuration on all VPP DUTs
@@ -158,7 +158,7 @@
| | ${binary_min}= | Set Variable | ${min_rate}
| | ${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
+| | Given Add worker threads and rxqueues to all DUTs | 1
| | And Add PCI devices to all DUTs
| | And Add no multi seg to all DUTs
| | And Apply startup configuration on all VPP DUTs
@@ -188,7 +188,7 @@
| | ${binary_min}= | Set Variable | ${min_rate}
| | ${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
+| | Given Add worker threads and rxqueues to all DUTs | 1
| | And Add PCI devices to all DUTs
| | And Apply startup configuration on all VPP DUTs
| | And Set interfaces in path in 3-node circular topology up
@@ -216,7 +216,7 @@
| | ${binary_min}= | Set Variable | ${min_rate}
| | ${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
+| | Given Add worker threads and rxqueues to all DUTs | 1
| | And Add PCI devices to all DUTs
| | And Apply startup configuration on all VPP DUTs
| | And Set interfaces in path in 3-node circular topology up
@@ -245,7 +245,7 @@
| | ${binary_min}= | Set Variable | ${min_rate}
| | ${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
+| | Given Add worker threads and rxqueues to all DUTs | 2
| | And Add PCI devices to all DUTs
| | And Add no multi seg to all DUTs
| | And Apply startup configuration on all VPP DUTs
@@ -274,7 +274,7 @@
| | ${binary_min}= | Set Variable | ${min_rate}
| | ${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
+| | Given Add worker threads and rxqueues to all DUTs | 2
| | And Add PCI devices to all DUTs
| | And Add no multi seg to all DUTs
| | And Apply startup configuration on all VPP DUTs
@@ -304,7 +304,7 @@
| | ${binary_min}= | Set Variable | ${min_rate}
| | ${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
+| | Given Add worker threads and rxqueues to all DUTs | 2
| | And Add PCI devices to all DUTs
| | And Add no multi seg to all DUTs
| | And Apply startup configuration on all VPP DUTs
@@ -333,7 +333,7 @@
| | ${binary_min}= | Set Variable | ${min_rate}
| | ${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
+| | Given Add worker threads and rxqueues to all DUTs | 2
| | And Add PCI devices to all DUTs
| | And Add no multi seg to all DUTs
| | And Apply startup configuration on all VPP DUTs
@@ -363,7 +363,7 @@
| | ${binary_min}= | Set Variable | ${min_rate}
| | ${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
+| | Given Add worker threads and rxqueues to all DUTs | 2
| | And Add PCI devices to all DUTs
| | And Apply startup configuration on all VPP DUTs
| | And Set interfaces in path in 3-node circular topology up
@@ -391,7 +391,7 @@
| | ${binary_min}= | Set Variable | ${min_rate}
| | ${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
+| | Given Add worker threads and rxqueues to all DUTs | 2
| | And Add PCI devices to all DUTs
| | And Apply startup configuration on all VPP DUTs
| | And Set interfaces in path in 3-node circular topology up
@@ -420,7 +420,7 @@
| | ${binary_min}= | Set Variable | ${min_rate}
| | ${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
+| | Given Add worker threads and rxqueues to all DUTs | 4
| | And Add PCI devices to all DUTs
| | And Add no multi seg to all DUTs
| | And Apply startup configuration on all VPP DUTs
@@ -449,7 +449,7 @@
| | ${binary_min}= | Set Variable | ${min_rate}
| | ${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
+| | Given Add worker threads and rxqueues to all DUTs | 4
| | And Add PCI devices to all DUTs
| | And Add no multi seg to all DUTs
| | And Apply startup configuration on all VPP DUTs
@@ -479,7 +479,7 @@
| | ${binary_min}= | Set Variable | ${min_rate}
| | ${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
+| | Given Add worker threads and rxqueues to all DUTs | 4
| | And Add PCI devices to all DUTs
| | And Add no multi seg to all DUTs
| | And Apply startup configuration on all VPP DUTs
@@ -508,7 +508,7 @@
| | ${binary_min}= | Set Variable | ${min_rate}
| | ${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
+| | Given Add worker threads and rxqueues to all DUTs | 4
| | And Add PCI devices to all DUTs
| | And Add no multi seg to all DUTs
| | And Apply startup configuration on all VPP DUTs
@@ -538,7 +538,7 @@
| | ${binary_min}= | Set Variable | ${min_rate}
| | ${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
+| | Given Add worker threads and rxqueues to all DUTs | 4
| | And Add PCI devices to all DUTs
| | And Apply startup configuration on all VPP DUTs
| | And Set interfaces in path in 3-node circular topology up
@@ -566,7 +566,7 @@
| | ${binary_min}= | Set Variable | ${min_rate}
| | ${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
+| | Given Add worker threads and rxqueues to all DUTs | 4
| | And Add PCI devices to all DUTs
| | And Apply startup configuration on all VPP DUTs
| | And Set interfaces in path in 3-node circular topology up
diff --git a/tests/vpp/perf/l2/10ge2p1x520-eth-l2bdbasemaclrn-iacl10sf-100flows-ndrpdrdisc.robot b/tests/vpp/perf/l2/10ge2p1x520-eth-l2bdbasemaclrn-iacl10sf-100flows-ndrpdrdisc.robot
index 92c19302e6..c2e5ed7a5f 100644
--- a/tests/vpp/perf/l2/10ge2p1x520-eth-l2bdbasemaclrn-iacl10sf-100flows-ndrpdrdisc.robot
+++ b/tests/vpp/perf/l2/10ge2p1x520-eth-l2bdbasemaclrn-iacl10sf-100flows-ndrpdrdisc.robot
@@ -29,6 +29,8 @@
| Test Teardown | Tear down performance test with ACL
| ... | ${min_rate}pps | ${framesize} | ${traffic_profile}
| ...
+| Test Template | Local template
+| ...
| Documentation | *RFC2544: Packet throughput L2BD test cases with ACL*
| ...
| ... | *[Top] Network Topologies:* TG-DUT1-DUT2-TG 3-node circular topology\
@@ -73,15 +75,17 @@
| ${trex_stream2_subnet}= | 20.20.20.0/24
*** Keywords ***
-| Discover NDR or PDR for L2 Bridge Domain with ACLs
-| | [Arguments] | ${wt} | ${rxq} | ${framesize} | ${min_rate} | ${search_type}
+| Local template
+| | [Arguments] | ${phy_core} | ${framesize} | ${search_type}
+| | ... | ${min_rate}=${50000} | ${rxq}=${None}
+| | ...
| | Set Test Variable | ${framesize}
| | Set Test Variable | ${min_rate}
| | ${max_rate}= | Calculate pps | ${s_limit} | ${framesize}
| | ${binary_min}= | Set Variable | ${min_rate}
| | ${binary_max}= | Set Variable | ${max_rate}
| | ${threshold}= | Set Variable | ${min_rate}
-| | Given Add '${wt}' worker threads and '${rxq}' rxqueues in 3-node single-link circular topology
+| | Given Add worker threads and rxqueues to all DUTs | ${phy_cores} | ${rxq}
| | And Add PCI devices to all DUTs
| | ${get_framesize}= | Get Frame Size | ${framesize}
| | And Run Keyword If | ${get_framesize} < ${1522} | Add no multi seg to all DUTs
@@ -101,73 +105,25 @@
*** Test Cases ***
| tc01-64B-1t1c-eth-l2bdbasemaclrn-iacl10-stateful-flows100-ndrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with ACL with\
-| | ... | 1 phy core, 1 receive queue per NIC port.
-| | ... | [Ver] Find NDR for 64 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 50kpps.
-| | ...
| | [Tags] | 64B | 1C | NDRDISC
-| | ...
-| | [Template] | Discover NDR or PDR for L2 Bridge Domain with ACLs
-| | wt=1 | rxq=1 | framesize=${64} | min_rate=${50000} | search_type=NDR
+| | phy_cores=${1} | framesize=${64} | search_type=NDR
| tc02-64B-1t1c-eth-l2bdbasemaclrn-iacl10-stateful-flows100-pdrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with ACL with\
-| | ... | 1 phy core, 1 receive queue per NIC port.
-| | ... | [Ver] Find PDR for 64 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 50kpps, LT=0.5%.
-| | ...
| | [Tags] | 64B | 1C | PDRDISC | SKIP_PATCH
-| | ...
-| | [Template] | Discover NDR or PDR for L2 Bridge Domain with ACLs
-| | wt=1 | rxq=1 | framesize=${64} | min_rate=${50000} | search_type=PDR
+| | phy_cores=${1} | framesize=${64} | search_type=PDR
| tc03-64B-2t2c-eth-l2bdbasemaclrn-iacl10-stateful-flows100-ndrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with ACL with\
-| | ... | 2 phy cores, 1 receive queue per NIC port.
-| | ... | [Ver] Find NDR for 64 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 50kpps.
-| | ...
| | [Tags] | 64B | 2C | NDRDISC
-| | ...
-| | [Template] | Discover NDR or PDR for L2 Bridge Domain with ACLs
-| | wt=2 | rxq=1 | framesize=${64} | min_rate=${50000} | search_type=NDR
+| | phy_cores=${2} | framesize=${64} | search_type=NDR
| tc04-64B-2t2c-eth-l2bdbasemaclrn-iacl10-stateful-flows100-pdrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with ACL with\
-| | ... | 2 phy cores, 1 receive queue per NIC port.
-| | ... | [Ver] Find PDR for 64 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 50kpps, LT=0.5%.
-| | ...
| | [Tags] | 64B | 2C | PDRDISC | SKIP_PATCH
-| | ...
-| | [Template] | Discover NDR or PDR for L2 Bridge Domain with ACLs
-| | wt=2 | rxq=1 | framesize=${64} | min_rate=${50000} | search_type=PDR
+| | phy_cores=${2} | framesize=${64} | search_type=PDR
| tc05-64B-4t4c-eth-l2bdbasemaclrn-iacl10-stateful-flows100-ndrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with ACL with\
-| | ... | 4 phy cores, 2 receive queues per NIC port.
-| | ... | [Ver] Find NDR for 64 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 50kpps.
-| | ...
| | [Tags] | 64B | 4C | NDRDISC
-| | ...
-| | [Template] | Discover NDR or PDR for L2 Bridge Domain with ACLs
-| | wt=4 | rxq=2 | framesize=${64} | min_rate=${50000} | search_type=NDR
+| | phy_cores=${4} | framesize=${64} | search_type=NDR
| tc06-64B-4t4c-eth-l2bdbasemaclrn-iacl10-stateful-flows100-pdrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with ACL with\
-| | ... | 4 phy cores, 2 receive queues per NIC port.
-| | ... | [Ver] Find PDR for 64 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 50kpps, LT=0.5%.
-| | ...
| | [Tags] | 64B | 4C | PDRDISC | SKIP_PATCH
-| | ...
-| | [Template] | Discover NDR or PDR for L2 Bridge Domain with ACLs
-| | wt=4 | rxq=2 | framesize=${64} | min_rate=${50000} | search_type=PDR
+| | phy_cores=${4} | framesize=${64} | search_type=PDR
diff --git a/tests/vpp/perf/l2/10ge2p1x520-eth-l2bdbasemaclrn-iacl10sf-100kflows-ndrpdrdisc.robot b/tests/vpp/perf/l2/10ge2p1x520-eth-l2bdbasemaclrn-iacl10sf-100kflows-ndrpdrdisc.robot
index 63649bb703..6c67aa43fe 100644
--- a/tests/vpp/perf/l2/10ge2p1x520-eth-l2bdbasemaclrn-iacl10sf-100kflows-ndrpdrdisc.robot
+++ b/tests/vpp/perf/l2/10ge2p1x520-eth-l2bdbasemaclrn-iacl10sf-100kflows-ndrpdrdisc.robot
@@ -29,6 +29,8 @@
| Test Teardown | Tear down performance test with ACL
| ... | ${min_rate}pps | ${framesize} | ${traffic_profile}
| ...
+| Test Template | Local template
+| ...
| Documentation | *RFC2544: Packet throughput L2BD test cases with ACL*
| ...
| ... | *[Top] Network Topologies:* TG-DUT1-DUT2-TG 3-node circular topology\
@@ -73,15 +75,17 @@
| ${trex_stream2_subnet}= | 20.20.20.0/24
*** Keywords ***
-| Discover NDR or PDR for L2 Bridge Domain with ACLs
-| | [Arguments] | ${wt} | ${rxq} | ${framesize} | ${min_rate} | ${search_type}
+| Local template
+| | [Arguments] | ${phy_core} | ${framesize} | ${search_type}
+| | ... | ${min_rate}=${50000} | ${rxq}=${None}
+| | ...
| | Set Test Variable | ${framesize}
| | Set Test Variable | ${min_rate}
| | ${max_rate}= | Calculate pps | ${s_limit} | ${framesize}
| | ${binary_min}= | Set Variable | ${min_rate}
| | ${binary_max}= | Set Variable | ${max_rate}
| | ${threshold}= | Set Variable | ${min_rate}
-| | Given Add '${wt}' worker threads and '${rxq}' rxqueues in 3-node single-link circular topology
+| | Given Add worker threads and rxqueues to all DUTs | ${phy_cores} | ${rxq}
| | And Add PCI devices to all DUTs
| | ${get_framesize}= | Get Frame Size | ${framesize}
| | And Run Keyword If | ${get_framesize} < ${1522} | Add no multi seg to all DUTs
@@ -101,73 +105,25 @@
*** Test Cases ***
| tc01-64B-1t1c-eth-l2bdbasemaclrn-iacl10-stateful-flows100k-ndrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with ACL with\
-| | ... | 1 phy core, 1 receive queue per NIC port.
-| | ... | [Ver] Find NDR for 64 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 50kpps.
-| | ...
| | [Tags] | 64B | 1C | NDRDISC
-| | ...
-| | [Template] | Discover NDR or PDR for L2 Bridge Domain with ACLs
-| | wt=1 | rxq=1 | framesize=${64} | min_rate=${50000} | search_type=NDR
+| | phy_cores=${1} | framesize=${64} | search_type=NDR
| tc02-64B-1t1c-eth-l2bdbasemaclrn-iacl10-stateful-flows100k-pdrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with ACL with\
-| | ... | 1 phy core, 1 receive queue per NIC port.
-| | ... | [Ver] Find PDR for 64 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 50kpps, LT=0.5%.
-| | ...
| | [Tags] | 64B | 1C | PDRDISC | SKIP_PATCH
-| | ...
-| | [Template] | Discover NDR or PDR for L2 Bridge Domain with ACLs
-| | wt=1 | rxq=1 | framesize=${64} | min_rate=${50000} | search_type=PDR
+| | phy_cores=${1} | framesize=${64} | search_type=PDR
| tc03-64B-2t2c-eth-l2bdbasemaclrn-iacl10-stateful-flows100k-ndrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with ACL with\
-| | ... | 2 phy cores, 1 receive queue per NIC port.
-| | ... | [Ver] Find NDR for 64 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 50kpps.
-| | ...
| | [Tags] | 64B | 2C | NDRDISC
-| | ...
-| | [Template] | Discover NDR or PDR for L2 Bridge Domain with ACLs
-| | wt=2 | rxq=1 | framesize=${64} | min_rate=${50000} | search_type=NDR
+| | phy_cores=${2} | framesize=${64} | search_type=NDR
| tc04-64B-2t2c-eth-l2bdbasemaclrn-iacl10-stateful-flows100k-pdrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with ACL with\
-| | ... | 2 phy cores, 1 receive queue per NIC port.
-| | ... | [Ver] Find PDR for 64 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 50kpps, LT=0.5%.
-| | ...
| | [Tags] | 64B | 2C | PDRDISC | SKIP_PATCH
-| | ...
-| | [Template] | Discover NDR or PDR for L2 Bridge Domain with ACLs
-| | wt=2 | rxq=1 | framesize=${64} | min_rate=${50000} | search_type=PDR
+| | phy_cores=${2} | framesize=${64} | search_type=PDR
| tc05-64B-4t4c-eth-l2bdbasemaclrn-iacl10-stateful-flows100k-ndrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with ACL with\
-| | ... | 4 phy cores, 2 receive queues per NIC port.
-| | ... | [Ver] Find NDR for 64 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 50kpps.
-| | ...
| | [Tags] | 64B | 4C | NDRDISC
-| | ...
-| | [Template] | Discover NDR or PDR for L2 Bridge Domain with ACLs
-| | wt=4 | rxq=2 | framesize=${64} | min_rate=${50000} | search_type=NDR
+| | phy_cores=${4} | framesize=${64} | search_type=NDR
| tc06-64B-4t4c-eth-l2bdbasemaclrn-iacl10-stateful-flows100k-pdrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with ACL with\
-| | ... | 4 phy cores, 2 receive queues per NIC port.
-| | ... | [Ver] Find PDR for 64 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 50kpps, LT=0.5%.
-| | ...
| | [Tags] | 64B | 4C | PDRDISC | SKIP_PATCH
-| | ...
-| | [Template] | Discover NDR or PDR for L2 Bridge Domain with ACLs
-| | wt=4 | rxq=2 | framesize=${64} | min_rate=${50000} | search_type=PDR
+| | phy_cores=${4} | framesize=${64} | search_type=PDR
diff --git a/tests/vpp/perf/l2/10ge2p1x520-eth-l2bdbasemaclrn-iacl10sf-10kflows-ndrpdrdisc.robot b/tests/vpp/perf/l2/10ge2p1x520-eth-l2bdbasemaclrn-iacl10sf-10kflows-ndrpdrdisc.robot
index 02c312fb10..3acc49415a 100644
--- a/tests/vpp/perf/l2/10ge2p1x520-eth-l2bdbasemaclrn-iacl10sf-10kflows-ndrpdrdisc.robot
+++ b/tests/vpp/perf/l2/10ge2p1x520-eth-l2bdbasemaclrn-iacl10sf-10kflows-ndrpdrdisc.robot
@@ -29,6 +29,8 @@
| Test Teardown | Tear down performance test with ACL
| ... | ${min_rate}pps | ${framesize} | ${traffic_profile}
| ...
+| Test Template | Local template
+| ...
| Documentation | *RFC2544: Packet throughput L2BD test cases with ACL*
| ...
| ... | *[Top] Network Topologies:* TG-DUT1-DUT2-TG 3-node circular topology\
@@ -73,15 +75,17 @@
| ${trex_stream2_subnet}= | 20.20.20.0/24
*** Keywords ***
-| Discover NDR or PDR for L2 Bridge Domain with ACLs
-| | [Arguments] | ${wt} | ${rxq} | ${framesize} | ${min_rate} | ${search_type}
+| Local template
+| | [Arguments] | ${phy_core} | ${framesize} | ${search_type}
+| | ... | ${min_rate}=${50000} | ${rxq}=${None}
+| | ...
| | Set Test Variable | ${framesize}
| | Set Test Variable | ${min_rate}
| | ${max_rate}= | Calculate pps | ${s_limit} | ${framesize}
| | ${binary_min}= | Set Variable | ${min_rate}
| | ${binary_max}= | Set Variable | ${max_rate}
| | ${threshold}= | Set Variable | ${min_rate}
-| | Given Add '${wt}' worker threads and '${rxq}' rxqueues in 3-node single-link circular topology
+| | Given Add worker threads and rxqueues to all DUTs | ${phy_cores} | ${rxq}
| | And Add PCI devices to all DUTs
| | ${get_framesize}= | Get Frame Size | ${framesize}
| | And Run Keyword If | ${get_framesize} < ${1522} | Add no multi seg to all DUTs
@@ -101,73 +105,25 @@
*** Test Cases ***
| tc01-64B-1t1c-eth-l2bdbasemaclrn-iacl10-stateful-flows10k-ndrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with ACL with\
-| | ... | 1 phy core, 1 receive queue per NIC port.
-| | ... | [Ver] Find NDR for 64 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 50kpps.
-| | ...
| | [Tags] | 64B | 1C | NDRDISC
-| | ...
-| | [Template] | Discover NDR or PDR for L2 Bridge Domain with ACLs
-| | wt=1 | rxq=1 | framesize=${64} | min_rate=${50000} | search_type=NDR
+| | phy_cores=${1} | framesize=${64} | search_type=NDR
| tc02-64B-1t1c-eth-l2bdbasemaclrn-iacl10-stateful-flows10k-pdrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with ACL with\
-| | ... | 1 phy core, 1 receive queue per NIC port.
-| | ... | [Ver] Find PDR for 64 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 50kpps, LT=0.5%.
-| | ...
| | [Tags] | 64B | 1C | PDRDISC | SKIP_PATCH
-| | ...
-| | [Template] | Discover NDR or PDR for L2 Bridge Domain with ACLs
-| | wt=1 | rxq=1 | framesize=${64} | min_rate=${50000} | search_type=PDR
+| | phy_cores=${1} | framesize=${64} | search_type=PDR
| tc03-64B-2t2c-eth-l2bdbasemaclrn-iacl10-stateful-flows10k-ndrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with ACL with\
-| | ... | 2 phy cores, 1 receive queue per NIC port.
-| | ... | [Ver] Find NDR for 64 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 50kpps.
-| | ...
| | [Tags] | 64B | 2C | NDRDISC
-| | ...
-| | [Template] | Discover NDR or PDR for L2 Bridge Domain with ACLs
-| | wt=2 | rxq=1 | framesize=${64} | min_rate=${50000} | search_type=NDR
+| | phy_cores=${2} | framesize=${64} | search_type=NDR
| tc04-64B-2t2c-eth-l2bdbasemaclrn-iacl10-stateful-flows10k-pdrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with ACL with\
-| | ... | 2 phy cores, 1 receive queue per NIC port.
-| | ... | [Ver] Find PDR for 64 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 50kpps, LT=0.5%.
-| | ...
| | [Tags] | 64B | 2C | PDRDISC | SKIP_PATCH
-| | ...
-| | [Template] | Discover NDR or PDR for L2 Bridge Domain with ACLs
-| | wt=2 | rxq=1 | framesize=${64} | min_rate=${50000} | search_type=PDR
+| | phy_cores=${2} | framesize=${64} | search_type=PDR
| tc05-64B-4t4c-eth-l2bdbasemaclrn-iacl10-stateful-flows10k-ndrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with ACL with\
-| | ... | 4 phy cores, 2 receive queues per NIC port.
-| | ... | [Ver] Find NDR for 64 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 50kpps.
-| | ...
| | [Tags] | 64B | 4C | NDRDISC
-| | ...
-| | [Template] | Discover NDR or PDR for L2 Bridge Domain with ACLs
-| | wt=4 | rxq=2 | framesize=${64} | min_rate=${50000} | search_type=NDR
+| | phy_cores=${4} | framesize=${64} | search_type=NDR
| tc06-64B-4t4c-eth-l2bdbasemaclrn-iacl10-stateful-flows10k-pdrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with ACL with\
-| | ... | 4 phy cores, 2 receive queues per NIC port.
-| | ... | [Ver] Find PDR for 64 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 50kpps, LT=0.5%.
-| | ...
| | [Tags] | 64B | 4C | PDRDISC | SKIP_PATCH
-| | ...
-| | [Template] | Discover NDR or PDR for L2 Bridge Domain with ACLs
-| | wt=4 | rxq=2 | framesize=${64} | min_rate=${50000} | search_type=PDR
+| | phy_cores=${4} | framesize=${64} | search_type=PDR
diff --git a/tests/vpp/perf/l2/10ge2p1x520-eth-l2bdbasemaclrn-iacl10sl-100flows-ndrpdrdisc.robot b/tests/vpp/perf/l2/10ge2p1x520-eth-l2bdbasemaclrn-iacl10sl-100flows-ndrpdrdisc.robot
index 612b4d7566..a8e05e00fd 100644
--- a/tests/vpp/perf/l2/10ge2p1x520-eth-l2bdbasemaclrn-iacl10sl-100flows-ndrpdrdisc.robot
+++ b/tests/vpp/perf/l2/10ge2p1x520-eth-l2bdbasemaclrn-iacl10sl-100flows-ndrpdrdisc.robot
@@ -29,6 +29,8 @@
| Test Teardown | Tear down performance test with ACL
| ... | ${min_rate}pps | ${framesize} | ${traffic_profile}
| ...
+| Test Template | Local template
+| ...
| Documentation | *RFC2544: Packet throughput L2BD test cases with ACL*
| ...
| ... | *[Top] Network Topologies:* TG-DUT1-DUT2-TG 3-node circular topology\
@@ -73,15 +75,17 @@
| ${trex_stream2_subnet}= | 20.20.20.0/24
*** Keywords ***
-| Discover NDR or PDR for L2 Bridge Domain with ACLs
-| | [Arguments] | ${wt} | ${rxq} | ${framesize} | ${min_rate} | ${search_type}
+| Local template
+| | [Arguments] | ${phy_core} | ${framesize} | ${search_type}
+| | ... | ${min_rate}=${50000} | ${rxq}=${None}
+| | ...
| | Set Test Variable | ${framesize}
| | Set Test Variable | ${min_rate}
| | ${max_rate}= | Calculate pps | ${s_limit} | ${framesize}
| | ${binary_min}= | Set Variable | ${min_rate}
| | ${binary_max}= | Set Variable | ${max_rate}
| | ${threshold}= | Set Variable | ${min_rate}
-| | Given Add '${wt}' worker threads and '${rxq}' rxqueues in 3-node single-link circular topology
+| | Given Add worker threads and rxqueues to all DUTs | ${phy_cores} | ${rxq}
| | And Add PCI devices to all DUTs
| | ${get_framesize}= | Get Frame Size | ${framesize}
| | And Run Keyword If | ${get_framesize} < ${1522} | Add no multi seg to all DUTs
@@ -101,73 +105,25 @@
*** Test Cases ***
| tc01-64B-1t1c-eth-l2bdbasemaclrn-iacl10-stateless-flows100-ndrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with ACL with\
-| | ... | 1 phy core, 1 receive queue per NIC port.
-| | ... | [Ver] Find NDR for 64 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 50kpps.
-| | ...
| | [Tags] | 64B | 1C | NDRDISC
-| | ...
-| | [Template] | Discover NDR or PDR for L2 Bridge Domain with ACLs
-| | wt=1 | rxq=1 | framesize=${64} | min_rate=${50000} | search_type=NDR
+| | phy_cores=${1} | framesize=${64} | search_type=NDR
| tc02-64B-1t1c-eth-l2bdbasemaclrn-iacl10-stateless-flows100-pdrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with ACL with\
-| | ... | 1 phy core, 1 receive queue per NIC port.
-| | ... | [Ver] Find PDR for 64 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 50kpps, LT=0.5%.
-| | ...
| | [Tags] | 64B | 1C | PDRDISC | SKIP_PATCH
-| | ...
-| | [Template] | Discover NDR or PDR for L2 Bridge Domain with ACLs
-| | wt=1 | rxq=1 | framesize=${64} | min_rate=${50000} | search_type=PDR
+| | phy_cores=${1} | framesize=${64} | search_type=PDR
| tc03-64B-2t2c-eth-l2bdbasemaclrn-iacl10-stateless-flows100-ndrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with ACL with\
-| | ... | 2 phy cores, 1 receive queue per NIC port.
-| | ... | [Ver] Find NDR for 64 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 50kpps.
-| | ...
| | [Tags] | 64B | 2C | NDRDISC
-| | ...
-| | [Template] | Discover NDR or PDR for L2 Bridge Domain with ACLs
-| | wt=2 | rxq=1 | framesize=${64} | min_rate=${50000} | search_type=NDR
+| | phy_cores=${2} | framesize=${64} | search_type=NDR
| tc04-64B-2t2c-eth-l2bdbasemaclrn-iacl10-stateless-flows100-pdrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with ACL with\
-| | ... | 2 phy cores, 1 receive queue per NIC port.
-| | ... | [Ver] Find PDR for 64 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 50kpps, LT=0.5%.
-| | ...
| | [Tags] | 64B | 2C | PDRDISC | SKIP_PATCH
-| | ...
-| | [Template] | Discover NDR or PDR for L2 Bridge Domain with ACLs
-| | wt=2 | rxq=1 | framesize=${64} | min_rate=${50000} | search_type=PDR
+| | phy_cores=${2} | framesize=${64} | search_type=PDR
| tc05-64B-4t4c-eth-l2bdbasemaclrn-iacl10-stateless-flows100-ndrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with ACL with\
-| | ... | 4 phy cores, 2 receive queues per NIC port.
-| | ... | [Ver] Find NDR for 64 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 50kpps.
-| | ...
| | [Tags] | 64B | 4C | NDRDISC
-| | ...
-| | [Template] | Discover NDR or PDR for L2 Bridge Domain with ACLs
-| | wt=4 | rxq=2 | framesize=${64} | min_rate=${50000} | search_type=NDR
+| | phy_cores=${4} | framesize=${64} | search_type=NDR
| tc06-64B-4t4c-eth-l2bdbasemaclrn-iacl10-stateless-flows100-pdrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with ACL with\
-| | ... | 4 phy cores, 2 receive queues per NIC port.
-| | ... | [Ver] Find PDR for 64 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 50kpps, LT=0.5%.
-| | ...
| | [Tags] | 64B | 4C | PDRDISC | SKIP_PATCH
-| | ...
-| | [Template] | Discover NDR or PDR for L2 Bridge Domain with ACLs
-| | wt=4 | rxq=2 | framesize=${64} | min_rate=${50000} | search_type=PDR
+| | phy_cores=${4} | framesize=${64} | search_type=PDR
diff --git a/tests/vpp/perf/l2/10ge2p1x520-eth-l2bdbasemaclrn-iacl10sl-100kflows-ndrpdrdisc.robot b/tests/vpp/perf/l2/10ge2p1x520-eth-l2bdbasemaclrn-iacl10sl-100kflows-ndrpdrdisc.robot
index e0e3be416d..e2d5d64204 100644
--- a/tests/vpp/perf/l2/10ge2p1x520-eth-l2bdbasemaclrn-iacl10sl-100kflows-ndrpdrdisc.robot
+++ b/tests/vpp/perf/l2/10ge2p1x520-eth-l2bdbasemaclrn-iacl10sl-100kflows-ndrpdrdisc.robot
@@ -29,6 +29,8 @@
| Test Teardown | Tear down performance test with ACL
| ... | ${min_rate}pps | ${framesize} | ${traffic_profile}
| ...
+| Test Template | Local template
+| ...
| Documentation | *RFC2544: Packet throughput L2BD test cases with ACL*
| ...
| ... | *[Top] Network Topologies:* TG-DUT1-DUT2-TG 3-node circular topology\
@@ -73,15 +75,17 @@
| ${trex_stream2_subnet}= | 20.20.20.0/24
*** Keywords ***
-| Discover NDR or PDR for L2 Bridge Domain with ACLs
-| | [Arguments] | ${wt} | ${rxq} | ${framesize} | ${min_rate} | ${search_type}
+| Local template
+| | [Arguments] | ${phy_core} | ${framesize} | ${search_type}
+| | ... | ${min_rate}=${50000} | ${rxq}=${None}
+| | ...
| | Set Test Variable | ${framesize}
| | Set Test Variable | ${min_rate}
| | ${max_rate}= | Calculate pps | ${s_limit} | ${framesize}
| | ${binary_min}= | Set Variable | ${min_rate}
| | ${binary_max}= | Set Variable | ${max_rate}
| | ${threshold}= | Set Variable | ${min_rate}
-| | Given Add '${wt}' worker threads and '${rxq}' rxqueues in 3-node single-link circular topology
+| | Given Add worker threads and rxqueues to all DUTs | ${phy_cores} | ${rxq}
| | And Add PCI devices to all DUTs
| | ${get_framesize}= | Get Frame Size | ${framesize}
| | And Run Keyword If | ${get_framesize} < ${1522} | Add no multi seg to all DUTs
@@ -101,73 +105,25 @@
*** Test Cases ***
| tc01-64B-1t1c-eth-l2bdbasemaclrn-iacl10-stateless-flows100k-ndrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with ACL with\
-| | ... | 1 phy core, 1 receive queue per NIC port.
-| | ... | [Ver] Find NDR for 64 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 50kpps.
-| | ...
| | [Tags] | 64B | 1C | NDRDISC
-| | ...
-| | [Template] | Discover NDR or PDR for L2 Bridge Domain with ACLs
-| | wt=1 | rxq=1 | framesize=${64} | min_rate=${50000} | search_type=NDR
+| | phy_cores=${1} | framesize=${64} | search_type=NDR
| tc02-64B-1t1c-eth-l2bdbasemaclrn-iacl10-stateless-flows100k-pdrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with ACL with\
-| | ... | 1 phy core, 1 receive queue per NIC port.
-| | ... | [Ver] Find PDR for 64 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 50kpps, LT=0.5%.
-| | ...
| | [Tags] | 64B | 1C | PDRDISC | SKIP_PATCH
-| | ...
-| | [Template] | Discover NDR or PDR for L2 Bridge Domain with ACLs
-| | wt=1 | rxq=1 | framesize=${64} | min_rate=${50000} | search_type=PDR
+| | phy_cores=${1} | framesize=${64} | search_type=PDR
| tc03-64B-2t2c-eth-l2bdbasemaclrn-iacl10-stateless-flows100k-ndrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with ACL with\
-| | ... | 2 phy cores, 1 receive queue per NIC port.
-| | ... | [Ver] Find NDR for 64 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 50kpps.
-| | ...
| | [Tags] | 64B | 2C | NDRDISC
-| | ...
-| | [Template] | Discover NDR or PDR for L2 Bridge Domain with ACLs
-| | wt=2 | rxq=1 | framesize=${64} | min_rate=${50000} | search_type=NDR
+| | phy_cores=${2} | framesize=${64} | search_type=NDR
| tc04-64B-2t2c-eth-l2bdbasemaclrn-iacl10-stateless-flows100k-pdrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with ACL with\
-| | ... | 2 phy cores, 1 receive queue per NIC port.
-| | ... | [Ver] Find PDR for 64 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 50kpps, LT=0.5%.
-| | ...
| | [Tags] | 64B | 2C | PDRDISC | SKIP_PATCH
-| | ...
-| | [Template] | Discover NDR or PDR for L2 Bridge Domain with ACLs
-| | wt=2 | rxq=1 | framesize=${64} | min_rate=${50000} | search_type=PDR
+| | phy_cores=${2} | framesize=${64} | search_type=PDR
| tc05-64B-4t4c-eth-l2bdbasemaclrn-iacl10-stateless-flows100k-ndrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with ACL with\
-| | ... | 4 phy cores, 2 receive queues per NIC port.
-| | ... | [Ver] Find NDR for 64 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 50kpps.
-| | ...
| | [Tags] | 64B | 4C | NDRDISC
-| | ...
-| | [Template] | Discover NDR or PDR for L2 Bridge Domain with ACLs
-| | wt=4 | rxq=2 | framesize=${64} | min_rate=${50000} | search_type=NDR
+| | phy_cores=${4} | framesize=${64} | search_type=NDR
| tc06-64B-4t4c-eth-l2bdbasemaclrn-iacl10-stateless-flows100k-pdrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with ACL with\
-| | ... | 4 phy cores, 2 receive queues per NIC port.
-| | ... | [Ver] Find PDR for 64 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 50kpps, LT=0.5%.
-| | ...
| | [Tags] | 64B | 4C | PDRDISC | SKIP_PATCH
-| | ...
-| | [Template] | Discover NDR or PDR for L2 Bridge Domain with ACLs
-| | wt=4 | rxq=2 | framesize=${64} | min_rate=${50000} | search_type=PDR
+| | phy_cores=${4} | framesize=${64} | search_type=PDR
diff --git a/tests/vpp/perf/l2/10ge2p1x520-eth-l2bdbasemaclrn-iacl10sl-10kflows-ndrpdrdisc.robot b/tests/vpp/perf/l2/10ge2p1x520-eth-l2bdbasemaclrn-iacl10sl-10kflows-ndrpdrdisc.robot
index 4ab2e2c0d3..7dd5489145 100644
--- a/tests/vpp/perf/l2/10ge2p1x520-eth-l2bdbasemaclrn-iacl10sl-10kflows-ndrpdrdisc.robot
+++ b/tests/vpp/perf/l2/10ge2p1x520-eth-l2bdbasemaclrn-iacl10sl-10kflows-ndrpdrdisc.robot
@@ -29,6 +29,8 @@
| Test Teardown | Tear down performance test with ACL
| ... | ${min_rate}pps | ${framesize} | ${traffic_profile}
| ...
+| Test Template | Local template
+| ...
| Documentation | *RFC2544: Packet throughput L2BD test cases with ACL*
| ...
| ... | *[Top] Network Topologies:* TG-DUT1-DUT2-TG 3-node circular topology\
@@ -73,15 +75,17 @@
| ${trex_stream2_subnet}= | 20.20.20.0/24
*** Keywords ***
-| Discover NDR or PDR for L2 Bridge Domain with ACLs
-| | [Arguments] | ${wt} | ${rxq} | ${framesize} | ${min_rate} | ${search_type}
+| Local template
+| | [Arguments] | ${phy_core} | ${framesize} | ${search_type}
+| | ... | ${min_rate}=${50000} | ${rxq}=${None}
+| | ...
| | Set Test Variable | ${framesize}
| | Set Test Variable | ${min_rate}
| | ${max_rate}= | Calculate pps | ${s_limit} | ${framesize}
| | ${binary_min}= | Set Variable | ${min_rate}
| | ${binary_max}= | Set Variable | ${max_rate}
| | ${threshold}= | Set Variable | ${min_rate}
-| | Given Add '${wt}' worker threads and '${rxq}' rxqueues in 3-node single-link circular topology
+| | Given Add worker threads and rxqueues to all DUTs | ${phy_cores} | ${rxq}
| | And Add PCI devices to all DUTs
| | ${get_framesize}= | Get Frame Size | ${framesize}
| | And Run Keyword If | ${get_framesize} < ${1522} | Add no multi seg to all DUTs
@@ -101,73 +105,25 @@
*** Test Cases ***
| tc01-64B-1t1c-eth-l2bdbasemaclrn-iacl10-stateless-flows10k-ndrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with ACL with\
-| | ... | 1 phy core, 1 receive queue per NIC port.
-| | ... | [Ver] Find NDR for 64 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 50kpps.
-| | ...
| | [Tags] | 64B | 1C | NDRDISC
-| | ...
-| | [Template] | Discover NDR or PDR for L2 Bridge Domain with ACLs
-| | wt=1 | rxq=1 | framesize=${64} | min_rate=${50000} | search_type=NDR
+| | phy_cores=${1} | framesize=${64} | search_type=NDR
| tc02-64B-1t1c-eth-l2bdbasemaclrn-iacl10-stateless-flows10k-pdrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with ACL with\
-| | ... | 1 phy core, 1 receive queue per NIC port.
-| | ... | [Ver] Find PDR for 64 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 50kpps, LT=0.5%.
-| | ...
| | [Tags] | 64B | 1C | PDRDISC | SKIP_PATCH
-| | ...
-| | [Template] | Discover NDR or PDR for L2 Bridge Domain with ACLs
-| | wt=1 | rxq=1 | framesize=${64} | min_rate=${50000} | search_type=PDR
+| | phy_cores=${1} | framesize=${64} | search_type=PDR
| tc03-64B-2t2c-eth-l2bdbasemaclrn-iacl10-stateless-flows10k-ndrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with ACL with\
-| | ... | 2 phy cores, 1 receive queue per NIC port.
-| | ... | [Ver] Find NDR for 64 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 50kpps.
-| | ...
| | [Tags] | 64B | 2C | NDRDISC
-| | ...
-| | [Template] | Discover NDR or PDR for L2 Bridge Domain with ACLs
-| | wt=2 | rxq=1 | framesize=${64} | min_rate=${50000} | search_type=NDR
+| | phy_cores=${2} | framesize=${64} | search_type=NDR
| tc04-64B-2t2c-eth-l2bdbasemaclrn-iacl10-stateless-flows10k-pdrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with ACL with\
-| | ... | 2 phy cores, 1 receive queue per NIC port.
-| | ... | [Ver] Find PDR for 64 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 50kpps, LT=0.5%.
-| | ...
| | [Tags] | 64B | 2C | PDRDISC | SKIP_PATCH
-| | ...
-| | [Template] | Discover NDR or PDR for L2 Bridge Domain with ACLs
-| | wt=2 | rxq=1 | framesize=${64} | min_rate=${50000} | search_type=PDR
+| | phy_cores=${2} | framesize=${64} | search_type=PDR
| tc05-64B-4t4c-eth-l2bdbasemaclrn-iacl10-stateless-flows10k-ndrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with ACL with\
-| | ... | 4 phy cores, 2 receive queues per NIC port.
-| | ... | [Ver] Find NDR for 64 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 50kpps.
-| | ...
| | [Tags] | 64B | 4C | NDRDISC
-| | ...
-| | [Template] | Discover NDR or PDR for L2 Bridge Domain with ACLs
-| | wt=4 | rxq=2 | framesize=${64} | min_rate=${50000} | search_type=NDR
+| | phy_cores=${4} | framesize=${64} | search_type=NDR
| tc06-64B-4t4c-eth-l2bdbasemaclrn-iacl10-stateless-flows10k-pdrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with ACL with\
-| | ... | 4 phy cores, 2 receive queues per NIC port.
-| | ... | [Ver] Find PDR for 64 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 50kpps, LT=0.5%.
-| | ...
| | [Tags] | 64B | 4C | PDRDISC | SKIP_PATCH
-| | ...
-| | [Template] | Discover NDR or PDR for L2 Bridge Domain with ACLs
-| | wt=4 | rxq=2 | framesize=${64} | min_rate=${50000} | search_type=PDR
+| | phy_cores=${4} | framesize=${64} | search_type=PDR
diff --git a/tests/vpp/perf/l2/10ge2p1x520-eth-l2bdbasemaclrn-iacl1sf-100flows-ndrpdrdisc.robot b/tests/vpp/perf/l2/10ge2p1x520-eth-l2bdbasemaclrn-iacl1sf-100flows-ndrpdrdisc.robot
index d8b45952b8..0dd677e6ea 100644
--- a/tests/vpp/perf/l2/10ge2p1x520-eth-l2bdbasemaclrn-iacl1sf-100flows-ndrpdrdisc.robot
+++ b/tests/vpp/perf/l2/10ge2p1x520-eth-l2bdbasemaclrn-iacl1sf-100flows-ndrpdrdisc.robot
@@ -29,6 +29,8 @@
| Test Teardown | Tear down performance test with ACL
| ... | ${min_rate}pps | ${framesize} | ${traffic_profile}
| ...
+| Test Template | Local template
+| ...
| Documentation | *RFC2544: Packet throughput L2BD test cases with ACL*
| ...
| ... | *[Top] Network Topologies:* TG-DUT1-DUT2-TG 3-node circular topology\
@@ -73,15 +75,17 @@
| ${trex_stream2_subnet}= | 20.20.20.0/24
*** Keywords ***
-| Discover NDR or PDR for L2 Bridge Domain with ACLs
-| | [Arguments] | ${wt} | ${rxq} | ${framesize} | ${min_rate} | ${search_type}
+| Local template
+| | [Arguments] | ${phy_core} | ${framesize} | ${search_type}
+| | ... | ${min_rate}=${50000} | ${rxq}=${None}
+| | ...
| | Set Test Variable | ${framesize}
| | Set Test Variable | ${min_rate}
| | ${max_rate}= | Calculate pps | ${s_limit} | ${framesize}
| | ${binary_min}= | Set Variable | ${min_rate}
| | ${binary_max}= | Set Variable | ${max_rate}
| | ${threshold}= | Set Variable | ${min_rate}
-| | Given Add '${wt}' worker threads and '${rxq}' rxqueues in 3-node single-link circular topology
+| | Given Add worker threads and rxqueues to all DUTs | ${phy_cores} | ${rxq}
| | And Add PCI devices to all DUTs
| | ${get_framesize}= | Get Frame Size | ${framesize}
| | And Run Keyword If | ${get_framesize} < ${1522} | Add no multi seg to all DUTs
@@ -101,73 +105,25 @@
*** Test Cases ***
| tc01-64B-1t1c-eth-l2bdbasemaclrn-iacl1-stateful-flows100-ndrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with ACL with\
-| | ... | 1 phy core, 1 receive queue per NIC port.
-| | ... | [Ver] Find NDR for 64 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 50kpps.
-| | ...
| | [Tags] | 64B | 1C | NDRDISC
-| | ...
-| | [Template] | Discover NDR or PDR for L2 Bridge Domain with ACLs
-| | wt=1 | rxq=1 | framesize=${64} | min_rate=${50000} | search_type=NDR
+| | phy_cores=${1} | framesize=${64} | search_type=NDR
| tc02-64B-1t1c-eth-l2bdbasemaclrn-iacl1-stateful-flows100-pdrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with ACL with\
-| | ... | 1 phy core, 1 receive queue per NIC port.
-| | ... | [Ver] Find PDR for 64 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 50kpps, LT=0.5%.
-| | ...
| | [Tags] | 64B | 1C | PDRDISC | SKIP_PATCH
-| | ...
-| | [Template] | Discover NDR or PDR for L2 Bridge Domain with ACLs
-| | wt=1 | rxq=1 | framesize=${64} | min_rate=${50000} | search_type=PDR
+| | phy_cores=${1} | framesize=${64} | search_type=PDR
| tc03-64B-2t2c-eth-l2bdbasemaclrn-iacl1-stateful-flows100-ndrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with ACL with\
-| | ... | 2 phy cores, 1 receive queue per NIC port.
-| | ... | [Ver] Find NDR for 64 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 50kpps.
-| | ...
| | [Tags] | 64B | 2C | NDRDISC
-| | ...
-| | [Template] | Discover NDR or PDR for L2 Bridge Domain with ACLs
-| | wt=2 | rxq=1 | framesize=${64} | min_rate=${50000} | search_type=NDR
+| | phy_cores=${2} | framesize=${64} | search_type=NDR
| tc04-64B-2t2c-eth-l2bdbasemaclrn-iacl1-stateful-flows100-pdrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with ACL with\
-| | ... | 2 phy cores, 1 receive queue per NIC port.
-| | ... | [Ver] Find PDR for 64 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 50kpps, LT=0.5%.
-| | ...
| | [Tags] | 64B | 2C | PDRDISC | SKIP_PATCH
-| | ...
-| | [Template] | Discover NDR or PDR for L2 Bridge Domain with ACLs
-| | wt=2 | rxq=1 | framesize=${64} | min_rate=${50000} | search_type=PDR
+| | phy_cores=${2} | framesize=${64} | search_type=PDR
| tc05-64B-4t4c-eth-l2bdbasemaclrn-iacl1-stateful-flows100-ndrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with ACL with\
-| | ... | 4 phy cores, 2 receive queues per NIC port.
-| | ... | [Ver] Find NDR for 64 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 50kpps.
-| | ...
| | [Tags] | 64B | 4C | NDRDISC
-| | ...
-| | [Template] | Discover NDR or PDR for L2 Bridge Domain with ACLs
-| | wt=4 | rxq=2 | framesize=${64} | min_rate=${50000} | search_type=NDR
+| | phy_cores=${4} | framesize=${64} | search_type=NDR
| tc06-64B-4t4c-eth-l2bdbasemaclrn-iacl1-stateful-flows100-pdrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with ACL with\
-| | ... | 4 phy cores, 2 receive queues per NIC port.
-| | ... | [Ver] Find PDR for 64 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 50kpps, LT=0.5%.
-| | ...
| | [Tags] | 64B | 4C | PDRDISC | SKIP_PATCH
-| | ...
-| | [Template] | Discover NDR or PDR for L2 Bridge Domain with ACLs
-| | wt=4 | rxq=2 | framesize=${64} | min_rate=${50000} | search_type=PDR
+| | phy_cores=${4} | framesize=${64} | search_type=PDR
diff --git a/tests/vpp/perf/l2/10ge2p1x520-eth-l2bdbasemaclrn-iacl1sf-100kflows-ndrpdrdisc.robot b/tests/vpp/perf/l2/10ge2p1x520-eth-l2bdbasemaclrn-iacl1sf-100kflows-ndrpdrdisc.robot
index d48540715f..ba5154c54c 100644
--- a/tests/vpp/perf/l2/10ge2p1x520-eth-l2bdbasemaclrn-iacl1sf-100kflows-ndrpdrdisc.robot
+++ b/tests/vpp/perf/l2/10ge2p1x520-eth-l2bdbasemaclrn-iacl1sf-100kflows-ndrpdrdisc.robot
@@ -29,6 +29,8 @@
| Test Teardown | Tear down performance test with ACL
| ... | ${min_rate}pps | ${framesize} | ${traffic_profile}
| ...
+| Test Template | Local template
+| ...
| Documentation | *RFC2544: Packet throughput L2BD test cases with ACL*
| ...
| ... | *[Top] Network Topologies:* TG-DUT1-DUT2-TG 3-node circular topology\
@@ -73,15 +75,17 @@
| ${trex_stream2_subnet}= | 20.20.20.0/24
*** Keywords ***
-| Discover NDR or PDR for L2 Bridge Domain with ACLs
-| | [Arguments] | ${wt} | ${rxq} | ${framesize} | ${min_rate} | ${search_type}
+| Local template
+| | [Arguments] | ${phy_core} | ${framesize} | ${search_type}
+| | ... | ${min_rate}=${50000} | ${rxq}=${None}
+| | ...
| | Set Test Variable | ${framesize}
| | Set Test Variable | ${min_rate}
| | ${max_rate}= | Calculate pps | ${s_limit} | ${framesize}
| | ${binary_min}= | Set Variable | ${min_rate}
| | ${binary_max}= | Set Variable | ${max_rate}
| | ${threshold}= | Set Variable | ${min_rate}
-| | Given Add '${wt}' worker threads and '${rxq}' rxqueues in 3-node single-link circular topology
+| | Given Add worker threads and rxqueues to all DUTs | ${phy_cores} | ${rxq}
| | And Add PCI devices to all DUTs
| | ${get_framesize}= | Get Frame Size | ${framesize}
| | And Run Keyword If | ${get_framesize} < ${1522} | Add no multi seg to all DUTs
@@ -101,73 +105,25 @@
*** Test Cases ***
| tc01-64B-1t1c-eth-l2bdbasemaclrn-iacl1-stateful-flows100k-ndrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with ACL with\
-| | ... | 1 phy core, 1 receive queue per NIC port.
-| | ... | [Ver] Find NDR for 64 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 50kpps.
-| | ...
| | [Tags] | 64B | 1C | NDRDISC
-| | ...
-| | [Template] | Discover NDR or PDR for L2 Bridge Domain with ACLs
-| | wt=1 | rxq=1 | framesize=${64} | min_rate=${50000} | search_type=NDR
+| | phy_cores=${1} | framesize=${64} | search_type=NDR
| tc02-64B-1t1c-eth-l2bdbasemaclrn-iacl1-stateful-flows100k-pdrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with ACL with\
-| | ... | 1 phy core, 1 receive queue per NIC port.
-| | ... | [Ver] Find PDR for 64 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 50kpps, LT=0.5%.
-| | ...
| | [Tags] | 64B | 1C | PDRDISC | SKIP_PATCH
-| | ...
-| | [Template] | Discover NDR or PDR for L2 Bridge Domain with ACLs
-| | wt=1 | rxq=1 | framesize=${64} | min_rate=${50000} | search_type=PDR
+| | phy_cores=${1} | framesize=${64} | search_type=PDR
| tc03-64B-2t2c-eth-l2bdbasemaclrn-iacl1-stateful-flows100k-ndrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with ACL with\
-| | ... | 2 phy cores, 1 receive queue per NIC port.
-| | ... | [Ver] Find NDR for 64 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 50kpps.
-| | ...
| | [Tags] | 64B | 2C | NDRDISC
-| | ...
-| | [Template] | Discover NDR or PDR for L2 Bridge Domain with ACLs
-| | wt=2 | rxq=1 | framesize=${64} | min_rate=${50000} | search_type=NDR
+| | phy_cores=${2} | framesize=${64} | search_type=NDR
| tc04-64B-2t2c-eth-l2bdbasemaclrn-iacl1-stateful-flows100k-pdrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with ACL with\
-| | ... | 2 phy cores, 1 receive queue per NIC port.
-| | ... | [Ver] Find PDR for 64 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 50kpps, LT=0.5%.
-| | ...
| | [Tags] | 64B | 2C | PDRDISC | SKIP_PATCH
-| | ...
-| | [Template] | Discover NDR or PDR for L2 Bridge Domain with ACLs
-| | wt=2 | rxq=1 | framesize=${64} | min_rate=${50000} | search_type=PDR
+| | phy_cores=${2} | framesize=${64} | search_type=PDR
| tc05-64B-4t4c-eth-l2bdbasemaclrn-iacl1-stateful-flows100k-ndrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with ACL with\
-| | ... | 4 phy cores, 2 receive queues per NIC port.
-| | ... | [Ver] Find NDR for 64 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 50kpps.
-| | ...
| | [Tags] | 64B | 4C | NDRDISC
-| | ...
-| | [Template] | Discover NDR or PDR for L2 Bridge Domain with ACLs
-| | wt=4 | rxq=2 | framesize=${64} | min_rate=${50000} | search_type=NDR
+| | phy_cores=${4} | framesize=${64} | search_type=NDR
| tc06-64B-4t4c-eth-l2bdbasemaclrn-iacl1-stateful-flows100k-pdrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with ACL with\
-| | ... | 4 phy cores, 2 receive queues per NIC port.
-| | ... | [Ver] Find PDR for 64 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 50kpps, LT=0.5%.
-| | ...
| | [Tags] | 64B | 4C | PDRDISC | SKIP_PATCH
-| | ...
-| | [Template] | Discover NDR or PDR for L2 Bridge Domain with ACLs
-| | wt=4 | rxq=2 | framesize=${64} | min_rate=${50000} | search_type=PDR
+| | phy_cores=${4} | framesize=${64} | search_type=PDR
diff --git a/tests/vpp/perf/l2/10ge2p1x520-eth-l2bdbasemaclrn-iacl1sf-10kflows-mrr.robot b/tests/vpp/perf/l2/10ge2p1x520-eth-l2bdbasemaclrn-iacl1sf-10kflows-mrr.robot
index 9de8e8b5ef..0997fcee57 100644
--- a/tests/vpp/perf/l2/10ge2p1x520-eth-l2bdbasemaclrn-iacl1sf-10kflows-mrr.robot
+++ b/tests/vpp/perf/l2/10ge2p1x520-eth-l2bdbasemaclrn-iacl1sf-10kflows-mrr.robot
@@ -28,6 +28,8 @@
| ...
| Test Teardown | Tear down performance mrr test
| ...
+| Test Template | Local template
+| ...
| Documentation | *Raw results L2BD test cases with ACL*
| ...
| ... | *[Top] Network Topologies:* TG-DUT1-DUT2-TG 3-node circular topology\
@@ -71,21 +73,26 @@
| ${traffic_profile} | trex-sl-3n-ethip4udp-10u1000p-conc
*** Keywords ***
-| Check RR for L2BD l2bdbasemaclrn-iacl1sf
+| Local template
| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD config with ACLs with ${wt} thread(s), ${wt}\
-| | ... | phy core(s), ${rxq} receive queue(s) per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for ${framesize} frames using single\
+| | ... | [Cfg] DUT runs L2BD config with ACLs with ${phy_cores} phy
+| | ... | core(s).
+| | ... | [Ver] Measure MaxReceivedRate for ${framesize}B frames using single\
| | ... | trial throughput test.
| | ...
-| | [Arguments] | ${wt} | ${rxq} | ${framesize}
+| | ... | *Arguments:*
+| | ... | - framesize - Framesize in Bytes in integer or string (IMIX_v4_1).
+| | ... | Type: integer, string
+| | ... | - phy_cores - Number of physical cores. Type: integer
+| | ... | - rxq - Number of RX queues, default value: ${None}. Type: integer
+| | ...
+| | [Arguments] | ${phy_cores} | ${framesize} | ${rxq}=${None}
| | ...
-| | # Test Variables required for test teardown
| | Set Test Variable | ${framesize}
| | ${get_framesize}= | Get Frame Size | ${framesize}
| | ${max_rate}= | Calculate pps | ${s_limit} | ${get_framesize}
| | ...
-| | Given Add '${wt}' worker threads and '${rxq}' rxqueues in 3-node single-link circular topology
+| | Given Add worker threads and rxqueues to all DUTs | ${phy_cores} | ${rxq}
| | And Add PCI devices to all DUTs
| | And Run Keyword If | ${get_framesize} < ${1522}
| | ... | Add no multi seg to all DUTs
@@ -96,148 +103,49 @@
*** Test Cases ***
| tc01-64B-1t1c-eth-l2bdbasemaclrn-iacl1-stateful-flows10k-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with ACL with\
-| | ... | 1 phy core, 1 receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 64B frames using single trial\
-| | ... | throughput test.
-| | ...
| | [Tags] | 64B | 1C
-| | ...
-| | [Template] | Check RR for L2BD l2bdbasemaclrn-iacl1sf
-| | wt=1 | rxq=1 | framesize=${64}
+| | phy_cores=${1} | framesize=${64}
| tc02-1518B-1t1c-eth-l2bdbasemaclrn-iacl1-stateful-flows10k-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with ACL with\
-| | ... | 1 phy core, 1 receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 1518B frames using single trial\
-| | ... | throughput test.
-| | ...
| | [Tags] | 1518B | 1C
-| | ...
-| | [Template] | Check RR for L2BD l2bdbasemaclrn-iacl1sf
-| | wt=1 | rxq=1 | framesize=${1518}
+| | phy_cores=${1} | framesize=${1518}
| tc03-9000B-1t1c-eth-l2bdbasemaclrn-iacl1-stateful-flows10k-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with ACL with\
-| | ... | 1 phy core, 1 receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 9000B frames using single trial\
-| | ... | throughput test.
-| | ...
| | [Tags] | 9000B | 1C
-| | ...
-| | [Template] | Check RR for L2BD l2bdbasemaclrn-iacl1sf
-| | wt=1 | rxq=1 | framesize=${9000}
+| | phy_cores=${1} | framesize=${9000}
| tc04-IMIX-1t1c-eth-l2bdbasemaclrn-iacl1-stateful-flows10k-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with ACL with\
-| | ... | 1 phy core, 1 receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for IMIX_v4_1 frames using single trial\
-| | ... | throughput test.
-| | ... | IMIX_v4_1 = (28x64B; 16x570B; 4x1518B)
-| | ...
| | [Tags] | IMIX | 1C
-| | ...
-| | [Template] | Check RR for L2BD l2bdbasemaclrn-iacl1sf
-| | wt=1 | rxq=1 | framesize=IMIX_v4_1
+| | phy_cores=${1} | framesize=IMIX_v4_1
| tc05-64B-2t2c-eth-l2bdbasemaclrn-iacl1-stateful-flows10k-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with ACL with\
-| | ... | 2 phy cores, 1 receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 64B frames using single trial\
-| | ... | throughput test.
-| | ...
| | [Tags] | 64B | 2C
-| | ...
-| | [Template] | Check RR for L2BD l2bdbasemaclrn-iacl1sf
-| | wt=2 | rxq=1 | framesize=${64}
+| | phy_cores=${2} | framesize=${64}
| tc06-1518B-2t2c-eth-l2bdbasemaclrn-iacl1-stateful-flows10k-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with ACL with\
-| | ... | 2 phy cores, 1 receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 1518B frames using single trial\
-| | ... | throughput test.
-| | ...
| | [Tags] | 1518B | 2C
-| | ...
-| | [Template] | Check RR for L2BD l2bdbasemaclrn-iacl1sf
-| | wt=2 | rxq=1 | framesize=${1518}
+| | phy_cores=${2} | framesize=${1518}
| tc07-9000B-2t2c-eth-l2bdbasemaclrn-iacl1-stateful-flows10k-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with ACL with\
-| | ... | 2 phy cores, 1 receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 9000B frames using single trial\
-| | ... | throughput test.
-| | ...
| | [Tags] | 9000B | 2C
-| | ...
-| | [Template] | Check RR for L2BD l2bdbasemaclrn-iacl1sf
-| | wt=2 | rxq=1 | framesize=${9000}
+| | phy_cores=${2} | framesize=${9000}
| tc08-IMIX-2t2c-eth-l2bdbasemaclrn-iacl1-stateful-flows10k-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with ACL with\
-| | ... | 2 phy cores, 1 receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for IMIX_v4_1 frames using single trial\
-| | ... | throughput test.
-| | ... | IMIX_v4_1 = (28x64B; 16x570B; 4x1518B)
-| | ...
| | [Tags] | IMIX | 2C
-| | ...
-| | [Template] | Check RR for L2BD l2bdbasemaclrn-iacl1sf
-| | wt=2 | rxq=1 | framesize=IMIX_v4_1
+| | phy_cores=${2} | framesize=IMIX_v4_1
| tc09-64B-4t4c-eth-l2bdbasemaclrn-iacl1-stateful-flows10k-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with ACL with\
-| | ... | 4 phy cores, 2 receive queues per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 64B frames using single trial\
-| | ... | throughput test.
-| | ...
| | [Tags] | 64B | 4C
-| | ...
-| | [Template] | Check RR for L2BD l2bdbasemaclrn-iacl1sf
-| | wt=4 | rxq=2 | framesize=${64}
+| | phy_cores=${4} | framesize=${64}
| tc10-1518B-2t2c-eth-l2bdbasemaclrn-iacl1-stateful-flows10k-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with ACL with\
-| | ... | 4 phy cores, 2 receive queues per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 1518B frames using single trial\
-| | ... | throughput test.
-| | ...
| | [Tags] | 1518B | 4C
-| | ...
-| | [Template] | Check RR for L2BD l2bdbasemaclrn-iacl1sf
-| | wt=4 | rxq=2 | framesize=${1518}
+| | phy_cores=${4} | framesize=${1518}
| tc11-9000B-2t2c-eth-l2bdbasemaclrn-iacl1-stateful-flows10k-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with ACL with\
-| | ... | 4 phy cores, 2 receive queues per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 9000B frames using single trial\
-| | ... | throughput test.
-| | ...
| | [Tags] | 9000B | 4C
-| | ...
-| | [Template] | Check RR for L2BD l2bdbasemaclrn-iacl1sf
-| | wt=4 | rxq=2 | framesize=${9000}
+| | phy_cores=${4} | framesize=${9000}
| tc12-IMIX-2t2c-eth-l2bdbasemaclrn-iacl1-stateful-flows10k-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with ACL with\
-| | ... | 4 phy cores, 2 receive queues per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for IMIX_v4_1 frames using single trial\
-| | ... | throughput test.
-| | ... | IMIX_v4_1 = (28x64B; 16x570B; 4x1518B)
-| | ...
| | [Tags] | IMIX | 4C
-| | ...
-| | [Template] | Check RR for L2BD l2bdbasemaclrn-iacl1sf
-| | wt=4 | rxq=2 | framesize=IMIX_v4_1
+| | phy_cores=${4} | framesize=IMIX_v4_1
diff --git a/tests/vpp/perf/l2/10ge2p1x520-eth-l2bdbasemaclrn-iacl1sf-10kflows-ndrpdrdisc.robot b/tests/vpp/perf/l2/10ge2p1x520-eth-l2bdbasemaclrn-iacl1sf-10kflows-ndrpdrdisc.robot
index 8faaef9241..bd88b32f0e 100644
--- a/tests/vpp/perf/l2/10ge2p1x520-eth-l2bdbasemaclrn-iacl1sf-10kflows-ndrpdrdisc.robot
+++ b/tests/vpp/perf/l2/10ge2p1x520-eth-l2bdbasemaclrn-iacl1sf-10kflows-ndrpdrdisc.robot
@@ -29,6 +29,8 @@
| Test Teardown | Tear down performance test with ACL
| ... | ${min_rate}pps | ${framesize} | ${traffic_profile}
| ...
+| Test Template | Local template
+| ...
| Documentation | *RFC2544: Packet throughput L2BD test cases with ACL*
| ...
| ... | *[Top] Network Topologies:* TG-DUT1-DUT2-TG 3-node circular topology\
@@ -73,15 +75,17 @@
| ${trex_stream2_subnet}= | 20.20.20.0/24
*** Keywords ***
-| Discover NDR or PDR for L2 Bridge Domain with ACLs
-| | [Arguments] | ${wt} | ${rxq} | ${framesize} | ${min_rate} | ${search_type}
+| Local template
+| | [Arguments] | ${phy_core} | ${framesize} | ${search_type}
+| | ... | ${min_rate}=${50000} | ${rxq}=${None}
+| | ...
| | Set Test Variable | ${framesize}
| | Set Test Variable | ${min_rate}
| | ${max_rate}= | Calculate pps | ${s_limit} | ${framesize}
| | ${binary_min}= | Set Variable | ${min_rate}
| | ${binary_max}= | Set Variable | ${max_rate}
| | ${threshold}= | Set Variable | ${min_rate}
-| | Given Add '${wt}' worker threads and '${rxq}' rxqueues in 3-node single-link circular topology
+| | Given Add worker threads and rxqueues to all DUTs | ${phy_cores} | ${rxq}
| | And Add PCI devices to all DUTs
| | ${get_framesize}= | Get Frame Size | ${framesize}
| | And Run Keyword If | ${get_framesize} < ${1522} | Add no multi seg to all DUTs
@@ -101,73 +105,25 @@
*** Test Cases ***
| tc01-64B-1t1c-eth-l2bdbasemaclrn-iacl1-stateful-flows10k-ndrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with ACL with\
-| | ... | 1 phy core, 1 receive queue per NIC port.
-| | ... | [Ver] Find NDR for 64 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 50kpps.
-| | ...
| | [Tags] | 64B | 1C | NDRDISC
-| | ...
-| | [Template] | Discover NDR or PDR for L2 Bridge Domain with ACLs
-| | wt=1 | rxq=1 | framesize=${64} | min_rate=${50000} | search_type=NDR
+| | phy_cores=${1} | framesize=${64} | search_type=NDR
| tc02-64B-1t1c-eth-l2bdbasemaclrn-iacl1-stateful-flows10k-pdrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with ACL with\
-| | ... | 1 phy core, 1 receive queue per NIC port.
-| | ... | [Ver] Find PDR for 64 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 50kpps, LT=0.5%.
-| | ...
| | [Tags] | 64B | 1C | PDRDISC | SKIP_PATCH
-| | ...
-| | [Template] | Discover NDR or PDR for L2 Bridge Domain with ACLs
-| | wt=1 | rxq=1 | framesize=${64} | min_rate=${50000} | search_type=PDR
+| | phy_cores=${1} | framesize=${64} | search_type=PDR
| tc03-64B-2t2c-eth-l2bdbasemaclrn-iacl1-stateful-flows10k-ndrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with ACL with\
-| | ... | 2 phy cores, 1 receive queue per NIC port.
-| | ... | [Ver] Find NDR for 64 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 50kpps.
-| | ...
| | [Tags] | 64B | 2C | NDRDISC
-| | ...
-| | [Template] | Discover NDR or PDR for L2 Bridge Domain with ACLs
-| | wt=2 | rxq=1 | framesize=${64} | min_rate=${50000} | search_type=NDR
+| | phy_cores=${2} | framesize=${64} | search_type=NDR
| tc04-64B-2t2c-eth-l2bdbasemaclrn-iacl1-stateful-flows10k-pdrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with ACL with\
-| | ... | 2 phy cores, 1 receive queue per NIC port.
-| | ... | [Ver] Find PDR for 64 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 50kpps, LT=0.5%.
-| | ...
| | [Tags] | 64B | 2C | PDRDISC | SKIP_PATCH
-| | ...
-| | [Template] | Discover NDR or PDR for L2 Bridge Domain with ACLs
-| | wt=2 | rxq=1 | framesize=${64} | min_rate=${50000} | search_type=PDR
+| | phy_cores=${2} | framesize=${64} | search_type=PDR
| tc05-64B-4t4c-eth-l2bdbasemaclrn-iacl1-stateful-flows10k-ndrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with ACL with\
-| | ... | 4 phy cores, 2 receive queues per NIC port.
-| | ... | [Ver] Find NDR for 64 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 50kpps.
-| | ...
| | [Tags] | 64B | 4C | NDRDISC
-| | ...
-| | [Template] | Discover NDR or PDR for L2 Bridge Domain with ACLs
-| | wt=4 | rxq=2 | framesize=${64} | min_rate=${50000} | search_type=NDR
+| | phy_cores=${4} | framesize=${64} | search_type=NDR
| tc06-64B-4t4c-eth-l2bdbasemaclrn-iacl1-stateful-flows10k-pdrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with ACL with\
-| | ... | 4 phy cores, 2 receive queues per NIC port.
-| | ... | [Ver] Find PDR for 64 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 50kpps, LT=0.5%.
-| | ...
| | [Tags] | 64B | 4C | PDRDISC | SKIP_PATCH
-| | ...
-| | [Template] | Discover NDR or PDR for L2 Bridge Domain with ACLs
-| | wt=4 | rxq=2 | framesize=${64} | min_rate=${50000} | search_type=PDR
+| | phy_cores=${4} | framesize=${64} | search_type=PDR
diff --git a/tests/vpp/perf/l2/10ge2p1x520-eth-l2bdbasemaclrn-iacl1sl-100flows-ndrpdrdisc.robot b/tests/vpp/perf/l2/10ge2p1x520-eth-l2bdbasemaclrn-iacl1sl-100flows-ndrpdrdisc.robot
index 1773a8f82b..dc8e13512e 100644
--- a/tests/vpp/perf/l2/10ge2p1x520-eth-l2bdbasemaclrn-iacl1sl-100flows-ndrpdrdisc.robot
+++ b/tests/vpp/perf/l2/10ge2p1x520-eth-l2bdbasemaclrn-iacl1sl-100flows-ndrpdrdisc.robot
@@ -29,6 +29,8 @@
| Test Teardown | Tear down performance test with ACL
| ... | ${min_rate}pps | ${framesize} | ${traffic_profile}
| ...
+| Test Template | Local template
+| ...
| Documentation | *RFC2544: Packet throughput L2BD test cases with ACL*
| ...
| ... | *[Top] Network Topologies:* TG-DUT1-DUT2-TG 3-node circular topology\
@@ -73,15 +75,17 @@
| ${trex_stream2_subnet}= | 20.20.20.0/24
*** Keywords ***
-| Discover NDR or PDR for L2 Bridge Domain with ACLs
-| | [Arguments] | ${wt} | ${rxq} | ${framesize} | ${min_rate} | ${search_type}
+| Local template
+| | [Arguments] | ${phy_core} | ${framesize} | ${search_type}
+| | ... | ${min_rate}=${50000} | ${rxq}=${None}
+| | ...
| | Set Test Variable | ${framesize}
| | Set Test Variable | ${min_rate}
| | ${max_rate}= | Calculate pps | ${s_limit} | ${framesize}
| | ${binary_min}= | Set Variable | ${min_rate}
| | ${binary_max}= | Set Variable | ${max_rate}
| | ${threshold}= | Set Variable | ${min_rate}
-| | Given Add '${wt}' worker threads and '${rxq}' rxqueues in 3-node single-link circular topology
+| | Given Add worker threads and rxqueues to all DUTs | ${phy_cores} | ${rxq}
| | And Add PCI devices to all DUTs
| | ${get_framesize}= | Get Frame Size | ${framesize}
| | And Run Keyword If | ${get_framesize} < ${1522} | Add no multi seg to all DUTs
@@ -101,73 +105,25 @@
*** Test Cases ***
| tc01-64B-1t1c-eth-l2bdbasemaclrn-iacl1-stateless-flows100-ndrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with ACL with\
-| | ... | 1 phy core, 1 receive queue per NIC port.
-| | ... | [Ver] Find NDR for 64 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 50kpps.
-| | ...
| | [Tags] | 64B | 1C | NDRDISC
-| | ...
-| | [Template] | Discover NDR or PDR for L2 Bridge Domain with ACLs
-| | wt=1 | rxq=1 | framesize=${64} | min_rate=${50000} | search_type=NDR
+| | phy_cores=${1} | framesize=${64} | search_type=NDR
| tc02-64B-1t1c-eth-l2bdbasemaclrn-iacl1-stateless-flows100-pdrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with ACL with\
-| | ... | 1 phy core, 1 receive queue per NIC port.
-| | ... | [Ver] Find PDR for 64 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 50kpps, LT=0.5%.
-| | ...
| | [Tags] | 64B | 1C | PDRDISC | SKIP_PATCH
-| | ...
-| | [Template] | Discover NDR or PDR for L2 Bridge Domain with ACLs
-| | wt=1 | rxq=1 | framesize=${64} | min_rate=${50000} | search_type=PDR
+| | phy_cores=${1} | framesize=${64} | search_type=PDR
| tc03-64B-2t2c-eth-l2bdbasemaclrn-iacl1-stateless-flows100-ndrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with ACL with\
-| | ... | 2 phy cores, 1 receive queue per NIC port.
-| | ... | [Ver] Find NDR for 64 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 50kpps.
-| | ...
| | [Tags] | 64B | 2C | NDRDISC
-| | ...
-| | [Template] | Discover NDR or PDR for L2 Bridge Domain with ACLs
-| | wt=2 | rxq=1 | framesize=${64} | min_rate=${50000} | search_type=NDR
+| | phy_cores=${2} | framesize=${64} | search_type=NDR
| tc04-64B-2t2c-eth-l2bdbasemaclrn-iacl1-stateless-flows100-pdrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with ACL with\
-| | ... | 2 phy cores, 1 receive queue per NIC port.
-| | ... | [Ver] Find PDR for 64 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 50kpps, LT=0.5%.
-| | ...
| | [Tags] | 64B | 2C | PDRDISC | SKIP_PATCH
-| | ...
-| | [Template] | Discover NDR or PDR for L2 Bridge Domain with ACLs
-| | wt=2 | rxq=1 | framesize=${64} | min_rate=${50000} | search_type=PDR
+| | phy_cores=${2} | framesize=${64} | search_type=PDR
| tc05-64B-4t4c-eth-l2bdbasemaclrn-iacl1-stateless-flows100-ndrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with ACL with\
-| | ... | 4 phy cores, 2 receive queues per NIC port.
-| | ... | [Ver] Find NDR for 64 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 50kpps.
-| | ...
| | [Tags] | 64B | 4C | NDRDISC
-| | ...
-| | [Template] | Discover NDR or PDR for L2 Bridge Domain with ACLs
-| | wt=4 | rxq=2 | framesize=${64} | min_rate=${50000} | search_type=NDR
+| | phy_cores=${4} | framesize=${64} | search_type=NDR
| tc06-64B-4t4c-eth-l2bdbasemaclrn-iacl1-stateless-flows100-pdrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with ACL with\
-| | ... | 4 phy cores, 2 receive queues per NIC port.
-| | ... | [Ver] Find PDR for 64 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 50kpps, LT=0.5%.
-| | ...
| | [Tags] | 64B | 4C | PDRDISC | SKIP_PATCH
-| | ...
-| | [Template] | Discover NDR or PDR for L2 Bridge Domain with ACLs
-| | wt=4 | rxq=2 | framesize=${64} | min_rate=${50000} | search_type=PDR
+| | phy_cores=${4} | framesize=${64} | search_type=PDR
diff --git a/tests/vpp/perf/l2/10ge2p1x520-eth-l2bdbasemaclrn-iacl1sl-100kflows-ndrpdrdisc.robot b/tests/vpp/perf/l2/10ge2p1x520-eth-l2bdbasemaclrn-iacl1sl-100kflows-ndrpdrdisc.robot
index 0e122bbcca..e38ca5de73 100644
--- a/tests/vpp/perf/l2/10ge2p1x520-eth-l2bdbasemaclrn-iacl1sl-100kflows-ndrpdrdisc.robot
+++ b/tests/vpp/perf/l2/10ge2p1x520-eth-l2bdbasemaclrn-iacl1sl-100kflows-ndrpdrdisc.robot
@@ -29,6 +29,8 @@
| Test Teardown | Tear down performance test with ACL
| ... | ${min_rate}pps | ${framesize} | ${traffic_profile}
| ...
+| Test Template | Local template
+| ...
| Documentation | *RFC2544: Packet throughput L2BD test cases with ACL*
| ...
| ... | *[Top] Network Topologies:* TG-DUT1-DUT2-TG 3-node circular topology\
@@ -73,15 +75,17 @@
| ${trex_stream2_subnet}= | 20.20.20.0/24
*** Keywords ***
-| Discover NDR or PDR for L2 Bridge Domain with ACLs
-| | [Arguments] | ${wt} | ${rxq} | ${framesize} | ${min_rate} | ${search_type}
+| Local template
+| | [Arguments] | ${phy_core} | ${framesize} | ${search_type}
+| | ... | ${min_rate}=${50000} | ${rxq}=${None}
+| | ...
| | Set Test Variable | ${framesize}
| | Set Test Variable | ${min_rate}
| | ${max_rate}= | Calculate pps | ${s_limit} | ${framesize}
| | ${binary_min}= | Set Variable | ${min_rate}
| | ${binary_max}= | Set Variable | ${max_rate}
| | ${threshold}= | Set Variable | ${min_rate}
-| | Given Add '${wt}' worker threads and '${rxq}' rxqueues in 3-node single-link circular topology
+| | Given Add worker threads and rxqueues to all DUTs | ${phy_cores} | ${rxq}
| | And Add PCI devices to all DUTs
| | ${get_framesize}= | Get Frame Size | ${framesize}
| | And Run Keyword If | ${get_framesize} < ${1522} | Add no multi seg to all DUTs
@@ -101,73 +105,25 @@
*** Test Cases ***
| tc01-64B-1t1c-eth-l2bdbasemaclrn-iacl1-stateless-flows100k-ndrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with ACL with\
-| | ... | 1 phy core, 1 receive queue per NIC port.
-| | ... | [Ver] Find NDR for 64 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 50kpps.
-| | ...
| | [Tags] | 64B | 1C | NDRDISC
-| | ...
-| | [Template] | Discover NDR or PDR for L2 Bridge Domain with ACLs
-| | wt=1 | rxq=1 | framesize=${64} | min_rate=${50000} | search_type=NDR
+| | phy_cores=${1} | framesize=${64} | search_type=NDR
| tc02-64B-1t1c-eth-l2bdbasemaclrn-iacl1-stateless-flows100k-pdrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with ACL with\
-| | ... | 1 phy core, 1 receive queue per NIC port.
-| | ... | [Ver] Find PDR for 64 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 50kpps, LT=0.5%.
-| | ...
| | [Tags] | 64B | 1C | PDRDISC | SKIP_PATCH
-| | ...
-| | [Template] | Discover NDR or PDR for L2 Bridge Domain with ACLs
-| | wt=1 | rxq=1 | framesize=${64} | min_rate=${50000} | search_type=PDR
+| | phy_cores=${1} | framesize=${64} | search_type=PDR
| tc03-64B-2t2c-eth-l2bdbasemaclrn-iacl1-stateless-flows100k-ndrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with ACL with\
-| | ... | 2 phy cores, 1 receive queue per NIC port.
-| | ... | [Ver] Find NDR for 64 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 50kpps.
-| | ...
| | [Tags] | 64B | 2C | NDRDISC
-| | ...
-| | [Template] | Discover NDR or PDR for L2 Bridge Domain with ACLs
-| | wt=2 | rxq=1 | framesize=${64} | min_rate=${50000} | search_type=NDR
+| | phy_cores=${2} | framesize=${64} | search_type=NDR
| tc04-64B-2t2c-eth-l2bdbasemaclrn-iacl1-stateless-flows100k-pdrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with ACL with\
-| | ... | 2 phy cores, 1 receive queue per NIC port.
-| | ... | [Ver] Find PDR for 64 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 50kpps, LT=0.5%.
-| | ...
| | [Tags] | 64B | 2C | PDRDISC | SKIP_PATCH
-| | ...
-| | [Template] | Discover NDR or PDR for L2 Bridge Domain with ACLs
-| | wt=2 | rxq=1 | framesize=${64} | min_rate=${50000} | search_type=PDR
+| | phy_cores=${2} | framesize=${64} | search_type=PDR
| tc05-64B-4t4c-eth-l2bdbasemaclrn-iacl1-stateless-flows100k-ndrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with ACL with\
-| | ... | 4 phy cores, 2 receive queues per NIC port.
-| | ... | [Ver] Find NDR for 64 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 50kpps.
-| | ...
| | [Tags] | 64B | 4C | NDRDISC
-| | ...
-| | [Template] | Discover NDR or PDR for L2 Bridge Domain with ACLs
-| | wt=4 | rxq=2 | framesize=${64} | min_rate=${50000} | search_type=NDR
+| | phy_cores=${4} | framesize=${64} | search_type=NDR
| tc06-64B-4t4c-eth-l2bdbasemaclrn-iacl1-stateless-flows100k-pdrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with ACL with\
-| | ... | 4 phy cores, 2 receive queues per NIC port.
-| | ... | [Ver] Find PDR for 64 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 50kpps, LT=0.5%.
-| | ...
| | [Tags] | 64B | 4C | PDRDISC | SKIP_PATCH
-| | ...
-| | [Template] | Discover NDR or PDR for L2 Bridge Domain with ACLs
-| | wt=4 | rxq=2 | framesize=${64} | min_rate=${50000} | search_type=PDR
+| | phy_cores=${4} | framesize=${64} | search_type=PDR
diff --git a/tests/vpp/perf/l2/10ge2p1x520-eth-l2bdbasemaclrn-iacl1sl-10kflows-mrr.robot b/tests/vpp/perf/l2/10ge2p1x520-eth-l2bdbasemaclrn-iacl1sl-10kflows-mrr.robot
index 192cf48b3b..e749f82dc0 100644
--- a/tests/vpp/perf/l2/10ge2p1x520-eth-l2bdbasemaclrn-iacl1sl-10kflows-mrr.robot
+++ b/tests/vpp/perf/l2/10ge2p1x520-eth-l2bdbasemaclrn-iacl1sl-10kflows-mrr.robot
@@ -28,6 +28,8 @@
| ...
| Test Teardown | Tear down performance mrr test
| ...
+| Test Template | Local template
+| ...
| Documentation | *Raw results L2BD test cases with ACL*
| ...
| ... | *[Top] Network Topologies:* TG-DUT1-DUT2-TG 3-node circular topology\
@@ -71,21 +73,26 @@
| ${traffic_profile} | trex-sl-3n-ethip4udp-10u1000p-conc
*** Keywords ***
-| Check RR for L2BD l2bdbasemaclrn-iacl1sl
+| Local template
| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD config with ACLs with ${wt} thread(s), ${wt}\
-| | ... | phy core(s), ${rxq} receive queue(s) per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for ${framesize} frames using single\
+| | ... | [Cfg] DUT runs L2BD config with ACLs with ${phy_cores} phy
+| | ... | core(s).
+| | ... | [Ver] Measure MaxReceivedRate for ${framesize}B frames using single\
| | ... | trial throughput test.
| | ...
-| | [Arguments] | ${wt} | ${rxq} | ${framesize}
+| | ... | *Arguments:*
+| | ... | - framesize - Framesize in Bytes in integer or string (IMIX_v4_1).
+| | ... | Type: integer, string
+| | ... | - phy_cores - Number of physical cores. Type: integer
+| | ... | - rxq - Number of RX queues, default value: ${None}. Type: integer
+| | ...
+| | [Arguments] | ${phy_cores} | ${framesize} | ${rxq}=${None}
| | ...
-| | # Test Variables required for test teardown
| | Set Test Variable | ${framesize}
| | ${get_framesize}= | Get Frame Size | ${framesize}
| | ${max_rate}= | Calculate pps | ${s_limit} | ${get_framesize}
| | ...
-| | Given Add '${wt}' worker threads and '${rxq}' rxqueues in 3-node single-link circular topology
+| | Given Add worker threads and rxqueues to all DUTs | ${phy_cores} | ${rxq}
| | And Add PCI devices to all DUTs
| | And Run Keyword If | ${get_framesize} < ${1522}
| | ... | Add no multi seg to all DUTs
@@ -96,148 +103,49 @@
*** Test Cases ***
| tc01-64B-1t1c-eth-l2bdbasemaclrn-iacl1-stateless-flows10k-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with ACL with\
-| | ... | 1 phy core, 1 receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 64B frames using single trial\
-| | ... | throughput test.
-| | ...
| | [Tags] | 64B | 1C
-| | ...
-| | [Template] | Check RR for L2BD l2bdbasemaclrn-iacl1sl
-| | wt=1 | rxq=1 | framesize=${64}
+| | phy_cores=${1} | framesize=${64}
| tc02-1518B-1t1c-eth-l2bdbasemaclrn-iacl1-stateless-flows10k-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with ACL with\
-| | ... | 1 phy core, 1 receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 1518B frames using single trial\
-| | ... | throughput test.
-| | ...
| | [Tags] | 1518B | 1C
-| | ...
-| | [Template] | Check RR for L2BD l2bdbasemaclrn-iacl1sl
-| | wt=1 | rxq=1 | framesize=${1518}
+| | phy_cores=${1} | framesize=${1518}
| tc03-9000B-1t1c-eth-l2bdbasemaclrn-iacl1-stateless-flows10k-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with ACL with\
-| | ... | 1 phy core, 1 receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 9000B frames using single trial\
-| | ... | throughput test.
-| | ...
| | [Tags] | 9000B | 1C
-| | ...
-| | [Template] | Check RR for L2BD l2bdbasemaclrn-iacl1sl
-| | wt=1 | rxq=1 | framesize=${9000}
+| | phy_cores=${1} | framesize=${9000}
| tc04-IMIX-1t1c-eth-l2bdbasemaclrn-iacl1-stateless-flows10k-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with ACL with\
-| | ... | 1 phy core, 1 receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for IMIX_v4_1 frames using single trial\
-| | ... | throughput test.
-| | ... | IMIX_v4_1 = (28x64B; 16x570B; 4x1518B)
-| | ...
| | [Tags] | IMIX | 1C
-| | ...
-| | [Template] | Check RR for L2BD l2bdbasemaclrn-iacl1sl
-| | wt=1 | rxq=1 | framesize=IMIX_v4_1
+| | phy_cores=${1} | framesize=IMIX_v4_1
| tc05-64B-2t2c-eth-l2bdbasemaclrn-iacl1-stateless-flows10k-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with ACL with\
-| | ... | 2 phy cores, 1 receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 64B frames using single trial\
-| | ... | throughput test.
-| | ...
| | [Tags] | 64B | 2C
-| | ...
-| | [Template] | Check RR for L2BD l2bdbasemaclrn-iacl1sl
-| | wt=2 | rxq=1 | framesize=${64}
+| | phy_cores=${2} | framesize=${64}
| tc06-1518B-2t2c-eth-l2bdbasemaclrn-iacl1-stateless-flows10k-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with ACL with\
-| | ... | 2 phy cores, 1 receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 1518B frames using single trial\
-| | ... | throughput test.
-| | ...
| | [Tags] | 1518B | 2C
-| | ...
-| | [Template] | Check RR for L2BD l2bdbasemaclrn-iacl1sl
-| | wt=2 | rxq=1 | framesize=${1518}
+| | phy_cores=${2} | framesize=${1518}
| tc07-9000B-2t2c-eth-l2bdbasemaclrn-iacl1-stateless-flows10k-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with ACL with\
-| | ... | 2 phy cores, 1 receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 9000B frames using single trial\
-| | ... | throughput test.
-| | ...
| | [Tags] | 9000B | 2C
-| | ...
-| | [Template] | Check RR for L2BD l2bdbasemaclrn-iacl1sl
-| | wt=2 | rxq=1 | framesize=${9000}
+| | phy_cores=${2} | framesize=${9000}
| tc08-IMIX-2t2c-eth-l2bdbasemaclrn-iacl1-stateless-flows10k-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with ACL with\
-| | ... | 2 phy cores, 1 receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for IMIX_v4_1 frames using single trial\
-| | ... | throughput test.
-| | ... | IMIX_v4_1 = (28x64B; 16x570B; 4x1518B)
-| | ...
| | [Tags] | IMIX | 2C
-| | ...
-| | [Template] | Check RR for L2BD l2bdbasemaclrn-iacl1sl
-| | wt=2 | rxq=1 | framesize=IMIX_v4_1
+| | phy_cores=${2} | framesize=IMIX_v4_1
| tc09-64B-4t4c-eth-l2bdbasemaclrn-iacl1-stateless-flows10k-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with ACL with\
-| | ... | 4 phy cores, 2 receive queues per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 64B frames using single trial\
-| | ... | throughput test.
-| | ...
| | [Tags] | 64B | 4C
-| | ...
-| | [Template] | Check RR for L2BD l2bdbasemaclrn-iacl1sl
-| | wt=4 | rxq=2 | framesize=${64}
+| | phy_cores=${4} | framesize=${64}
| tc10-1518B-4t4c-eth-l2bdbasemaclrn-iacl1-stateless-flows10k-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with ACL with\
-| | ... | 4 phy cores, 2 receive queues per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 1518B frames using single trial\
-| | ... | throughput test.
-| | ...
| | [Tags] | 1518B | 4C
-| | ...
-| | [Template] | Check RR for L2BD l2bdbasemaclrn-iacl1sl
-| | wt=4 | rxq=2 | framesize=${1518}
+| | phy_cores=${4} | framesize=${1518}
| tc11-9000B-4t4c-eth-l2bdbasemaclrn-iacl1-stateless-flows10k-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with ACL with\
-| | ... | 4 phy cores, 2 receive queues per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 9000B frames using single trial\
-| | ... | throughput test.
-| | ...
| | [Tags] | 9000B | 4C
-| | ...
-| | [Template] | Check RR for L2BD l2bdbasemaclrn-iacl1sl
-| | wt=4 | rxq=2 | framesize=${9000}
+| | phy_cores=${4} | framesize=${9000}
| tc12-IMIX-4t4c-eth-l2bdbasemaclrn-iacl1-stateless-flows10k-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with ACL with\
-| | ... | 4 phy cores, 2 receive queues per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for IMIX_v4_1 frames using single trial\
-| | ... | throughput test.
-| | ... | IMIX_v4_1 = (28x64B; 16x570B; 4x1518B)
-| | ...
| | [Tags] | IMIX | 4C
-| | ...
-| | [Template] | Check RR for L2BD l2bdbasemaclrn-iacl1sl
-| | wt=4 | rxq=2 | framesize=IMIX_v4_1
+| | phy_cores=${4} | framesize=IMIX_v4_1
diff --git a/tests/vpp/perf/l2/10ge2p1x520-eth-l2bdbasemaclrn-iacl1sl-10kflows-ndrpdrdisc.robot b/tests/vpp/perf/l2/10ge2p1x520-eth-l2bdbasemaclrn-iacl1sl-10kflows-ndrpdrdisc.robot
index 01a0c5e691..0a2d7014a0 100644
--- a/tests/vpp/perf/l2/10ge2p1x520-eth-l2bdbasemaclrn-iacl1sl-10kflows-ndrpdrdisc.robot
+++ b/tests/vpp/perf/l2/10ge2p1x520-eth-l2bdbasemaclrn-iacl1sl-10kflows-ndrpdrdisc.robot
@@ -29,6 +29,8 @@
| Test Teardown | Tear down performance test with ACL
| ... | ${min_rate}pps | ${framesize} | ${traffic_profile}
| ...
+| Test Template | Local template
+| ...
| Documentation | *RFC2544: Packet throughput L2BD test cases with ACL*
| ...
| ... | *[Top] Network Topologies:* TG-DUT1-DUT2-TG 3-node circular topology\
@@ -73,15 +75,17 @@
| ${trex_stream2_subnet}= | 20.20.20.0/24
*** Keywords ***
-| Discover NDR or PDR for L2 Bridge Domain with ACLs
-| | [Arguments] | ${wt} | ${rxq} | ${framesize} | ${min_rate} | ${search_type}
+| Local template
+| | [Arguments] | ${phy_core} | ${framesize} | ${search_type}
+| | ... | ${min_rate}=${50000} | ${rxq}=${None}
+| | ...
| | Set Test Variable | ${framesize}
| | Set Test Variable | ${min_rate}
| | ${max_rate}= | Calculate pps | ${s_limit} | ${framesize}
| | ${binary_min}= | Set Variable | ${min_rate}
| | ${binary_max}= | Set Variable | ${max_rate}
| | ${threshold}= | Set Variable | ${min_rate}
-| | Given Add '${wt}' worker threads and '${rxq}' rxqueues in 3-node single-link circular topology
+| | Given Add worker threads and rxqueues to all DUTs | ${phy_cores} | ${rxq}
| | And Add PCI devices to all DUTs
| | ${get_framesize}= | Get Frame Size | ${framesize}
| | And Run Keyword If | ${get_framesize} < ${1522} | Add no multi seg to all DUTs
@@ -101,73 +105,25 @@
*** Test Cases ***
| tc01-64B-1t1c-eth-l2bdbasemaclrn-iacl1-stateless-flows10k-ndrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with ACL with\
-| | ... | 1 phy core, 1 receive queue per NIC port.
-| | ... | [Ver] Find NDR for 64 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 50kpps.
-| | ...
| | [Tags] | 64B | 1C | NDRDISC
-| | ...
-| | [Template] | Discover NDR or PDR for L2 Bridge Domain with ACLs
-| | wt=1 | rxq=1 | framesize=${64} | min_rate=${50000} | search_type=NDR
+| | phy_cores=${1} | framesize=${64} | search_type=NDR
| tc02-64B-1t1c-eth-l2bdbasemaclrn-iacl1-stateless-flows10k-pdrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with ACL with\
-| | ... | 1 phy core, 1 receive queue per NIC port.
-| | ... | [Ver] Find PDR for 64 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 50kpps, LT=0.5%.
-| | ...
| | [Tags] | 64B | 1C | PDRDISC | SKIP_PATCH
-| | ...
-| | [Template] | Discover NDR or PDR for L2 Bridge Domain with ACLs
-| | wt=1 | rxq=1 | framesize=${64} | min_rate=${50000} | search_type=PDR
+| | phy_cores=${1} | framesize=${64} | search_type=PDR
| tc03-64B-2t2c-eth-l2bdbasemaclrn-iacl1-stateless-flows10k-ndrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with ACL with\
-| | ... | 2 phy cores, 1 receive queue per NIC port.
-| | ... | [Ver] Find NDR for 64 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 50kpps.
-| | ...
| | [Tags] | 64B | 2C | NDRDISC
-| | ...
-| | [Template] | Discover NDR or PDR for L2 Bridge Domain with ACLs
-| | wt=2 | rxq=1 | framesize=${64} | min_rate=${50000} | search_type=NDR
+| | phy_cores=${2} | framesize=${64} | search_type=NDR
| tc04-64B-2t2c-eth-l2bdbasemaclrn-iacl1-stateless-flows10k-pdrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with ACL with\
-| | ... | 2 phy cores, 1 receive queue per NIC port.
-| | ... | [Ver] Find PDR for 64 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 50kpps, LT=0.5%.
-| | ...
| | [Tags] | 64B | 2C | PDRDISC | SKIP_PATCH
-| | ...
-| | [Template] | Discover NDR or PDR for L2 Bridge Domain with ACLs
-| | wt=2 | rxq=1 | framesize=${64} | min_rate=${50000} | search_type=PDR
+| | phy_cores=${2} | framesize=${64} | search_type=PDR
| tc05-64B-4t4c-eth-l2bdbasemaclrn-iacl1-stateless-flows10k-ndrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with ACL with\
-| | ... | 4 phy cores, 2 receive queues per NIC port.
-| | ... | [Ver] Find NDR for 64 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 50kpps.
-| | ...
| | [Tags] | 64B | 4C | NDRDISC
-| | ...
-| | [Template] | Discover NDR or PDR for L2 Bridge Domain with ACLs
-| | wt=4 | rxq=2 | framesize=${64} | min_rate=${50000} | search_type=NDR
+| | phy_cores=${4} | framesize=${64} | search_type=NDR
| tc06-64B-4t4c-eth-l2bdbasemaclrn-iacl1-stateless-flows10k-pdrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with ACL with\
-| | ... | 4 phy cores, 2 receive queues per NIC port.
-| | ... | [Ver] Find PDR for 64 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 50kpps, LT=0.5%.
-| | ...
| | [Tags] | 64B | 4C | PDRDISC | SKIP_PATCH
-| | ...
-| | [Template] | Discover NDR or PDR for L2 Bridge Domain with ACLs
-| | wt=4 | rxq=2 | framesize=${64} | min_rate=${50000} | search_type=PDR
+| | phy_cores=${4} | framesize=${64} | search_type=PDR
diff --git a/tests/vpp/perf/l2/10ge2p1x520-eth-l2bdbasemaclrn-iacl50sf-100flows-ndrpdrdisc.robot b/tests/vpp/perf/l2/10ge2p1x520-eth-l2bdbasemaclrn-iacl50sf-100flows-ndrpdrdisc.robot
index aecc3cf8d2..6208c4e8e0 100644
--- a/tests/vpp/perf/l2/10ge2p1x520-eth-l2bdbasemaclrn-iacl50sf-100flows-ndrpdrdisc.robot
+++ b/tests/vpp/perf/l2/10ge2p1x520-eth-l2bdbasemaclrn-iacl50sf-100flows-ndrpdrdisc.robot
@@ -29,6 +29,8 @@
| Test Teardown | Tear down performance test with ACL
| ... | ${min_rate}pps | ${framesize} | ${traffic_profile}
| ...
+| Test Template | Local template
+| ...
| Documentation | *RFC2544: Packet throughput L2BD test cases with ACL*
| ...
| ... | *[Top] Network Topologies:* TG-DUT1-DUT2-TG 3-node circular topology\
@@ -73,15 +75,17 @@
| ${trex_stream2_subnet}= | 20.20.20.0/24
*** Keywords ***
-| Discover NDR or PDR for L2 Bridge Domain with ACLs
-| | [Arguments] | ${wt} | ${rxq} | ${framesize} | ${min_rate} | ${search_type}
+| Local template
+| | [Arguments] | ${phy_core} | ${framesize} | ${search_type}
+| | ... | ${min_rate}=${50000} | ${rxq}=${None}
+| | ...
| | Set Test Variable | ${framesize}
| | Set Test Variable | ${min_rate}
| | ${max_rate}= | Calculate pps | ${s_limit} | ${framesize}
| | ${binary_min}= | Set Variable | ${min_rate}
| | ${binary_max}= | Set Variable | ${max_rate}
| | ${threshold}= | Set Variable | ${min_rate}
-| | Given Add '${wt}' worker threads and '${rxq}' rxqueues in 3-node single-link circular topology
+| | Given Add worker threads and rxqueues to all DUTs | ${phy_cores} | ${rxq}
| | And Add PCI devices to all DUTs
| | ${get_framesize}= | Get Frame Size | ${framesize}
| | And Run Keyword If | ${get_framesize} < ${1522} | Add no multi seg to all DUTs
@@ -101,73 +105,25 @@
*** Test Cases ***
| tc01-64B-1t1c-eth-l2bdbasemaclrn-iacl50-stateful-flows100-ndrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with ACL with\
-| | ... | 1 phy core, 1 receive queue per NIC port.
-| | ... | [Ver] Find NDR for 64 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 50kpps.
-| | ...
| | [Tags] | 64B | 1C | NDRDISC
-| | ...
-| | [Template] | Discover NDR or PDR for L2 Bridge Domain with ACLs
-| | wt=1 | rxq=1 | framesize=${64} | min_rate=${50000} | search_type=NDR
+| | phy_cores=${1} | framesize=${64} | search_type=NDR
| tc02-64B-1t1c-eth-l2bdbasemaclrn-iacl50-stateful-flows100-pdrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with ACL with\
-| | ... | 1 phy core, 1 receive queue per NIC port.
-| | ... | [Ver] Find PDR for 64 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 50kpps, LT=0.5%.
-| | ...
| | [Tags] | 64B | 1C | PDRDISC | SKIP_PATCH
-| | ...
-| | [Template] | Discover NDR or PDR for L2 Bridge Domain with ACLs
-| | wt=1 | rxq=1 | framesize=${64} | min_rate=${50000} | search_type=PDR
+| | phy_cores=${1} | framesize=${64} | search_type=PDR
| tc03-64B-2t2c-eth-l2bdbasemaclrn-iacl50-stateful-flows100-ndrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with ACL with\
-| | ... | 2 phy cores, 1 receive queue per NIC port.
-| | ... | [Ver] Find NDR for 64 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 50kpps.
-| | ...
| | [Tags] | 64B | 2C | NDRDISC
-| | ...
-| | [Template] | Discover NDR or PDR for L2 Bridge Domain with ACLs
-| | wt=2 | rxq=1 | framesize=${64} | min_rate=${50000} | search_type=NDR
+| | phy_cores=${2} | framesize=${64} | search_type=NDR
| tc04-64B-2t2c-eth-l2bdbasemaclrn-iacl50-stateful-flows100-pdrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with ACL with\
-| | ... | 2 phy cores, 1 receive queue per NIC port.
-| | ... | [Ver] Find PDR for 64 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 50kpps, LT=0.5%.
-| | ...
| | [Tags] | 64B | 2C | PDRDISC | SKIP_PATCH
-| | ...
-| | [Template] | Discover NDR or PDR for L2 Bridge Domain with ACLs
-| | wt=2 | rxq=1 | framesize=${64} | min_rate=${50000} | search_type=PDR
+| | phy_cores=${2} | framesize=${64} | search_type=PDR
| tc05-64B-4t4c-eth-l2bdbasemaclrn-iacl50-stateful-flows100-ndrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with ACL with\
-| | ... | 4 phy cores, 2 receive queues per NIC port.
-| | ... | [Ver] Find NDR for 64 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 50kpps.
-| | ...
| | [Tags] | 64B | 4C | NDRDISC
-| | ...
-| | [Template] | Discover NDR or PDR for L2 Bridge Domain with ACLs
-| | wt=4 | rxq=2 | framesize=${64} | min_rate=${50000} | search_type=NDR
+| | phy_cores=${4} | framesize=${64} | search_type=NDR
| tc06-64B-4t4c-eth-l2bdbasemaclrn-iacl50-stateful-flows100-pdrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with ACL with\
-| | ... | 4 phy cores, 2 receive queues per NIC port.
-| | ... | [Ver] Find PDR for 64 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 50kpps, LT=0.5%.
-| | ...
| | [Tags] | 64B | 4C | PDRDISC | SKIP_PATCH
-| | ...
-| | [Template] | Discover NDR or PDR for L2 Bridge Domain with ACLs
-| | wt=4 | rxq=2 | framesize=${64} | min_rate=${50000} | search_type=PDR
+| | phy_cores=${4} | framesize=${64} | search_type=PDR
diff --git a/tests/vpp/perf/l2/10ge2p1x520-eth-l2bdbasemaclrn-iacl50sf-100kflows-ndrpdrdisc.robot b/tests/vpp/perf/l2/10ge2p1x520-eth-l2bdbasemaclrn-iacl50sf-100kflows-ndrpdrdisc.robot
index 0a7996f64f..069a2ca6fd 100644
--- a/tests/vpp/perf/l2/10ge2p1x520-eth-l2bdbasemaclrn-iacl50sf-100kflows-ndrpdrdisc.robot
+++ b/tests/vpp/perf/l2/10ge2p1x520-eth-l2bdbasemaclrn-iacl50sf-100kflows-ndrpdrdisc.robot
@@ -29,6 +29,8 @@
| Test Teardown | Tear down performance test with ACL
| ... | ${min_rate}pps | ${framesize} | ${traffic_profile}
| ...
+| Test Template | Local template
+| ...
| Documentation | *RFC2544: Packet throughput L2BD test cases with ACL*
| ...
| ... | *[Top] Network Topologies:* TG-DUT1-DUT2-TG 3-node circular topology\
@@ -73,15 +75,17 @@
| ${trex_stream2_subnet}= | 20.20.20.0/24
*** Keywords ***
-| Discover NDR or PDR for L2 Bridge Domain with ACLs
-| | [Arguments] | ${wt} | ${rxq} | ${framesize} | ${min_rate} | ${search_type}
+| Local template
+| | [Arguments] | ${phy_core} | ${framesize} | ${search_type}
+| | ... | ${min_rate}=${50000} | ${rxq}=${None}
+| | ...
| | Set Test Variable | ${framesize}
| | Set Test Variable | ${min_rate}
| | ${max_rate}= | Calculate pps | ${s_limit} | ${framesize}
| | ${binary_min}= | Set Variable | ${min_rate}
| | ${binary_max}= | Set Variable | ${max_rate}
| | ${threshold}= | Set Variable | ${min_rate}
-| | Given Add '${wt}' worker threads and '${rxq}' rxqueues in 3-node single-link circular topology
+| | Given Add worker threads and rxqueues to all DUTs | ${phy_cores} | ${rxq}
| | And Add PCI devices to all DUTs
| | ${get_framesize}= | Get Frame Size | ${framesize}
| | And Run Keyword If | ${get_framesize} < ${1522} | Add no multi seg to all DUTs
@@ -101,73 +105,25 @@
*** Test Cases ***
| tc01-64B-1t1c-eth-l2bdbasemaclrn-iacl50-stateful-flows100k-ndrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with ACL with\
-| | ... | 1 phy core, 1 receive queue per NIC port.
-| | ... | [Ver] Find NDR for 64 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 50kpps.
-| | ...
| | [Tags] | 64B | 1C | NDRDISC
-| | ...
-| | [Template] | Discover NDR or PDR for L2 Bridge Domain with ACLs
-| | wt=1 | rxq=1 | framesize=${64} | min_rate=${50000} | search_type=NDR
+| | phy_cores=${1} | framesize=${64} | search_type=NDR
| tc02-64B-1t1c-eth-l2bdbasemaclrn-iacl50-stateful-flows100k-pdrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with ACL with\
-| | ... | 1 phy core, 1 receive queue per NIC port.
-| | ... | [Ver] Find PDR for 64 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 50kpps, LT=0.5%.
-| | ...
| | [Tags] | 64B | 1C | PDRDISC | SKIP_PATCH
-| | ...
-| | [Template] | Discover NDR or PDR for L2 Bridge Domain with ACLs
-| | wt=1 | rxq=1 | framesize=${64} | min_rate=${50000} | search_type=PDR
+| | phy_cores=${1} | framesize=${64} | search_type=PDR
| tc03-64B-2t2c-eth-l2bdbasemaclrn-iacl50-stateful-flows100k-ndrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with ACL with\
-| | ... | 2 phy cores, 1 receive queue per NIC port.
-| | ... | [Ver] Find NDR for 64 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 50kpps.
-| | ...
| | [Tags] | 64B | 2C | NDRDISC
-| | ...
-| | [Template] | Discover NDR or PDR for L2 Bridge Domain with ACLs
-| | wt=2 | rxq=1 | framesize=${64} | min_rate=${50000} | search_type=NDR
+| | phy_cores=${2} | framesize=${64} | search_type=NDR
| tc04-64B-2t2c-eth-l2bdbasemaclrn-iacl50-stateful-flows100k-pdrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with ACL with\
-| | ... | 2 phy cores, 1 receive queue per NIC port.
-| | ... | [Ver] Find PDR for 64 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 50kpps, LT=0.5%.
-| | ...
| | [Tags] | 64B | 2C | PDRDISC | SKIP_PATCH
-| | ...
-| | [Template] | Discover NDR or PDR for L2 Bridge Domain with ACLs
-| | wt=2 | rxq=1 | framesize=${64} | min_rate=${50000} | search_type=PDR
+| | phy_cores=${2} | framesize=${64} | search_type=PDR
| tc05-64B-4t4c-eth-l2bdbasemaclrn-iacl50-stateful-flows100k-ndrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with ACL with\
-| | ... | 4 phy cores, 2 receive queues per NIC port.
-| | ... | [Ver] Find NDR for 64 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 50kpps.
-| | ...
| | [Tags] | 64B | 4C | NDRDISC
-| | ...
-| | [Template] | Discover NDR or PDR for L2 Bridge Domain with ACLs
-| | wt=4 | rxq=2 | framesize=${64} | min_rate=${50000} | search_type=NDR
+| | phy_cores=${4} | framesize=${64} | search_type=NDR
| tc06-64B-4t4c-eth-l2bdbasemaclrn-iacl50-stateful-flows100k-pdrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with ACL with\
-| | ... | 4 phy cores, 2 receive queues per NIC port.
-| | ... | [Ver] Find PDR for 64 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 50kpps, LT=0.5%.
-| | ...
| | [Tags] | 64B | 4C | PDRDISC | SKIP_PATCH
-| | ...
-| | [Template] | Discover NDR or PDR for L2 Bridge Domain with ACLs
-| | wt=4 | rxq=2 | framesize=${64} | min_rate=${50000} | search_type=PDR
+| | phy_cores=${4} | framesize=${64} | search_type=PDR
diff --git a/tests/vpp/perf/l2/10ge2p1x520-eth-l2bdbasemaclrn-iacl50sf-10kflows-mrr.robot b/tests/vpp/perf/l2/10ge2p1x520-eth-l2bdbasemaclrn-iacl50sf-10kflows-mrr.robot
index 1467f1a82d..3ef8bf84e6 100644
--- a/tests/vpp/perf/l2/10ge2p1x520-eth-l2bdbasemaclrn-iacl50sf-10kflows-mrr.robot
+++ b/tests/vpp/perf/l2/10ge2p1x520-eth-l2bdbasemaclrn-iacl50sf-10kflows-mrr.robot
@@ -28,6 +28,8 @@
| ...
| Test Teardown | Tear down performance mrr test
| ...
+| Test Template | Local template
+| ...
| Documentation | *Raw results L2BD test cases with ACL*
| ...
| ... | *[Top] Network Topologies:* TG-DUT1-DUT2-TG 3-node circular topology\
@@ -71,21 +73,26 @@
| ${traffic_profile} | trex-sl-3n-ethip4udp-10u1000p-conc
*** Keywords ***
-| Check RR for L2BD l2bdbasemaclrn-iacl50sf
+| Local template
| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD config with ACLs with ${wt} thread(s), ${wt}\
-| | ... | phy core(s), ${rxq} receive queue(s) per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for ${framesize} frames using single\
+| | ... | [Cfg] DUT runs L2BD config with ACLs with ${phy_cores} phy
+| | ... | core(s).
+| | ... | [Ver] Measure MaxReceivedRate for ${framesize}B frames using single\
| | ... | trial throughput test.
| | ...
-| | [Arguments] | ${wt} | ${rxq} | ${framesize}
+| | ... | *Arguments:*
+| | ... | - framesize - Framesize in Bytes in integer or string (IMIX_v4_1).
+| | ... | Type: integer, string
+| | ... | - phy_cores - Number of physical cores. Type: integer
+| | ... | - rxq - Number of RX queues, default value: ${None}. Type: integer
+| | ...
+| | [Arguments] | ${phy_cores} | ${framesize} | ${rxq}=${None}
| | ...
-| | # Test Variables required for test teardown
| | Set Test Variable | ${framesize}
| | ${get_framesize}= | Get Frame Size | ${framesize}
| | ${max_rate}= | Calculate pps | ${s_limit} | ${get_framesize}
| | ...
-| | Given Add '${wt}' worker threads and '${rxq}' rxqueues in 3-node single-link circular topology
+| | Given Add worker threads and rxqueues to all DUTs | ${phy_cores} | ${rxq}
| | And Add PCI devices to all DUTs
| | And Run Keyword If | ${get_framesize} < ${1522}
| | ... | Add no multi seg to all DUTs
@@ -96,148 +103,49 @@
*** Test Cases ***
| tc01-64B-1t1c-eth-l2bdbasemaclrn-iacl50-stateful-flows10k-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with ACL with\
-| | ... | 1 phy core, 1 receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 64B frames using single trial\
-| | ... | throughput test.
-| | ...
| | [Tags] | 64B | 1C
-| | ...
-| | [Template] | Check RR for L2BD l2bdbasemaclrn-iacl50sf
-| | wt=1 | rxq=1 | framesize=${64}
+| | phy_cores=${1} | framesize=${64}
| tc02-1518B-1t1c-eth-l2bdbasemaclrn-iacl50-stateful-flows10k-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with ACL with\
-| | ... | 1 phy core, 1 receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 1518B frames using single trial\
-| | ... | throughput test.
-| | ...
| | [Tags] | 1518B | 1C
-| | ...
-| | [Template] | Check RR for L2BD l2bdbasemaclrn-iacl50sf
-| | wt=1 | rxq=1 | framesize=${1518}
+| | phy_cores=${1} | framesize=${1518}
| tc03-9000B-1t1c-eth-l2bdbasemaclrn-iacl50-stateful-flows10k-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with ACL with\
-| | ... | 1 phy core, 1 receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 9000B frames using single trial\
-| | ... | throughput test.
-| | ...
| | [Tags] | 9000B | 1C
-| | ...
-| | [Template] | Check RR for L2BD l2bdbasemaclrn-iacl50sf
-| | wt=1 | rxq=1 | framesize=${9000}
+| | phy_cores=${1} | framesize=${9000}
| tc04-IMIX-1t1c-eth-l2bdbasemaclrn-iacl50-stateful-flows10k-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with ACL with\
-| | ... | 1 phy core, 1 receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for IMIX_v4_1 frames using single trial\
-| | ... | throughput test.
-| | ... | IMIX_v4_1 = (28x64B; 16x570B; 4x1518B)
-| | ...
| | [Tags] | IMIX | 1C
-| | ...
-| | [Template] | Check RR for L2BD l2bdbasemaclrn-iacl50sf
-| | wt=1 | rxq=1 | framesize=IMIX_v4_1
+| | phy_cores=${1} | framesize=IMIX_v4_1
| tc05-64B-2t2c-eth-l2bdbasemaclrn-iacl50-stateful-flows10k-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with ACL with\
-| | ... | 2 phy cores, 1 receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 64B frames using single trial\
-| | ... | throughput test.
-| | ...
| | [Tags] | 64B | 2C
-| | ...
-| | [Template] | Check RR for L2BD l2bdbasemaclrn-iacl50sf
-| | wt=2 | rxq=1 | framesize=${64}
+| | phy_cores=${2} | framesize=${64}
| tc06-1518B-2t2c-eth-l2bdbasemaclrn-iacl50-stateful-flows10k-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with ACL with\
-| | ... | 2 phy cores, 1 receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 1518B frames using single trial\
-| | ... | throughput test.
-| | ...
| | [Tags] | 1518B | 2C
-| | ...
-| | [Template] | Check RR for L2BD l2bdbasemaclrn-iacl50sf
-| | wt=2 | rxq=1 | framesize=${1518}
+| | phy_cores=${2} | framesize=${1518}
| tc07-9000B-2t2c-eth-l2bdbasemaclrn-iacl50-stateful-flows10k-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with ACL with\
-| | ... | 2 phy cores, 1 receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 9000B frames using single trial\
-| | ... | throughput test.
-| | ...
| | [Tags] | 9000B | 2C
-| | ...
-| | [Template] | Check RR for L2BD l2bdbasemaclrn-iacl50sf
-| | wt=2 | rxq=1 | framesize=${9000}
+| | phy_cores=${2} | framesize=${9000}
| tc08-IMIX-2t2c-eth-l2bdbasemaclrn-iacl50-stateful-flows10k-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with ACL with\
-| | ... | 2 phy cores, 1 receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for IMIX_v4_1 frames using single trial\
-| | ... | throughput test.
-| | ... | IMIX_v4_1 = (28x64B; 16x570B; 4x1518B)
-| | ...
| | [Tags] | IMIX | 2C
-| | ...
-| | [Template] | Check RR for L2BD l2bdbasemaclrn-iacl50sf
-| | wt=2 | rxq=1 | framesize=IMIX_v4_1
+| | phy_cores=${2} | framesize=IMIX_v4_1
| tc09-64B-4t4c-eth-l2bdbasemaclrn-iacl50-stateful-flows10k-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with ACL with\
-| | ... | 4 phy cores, 2 receive queues per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 64B frames using single trial\
-| | ... | throughput test.
-| | ...
| | [Tags] | 64B | 4C
-| | ...
-| | [Template] | Check RR for L2BD l2bdbasemaclrn-iacl50sf
-| | wt=4 | rxq=2 | framesize=${64}
+| | phy_cores=${4} | framesize=${64}
| tc10-1518B-4t4c-eth-l2bdbasemaclrn-iacl50-stateful-flows10k-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with ACL with\
-| | ... | 4 phy cores, 2 receive queues per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 1518B frames using single trial\
-| | ... | throughput test.
-| | ...
| | [Tags] | 1518B | 4C
-| | ...
-| | [Template] | Check RR for L2BD l2bdbasemaclrn-iacl50sf
-| | wt=4 | rxq=2 | framesize=${1518}
+| | phy_cores=${4} | framesize=${1518}
| tc11-9000B-4t4c-eth-l2bdbasemaclrn-iacl50-stateful-flows10k-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with ACL with\
-| | ... | 4 phy cores, 2 receive queues per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 9000B frames using single trial\
-| | ... | throughput test.
-| | ...
| | [Tags] | 9000B | 4C
-| | ...
-| | [Template] | Check RR for L2BD l2bdbasemaclrn-iacl50sf
-| | wt=4 | rxq=2 | framesize=${9000}
+| | phy_cores=${4} | framesize=${9000}
| tc12-IMIX-4t4c-eth-l2bdbasemaclrn-iacl50-stateful-flows10k-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with ACL with\
-| | ... | 4 phy cores, 2 receive queues per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for IMIX_v4_1 frames using single trial\
-| | ... | throughput test.
-| | ... | IMIX_v4_1 = (28x64B; 16x570B; 4x1518B)
-| | ...
| | [Tags] | IMIX | 4C
-| | ...
-| | [Template] | Check RR for L2BD l2bdbasemaclrn-iacl50sf
-| | wt=4 | rxq=2 | framesize=IMIX_v4_1
+| | phy_cores=${4} | framesize=IMIX_v4_1
diff --git a/tests/vpp/perf/l2/10ge2p1x520-eth-l2bdbasemaclrn-iacl50sf-10kflows-ndrpdrdisc.robot b/tests/vpp/perf/l2/10ge2p1x520-eth-l2bdbasemaclrn-iacl50sf-10kflows-ndrpdrdisc.robot
index bafb1fbc62..9b6666249e 100644
--- a/tests/vpp/perf/l2/10ge2p1x520-eth-l2bdbasemaclrn-iacl50sf-10kflows-ndrpdrdisc.robot
+++ b/tests/vpp/perf/l2/10ge2p1x520-eth-l2bdbasemaclrn-iacl50sf-10kflows-ndrpdrdisc.robot
@@ -29,6 +29,8 @@
| Test Teardown | Tear down performance test with ACL
| ... | ${min_rate}pps | ${framesize} | ${traffic_profile}
| ...
+| Test Template | Local template
+| ...
| Documentation | *RFC2544: Packet throughput L2BD test cases with ACL*
| ...
| ... | *[Top] Network Topologies:* TG-DUT1-DUT2-TG 3-node circular topology\
@@ -73,15 +75,17 @@
| ${trex_stream2_subnet}= | 20.20.20.0/24
*** Keywords ***
-| Discover NDR or PDR for L2 Bridge Domain with ACLs
-| | [Arguments] | ${wt} | ${rxq} | ${framesize} | ${min_rate} | ${search_type}
+| Local template
+| | [Arguments] | ${phy_core} | ${framesize} | ${search_type}
+| | ... | ${min_rate}=${50000} | ${rxq}=${None}
+| | ...
| | Set Test Variable | ${framesize}
| | Set Test Variable | ${min_rate}
| | ${max_rate}= | Calculate pps | ${s_limit} | ${framesize}
| | ${binary_min}= | Set Variable | ${min_rate}
| | ${binary_max}= | Set Variable | ${max_rate}
| | ${threshold}= | Set Variable | ${min_rate}
-| | Given Add '${wt}' worker threads and '${rxq}' rxqueues in 3-node single-link circular topology
+| | Given Add worker threads and rxqueues to all DUTs | ${phy_cores} | ${rxq}
| | And Add PCI devices to all DUTs
| | ${get_framesize}= | Get Frame Size | ${framesize}
| | And Run Keyword If | ${get_framesize} < ${1522} | Add no multi seg to all DUTs
@@ -101,73 +105,25 @@
*** Test Cases ***
| tc01-64B-1t1c-eth-l2bdbasemaclrn-iacl50-stateful-flows10k-ndrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with ACL with\
-| | ... | 1 phy core, 1 receive queue per NIC port.
-| | ... | [Ver] Find NDR for 64 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 50kpps.
-| | ...
| | [Tags] | 64B | 1C | NDRDISC
-| | ...
-| | [Template] | Discover NDR or PDR for L2 Bridge Domain with ACLs
-| | wt=1 | rxq=1 | framesize=${64} | min_rate=${50000} | search_type=NDR
+| | phy_cores=${1} | framesize=${64} | search_type=NDR
| tc02-64B-1t1c-eth-l2bdbasemaclrn-iacl50-stateful-flows10k-pdrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with ACL with\
-| | ... | 1 phy core, 1 receive queue per NIC port.
-| | ... | [Ver] Find PDR for 64 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 50kpps, LT=0.5%.
-| | ...
| | [Tags] | 64B | 1C | PDRDISC | SKIP_PATCH
-| | ...
-| | [Template] | Discover NDR or PDR for L2 Bridge Domain with ACLs
-| | wt=1 | rxq=1 | framesize=${64} | min_rate=${50000} | search_type=PDR
+| | phy_cores=${1} | framesize=${64} | search_type=PDR
| tc03-64B-2t2c-eth-l2bdbasemaclrn-iacl50-stateful-flows10k-ndrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with ACL with\
-| | ... | 2 phy cores, 1 receive queue per NIC port.
-| | ... | [Ver] Find NDR for 64 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 50kpps.
-| | ...
| | [Tags] | 64B | 2C | NDRDISC
-| | ...
-| | [Template] | Discover NDR or PDR for L2 Bridge Domain with ACLs
-| | wt=2 | rxq=1 | framesize=${64} | min_rate=${50000} | search_type=NDR
+| | phy_cores=${2} | framesize=${64} | search_type=NDR
| tc04-64B-2t2c-eth-l2bdbasemaclrn-iacl50-stateful-flows10k-pdrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with ACL with\
-| | ... | 2 phy cores, 1 receive queue per NIC port.
-| | ... | [Ver] Find PDR for 64 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 50kpps, LT=0.5%.
-| | ...
| | [Tags] | 64B | 2C | PDRDISC | SKIP_PATCH
-| | ...
-| | [Template] | Discover NDR or PDR for L2 Bridge Domain with ACLs
-| | wt=2 | rxq=1 | framesize=${64} | min_rate=${50000} | search_type=PDR
+| | phy_cores=${2} | framesize=${64} | search_type=PDR
| tc05-64B-4t4c-eth-l2bdbasemaclrn-iacl50-stateful-flows10k-ndrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with ACL with\
-| | ... | 4 phy cores, 2 receive queues per NIC port.
-| | ... | [Ver] Find NDR for 64 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 50kpps.
-| | ...
| | [Tags] | 64B | 4C | NDRDISC
-| | ...
-| | [Template] | Discover NDR or PDR for L2 Bridge Domain with ACLs
-| | wt=4 | rxq=2 | framesize=${64} | min_rate=${50000} | search_type=NDR
+| | phy_cores=${4} | framesize=${64} | search_type=NDR
| tc06-64B-4t4c-eth-l2bdbasemaclrn-iacl50-stateful-flows10k-pdrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with ACL with\
-| | ... | 4 phy cores, 2 receive queues per NIC port.
-| | ... | [Ver] Find PDR for 64 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 50kpps, LT=0.5%.
-| | ...
| | [Tags] | 64B | 4C | PDRDISC | SKIP_PATCH
-| | ...
-| | [Template] | Discover NDR or PDR for L2 Bridge Domain with ACLs
-| | wt=4 | rxq=2 | framesize=${64} | min_rate=${50000} | search_type=PDR
+| | phy_cores=${4} | framesize=${64} | search_type=PDR
diff --git a/tests/vpp/perf/l2/10ge2p1x520-eth-l2bdbasemaclrn-iacl50sl-100flows-ndrpdrdisc.robot b/tests/vpp/perf/l2/10ge2p1x520-eth-l2bdbasemaclrn-iacl50sl-100flows-ndrpdrdisc.robot
index 68f09c5aa3..4a6fd0de16 100644
--- a/tests/vpp/perf/l2/10ge2p1x520-eth-l2bdbasemaclrn-iacl50sl-100flows-ndrpdrdisc.robot
+++ b/tests/vpp/perf/l2/10ge2p1x520-eth-l2bdbasemaclrn-iacl50sl-100flows-ndrpdrdisc.robot
@@ -29,6 +29,8 @@
| Test Teardown | Tear down performance test with ACL
| ... | ${min_rate}pps | ${framesize} | ${traffic_profile}
| ...
+| Test Template | Local template
+| ...
| Documentation | *RFC2544: Packet throughput L2BD test cases with ACL*
| ...
| ... | *[Top] Network Topologies:* TG-DUT1-DUT2-TG 3-node circular topology\
@@ -73,15 +75,17 @@
| ${trex_stream2_subnet}= | 20.20.20.0/24
*** Keywords ***
-| Discover NDR or PDR for L2 Bridge Domain with ACLs
-| | [Arguments] | ${wt} | ${rxq} | ${framesize} | ${min_rate} | ${search_type}
+| Local template
+| | [Arguments] | ${phy_core} | ${framesize} | ${search_type}
+| | ... | ${min_rate}=${50000} | ${rxq}=${None}
+| | ...
| | Set Test Variable | ${framesize}
| | Set Test Variable | ${min_rate}
| | ${max_rate}= | Calculate pps | ${s_limit} | ${framesize}
| | ${binary_min}= | Set Variable | ${min_rate}
| | ${binary_max}= | Set Variable | ${max_rate}
| | ${threshold}= | Set Variable | ${min_rate}
-| | Given Add '${wt}' worker threads and '${rxq}' rxqueues in 3-node single-link circular topology
+| | Given Add worker threads and rxqueues to all DUTs | ${phy_cores} | ${rxq}
| | And Add PCI devices to all DUTs
| | ${get_framesize}= | Get Frame Size | ${framesize}
| | And Run Keyword If | ${get_framesize} < ${1522} | Add no multi seg to all DUTs
@@ -101,73 +105,25 @@
*** Test Cases ***
| tc01-64B-1t1c-eth-l2bdbasemaclrn-iacl50-stateless-flows100-ndrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with ACL with\
-| | ... | 1 phy core, 1 receive queue per NIC port.
-| | ... | [Ver] Find NDR for 64 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 50kpps.
-| | ...
| | [Tags] | 64B | 1C | NDRDISC
-| | ...
-| | [Template] | Discover NDR or PDR for L2 Bridge Domain with ACLs
-| | wt=1 | rxq=1 | framesize=${64} | min_rate=${50000} | search_type=NDR
+| | phy_cores=${1} | framesize=${64} | search_type=NDR
| tc02-64B-1t1c-eth-l2bdbasemaclrn-iacl50-stateless-flows100-pdrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with ACL with\
-| | ... | 1 phy core, 1 receive queue per NIC port.
-| | ... | [Ver] Find PDR for 64 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 50kpps, LT=0.5%.
-| | ...
| | [Tags] | 64B | 1C | PDRDISC | SKIP_PATCH
-| | ...
-| | [Template] | Discover NDR or PDR for L2 Bridge Domain with ACLs
-| | wt=1 | rxq=1 | framesize=${64} | min_rate=${50000} | search_type=PDR
+| | phy_cores=${1} | framesize=${64} | search_type=PDR
| tc03-64B-2t2c-eth-l2bdbasemaclrn-iacl50-stateless-flows100-ndrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with ACL with\
-| | ... | 2 phy cores, 1 receive queue per NIC port.
-| | ... | [Ver] Find NDR for 64 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 50kpps.
-| | ...
| | [Tags] | 64B | 2C | NDRDISC
-| | ...
-| | [Template] | Discover NDR or PDR for L2 Bridge Domain with ACLs
-| | wt=2 | rxq=1 | framesize=${64} | min_rate=${50000} | search_type=NDR
+| | phy_cores=${2} | framesize=${64} | search_type=NDR
| tc04-64B-2t2c-eth-l2bdbasemaclrn-iacl50-stateless-flows100-pdrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with ACL with\
-| | ... | 2 phy cores, 1 receive queue per NIC port.
-| | ... | [Ver] Find PDR for 64 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 50kpps, LT=0.5%.
-| | ...
| | [Tags] | 64B | 2C | PDRDISC | SKIP_PATCH
-| | ...
-| | [Template] | Discover NDR or PDR for L2 Bridge Domain with ACLs
-| | wt=2 | rxq=1 | framesize=${64} | min_rate=${50000} | search_type=PDR
+| | phy_cores=${2} | framesize=${64} | search_type=PDR
| tc05-64B-4t4c-eth-l2bdbasemaclrn-iacl50-stateless-flows100-ndrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with ACL with\
-| | ... | 4 phy cores, 2 receive queues per NIC port.
-| | ... | [Ver] Find NDR for 64 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 50kpps.
-| | ...
| | [Tags] | 64B | 4C | NDRDISC
-| | ...
-| | [Template] | Discover NDR or PDR for L2 Bridge Domain with ACLs
-| | wt=4 | rxq=2 | framesize=${64} | min_rate=${50000} | search_type=NDR
+| | phy_cores=${4} | framesize=${64} | search_type=NDR
| tc06-64B-4t4c-eth-l2bdbasemaclrn-iacl50-stateless-flows100-pdrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with ACL with\
-| | ... | 4 phy cores, 2 receive queues per NIC port.
-| | ... | [Ver] Find PDR for 64 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 50kpps, LT=0.5%.
-| | ...
| | [Tags] | 64B | 4C | PDRDISC | SKIP_PATCH
-| | ...
-| | [Template] | Discover NDR or PDR for L2 Bridge Domain with ACLs
-| | wt=4 | rxq=2 | framesize=${64} | min_rate=${50000} | search_type=PDR
+| | phy_cores=${4} | framesize=${64} | search_type=PDR
diff --git a/tests/vpp/perf/l2/10ge2p1x520-eth-l2bdbasemaclrn-iacl50sl-100kflows-ndrpdrdisc.robot b/tests/vpp/perf/l2/10ge2p1x520-eth-l2bdbasemaclrn-iacl50sl-100kflows-ndrpdrdisc.robot
index 3632dbc273..e1b51da2af 100644
--- a/tests/vpp/perf/l2/10ge2p1x520-eth-l2bdbasemaclrn-iacl50sl-100kflows-ndrpdrdisc.robot
+++ b/tests/vpp/perf/l2/10ge2p1x520-eth-l2bdbasemaclrn-iacl50sl-100kflows-ndrpdrdisc.robot
@@ -29,6 +29,8 @@
| Test Teardown | Tear down performance test with ACL
| ... | ${min_rate}pps | ${framesize} | ${traffic_profile}
| ...
+| Test Template | Local template
+| ...
| Documentation | *RFC2544: Packet throughput L2BD test cases with ACL*
| ...
| ... | *[Top] Network Topologies:* TG-DUT1-DUT2-TG 3-node circular topology\
@@ -73,15 +75,17 @@
| ${trex_stream2_subnet}= | 20.20.20.0/24
*** Keywords ***
-| Discover NDR or PDR for L2 Bridge Domain with ACLs
-| | [Arguments] | ${wt} | ${rxq} | ${framesize} | ${min_rate} | ${search_type}
+| Local template
+| | [Arguments] | ${phy_core} | ${framesize} | ${search_type}
+| | ... | ${min_rate}=${50000} | ${rxq}=${None}
+| | ...
| | Set Test Variable | ${framesize}
| | Set Test Variable | ${min_rate}
| | ${max_rate}= | Calculate pps | ${s_limit} | ${framesize}
| | ${binary_min}= | Set Variable | ${min_rate}
| | ${binary_max}= | Set Variable | ${max_rate}
| | ${threshold}= | Set Variable | ${min_rate}
-| | Given Add '${wt}' worker threads and '${rxq}' rxqueues in 3-node single-link circular topology
+| | Given Add worker threads and rxqueues to all DUTs | ${phy_cores} | ${rxq}
| | And Add PCI devices to all DUTs
| | ${get_framesize}= | Get Frame Size | ${framesize}
| | And Run Keyword If | ${get_framesize} < ${1522} | Add no multi seg to all DUTs
@@ -101,73 +105,25 @@
*** Test Cases ***
| tc01-64B-1t1c-eth-l2bdbasemaclrn-iacl50-stateless-flows100k-ndrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with ACL with\
-| | ... | 1 phy core, 1 receive queue per NIC port.
-| | ... | [Ver] Find NDR for 64 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 50kpps.
-| | ...
| | [Tags] | 64B | 1C | NDRDISC
-| | ...
-| | [Template] | Discover NDR or PDR for L2 Bridge Domain with ACLs
-| | wt=1 | rxq=1 | framesize=${64} | min_rate=${50000} | search_type=NDR
+| | phy_cores=${1} | framesize=${64} | search_type=NDR
| tc02-64B-1t1c-eth-l2bdbasemaclrn-iacl50-stateless-flows100k-pdrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with ACL with\
-| | ... | 1 phy core, 1 receive queue per NIC port.
-| | ... | [Ver] Find PDR for 64 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 50kpps, LT=0.5%.
-| | ...
| | [Tags] | 64B | 1C | PDRDISC | SKIP_PATCH
-| | ...
-| | [Template] | Discover NDR or PDR for L2 Bridge Domain with ACLs
-| | wt=1 | rxq=1 | framesize=${64} | min_rate=${50000} | search_type=PDR
+| | phy_cores=${1} | framesize=${64} | search_type=PDR
| tc03-64B-2t2c-eth-l2bdbasemaclrn-iacl50-stateless-flows100k-ndrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with ACL with\
-| | ... | 2 phy cores, 1 receive queue per NIC port.
-| | ... | [Ver] Find NDR for 64 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 50kpps.
-| | ...
| | [Tags] | 64B | 2C | NDRDISC
-| | ...
-| | [Template] | Discover NDR or PDR for L2 Bridge Domain with ACLs
-| | wt=2 | rxq=1 | framesize=${64} | min_rate=${50000} | search_type=NDR
+| | phy_cores=${2} | framesize=${64} | search_type=NDR
| tc04-64B-2t2c-eth-l2bdbasemaclrn-iacl50-stateless-flows100k-pdrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with ACL with\
-| | ... | 2 phy cores, 1 receive queue per NIC port.
-| | ... | [Ver] Find PDR for 64 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 50kpps, LT=0.5%.
-| | ...
| | [Tags] | 64B | 2C | PDRDISC | SKIP_PATCH
-| | ...
-| | [Template] | Discover NDR or PDR for L2 Bridge Domain with ACLs
-| | wt=2 | rxq=1 | framesize=${64} | min_rate=${50000} | search_type=PDR
+| | phy_cores=${2} | framesize=${64} | search_type=PDR
| tc05-64B-4t4c-eth-l2bdbasemaclrn-iacl50-stateless-flows100k-ndrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with ACL with\
-| | ... | 4 phy cores, 2 receive queues per NIC port.
-| | ... | [Ver] Find NDR for 64 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 50kpps.
-| | ...
| | [Tags] | 64B | 4C | NDRDISC
-| | ...
-| | [Template] | Discover NDR or PDR for L2 Bridge Domain with ACLs
-| | wt=4 | rxq=2 | framesize=${64} | min_rate=${50000} | search_type=NDR
+| | phy_cores=${4} | framesize=${64} | search_type=NDR
| tc06-64B-4t4c-eth-l2bdbasemaclrn-iacl50-stateless-flows100k-pdrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with ACL with\
-| | ... | 4 phy cores, 2 receive queues per NIC port.
-| | ... | [Ver] Find PDR for 64 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 50kpps, LT=0.5%.
-| | ...
| | [Tags] | 64B | 4C | PDRDISC | SKIP_PATCH
-| | ...
-| | [Template] | Discover NDR or PDR for L2 Bridge Domain with ACLs
-| | wt=4 | rxq=2 | framesize=${64} | min_rate=${50000} | search_type=PDR
+| | phy_cores=${4} | framesize=${64} | search_type=PDR
diff --git a/tests/vpp/perf/l2/10ge2p1x520-eth-l2bdbasemaclrn-iacl50sl-10kflows-mrr.robot b/tests/vpp/perf/l2/10ge2p1x520-eth-l2bdbasemaclrn-iacl50sl-10kflows-mrr.robot
index 9a31d7b7ea..f8dc475a22 100644
--- a/tests/vpp/perf/l2/10ge2p1x520-eth-l2bdbasemaclrn-iacl50sl-10kflows-mrr.robot
+++ b/tests/vpp/perf/l2/10ge2p1x520-eth-l2bdbasemaclrn-iacl50sl-10kflows-mrr.robot
@@ -28,6 +28,8 @@
| ...
| Test Teardown | Tear down performance mrr test
| ...
+| Test Template | Local template
+| ...
| Documentation | *Raw results L2BD test cases with ACL*
| ...
| ... | *[Top] Network Topologies:* TG-DUT1-DUT2-TG 3-node circular topology\
@@ -71,21 +73,26 @@
| ${traffic_profile} | trex-sl-3n-ethip4udp-10u1000p-conc
*** Keywords ***
-| Check RR for L2BD l2bdbasemaclrn-iacl50sl
+| Local template
| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD config with ACLs with ${wt} thread(s), ${wt}\
-| | ... | phy core(s), ${rxq} receive queue(s) per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for ${framesize} frames using single\
+| | ... | [Cfg] DUT runs L2BD config with ACLs with ${phy_cores} phy
+| | ... | core(s).
+| | ... | [Ver] Measure MaxReceivedRate for ${framesize}B frames using single\
| | ... | trial throughput test.
| | ...
-| | [Arguments] | ${wt} | ${rxq} | ${framesize}
+| | ... | *Arguments:*
+| | ... | - framesize - Framesize in Bytes in integer or string (IMIX_v4_1).
+| | ... | Type: integer, string
+| | ... | - phy_cores - Number of physical cores. Type: integer
+| | ... | - rxq - Number of RX queues, default value: ${None}. Type: integer
+| | ...
+| | [Arguments] | ${phy_cores} | ${framesize} | ${rxq}=${None}
| | ...
-| | # Test Variables required for test teardown
| | Set Test Variable | ${framesize}
| | ${get_framesize}= | Get Frame Size | ${framesize}
| | ${max_rate}= | Calculate pps | ${s_limit} | ${get_framesize}
| | ...
-| | Given Add '${wt}' worker threads and '${rxq}' rxqueues in 3-node single-link circular topology
+| | Given Add worker threads and rxqueues to all DUTs | ${phy_cores} | ${rxq}
| | And Add PCI devices to all DUTs
| | And Run Keyword If | ${get_framesize} < ${1522}
| | ... | Add no multi seg to all DUTs
@@ -96,148 +103,49 @@
*** Test Cases ***
| tc01-64B-1t1c-eth-l2bdbasemaclrn-iacl50-stateless-flows10k-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with ACL with\
-| | ... | 1 phy core, 1 receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 64B frames using single trial\
-| | ... | throughput test.
-| | ...
| | [Tags] | 64B | 1C
-| | ...
-| | [Template] | Check RR for L2BD l2bdbasemaclrn-iacl50sl
-| | wt=1 | rxq=1 | framesize=${64}
+| | phy_cores=${1} | framesize=${64}
| tc02-1518B-1t1c-eth-l2bdbasemaclrn-iacl50-stateless-flows10k-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with ACL with\
-| | ... | 1 phy core, 1 receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 1518B frames using single trial\
-| | ... | throughput test.
-| | ...
| | [Tags] | 1518B | 1C
-| | ...
-| | [Template] | Check RR for L2BD l2bdbasemaclrn-iacl50sl
-| | wt=1 | rxq=1 | framesize=${1518}
+| | phy_cores=${1} | framesize=${1518}
| tc03-9000B-1t1c-eth-l2bdbasemaclrn-iacl50-stateless-flows10k-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with ACL with\
-| | ... | 1 phy core, 1 receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 9000B frames using single trial\
-| | ... | throughput test.
-| | ...
| | [Tags] | 9000B | 1C
-| | ...
-| | [Template] | Check RR for L2BD l2bdbasemaclrn-iacl50sl
-| | wt=1 | rxq=1 | framesize=${9000}
+| | phy_cores=${1} | framesize=${9000}
| tc04-IMIX-1t1c-eth-l2bdbasemaclrn-iacl50-stateless-flows10k-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with ACL with\
-| | ... | 1 phy core, 1 receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for IMIX_v4_1 frames using single trial\
-| | ... | throughput test.
-| | ... | IMIX_v4_1 = (28x64B; 16x570B; 4x1518B)
-| | ...
| | [Tags] | IMIX | 1C
-| | ...
-| | [Template] | Check RR for L2BD l2bdbasemaclrn-iacl50sl
-| | wt=1 | rxq=1 | framesize=IMIX_v4_1
+| | phy_cores=${1} | framesize=IMIX_v4_1
| tc05-64B-2t2c-eth-l2bdbasemaclrn-iacl50-stateless-flows10k-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with ACL with\
-| | ... | 2 phy cores, 1 receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 64B frames using single trial\
-| | ... | throughput test.
-| | ...
| | [Tags] | 64B | 2C
-| | ...
-| | [Template] | Check RR for L2BD l2bdbasemaclrn-iacl50sl
-| | wt=2 | rxq=1 | framesize=${64}
+| | phy_cores=${2} | framesize=${64}
| tc06-1518B-2t2c-eth-l2bdbasemaclrn-iacl50-stateless-flows10k-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with ACL with\
-| | ... | 2 phy cores, 1 receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 1518B frames using single trial\
-| | ... | throughput test.
-| | ...
| | [Tags] | 1518B | 2C
-| | ...
-| | [Template] | Check RR for L2BD l2bdbasemaclrn-iacl50sl
-| | wt=2 | rxq=1 | framesize=${1518}
+| | phy_cores=${2} | framesize=${1518}
| tc07-9000B-2t2c-eth-l2bdbasemaclrn-iacl50-stateless-flows10k-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with ACL with\
-| | ... | 2 phy cores, 1 receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 9000B frames using single trial\
-| | ... | throughput test.
-| | ...
| | [Tags] | 9000B | 2C
-| | ...
-| | [Template] | Check RR for L2BD l2bdbasemaclrn-iacl50sl
-| | wt=2 | rxq=1 | framesize=${9000}
+| | phy_cores=${2} | framesize=${9000}
| tc08-IMIX-2t2c-eth-l2bdbasemaclrn-iacl50-stateless-flows10k-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with ACL with\
-| | ... | 2 phy cores, 1 receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for IMIX_v4_1 frames using single trial\
-| | ... | throughput test.
-| | ... | IMIX_v4_1 = (28x64B; 16x570B; 4x1518B)
-| | ...
| | [Tags] | IMIX | 2C
-| | ...
-| | [Template] | Check RR for L2BD l2bdbasemaclrn-iacl50sl
-| | wt=2 | rxq=1 | framesize=IMIX_v4_1
+| | phy_cores=${2} | framesize=IMIX_v4_1
| tc09-64B-4t4c-eth-l2bdbasemaclrn-iacl50-stateless-flows10k-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with ACL with\
-| | ... | 4 phy cores, 2 receive queues per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 64B frames using single trial\
-| | ... | throughput test.
-| | ...
| | [Tags] | 64B | 4C
-| | ...
-| | [Template] | Check RR for L2BD l2bdbasemaclrn-iacl50sl
-| | wt=4 | rxq=2 | framesize=${64}
+| | phy_cores=${4} | framesize=${64}
| tc10-1518B-4t4c-eth-l2bdbasemaclrn-iacl50-stateless-flows10k-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with ACL with\
-| | ... | 4 phy cores, 2 receive queues per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 1518B frames using single trial\
-| | ... | throughput test.
-| | ...
| | [Tags] | 1518B | 4C
-| | ...
-| | [Template] | Check RR for L2BD l2bdbasemaclrn-iacl50sl
-| | wt=4 | rxq=2 | framesize=${1518}
+| | phy_cores=${4} | framesize=${1518}
| tc11-9000B-4t4c-eth-l2bdbasemaclrn-iacl50-stateless-flows10k-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with ACL with\
-| | ... | 4 phy cores, 2 receive queues per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 9000B frames using single trial\
-| | ... | throughput test.
-| | ...
| | [Tags] | 9000B | 4C
-| | ...
-| | [Template] | Check RR for L2BD l2bdbasemaclrn-iacl50sl
-| | wt=4 | rxq=2 | framesize=${9000}
+| | phy_cores=${4} | framesize=${9000}
| tc12-IMIX-4t4c-eth-l2bdbasemaclrn-iacl50-stateless-flows10k-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with ACL with\
-| | ... | 4 phy cores, 2 receive queues per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for IMIX_v4_1 frames using single trial\
-| | ... | throughput test.
-| | ... | IMIX_v4_1 = (28x64B; 16x570B; 4x1518B)
-| | ...
| | [Tags] | IMIX | 4C
-| | ...
-| | [Template] | Check RR for L2BD l2bdbasemaclrn-iacl50sl
-| | wt=4 | rxq=2 | framesize=IMIX_v4_1
+| | phy_cores=${4} | framesize=IMIX_v4_1
diff --git a/tests/vpp/perf/l2/10ge2p1x520-eth-l2bdbasemaclrn-iacl50sl-10kflows-ndrpdrdisc.robot b/tests/vpp/perf/l2/10ge2p1x520-eth-l2bdbasemaclrn-iacl50sl-10kflows-ndrpdrdisc.robot
index 594ba6ed33..49493be244 100644
--- a/tests/vpp/perf/l2/10ge2p1x520-eth-l2bdbasemaclrn-iacl50sl-10kflows-ndrpdrdisc.robot
+++ b/tests/vpp/perf/l2/10ge2p1x520-eth-l2bdbasemaclrn-iacl50sl-10kflows-ndrpdrdisc.robot
@@ -29,6 +29,8 @@
| Test Teardown | Tear down performance test with ACL
| ... | ${min_rate}pps | ${framesize} | ${traffic_profile}
| ...
+| Test Template | Local template
+| ...
| Documentation | *RFC2544: Packet throughput L2BD test cases with ACL*
| ...
| ... | *[Top] Network Topologies:* TG-DUT1-DUT2-TG 3-node circular topology\
@@ -73,15 +75,17 @@
| ${trex_stream2_subnet}= | 20.20.20.0/24
*** Keywords ***
-| Discover NDR or PDR for L2 Bridge Domain with ACLs
-| | [Arguments] | ${wt} | ${rxq} | ${framesize} | ${min_rate} | ${search_type}
+| Local template
+| | [Arguments] | ${phy_core} | ${framesize} | ${search_type}
+| | ... | ${min_rate}=${50000} | ${rxq}=${None}
+| | ...
| | Set Test Variable | ${framesize}
| | Set Test Variable | ${min_rate}
| | ${max_rate}= | Calculate pps | ${s_limit} | ${framesize}
| | ${binary_min}= | Set Variable | ${min_rate}
| | ${binary_max}= | Set Variable | ${max_rate}
| | ${threshold}= | Set Variable | ${min_rate}
-| | Given Add '${wt}' worker threads and '${rxq}' rxqueues in 3-node single-link circular topology
+| | Given Add worker threads and rxqueues to all DUTs | ${phy_cores} | ${rxq}
| | And Add PCI devices to all DUTs
| | ${get_framesize}= | Get Frame Size | ${framesize}
| | And Run Keyword If | ${get_framesize} < ${1522} | Add no multi seg to all DUTs
@@ -101,73 +105,25 @@
*** Test Cases ***
| tc01-64B-1t1c-eth-l2bdbasemaclrn-iacl50-stateless-flows10k-ndrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with ACL with\
-| | ... | 1 phy core, 1 receive queue per NIC port.
-| | ... | [Ver] Find NDR for 64 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 50kpps.
-| | ...
| | [Tags] | 64B | 1C | NDRDISC
-| | ...
-| | [Template] | Discover NDR or PDR for L2 Bridge Domain with ACLs
-| | wt=1 | rxq=1 | framesize=${64} | min_rate=${50000} | search_type=NDR
+| | phy_cores=${1} | framesize=${64} | search_type=NDR
| tc02-64B-1t1c-eth-l2bdbasemaclrn-iacl50-stateless-flows10k-pdrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with ACL with\
-| | ... | 1 phy core, 1 receive queue per NIC port.
-| | ... | [Ver] Find PDR for 64 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 50kpps, LT=0.5%.
-| | ...
| | [Tags] | 64B | 1C | PDRDISC | SKIP_PATCH
-| | ...
-| | [Template] | Discover NDR or PDR for L2 Bridge Domain with ACLs
-| | wt=1 | rxq=1 | framesize=${64} | min_rate=${50000} | search_type=PDR
+| | phy_cores=${1} | framesize=${64} | search_type=PDR
| tc03-64B-2t2c-eth-l2bdbasemaclrn-iacl50-stateless-flows10k-ndrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with ACL with\
-| | ... | 2 phy cores, 1 receive queue per NIC port.
-| | ... | [Ver] Find NDR for 64 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 50kpps.
-| | ...
| | [Tags] | 64B | 2C | NDRDISC
-| | ...
-| | [Template] | Discover NDR or PDR for L2 Bridge Domain with ACLs
-| | wt=2 | rxq=1 | framesize=${64} | min_rate=${50000} | search_type=NDR
+| | phy_cores=${2} | framesize=${64} | search_type=NDR
| tc04-64B-2t2c-eth-l2bdbasemaclrn-iacl50-stateless-flows10k-pdrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with ACL with\
-| | ... | 2 phy cores, 1 receive queue per NIC port.
-| | ... | [Ver] Find PDR for 64 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 50kpps, LT=0.5%.
-| | ...
| | [Tags] | 64B | 2C | PDRDISC | SKIP_PATCH
-| | ...
-| | [Template] | Discover NDR or PDR for L2 Bridge Domain with ACLs
-| | wt=2 | rxq=1 | framesize=${64} | min_rate=${50000} | search_type=PDR
+| | phy_cores=${2} | framesize=${64} | search_type=PDR
| tc05-64B-4t4c-eth-l2bdbasemaclrn-iacl50-stateless-flows10k-ndrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with ACL with\
-| | ... | 4 phy cores, 2 receive queues per NIC port.
-| | ... | [Ver] Find NDR for 64 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 50kpps.
-| | ...
| | [Tags] | 64B | 4C | NDRDISC
-| | ...
-| | [Template] | Discover NDR or PDR for L2 Bridge Domain with ACLs
-| | wt=4 | rxq=2 | framesize=${64} | min_rate=${50000} | search_type=NDR
+| | phy_cores=${4} | framesize=${64} | search_type=NDR
| tc06-64B-4t4c-eth-l2bdbasemaclrn-iacl50-stateless-flows10k-pdrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with ACL with\
-| | ... | 4 phy cores, 2 receive queues per NIC port.
-| | ... | [Ver] Find PDR for 64 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 50kpps, LT=0.5%.
-| | ...
| | [Tags] | 64B | 4C | PDRDISC | SKIP_PATCH
-| | ...
-| | [Template] | Discover NDR or PDR for L2 Bridge Domain with ACLs
-| | wt=4 | rxq=2 | framesize=${64} | min_rate=${50000} | search_type=PDR
+| | phy_cores=${4} | framesize=${64} | search_type=PDR
diff --git a/tests/vpp/perf/l2/10ge2p1x520-eth-l2bdbasemaclrn-macip-iacl10sl-100flows-ndrpdrdisc.robot b/tests/vpp/perf/l2/10ge2p1x520-eth-l2bdbasemaclrn-macip-iacl10sl-100flows-ndrpdrdisc.robot
index 9ed0f51cd1..fb23e6852b 100644
--- a/tests/vpp/perf/l2/10ge2p1x520-eth-l2bdbasemaclrn-macip-iacl10sl-100flows-ndrpdrdisc.robot
+++ b/tests/vpp/perf/l2/10ge2p1x520-eth-l2bdbasemaclrn-macip-iacl10sl-100flows-ndrpdrdisc.robot
@@ -29,6 +29,8 @@
| Test Teardown | Tear down performance test with MACIP ACL
| ... | ${min_rate}pps | ${framesize} | ${traffic_profile}
| ...
+| Test Template | Local template
+| ...
| Documentation | *RFC2544: Packet throughput L2BD test cases with ACL*
| ...
| ... | *[Top] Network Topologies:* TG-DUT1-DUT2-TG 3-node circular topology\
@@ -78,9 +80,9 @@
| ${traffic_profile}= | trex-sl-3n-ethip4-macsrc100ip4src100
*** Keywords ***
-| Discover NDR or PDR for L2 Bridge Domain with MACIP ACLs
-| | ...
-| | [Arguments] | ${wt} | ${rxq} | ${framesize} | ${min_rate} | ${search_type}
+| Local template
+| | [Arguments] | ${phy_core} | ${framesize} | ${search_type}
+| | ... | ${min_rate}=${50000} | ${rxq}=${None}
| | ...
| | Set Test Variable | ${framesize}
| | Set Test Variable | ${min_rate}
@@ -89,7 +91,7 @@
| | ${binary_max}= | Set Variable | ${max_rate}
| | ${threshold}= | Set Variable | ${min_rate}
| | ...
-| | Given Add '${wt}' worker threads and '${rxq}' rxqueues in 3-node single-link circular topology
+| | Given Add worker threads and rxqueues to all DUTs | ${phy_cores} | ${rxq}
| | And Add PCI devices to all DUTs
| | ${get_framesize}= | Get Frame Size | ${framesize}
| | And Run Keyword If | ${get_framesize} < ${1522} | Add no multi seg to all DUTs
@@ -107,73 +109,25 @@
*** Test Cases ***
| tc01-64B-1t1c-eth-l2bdbasemaclrn-macip-iacl10sl-100flows-ndrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with MACIP ACL with\
-| | ... | 1 phy core, 1 receive queue per NIC port.
-| | ... | [Ver] Find NDR for 64 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 50kpps.
-| | ...
| | [Tags] | 64B | 1C | NDRDISC
-| | ...
-| | [Template] | Discover NDR or PDR for L2 Bridge Domain with MACIP ACLs
-| | wt=1 | rxq=1 | framesize=${64} | min_rate=${50000} | search_type=NDR
+| | phy_cores=${1} | framesize=${64} | search_type=NDR
| tc02-64B-1t1c-eth-l2bdbasemaclrn-macip-iacl10sl-100flows-pdrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with MACIP ACL with\
-| | ... | 1 phy core, 1 receive queue per NIC port.
-| | ... | [Ver] Find PDR for 64 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 50kpps, LT=0.5%.
-| | ...
| | [Tags] | 64B | 1C | PDRDISC | SKIP_PATCH
-| | ...
-| | [Template] | Discover NDR or PDR for L2 Bridge Domain with MACIP ACLs
-| | wt=1 | rxq=1 | framesize=${64} | min_rate=${50000} | search_type=PDR
+| | phy_cores=${1} | framesize=${64} | search_type=PDR
| tc03-64B-2t2c-eth-l2bdbasemaclrn-macip-iacl10sl-100flows-ndrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with MACIP ACL with\
-| | ... | 2 phy cores, 1 receive queue per NIC port.
-| | ... | [Ver] Find NDR for 64 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 50kpps.
-| | ...
| | [Tags] | 64B | 2C | NDRDISC
-| | ...
-| | [Template] | Discover NDR or PDR for L2 Bridge Domain with MACIP ACLs
-| | wt=2 | rxq=1 | framesize=${64} | min_rate=${50000} | search_type=NDR
+| | phy_cores=${2} | framesize=${64} | search_type=NDR
| tc04-64B-2t2c-eth-l2bdbasemaclrn-macip-iacl10sl-100flows-pdrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with MACIP ACL with\
-| | ... | 2 phy cores, 1 receive queue per NIC port.
-| | ... | [Ver] Find PDR for 64 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 50kpps, LT=0.5%.
-| | ...
| | [Tags] | 64B | 2C | PDRDISC | SKIP_PATCH
-| | ...
-| | [Template] | Discover NDR or PDR for L2 Bridge Domain with MACIP ACLs
-| | wt=2 | rxq=1 | framesize=${64} | min_rate=${50000} | search_type=PDR
+| | phy_cores=${2} | framesize=${64} | search_type=PDR
| tc05-64B-4t4c-eth-l2bdbasemaclrn-macip-iacl10sl-100flows-ndrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with MACIP ACL with\
-| | ... | 4 phy cores, 2 receive queues per NIC port.
-| | ... | [Ver] Find NDR for 64 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 50kpps.
-| | ...
| | [Tags] | 64B | 4C | NDRDISC
-| | ...
-| | [Template] | Discover NDR or PDR for L2 Bridge Domain with MACIP ACLs
-| | wt=4 | rxq=2 | framesize=${64} | min_rate=${50000} | search_type=NDR
+| | phy_cores=${4} | framesize=${64} | search_type=NDR
| tc06-64B-4t4c-eth-l2bdbasemaclrn-macip-iacl10sl-100flows-pdrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with MACIP ACL with\
-| | ... | 4 phy cores, 2 receive queues per NIC port.
-| | ... | [Ver] Find PDR for 64 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 50kpps, LT=0.5%.
-| | ...
| | [Tags] | 64B | 4C | PDRDISC | SKIP_PATCH
-| | ...
-| | [Template] | Discover NDR or PDR for L2 Bridge Domain with MACIP ACLs
-| | wt=4 | rxq=2 | framesize=${64} | min_rate=${50000} | search_type=PDR
+| | phy_cores=${4} | framesize=${64} | search_type=PDR
diff --git a/tests/vpp/perf/l2/10ge2p1x520-eth-l2bdbasemaclrn-macip-iacl10sl-100kflows-ndrpdrdisc.robot b/tests/vpp/perf/l2/10ge2p1x520-eth-l2bdbasemaclrn-macip-iacl10sl-100kflows-ndrpdrdisc.robot
index 5de0d46327..3b1dbeeddf 100644
--- a/tests/vpp/perf/l2/10ge2p1x520-eth-l2bdbasemaclrn-macip-iacl10sl-100kflows-ndrpdrdisc.robot
+++ b/tests/vpp/perf/l2/10ge2p1x520-eth-l2bdbasemaclrn-macip-iacl10sl-100kflows-ndrpdrdisc.robot
@@ -29,6 +29,8 @@
| Test Teardown | Tear down performance test with MACIP ACL
| ... | ${min_rate}pps | ${framesize} | ${traffic_profile}
| ...
+| Test Template | Local template
+| ...
| Documentation | *RFC2544: Packet throughput L2BD test cases with ACL*
| ...
| ... | *[Top] Network Topologies:* TG-DUT1-DUT2-TG 3-node circular topology\
@@ -78,9 +80,9 @@
| ${traffic_profile}= | trex-sl-3n-ethip4-macsrc100kip4src100k
*** Keywords ***
-| Discover NDR or PDR for L2 Bridge Domain with MACIP ACLs
-| | ...
-| | [Arguments] | ${wt} | ${rxq} | ${framesize} | ${min_rate} | ${search_type}
+| Local template
+| | [Arguments] | ${phy_core} | ${framesize} | ${search_type}
+| | ... | ${min_rate}=${50000} | ${rxq}=${None}
| | ...
| | Set Test Variable | ${framesize}
| | Set Test Variable | ${min_rate}
@@ -89,7 +91,7 @@
| | ${binary_max}= | Set Variable | ${max_rate}
| | ${threshold}= | Set Variable | ${min_rate}
| | ...
-| | Given Add '${wt}' worker threads and '${rxq}' rxqueues in 3-node single-link circular topology
+| | Given Add worker threads and rxqueues to all DUTs | ${phy_cores} | ${rxq}
| | And Add PCI devices to all DUTs
| | ${get_framesize}= | Get Frame Size | ${framesize}
| | And Run Keyword If | ${get_framesize} < ${1522} | Add no multi seg to all DUTs
@@ -107,73 +109,25 @@
*** Test Cases ***
| tc01-64B-1t1c-eth-l2bdbasemaclrn-macip-iacl10sl-100kflows-ndrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with MACIP ACL with\
-| | ... | 1 phy core, 1 receive queue per NIC port.
-| | ... | [Ver] Find NDR for 64 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 50kpps.
-| | ...
| | [Tags] | 64B | 1C | NDRDISC
-| | ...
-| | [Template] | Discover NDR or PDR for L2 Bridge Domain with MACIP ACLs
-| | wt=1 | rxq=1 | framesize=${64} | min_rate=${50000} | search_type=NDR
+| | phy_cores=${1} | framesize=${64} | search_type=NDR
| tc02-64B-1t1c-eth-l2bdbasemaclrn-macip-iacl10sl-100kflows-pdrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with MACIP ACL with\
-| | ... | 1 phy core, 1 receive queue per NIC port.
-| | ... | [Ver] Find PDR for 64 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 50kpps, LT=0.5%.
-| | ...
| | [Tags] | 64B | 1C | PDRDISC | SKIP_PATCH
-| | ...
-| | [Template] | Discover NDR or PDR for L2 Bridge Domain with MACIP ACLs
-| | wt=1 | rxq=1 | framesize=${64} | min_rate=${50000} | search_type=PDR
+| | phy_cores=${1} | framesize=${64} | search_type=PDR
| tc03-64B-2t2c-eth-l2bdbasemaclrn-macip-iacl10sl-100kflows-ndrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with MACIP ACL with\
-| | ... | 2 phy cores, 1 receive queue per NIC port.
-| | ... | [Ver] Find NDR for 64 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 50kpps.
-| | ...
| | [Tags] | 64B | 2C | NDRDISC
-| | ...
-| | [Template] | Discover NDR or PDR for L2 Bridge Domain with MACIP ACLs
-| | wt=2 | rxq=1 | framesize=${64} | min_rate=${50000} | search_type=NDR
+| | phy_cores=${2} | framesize=${64} | search_type=NDR
| tc04-64B-2t2c-eth-l2bdbasemaclrn-macip-iacl10sl-100kflows-pdrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with MACIP ACL with\
-| | ... | 2 phy cores, 1 receive queue per NIC port.
-| | ... | [Ver] Find PDR for 64 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 50kpps, LT=0.5%.
-| | ...
| | [Tags] | 64B | 2C | PDRDISC | SKIP_PATCH
-| | ...
-| | [Template] | Discover NDR or PDR for L2 Bridge Domain with MACIP ACLs
-| | wt=2 | rxq=1 | framesize=${64} | min_rate=${50000} | search_type=PDR
+| | phy_cores=${2} | framesize=${64} | search_type=PDR
| tc05-64B-4t4c-eth-l2bdbasemaclrn-macip-iacl10sl-100kflows-ndrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with MACIP ACL with\
-| | ... | 4 phy cores, 2 receive queues per NIC port.
-| | ... | [Ver] Find NDR for 64 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 50kpps.
-| | ...
| | [Tags] | 64B | 4C | NDRDISC
-| | ...
-| | [Template] | Discover NDR or PDR for L2 Bridge Domain with MACIP ACLs
-| | wt=4 | rxq=2 | framesize=${64} | min_rate=${50000} | search_type=NDR
+| | phy_cores=${4} | framesize=${64} | search_type=NDR
| tc06-64B-4t4c-eth-l2bdbasemaclrn-macip-iacl10sl-100kflows-pdrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with MACIP ACL with\
-| | ... | 4 phy cores, 2 receive queues per NIC port.
-| | ... | [Ver] Find PDR for 64 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 50kpps, LT=0.5%.
-| | ...
| | [Tags] | 64B | 4C | PDRDISC | SKIP_PATCH
-| | ...
-| | [Template] | Discover NDR or PDR for L2 Bridge Domain with MACIP ACLs
-| | wt=4 | rxq=2 | framesize=${64} | min_rate=${50000} | search_type=PDR
+| | phy_cores=${4} | framesize=${64} | search_type=PDR
diff --git a/tests/vpp/perf/l2/10ge2p1x520-eth-l2bdbasemaclrn-macip-iacl10sl-10kflows-ndrpdrdisc.robot b/tests/vpp/perf/l2/10ge2p1x520-eth-l2bdbasemaclrn-macip-iacl10sl-10kflows-ndrpdrdisc.robot
index 9beba816c8..ba83ccd5d0 100644
--- a/tests/vpp/perf/l2/10ge2p1x520-eth-l2bdbasemaclrn-macip-iacl10sl-10kflows-ndrpdrdisc.robot
+++ b/tests/vpp/perf/l2/10ge2p1x520-eth-l2bdbasemaclrn-macip-iacl10sl-10kflows-ndrpdrdisc.robot
@@ -29,6 +29,8 @@
| Test Teardown | Tear down performance test with MACIP ACL
| ... | ${min_rate}pps | ${framesize} | ${traffic_profile}
| ...
+| Test Template | Local template
+| ...
| Documentation | *RFC2544: Packet throughput L2BD test cases with ACL*
| ...
| ... | *[Top] Network Topologies:* TG-DUT1-DUT2-TG 3-node circular topology\
@@ -78,9 +80,9 @@
| ${traffic_profile}= | trex-sl-3n-ethip4-macsrc10kip4src10k
*** Keywords ***
-| Discover NDR or PDR for L2 Bridge Domain with MACIP ACLs
-| | ...
-| | [Arguments] | ${wt} | ${rxq} | ${framesize} | ${min_rate} | ${search_type}
+| Local template
+| | [Arguments] | ${phy_core} | ${framesize} | ${search_type}
+| | ... | ${min_rate}=${50000} | ${rxq}=${None}
| | ...
| | Set Test Variable | ${framesize}
| | Set Test Variable | ${min_rate}
@@ -89,7 +91,7 @@
| | ${binary_max}= | Set Variable | ${max_rate}
| | ${threshold}= | Set Variable | ${min_rate}
| | ...
-| | Given Add '${wt}' worker threads and '${rxq}' rxqueues in 3-node single-link circular topology
+| | Given Add worker threads and rxqueues to all DUTs | ${phy_cores} | ${rxq}
| | And Add PCI devices to all DUTs
| | ${get_framesize}= | Get Frame Size | ${framesize}
| | And Run Keyword If | ${get_framesize} < ${1522} | Add no multi seg to all DUTs
@@ -107,73 +109,25 @@
*** Test Cases ***
| tc01-64B-1t1c-eth-l2bdbasemaclrn-macip-iacl10sl-10kflows-ndrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with MACIP ACL with\
-| | ... | 1 phy core, 1 receive queue per NIC port.
-| | ... | [Ver] Find NDR for 64 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 50kpps.
-| | ...
| | [Tags] | 64B | 1C | NDRDISC
-| | ...
-| | [Template] | Discover NDR or PDR for L2 Bridge Domain with MACIP ACLs
-| | wt=1 | rxq=1 | framesize=${64} | min_rate=${50000} | search_type=NDR
+| | phy_cores=${1} | framesize=${64} | search_type=NDR
| tc02-64B-1t1c-eth-l2bdbasemaclrn-macip-iacl10sl-10kflows-pdrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with MACIP ACL with\
-| | ... | 1 phy core, 1 receive queue per NIC port.
-| | ... | [Ver] Find PDR for 64 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 50kpps, LT=0.5%.
-| | ...
| | [Tags] | 64B | 1C | PDRDISC | SKIP_PATCH
-| | ...
-| | [Template] | Discover NDR or PDR for L2 Bridge Domain with MACIP ACLs
-| | wt=1 | rxq=1 | framesize=${64} | min_rate=${50000} | search_type=PDR
+| | phy_cores=${1} | framesize=${64} | search_type=PDR
| tc03-64B-2t2c-eth-l2bdbasemaclrn-macip-iacl10sl-10kflows-ndrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with MACIP ACL with\
-| | ... | 2 phy cores, 1 receive queue per NIC port.
-| | ... | [Ver] Find NDR for 64 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 50kpps.
-| | ...
| | [Tags] | 64B | 2C | NDRDISC
-| | ...
-| | [Template] | Discover NDR or PDR for L2 Bridge Domain with MACIP ACLs
-| | wt=2 | rxq=1 | framesize=${64} | min_rate=${50000} | search_type=NDR
+| | phy_cores=${2} | framesize=${64} | search_type=NDR
| tc04-64B-2t2c-eth-l2bdbasemaclrn-macip-iacl10sl-10kflows-pdrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with MACIP ACL with\
-| | ... | 2 phy cores, 1 receive queue per NIC port.
-| | ... | [Ver] Find PDR for 64 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 50kpps, LT=0.5%.
-| | ...
| | [Tags] | 64B | 2C | PDRDISC | SKIP_PATCH
-| | ...
-| | [Template] | Discover NDR or PDR for L2 Bridge Domain with MACIP ACLs
-| | wt=2 | rxq=1 | framesize=${64} | min_rate=${50000} | search_type=PDR
+| | phy_cores=${2} | framesize=${64} | search_type=PDR
| tc05-64B-4t4c-eth-l2bdbasemaclrn-macip-iacl10sl-10kflows-ndrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with MACIP ACL with\
-| | ... | 4 phy cores, 2 receive queues per NIC port.
-| | ... | [Ver] Find NDR for 64 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 50kpps.
-| | ...
| | [Tags] | 64B | 4C | NDRDISC
-| | ...
-| | [Template] | Discover NDR or PDR for L2 Bridge Domain with MACIP ACLs
-| | wt=4 | rxq=2 | framesize=${64} | min_rate=${50000} | search_type=NDR
+| | phy_cores=${4} | framesize=${64} | search_type=NDR
| tc06-64B-4t4c-eth-l2bdbasemaclrn-macip-iacl10sl-10kflows-pdrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with MACIP ACL with\
-| | ... | 4 phy cores, 2 receive queues per NIC port.
-| | ... | [Ver] Find PDR for 64 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 50kpps, LT=0.5%.
-| | ...
| | [Tags] | 64B | 4C | PDRDISC | SKIP_PATCH
-| | ...
-| | [Template] | Discover NDR or PDR for L2 Bridge Domain with MACIP ACLs
-| | wt=4 | rxq=2 | framesize=${64} | min_rate=${50000} | search_type=PDR
+| | phy_cores=${4} | framesize=${64} | search_type=PDR
diff --git a/tests/vpp/perf/l2/10ge2p1x520-eth-l2bdbasemaclrn-macip-iacl1sl-100flows-ndrpdrdisc.robot b/tests/vpp/perf/l2/10ge2p1x520-eth-l2bdbasemaclrn-macip-iacl1sl-100flows-ndrpdrdisc.robot
index 4028de7c29..6ba6f537b3 100644
--- a/tests/vpp/perf/l2/10ge2p1x520-eth-l2bdbasemaclrn-macip-iacl1sl-100flows-ndrpdrdisc.robot
+++ b/tests/vpp/perf/l2/10ge2p1x520-eth-l2bdbasemaclrn-macip-iacl1sl-100flows-ndrpdrdisc.robot
@@ -29,6 +29,8 @@
| Test Teardown | Tear down performance test with MACIP ACL
| ... | ${min_rate}pps | ${framesize} | ${traffic_profile}
| ...
+| Test Template | Local template
+| ...
| Documentation | *RFC2544: Packet throughput L2BD test cases with ACL*
| ...
| ... | *[Top] Network Topologies:* TG-DUT1-DUT2-TG 3-node circular topology\
@@ -78,9 +80,9 @@
| ${traffic_profile}= | trex-sl-3n-ethip4-macsrc100ip4src100
*** Keywords ***
-| Discover NDR or PDR for L2 Bridge Domain with MACIP ACLs
-| | ...
-| | [Arguments] | ${wt} | ${rxq} | ${framesize} | ${min_rate} | ${search_type}
+| Local template
+| | [Arguments] | ${phy_core} | ${framesize} | ${search_type}
+| | ... | ${min_rate}=${50000} | ${rxq}=${None}
| | ...
| | Set Test Variable | ${framesize}
| | Set Test Variable | ${min_rate}
@@ -89,7 +91,7 @@
| | ${binary_max}= | Set Variable | ${max_rate}
| | ${threshold}= | Set Variable | ${min_rate}
| | ...
-| | Given Add '${wt}' worker threads and '${rxq}' rxqueues in 3-node single-link circular topology
+| | Given Add worker threads and rxqueues to all DUTs | ${phy_cores} | ${rxq}
| | And Add PCI devices to all DUTs
| | ${get_framesize}= | Get Frame Size | ${framesize}
| | And Run Keyword If | ${get_framesize} < ${1522} | Add no multi seg to all DUTs
@@ -107,73 +109,25 @@
*** Test Cases ***
| tc01-64B-1t1c-eth-l2bdbasemaclrn-macip-iacl1sl-100flows-ndrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with MACIP ACL with\
-| | ... | 1 phy core, 1 receive queue per NIC port.
-| | ... | [Ver] Find NDR for 64 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 50kpps.
-| | ...
| | [Tags] | 64B | 1C | NDRDISC
-| | ...
-| | [Template] | Discover NDR or PDR for L2 Bridge Domain with MACIP ACLs
-| | wt=1 | rxq=1 | framesize=${64} | min_rate=${50000} | search_type=NDR
+| | phy_cores=${1} | framesize=${64} | search_type=NDR
| tc02-64B-1t1c-eth-l2bdbasemaclrn-macip-iacl1sl-100flows-pdrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with MACIP ACL with\
-| | ... | 1 phy core, 1 receive queue per NIC port.
-| | ... | [Ver] Find PDR for 64 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 50kpps, LT=0.5%.
-| | ...
| | [Tags] | 64B | 1C | PDRDISC | SKIP_PATCH
-| | ...
-| | [Template] | Discover NDR or PDR for L2 Bridge Domain with MACIP ACLs
-| | wt=1 | rxq=1 | framesize=${64} | min_rate=${50000} | search_type=PDR
+| | phy_cores=${1} | framesize=${64} | search_type=PDR
| tc03-64B-2t2c-eth-l2bdbasemaclrn-macip-iacl1sl-100flows-ndrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with MACIP ACL with\
-| | ... | 2 phy cores, 1 receive queue per NIC port.
-| | ... | [Ver] Find NDR for 64 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 50kpps.
-| | ...
| | [Tags] | 64B | 2C | NDRDISC
-| | ...
-| | [Template] | Discover NDR or PDR for L2 Bridge Domain with MACIP ACLs
-| | wt=2 | rxq=1 | framesize=${64} | min_rate=${50000} | search_type=NDR
+| | phy_cores=${2} | framesize=${64} | search_type=NDR
| tc04-64B-2t2c-eth-l2bdbasemaclrn-macip-iacl1sl-100flows-pdrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with MACIP ACL with\
-| | ... | 2 phy cores, 1 receive queue per NIC port.
-| | ... | [Ver] Find PDR for 64 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 50kpps, LT=0.5%.
-| | ...
| | [Tags] | 64B | 2C | PDRDISC | SKIP_PATCH
-| | ...
-| | [Template] | Discover NDR or PDR for L2 Bridge Domain with MACIP ACLs
-| | wt=2 | rxq=1 | framesize=${64} | min_rate=${50000} | search_type=PDR
+| | phy_cores=${2} | framesize=${64} | search_type=PDR
| tc05-64B-4t4c-eth-l2bdbasemaclrn-macip-iacl1sl-100flows-ndrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with MACIP ACL with\
-| | ... | 4 phy cores, 2 receive queues per NIC port.
-| | ... | [Ver] Find NDR for 64 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 50kpps.
-| | ...
| | [Tags] | 64B | 4C | NDRDISC
-| | ...
-| | [Template] | Discover NDR or PDR for L2 Bridge Domain with MACIP ACLs
-| | wt=4 | rxq=2 | framesize=${64} | min_rate=${50000} | search_type=NDR
+| | phy_cores=${4} | framesize=${64} | search_type=NDR
| tc06-64B-4t4c-eth-l2bdbasemaclrn-macip-iacl1sl-100flows-pdrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with MACIP ACL with\
-| | ... | 4 phy cores, 2 receive queues per NIC port.
-| | ... | [Ver] Find PDR for 64 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 50kpps, LT=0.5%.
-| | ...
| | [Tags] | 64B | 4C | PDRDISC | SKIP_PATCH
-| | ...
-| | [Template] | Discover NDR or PDR for L2 Bridge Domain with MACIP ACLs
-| | wt=4 | rxq=2 | framesize=${64} | min_rate=${50000} | search_type=PDR
+| | phy_cores=${4} | framesize=${64} | search_type=PDR
diff --git a/tests/vpp/perf/l2/10ge2p1x520-eth-l2bdbasemaclrn-macip-iacl1sl-100kflows-ndrpdrdisc.robot b/tests/vpp/perf/l2/10ge2p1x520-eth-l2bdbasemaclrn-macip-iacl1sl-100kflows-ndrpdrdisc.robot
index 426b60efb4..baa1a4ab67 100644
--- a/tests/vpp/perf/l2/10ge2p1x520-eth-l2bdbasemaclrn-macip-iacl1sl-100kflows-ndrpdrdisc.robot
+++ b/tests/vpp/perf/l2/10ge2p1x520-eth-l2bdbasemaclrn-macip-iacl1sl-100kflows-ndrpdrdisc.robot
@@ -29,6 +29,8 @@
| Test Teardown | Tear down performance test with MACIP ACL
| ... | ${min_rate}pps | ${framesize} | ${traffic_profile}
| ...
+| Test Template | Local template
+| ...
| Documentation | *RFC2544: Packet throughput L2BD test cases with ACL*
| ...
| ... | *[Top] Network Topologies:* TG-DUT1-DUT2-TG 3-node circular topology\
@@ -78,9 +80,9 @@
| ${traffic_profile}= | trex-sl-3n-ethip4-macsrc100kip4src100k
*** Keywords ***
-| Discover NDR or PDR for L2 Bridge Domain with MACIP ACLs
-| | ...
-| | [Arguments] | ${wt} | ${rxq} | ${framesize} | ${min_rate} | ${search_type}
+| Local template
+| | [Arguments] | ${phy_core} | ${framesize} | ${search_type}
+| | ... | ${min_rate}=${50000} | ${rxq}=${None}
| | ...
| | Set Test Variable | ${framesize}
| | Set Test Variable | ${min_rate}
@@ -89,7 +91,7 @@
| | ${binary_max}= | Set Variable | ${max_rate}
| | ${threshold}= | Set Variable | ${min_rate}
| | ...
-| | Given Add '${wt}' worker threads and '${rxq}' rxqueues in 3-node single-link circular topology
+| | Given Add worker threads and rxqueues to all DUTs | ${phy_cores} | ${rxq}
| | And Add PCI devices to all DUTs
| | ${get_framesize}= | Get Frame Size | ${framesize}
| | And Run Keyword If | ${get_framesize} < ${1522} | Add no multi seg to all DUTs
@@ -107,73 +109,25 @@
*** Test Cases ***
| tc01-64B-1t1c-eth-l2bdbasemaclrn-macip-iacl1sl-100kflows-ndrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with MACIP ACL with\
-| | ... | 1 phy core, 1 receive queue per NIC port.
-| | ... | [Ver] Find NDR for 64 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 50kpps.
-| | ...
| | [Tags] | 64B | 1C | NDRDISC
-| | ...
-| | [Template] | Discover NDR or PDR for L2 Bridge Domain with MACIP ACLs
-| | wt=1 | rxq=1 | framesize=${64} | min_rate=${50000} | search_type=NDR
+| | phy_cores=${1} | framesize=${64} | search_type=NDR
| tc02-64B-1t1c-eth-l2bdbasemaclrn-macip-iacl1sl-100kflows-pdrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with MACIP ACL with\
-| | ... | 1 phy core, 1 receive queue per NIC port.
-| | ... | [Ver] Find PDR for 64 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 50kpps, LT=0.5%.
-| | ...
| | [Tags] | 64B | 1C | PDRDISC | SKIP_PATCH
-| | ...
-| | [Template] | Discover NDR or PDR for L2 Bridge Domain with MACIP ACLs
-| | wt=1 | rxq=1 | framesize=${64} | min_rate=${50000} | search_type=PDR
+| | phy_cores=${1} | framesize=${64} | search_type=PDR
| tc03-64B-2t2c-eth-l2bdbasemaclrn-macip-iacl1sl-100kflows-ndrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with MACIP ACL with\
-| | ... | 2 phy cores, 1 receive queue per NIC port.
-| | ... | [Ver] Find NDR for 64 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 50kpps.
-| | ...
| | [Tags] | 64B | 2C | NDRDISC
-| | ...
-| | [Template] | Discover NDR or PDR for L2 Bridge Domain with MACIP ACLs
-| | wt=2 | rxq=1 | framesize=${64} | min_rate=${50000} | search_type=NDR
+| | phy_cores=${2} | framesize=${64} | search_type=NDR
| tc04-64B-2t2c-eth-l2bdbasemaclrn-macip-iacl1sl-100kflows-pdrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with MACIP ACL with\
-| | ... | 2 phy cores, 1 receive queue per NIC port.
-| | ... | [Ver] Find PDR for 64 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 50kpps, LT=0.5%.
-| | ...
| | [Tags] | 64B | 2C | PDRDISC | SKIP_PATCH
-| | ...
-| | [Template] | Discover NDR or PDR for L2 Bridge Domain with MACIP ACLs
-| | wt=2 | rxq=1 | framesize=${64} | min_rate=${50000} | search_type=PDR
+| | phy_cores=${2} | framesize=${64} | search_type=PDR
| tc05-64B-4t4c-eth-l2bdbasemaclrn-macip-iacl1sl-100kflows-ndrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with MACIP ACL with\
-| | ... | 4 phy cores, 2 receive queues per NIC port.
-| | ... | [Ver] Find NDR for 64 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 50kpps.
-| | ...
| | [Tags] | 64B | 4C | NDRDISC
-| | ...
-| | [Template] | Discover NDR or PDR for L2 Bridge Domain with MACIP ACLs
-| | wt=4 | rxq=2 | framesize=${64} | min_rate=${50000} | search_type=NDR
+| | phy_cores=${4} | framesize=${64} | search_type=NDR
| tc06-64B-4t4c-eth-l2bdbasemaclrn-macip-iacl1sl-100kflows-pdrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with MACIP ACL with\
-| | ... | 4 phy cores, 2 receive queues per NIC port.
-| | ... | [Ver] Find PDR for 64 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 50kpps, LT=0.5%.
-| | ...
| | [Tags] | 64B | 4C | PDRDISC | SKIP_PATCH
-| | ...
-| | [Template] | Discover NDR or PDR for L2 Bridge Domain with MACIP ACLs
-| | wt=4 | rxq=2 | framesize=${64} | min_rate=${50000} | search_type=PDR
+| | phy_cores=${4} | framesize=${64} | search_type=PDR
diff --git a/tests/vpp/perf/l2/10ge2p1x520-eth-l2bdbasemaclrn-macip-iacl1sl-10kflows-ndrpdrdisc.robot b/tests/vpp/perf/l2/10ge2p1x520-eth-l2bdbasemaclrn-macip-iacl1sl-10kflows-ndrpdrdisc.robot
index c8ac3a95b5..de03f295b1 100644
--- a/tests/vpp/perf/l2/10ge2p1x520-eth-l2bdbasemaclrn-macip-iacl1sl-10kflows-ndrpdrdisc.robot
+++ b/tests/vpp/perf/l2/10ge2p1x520-eth-l2bdbasemaclrn-macip-iacl1sl-10kflows-ndrpdrdisc.robot
@@ -29,6 +29,8 @@
| Test Teardown | Tear down performance test with MACIP ACL
| ... | ${min_rate}pps | ${framesize} | ${traffic_profile}
| ...
+| Test Template | Local template
+| ...
| Documentation | *RFC2544: Packet throughput L2BD test cases with ACL*
| ...
| ... | *[Top] Network Topologies:* TG-DUT1-DUT2-TG 3-node circular topology\
@@ -78,9 +80,9 @@
| ${traffic_profile}= | trex-sl-3n-ethip4-macsrc10kip4src10k
*** Keywords ***
-| Discover NDR or PDR for L2 Bridge Domain with MACIP ACLs
-| | ...
-| | [Arguments] | ${wt} | ${rxq} | ${framesize} | ${min_rate} | ${search_type}
+| Local template
+| | [Arguments] | ${phy_core} | ${framesize} | ${search_type}
+| | ... | ${min_rate}=${50000} | ${rxq}=${None}
| | ...
| | Set Test Variable | ${framesize}
| | Set Test Variable | ${min_rate}
@@ -89,7 +91,7 @@
| | ${binary_max}= | Set Variable | ${max_rate}
| | ${threshold}= | Set Variable | ${min_rate}
| | ...
-| | Given Add '${wt}' worker threads and '${rxq}' rxqueues in 3-node single-link circular topology
+| | Given Add worker threads and rxqueues to all DUTs | ${phy_cores} | ${rxq}
| | And Add PCI devices to all DUTs
| | ${get_framesize}= | Get Frame Size | ${framesize}
| | And Run Keyword If | ${get_framesize} < ${1522} | Add no multi seg to all DUTs
@@ -107,73 +109,25 @@
*** Test Cases ***
| tc01-64B-1t1c-eth-l2bdbasemaclrn-macip-iacl1sl-10kflows-ndrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with MACIP ACL with\
-| | ... | 1 phy core, 1 receive queue per NIC port.
-| | ... | [Ver] Find NDR for 64 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 50kpps.
-| | ...
| | [Tags] | 64B | 1C | NDRDISC
-| | ...
-| | [Template] | Discover NDR or PDR for L2 Bridge Domain with MACIP ACLs
-| | wt=1 | rxq=1 | framesize=${64} | min_rate=${50000} | search_type=NDR
+| | phy_cores=${1} | framesize=${64} | search_type=NDR
| tc02-64B-1t1c-eth-l2bdbasemaclrn-macip-iacl1sl-10kflows-pdrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with MACIP ACL with\
-| | ... | 1 phy core, 1 receive queue per NIC port.
-| | ... | [Ver] Find PDR for 64 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 50kpps, LT=0.5%.
-| | ...
| | [Tags] | 64B | 1C | PDRDISC | SKIP_PATCH
-| | ...
-| | [Template] | Discover NDR or PDR for L2 Bridge Domain with MACIP ACLs
-| | wt=1 | rxq=1 | framesize=${64} | min_rate=${50000} | search_type=PDR
+| | phy_cores=${1} | framesize=${64} | search_type=PDR
| tc03-64B-2t2c-eth-l2bdbasemaclrn-macip-iacl1sl-10kflows-ndrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with MACIP ACL with\
-| | ... | 2 phy cores, 1 receive queue per NIC port.
-| | ... | [Ver] Find NDR for 64 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 50kpps.
-| | ...
| | [Tags] | 64B | 2C | NDRDISC
-| | ...
-| | [Template] | Discover NDR or PDR for L2 Bridge Domain with MACIP ACLs
-| | wt=2 | rxq=1 | framesize=${64} | min_rate=${50000} | search_type=NDR
+| | phy_cores=${2} | framesize=${64} | search_type=NDR
| tc04-64B-2t2c-eth-l2bdbasemaclrn-macip-iacl1sl-10kflows-pdrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with MACIP ACL with\
-| | ... | 2 phy cores, 1 receive queue per NIC port.
-| | ... | [Ver] Find PDR for 64 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 50kpps, LT=0.5%.
-| | ...
| | [Tags] | 64B | 2C | PDRDISC | SKIP_PATCH
-| | ...
-| | [Template] | Discover NDR or PDR for L2 Bridge Domain with MACIP ACLs
-| | wt=2 | rxq=1 | framesize=${64} | min_rate=${50000} | search_type=PDR
+| | phy_cores=${2} | framesize=${64} | search_type=PDR
| tc05-64B-4t4c-eth-l2bdbasemaclrn-macip-iacl1sl-10kflows-ndrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with MACIP ACL with\
-| | ... | 4 phy cores, 2 receive queues per NIC port.
-| | ... | [Ver] Find NDR for 64 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 50kpps.
-| | ...
| | [Tags] | 64B | 4C | NDRDISC
-| | ...
-| | [Template] | Discover NDR or PDR for L2 Bridge Domain with MACIP ACLs
-| | wt=4 | rxq=2 | framesize=${64} | min_rate=${50000} | search_type=NDR
+| | phy_cores=${4} | framesize=${64} | search_type=NDR
| tc06-64B-4t4c-eth-l2bdbasemaclrn-macip-iacl1sl-10kflows-pdrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with MACIP ACL with\
-| | ... | 4 phy cores, 2 receive queues per NIC port.
-| | ... | [Ver] Find PDR for 64 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 50kpps, LT=0.5%.
-| | ...
| | [Tags] | 64B | 4C | PDRDISC | SKIP_PATCH
-| | ...
-| | [Template] | Discover NDR or PDR for L2 Bridge Domain with MACIP ACLs
-| | wt=4 | rxq=2 | framesize=${64} | min_rate=${50000} | search_type=PDR
+| | phy_cores=${4} | framesize=${64} | search_type=PDR
diff --git a/tests/vpp/perf/l2/10ge2p1x520-eth-l2bdbasemaclrn-macip-iacl50sl-100flows-ndrpdrdisc.robot b/tests/vpp/perf/l2/10ge2p1x520-eth-l2bdbasemaclrn-macip-iacl50sl-100flows-ndrpdrdisc.robot
index 4810bc1ee3..d3b0e185b2 100644
--- a/tests/vpp/perf/l2/10ge2p1x520-eth-l2bdbasemaclrn-macip-iacl50sl-100flows-ndrpdrdisc.robot
+++ b/tests/vpp/perf/l2/10ge2p1x520-eth-l2bdbasemaclrn-macip-iacl50sl-100flows-ndrpdrdisc.robot
@@ -29,6 +29,8 @@
| Test Teardown | Tear down performance test with MACIP ACL
| ... | ${min_rate}pps | ${framesize} | ${traffic_profile}
| ...
+| Test Template | Local template
+| ...
| Documentation | *RFC2544: Packet throughput L2BD test cases with ACL*
| ...
| ... | *[Top] Network Topologies:* TG-DUT1-DUT2-TG 3-node circular topology\
@@ -78,9 +80,9 @@
| ${traffic_profile}= | trex-sl-3n-ethip4-macsrc100ip4src100
*** Keywords ***
-| Discover NDR or PDR for L2 Bridge Domain with MACIP ACLs
-| | ...
-| | [Arguments] | ${wt} | ${rxq} | ${framesize} | ${min_rate} | ${search_type}
+| Local template
+| | [Arguments] | ${phy_core} | ${framesize} | ${search_type}
+| | ... | ${min_rate}=${50000} | ${rxq}=${None}
| | ...
| | Set Test Variable | ${framesize}
| | Set Test Variable | ${min_rate}
@@ -89,7 +91,7 @@
| | ${binary_max}= | Set Variable | ${max_rate}
| | ${threshold}= | Set Variable | ${min_rate}
| | ...
-| | Given Add '${wt}' worker threads and '${rxq}' rxqueues in 3-node single-link circular topology
+| | Given Add worker threads and rxqueues to all DUTs | ${phy_cores} | ${rxq}
| | And Add PCI devices to all DUTs
| | ${get_framesize}= | Get Frame Size | ${framesize}
| | And Run Keyword If | ${get_framesize} < ${1522} | Add no multi seg to all DUTs
@@ -107,73 +109,25 @@
*** Test Cases ***
| tc01-64B-1t1c-eth-l2bdbasemaclrn-macip-iacl50sl-100flows-ndrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with MACIP ACL with\
-| | ... | 1 phy core, 1 receive queue per NIC port.
-| | ... | [Ver] Find NDR for 64 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 50kpps.
-| | ...
| | [Tags] | 64B | 1C | NDRDISC
-| | ...
-| | [Template] | Discover NDR or PDR for L2 Bridge Domain with MACIP ACLs
-| | wt=1 | rxq=1 | framesize=${64} | min_rate=${50000} | search_type=NDR
+| | phy_cores=${1} | framesize=${64} | search_type=NDR
| tc02-64B-1t1c-eth-l2bdbasemaclrn-macip-iacl50sl-100flows-pdrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with MACIP ACL with\
-| | ... | 1 phy core, 1 receive queue per NIC port.
-| | ... | [Ver] Find PDR for 64 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 50kpps, LT=0.5%.
-| | ...
| | [Tags] | 64B | 1C | PDRDISC | SKIP_PATCH
-| | ...
-| | [Template] | Discover NDR or PDR for L2 Bridge Domain with MACIP ACLs
-| | wt=1 | rxq=1 | framesize=${64} | min_rate=${50000} | search_type=PDR
+| | phy_cores=${1} | framesize=${64} | search_type=PDR
| tc03-64B-2t2c-eth-l2bdbasemaclrn-macip-iacl50sl-100flows-ndrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with MACIP ACL with\
-| | ... | 2 phy cores, 1 receive queue per NIC port.
-| | ... | [Ver] Find NDR for 64 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 50kpps.
-| | ...
| | [Tags] | 64B | 2C | NDRDISC
-| | ...
-| | [Template] | Discover NDR or PDR for L2 Bridge Domain with MACIP ACLs
-| | wt=2 | rxq=1 | framesize=${64} | min_rate=${50000} | search_type=NDR
+| | phy_cores=${2} | framesize=${64} | search_type=NDR
| tc04-64B-2t2c-eth-l2bdbasemaclrn-macip-iacl50sl-100flows-pdrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with MACIP ACL with\
-| | ... | 2 phy cores, 1 receive queue per NIC port.
-| | ... | [Ver] Find PDR for 64 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 50kpps, LT=0.5%.
-| | ...
| | [Tags] | 64B | 2C | PDRDISC | SKIP_PATCH
-| | ...
-| | [Template] | Discover NDR or PDR for L2 Bridge Domain with MACIP ACLs
-| | wt=2 | rxq=1 | framesize=${64} | min_rate=${50000} | search_type=PDR
+| | phy_cores=${2} | framesize=${64} | search_type=PDR
| tc05-64B-4t4c-eth-l2bdbasemaclrn-macip-iacl50sl-100flows-ndrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with MACIP ACL with\
-| | ... | 4 phy cores, 2 receive queues per NIC port.
-| | ... | [Ver] Find NDR for 64 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 50kpps.
-| | ...
| | [Tags] | 64B | 4C | NDRDISC
-| | ...
-| | [Template] | Discover NDR or PDR for L2 Bridge Domain with MACIP ACLs
-| | wt=4 | rxq=2 | framesize=${64} | min_rate=${50000} | search_type=NDR
+| | phy_cores=${4} | framesize=${64} | search_type=NDR
| tc06-64B-4t4c-eth-l2bdbasemaclrn-macip-iacl50sl-100flows-pdrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with MACIP ACL with\
-| | ... | 4 phy cores, 2 receive queues per NIC port.
-| | ... | [Ver] Find PDR for 64 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 50kpps, LT=0.5%.
-| | ...
| | [Tags] | 64B | 4C | PDRDISC | SKIP_PATCH
-| | ...
-| | [Template] | Discover NDR or PDR for L2 Bridge Domain with MACIP ACLs
-| | wt=4 | rxq=2 | framesize=${64} | min_rate=${50000} | search_type=PDR
+| | phy_cores=${4} | framesize=${64} | search_type=PDR
diff --git a/tests/vpp/perf/l2/10ge2p1x520-eth-l2bdbasemaclrn-macip-iacl50sl-100kflows-ndrpdrdisc.robot b/tests/vpp/perf/l2/10ge2p1x520-eth-l2bdbasemaclrn-macip-iacl50sl-100kflows-ndrpdrdisc.robot
index 8420ee805c..e849418e73 100644
--- a/tests/vpp/perf/l2/10ge2p1x520-eth-l2bdbasemaclrn-macip-iacl50sl-100kflows-ndrpdrdisc.robot
+++ b/tests/vpp/perf/l2/10ge2p1x520-eth-l2bdbasemaclrn-macip-iacl50sl-100kflows-ndrpdrdisc.robot
@@ -29,6 +29,8 @@
| Test Teardown | Tear down performance test with MACIP ACL
| ... | ${min_rate}pps | ${framesize} | ${traffic_profile}
| ...
+| Test Template | Local template
+| ...
| Documentation | *RFC2544: Packet throughput L2BD test cases with ACL*
| ...
| ... | *[Top] Network Topologies:* TG-DUT1-DUT2-TG 3-node circular topology\
@@ -78,9 +80,9 @@
| ${traffic_profile}= | trex-sl-3n-ethip4-macsrc100kip4src100k
*** Keywords ***
-| Discover NDR or PDR for L2 Bridge Domain with MACIP ACLs
-| | ...
-| | [Arguments] | ${wt} | ${rxq} | ${framesize} | ${min_rate} | ${search_type}
+| Local template
+| | [Arguments] | ${phy_core} | ${framesize} | ${search_type}
+| | ... | ${min_rate}=${50000} | ${rxq}=${None}
| | ...
| | Set Test Variable | ${framesize}
| | Set Test Variable | ${min_rate}
@@ -89,7 +91,7 @@
| | ${binary_max}= | Set Variable | ${max_rate}
| | ${threshold}= | Set Variable | ${min_rate}
| | ...
-| | Given Add '${wt}' worker threads and '${rxq}' rxqueues in 3-node single-link circular topology
+| | Given Add worker threads and rxqueues to all DUTs | ${phy_cores} | ${rxq}
| | And Add PCI devices to all DUTs
| | ${get_framesize}= | Get Frame Size | ${framesize}
| | And Run Keyword If | ${get_framesize} < ${1522} | Add no multi seg to all DUTs
@@ -107,73 +109,25 @@
*** Test Cases ***
| tc01-64B-1t1c-eth-l2bdbasemaclrn-macip-iacl50sl-100kflows-ndrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with MACIP ACL with\
-| | ... | 1 phy core, 1 receive queue per NIC port.
-| | ... | [Ver] Find NDR for 64 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 50kpps.
-| | ...
| | [Tags] | 64B | 1C | NDRDISC
-| | ...
-| | [Template] | Discover NDR or PDR for L2 Bridge Domain with MACIP ACLs
-| | wt=1 | rxq=1 | framesize=${64} | min_rate=${50000} | search_type=NDR
+| | phy_cores=${1} | framesize=${64} | search_type=NDR
| tc02-64B-1t1c-eth-l2bdbasemaclrn-macip-iacl50sl-100kflows-pdrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with MACIP ACL with\
-| | ... | 1 phy core, 1 receive queue per NIC port.
-| | ... | [Ver] Find PDR for 64 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 50kpps, LT=0.5%.
-| | ...
| | [Tags] | 64B | 1C | PDRDISC | SKIP_PATCH
-| | ...
-| | [Template] | Discover NDR or PDR for L2 Bridge Domain with MACIP ACLs
-| | wt=1 | rxq=1 | framesize=${64} | min_rate=${50000} | search_type=PDR
+| | phy_cores=${1} | framesize=${64} | search_type=PDR
| tc03-64B-2t2c-eth-l2bdbasemaclrn-macip-iacl50sl-100kflows-ndrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with MACIP ACL with\
-| | ... | 2 phy cores, 1 receive queue per NIC port.
-| | ... | [Ver] Find NDR for 64 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 50kpps.
-| | ...
| | [Tags] | 64B | 2C | NDRDISC
-| | ...
-| | [Template] | Discover NDR or PDR for L2 Bridge Domain with MACIP ACLs
-| | wt=2 | rxq=1 | framesize=${64} | min_rate=${50000} | search_type=NDR
+| | phy_cores=${2} | framesize=${64} | search_type=NDR
| tc04-64B-2t2c-eth-l2bdbasemaclrn-macip-iacl50sl-100kflows-pdrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with MACIP ACL with\
-| | ... | 2 phy cores, 1 receive queue per NIC port.
-| | ... | [Ver] Find PDR for 64 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 50kpps, LT=0.5%.
-| | ...
| | [Tags] | 64B | 2C | PDRDISC | SKIP_PATCH
-| | ...
-| | [Template] | Discover NDR or PDR for L2 Bridge Domain with MACIP ACLs
-| | wt=2 | rxq=1 | framesize=${64} | min_rate=${50000} | search_type=PDR
+| | phy_cores=${2} | framesize=${64} | search_type=PDR
| tc05-64B-4t4c-eth-l2bdbasemaclrn-macip-iacl50sl-100kflows-ndrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with MACIP ACL with\
-| | ... | 4 phy cores, 2 receive queues per NIC port.
-| | ... | [Ver] Find NDR for 64 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 50kpps.
-| | ...
| | [Tags] | 64B | 4C | NDRDISC
-| | ...
-| | [Template] | Discover NDR or PDR for L2 Bridge Domain with MACIP ACLs
-| | wt=4 | rxq=2 | framesize=${64} | min_rate=${50000} | search_type=NDR
+| | phy_cores=${4} | framesize=${64} | search_type=NDR
| tc06-64B-4t4c-eth-l2bdbasemaclrn-macip-iacl50sl-100kflows-pdrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with MACIP ACL with\
-| | ... | 4 phy cores, 2 receive queues per NIC port.
-| | ... | [Ver] Find PDR for 64 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 50kpps, LT=0.5%.
-| | ...
| | [Tags] | 64B | 4C | PDRDISC | SKIP_PATCH
-| | ...
-| | [Template] | Discover NDR or PDR for L2 Bridge Domain with MACIP ACLs
-| | wt=4 | rxq=2 | framesize=${64} | min_rate=${50000} | search_type=PDR
+| | phy_cores=${4} | framesize=${64} | search_type=PDR
diff --git a/tests/vpp/perf/l2/10ge2p1x520-eth-l2bdbasemaclrn-macip-iacl50sl-10kflows-ndrpdrdisc.robot b/tests/vpp/perf/l2/10ge2p1x520-eth-l2bdbasemaclrn-macip-iacl50sl-10kflows-ndrpdrdisc.robot
index 7eaf950af2..472035f68e 100644
--- a/tests/vpp/perf/l2/10ge2p1x520-eth-l2bdbasemaclrn-macip-iacl50sl-10kflows-ndrpdrdisc.robot
+++ b/tests/vpp/perf/l2/10ge2p1x520-eth-l2bdbasemaclrn-macip-iacl50sl-10kflows-ndrpdrdisc.robot
@@ -29,6 +29,8 @@
| Test Teardown | Tear down performance test with MACIP ACL
| ... | ${min_rate}pps | ${framesize} | ${traffic_profile}
| ...
+| Test Template | Local template
+| ...
| Documentation | *RFC2544: Packet throughput L2BD test cases with ACL*
| ...
| ... | *[Top] Network Topologies:* TG-DUT1-DUT2-TG 3-node circular topology\
@@ -78,9 +80,9 @@
| ${traffic_profile}= | trex-sl-3n-ethip4-macsrc10kip4src10k
*** Keywords ***
-| Discover NDR or PDR for L2 Bridge Domain with MACIP ACLs
-| | ...
-| | [Arguments] | ${wt} | ${rxq} | ${framesize} | ${min_rate} | ${search_type}
+| Local template
+| | [Arguments] | ${phy_core} | ${framesize} | ${search_type}
+| | ... | ${min_rate}=${50000} | ${rxq}=${None}
| | ...
| | Set Test Variable | ${framesize}
| | Set Test Variable | ${min_rate}
@@ -89,7 +91,7 @@
| | ${binary_max}= | Set Variable | ${max_rate}
| | ${threshold}= | Set Variable | ${min_rate}
| | ...
-| | Given Add '${wt}' worker threads and '${rxq}' rxqueues in 3-node single-link circular topology
+| | Given Add worker threads and rxqueues to all DUTs | ${phy_cores} | ${rxq}
| | And Add PCI devices to all DUTs
| | ${get_framesize}= | Get Frame Size | ${framesize}
| | And Run Keyword If | ${get_framesize} < ${1522} | Add no multi seg to all DUTs
@@ -107,73 +109,25 @@
*** Test Cases ***
| tc01-64B-1t1c-eth-l2bdbasemaclrn-macip-iacl50sl-10kflows-ndrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with MACIP ACL with\
-| | ... | 1 phy core, 1 receive queue per NIC port.
-| | ... | [Ver] Find NDR for 64 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 50kpps.
-| | ...
| | [Tags] | 64B | 1C | NDRDISC
-| | ...
-| | [Template] | Discover NDR or PDR for L2 Bridge Domain with MACIP ACLs
-| | wt=1 | rxq=1 | framesize=${64} | min_rate=${50000} | search_type=NDR
+| | phy_cores=${1} | framesize=${64} | search_type=NDR
| tc02-64B-1t1c-eth-l2bdbasemaclrn-macip-iacl50sl-10kflows-pdrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with MACIP ACL with\
-| | ... | 1 phy core, 1 receive queue per NIC port.
-| | ... | [Ver] Find PDR for 64 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 50kpps, LT=0.5%.
-| | ...
| | [Tags] | 64B | 1C | PDRDISC | SKIP_PATCH
-| | ...
-| | [Template] | Discover NDR or PDR for L2 Bridge Domain with MACIP ACLs
-| | wt=1 | rxq=1 | framesize=${64} | min_rate=${50000} | search_type=PDR
+| | phy_cores=${1} | framesize=${64} | search_type=PDR
| tc03-64B-2t2c-eth-l2bdbasemaclrn-macip-iacl50sl-10kflows-ndrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with MACIP ACL with\
-| | ... | 2 phy cores, 1 receive queue per NIC port.
-| | ... | [Ver] Find NDR for 64 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 50kpps.
-| | ...
| | [Tags] | 64B | 2C | NDRDISC
-| | ...
-| | [Template] | Discover NDR or PDR for L2 Bridge Domain with MACIP ACLs
-| | wt=2 | rxq=1 | framesize=${64} | min_rate=${50000} | search_type=NDR
+| | phy_cores=${2} | framesize=${64} | search_type=NDR
| tc04-64B-2t2c-eth-l2bdbasemaclrn-macip-iacl50sl-10kflows-pdrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with MACIP ACL with\
-| | ... | 2 phy cores, 1 receive queue per NIC port.
-| | ... | [Ver] Find PDR for 64 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 50kpps, LT=0.5%.
-| | ...
| | [Tags] | 64B | 2C | PDRDISC | SKIP_PATCH
-| | ...
-| | [Template] | Discover NDR or PDR for L2 Bridge Domain with MACIP ACLs
-| | wt=2 | rxq=1 | framesize=${64} | min_rate=${50000} | search_type=PDR
+| | phy_cores=${2} | framesize=${64} | search_type=PDR
| tc05-64B-4t4c-eth-l2bdbasemaclrn-macip-iacl50sl-10kflows-ndrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with MACIP ACL with\
-| | ... | 4 phy cores, 2 receive queues per NIC port.
-| | ... | [Ver] Find NDR for 64 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 50kpps.
-| | ...
| | [Tags] | 64B | 4C | NDRDISC
-| | ...
-| | [Template] | Discover NDR or PDR for L2 Bridge Domain with MACIP ACLs
-| | wt=4 | rxq=2 | framesize=${64} | min_rate=${50000} | search_type=NDR
+| | phy_cores=${4} | framesize=${64} | search_type=NDR
| tc06-64B-4t4c-eth-l2bdbasemaclrn-macip-iacl50sl-10kflows-pdrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with MACIP ACL with\
-| | ... | 4 phy cores, 2 receive queues per NIC port.
-| | ... | [Ver] Find PDR for 64 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 50kpps, LT=0.5%.
-| | ...
| | [Tags] | 64B | 4C | PDRDISC | SKIP_PATCH
-| | ...
-| | [Template] | Discover NDR or PDR for L2 Bridge Domain with MACIP ACLs
-| | wt=4 | rxq=2 | framesize=${64} | min_rate=${50000} | search_type=PDR
+| | phy_cores=${4} | framesize=${64} | search_type=PDR
diff --git a/tests/vpp/perf/l2/10ge2p1x520-eth-l2bdbasemaclrn-mrr.robot b/tests/vpp/perf/l2/10ge2p1x520-eth-l2bdbasemaclrn-mrr.robot
index 686c5be2e5..0143e43163 100644
--- a/tests/vpp/perf/l2/10ge2p1x520-eth-l2bdbasemaclrn-mrr.robot
+++ b/tests/vpp/perf/l2/10ge2p1x520-eth-l2bdbasemaclrn-mrr.robot
@@ -24,6 +24,8 @@
| Test Setup | Set up performance test
| Test Teardown | Tear down performance mrr test
| ...
+| Test Template | Local template
+| ...
| Documentation | *Raw results L2BD test cases*
| ...
| ... | *[Top] Network Topologies:* TG-DUT1-DUT2-TG 3-node circular topology
@@ -48,21 +50,26 @@
| ${traffic_profile} | trex-sl-3n-ethip4-ip4src254
*** Keywords ***
-| Check RR for l2bdbasemaclrn
+| Local template
| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD config with ${wt} thread(s), ${wt}\
-| | ... | phy core(s), ${rxq} receive queue(s) per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for ${framesize} frames using single\
+| | ... | [Cfg] DUT runs L2BD config with ${phy_cores} phy
+| | ... | core(s).
+| | ... | [Ver] Measure MaxReceivedRate for ${framesize}B frames using single\
| | ... | trial throughput test.
| | ...
-| | [Arguments] | ${framesize} | ${wt} | ${rxq}
+| | ... | *Arguments:*
+| | ... | - framesize - Framesize in Bytes in integer or string (IMIX_v4_1).
+| | ... | Type: integer, string
+| | ... | - phy_cores - Number of physical cores. Type: integer
+| | ... | - rxq - Number of RX queues, default value: ${None}. Type: integer
+| | ...
+| | [Arguments] | ${framesize} | ${phy_cores} | ${rxq}=${None}
| | ...
-| | # Test Variables required for test teardown
| | Set Test Variable | ${framesize}
| | ${get_framesize}= | Get Frame Size | ${framesize}
| | ${max_rate}= | Calculate pps | ${s_limit} | ${get_framesize}
| | ...
-| | Given Add '${wt}' worker threads and '${rxq}' rxqueues in 3-node single-link circular topology
+| | Given Add worker threads and rxqueues to all DUTs | ${phy_cores} | ${rxq}
| | And Add PCI devices to all DUTs
| | And Run Keyword If | ${get_framesize} < ${1522}
| | ... | Add no multi seg to all DUTs
@@ -73,136 +80,49 @@
*** Test Cases ***
| tc01-64B-1t1c-eth-l2bdbasemaclrn-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD config with 1 phy core,\
-| | ... | 1 receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 64B frames using single trial\
-| | ... | throughput test.
| | [Tags] | 64B | 1C
-| | ...
-| | [Template] | Check RR for l2bdbasemaclrn
-| | framesize=${64} | wt=1 | rxq=1
+| | framesize=${64} | phy_cores=${1}
| tc02-1518B-1t1c-eth-l2bdbasemaclrn-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD config with 1 phy core,\
-| | ... | 1 receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 1518B frames using single\
-| | ... | trial throughput test.
| | [Tags] | 1518B | 1C
-| | ...
-| | [Template] | Check RR for l2bdbasemaclrn
-| | framesize=${1518} | wt=1 | rxq=1
+| | framesize=${1518} | phy_cores=${1}
| tc03-9000B-1t1c-eth-l2bdbasemaclrn-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD config with 1 phy core,\
-| | ... | 1 receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 9000B frames using single\
-| | ... | trial throughput test.
| | [Tags] | 9000B | 1C
-| | ...
-| | [Template] | Check RR for l2bdbasemaclrn
-| | framesize=${9000} | wt=1 | rxq=1
+| | framesize=${9000} | phy_cores=${1}
| tc04-IMIX-1t1c-eth-l2bdbasemaclrn-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD config with 1 phy core,\
-| | ... | 1 receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for IMIX frames using single\
-| | ... | trial throughput test.
-| | ... | IMIX_v4_1 = (28x64B;16x570B;4x1518B)
| | [Tags] | IMIX | 1C
-| | ...
-| | [Template] | Check RR for l2bdbasemaclrn
-| | framesize=IMIX_v4_1 | wt=1 | rxq=1
+| | framesize=IMIX_v4_1 | phy_cores=${1}
| tc05-64B-2t2c-eth-l2bdbasemaclrn-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD config with 2 phy cores,\
-| | ... | 1 receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 64B frames using single trial\
-| | ... | throughput test.
| | [Tags] | 64B | 2C
-| | ...
-| | [Template] | Check RR for l2bdbasemaclrn
-| | framesize=${64} | wt=2 | rxq=1
+| | framesize=${64} | phy_cores=${2}
| tc06-1518B-2t2c-eth-l2bdbasemaclrn-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD config with 2 phy cores,\
-| | ... | 1 receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 1518B frames using single\
-| | ... | trial throughput test.
| | [Tags] | 1518B | 2C
-| | ...
-| | [Template] | Check RR for l2bdbasemaclrn
-| | framesize=${1518} | wt=2 | rxq=1
+| | framesize=${1518} | phy_cores=${2}
| tc07-9000B-2t2c-eth-l2bdbasemaclrn-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD config with 2 phy cores,\
-| | ... | 1 receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 9000B frames using single\
-| | ... | trial throughput test.
| | [Tags] | 9000B | 2C
-| | ...
-| | [Template] | Check RR for l2bdbasemaclrn
-| | framesize=${9000} | wt=2 | rxq=1
+| | framesize=${9000} | phy_cores=${2}
| tc08-IMIX-2t2c-eth-l2bdbasemaclrn-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD config with 2 phy cores,\
-| | ... | 1 receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for IMIX frames using single\
-| | ... | trial throughput test.
-| | ... | IMIX_v4_1 = (28x64B;16x570B;4x1518B)
| | [Tags] | IMIX | 2C
-| | ...
-| | [Template] | Check RR for l2bdbasemaclrn
-| | framesize=IMIX_v4_1 | wt=2 | rxq=1
+| | framesize=IMIX_v4_1 | phy_cores=${2}
| tc09-64B-4t4c-eth-l2bdbasemaclrn-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD config with 4 phy cores,\
-| | ... | 2 receive queues per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 64B frames using single trial\
-| | ... | throughput test.
| | [Tags] | 64B | 4C
-| | ...
-| | [Template] | Check RR for l2bdbasemaclrn
-| | framesize=${64} | wt=4 | rxq=2
+| | framesize=${64} | phy_cores=${4}
| tc10-1518B-4t4c-eth-l2bdbasemaclrn-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD config with 4 phy cores,\
-| | ... | 2 receive queues per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 1518B frames using single\
-| | ... | trial throughput test.
| | [Tags] | 1518B | 4C
-| | ...
-| | [Template] | Check RR for l2bdbasemaclrn
-| | framesize=${1518} | wt=4 | rxq=2
+| | framesize=${1518} | phy_cores=${4}
| tc11-9000B-4t4c-eth-l2bdbasemaclrn-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD config with 4 phy cores,\
-| | ... | 2 receive queues per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 9000B frames using single\
-| | ... | trial throughput test.
| | [Tags] | 9000B | 4C
-| | ...
-| | [Template] | Check RR for l2bdbasemaclrn
-| | framesize=${9000} | wt=4 | rxq=2
+| | framesize=${9000} | phy_cores=${4}
| tc12-IMIX-4t4c-eth-l2bdbasemaclrn-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD config with 4 phy cores,\
-| | ... | 2 receive queues per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for IMIX frames using single\
-| | ... | trial throughput test.
-| | ... | IMIX_v4_1 = (28x64B;16x570B;4x1518B)
| | [Tags] | IMIX | 4C
-| | ...
-| | [Template] | Check RR for l2bdbasemaclrn
-| | framesize=IMIX_v4_1 | wt=4 | rxq=2
+| | framesize=IMIX_v4_1 | phy_cores=${4}
diff --git a/tests/vpp/perf/l2/10ge2p1x520-eth-l2bdbasemaclrn-ndrpdrdisc.robot b/tests/vpp/perf/l2/10ge2p1x520-eth-l2bdbasemaclrn-ndrpdrdisc.robot
index f0bb9d28ca..7c69029b8f 100644
--- a/tests/vpp/perf/l2/10ge2p1x520-eth-l2bdbasemaclrn-ndrpdrdisc.robot
+++ b/tests/vpp/perf/l2/10ge2p1x520-eth-l2bdbasemaclrn-ndrpdrdisc.robot
@@ -26,6 +26,8 @@
| Test Teardown | Tear down performance discovery test | ${min_rate}pps
| ... | ${framesize} | ${traffic_profile}
| ...
+| Test Template | Local template
+| ...
| Documentation | *RFC2544: Pkt throughput L2BD test cases*
| ...
| ... | *[Top] Network Topologies:* TG-DUT1-DUT2-TG 3-node circular topology\
@@ -55,8 +57,10 @@
| ${traffic_profile} | trex-sl-3n-ethip4-ip4src254
*** Keywords ***
-| L2 Bridge Domain Binary Search
-| | [Arguments] | ${framesize} | ${min_rate} | ${wt} | ${rxq} | ${search_type}
+| Local template
+| | [Arguments] | ${phy_core} | ${framesize} | ${search_type}
+| | ... | ${min_rate}=${50000} | ${rxq}=${None}
+| | ...
| | Set Test Variable | ${framesize}
| | Set Test Variable | ${min_rate}
| | ${get_framesize}= | Set Variable If
@@ -82,181 +86,73 @@
*** Test Cases ***
| tc01-64B-1t1c-eth-l2bdbasemaclrn-ndrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with with\
-| | ... | 1 phy core, 1 receive queue per NIC port.
-| | ... | [Ver] Find NDR for 64 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 50kpps.
| | [Tags] | 64B | 1C | NDRDISC
-| | [Template] | L2 Bridge Domain Binary Search
-| | framesize=${64} | min_rate=${50000} | wt=1 | rxq=1 | search_type=NDR
+| | framesize=${64} | phy_cores=${1} | search_type=NDR
| tc02-64B-1t1c-eth-l2bdbasemaclrn-pdrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with with\
-| | ... | 1 phy core, 1 receive queue per NIC port.
-| | ... | [Ver] Find PDR for 64 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 50kpps, LT=0.5%.
| | [Tags] | 64B | 1C | PDRDISC | SKIP_PATCH
-| | [Template] | L2 Bridge Domain Binary Search
-| | framesize=${64} | min_rate=${50000} | wt=1 | rxq=1 | search_type=PDR
+| | framesize=${64} | phy_cores=${1} | search_type=PDR
| tc03-1518B-1t1c-eth-l2bdbasemaclrn-ndrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with with\
-| | ... | 1 phy core, 1 receive queue per NIC port.
-| | ... | [Ver] Find NDR for 1518 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 50kpps.
| | [Tags] | 1518B | 1C | NDRDISC
-| | [Template] | L2 Bridge Domain Binary Search
-| | framesize=${1518} | min_rate=${50000} | wt=1 | rxq=1 | search_type=NDR
+| | framesize=${1518} | phy_cores=${1} | search_type=NDR
| tc04-1518B-1t1c-eth-l2bdbasemaclrn-pdrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with with\
-| | ... | 1 phy core, 1 receive queue per NIC port.
-| | ... | [Ver] Find PDR for 1518 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 50kpps, LT=0.5%.
| | [Tags] | 1518B | 1C | PDRDISC | SKIP_PATCH
-| | [Template] | L2 Bridge Domain Binary Search
-| | framesize=${1518} | min_rate=${50000} | wt=1 | rxq=1 | search_type=PDR
+| | framesize=${1518} | phy_cores=${1} | search_type=PDR
| tc05-9000B-1t1c-eth-l2bdbasemaclrn-ndrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with with\
-| | ... | 1 phy core, 1 receive queue per NIC port.
-| | ... | [Ver] Find NDR for 9000 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 10kpps.
| | [Tags] | 9000B | 1C | NDRDISC
-| | [Template] | L2 Bridge Domain Binary Search
-| | framesize=${9000} | min_rate=${10000} | wt=1 | rxq=1 | search_type=NDR
+| | framesize=${9000} | phy_cores=${1} | search_type=NDR
| tc06-9000B-1t1c-eth-l2bdbasemaclrn-pdrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with with\
-| | ... | 1 phy core, 1 receive queue per NIC port.
-| | ... | [Ver] Find PDR for 9000 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 10kpps, LT=0.5%.
| | [Tags] | 9000B | 1C | PDRDISC | SKIP_PATCH
-| | [Template] | L2 Bridge Domain Binary Search
-| | framesize=${9000} | min_rate=${10000} | wt=1 | rxq=1 | search_type=PDR
+| | framesize=${9000} | phy_cores=${1} | search_type=PDR
| tc07-64B-2t2c-eth-l2bdbasemaclrn-ndrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with with\
-| | ... | 2 phy cores, 1 receive queue per NIC port.
-| | ... | [Ver] Find NDR for 64 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 50kpps.
| | [Tags] | 64B | 2C | NDRDISC
-| | [Template] | L2 Bridge Domain Binary Search
-| | framesize=${64} | min_rate=${50000} | wt=2 | rxq=1 | search_type=NDR
+| | framesize=${64} | phy_cores=${2} | search_type=NDR
| tc08-64B-2t2c-eth-l2bdbasemaclrn-pdrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with with\
-| | ... | 2 phy cores, 1 receive queue per NIC port.
-| | ... | [Ver] Find PDR for 64 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 50kpps, LT=0.5%.
| | [Tags] | 64B | 2C | PDRDISC | SKIP_PATCH
-| | [Template] | L2 Bridge Domain Binary Search
-| | framesize=${64} | min_rate=${50000} | wt=2 | rxq=1 | search_type=PDR
+| | framesize=${64} | phy_cores=${2} | search_type=PDR
| tc09-1518B-2t2c-eth-l2bdbasemaclrn-ndrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with with\
-| | ... | 2 phy cores, 1 receive queue per NIC port.
-| | ... | [Ver] Find NDR for 1518 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 50kpps.
| | [Tags] | 1518B | 2C | NDRDISC | SKIP_PATCH
-| | [Template] | L2 Bridge Domain Binary Search
-| | framesize=${1518} | min_rate=${50000} | wt=2 | rxq=1 | search_type=NDR
+| | framesize=${1518} | phy_cores=${2} | search_type=NDR
| tc10-1518B-2t2c-eth-l2bdbasemaclrn-pdrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with with\
-| | ... | 2 phy cores, 1 receive queue per NIC port.
-| | ... | [Ver] Find PDR for 1518 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 50kpps, LT=0.5%.
| | [Tags] | 1518B | 2C | PDRDISC | SKIP_PATCH
-| | [Template] | L2 Bridge Domain Binary Search
-| | framesize=${1518} | min_rate=${50000} | wt=2 | rxq=1 | search_type=PDR
+| | framesize=${1518} | phy_cores=${2} | search_type=PDR
| tc11-9000B-2t2c-eth-l2bdbasemaclrn-ndrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with with\
-| | ... | 2 phy cores, 1 receive queue per NIC port.
-| | ... | [Ver] Find NDR for 9000 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 10kpps.
| | [Tags] | 9000B | 2C | NDRDISC | SKIP_PATCH
-| | [Template] | L2 Bridge Domain Binary Search
-| | framesize=${9000} | min_rate=${10000} | wt=2 | rxq=1 | search_type=NDR
+| | framesize=${9000} | phy_cores=${2} | search_type=NDR
| tc12-9000B-2t2c-eth-l2bdbasemaclrn-pdrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with with\
-| | ... | 2 phy cores, 1 receive queue per NIC port.
-| | ... | [Ver] Find PDR for 9000 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 10kpps, LT=0.5%.
| | [Tags] | 9000B | 2C | PDRDISC | SKIP_PATCH
-| | [Template] | L2 Bridge Domain Binary Search
-| | framesize=${9000} | min_rate=${10000} | wt=2 | rxq=1 | search_type=PDR
+| | framesize=${9000} | phy_cores=${2} | search_type=PDR
| tc13-64B-4t4c-eth-l2bdbasemaclrn-ndrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with with\
-| | ... | 4 phy cores, 2 receive queues per NIC port.
-| | ... | [Ver] Find NDR for 64 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 50kpps.
| | [Tags] | 64B | 4C | NDRDISC
-| | [Template] | L2 Bridge Domain Binary Search
-| | framesize=${64} | min_rate=${50000} | wt=4 | rxq=2 | search_type=NDR
+| | framesize=${64} | phy_cores=${4} | search_type=NDR
| tc14-64B-4t4c-eth-l2bdbasemaclrn-pdrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with with\
-| | ... | 4 phy cores, 2 receive queues per NIC port.
-| | ... | [Ver] Find PDR for 64 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 50kpps, LT=0.5%.
| | [Tags] | 64B | 4C | PDRDISC | SKIP_PATCH
-| | [Template] | L2 Bridge Domain Binary Search
-| | framesize=${64} | min_rate=${50000} | wt=4 | rxq=2 | search_type=PDR
+| | framesize=${64} | phy_cores=${4} | search_type=PDR
| tc15-1518B-4t4c-eth-l2bdbasemaclrn-ndrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with with\
-| | ... | 4 phy cores, 2 receive queues per NIC port.
-| | ... | [Ver] Find NDR for 1518 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 50kpps.
| | [Tags] | 1518B | 4C | NDRDISC | SKIP_PATCH
-| | [Template] | L2 Bridge Domain Binary Search
-| | framesize=${1518} | min_rate=${50000} | wt=4 | rxq=2 | search_type=NDR
+| | framesize=${1518} | phy_cores=${4} | search_type=NDR
| tc16-1518B-4t4c-eth-l2bdbasemaclrn-pdrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with with\
-| | ... | 4 phy cores, 2 receive queues per NIC port.
-| | ... | [Ver] Find PDR for 1518 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 50kpps, LT=0.5%.
| | [Tags] | 1518B | 4C | PDRDISC | SKIP_PATCH
-| | [Template] | L2 Bridge Domain Binary Search
-| | framesize=${1518} | min_rate=${50000} | wt=4 | rxq=2 | search_type=PDR
+| | framesize=${1518} | phy_cores=${4} | search_type=PDR
| tc17-9000B-4t4c-eth-l2bdbasemaclrn-ndrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with with\
-| | ... | 4 phy cores, 2 receive queues per NIC port.
-| | ... | [Ver] Find NDR for 9000 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 10kpps.
| | [Tags] | 9000B | 4C | NDRDISC | SKIP_PATCH
-| | [Template] | L2 Bridge Domain Binary Search
-| | framesize=${9000} | min_rate=${10000} | wt=4 | rxq=2 | search_type=NDR
+| | framesize=${9000} | phy_cores=${4} | search_type=NDR
| tc18-9000B-4t4c-eth-l2bdbasemaclrn-pdrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with with\
-| | ... | 4 phy cores, 2 receive queues per NIC port.
-| | ... | [Ver] Find PDR for 9000 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 10kpps, LT=0.5%.
| | [Tags] | 9000B | 4C | PDRDISC | SKIP_PATCH
-| | [Template] | L2 Bridge Domain Binary Search
-| | framesize=${9000} | min_rate=${10000} | wt=4 | rxq=2 | search_type=PDR
+| | framesize=${9000} | phy_cores=${4} | search_type=PDR
diff --git a/tests/vpp/perf/l2/10ge2p1x520-eth-l2bdbasemaclrn-oacl10sf-100flows-ndrpdrdisc.robot b/tests/vpp/perf/l2/10ge2p1x520-eth-l2bdbasemaclrn-oacl10sf-100flows-ndrpdrdisc.robot
index 2dbd9a9140..02b430d28d 100644
--- a/tests/vpp/perf/l2/10ge2p1x520-eth-l2bdbasemaclrn-oacl10sf-100flows-ndrpdrdisc.robot
+++ b/tests/vpp/perf/l2/10ge2p1x520-eth-l2bdbasemaclrn-oacl10sf-100flows-ndrpdrdisc.robot
@@ -29,6 +29,8 @@
| Test Teardown | Tear down performance test with ACL
| ... | ${min_rate}pps | ${framesize} | ${traffic_profile}
| ...
+| Test Template | Local template
+| ...
| Documentation | *RFC2544: Packet throughput L2BD test cases with ACL*
| ...
| ... | *[Top] Network Topologies:* TG-DUT1-DUT2-TG 3-node circular topology\
@@ -73,15 +75,17 @@
| ${trex_stream2_subnet}= | 20.20.20.0/24
*** Keywords ***
-| Discover NDR or PDR for L2 Bridge Domain with ACLs
-| | [Arguments] | ${wt} | ${rxq} | ${framesize} | ${min_rate} | ${search_type}
+| Local template
+| | [Arguments] | ${phy_core} | ${framesize} | ${search_type}
+| | ... | ${min_rate}=${50000} | ${rxq}=${None}
+| | ...
| | Set Test Variable | ${framesize}
| | Set Test Variable | ${min_rate}
| | ${max_rate}= | Calculate pps | ${s_limit} | ${framesize}
| | ${binary_min}= | Set Variable | ${min_rate}
| | ${binary_max}= | Set Variable | ${max_rate}
| | ${threshold}= | Set Variable | ${min_rate}
-| | Given Add '${wt}' worker threads and '${rxq}' rxqueues in 3-node single-link circular topology
+| | Given Add worker threads and rxqueues to all DUTs | ${phy_cores} | ${rxq}
| | And Add PCI devices to all DUTs
| | ${get_framesize}= | Get Frame Size | ${framesize}
| | And Run Keyword If | ${get_framesize} < ${1522} | Add no multi seg to all DUTs
@@ -101,73 +105,25 @@
*** Test Cases ***
| tc01-64B-1t1c-eth-l2bdbasemaclrn-oacl10-stateful-flows100-ndrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with ACL with\
-| | ... | 1 phy core, 1 receive queue per NIC port.
-| | ... | [Ver] Find NDR for 64 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 50kpps.
-| | ...
| | [Tags] | 64B | 1C | NDRDISC
-| | ...
-| | [Template] | Discover NDR or PDR for L2 Bridge Domain with ACLs
-| | wt=1 | rxq=1 | framesize=${64} | min_rate=${50000} | search_type=NDR
+| | phy_cores=${1} | framesize=${64} | search_type=NDR
| tc02-64B-1t1c-eth-l2bdbasemaclrn-oacl10-stateful-flows100-pdrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with ACL with\
-| | ... | 1 phy core, 1 receive queue per NIC port.
-| | ... | [Ver] Find PDR for 64 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 50kpps, LT=0.5%.
-| | ...
| | [Tags] | 64B | 1C | PDRDISC | SKIP_PATCH
-| | ...
-| | [Template] | Discover NDR or PDR for L2 Bridge Domain with ACLs
-| | wt=1 | rxq=1 | framesize=${64} | min_rate=${50000} | search_type=PDR
+| | phy_cores=${1} | framesize=${64} | search_type=PDR
| tc03-64B-2t2c-eth-l2bdbasemaclrn-oacl10-stateful-flows100-ndrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with ACL with\
-| | ... | 2 phy cores, 1 receive queue per NIC port.
-| | ... | [Ver] Find NDR for 64 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 50kpps.
-| | ...
| | [Tags] | 64B | 2C | NDRDISC
-| | ...
-| | [Template] | Discover NDR or PDR for L2 Bridge Domain with ACLs
-| | wt=2 | rxq=1 | framesize=${64} | min_rate=${50000} | search_type=NDR
+| | phy_cores=${2} | framesize=${64} | search_type=NDR
| tc04-64B-2t2c-eth-l2bdbasemaclrn-oacl10-stateful-flows100-pdrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with ACL with\
-| | ... | 2 phy cores, 1 receive queue per NIC port.
-| | ... | [Ver] Find PDR for 64 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 50kpps, LT=0.5%.
-| | ...
| | [Tags] | 64B | 2C | PDRDISC | SKIP_PATCH
-| | ...
-| | [Template] | Discover NDR or PDR for L2 Bridge Domain with ACLs
-| | wt=2 | rxq=1 | framesize=${64} | min_rate=${50000} | search_type=PDR
+| | phy_cores=${2} | framesize=${64} | search_type=PDR
| tc05-64B-4t4c-eth-l2bdbasemaclrn-oacl10-stateful-flows100-ndrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with ACL with\
-| | ... | 4 phy cores, 2 receive queues per NIC port.
-| | ... | [Ver] Find NDR for 64 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 50kpps.
-| | ...
| | [Tags] | 64B | 4C | NDRDISC
-| | ...
-| | [Template] | Discover NDR or PDR for L2 Bridge Domain with ACLs
-| | wt=4 | rxq=2 | framesize=${64} | min_rate=${50000} | search_type=NDR
+| | phy_cores=${4} | framesize=${64} | search_type=NDR
| tc06-64B-4t4c-eth-l2bdbasemaclrn-oacl10-stateful-flows100-pdrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with ACL with\
-| | ... | 4 phy cores, 2 receive queues per NIC port.
-| | ... | [Ver] Find PDR for 64 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 50kpps, LT=0.5%.
-| | ...
| | [Tags] | 64B | 4C | PDRDISC | SKIP_PATCH
-| | ...
-| | [Template] | Discover NDR or PDR for L2 Bridge Domain with ACLs
-| | wt=4 | rxq=2 | framesize=${64} | min_rate=${50000} | search_type=PDR
+| | phy_cores=${4} | framesize=${64} | search_type=PDR
diff --git a/tests/vpp/perf/l2/10ge2p1x520-eth-l2bdbasemaclrn-oacl10sf-100kflows-ndrpdrdisc.robot b/tests/vpp/perf/l2/10ge2p1x520-eth-l2bdbasemaclrn-oacl10sf-100kflows-ndrpdrdisc.robot
index d68f7160f5..21d650ca85 100644
--- a/tests/vpp/perf/l2/10ge2p1x520-eth-l2bdbasemaclrn-oacl10sf-100kflows-ndrpdrdisc.robot
+++ b/tests/vpp/perf/l2/10ge2p1x520-eth-l2bdbasemaclrn-oacl10sf-100kflows-ndrpdrdisc.robot
@@ -29,6 +29,8 @@
| Test Teardown | Tear down performance test with ACL
| ... | ${min_rate}pps | ${framesize} | ${traffic_profile}
| ...
+| Test Template | Local template
+| ...
| Documentation | *RFC2544: Packet throughput L2BD test cases with ACL*
| ...
| ... | *[Top] Network Topologies:* TG-DUT1-DUT2-TG 3-node circular topology\
@@ -73,15 +75,17 @@
| ${trex_stream2_subnet}= | 20.20.20.0/24
*** Keywords ***
-| Discover NDR or PDR for L2 Bridge Domain with ACLs
-| | [Arguments] | ${wt} | ${rxq} | ${framesize} | ${min_rate} | ${search_type}
+| Local template
+| | [Arguments] | ${phy_core} | ${framesize} | ${search_type}
+| | ... | ${min_rate}=${50000} | ${rxq}=${None}
+| | ...
| | Set Test Variable | ${framesize}
| | Set Test Variable | ${min_rate}
| | ${max_rate}= | Calculate pps | ${s_limit} | ${framesize}
| | ${binary_min}= | Set Variable | ${min_rate}
| | ${binary_max}= | Set Variable | ${max_rate}
| | ${threshold}= | Set Variable | ${min_rate}
-| | Given Add '${wt}' worker threads and '${rxq}' rxqueues in 3-node single-link circular topology
+| | Given Add worker threads and rxqueues to all DUTs | ${phy_cores} | ${rxq}
| | And Add PCI devices to all DUTs
| | ${get_framesize}= | Get Frame Size | ${framesize}
| | And Run Keyword If | ${get_framesize} < ${1522} | Add no multi seg to all DUTs
@@ -101,73 +105,25 @@
*** Test Cases ***
| tc01-64B-1t1c-eth-l2bdbasemaclrn-oacl10-stateful-flows100k-ndrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with ACL with\
-| | ... | 1 phy core, 1 receive queue per NIC port.
-| | ... | [Ver] Find NDR for 64 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 50kpps.
-| | ...
| | [Tags] | 64B | 1C | NDRDISC
-| | ...
-| | [Template] | Discover NDR or PDR for L2 Bridge Domain with ACLs
-| | wt=1 | rxq=1 | framesize=${64} | min_rate=${50000} | search_type=NDR
+| | phy_cores=${1} | framesize=${64} | search_type=NDR
| tc02-64B-1t1c-eth-l2bdbasemaclrn-oacl10-stateful-flows100k-pdrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with ACL with\
-| | ... | 1 phy core, 1 receive queue per NIC port.
-| | ... | [Ver] Find PDR for 64 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 50kpps, LT=0.5%.
-| | ...
| | [Tags] | 64B | 1C | PDRDISC | SKIP_PATCH
-| | ...
-| | [Template] | Discover NDR or PDR for L2 Bridge Domain with ACLs
-| | wt=1 | rxq=1 | framesize=${64} | min_rate=${50000} | search_type=PDR
+| | phy_cores=${1} | framesize=${64} | search_type=PDR
| tc03-64B-2t2c-eth-l2bdbasemaclrn-oacl10-stateful-flows100k-ndrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with ACL with\
-| | ... | 2 phy cores, 1 receive queue per NIC port.
-| | ... | [Ver] Find NDR for 64 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 50kpps.
-| | ...
| | [Tags] | 64B | 2C | NDRDISC
-| | ...
-| | [Template] | Discover NDR or PDR for L2 Bridge Domain with ACLs
-| | wt=2 | rxq=1 | framesize=${64} | min_rate=${50000} | search_type=NDR
+| | phy_cores=${2} | framesize=${64} | search_type=NDR
| tc04-64B-2t2c-eth-l2bdbasemaclrn-oacl10-stateful-flows100k-pdrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with ACL with\
-| | ... | 2 phy cores, 1 receive queue per NIC port.
-| | ... | [Ver] Find PDR for 64 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 50kpps, LT=0.5%.
-| | ...
| | [Tags] | 64B | 2C | PDRDISC | SKIP_PATCH
-| | ...
-| | [Template] | Discover NDR or PDR for L2 Bridge Domain with ACLs
-| | wt=2 | rxq=1 | framesize=${64} | min_rate=${50000} | search_type=PDR
+| | phy_cores=${2} | framesize=${64} | search_type=PDR
| tc05-64B-4t4c-eth-l2bdbasemaclrn-oacl10-stateful-flows100k-ndrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with ACL with\
-| | ... | 4 phy cores, 2 receive queues per NIC port.
-| | ... | [Ver] Find NDR for 64 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 50kpps.
-| | ...
| | [Tags] | 64B | 4C | NDRDISC
-| | ...
-| | [Template] | Discover NDR or PDR for L2 Bridge Domain with ACLs
-| | wt=4 | rxq=2 | framesize=${64} | min_rate=${50000} | search_type=NDR
+| | phy_cores=${4} | framesize=${64} | search_type=NDR
| tc06-64B-4t4c-eth-l2bdbasemaclrn-oacl10-stateful-flows100k-pdrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with ACL with\
-| | ... | 4 phy cores, 2 receive queues per NIC port.
-| | ... | [Ver] Find PDR for 64 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 50kpps, LT=0.5%.
-| | ...
| | [Tags] | 64B | 4C | PDRDISC | SKIP_PATCH
-| | ...
-| | [Template] | Discover NDR or PDR for L2 Bridge Domain with ACLs
-| | wt=4 | rxq=2 | framesize=${64} | min_rate=${50000} | search_type=PDR
+| | phy_cores=${4} | framesize=${64} | search_type=PDR
diff --git a/tests/vpp/perf/l2/10ge2p1x520-eth-l2bdbasemaclrn-oacl10sf-10kflows-ndrpdrdisc.robot b/tests/vpp/perf/l2/10ge2p1x520-eth-l2bdbasemaclrn-oacl10sf-10kflows-ndrpdrdisc.robot
index 6a00b10e6a..647224f82d 100644
--- a/tests/vpp/perf/l2/10ge2p1x520-eth-l2bdbasemaclrn-oacl10sf-10kflows-ndrpdrdisc.robot
+++ b/tests/vpp/perf/l2/10ge2p1x520-eth-l2bdbasemaclrn-oacl10sf-10kflows-ndrpdrdisc.robot
@@ -29,6 +29,8 @@
| Test Teardown | Tear down performance test with ACL
| ... | ${min_rate}pps | ${framesize} | ${traffic_profile}
| ...
+| Test Template | Local template
+| ...
| Documentation | *RFC2544: Packet throughput L2BD test cases with ACL*
| ...
| ... | *[Top] Network Topologies:* TG-DUT1-DUT2-TG 3-node circular topology\
@@ -73,15 +75,17 @@
| ${trex_stream2_subnet}= | 20.20.20.0/24
*** Keywords ***
-| Discover NDR or PDR for L2 Bridge Domain with ACLs
-| | [Arguments] | ${wt} | ${rxq} | ${framesize} | ${min_rate} | ${search_type}
+| Local template
+| | [Arguments] | ${phy_core} | ${framesize} | ${search_type}
+| | ... | ${min_rate}=${50000} | ${rxq}=${None}
+| | ...
| | Set Test Variable | ${framesize}
| | Set Test Variable | ${min_rate}
| | ${max_rate}= | Calculate pps | ${s_limit} | ${framesize}
| | ${binary_min}= | Set Variable | ${min_rate}
| | ${binary_max}= | Set Variable | ${max_rate}
| | ${threshold}= | Set Variable | ${min_rate}
-| | Given Add '${wt}' worker threads and '${rxq}' rxqueues in 3-node single-link circular topology
+| | Given Add worker threads and rxqueues to all DUTs | ${phy_cores} | ${rxq}
| | And Add PCI devices to all DUTs
| | ${get_framesize}= | Get Frame Size | ${framesize}
| | And Run Keyword If | ${get_framesize} < ${1522} | Add no multi seg to all DUTs
@@ -101,73 +105,25 @@
*** Test Cases ***
| tc01-64B-1t1c-eth-l2bdbasemaclrn-oacl10-stateful-flows10k-ndrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with ACL with\
-| | ... | 1 phy core, 1 receive queue per NIC port.
-| | ... | [Ver] Find NDR for 64 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 50kpps.
-| | ...
| | [Tags] | 64B | 1C | NDRDISC
-| | ...
-| | [Template] | Discover NDR or PDR for L2 Bridge Domain with ACLs
-| | wt=1 | rxq=1 | framesize=${64} | min_rate=${50000} | search_type=NDR
+| | phy_cores=${1} | framesize=${64} | search_type=NDR
| tc02-64B-1t1c-eth-l2bdbasemaclrn-oacl10-stateful-flows10k-pdrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with ACL with\
-| | ... | 1 phy core, 1 receive queue per NIC port.
-| | ... | [Ver] Find PDR for 64 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 50kpps, LT=0.5%.
-| | ...
| | [Tags] | 64B | 1C | PDRDISC | SKIP_PATCH
-| | ...
-| | [Template] | Discover NDR or PDR for L2 Bridge Domain with ACLs
-| | wt=1 | rxq=1 | framesize=${64} | min_rate=${50000} | search_type=PDR
+| | phy_cores=${1} | framesize=${64} | search_type=PDR
| tc03-64B-2t2c-eth-l2bdbasemaclrn-oacl10-stateful-flows10k-ndrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with ACL with\
-| | ... | 2 phy cores, 1 receive queue per NIC port.
-| | ... | [Ver] Find NDR for 64 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 50kpps.
-| | ...
| | [Tags] | 64B | 2C | NDRDISC
-| | ...
-| | [Template] | Discover NDR or PDR for L2 Bridge Domain with ACLs
-| | wt=2 | rxq=1 | framesize=${64} | min_rate=${50000} | search_type=NDR
+| | phy_cores=${2} | framesize=${64} | search_type=NDR
| tc04-64B-2t2c-eth-l2bdbasemaclrn-oacl10-stateful-flows10k-pdrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with ACL with\
-| | ... | 2 phy cores, 1 receive queue per NIC port.
-| | ... | [Ver] Find PDR for 64 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 50kpps, LT=0.5%.
-| | ...
| | [Tags] | 64B | 2C | PDRDISC | SKIP_PATCH
-| | ...
-| | [Template] | Discover NDR or PDR for L2 Bridge Domain with ACLs
-| | wt=2 | rxq=1 | framesize=${64} | min_rate=${50000} | search_type=PDR
+| | phy_cores=${2} | framesize=${64} | search_type=PDR
| tc05-64B-4t4c-eth-l2bdbasemaclrn-oacl10-stateful-flows10k-ndrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with ACL with\
-| | ... | 4 phy cores, 2 receive queues per NIC port.
-| | ... | [Ver] Find NDR for 64 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 50kpps.
-| | ...
| | [Tags] | 64B | 4C | NDRDISC
-| | ...
-| | [Template] | Discover NDR or PDR for L2 Bridge Domain with ACLs
-| | wt=4 | rxq=2 | framesize=${64} | min_rate=${50000} | search_type=NDR
+| | phy_cores=${4} | framesize=${64} | search_type=NDR
| tc06-64B-4t4c-eth-l2bdbasemaclrn-oacl10-stateful-flows10k-pdrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with ACL with\
-| | ... | 4 phy cores, 2 receive queues per NIC port.
-| | ... | [Ver] Find PDR for 64 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 50kpps, LT=0.5%.
-| | ...
| | [Tags] | 64B | 4C | PDRDISC | SKIP_PATCH
-| | ...
-| | [Template] | Discover NDR or PDR for L2 Bridge Domain with ACLs
-| | wt=4 | rxq=2 | framesize=${64} | min_rate=${50000} | search_type=PDR
+| | phy_cores=${4} | framesize=${64} | search_type=PDR
diff --git a/tests/vpp/perf/l2/10ge2p1x520-eth-l2bdbasemaclrn-oacl10sl-100flows-ndrpdrdisc.robot b/tests/vpp/perf/l2/10ge2p1x520-eth-l2bdbasemaclrn-oacl10sl-100flows-ndrpdrdisc.robot
index def8f0e7e6..0a98a2fa20 100644
--- a/tests/vpp/perf/l2/10ge2p1x520-eth-l2bdbasemaclrn-oacl10sl-100flows-ndrpdrdisc.robot
+++ b/tests/vpp/perf/l2/10ge2p1x520-eth-l2bdbasemaclrn-oacl10sl-100flows-ndrpdrdisc.robot
@@ -29,6 +29,8 @@
| Test Teardown | Tear down performance test with ACL
| ... | ${min_rate}pps | ${framesize} | ${traffic_profile}
| ...
+| Test Template | Local template
+| ...
| Documentation | *RFC2544: Packet throughput L2BD test cases with ACL*
| ...
| ... | *[Top] Network Topologies:* TG-DUT1-DUT2-TG 3-node circular topology\
@@ -73,15 +75,17 @@
| ${trex_stream2_subnet}= | 20.20.20.0/24
*** Keywords ***
-| Discover NDR or PDR for L2 Bridge Domain with ACLs
-| | [Arguments] | ${wt} | ${rxq} | ${framesize} | ${min_rate} | ${search_type}
+| Local template
+| | [Arguments] | ${phy_core} | ${framesize} | ${search_type}
+| | ... | ${min_rate}=${50000} | ${rxq}=${None}
+| | ...
| | Set Test Variable | ${framesize}
| | Set Test Variable | ${min_rate}
| | ${max_rate}= | Calculate pps | ${s_limit} | ${framesize}
| | ${binary_min}= | Set Variable | ${min_rate}
| | ${binary_max}= | Set Variable | ${max_rate}
| | ${threshold}= | Set Variable | ${min_rate}
-| | Given Add '${wt}' worker threads and '${rxq}' rxqueues in 3-node single-link circular topology
+| | Given Add worker threads and rxqueues to all DUTs | ${phy_cores} | ${rxq}
| | And Add PCI devices to all DUTs
| | ${get_framesize}= | Get Frame Size | ${framesize}
| | And Run Keyword If | ${get_framesize} < ${1522} | Add no multi seg to all DUTs
@@ -101,73 +105,25 @@
*** Test Cases ***
| tc01-64B-1t1c-eth-l2bdbasemaclrn-oacl10-stateless-flows100-ndrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with ACL with\
-| | ... | 1 phy core, 1 receive queue per NIC port.
-| | ... | [Ver] Find NDR for 64 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 50kpps.
-| | ...
| | [Tags] | 64B | 1C | NDRDISC
-| | ...
-| | [Template] | Discover NDR or PDR for L2 Bridge Domain with ACLs
-| | wt=1 | rxq=1 | framesize=${64} | min_rate=${50000} | search_type=NDR
+| | phy_cores=${1} | framesize=${64} | search_type=NDR
| tc02-64B-1t1c-eth-l2bdbasemaclrn-oacl10-stateless-flows100-pdrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with ACL with\
-| | ... | 1 phy core, 1 receive queue per NIC port.
-| | ... | [Ver] Find PDR for 64 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 50kpps, LT=0.5%.
-| | ...
| | [Tags] | 64B | 1C | PDRDISC | SKIP_PATCH
-| | ...
-| | [Template] | Discover NDR or PDR for L2 Bridge Domain with ACLs
-| | wt=1 | rxq=1 | framesize=${64} | min_rate=${50000} | search_type=PDR
+| | phy_cores=${1} | framesize=${64} | search_type=PDR
| tc03-64B-2t2c-eth-l2bdbasemaclrn-oacl10-stateless-flows100-ndrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with ACL with\
-| | ... | 2 phy cores, 1 receive queue per NIC port.
-| | ... | [Ver] Find NDR for 64 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 50kpps.
-| | ...
| | [Tags] | 64B | 2C | NDRDISC
-| | ...
-| | [Template] | Discover NDR or PDR for L2 Bridge Domain with ACLs
-| | wt=2 | rxq=1 | framesize=${64} | min_rate=${50000} | search_type=NDR
+| | phy_cores=${2} | framesize=${64} | search_type=NDR
| tc04-64B-2t2c-eth-l2bdbasemaclrn-oacl10-stateless-flows100-pdrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with ACL with\
-| | ... | 2 phy cores, 1 receive queue per NIC port.
-| | ... | [Ver] Find PDR for 64 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 50kpps, LT=0.5%.
-| | ...
| | [Tags] | 64B | 2C | PDRDISC | SKIP_PATCH
-| | ...
-| | [Template] | Discover NDR or PDR for L2 Bridge Domain with ACLs
-| | wt=2 | rxq=1 | framesize=${64} | min_rate=${50000} | search_type=PDR
+| | phy_cores=${2} | framesize=${64} | search_type=PDR
| tc05-64B-4t4c-eth-l2bdbasemaclrn-oacl10-stateless-flows100-ndrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with ACL with\
-| | ... | 4 phy cores, 2 receive queues per NIC port.
-| | ... | [Ver] Find NDR for 64 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 50kpps.
-| | ...
| | [Tags] | 64B | 4C | NDRDISC
-| | ...
-| | [Template] | Discover NDR or PDR for L2 Bridge Domain with ACLs
-| | wt=4 | rxq=2 | framesize=${64} | min_rate=${50000} | search_type=NDR
+| | phy_cores=${4} | framesize=${64} | search_type=NDR
| tc06-64B-4t4c-eth-l2bdbasemaclrn-oacl10-stateless-flows100-pdrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with ACL with\
-| | ... | 4 phy cores, 2 receive queues per NIC port.
-| | ... | [Ver] Find PDR for 64 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 50kpps, LT=0.5%.
-| | ...
| | [Tags] | 64B | 4C | PDRDISC | SKIP_PATCH
-| | ...
-| | [Template] | Discover NDR or PDR for L2 Bridge Domain with ACLs
-| | wt=4 | rxq=2 | framesize=${64} | min_rate=${50000} | search_type=PDR
+| | phy_cores=${4} | framesize=${64} | search_type=PDR
diff --git a/tests/vpp/perf/l2/10ge2p1x520-eth-l2bdbasemaclrn-oacl10sl-100kflows-ndrpdrdisc.robot b/tests/vpp/perf/l2/10ge2p1x520-eth-l2bdbasemaclrn-oacl10sl-100kflows-ndrpdrdisc.robot
index 9e045088c5..40f1bc9504 100644
--- a/tests/vpp/perf/l2/10ge2p1x520-eth-l2bdbasemaclrn-oacl10sl-100kflows-ndrpdrdisc.robot
+++ b/tests/vpp/perf/l2/10ge2p1x520-eth-l2bdbasemaclrn-oacl10sl-100kflows-ndrpdrdisc.robot
@@ -29,6 +29,8 @@
| Test Teardown | Tear down performance test with ACL
| ... | ${min_rate}pps | ${framesize} | ${traffic_profile}
| ...
+| Test Template | Local template
+| ...
| Documentation | *RFC2544: Packet throughput L2BD test cases with ACL*
| ...
| ... | *[Top] Network Topologies:* TG-DUT1-DUT2-TG 3-node circular topology\
@@ -73,15 +75,17 @@
| ${trex_stream2_subnet}= | 20.20.20.0/24
*** Keywords ***
-| Discover NDR or PDR for L2 Bridge Domain with ACLs
-| | [Arguments] | ${wt} | ${rxq} | ${framesize} | ${min_rate} | ${search_type}
+| Local template
+| | [Arguments] | ${phy_core} | ${framesize} | ${search_type}
+| | ... | ${min_rate}=${50000} | ${rxq}=${None}
+| | ...
| | Set Test Variable | ${framesize}
| | Set Test Variable | ${min_rate}
| | ${max_rate}= | Calculate pps | ${s_limit} | ${framesize}
| | ${binary_min}= | Set Variable | ${min_rate}
| | ${binary_max}= | Set Variable | ${max_rate}
| | ${threshold}= | Set Variable | ${min_rate}
-| | Given Add '${wt}' worker threads and '${rxq}' rxqueues in 3-node single-link circular topology
+| | Given Add worker threads and rxqueues to all DUTs | ${phy_cores} | ${rxq}
| | And Add PCI devices to all DUTs
| | ${get_framesize}= | Get Frame Size | ${framesize}
| | And Run Keyword If | ${get_framesize} < ${1522} | Add no multi seg to all DUTs
@@ -101,73 +105,25 @@
*** Test Cases ***
| tc01-64B-1t1c-eth-l2bdbasemaclrn-oacl10-stateless-flows100k-ndrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with ACL with\
-| | ... | 1 phy core, 1 receive queue per NIC port.
-| | ... | [Ver] Find NDR for 64 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 50kpps.
-| | ...
| | [Tags] | 64B | 1C | NDRDISC
-| | ...
-| | [Template] | Discover NDR or PDR for L2 Bridge Domain with ACLs
-| | wt=1 | rxq=1 | framesize=${64} | min_rate=${50000} | search_type=NDR
+| | phy_cores=${1} | framesize=${64} | search_type=NDR
| tc02-64B-1t1c-eth-l2bdbasemaclrn-oacl10-stateless-flows100k-pdrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with ACL with\
-| | ... | 1 phy core, 1 receive queue per NIC port.
-| | ... | [Ver] Find PDR for 64 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 50kpps, LT=0.5%.
-| | ...
| | [Tags] | 64B | 1C | PDRDISC | SKIP_PATCH
-| | ...
-| | [Template] | Discover NDR or PDR for L2 Bridge Domain with ACLs
-| | wt=1 | rxq=1 | framesize=${64} | min_rate=${50000} | search_type=PDR
+| | phy_cores=${1} | framesize=${64} | search_type=PDR
| tc03-64B-2t2c-eth-l2bdbasemaclrn-oacl10-stateless-flows100k-ndrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with ACL with\
-| | ... | 2 phy cores, 1 receive queue per NIC port.
-| | ... | [Ver] Find NDR for 64 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 50kpps.
-| | ...
| | [Tags] | 64B | 2C | NDRDISC
-| | ...
-| | [Template] | Discover NDR or PDR for L2 Bridge Domain with ACLs
-| | wt=2 | rxq=1 | framesize=${64} | min_rate=${50000} | search_type=NDR
+| | phy_cores=${2} | framesize=${64} | search_type=NDR
| tc04-64B-2t2c-eth-l2bdbasemaclrn-oacl10-stateless-flows100k-pdrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with ACL with\
-| | ... | 2 phy cores, 1 receive queue per NIC port.
-| | ... | [Ver] Find PDR for 64 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 50kpps, LT=0.5%.
-| | ...
| | [Tags] | 64B | 2C | PDRDISC | SKIP_PATCH
-| | ...
-| | [Template] | Discover NDR or PDR for L2 Bridge Domain with ACLs
-| | wt=2 | rxq=1 | framesize=${64} | min_rate=${50000} | search_type=PDR
+| | phy_cores=${2} | framesize=${64} | search_type=PDR
| tc05-64B-4t4c-eth-l2bdbasemaclrn-oacl10-stateless-flows100k-ndrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with ACL with\
-| | ... | 4 phy cores, 2 receive queues per NIC port.
-| | ... | [Ver] Find NDR for 64 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 50kpps.
-| | ...
| | [Tags] | 64B | 4C | NDRDISC
-| | ...
-| | [Template] | Discover NDR or PDR for L2 Bridge Domain with ACLs
-| | wt=4 | rxq=2 | framesize=${64} | min_rate=${50000} | search_type=NDR
+| | phy_cores=${4} | framesize=${64} | search_type=NDR
| tc06-64B-4t4c-eth-l2bdbasemaclrn-oacl10-stateless-flows100k-pdrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with ACL with\
-| | ... | 4 phy cores, 2 receive queues per NIC port.
-| | ... | [Ver] Find PDR for 64 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 50kpps, LT=0.5%.
-| | ...
| | [Tags] | 64B | 4C | PDRDISC | SKIP_PATCH
-| | ...
-| | [Template] | Discover NDR or PDR for L2 Bridge Domain with ACLs
-| | wt=4 | rxq=2 | framesize=${64} | min_rate=${50000} | search_type=PDR
+| | phy_cores=${4} | framesize=${64} | search_type=PDR
diff --git a/tests/vpp/perf/l2/10ge2p1x520-eth-l2bdbasemaclrn-oacl10sl-10kflows-ndrpdrdisc.robot b/tests/vpp/perf/l2/10ge2p1x520-eth-l2bdbasemaclrn-oacl10sl-10kflows-ndrpdrdisc.robot
index 08ff05bed4..1c6e9af255 100644
--- a/tests/vpp/perf/l2/10ge2p1x520-eth-l2bdbasemaclrn-oacl10sl-10kflows-ndrpdrdisc.robot
+++ b/tests/vpp/perf/l2/10ge2p1x520-eth-l2bdbasemaclrn-oacl10sl-10kflows-ndrpdrdisc.robot
@@ -29,6 +29,8 @@
| Test Teardown | Tear down performance test with ACL
| ... | ${min_rate}pps | ${framesize} | ${traffic_profile}
| ...
+| Test Template | Local template
+| ...
| Documentation | *RFC2544: Packet throughput L2BD test cases with ACL*
| ...
| ... | *[Top] Network Topologies:* TG-DUT1-DUT2-TG 3-node circular topology\
@@ -73,15 +75,17 @@
| ${trex_stream2_subnet}= | 20.20.20.0/24
*** Keywords ***
-| Discover NDR or PDR for L2 Bridge Domain with ACLs
-| | [Arguments] | ${wt} | ${rxq} | ${framesize} | ${min_rate} | ${search_type}
+| Local template
+| | [Arguments] | ${phy_core} | ${framesize} | ${search_type}
+| | ... | ${min_rate}=${50000} | ${rxq}=${None}
+| | ...
| | Set Test Variable | ${framesize}
| | Set Test Variable | ${min_rate}
| | ${max_rate}= | Calculate pps | ${s_limit} | ${framesize}
| | ${binary_min}= | Set Variable | ${min_rate}
| | ${binary_max}= | Set Variable | ${max_rate}
| | ${threshold}= | Set Variable | ${min_rate}
-| | Given Add '${wt}' worker threads and '${rxq}' rxqueues in 3-node single-link circular topology
+| | Given Add worker threads and rxqueues to all DUTs | ${phy_cores} | ${rxq}
| | And Add PCI devices to all DUTs
| | ${get_framesize}= | Get Frame Size | ${framesize}
| | And Run Keyword If | ${get_framesize} < ${1522} | Add no multi seg to all DUTs
@@ -101,73 +105,25 @@
*** Test Cases ***
| tc01-64B-1t1c-eth-l2bdbasemaclrn-oacl10-stateless-flows10k-ndrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with ACL with\
-| | ... | 1 phy core, 1 receive queue per NIC port.
-| | ... | [Ver] Find NDR for 64 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 50kpps.
-| | ...
| | [Tags] | 64B | 1C | NDRDISC
-| | ...
-| | [Template] | Discover NDR or PDR for L2 Bridge Domain with ACLs
-| | wt=1 | rxq=1 | framesize=${64} | min_rate=${50000} | search_type=NDR
+| | phy_cores=${1} | framesize=${64} | search_type=NDR
| tc02-64B-1t1c-eth-l2bdbasemaclrn-oacl10-stateless-flows10k-pdrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with ACL with\
-| | ... | 1 phy core, 1 receive queue per NIC port.
-| | ... | [Ver] Find PDR for 64 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 50kpps, LT=0.5%.
-| | ...
| | [Tags] | 64B | 1C | PDRDISC | SKIP_PATCH
-| | ...
-| | [Template] | Discover NDR or PDR for L2 Bridge Domain with ACLs
-| | wt=1 | rxq=1 | framesize=${64} | min_rate=${50000} | search_type=PDR
+| | phy_cores=${1} | framesize=${64} | search_type=PDR
| tc03-64B-2t2c-eth-l2bdbasemaclrn-oacl10-stateless-flows10k-ndrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with ACL with\
-| | ... | 2 phy cores, 1 receive queue per NIC port.
-| | ... | [Ver] Find NDR for 64 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 50kpps.
-| | ...
| | [Tags] | 64B | 2C | NDRDISC
-| | ...
-| | [Template] | Discover NDR or PDR for L2 Bridge Domain with ACLs
-| | wt=2 | rxq=1 | framesize=${64} | min_rate=${50000} | search_type=NDR
+| | phy_cores=${2} | framesize=${64} | search_type=NDR
| tc04-64B-2t2c-eth-l2bdbasemaclrn-oacl10-stateless-flows10k-pdrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with ACL with\
-| | ... | 2 phy cores, 1 receive queue per NIC port.
-| | ... | [Ver] Find PDR for 64 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 50kpps, LT=0.5%.
-| | ...
| | [Tags] | 64B | 2C | PDRDISC | SKIP_PATCH
-| | ...
-| | [Template] | Discover NDR or PDR for L2 Bridge Domain with ACLs
-| | wt=2 | rxq=1 | framesize=${64} | min_rate=${50000} | search_type=PDR
+| | phy_cores=${2} | framesize=${64} | search_type=PDR
| tc05-64B-4t4c-eth-l2bdbasemaclrn-oacl10-stateless-flows10k-ndrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with ACL with\
-| | ... | 4 phy cores, 2 receive queues per NIC port.
-| | ... | [Ver] Find NDR for 64 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 50kpps.
-| | ...
| | [Tags] | 64B | 4C | NDRDISC
-| | ...
-| | [Template] | Discover NDR or PDR for L2 Bridge Domain with ACLs
-| | wt=4 | rxq=2 | framesize=${64} | min_rate=${50000} | search_type=NDR
+| | phy_cores=${4} | framesize=${64} | search_type=NDR
| tc06-64B-4t4c-eth-l2bdbasemaclrn-oacl10-stateless-flows10k-pdrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with ACL with\
-| | ... | 4 phy cores, 2 receive queues per NIC port.
-| | ... | [Ver] Find PDR for 64 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 50kpps, LT=0.5%.
-| | ...
| | [Tags] | 64B | 4C | PDRDISC | SKIP_PATCH
-| | ...
-| | [Template] | Discover NDR or PDR for L2 Bridge Domain with ACLs
-| | wt=4 | rxq=2 | framesize=${64} | min_rate=${50000} | search_type=PDR
+| | phy_cores=${4} | framesize=${64} | search_type=PDR
diff --git a/tests/vpp/perf/l2/10ge2p1x520-eth-l2bdbasemaclrn-oacl1sf-100flows-ndrpdrdisc.robot b/tests/vpp/perf/l2/10ge2p1x520-eth-l2bdbasemaclrn-oacl1sf-100flows-ndrpdrdisc.robot
index 27c9d86e36..6a5bb99919 100644
--- a/tests/vpp/perf/l2/10ge2p1x520-eth-l2bdbasemaclrn-oacl1sf-100flows-ndrpdrdisc.robot
+++ b/tests/vpp/perf/l2/10ge2p1x520-eth-l2bdbasemaclrn-oacl1sf-100flows-ndrpdrdisc.robot
@@ -29,6 +29,8 @@
| Test Teardown | Tear down performance test with ACL
| ... | ${min_rate}pps | ${framesize} | ${traffic_profile}
| ...
+| Test Template | Local template
+| ...
| Documentation | *RFC2544: Packet throughput L2BD test cases with ACL*
| ...
| ... | *[Top] Network Topologies:* TG-DUT1-DUT2-TG 3-node circular topology\
@@ -73,15 +75,17 @@
| ${trex_stream2_subnet}= | 20.20.20.0/24
*** Keywords ***
-| Discover NDR or PDR for L2 Bridge Domain with ACLs
-| | [Arguments] | ${wt} | ${rxq} | ${framesize} | ${min_rate} | ${search_type}
+| Local template
+| | [Arguments] | ${phy_core} | ${framesize} | ${search_type}
+| | ... | ${min_rate}=${50000} | ${rxq}=${None}
+| | ...
| | Set Test Variable | ${framesize}
| | Set Test Variable | ${min_rate}
| | ${max_rate}= | Calculate pps | ${s_limit} | ${framesize}
| | ${binary_min}= | Set Variable | ${min_rate}
| | ${binary_max}= | Set Variable | ${max_rate}
| | ${threshold}= | Set Variable | ${min_rate}
-| | Given Add '${wt}' worker threads and '${rxq}' rxqueues in 3-node single-link circular topology
+| | Given Add worker threads and rxqueues to all DUTs | ${phy_cores} | ${rxq}
| | And Add PCI devices to all DUTs
| | ${get_framesize}= | Get Frame Size | ${framesize}
| | And Run Keyword If | ${get_framesize} < ${1522} | Add no multi seg to all DUTs
@@ -101,73 +105,25 @@
*** Test Cases ***
| tc01-64B-1t1c-eth-l2bdbasemaclrn-oacl1-stateful-flows100-ndrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with ACL with\
-| | ... | 1 phy core, 1 receive queue per NIC port.
-| | ... | [Ver] Find NDR for 64 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 50kpps.
-| | ...
| | [Tags] | 64B | 1C | NDRDISC
-| | ...
-| | [Template] | Discover NDR or PDR for L2 Bridge Domain with ACLs
-| | wt=1 | rxq=1 | framesize=${64} | min_rate=${50000} | search_type=NDR
+| | phy_cores=${1} | framesize=${64} | search_type=NDR
| tc02-64B-1t1c-eth-l2bdbasemaclrn-oacl1-stateful-flows100-pdrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with ACL with\
-| | ... | 1 phy core, 1 receive queue per NIC port.
-| | ... | [Ver] Find PDR for 64 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 50kpps, LT=0.5%.
-| | ...
| | [Tags] | 64B | 1C | PDRDISC | SKIP_PATCH
-| | ...
-| | [Template] | Discover NDR or PDR for L2 Bridge Domain with ACLs
-| | wt=1 | rxq=1 | framesize=${64} | min_rate=${50000} | search_type=PDR
+| | phy_cores=${1} | framesize=${64} | search_type=PDR
| tc03-64B-2t2c-eth-l2bdbasemaclrn-oacl1-stateful-flows100-ndrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with ACL with\
-| | ... | 2 phy cores, 1 receive queue per NIC port.
-| | ... | [Ver] Find NDR for 64 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 50kpps.
-| | ...
| | [Tags] | 64B | 2C | NDRDISC
-| | ...
-| | [Template] | Discover NDR or PDR for L2 Bridge Domain with ACLs
-| | wt=2 | rxq=1 | framesize=${64} | min_rate=${50000} | search_type=NDR
+| | phy_cores=${2} | framesize=${64} | search_type=NDR
| tc04-64B-2t2c-eth-l2bdbasemaclrn-oacl1-stateful-flows100-pdrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with ACL with\
-| | ... | 2 phy cores, 1 receive queue per NIC port.
-| | ... | [Ver] Find PDR for 64 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 50kpps, LT=0.5%.
-| | ...
| | [Tags] | 64B | 2C | PDRDISC | SKIP_PATCH
-| | ...
-| | [Template] | Discover NDR or PDR for L2 Bridge Domain with ACLs
-| | wt=2 | rxq=1 | framesize=${64} | min_rate=${50000} | search_type=PDR
+| | phy_cores=${2} | framesize=${64} | search_type=PDR
| tc05-64B-4t4c-eth-l2bdbasemaclrn-oacl1-stateful-flows100-ndrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with ACL with\
-| | ... | 4 phy cores, 2 receive queues per NIC port.
-| | ... | [Ver] Find NDR for 64 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 50kpps.
-| | ...
| | [Tags] | 64B | 4C | NDRDISC
-| | ...
-| | [Template] | Discover NDR or PDR for L2 Bridge Domain with ACLs
-| | wt=4 | rxq=2 | framesize=${64} | min_rate=${50000} | search_type=NDR
+| | phy_cores=${4} | framesize=${64} | search_type=NDR
| tc06-64B-4t4c-eth-l2bdbasemaclrn-oacl1-stateful-flows100-pdrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with ACL with\
-| | ... | 4 phy cores, 2 receive queues per NIC port.
-| | ... | [Ver] Find PDR for 64 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 50kpps, LT=0.5%.
-| | ...
| | [Tags] | 64B | 4C | PDRDISC | SKIP_PATCH
-| | ...
-| | [Template] | Discover NDR or PDR for L2 Bridge Domain with ACLs
-| | wt=4 | rxq=2 | framesize=${64} | min_rate=${50000} | search_type=PDR
+| | phy_cores=${4} | framesize=${64} | search_type=PDR
diff --git a/tests/vpp/perf/l2/10ge2p1x520-eth-l2bdbasemaclrn-oacl1sf-100kflows-ndrpdrdisc.robot b/tests/vpp/perf/l2/10ge2p1x520-eth-l2bdbasemaclrn-oacl1sf-100kflows-ndrpdrdisc.robot
index af35da4a61..0fcc9cce50 100644
--- a/tests/vpp/perf/l2/10ge2p1x520-eth-l2bdbasemaclrn-oacl1sf-100kflows-ndrpdrdisc.robot
+++ b/tests/vpp/perf/l2/10ge2p1x520-eth-l2bdbasemaclrn-oacl1sf-100kflows-ndrpdrdisc.robot
@@ -29,6 +29,8 @@
| Test Teardown | Tear down performance test with ACL
| ... | ${min_rate}pps | ${framesize} | ${traffic_profile}
| ...
+| Test Template | Local template
+| ...
| Documentation | *RFC2544: Packet throughput L2BD test cases with ACL*
| ...
| ... | *[Top] Network Topologies:* TG-DUT1-DUT2-TG 3-node circular topology\
@@ -73,15 +75,17 @@
| ${trex_stream2_subnet}= | 20.20.20.0/24
*** Keywords ***
-| Discover NDR or PDR for L2 Bridge Domain with ACLs
-| | [Arguments] | ${wt} | ${rxq} | ${framesize} | ${min_rate} | ${search_type}
+| Local template
+| | [Arguments] | ${phy_core} | ${framesize} | ${search_type}
+| | ... | ${min_rate}=${50000} | ${rxq}=${None}
+| | ...
| | Set Test Variable | ${framesize}
| | Set Test Variable | ${min_rate}
| | ${max_rate}= | Calculate pps | ${s_limit} | ${framesize}
| | ${binary_min}= | Set Variable | ${min_rate}
| | ${binary_max}= | Set Variable | ${max_rate}
| | ${threshold}= | Set Variable | ${min_rate}
-| | Given Add '${wt}' worker threads and '${rxq}' rxqueues in 3-node single-link circular topology
+| | Given Add worker threads and rxqueues to all DUTs | ${phy_cores} | ${rxq}
| | And Add PCI devices to all DUTs
| | ${get_framesize}= | Get Frame Size | ${framesize}
| | And Run Keyword If | ${get_framesize} < ${1522} | Add no multi seg to all DUTs
@@ -101,73 +105,25 @@
*** Test Cases ***
| tc01-64B-1t1c-eth-l2bdbasemaclrn-oacl1-stateful-flows100k-ndrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with ACL with\
-| | ... | 1 phy core, 1 receive queue per NIC port.
-| | ... | [Ver] Find NDR for 64 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 50kpps.
-| | ...
| | [Tags] | 64B | 1C | NDRDISC
-| | ...
-| | [Template] | Discover NDR or PDR for L2 Bridge Domain with ACLs
-| | wt=1 | rxq=1 | framesize=${64} | min_rate=${50000} | search_type=NDR
+| | phy_cores=${1} | framesize=${64} | search_type=NDR
| tc02-64B-1t1c-eth-l2bdbasemaclrn-oacl1-stateful-flows100k-pdrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with ACL with\
-| | ... | 1 phy core, 1 receive queue per NIC port.
-| | ... | [Ver] Find PDR for 64 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 50kpps, LT=0.5%.
-| | ...
| | [Tags] | 64B | 1C | PDRDISC | SKIP_PATCH
-| | ...
-| | [Template] | Discover NDR or PDR for L2 Bridge Domain with ACLs
-| | wt=1 | rxq=1 | framesize=${64} | min_rate=${50000} | search_type=PDR
+| | phy_cores=${1} | framesize=${64} | search_type=PDR
| tc03-64B-2t2c-eth-l2bdbasemaclrn-oacl1-stateful-flows100k-ndrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with ACL with\
-| | ... | 2 phy cores, 1 receive queue per NIC port.
-| | ... | [Ver] Find NDR for 64 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 50kpps.
-| | ...
| | [Tags] | 64B | 2C | NDRDISC
-| | ...
-| | [Template] | Discover NDR or PDR for L2 Bridge Domain with ACLs
-| | wt=2 | rxq=1 | framesize=${64} | min_rate=${50000} | search_type=NDR
+| | phy_cores=${2} | framesize=${64} | search_type=NDR
| tc04-64B-2t2c-eth-l2bdbasemaclrn-oacl1-stateful-flows100k-pdrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with ACL with\
-| | ... | 2 phy cores, 1 receive queue per NIC port.
-| | ... | [Ver] Find PDR for 64 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 50kpps, LT=0.5%.
-| | ...
| | [Tags] | 64B | 2C | PDRDISC | SKIP_PATCH
-| | ...
-| | [Template] | Discover NDR or PDR for L2 Bridge Domain with ACLs
-| | wt=2 | rxq=1 | framesize=${64} | min_rate=${50000} | search_type=PDR
+| | phy_cores=${2} | framesize=${64} | search_type=PDR
| tc05-64B-4t4c-eth-l2bdbasemaclrn-oacl1-stateful-flows100k-ndrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with ACL with\
-| | ... | 4 phy cores, 2 receive queues per NIC port.
-| | ... | [Ver] Find NDR for 64 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 50kpps.
-| | ...
| | [Tags] | 64B | 4C | NDRDISC
-| | ...
-| | [Template] | Discover NDR or PDR for L2 Bridge Domain with ACLs
-| | wt=4 | rxq=2 | framesize=${64} | min_rate=${50000} | search_type=NDR
+| | phy_cores=${4} | framesize=${64} | search_type=NDR
| tc06-64B-4t4c-eth-l2bdbasemaclrn-oacl1-stateful-flows100k-pdrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with ACL with\
-| | ... | 4 phy cores, 2 receive queues per NIC port.
-| | ... | [Ver] Find PDR for 64 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 50kpps, LT=0.5%.
-| | ...
| | [Tags] | 64B | 4C | PDRDISC | SKIP_PATCH
-| | ...
-| | [Template] | Discover NDR or PDR for L2 Bridge Domain with ACLs
-| | wt=4 | rxq=2 | framesize=${64} | min_rate=${50000} | search_type=PDR
+| | phy_cores=${4} | framesize=${64} | search_type=PDR
diff --git a/tests/vpp/perf/l2/10ge2p1x520-eth-l2bdbasemaclrn-oacl1sf-10kflows-ndrpdrdisc.robot b/tests/vpp/perf/l2/10ge2p1x520-eth-l2bdbasemaclrn-oacl1sf-10kflows-ndrpdrdisc.robot
index cc3337bf9f..6f1585b819 100644
--- a/tests/vpp/perf/l2/10ge2p1x520-eth-l2bdbasemaclrn-oacl1sf-10kflows-ndrpdrdisc.robot
+++ b/tests/vpp/perf/l2/10ge2p1x520-eth-l2bdbasemaclrn-oacl1sf-10kflows-ndrpdrdisc.robot
@@ -29,6 +29,8 @@
| Test Teardown | Tear down performance test with ACL
| ... | ${min_rate}pps | ${framesize} | ${traffic_profile}
| ...
+| Test Template | Local template
+| ...
| Documentation | *RFC2544: Packet throughput L2BD test cases with ACL*
| ...
| ... | *[Top] Network Topologies:* TG-DUT1-DUT2-TG 3-node circular topology\
@@ -73,15 +75,17 @@
| ${trex_stream2_subnet}= | 20.20.20.0/24
*** Keywords ***
-| Discover NDR or PDR for L2 Bridge Domain with ACLs
-| | [Arguments] | ${wt} | ${rxq} | ${framesize} | ${min_rate} | ${search_type}
+| Local template
+| | [Arguments] | ${phy_core} | ${framesize} | ${search_type}
+| | ... | ${min_rate}=${50000} | ${rxq}=${None}
+| | ...
| | Set Test Variable | ${framesize}
| | Set Test Variable | ${min_rate}
| | ${max_rate}= | Calculate pps | ${s_limit} | ${framesize}
| | ${binary_min}= | Set Variable | ${min_rate}
| | ${binary_max}= | Set Variable | ${max_rate}
| | ${threshold}= | Set Variable | ${min_rate}
-| | Given Add '${wt}' worker threads and '${rxq}' rxqueues in 3-node single-link circular topology
+| | Given Add worker threads and rxqueues to all DUTs | ${phy_cores} | ${rxq}
| | And Add PCI devices to all DUTs
| | ${get_framesize}= | Get Frame Size | ${framesize}
| | And Run Keyword If | ${get_framesize} < ${1522} | Add no multi seg to all DUTs
@@ -101,73 +105,25 @@
*** Test Cases ***
| tc01-64B-1t1c-eth-l2bdbasemaclrn-oacl1-stateful-flows10k-ndrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with ACL with\
-| | ... | 1 phy core, 1 receive queue per NIC port.
-| | ... | [Ver] Find NDR for 64 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 50kpps.
-| | ...
| | [Tags] | 64B | 1C | NDRDISC
-| | ...
-| | [Template] | Discover NDR or PDR for L2 Bridge Domain with ACLs
-| | wt=1 | rxq=1 | framesize=${64} | min_rate=${50000} | search_type=NDR
+| | phy_cores=${1} | framesize=${64} | search_type=NDR
| tc02-64B-1t1c-eth-l2bdbasemaclrn-oacl1-stateful-flows10k-pdrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with ACL with\
-| | ... | 1 phy core, 1 receive queue per NIC port.
-| | ... | [Ver] Find PDR for 64 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 50kpps, LT=0.5%.
-| | ...
| | [Tags] | 64B | 1C | PDRDISC | SKIP_PATCH
-| | ...
-| | [Template] | Discover NDR or PDR for L2 Bridge Domain with ACLs
-| | wt=1 | rxq=1 | framesize=${64} | min_rate=${50000} | search_type=PDR
+| | phy_cores=${1} | framesize=${64} | search_type=PDR
| tc03-64B-2t2c-eth-l2bdbasemaclrn-oacl1-stateful-flows10k-ndrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with ACL with\
-| | ... | 2 phy cores, 1 receive queue per NIC port.
-| | ... | [Ver] Find NDR for 64 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 50kpps.
-| | ...
| | [Tags] | 64B | 2C | NDRDISC
-| | ...
-| | [Template] | Discover NDR or PDR for L2 Bridge Domain with ACLs
-| | wt=2 | rxq=1 | framesize=${64} | min_rate=${50000} | search_type=NDR
+| | phy_cores=${2} | framesize=${64} | search_type=NDR
| tc04-64B-2t2c-eth-l2bdbasemaclrn-oacl1-stateful-flows10k-pdrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with ACL with\
-| | ... | 2 phy cores, 1 receive queue per NIC port.
-| | ... | [Ver] Find PDR for 64 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 50kpps, LT=0.5%.
-| | ...
| | [Tags] | 64B | 2C | PDRDISC | SKIP_PATCH
-| | ...
-| | [Template] | Discover NDR or PDR for L2 Bridge Domain with ACLs
-| | wt=2 | rxq=1 | framesize=${64} | min_rate=${50000} | search_type=PDR
+| | phy_cores=${2} | framesize=${64} | search_type=PDR
| tc05-64B-4t4c-eth-l2bdbasemaclrn-oacl1-stateful-flows10k-ndrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with ACL with\
-| | ... | 4 phy cores, 2 receive queues per NIC port.
-| | ... | [Ver] Find NDR for 64 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 50kpps.
-| | ...
| | [Tags] | 64B | 4C | NDRDISC
-| | ...
-| | [Template] | Discover NDR or PDR for L2 Bridge Domain with ACLs
-| | wt=4 | rxq=2 | framesize=${64} | min_rate=${50000} | search_type=NDR
+| | phy_cores=${4} | framesize=${64} | search_type=NDR
| tc06-64B-4t4c-eth-l2bdbasemaclrn-oacl1-stateful-flows10k-pdrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with ACL with\
-| | ... | 4 phy cores, 2 receive queues per NIC port.
-| | ... | [Ver] Find PDR for 64 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 50kpps, LT=0.5%.
-| | ...
| | [Tags] | 64B | 4C | PDRDISC | SKIP_PATCH
-| | ...
-| | [Template] | Discover NDR or PDR for L2 Bridge Domain with ACLs
-| | wt=4 | rxq=2 | framesize=${64} | min_rate=${50000} | search_type=PDR
+| | phy_cores=${4} | framesize=${64} | search_type=PDR
diff --git a/tests/vpp/perf/l2/10ge2p1x520-eth-l2bdbasemaclrn-oacl1sl-100flows-ndrpdrdisc.robot b/tests/vpp/perf/l2/10ge2p1x520-eth-l2bdbasemaclrn-oacl1sl-100flows-ndrpdrdisc.robot
index 06732a844e..84936fa7a9 100644
--- a/tests/vpp/perf/l2/10ge2p1x520-eth-l2bdbasemaclrn-oacl1sl-100flows-ndrpdrdisc.robot
+++ b/tests/vpp/perf/l2/10ge2p1x520-eth-l2bdbasemaclrn-oacl1sl-100flows-ndrpdrdisc.robot
@@ -29,6 +29,8 @@
| Test Teardown | Tear down performance test with ACL
| ... | ${min_rate}pps | ${framesize} | ${traffic_profile}
| ...
+| Test Template | Local template
+| ...
| Documentation | *RFC2544: Packet throughput L2BD test cases with ACL*
| ...
| ... | *[Top] Network Topologies:* TG-DUT1-DUT2-TG 3-node circular topology\
@@ -73,15 +75,17 @@
| ${trex_stream2_subnet}= | 20.20.20.0/24
*** Keywords ***
-| Discover NDR or PDR for L2 Bridge Domain with ACLs
-| | [Arguments] | ${wt} | ${rxq} | ${framesize} | ${min_rate} | ${search_type}
+| Local template
+| | [Arguments] | ${phy_core} | ${framesize} | ${search_type}
+| | ... | ${min_rate}=${50000} | ${rxq}=${None}
+| | ...
| | Set Test Variable | ${framesize}
| | Set Test Variable | ${min_rate}
| | ${max_rate}= | Calculate pps | ${s_limit} | ${framesize}
| | ${binary_min}= | Set Variable | ${min_rate}
| | ${binary_max}= | Set Variable | ${max_rate}
| | ${threshold}= | Set Variable | ${min_rate}
-| | Given Add '${wt}' worker threads and '${rxq}' rxqueues in 3-node single-link circular topology
+| | Given Add worker threads and rxqueues to all DUTs | ${phy_cores} | ${rxq}
| | And Add PCI devices to all DUTs
| | ${get_framesize}= | Get Frame Size | ${framesize}
| | And Run Keyword If | ${get_framesize} < ${1522} | Add no multi seg to all DUTs
@@ -101,73 +105,25 @@
*** Test Cases ***
| tc01-64B-1t1c-eth-l2bdbasemaclrn-oacl1-stateless-flows100-ndrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with ACL with\
-| | ... | 1 phy core, 1 receive queue per NIC port.
-| | ... | [Ver] Find NDR for 64 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 50kpps.
-| | ...
| | [Tags] | 64B | 1C | NDRDISC
-| | ...
-| | [Template] | Discover NDR or PDR for L2 Bridge Domain with ACLs
-| | wt=1 | rxq=1 | framesize=${64} | min_rate=${50000} | search_type=NDR
+| | phy_cores=${1} | framesize=${64} | search_type=NDR
| tc02-64B-1t1c-eth-l2bdbasemaclrn-oacl1-stateless-flows100-pdrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with ACL with\
-| | ... | 1 phy core, 1 receive queue per NIC port.
-| | ... | [Ver] Find PDR for 64 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 50kpps, LT=0.5%.
-| | ...
| | [Tags] | 64B | 1C | PDRDISC | SKIP_PATCH
-| | ...
-| | [Template] | Discover NDR or PDR for L2 Bridge Domain with ACLs
-| | wt=1 | rxq=1 | framesize=${64} | min_rate=${50000} | search_type=PDR
+| | phy_cores=${1} | framesize=${64} | search_type=PDR
| tc03-64B-2t2c-eth-l2bdbasemaclrn-oacl1-stateless-flows100-ndrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with ACL with\
-| | ... | 2 phy cores, 1 receive queue per NIC port.
-| | ... | [Ver] Find NDR for 64 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 50kpps.
-| | ...
| | [Tags] | 64B | 2C | NDRDISC
-| | ...
-| | [Template] | Discover NDR or PDR for L2 Bridge Domain with ACLs
-| | wt=2 | rxq=1 | framesize=${64} | min_rate=${50000} | search_type=NDR
+| | phy_cores=${2} | framesize=${64} | search_type=NDR
| tc04-64B-2t2c-eth-l2bdbasemaclrn-oacl1-stateless-flows100-pdrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with ACL with\
-| | ... | 2 phy cores, 1 receive queue per NIC port.
-| | ... | [Ver] Find PDR for 64 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 50kpps, LT=0.5%.
-| | ...
| | [Tags] | 64B | 2C | PDRDISC | SKIP_PATCH
-| | ...
-| | [Template] | Discover NDR or PDR for L2 Bridge Domain with ACLs
-| | wt=2 | rxq=1 | framesize=${64} | min_rate=${50000} | search_type=PDR
+| | phy_cores=${2} | framesize=${64} | search_type=PDR
| tc05-64B-4t4c-eth-l2bdbasemaclrn-oacl1-stateless-flows100-ndrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with ACL with\
-| | ... | 4 phy cores, 2 receive queues per NIC port.
-| | ... | [Ver] Find NDR for 64 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 50kpps.
-| | ...
| | [Tags] | 64B | 4C | NDRDISC
-| | ...
-| | [Template] | Discover NDR or PDR for L2 Bridge Domain with ACLs
-| | wt=4 | rxq=2 | framesize=${64} | min_rate=${50000} | search_type=NDR
+| | phy_cores=${4} | framesize=${64} | search_type=NDR
| tc06-64B-4t4c-eth-l2bdbasemaclrn-oacl1-stateless-flows100-pdrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with ACL with\
-| | ... | 4 phy cores, 2 receive queues per NIC port.
-| | ... | [Ver] Find PDR for 64 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 50kpps, LT=0.5%.
-| | ...
| | [Tags] | 64B | 4C | PDRDISC | SKIP_PATCH
-| | ...
-| | [Template] | Discover NDR or PDR for L2 Bridge Domain with ACLs
-| | wt=4 | rxq=2 | framesize=${64} | min_rate=${50000} | search_type=PDR
+| | phy_cores=${4} | framesize=${64} | search_type=PDR
diff --git a/tests/vpp/perf/l2/10ge2p1x520-eth-l2bdbasemaclrn-oacl1sl-100kflows-ndrpdrdisc.robot b/tests/vpp/perf/l2/10ge2p1x520-eth-l2bdbasemaclrn-oacl1sl-100kflows-ndrpdrdisc.robot
index 86af409aef..87a305668a 100644
--- a/tests/vpp/perf/l2/10ge2p1x520-eth-l2bdbasemaclrn-oacl1sl-100kflows-ndrpdrdisc.robot
+++ b/tests/vpp/perf/l2/10ge2p1x520-eth-l2bdbasemaclrn-oacl1sl-100kflows-ndrpdrdisc.robot
@@ -29,6 +29,8 @@
| Test Teardown | Tear down performance test with ACL
| ... | ${min_rate}pps | ${framesize} | ${traffic_profile}
| ...
+| Test Template | Local template
+| ...
| Documentation | *RFC2544: Packet throughput L2BD test cases with ACL*
| ...
| ... | *[Top] Network Topologies:* TG-DUT1-DUT2-TG 3-node circular topology\
@@ -73,15 +75,17 @@
| ${trex_stream2_subnet}= | 20.20.20.0/24
*** Keywords ***
-| Discover NDR or PDR for L2 Bridge Domain with ACLs
-| | [Arguments] | ${wt} | ${rxq} | ${framesize} | ${min_rate} | ${search_type}
+| Local template
+| | [Arguments] | ${phy_core} | ${framesize} | ${search_type}
+| | ... | ${min_rate}=${50000} | ${rxq}=${None}
+| | ...
| | Set Test Variable | ${framesize}
| | Set Test Variable | ${min_rate}
| | ${max_rate}= | Calculate pps | ${s_limit} | ${framesize}
| | ${binary_min}= | Set Variable | ${min_rate}
| | ${binary_max}= | Set Variable | ${max_rate}
| | ${threshold}= | Set Variable | ${min_rate}
-| | Given Add '${wt}' worker threads and '${rxq}' rxqueues in 3-node single-link circular topology
+| | Given Add worker threads and rxqueues to all DUTs | ${phy_cores} | ${rxq}
| | And Add PCI devices to all DUTs
| | ${get_framesize}= | Get Frame Size | ${framesize}
| | And Run Keyword If | ${get_framesize} < ${1522} | Add no multi seg to all DUTs
@@ -101,73 +105,25 @@
*** Test Cases ***
| tc01-64B-1t1c-eth-l2bdbasemaclrn-oacl1-stateless-flows100k-ndrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with ACL with\
-| | ... | 1 phy core, 1 receive queue per NIC port.
-| | ... | [Ver] Find NDR for 64 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 50kpps.
-| | ...
| | [Tags] | 64B | 1C | NDRDISC
-| | ...
-| | [Template] | Discover NDR or PDR for L2 Bridge Domain with ACLs
-| | wt=1 | rxq=1 | framesize=${64} | min_rate=${50000} | search_type=NDR
+| | phy_cores=${1} | framesize=${64} | search_type=NDR
| tc02-64B-1t1c-eth-l2bdbasemaclrn-oacl1-stateless-flows100k-pdrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with ACL with\
-| | ... | 1 phy core, 1 receive queue per NIC port.
-| | ... | [Ver] Find PDR for 64 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 50kpps, LT=0.5%.
-| | ...
| | [Tags] | 64B | 1C | PDRDISC | SKIP_PATCH
-| | ...
-| | [Template] | Discover NDR or PDR for L2 Bridge Domain with ACLs
-| | wt=1 | rxq=1 | framesize=${64} | min_rate=${50000} | search_type=PDR
+| | phy_cores=${1} | framesize=${64} | search_type=PDR
| tc03-64B-2t2c-eth-l2bdbasemaclrn-oacl1-stateless-flows100k-ndrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with ACL with\
-| | ... | 2 phy cores, 1 receive queue per NIC port.
-| | ... | [Ver] Find NDR for 64 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 50kpps.
-| | ...
| | [Tags] | 64B | 2C | NDRDISC
-| | ...
-| | [Template] | Discover NDR or PDR for L2 Bridge Domain with ACLs
-| | wt=2 | rxq=1 | framesize=${64} | min_rate=${50000} | search_type=NDR
+| | phy_cores=${2} | framesize=${64} | search_type=NDR
| tc04-64B-2t2c-eth-l2bdbasemaclrn-oacl1-stateless-flows100k-pdrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with ACL with\
-| | ... | 2 phy cores, 1 receive queue per NIC port.
-| | ... | [Ver] Find PDR for 64 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 50kpps, LT=0.5%.
-| | ...
| | [Tags] | 64B | 2C | PDRDISC | SKIP_PATCH
-| | ...
-| | [Template] | Discover NDR or PDR for L2 Bridge Domain with ACLs
-| | wt=2 | rxq=1 | framesize=${64} | min_rate=${50000} | search_type=PDR
+| | phy_cores=${2} | framesize=${64} | search_type=PDR
| tc05-64B-4t4c-eth-l2bdbasemaclrn-oacl1-stateless-flows100k-ndrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with ACL with\
-| | ... | 4 phy cores, 2 receive queues per NIC port.
-| | ... | [Ver] Find NDR for 64 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 50kpps.
-| | ...
| | [Tags] | 64B | 4C | NDRDISC
-| | ...
-| | [Template] | Discover NDR or PDR for L2 Bridge Domain with ACLs
-| | wt=4 | rxq=2 | framesize=${64} | min_rate=${50000} | search_type=NDR
+| | phy_cores=${4} | framesize=${64} | search_type=NDR
| tc06-64B-4t4c-eth-l2bdbasemaclrn-oacl1-stateless-flows100k-pdrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with ACL with\
-| | ... | 4 phy cores, 2 receive queues per NIC port.
-| | ... | [Ver] Find PDR for 64 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 50kpps, LT=0.5%.
-| | ...
| | [Tags] | 64B | 4C | PDRDISC | SKIP_PATCH
-| | ...
-| | [Template] | Discover NDR or PDR for L2 Bridge Domain with ACLs
-| | wt=4 | rxq=2 | framesize=${64} | min_rate=${50000} | search_type=PDR
+| | phy_cores=${4} | framesize=${64} | search_type=PDR
diff --git a/tests/vpp/perf/l2/10ge2p1x520-eth-l2bdbasemaclrn-oacl1sl-10kflows-ndrpdrdisc.robot b/tests/vpp/perf/l2/10ge2p1x520-eth-l2bdbasemaclrn-oacl1sl-10kflows-ndrpdrdisc.robot
index e3a6389bee..b6d8bb4cfe 100644
--- a/tests/vpp/perf/l2/10ge2p1x520-eth-l2bdbasemaclrn-oacl1sl-10kflows-ndrpdrdisc.robot
+++ b/tests/vpp/perf/l2/10ge2p1x520-eth-l2bdbasemaclrn-oacl1sl-10kflows-ndrpdrdisc.robot
@@ -29,6 +29,8 @@
| Test Teardown | Tear down performance test with ACL
| ... | ${min_rate}pps | ${framesize} | ${traffic_profile}
| ...
+| Test Template | Local template
+| ...
| Documentation | *RFC2544: Packet throughput L2BD test cases with ACL*
| ...
| ... | *[Top] Network Topologies:* TG-DUT1-DUT2-TG 3-node circular topology\
@@ -73,15 +75,17 @@
| ${trex_stream2_subnet}= | 20.20.20.0/24
*** Keywords ***
-| Discover NDR or PDR for L2 Bridge Domain with ACLs
-| | [Arguments] | ${wt} | ${rxq} | ${framesize} | ${min_rate} | ${search_type}
+| Local template
+| | [Arguments] | ${phy_core} | ${framesize} | ${search_type}
+| | ... | ${min_rate}=${50000} | ${rxq}=${None}
+| | ...
| | Set Test Variable | ${framesize}
| | Set Test Variable | ${min_rate}
| | ${max_rate}= | Calculate pps | ${s_limit} | ${framesize}
| | ${binary_min}= | Set Variable | ${min_rate}
| | ${binary_max}= | Set Variable | ${max_rate}
| | ${threshold}= | Set Variable | ${min_rate}
-| | Given Add '${wt}' worker threads and '${rxq}' rxqueues in 3-node single-link circular topology
+| | Given Add worker threads and rxqueues to all DUTs | ${phy_cores} | ${rxq}
| | And Add PCI devices to all DUTs
| | ${get_framesize}= | Get Frame Size | ${framesize}
| | And Run Keyword If | ${get_framesize} < ${1522} | Add no multi seg to all DUTs
@@ -101,73 +105,25 @@
*** Test Cases ***
| tc01-64B-1t1c-eth-l2bdbasemaclrn-oacl1-stateless-flows10k-ndrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with ACL with\
-| | ... | 1 phy core, 1 receive queue per NIC port.
-| | ... | [Ver] Find NDR for 64 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 50kpps.
-| | ...
| | [Tags] | 64B | 1C | NDRDISC
-| | ...
-| | [Template] | Discover NDR or PDR for L2 Bridge Domain with ACLs
-| | wt=1 | rxq=1 | framesize=${64} | min_rate=${50000} | search_type=NDR
+| | phy_cores=${1} | framesize=${64} | search_type=NDR
| tc02-64B-1t1c-eth-l2bdbasemaclrn-oacl1-stateless-flows10k-pdrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with ACL with\
-| | ... | 1 phy core, 1 receive queue per NIC port.
-| | ... | [Ver] Find PDR for 64 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 50kpps, LT=0.5%.
-| | ...
| | [Tags] | 64B | 1C | PDRDISC | SKIP_PATCH
-| | ...
-| | [Template] | Discover NDR or PDR for L2 Bridge Domain with ACLs
-| | wt=1 | rxq=1 | framesize=${64} | min_rate=${50000} | search_type=PDR
+| | phy_cores=${1} | framesize=${64} | search_type=PDR
| tc03-64B-2t2c-eth-l2bdbasemaclrn-oacl1-stateless-flows10k-ndrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with ACL with\
-| | ... | 2 phy cores, 1 receive queue per NIC port.
-| | ... | [Ver] Find NDR for 64 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 50kpps.
-| | ...
| | [Tags] | 64B | 2C | NDRDISC
-| | ...
-| | [Template] | Discover NDR or PDR for L2 Bridge Domain with ACLs
-| | wt=2 | rxq=1 | framesize=${64} | min_rate=${50000} | search_type=NDR
+| | phy_cores=${2} | framesize=${64} | search_type=NDR
| tc04-64B-2t2c-eth-l2bdbasemaclrn-oacl1-stateless-flows10k-pdrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with ACL with\
-| | ... | 2 phy cores, 1 receive queue per NIC port.
-| | ... | [Ver] Find PDR for 64 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 50kpps, LT=0.5%.
-| | ...
| | [Tags] | 64B | 2C | PDRDISC | SKIP_PATCH
-| | ...
-| | [Template] | Discover NDR or PDR for L2 Bridge Domain with ACLs
-| | wt=2 | rxq=1 | framesize=${64} | min_rate=${50000} | search_type=PDR
+| | phy_cores=${2} | framesize=${64} | search_type=PDR
| tc05-64B-4t4c-eth-l2bdbasemaclrn-oacl1-stateless-flows10k-ndrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with ACL with\
-| | ... | 4 phy cores, 2 receive queues per NIC port.
-| | ... | [Ver] Find NDR for 64 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 50kpps.
-| | ...
| | [Tags] | 64B | 4C | NDRDISC
-| | ...
-| | [Template] | Discover NDR or PDR for L2 Bridge Domain with ACLs
-| | wt=4 | rxq=2 | framesize=${64} | min_rate=${50000} | search_type=NDR
+| | phy_cores=${4} | framesize=${64} | search_type=NDR
| tc06-64B-4t4c-eth-l2bdbasemaclrn-oacl1-stateless-flows10k-pdrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with ACL with\
-| | ... | 4 phy cores, 2 receive queues per NIC port.
-| | ... | [Ver] Find PDR for 64 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 50kpps, LT=0.5%.
-| | ...
| | [Tags] | 64B | 4C | PDRDISC | SKIP_PATCH
-| | ...
-| | [Template] | Discover NDR or PDR for L2 Bridge Domain with ACLs
-| | wt=4 | rxq=2 | framesize=${64} | min_rate=${50000} | search_type=PDR
+| | phy_cores=${4} | framesize=${64} | search_type=PDR
diff --git a/tests/vpp/perf/l2/10ge2p1x520-eth-l2bdbasemaclrn-oacl50sf-100flows-ndrpdrdisc.robot b/tests/vpp/perf/l2/10ge2p1x520-eth-l2bdbasemaclrn-oacl50sf-100flows-ndrpdrdisc.robot
index e78adedf04..30df7bb1b3 100644
--- a/tests/vpp/perf/l2/10ge2p1x520-eth-l2bdbasemaclrn-oacl50sf-100flows-ndrpdrdisc.robot
+++ b/tests/vpp/perf/l2/10ge2p1x520-eth-l2bdbasemaclrn-oacl50sf-100flows-ndrpdrdisc.robot
@@ -29,6 +29,8 @@
| Test Teardown | Tear down performance test with ACL
| ... | ${min_rate}pps | ${framesize} | ${traffic_profile}
| ...
+| Test Template | Local template
+| ...
| Documentation | *RFC2544: Packet throughput L2BD test cases with ACL*
| ...
| ... | *[Top] Network Topologies:* TG-DUT1-DUT2-TG 3-node circular topology\
@@ -73,15 +75,17 @@
| ${trex_stream2_subnet}= | 20.20.20.0/24
*** Keywords ***
-| Discover NDR or PDR for L2 Bridge Domain with ACLs
-| | [Arguments] | ${wt} | ${rxq} | ${framesize} | ${min_rate} | ${search_type}
+| Local template
+| | [Arguments] | ${phy_core} | ${framesize} | ${search_type}
+| | ... | ${min_rate}=${50000} | ${rxq}=${None}
+| | ...
| | Set Test Variable | ${framesize}
| | Set Test Variable | ${min_rate}
| | ${max_rate}= | Calculate pps | ${s_limit} | ${framesize}
| | ${binary_min}= | Set Variable | ${min_rate}
| | ${binary_max}= | Set Variable | ${max_rate}
| | ${threshold}= | Set Variable | ${min_rate}
-| | Given Add '${wt}' worker threads and '${rxq}' rxqueues in 3-node single-link circular topology
+| | Given Add worker threads and rxqueues to all DUTs | ${phy_cores} | ${rxq}
| | And Add PCI devices to all DUTs
| | ${get_framesize}= | Get Frame Size | ${framesize}
| | And Run Keyword If | ${get_framesize} < ${1522} | Add no multi seg to all DUTs
@@ -101,73 +105,25 @@
*** Test Cases ***
| tc01-64B-1t1c-eth-l2bdbasemaclrn-oacl50-stateful-flows100-ndrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with ACL with\
-| | ... | 1 phy core, 1 receive queue per NIC port.
-| | ... | [Ver] Find NDR for 64 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 50kpps.
-| | ...
| | [Tags] | 64B | 1C | NDRDISC
-| | ...
-| | [Template] | Discover NDR or PDR for L2 Bridge Domain with ACLs
-| | wt=1 | rxq=1 | framesize=${64} | min_rate=${50000} | search_type=NDR
+| | phy_cores=${1} | framesize=${64} | search_type=NDR
| tc02-64B-1t1c-eth-l2bdbasemaclrn-oacl50-stateful-flows100-pdrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with ACL with\
-| | ... | 1 phy core, 1 receive queue per NIC port.
-| | ... | [Ver] Find PDR for 64 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 50kpps, LT=0.5%.
-| | ...
| | [Tags] | 64B | 1C | PDRDISC | SKIP_PATCH
-| | ...
-| | [Template] | Discover NDR or PDR for L2 Bridge Domain with ACLs
-| | wt=1 | rxq=1 | framesize=${64} | min_rate=${50000} | search_type=PDR
+| | phy_cores=${1} | framesize=${64} | search_type=PDR
| tc03-64B-2t2c-eth-l2bdbasemaclrn-oacl50-stateful-flows100-ndrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with ACL with\
-| | ... | 2 phy cores, 1 receive queue per NIC port.
-| | ... | [Ver] Find NDR for 64 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 50kpps.
-| | ...
| | [Tags] | 64B | 2C | NDRDISC
-| | ...
-| | [Template] | Discover NDR or PDR for L2 Bridge Domain with ACLs
-| | wt=2 | rxq=1 | framesize=${64} | min_rate=${50000} | search_type=NDR
+| | phy_cores=${2} | framesize=${64} | search_type=NDR
| tc04-64B-2t2c-eth-l2bdbasemaclrn-oacl50-stateful-flows100-pdrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with ACL with\
-| | ... | 2 phy cores, 1 receive queue per NIC port.
-| | ... | [Ver] Find PDR for 64 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 50kpps, LT=0.5%.
-| | ...
| | [Tags] | 64B | 2C | PDRDISC | SKIP_PATCH
-| | ...
-| | [Template] | Discover NDR or PDR for L2 Bridge Domain with ACLs
-| | wt=2 | rxq=1 | framesize=${64} | min_rate=${50000} | search_type=PDR
+| | phy_cores=${2} | framesize=${64} | search_type=PDR
| tc05-64B-4t4c-eth-l2bdbasemaclrn-oacl50-stateful-flows100-ndrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with ACL with\
-| | ... | 4 phy cores, 2 receive queues per NIC port.
-| | ... | [Ver] Find NDR for 64 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 50kpps.
-| | ...
| | [Tags] | 64B | 4C | NDRDISC
-| | ...
-| | [Template] | Discover NDR or PDR for L2 Bridge Domain with ACLs
-| | wt=4 | rxq=2 | framesize=${64} | min_rate=${50000} | search_type=NDR
+| | phy_cores=${4} | framesize=${64} | search_type=NDR
| tc06-64B-4t4c-eth-l2bdbasemaclrn-oacl50-stateful-flows100-pdrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with ACL with\
-| | ... | 4 phy cores, 2 receive queues per NIC port.
-| | ... | [Ver] Find PDR for 64 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 50kpps, LT=0.5%.
-| | ...
| | [Tags] | 64B | 4C | PDRDISC | SKIP_PATCH
-| | ...
-| | [Template] | Discover NDR or PDR for L2 Bridge Domain with ACLs
-| | wt=4 | rxq=2 | framesize=${64} | min_rate=${50000} | search_type=PDR
+| | phy_cores=${4} | framesize=${64} | search_type=PDR
diff --git a/tests/vpp/perf/l2/10ge2p1x520-eth-l2bdbasemaclrn-oacl50sf-100kflows-ndrpdrdisc.robot b/tests/vpp/perf/l2/10ge2p1x520-eth-l2bdbasemaclrn-oacl50sf-100kflows-ndrpdrdisc.robot
index 05680ec38c..7ddaeda869 100644
--- a/tests/vpp/perf/l2/10ge2p1x520-eth-l2bdbasemaclrn-oacl50sf-100kflows-ndrpdrdisc.robot
+++ b/tests/vpp/perf/l2/10ge2p1x520-eth-l2bdbasemaclrn-oacl50sf-100kflows-ndrpdrdisc.robot
@@ -29,6 +29,8 @@
| Test Teardown | Tear down performance test with ACL
| ... | ${min_rate}pps | ${framesize} | ${traffic_profile}
| ...
+| Test Template | Local template
+| ...
| Documentation | *RFC2544: Packet throughput L2BD test cases with ACL*
| ...
| ... | *[Top] Network Topologies:* TG-DUT1-DUT2-TG 3-node circular topology\
@@ -73,15 +75,17 @@
| ${trex_stream2_subnet}= | 20.20.20.0/24
*** Keywords ***
-| Discover NDR or PDR for L2 Bridge Domain with ACLs
-| | [Arguments] | ${wt} | ${rxq} | ${framesize} | ${min_rate} | ${search_type}
+| Local template
+| | [Arguments] | ${phy_core} | ${framesize} | ${search_type}
+| | ... | ${min_rate}=${50000} | ${rxq}=${None}
+| | ...
| | Set Test Variable | ${framesize}
| | Set Test Variable | ${min_rate}
| | ${max_rate}= | Calculate pps | ${s_limit} | ${framesize}
| | ${binary_min}= | Set Variable | ${min_rate}
| | ${binary_max}= | Set Variable | ${max_rate}
| | ${threshold}= | Set Variable | ${min_rate}
-| | Given Add '${wt}' worker threads and '${rxq}' rxqueues in 3-node single-link circular topology
+| | Given Add worker threads and rxqueues to all DUTs | ${phy_cores} | ${rxq}
| | And Add PCI devices to all DUTs
| | ${get_framesize}= | Get Frame Size | ${framesize}
| | And Run Keyword If | ${get_framesize} < ${1522} | Add no multi seg to all DUTs
@@ -101,73 +105,25 @@
*** Test Cases ***
| tc01-64B-1t1c-eth-l2bdbasemaclrn-oacl50-stateful-flows100k-ndrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with ACL with\
-| | ... | 1 phy core, 1 receive queue per NIC port.
-| | ... | [Ver] Find NDR for 64 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 50kpps.
-| | ...
| | [Tags] | 64B | 1C | NDRDISC
-| | ...
-| | [Template] | Discover NDR or PDR for L2 Bridge Domain with ACLs
-| | wt=1 | rxq=1 | framesize=${64} | min_rate=${50000} | search_type=NDR
+| | phy_cores=${1} | framesize=${64} | search_type=NDR
| tc02-64B-1t1c-eth-l2bdbasemaclrn-oacl50-stateful-flows100k-pdrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with ACL with\
-| | ... | 1 phy core, 1 receive queue per NIC port.
-| | ... | [Ver] Find PDR for 64 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 50kpps, LT=0.5%.
-| | ...
| | [Tags] | 64B | 1C | PDRDISC | SKIP_PATCH
-| | ...
-| | [Template] | Discover NDR or PDR for L2 Bridge Domain with ACLs
-| | wt=1 | rxq=1 | framesize=${64} | min_rate=${50000} | search_type=PDR
+| | phy_cores=${1} | framesize=${64} | search_type=PDR
| tc03-64B-2t2c-eth-l2bdbasemaclrn-oacl50-stateful-flows100k-ndrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with ACL with\
-| | ... | 2 phy cores, 1 receive queue per NIC port.
-| | ... | [Ver] Find NDR for 64 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 50kpps.
-| | ...
| | [Tags] | 64B | 2C | NDRDISC
-| | ...
-| | [Template] | Discover NDR or PDR for L2 Bridge Domain with ACLs
-| | wt=2 | rxq=1 | framesize=${64} | min_rate=${50000} | search_type=NDR
+| | phy_cores=${2} | framesize=${64} | search_type=NDR
| tc04-64B-2t2c-eth-l2bdbasemaclrn-oacl50-stateful-flows100k-pdrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with ACL with\
-| | ... | 2 phy cores, 1 receive queue per NIC port.
-| | ... | [Ver] Find PDR for 64 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 50kpps, LT=0.5%.
-| | ...
| | [Tags] | 64B | 2C | PDRDISC | SKIP_PATCH
-| | ...
-| | [Template] | Discover NDR or PDR for L2 Bridge Domain with ACLs
-| | wt=2 | rxq=1 | framesize=${64} | min_rate=${50000} | search_type=PDR
+| | phy_cores=${2} | framesize=${64} | search_type=PDR
| tc05-64B-4t4c-eth-l2bdbasemaclrn-oacl50-stateful-flows100k-ndrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with ACL with\
-| | ... | 4 phy cores, 2 receive queues per NIC port.
-| | ... | [Ver] Find NDR for 64 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 50kpps.
-| | ...
| | [Tags] | 64B | 4C | NDRDISC
-| | ...
-| | [Template] | Discover NDR or PDR for L2 Bridge Domain with ACLs
-| | wt=4 | rxq=2 | framesize=${64} | min_rate=${50000} | search_type=NDR
+| | phy_cores=${4} | framesize=${64} | search_type=NDR
| tc06-64B-4t4c-eth-l2bdbasemaclrn-oacl50-stateful-flows100k-pdrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with ACL with\
-| | ... | 4 phy cores, 2 receive queues per NIC port.
-| | ... | [Ver] Find PDR for 64 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 50kpps, LT=0.5%.
-| | ...
| | [Tags] | 64B | 4C | PDRDISC | SKIP_PATCH
-| | ...
-| | [Template] | Discover NDR or PDR for L2 Bridge Domain with ACLs
-| | wt=4 | rxq=2 | framesize=${64} | min_rate=${50000} | search_type=PDR
+| | phy_cores=${4} | framesize=${64} | search_type=PDR
diff --git a/tests/vpp/perf/l2/10ge2p1x520-eth-l2bdbasemaclrn-oacl50sf-10kflows-ndrpdrdisc.robot b/tests/vpp/perf/l2/10ge2p1x520-eth-l2bdbasemaclrn-oacl50sf-10kflows-ndrpdrdisc.robot
index a4633d4d96..67b30080f6 100644
--- a/tests/vpp/perf/l2/10ge2p1x520-eth-l2bdbasemaclrn-oacl50sf-10kflows-ndrpdrdisc.robot
+++ b/tests/vpp/perf/l2/10ge2p1x520-eth-l2bdbasemaclrn-oacl50sf-10kflows-ndrpdrdisc.robot
@@ -29,6 +29,8 @@
| Test Teardown | Tear down performance test with ACL
| ... | ${min_rate}pps | ${framesize} | ${traffic_profile}
| ...
+| Test Template | Local template
+| ...
| Documentation | *RFC2544: Packet throughput L2BD test cases with ACL*
| ...
| ... | *[Top] Network Topologies:* TG-DUT1-DUT2-TG 3-node circular topology\
@@ -73,15 +75,17 @@
| ${trex_stream2_subnet}= | 20.20.20.0/24
*** Keywords ***
-| Discover NDR or PDR for L2 Bridge Domain with ACLs
-| | [Arguments] | ${wt} | ${rxq} | ${framesize} | ${min_rate} | ${search_type}
+| Local template
+| | [Arguments] | ${phy_core} | ${framesize} | ${search_type}
+| | ... | ${min_rate}=${50000} | ${rxq}=${None}
+| | ...
| | Set Test Variable | ${framesize}
| | Set Test Variable | ${min_rate}
| | ${max_rate}= | Calculate pps | ${s_limit} | ${framesize}
| | ${binary_min}= | Set Variable | ${min_rate}
| | ${binary_max}= | Set Variable | ${max_rate}
| | ${threshold}= | Set Variable | ${min_rate}
-| | Given Add '${wt}' worker threads and '${rxq}' rxqueues in 3-node single-link circular topology
+| | Given Add worker threads and rxqueues to all DUTs | ${phy_cores} | ${rxq}
| | And Add PCI devices to all DUTs
| | ${get_framesize}= | Get Frame Size | ${framesize}
| | And Run Keyword If | ${get_framesize} < ${1522} | Add no multi seg to all DUTs
@@ -101,73 +105,25 @@
*** Test Cases ***
| tc01-64B-1t1c-eth-l2bdbasemaclrn-oacl50-stateful-flows10k-ndrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with ACL with\
-| | ... | 1 phy core, 1 receive queue per NIC port.
-| | ... | [Ver] Find NDR for 64 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 50kpps.
-| | ...
| | [Tags] | 64B | 1C | NDRDISC
-| | ...
-| | [Template] | Discover NDR or PDR for L2 Bridge Domain with ACLs
-| | wt=1 | rxq=1 | framesize=${64} | min_rate=${50000} | search_type=NDR
+| | phy_cores=${1} | framesize=${64} | search_type=NDR
| tc02-64B-1t1c-eth-l2bdbasemaclrn-oacl50-stateful-flows10k-pdrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with ACL with\
-| | ... | 1 phy core, 1 receive queue per NIC port.
-| | ... | [Ver] Find PDR for 64 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 50kpps, LT=0.5%.
-| | ...
| | [Tags] | 64B | 1C | PDRDISC | SKIP_PATCH
-| | ...
-| | [Template] | Discover NDR or PDR for L2 Bridge Domain with ACLs
-| | wt=1 | rxq=1 | framesize=${64} | min_rate=${50000} | search_type=PDR
+| | phy_cores=${1} | framesize=${64} | search_type=PDR
| tc03-64B-2t2c-eth-l2bdbasemaclrn-oacl50-stateful-flows10k-ndrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with ACL with\
-| | ... | 2 phy cores, 1 receive queue per NIC port.
-| | ... | [Ver] Find NDR for 64 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 50kpps.
-| | ...
| | [Tags] | 64B | 2C | NDRDISC
-| | ...
-| | [Template] | Discover NDR or PDR for L2 Bridge Domain with ACLs
-| | wt=2 | rxq=1 | framesize=${64} | min_rate=${50000} | search_type=NDR
+| | phy_cores=${2} | framesize=${64} | search_type=NDR
| tc04-64B-2t2c-eth-l2bdbasemaclrn-oacl50-stateful-flows10k-pdrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with ACL with\
-| | ... | 2 phy cores, 1 receive queue per NIC port.
-| | ... | [Ver] Find PDR for 64 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 50kpps, LT=0.5%.
-| | ...
| | [Tags] | 64B | 2C | PDRDISC | SKIP_PATCH
-| | ...
-| | [Template] | Discover NDR or PDR for L2 Bridge Domain with ACLs
-| | wt=2 | rxq=1 | framesize=${64} | min_rate=${50000} | search_type=PDR
+| | phy_cores=${2} | framesize=${64} | search_type=PDR
| tc05-64B-4t4c-eth-l2bdbasemaclrn-oacl50-stateful-flows10k-ndrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with ACL with\
-| | ... | 4 phy cores, 2 receive queues per NIC port.
-| | ... | [Ver] Find NDR for 64 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 50kpps.
-| | ...
| | [Tags] | 64B | 4C | NDRDISC
-| | ...
-| | [Template] | Discover NDR or PDR for L2 Bridge Domain with ACLs
-| | wt=4 | rxq=2 | framesize=${64} | min_rate=${50000} | search_type=NDR
+| | phy_cores=${4} | framesize=${64} | search_type=NDR
| tc06-64B-4t4c-eth-l2bdbasemaclrn-oacl50-stateful-flows10k-pdrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with ACL with\
-| | ... | 4 phy cores, 2 receive queues per NIC port.
-| | ... | [Ver] Find PDR for 64 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 50kpps, LT=0.5%.
-| | ...
| | [Tags] | 64B | 4C | PDRDISC | SKIP_PATCH
-| | ...
-| | [Template] | Discover NDR or PDR for L2 Bridge Domain with ACLs
-| | wt=4 | rxq=2 | framesize=${64} | min_rate=${50000} | search_type=PDR
+| | phy_cores=${4} | framesize=${64} | search_type=PDR
diff --git a/tests/vpp/perf/l2/10ge2p1x520-eth-l2bdbasemaclrn-oacl50sl-100flows-ndrpdrdisc.robot b/tests/vpp/perf/l2/10ge2p1x520-eth-l2bdbasemaclrn-oacl50sl-100flows-ndrpdrdisc.robot
index 757926180d..0c014e101e 100644
--- a/tests/vpp/perf/l2/10ge2p1x520-eth-l2bdbasemaclrn-oacl50sl-100flows-ndrpdrdisc.robot
+++ b/tests/vpp/perf/l2/10ge2p1x520-eth-l2bdbasemaclrn-oacl50sl-100flows-ndrpdrdisc.robot
@@ -29,6 +29,8 @@
| Test Teardown | Tear down performance test with ACL
| ... | ${min_rate}pps | ${framesize} | ${traffic_profile}
| ...
+| Test Template | Local template
+| ...
| Documentation | *RFC2544: Packet throughput L2BD test cases with ACL*
| ...
| ... | *[Top] Network Topologies:* TG-DUT1-DUT2-TG 3-node circular topology\
@@ -73,15 +75,17 @@
| ${trex_stream2_subnet}= | 20.20.20.0/24
*** Keywords ***
-| Discover NDR or PDR for L2 Bridge Domain with ACLs
-| | [Arguments] | ${wt} | ${rxq} | ${framesize} | ${min_rate} | ${search_type}
+| Local template
+| | [Arguments] | ${phy_core} | ${framesize} | ${search_type}
+| | ... | ${min_rate}=${50000} | ${rxq}=${None}
+| | ...
| | Set Test Variable | ${framesize}
| | Set Test Variable | ${min_rate}
| | ${max_rate}= | Calculate pps | ${s_limit} | ${framesize}
| | ${binary_min}= | Set Variable | ${min_rate}
| | ${binary_max}= | Set Variable | ${max_rate}
| | ${threshold}= | Set Variable | ${min_rate}
-| | Given Add '${wt}' worker threads and '${rxq}' rxqueues in 3-node single-link circular topology
+| | Given Add worker threads and rxqueues to all DUTs | ${phy_cores} | ${rxq}
| | And Add PCI devices to all DUTs
| | ${get_framesize}= | Get Frame Size | ${framesize}
| | And Run Keyword If | ${get_framesize} < ${1522} | Add no multi seg to all DUTs
@@ -101,73 +105,25 @@
*** Test Cases ***
| tc01-64B-1t1c-eth-l2bdbasemaclrn-oacl50-stateless-flows100-ndrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with ACL with\
-| | ... | 1 phy core, 1 receive queue per NIC port.
-| | ... | [Ver] Find NDR for 64 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 50kpps.
-| | ...
| | [Tags] | 64B | 1C | NDRDISC
-| | ...
-| | [Template] | Discover NDR or PDR for L2 Bridge Domain with ACLs
-| | wt=1 | rxq=1 | framesize=${64} | min_rate=${50000} | search_type=NDR
+| | phy_cores=${1} | framesize=${64} | search_type=NDR
| tc02-64B-1t1c-eth-l2bdbasemaclrn-oacl50-stateless-flows100-pdrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with ACL with\
-| | ... | 1 phy core, 1 receive queue per NIC port.
-| | ... | [Ver] Find PDR for 64 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 50kpps, LT=0.5%.
-| | ...
| | [Tags] | 64B | 1C | PDRDISC | SKIP_PATCH
-| | ...
-| | [Template] | Discover NDR or PDR for L2 Bridge Domain with ACLs
-| | wt=1 | rxq=1 | framesize=${64} | min_rate=${50000} | search_type=PDR
+| | phy_cores=${1} | framesize=${64} | search_type=PDR
| tc03-64B-2t2c-eth-l2bdbasemaclrn-oacl50-stateless-flows100-ndrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with ACL with\
-| | ... | 2 phy cores, 1 receive queue per NIC port.
-| | ... | [Ver] Find NDR for 64 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 50kpps.
-| | ...
| | [Tags] | 64B | 2C | NDRDISC
-| | ...
-| | [Template] | Discover NDR or PDR for L2 Bridge Domain with ACLs
-| | wt=2 | rxq=1 | framesize=${64} | min_rate=${50000} | search_type=NDR
+| | phy_cores=${2} | framesize=${64} | search_type=NDR
| tc04-64B-2t2c-eth-l2bdbasemaclrn-oacl50-stateless-flows100-pdrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with ACL with\
-| | ... | 2 phy cores, 1 receive queue per NIC port.
-| | ... | [Ver] Find PDR for 64 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 50kpps, LT=0.5%.
-| | ...
| | [Tags] | 64B | 2C | PDRDISC | SKIP_PATCH
-| | ...
-| | [Template] | Discover NDR or PDR for L2 Bridge Domain with ACLs
-| | wt=2 | rxq=1 | framesize=${64} | min_rate=${50000} | search_type=PDR
+| | phy_cores=${2} | framesize=${64} | search_type=PDR
| tc05-64B-4t4c-eth-l2bdbasemaclrn-oacl50-stateless-flows100-ndrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with ACL with\
-| | ... | 4 phy cores, 2 receive queues per NIC port.
-| | ... | [Ver] Find NDR for 64 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 50kpps.
-| | ...
| | [Tags] | 64B | 4C | NDRDISC
-| | ...
-| | [Template] | Discover NDR or PDR for L2 Bridge Domain with ACLs
-| | wt=4 | rxq=2 | framesize=${64} | min_rate=${50000} | search_type=NDR
+| | phy_cores=${4} | framesize=${64} | search_type=NDR
| tc06-64B-4t4c-eth-l2bdbasemaclrn-oacl50-stateless-flows100-pdrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with ACL with\
-| | ... | 4 phy cores, 2 receive queues per NIC port.
-| | ... | [Ver] Find PDR for 64 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 50kpps, LT=0.5%.
-| | ...
| | [Tags] | 64B | 4C | PDRDISC | SKIP_PATCH
-| | ...
-| | [Template] | Discover NDR or PDR for L2 Bridge Domain with ACLs
-| | wt=4 | rxq=2 | framesize=${64} | min_rate=${50000} | search_type=PDR
+| | phy_cores=${4} | framesize=${64} | search_type=PDR
diff --git a/tests/vpp/perf/l2/10ge2p1x520-eth-l2bdbasemaclrn-oacl50sl-100kflows-ndrpdrdisc.robot b/tests/vpp/perf/l2/10ge2p1x520-eth-l2bdbasemaclrn-oacl50sl-100kflows-ndrpdrdisc.robot
index 9ce643f048..c154336be7 100644
--- a/tests/vpp/perf/l2/10ge2p1x520-eth-l2bdbasemaclrn-oacl50sl-100kflows-ndrpdrdisc.robot
+++ b/tests/vpp/perf/l2/10ge2p1x520-eth-l2bdbasemaclrn-oacl50sl-100kflows-ndrpdrdisc.robot
@@ -29,6 +29,8 @@
| Test Teardown | Tear down performance test with ACL
| ... | ${min_rate}pps | ${framesize} | ${traffic_profile}
| ...
+| Test Template | Local template
+| ...
| Documentation | *RFC2544: Packet throughput L2BD test cases with ACL*
| ...
| ... | *[Top] Network Topologies:* TG-DUT1-DUT2-TG 3-node circular topology\
@@ -73,15 +75,17 @@
| ${trex_stream2_subnet}= | 20.20.20.0/24
*** Keywords ***
-| Discover NDR or PDR for L2 Bridge Domain with ACLs
-| | [Arguments] | ${wt} | ${rxq} | ${framesize} | ${min_rate} | ${search_type}
+| Local template
+| | [Arguments] | ${phy_core} | ${framesize} | ${search_type}
+| | ... | ${min_rate}=${50000} | ${rxq}=${None}
+| | ...
| | Set Test Variable | ${framesize}
| | Set Test Variable | ${min_rate}
| | ${max_rate}= | Calculate pps | ${s_limit} | ${framesize}
| | ${binary_min}= | Set Variable | ${min_rate}
| | ${binary_max}= | Set Variable | ${max_rate}
| | ${threshold}= | Set Variable | ${min_rate}
-| | Given Add '${wt}' worker threads and '${rxq}' rxqueues in 3-node single-link circular topology
+| | Given Add worker threads and rxqueues to all DUTs | ${phy_cores} | ${rxq}
| | And Add PCI devices to all DUTs
| | ${get_framesize}= | Get Frame Size | ${framesize}
| | And Run Keyword If | ${get_framesize} < ${1522} | Add no multi seg to all DUTs
@@ -101,73 +105,25 @@
*** Test Cases ***
| tc01-64B-1t1c-eth-l2bdbasemaclrn-oacl50-stateless-flows100k-ndrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with ACL with\
-| | ... | 1 phy core, 1 receive queue per NIC port.
-| | ... | [Ver] Find NDR for 64 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 50kpps.
-| | ...
| | [Tags] | 64B | 1C | NDRDISC
-| | ...
-| | [Template] | Discover NDR or PDR for L2 Bridge Domain with ACLs
-| | wt=1 | rxq=1 | framesize=${64} | min_rate=${50000} | search_type=NDR
+| | phy_cores=${1} | framesize=${64} | search_type=NDR
| tc02-64B-1t1c-eth-l2bdbasemaclrn-oacl50-stateless-flows100k-pdrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with ACL with\
-| | ... | 1 phy core, 1 receive queue per NIC port.
-| | ... | [Ver] Find PDR for 64 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 50kpps, LT=0.5%.
-| | ...
| | [Tags] | 64B | 1C | PDRDISC | SKIP_PATCH
-| | ...
-| | [Template] | Discover NDR or PDR for L2 Bridge Domain with ACLs
-| | wt=1 | rxq=1 | framesize=${64} | min_rate=${50000} | search_type=PDR
+| | phy_cores=${1} | framesize=${64} | search_type=PDR
| tc03-64B-2t2c-eth-l2bdbasemaclrn-oacl50-stateless-flows100k-ndrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with ACL with\
-| | ... | 2 phy cores, 1 receive queue per NIC port.
-| | ... | [Ver] Find NDR for 64 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 50kpps.
-| | ...
| | [Tags] | 64B | 2C | NDRDISC
-| | ...
-| | [Template] | Discover NDR or PDR for L2 Bridge Domain with ACLs
-| | wt=2 | rxq=1 | framesize=${64} | min_rate=${50000} | search_type=NDR
+| | phy_cores=${2} | framesize=${64} | search_type=NDR
| tc04-64B-2t2c-eth-l2bdbasemaclrn-oacl50-stateless-flows100k-pdrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with ACL with\
-| | ... | 2 phy cores, 1 receive queue per NIC port.
-| | ... | [Ver] Find PDR for 64 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 50kpps, LT=0.5%.
-| | ...
| | [Tags] | 64B | 2C | PDRDISC | SKIP_PATCH
-| | ...
-| | [Template] | Discover NDR or PDR for L2 Bridge Domain with ACLs
-| | wt=2 | rxq=1 | framesize=${64} | min_rate=${50000} | search_type=PDR
+| | phy_cores=${2} | framesize=${64} | search_type=PDR
| tc05-64B-4t4c-eth-l2bdbasemaclrn-oacl50-stateless-flows100k-ndrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with ACL with\
-| | ... | 4 phy cores, 2 receive queues per NIC port.
-| | ... | [Ver] Find NDR for 64 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 50kpps.
-| | ...
| | [Tags] | 64B | 4C | NDRDISC
-| | ...
-| | [Template] | Discover NDR or PDR for L2 Bridge Domain with ACLs
-| | wt=4 | rxq=2 | framesize=${64} | min_rate=${50000} | search_type=NDR
+| | phy_cores=${4} | framesize=${64} | search_type=NDR
| tc06-64B-4t4c-eth-l2bdbasemaclrn-oacl50-stateless-flows100k-pdrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with ACL with\
-| | ... | 4 phy cores, 2 receive queues per NIC port.
-| | ... | [Ver] Find PDR for 64 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 50kpps, LT=0.5%.
-| | ...
| | [Tags] | 64B | 4C | PDRDISC | SKIP_PATCH
-| | ...
-| | [Template] | Discover NDR or PDR for L2 Bridge Domain with ACLs
-| | wt=4 | rxq=2 | framesize=${64} | min_rate=${50000} | search_type=PDR
+| | phy_cores=${4} | framesize=${64} | search_type=PDR
diff --git a/tests/vpp/perf/l2/10ge2p1x520-eth-l2bdbasemaclrn-oacl50sl-10kflows-ndrpdrdisc.robot b/tests/vpp/perf/l2/10ge2p1x520-eth-l2bdbasemaclrn-oacl50sl-10kflows-ndrpdrdisc.robot
index 6784b8189c..dda30a970a 100644
--- a/tests/vpp/perf/l2/10ge2p1x520-eth-l2bdbasemaclrn-oacl50sl-10kflows-ndrpdrdisc.robot
+++ b/tests/vpp/perf/l2/10ge2p1x520-eth-l2bdbasemaclrn-oacl50sl-10kflows-ndrpdrdisc.robot
@@ -29,6 +29,8 @@
| Test Teardown | Tear down performance test with ACL
| ... | ${min_rate}pps | ${framesize} | ${traffic_profile}
| ...
+| Test Template | Local template
+| ...
| Documentation | *RFC2544: Packet throughput L2BD test cases with ACL*
| ...
| ... | *[Top] Network Topologies:* TG-DUT1-DUT2-TG 3-node circular topology\
@@ -73,15 +75,17 @@
| ${trex_stream2_subnet}= | 20.20.20.0/24
*** Keywords ***
-| Discover NDR or PDR for L2 Bridge Domain with ACLs
-| | [Arguments] | ${wt} | ${rxq} | ${framesize} | ${min_rate} | ${search_type}
+| Local template
+| | [Arguments] | ${phy_core} | ${framesize} | ${search_type}
+| | ... | ${min_rate}=${50000} | ${rxq}=${None}
+| | ...
| | Set Test Variable | ${framesize}
| | Set Test Variable | ${min_rate}
| | ${max_rate}= | Calculate pps | ${s_limit} | ${framesize}
| | ${binary_min}= | Set Variable | ${min_rate}
| | ${binary_max}= | Set Variable | ${max_rate}
| | ${threshold}= | Set Variable | ${min_rate}
-| | Given Add '${wt}' worker threads and '${rxq}' rxqueues in 3-node single-link circular topology
+| | Given Add worker threads and rxqueues to all DUTs | ${phy_cores} | ${rxq}
| | And Add PCI devices to all DUTs
| | ${get_framesize}= | Get Frame Size | ${framesize}
| | And Run Keyword If | ${get_framesize} < ${1522} | Add no multi seg to all DUTs
@@ -101,73 +105,25 @@
*** Test Cases ***
| tc01-64B-1t1c-eth-l2bdbasemaclrn-oacl50-stateless-flows10k-ndrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with ACL with\
-| | ... | 1 phy core, 1 receive queue per NIC port.
-| | ... | [Ver] Find NDR for 64 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 50kpps.
-| | ...
| | [Tags] | 64B | 1C | NDRDISC
-| | ...
-| | [Template] | Discover NDR or PDR for L2 Bridge Domain with ACLs
-| | wt=1 | rxq=1 | framesize=${64} | min_rate=${50000} | search_type=NDR
+| | phy_cores=${1} | framesize=${64} | search_type=NDR
| tc02-64B-1t1c-eth-l2bdbasemaclrn-oacl50-stateless-flows10k-pdrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with ACL with\
-| | ... | 1 phy core, 1 receive queue per NIC port.
-| | ... | [Ver] Find PDR for 64 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 50kpps, LT=0.5%.
-| | ...
| | [Tags] | 64B | 1C | PDRDISC | SKIP_PATCH
-| | ...
-| | [Template] | Discover NDR or PDR for L2 Bridge Domain with ACLs
-| | wt=1 | rxq=1 | framesize=${64} | min_rate=${50000} | search_type=PDR
+| | phy_cores=${1} | framesize=${64} | search_type=PDR
| tc03-64B-2t2c-eth-l2bdbasemaclrn-oacl50-stateless-flows10k-ndrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with ACL with\
-| | ... | 2 phy cores, 1 receive queue per NIC port.
-| | ... | [Ver] Find NDR for 64 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 50kpps.
-| | ...
| | [Tags] | 64B | 2C | NDRDISC
-| | ...
-| | [Template] | Discover NDR or PDR for L2 Bridge Domain with ACLs
-| | wt=2 | rxq=1 | framesize=${64} | min_rate=${50000} | search_type=NDR
+| | phy_cores=${2} | framesize=${64} | search_type=NDR
| tc04-64B-2t2c-eth-l2bdbasemaclrn-oacl50-stateless-flows10k-pdrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with ACL with\
-| | ... | 2 phy cores, 1 receive queue per NIC port.
-| | ... | [Ver] Find PDR for 64 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 50kpps, LT=0.5%.
-| | ...
| | [Tags] | 64B | 2C | PDRDISC | SKIP_PATCH
-| | ...
-| | [Template] | Discover NDR or PDR for L2 Bridge Domain with ACLs
-| | wt=2 | rxq=1 | framesize=${64} | min_rate=${50000} | search_type=PDR
+| | phy_cores=${2} | framesize=${64} | search_type=PDR
| tc05-64B-4t4c-eth-l2bdbasemaclrn-oacl50-stateless-flows10k-ndrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with ACL with\
-| | ... | 4 phy cores, 2 receive queues per NIC port.
-| | ... | [Ver] Find NDR for 64 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 50kpps.
-| | ...
| | [Tags] | 64B | 4C | NDRDISC
-| | ...
-| | [Template] | Discover NDR or PDR for L2 Bridge Domain with ACLs
-| | wt=4 | rxq=2 | framesize=${64} | min_rate=${50000} | search_type=NDR
+| | phy_cores=${4} | framesize=${64} | search_type=NDR
| tc06-64B-4t4c-eth-l2bdbasemaclrn-oacl50-stateless-flows10k-pdrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with ACL with\
-| | ... | 4 phy cores, 2 receive queues per NIC port.
-| | ... | [Ver] Find PDR for 64 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 50kpps, LT=0.5%.
-| | ...
| | [Tags] | 64B | 4C | PDRDISC | SKIP_PATCH
-| | ...
-| | [Template] | Discover NDR or PDR for L2 Bridge Domain with ACLs
-| | wt=4 | rxq=2 | framesize=${64} | min_rate=${50000} | search_type=PDR
+| | phy_cores=${4} | framesize=${64} | search_type=PDR
diff --git a/tests/vpp/perf/l2/10ge2p1x520-eth-l2bdscale100kmaclrn-mrr.robot b/tests/vpp/perf/l2/10ge2p1x520-eth-l2bdscale100kmaclrn-mrr.robot
index ab3ec3aa4f..3cf98c0856 100644
--- a/tests/vpp/perf/l2/10ge2p1x520-eth-l2bdscale100kmaclrn-mrr.robot
+++ b/tests/vpp/perf/l2/10ge2p1x520-eth-l2bdscale100kmaclrn-mrr.robot
@@ -25,6 +25,8 @@
| ...
| Test Teardown | Tear down performance mrr test
| ...
+| Test Template | Local template
+| ...
| Documentation | *Raw results for L2BD test cases*
| ...
| ... | *[Top] Network Topologies:* TG-DUT1-DUT2-TG 3-node circular topology\
@@ -53,15 +55,26 @@
| ${traffic_profile} | trex-sl-3n-ethip4-macsrc50kdst50k
*** Keywords ***
-| Check RR for L2BD eth-l2bdscale
-| | [Arguments] | ${framesize} | ${wt} | ${rxq}
+| Local template
+| | [Documentation]
+| | ... | [CFG] DUT runs L2BD switching config with ${phy_cores} phy
+| | ... | core(s).
+| | ... | [Ver] Measure MaxReceivedRate for ${framesize}B frames using single\
+| | ... | trial throughput test.
+| | ...
+| | ... | *Arguments:*
+| | ... | - framesize - Framesize in Bytes in integer or string (IMIX_v4_1).
+| | ... | Type: integer, string
+| | ... | - phy_cores - Number of physical cores. Type: integer
+| | ... | - rxq - Number of RX queues, default value: ${None}. Type: integer
+| | ...
+| | [Arguments] | ${framesize} | ${phy_cores} | ${rxq}=${None}
| | ...
-| | # Test Variables required for test teardown
| | Set Test Variable | ${framesize}
| | ${get_framesize}= | Get Frame Size | ${framesize}
| | ${max_rate}= | Calculate pps | ${s_limit} | ${get_framesize}
| | ...
-| | Given Add '${wt}' worker threads and '${rxq}' rxqueues in 3-node single-link circular topology
+| | Given Add worker threads and rxqueues to all DUTs | ${phy_cores} | ${rxq}
| | And Add PCI devices to all DUTs
| | And Run Keyword If | ${get_framesize} < ${1522}
| | ... | Add no multi seg to all DUTs
@@ -72,148 +85,49 @@
*** Test Cases ***
| tc01-64B-1t1c-eth-l2bdscale100kmaclrn-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with with\
-| | ... | 1 phy core, 1 receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 64B frames using single trial\
-| | ... | throughput test.
-| | ...
| | [Tags] | 64B | 1C
-| | ...
-| | [Template] | Check RR for L2BD eth-l2bdscale
-| | framesize=${64} | wt=1 | rxq=1
+| | framesize=${64} | phy_cores=${1}
| tc02-1518B-1t1c-eth-l2bdscale100kmaclrn-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with with\
-| | ... | 1 phy core, 1 receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 1518B frames using single trial\
-| | ... | throughput test.
-| | ...
| | [Tags] | 1518B | 1C
-| | ...
-| | [Template] | Check RR for L2BD eth-l2bdscale
-| | framesize=${1518} | wt=1 | rxq=1
+| | framesize=${1518} | phy_cores=${1}
| tc03-9000B-1t1c-eth-l2bdscale100kmaclrn-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with with\
-| | ... | 1 phy core, 1 receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 9000B frames using single trial\
-| | ... | throughput test.
-| | ...
| | [Tags] | 9000B | 1C
-| | ...
-| | [Template] | Check RR for L2BD eth-l2bdscale
-| | framesize=${9000} | wt=1 | rxq=1
+| | framesize=${9000} | phy_cores=${1}
| tc04-IMIX-1t1c-eth-l2bdscale100kmaclrn-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with with\
-| | ... | 1 phy core, 1 receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for IMIX_v4_1 frames using single trial\
-| | ... | throughput test.
-| | ... | IMIX_v4_1 = (28x64B; 16x570B; 4x1518B)
-| | ...
| | [Tags] | IMIX | 1C
-| | ...
-| | [Template] | Check RR for L2BD eth-l2bdscale
-| | framesize=IMIX_v4_1 | wt=1 | rxq=1
+| | framesize=IMIX_v4_1 | phy_cores=${1}
| tc05-64B-2t2c-eth-l2bdscale100kmaclrn-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with with\
-| | ... | 2 phy cores, 1 receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 64B frames using single trial\
-| | ... | throughput test.
-| | ...
| | [Tags] | 64B | 2C
-| | ...
-| | [Template] | Check RR for L2BD eth-l2bdscale
-| | framesize=${64} | wt=2 | rxq=1
+| | framesize=${64} | phy_cores=${2}
| tc06-1518B-2t2c-eth-l2bdscale100kmaclrn-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with with\
-| | ... | 2 phy cores, 1 receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 1518B frames using single trial\
-| | ... | throughput test.
-| | ...
| | [Tags] | 1518B | 2C
-| | ...
-| | [Template] | Check RR for L2BD eth-l2bdscale
-| | framesize=${1518} | wt=2 | rxq=1
+| | framesize=${1518} | phy_cores=${2}
| tc07-9000B-2t2c-eth-l2bdscale100kmaclrn-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with with\
-| | ... | 2 phy cores, 1 receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 9000B frames using single trial\
-| | ... | throughput test.
-| | ...
| | [Tags] | 9000B | 2C
-| | ...
-| | [Template] | Check RR for L2BD eth-l2bdscale
-| | framesize=${9000} | wt=2 | rxq=1
+| | framesize=${9000} | phy_cores=${2}
| tc08-IMIX-2t2c-eth-l2bdscale100kmaclrn-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with with\
-| | ... | 2 phy cores, 1 receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for IMIX_v4_1 frames using single trial\
-| | ... | throughput test.
-| | ... | IMIX_v4_1 = (28x64B; 16x570B; 4x1518B)
-| | ...
| | [Tags] | IMIX | 2C
-| | ...
-| | [Template] | Check RR for L2BD eth-l2bdscale
-| | framesize=IMIX_v4_1 | wt=2 | rxq=1
+| | framesize=IMIX_v4_1 | phy_cores=${2}
| tc09-64B-4t4c-eth-l2bdscale100kmaclrn-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with with\
-| | ... | 4 phy cores, 2 receive queues per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 64B frames using single trial\
-| | ... | throughput test.
-| | ...
| | [Tags] | 64B | 4C
-| | ...
-| | [Template] | Check RR for L2BD eth-l2bdscale
-| | framesize=${64} | wt=4 | rxq=2
+| | framesize=${64} | phy_cores=${4}
| tc10-1518B-4t4c-eth-l2bdscale100kmaclrn-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with with\
-| | ... | 4 phy cores, 2 receive queues per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 1518B frames using single trial\
-| | ... | throughput test.
-| | ...
| | [Tags] | 1518B | 4C
-| | ...
-| | [Template] | Check RR for L2BD eth-l2bdscale
-| | framesize=${1518} | wt=4 | rxq=2
+| | framesize=${1518} | phy_cores=${4}
| tc11-9000B-4t4c-eth-l2bdscale100kmaclrn-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with with\
-| | ... | 4 phy cores, 2 receive queues per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 9000B frames using single trial\
-| | ... | throughput test.
-| | ...
| | [Tags] | 9000B | 4C
-| | ...
-| | [Template] | Check RR for L2BD eth-l2bdscale
-| | framesize=${9000} | wt=4 | rxq=2
+| | framesize=${9000} | phy_cores=${4}
| tc12-IMIX-4t4c-eth-l2bdscale100kmaclrn-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with with\
-| | ... | 4 phy cores, 2 receive queues per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for IMIX_v4_1 frames using single trial\
-| | ... | throughput test.
-| | ... | IMIX_v4_1 = (28x64B; 16x570B; 4x1518B)
-| | ...
| | [Tags] | IMIX | 4C
-| | ...
-| | [Template] | Check RR for L2BD eth-l2bdscale
-| | framesize=IMIX_v4_1 | wt=4 | rxq=2
+| | framesize=IMIX_v4_1 | phy_cores=${4}
diff --git a/tests/vpp/perf/l2/10ge2p1x520-eth-l2bdscale100kmaclrn-ndrpdrdisc.robot b/tests/vpp/perf/l2/10ge2p1x520-eth-l2bdscale100kmaclrn-ndrpdrdisc.robot
index 6a421441b4..4b32d6c219 100644
--- a/tests/vpp/perf/l2/10ge2p1x520-eth-l2bdscale100kmaclrn-ndrpdrdisc.robot
+++ b/tests/vpp/perf/l2/10ge2p1x520-eth-l2bdscale100kmaclrn-ndrpdrdisc.robot
@@ -26,6 +26,8 @@
| Test Teardown | Tear down performance discovery test | ${min_rate}pps
| ... | ${framesize} | ${traffic_profile}
| ...
+| Test Template | Local template
+| ...
| Documentation | *RFC2544: Pkt throughput L2BD test cases*
| ...
| ... | *[Top] Network Topologies:* TG-DUT1-DUT2-TG 3-node circular topology\
@@ -58,8 +60,10 @@
| ${traffic_profile} | trex-sl-3n-ethip4-macsrc50kdst50k
*** Keywords ***
-| L2 Bridge Domain Binary Search
-| | [Arguments] | ${framesize} | ${min_rate} | ${wt} | ${rxq} | ${search_type}
+| Local template
+| | [Arguments] | ${framesize} | ${phy_cores} | ${search_type}
+| | ... | ${min_rate}=${50000} | ${rxq}=${None}
+| | ...
| | Set Test Variable | ${framesize}
| | Set Test Variable | ${min_rate}
| | ${get_framesize}= | Set Variable If
@@ -68,7 +72,7 @@
| | ${binary_min}= | Set Variable | ${min_rate}
| | ${binary_max}= | Set Variable | ${max_rate}
| | ${threshold}= | Set Variable | ${min_rate}
-| | Add '${wt}' worker threads and '${rxq}' rxqueues in 3-node single-link circular topology
+| | Add worker threads and rxqueues to all DUTs | ${phy_cores} | ${rxq}
| | Add PCI devices to all DUTs
| | Run Keyword If | ${get_framesize} < ${1522} | Add No Multi Seg to all DUTs
| | Apply startup configuration on all VPP DUTs
@@ -85,182 +89,74 @@
*** Test Cases ***
| tc01-64B-1t1c-eth-l2bdscale100kmaclrn-ndrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with with\
-| | ... | 1 phy core, 1 receive queue per NIC port.
-| | ... | [Ver] Find NDR for 64 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 50kpps.
| | [Tags] | 64B | 1C | NDRDISC
-| | [Template] | L2 Bridge Domain Binary Search
-| | framesize=${64} | min_rate=${50000} | wt=1 | rxq=1 | search_type=NDR
+| | framesize=${64} | phy_cores=${1} | search_type=NDR
| tc02-64B-1t1c-eth-l2bdscale100kmaclrn-pdrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with with\
-| | ... | 1 phy core, 1 receive queue per NIC port.
-| | ... | [Ver] Find PDR for 64 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 50kpps, LT=0.5%.
| | [Tags] | 64B | 1C | PDRDISC | SKIP_PATCH
-| | [Template] | L2 Bridge Domain Binary Search
-| | framesize=${64} | min_rate=${50000} | wt=1 | rxq=1 | search_type=PDR
+| | framesize=${64} | phy_cores=${1} | search_type=PDR
| tc03-1518B-1t1c-eth-l2bdscale100kmaclrn-ndrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with with\
-| | ... | 1 phy core, 1 receive queue per NIC port.
-| | ... | [Ver] Find NDR for 1518 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 50kpps.
| | [Tags] | 1518B | 1C | NDRDISC
-| | [Template] | L2 Bridge Domain Binary Search
-| | framesize=${1518} | min_rate=${50000} | wt=1 | rxq=1 | search_type=NDR
+| | framesize=${1518} | phy_cores=${1} | search_type=NDR
| tc04-1518B-1t1c-eth-l2bdscale100kmaclrn-pdrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with with\
-| | ... | 1 phy core, 1 receive queue per NIC port.
-| | ... | [Ver] Find PDR for 1518 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 50kpps, LT=0.5%.
| | [Tags] | 1518B | 1C | PDRDISC | SKIP_PATCH
-| | [Template] | L2 Bridge Domain Binary Search
-| | framesize=${1518} | min_rate=${50000} | wt=1 | rxq=1 | search_type=PDR
+| | framesize=${1518} | phy_cores=${1} | search_type=PDR
| tc05-9000B-1t1c-eth-l2bdscale100kmaclrn-ndrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with with\
-| | ... | 1 phy core, 1 receive queue per NIC port.
-| | ... | [Ver] Find NDR for 9000 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 10kpps.
| | [Tags] | 9000B | 1C | NDRDISC
-| | [Template] | L2 Bridge Domain Binary Search
-| | framesize=${9000} | min_rate=${10000} | wt=1 | rxq=1 | search_type=NDR
+| | framesize=${9000} | phy_cores=${1} | search_type=NDR
| tc06-9000B-1t1c-eth-l2bdscale100kmaclrn-pdrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with with\
-| | ... | 1 phy core, 1 receive queue per NIC port.
-| | ... | [Ver] Find PDR for 9000 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 10kpps, LT=0.5%.
| | [Tags] | 9000B | 1C | PDRDISC | SKIP_PATCH
-| | [Template] | L2 Bridge Domain Binary Search
-| | framesize=${9000} | min_rate=${10000} | wt=1 | rxq=1 | search_type=PDR
+| | framesize=${9000} | phy_cores=${1} | search_type=PDR
| tc07-64B-2t2c-eth-l2bdscale100kmaclrn-ndrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with with\
-| | ... | 2 phy cores, 1 receive queue per NIC port.
-| | ... | [Ver] Find NDR for 64 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 50kpps.
| | [Tags] | 64B | 2C | NDRDISC
-| | [Template] | L2 Bridge Domain Binary Search
-| | framesize=${64} | min_rate=${50000} | wt=2 | rxq=1 | search_type=NDR
+| | framesize=${64} | phy_cores=${2} | search_type=NDR
| tc08-64B-2t2c-eth-l2bdscale100kmaclrn-pdrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with with\
-| | ... | 2 phy cores, 1 receive queue per NIC port.
-| | ... | [Ver] Find PDR for 64 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 50kpps, LT=0.5%.
| | [Tags] | 64B | 2C | PDRDISC | SKIP_PATCH
-| | [Template] | L2 Bridge Domain Binary Search
-| | framesize=${64} | min_rate=${50000} | wt=2 | rxq=1 | search_type=PDR
+| | framesize=${64} | phy_cores=${2} | search_type=PDR
| tc09-1518B-2t2c-eth-l2bdscale100kmaclrn-ndrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with with\
-| | ... | 2 phy cores, 1 receive queue per NIC port.
-| | ... | [Ver] Find NDR for 1518 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 50kpps.
| | [Tags] | 1518B | 2C | NDRDISC | SKIP_PATCH
-| | [Template] | L2 Bridge Domain Binary Search
-| | framesize=${1518} | min_rate=${50000} | wt=2 | rxq=1 | search_type=NDR
+| | framesize=${1518} | phy_cores=${2} | search_type=NDR
| tc10-1518B-2t2c-eth-l2bdscale100kmaclrn-pdrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with with\
-| | ... | 2 phy cores, 1 receive queue per NIC port.
-| | ... | [Ver] Find PDR for 1518 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 50kpps, LT=0.5%.
| | [Tags] | 1518B | 2C | PDRDISC | SKIP_PATCH
-| | [Template] | L2 Bridge Domain Binary Search
-| | framesize=${1518} | min_rate=${50000} | wt=2 | rxq=1 | search_type=PDR
+| | framesize=${1518} | phy_cores=${2} | search_type=PDR
| tc11-9000B-2t2c-eth-l2bdscale100kmaclrn-ndrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with with\
-| | ... | 2 phy cores, 1 receive queue per NIC port.
-| | ... | [Ver] Find NDR for 9000 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 10kpps.
| | [Tags] | 9000B | 2C | NDRDISC | SKIP_PATCH
-| | [Template] | L2 Bridge Domain Binary Search
-| | framesize=${9000} | min_rate=${10000} | wt=2 | rxq=1 | search_type=NDR
+| | framesize=${9000} | phy_cores=${2} | search_type=NDR
| tc12-9000B-2t2c-eth-l2bdscale100kmaclrn-pdrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with with\
-| | ... | 2 phy cores, 1 receive queue per NIC port.
-| | ... | [Ver] Find PDR for 9000 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 10kpps, LT=0.5%.
| | [Tags] | 9000B | 2C | PDRDISC | SKIP_PATCH
-| | [Template] | L2 Bridge Domain Binary Search
-| | framesize=${9000} | min_rate=${10000} | wt=2 | rxq=1 | search_type=PDR
+| | framesize=${9000} | phy_cores=${2} | search_type=PDR
| tc13-64B-4t4c-eth-l2bdscale100kmaclrn-ndrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with with\
-| | ... | 4 phy cores, 2 receive queues per NIC port.
-| | ... | [Ver] Find NDR for 64 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 50kpps.
| | [Tags] | 64B | 4C | NDRDISC
-| | [Template] | L2 Bridge Domain Binary Search
-| | framesize=${64} | min_rate=${50000} | wt=4 | rxq=2 | search_type=NDR
+| | framesize=${64} | phy_cores=${4} | search_type=NDR
| tc14-64B-4t4c-eth-l2bdscale100kmaclrn-pdrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with with\
-| | ... | 4 phy cores, 2 receive queues per NIC port.
-| | ... | [Ver] Find PDR for 64 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 50kpps, LT=0.5%.
| | [Tags] | 64B | 4C | PDRDISC | SKIP_PATCH
-| | [Template] | L2 Bridge Domain Binary Search
-| | framesize=${64} | min_rate=${50000} | wt=4 | rxq=2 | search_type=PDR
+| | framesize=${64} | phy_cores=${4} | search_type=PDR
| tc15-1518B-4t4c-eth-l2bdscale100kmaclrn-ndrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with with\
-| | ... | 4 phy cores, 2 receive queues per NIC port.
-| | ... | [Ver] Find NDR for 1518 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 50kpps.
| | [Tags] | 1518B | 4C | NDRDISC | SKIP_PATCH
-| | [Template] | L2 Bridge Domain Binary Search
-| | framesize=${1518} | min_rate=${50000} | wt=4 | rxq=2 | search_type=NDR
+| | framesize=${1518} | phy_cores=${4} | search_type=NDR
| tc16-1518B-4t4c-eth-l2bdscale100kmaclrn-pdrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with with\
-| | ... | 4 phy cores, 2 receive queues per NIC port.
-| | ... | [Ver] Find PDR for 1518 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 50kpps, LT=0.5%.
| | [Tags] | 1518B | 4C | PDRDISC | SKIP_PATCH
-| | [Template] | L2 Bridge Domain Binary Search
-| | framesize=${1518} | min_rate=${50000} | wt=4 | rxq=2 | search_type=PDR
+| | framesize=${1518} | phy_cores=${4} | search_type=PDR
| tc17-9000B-4t4c-eth-l2bdscale100kmaclrn-ndrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with with\
-| | ... | 4 phy cores, 2 receive queues per NIC port.
-| | ... | [Ver] Find NDR for 9000 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 10kpps.
| | [Tags] | 9000B | 4C | NDRDISC | SKIP_PATCH
-| | [Template] | L2 Bridge Domain Binary Search
-| | framesize=${9000} | min_rate=${10000} | wt=4 | rxq=2 | search_type=NDR
+| | framesize=${9000} | phy_cores=${4} | search_type=NDR
| tc18-9000B-4t4c-eth-l2bdscale100kmaclrn-pdrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with with\
-| | ... | 4 phy cores, 2 receive queues per NIC port.
-| | ... | [Ver] Find PDR for 9000 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 10kpps, LT=0.5%.
| | [Tags] | 9000B | 4C | PDRDISC | SKIP_PATCH
-| | [Template] | L2 Bridge Domain Binary Search
-| | framesize=${9000} | min_rate=${10000} | wt=4 | rxq=2 | search_type=PDR
+| | framesize=${9000} | phy_cores=${4} | search_type=PDR
diff --git a/tests/vpp/perf/l2/10ge2p1x520-eth-l2bdscale10kmaclrn-mrr.robot b/tests/vpp/perf/l2/10ge2p1x520-eth-l2bdscale10kmaclrn-mrr.robot
index a53d6b8b7b..5a4c98af6a 100644
--- a/tests/vpp/perf/l2/10ge2p1x520-eth-l2bdscale10kmaclrn-mrr.robot
+++ b/tests/vpp/perf/l2/10ge2p1x520-eth-l2bdscale10kmaclrn-mrr.robot
@@ -25,6 +25,8 @@
| ...
| Test Teardown | Tear down performance mrr test
| ...
+| Test Template | Local template
+| ...
| Documentation | *Raw results for L2BD test cases*
| ...
| ... | *[Top] Network Topologies:* TG-DUT1-DUT2-TG 3-node circular topology\
@@ -53,15 +55,26 @@
| ${traffic_profile} | trex-sl-3n-ethip4-macsrc5kdst5k
*** Keywords ***
-| Check RR for L2BD eth-l2bdscale
-| | [Arguments] | ${framesize} | ${wt} | ${rxq}
+| Local template
+| | [Documentation]
+| | ... | [CFG] DUT runs L2BD switching config with ${phy_cores} phy
+| | ... | core(s).
+| | ... | [Ver] Measure MaxReceivedRate for ${framesize}B frames using single\
+| | ... | trial throughput test.
+| | ...
+| | ... | *Arguments:*
+| | ... | - framesize - Framesize in Bytes in integer or string (IMIX_v4_1).
+| | ... | Type: integer, string
+| | ... | - phy_cores - Number of physical cores. Type: integer
+| | ... | - rxq - Number of RX queues, default value: ${None}. Type: integer
+| | ...
+| | [Arguments] | ${framesize} | ${phy_cores} | ${rxq}=${None}
| | ...
-| | # Test Variables required for test teardown
| | Set Test Variable | ${framesize}
| | ${get_framesize}= | Get Frame Size | ${framesize}
| | ${max_rate}= | Calculate pps | ${s_limit} | ${get_framesize}
| | ...
-| | Given Add '${wt}' worker threads and '${rxq}' rxqueues in 3-node single-link circular topology
+| | Given Add worker threads and rxqueues to all DUTs | ${phy_cores} | ${rxq}
| | And Add PCI devices to all DUTs
| | And Run Keyword If | ${get_framesize} < ${1522}
| | ... | Add no multi seg to all DUTs
@@ -72,148 +85,49 @@
*** Test Cases ***
| tc01-64B-1t1c-eth-l2dbscale10kmaclrn-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with with\
-| | ... | 1 phy core, 1 receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 64B frames using single trial\
-| | ... | throughput test.
-| | ...
| | [Tags] | 64B | 1C
-| | ...
-| | [Template] | Check RR for L2BD eth-l2bdscale
-| | framesize=${64} | wt=1 | rxq=1
+| | framesize=${64} | phy_cores=${1}
| tc02-1518B-1t1c-eth-l2dbscale10kmaclrn-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with with\
-| | ... | 1 phy core, 1 receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 1518B frames using single trial\
-| | ... | throughput test.
-| | ...
| | [Tags] | 1518B | 1C
-| | ...
-| | [Template] | Check RR for L2BD eth-l2bdscale
-| | framesize=${1518} | wt=1 | rxq=1
+| | framesize=${1518} | phy_cores=${1}
| tc03-9000B-1t1c-eth-l2dbscale10kmaclrn-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with with\
-| | ... | 1 phy core, 1 receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 9000B frames using single trial\
-| | ... | throughput test.
-| | ...
| | [Tags] | 9000B | 1C
-| | ...
-| | [Template] | Check RR for L2BD eth-l2bdscale
-| | framesize=${9000} | wt=1 | rxq=1
+| | framesize=${9000} | phy_cores=${1}
| tc04-IMIX-1t1c-eth-l2dbscale10kmaclrn-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with with\
-| | ... | 1 phy core, 1 receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for IMIX_v4_1 frames using single trial\
-| | ... | throughput test.
-| | ... | IMIX_v4_1 = (28x64B; 16x570B; 4x1518B)
-| | ...
| | [Tags] | IMIX_v4_1 | 1C
-| | ...
-| | [Template] | Check RR for L2BD eth-l2bdscale
-| | framesize=IMIX_v4_1 | wt=1 | rxq=1
+| | framesize=IMIX_v4_1 | phy_cores=${1}
| tc05-64B-2t2c-eth-l2dbscale10kmaclrn-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with with\
-| | ... | 2 phy cores, 1 receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 64B frames using single trial\
-| | ... | throughput test.
-| | ...
| | [Tags] | 64B | 2C
-| | ...
-| | [Template] | Check RR for L2BD eth-l2bdscale
-| | framesize=${64} | wt=2 | rxq=1
+| | framesize=${64} | phy_cores=${2}
| tc06-1518B-2t2c-eth-l2dbscale10kmaclrn-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with with\
-| | ... | 2 phy cores, 1 receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 1518B frames using single trial\
-| | ... | throughput test.
-| | ...
| | [Tags] | 1518B | 2C
-| | ...
-| | [Template] | Check RR for L2BD eth-l2bdscale
-| | framesize=${1518} | wt=2 | rxq=1
+| | framesize=${1518} | phy_cores=${2}
| tc07-9000B-2t2c-eth-l2dbscale10kmaclrn-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with with\
-| | ... | 2 phy cores, 1 receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 9000B frames using single trial\
-| | ... | throughput test.
-| | ...
| | [Tags] | 9000B | 2C
-| | ...
-| | [Template] | Check RR for L2BD eth-l2bdscale
-| | framesize=${9000} | wt=2 | rxq=1
+| | framesize=${9000} | phy_cores=${2}
| tc08-IMIX-2t2c-eth-l2dbscale10kmaclrn-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with with\
-| | ... | 2 phy cores, 1 receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for IMIX_v4_1 frames using single trial\
-| | ... | throughput test.
-| | ... | IMIX_v4_1 = (28x64B; 16x570B; 4x1518B)
-| | ...
| | [Tags] | IMIX_v4_1 | 2C
-| | ...
-| | [Template] | Check RR for L2BD eth-l2bdscale
-| | framesize=IMIX_v4_1 | wt=2 | rxq=1
+| | framesize=IMIX_v4_1 | phy_cores=${2}
| tc09-64B-4t4c-eth-l2dbscale10kmaclrn-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with with\
-| | ... | 4 phy cores, 2 receive queues per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 64B frames using single trial\
-| | ... | throughput test.
-| | ...
| | [Tags] | 64B | 4C
-| | ...
-| | [Template] | Check RR for L2BD eth-l2bdscale
-| | framesize=${64} | wt=4 | rxq=2
+| | framesize=${64} | phy_cores=${4}
| tc10-1518B-4t4c-eth-l2dbscale10kmaclrn-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with with\
-| | ... | 4 phy cores, 2 receive queues per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 1518B frames using single trial\
-| | ... | throughput test.
-| | ...
| | [Tags] | 1518B | 4C
-| | ...
-| | [Template] | Check RR for L2BD eth-l2bdscale
-| | framesize=${1518} | wt=4 | rxq=2
+| | framesize=${1518} | phy_cores=${4}
| tc11-9000B-4t4c-eth-l2dbscale10kmaclrn-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with with\
-| | ... | 4 phy cores, 2 receive queues per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 9000B frames using single trial\
-| | ... | throughput test.
-| | ...
| | [Tags] | 9000B | 4C
-| | ...
-| | [Template] | Check RR for L2BD eth-l2bdscale
-| | framesize=${9000} | wt=4 | rxq=2
+| | framesize=${9000} | phy_cores=${4}
| tc12-IMIX-4t4c-eth-l2dbscale10kmaclrn-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with with\
-| | ... | 4 phy cores, 2 receive queues per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for IMIX_v4_1 frames using single trial\
-| | ... | throughput test.
-| | ... | IMIX_v4_1 = (28x64B; 16x570B; 4x1518B)
-| | ...
| | [Tags] | 9000B | IMIX_v4_1
-| | ...
-| | [Template] | Check RR for L2BD eth-l2bdscale
-| | framesize=IMIX_v4_1 | wt=4 | rxq=2
+| | framesize=IMIX_v4_1 | phy_cores=${4}
diff --git a/tests/vpp/perf/l2/10ge2p1x520-eth-l2bdscale10kmaclrn-ndrpdrdisc.robot b/tests/vpp/perf/l2/10ge2p1x520-eth-l2bdscale10kmaclrn-ndrpdrdisc.robot
index fbf95838eb..c770b444c6 100644
--- a/tests/vpp/perf/l2/10ge2p1x520-eth-l2bdscale10kmaclrn-ndrpdrdisc.robot
+++ b/tests/vpp/perf/l2/10ge2p1x520-eth-l2bdscale10kmaclrn-ndrpdrdisc.robot
@@ -26,6 +26,8 @@
| Test Teardown | Tear down performance discovery test | ${min_rate}pps
| ... | ${framesize} | ${traffic_profile}
| ...
+| Test Template | Local template
+| ...
| Documentation | *RFC2544: Pkt throughput L2BD test cases*
| ...
| ... | *[Top] Network Topologies:* TG-DUT1-DUT2-TG 3-node circular topology\
@@ -58,8 +60,10 @@
| ${traffic_profile} | trex-sl-3n-ethip4-macsrc5kdst5k
*** Keywords ***
-| L2 Bridge Domain Binary Search
-| | [Arguments] | ${framesize} | ${min_rate} | ${wt} | ${rxq} | ${search_type}
+| Local template
+| | [Arguments] | ${framezise} | ${phy_cores} | ${search_type}
+| | ... | ${min_rate}=${50000} | ${rxq}=${None}
+| | ...
| | Set Test Variable | ${framesize}
| | Set Test Variable | ${min_rate}
| | ${get_framesize}= | Set Variable If
@@ -68,7 +72,7 @@
| | ${binary_min}= | Set Variable | ${min_rate}
| | ${binary_max}= | Set Variable | ${max_rate}
| | ${threshold}= | Set Variable | ${min_rate}
-| | Add '${wt}' worker threads and '${rxq}' rxqueues in 3-node single-link circular topology
+| | Add worker threads and rxqueues to all DUTs | ${phy_cores} | ${rxq}
| | Add PCI devices to all DUTs
| | Run Keyword If | ${get_framesize} < ${1522} | Add No Multi Seg to all DUTs
| | Apply startup configuration on all VPP DUTs
@@ -85,182 +89,74 @@
*** Test Cases ***
| tc01-64B-1t1c-eth-l2dbscale10kmaclrn-ndrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with with\
-| | ... | 1 phy core, 1 receive queue per NIC port.
-| | ... | [Ver] Find NDR for 64 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 50kpps.
| | [Tags] | 64B | 1C | NDRDISC
-| | [Template] | L2 Bridge Domain Binary Search
-| | framesize=${64} | min_rate=${50000} | wt=1 | rxq=1 | search_type=NDR
+| | framesize=${64} | phy_cores=${1} | search_type=NDR
| tc02-64B-1t1c-eth-l2dbscale10kmaclrn-pdrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with with\
-| | ... | 1 phy core, 1 receive queue per NIC port.
-| | ... | [Ver] Find PDR for 64 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 50kpps, LT=0.5%.
| | [Tags] | 64B | 1C | PDRDISC | SKIP_PATCH
-| | [Template] | L2 Bridge Domain Binary Search
-| | framesize=${64} | min_rate=${50000} | wt=1 | rxq=1 | search_type=PDR
+| | framesize=${64} | phy_cores=${1} | search_type=PDR
| tc03-1518B-1t1c-eth-l2dbscale10kmaclrn-ndrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with with\
-| | ... | 1 phy core, 1 receive queue per NIC port.
-| | ... | [Ver] Find NDR for 1518 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 50kpps.
| | [Tags] | 1518B | 1C | NDRDISC
-| | [Template] | L2 Bridge Domain Binary Search
-| | framesize=${1518} | min_rate=${50000} | wt=1 | rxq=1 | search_type=NDR
+| | framesize=${1518} | phy_cores=${1} | search_type=NDR
| tc04-1518B-1t1c-eth-l2dbscale10kmaclrn-pdrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with with\
-| | ... | 1 phy core, 1 receive queue per NIC port.
-| | ... | [Ver] Find PDR for 1518 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 50kpps, LT=0.5%.
| | [Tags] | 1518B | 1C | PDRDISC | SKIP_PATCH
-| | [Template] | L2 Bridge Domain Binary Search
-| | framesize=${1518} | min_rate=${50000} | wt=1 | rxq=1 | search_type=PDR
+| | framesize=${1518} | phy_cores=${1} | search_type=PDR
| tc05-9000B-1t1c-eth-l2dbscale10kmaclrn-ndrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with with\
-| | ... | 1 phy core, 1 receive queue per NIC port.
-| | ... | [Ver] Find NDR for 9000 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 10kpps.
| | [Tags] | 9000B | 1C | NDRDISC
-| | [Template] | L2 Bridge Domain Binary Search
-| | framesize=${9000} | min_rate=${10000} | wt=1 | rxq=1 | search_type=NDR
+| | framesize=${9000} | phy_cores=${1} | search_type=NDR
| tc06-9000B-1t1c-eth-l2dbscale10kmaclrn-pdrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with with\
-| | ... | 1 phy core, 1 receive queue per NIC port.
-| | ... | [Ver] Find PDR for 9000 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 10kpps, LT=0.5%.
| | [Tags] | 9000B | 1C | PDRDISC | SKIP_PATCH
-| | [Template] | L2 Bridge Domain Binary Search
-| | framesize=${9000} | min_rate=${10000} | wt=1 | rxq=1 | search_type=PDR
+| | framesize=${9000} | phy_cores=${1} | search_type=PDR
| tc07-64B-2t2c-eth-l2dbscale10kmaclrn-ndrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with with\
-| | ... | 2 phy cores, 1 receive queue per NIC port.
-| | ... | [Ver] Find NDR for 64 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 50kpps.
| | [Tags] | 64B | 2C | NDRDISC
-| | [Template] | L2 Bridge Domain Binary Search
-| | framesize=${64} | min_rate=${50000} | wt=2 | rxq=1 | search_type=NDR
+| | framesize=${64} | phy_cores=${2} | search_type=NDR
| tc08-64B-2t2c-eth-l2dbscale10kmaclrn-pdrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with with\
-| | ... | 2 phy cores, 1 receive queue per NIC port.
-| | ... | [Ver] Find PDR for 64 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 50kpps, LT=0.5%.
| | [Tags] | 64B | 2C | PDRDISC | SKIP_PATCH
-| | [Template] | L2 Bridge Domain Binary Search
-| | framesize=${64} | min_rate=${50000} | wt=2 | rxq=1 | search_type=PDR
+| | framesize=${64} | phy_cores=${2} | search_type=PDR
| tc09-1518B-2t2c-eth-l2dbscale10kmaclrn-ndrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with with\
-| | ... | 2 phy cores, 1 receive queue per NIC port.
-| | ... | [Ver] Find NDR for 1518 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 50kpps.
| | [Tags] | 1518B | 2C | NDRDISC | SKIP_PATCH
-| | [Template] | L2 Bridge Domain Binary Search
-| | framesize=${1518} | min_rate=${50000} | wt=2 | rxq=1 | search_type=NDR
+| | framesize=${1518} | phy_cores=${2} | search_type=NDR
| tc10-1518B-2t2c-eth-l2dbscale10kmaclrn-pdrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with with\
-| | ... | 2 phy cores, 1 receive queue per NIC port.
-| | ... | [Ver] Find PDR for 1518 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 50kpps, LT=0.5%.
| | [Tags] | 1518B | 2C | PDRDISC | SKIP_PATCH
-| | [Template] | L2 Bridge Domain Binary Search
-| | framesize=${1518} | min_rate=${50000} | wt=2 | rxq=1 | search_type=PDR
+| | framesize=${1518} | phy_cores=${2} | search_type=PDR
| tc11-9000B-2t2c-eth-l2dbscale10kmaclrn-ndrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with with\
-| | ... | 2 phy cores, 1 receive queue per NIC port.
-| | ... | [Ver] Find NDR for 9000 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 10kpps.
| | [Tags] | 9000B | 2C | NDRDISC | SKIP_PATCH
-| | [Template] | L2 Bridge Domain Binary Search
-| | framesize=${9000} | min_rate=${10000} | wt=2 | rxq=1 | search_type=NDR
+| | framesize=${9000} | phy_cores=${2} | search_type=NDR
| tc12-9000B-2t2c-eth-l2dbscale10kmaclrn-pdrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with with\
-| | ... | 2 phy cores, 1 receive queue per NIC port.
-| | ... | [Ver] Find PDR for 9000 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 10kpps, LT=0.5%.
| | [Tags] | 9000B | 2C | PDRDISC | SKIP_PATCH
-| | [Template] | L2 Bridge Domain Binary Search
-| | framesize=${9000} | min_rate=${10000} | wt=2 | rxq=1 | search_type=PDR
+| | framesize=${9000} | phy_cores=${2} | search_type=PDR
| tc13-64B-4t4c-eth-l2dbscale10kmaclrn-ndrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with with\
-| | ... | 4 phy cores, 2 receive queues per NIC port.
-| | ... | [Ver] Find NDR for 64 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 50kpps.
| | [Tags] | 64B | 4C | NDRDISC
-| | [Template] | L2 Bridge Domain Binary Search
-| | framesize=${64} | min_rate=${50000} | wt=4 | rxq=2 | search_type=NDR
+| | framesize=${64} | phy_cores=${4} | search_type=NDR
| tc14-64B-4t4c-eth-l2dbscale10kmaclrn-pdrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with with\
-| | ... | 4 phy cores, 2 receive queues per NIC port.
-| | ... | [Ver] Find PDR for 64 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 50kpps, LT=0.5%.
| | [Tags] | 64B | 4C | PDRDISC | SKIP_PATCH
-| | [Template] | L2 Bridge Domain Binary Search
-| | framesize=${64} | min_rate=${50000} | wt=4 | rxq=2 | search_type=PDR
+| | framesize=${64} | phy_cores=${4} | search_type=PDR
| tc15-1518B-4t4c-eth-l2dbscale10kmaclrn-ndrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with with\
-| | ... | 4 phy cores, 2 receive queues per NIC port.
-| | ... | [Ver] Find NDR for 1518 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 50kpps.
| | [Tags] | 1518B | 4C | NDRDISC | SKIP_PATCH
-| | [Template] | L2 Bridge Domain Binary Search
-| | framesize=${1518} | min_rate=${50000} | wt=4 | rxq=2 | search_type=NDR
+| | framesize=${1518} | phy_cores=${4} | search_type=NDR
| tc16-1518B-4t4c-eth-l2dbscale10kmaclrn-pdrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with with\
-| | ... | 4 phy cores, 2 receive queues per NIC port.
-| | ... | [Ver] Find PDR for 1518 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 50kpps, LT=0.5%.
| | [Tags] | 1518B | 4C | PDRDISC | SKIP_PATCH
-| | [Template] | L2 Bridge Domain Binary Search
-| | framesize=${1518} | min_rate=${50000} | wt=4 | rxq=2 | search_type=PDR
+| | framesize=${1518} | phy_cores=${4} | search_type=PDR
| tc17-9000B-4t4c-eth-l2dbscale10kmaclrn-ndrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with with\
-| | ... | 4 phy cores, 2 receive queues per NIC port.
-| | ... | [Ver] Find NDR for 9000 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 10kpps.
| | [Tags] | 9000B | 4C | NDRDISC | SKIP_PATCH
-| | [Template] | L2 Bridge Domain Binary Search
-| | framesize=${9000} | min_rate=${10000} | wt=4 | rxq=2 | search_type=NDR
+| | framesize=${9000} | phy_cores=${4} | search_type=NDR
| tc18-9000B-4t4c-eth-l2dbscale10kmaclrn-pdrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with with\
-| | ... | 4 phy cores, 2 receive queues per NIC port.
-| | ... | [Ver] Find PDR for 9000 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 10kpps, LT=0.5%.
| | [Tags] | 9000B | 4C | PDRDISC | SKIP_PATCH
-| | [Template] | L2 Bridge Domain Binary Search
-| | framesize=${9000} | min_rate=${10000} | wt=4 | rxq=2 | search_type=PDR
+| | framesize=${9000} | phy_cores=${4} | search_type=PDR
diff --git a/tests/vpp/perf/l2/10ge2p1x520-eth-l2bdscale1mmaclrn-mrr.robot b/tests/vpp/perf/l2/10ge2p1x520-eth-l2bdscale1mmaclrn-mrr.robot
index 2b2f348915..64934b233c 100644
--- a/tests/vpp/perf/l2/10ge2p1x520-eth-l2bdscale1mmaclrn-mrr.robot
+++ b/tests/vpp/perf/l2/10ge2p1x520-eth-l2bdscale1mmaclrn-mrr.robot
@@ -25,6 +25,8 @@
| ...
| Test Teardown | Tear down performance mrr test
| ...
+| Test Template | Local template
+| ...
| Documentation | *Raw results for L2BD test cases*
| ...
| ... | *[Top] Network Topologies:* TG-DUT1-DUT2-TG 3-node circular topology\
@@ -53,21 +55,26 @@
| ${traffic_profile} | trex-sl-3n-ethip4-macsrc500kdst500k
*** Keywords ***
-| Check RR for L2BD eth-l2bdscale
+| Local template
| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD config with ${wt} thread(s), ${wt}\
-| | ... | phy core(s), ${rxq} receive queue(s) per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for ${framesize} frames using single\
+| | ... | [Cfg] DUT runs L2BD config with ${phy_cores} phy
+| | ... | core(s).
+| | ... | [Ver] Measure MaxReceivedRate for ${framesize}B frames using single\
| | ... | trial throughput test.
| | ...
-| | [Arguments] | ${framesize} | ${wt} | ${rxq}
+| | ... | *Arguments:*
+| | ... | - framesize - Framesize in Bytes in integer or string (IMIX_v4_1).
+| | ... | Type: integer, string
+| | ... | - phy_cores - Number of physical cores. Type: integer
+| | ... | - rxq - Number of RX queues, default value: ${None}. Type: integer
+| | ...
+| | [Arguments] | ${framesize} | ${phy_cores} | ${rxq}=${None}
| | ...
-| | # Test Variables required for test teardown
| | Set Test Variable | ${framesize}
| | ${get_framesize}= | Get Frame Size | ${framesize}
| | ${max_rate}= | Calculate pps | ${s_limit} | ${get_framesize}
| | ...
-| | Given Add '${wt}' worker threads and '${rxq}' rxqueues in 3-node single-link circular topology
+| | Given Add worker threads and rxqueues to all DUTs | ${phy_cores} | ${rxq}
| | And Add PCI devices to all DUTs
| | And Run Keyword If | ${get_framesize} < ${1522}
| | ... | Add no multi seg to all DUTs
@@ -78,147 +85,49 @@
*** Test Cases ***
| tc01-64B-1t1c-eth-l2bdscale1mmaclrn-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with with\
-| | ... | 1 phy core, 1 receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 64B frames using single trial\
-| | ... | throughput test.
-| | ...
| | [Tags] | 64B | 1C
-| | [Template] | Check RR for L2BD eth-l2bdscale
-| | framesize=${64} | wt=1 | rxq=1
+| | framesize=${64} | phy_cores=${1}
| tc02-1518B-1t1c-eth-l2bdscale1mmaclrn-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with with\
-| | ... | 1 phy core, 1 receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 1518B frames using single trial\
-| | ... | throughput test.
-| | ...
| | [Tags] | 1518B | 1C
-| | ...
-| | [Template] | Check RR for L2BD eth-l2bdscale
-| | framesize=${1518} | wt=1 | rxq=1
+| | framesize=${1518} | phy_cores=${1}
| tc03-9000B-1t1c-eth-l2bdscale1mmaclrn-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with with\
-| | ... | 1 phy core, 1 receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 9000B frames using single trial\
-| | ... | throughput test.
-| | ...
| | [Tags] | 9000B | 1C
-| | ...
-| | [Template] | Check RR for L2BD eth-l2bdscale
-| | framesize=${9000} | wt=1 | rxq=1
+| | framesize=${9000} | phy_cores=${1}
| tc04-IMIX-1t1c-eth-l2bdscale1mmaclrn-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with with\
-| | ... | 1 phy core, 1 receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for IMIX_v4_1 frames using single trial\
-| | ... | throughput test.
-| | ... | IMIX_v4_1 = (28x64B; 16x570B; 4x1518B)
-| | ...
| | [Tags] | IMIX | 1C
-| | ...
-| | [Template] | Check RR for L2BD eth-l2bdscale
-| | framesize=IMIX_v4_1 | wt=1 | rxq=1
+| | framesize=IMIX_v4_1 | phy_cores=${1}
| tc05-64B-2t2c-eth-l2bdscale1mmaclrn-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with with\
-| | ... | 2 phy cores, 1 receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 64B frames using single trial\
-| | ... | throughput test.
-| | ...
| | [Tags] | 64B | 2C
-| | ...
-| | [Template] | Check RR for L2BD eth-l2bdscale
-| | framesize=${64} | wt=2 | rxq=1
+| | framesize=${64} | phy_cores=${2}
| tc06-1518B-2t2c-eth-l2bdscale1mmaclrn-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with with\
-| | ... | 2 phy cores, 1 receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 1518B frames using single trial\
-| | ... | throughput test.
-| | ...
| | [Tags] | 1518B | 2C
-| | ...
-| | [Template] | Check RR for L2BD eth-l2bdscale
-| | framesize=${1518} | wt=2 | rxq=1
+| | framesize=${1518} | phy_cores=${2}
| tc07-9000B-2t2c-eth-l2bdscale1mmaclrn-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with with\
-| | ... | 2 phy cores, 1 receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 9000B frames using single trial\
-| | ... | throughput test.
-| | ...
| | [Tags] | 9000B | 2C
-| | ...
-| | [Template] | Check RR for L2BD eth-l2bdscale
-| | framesize=${9000} | wt=2 | rxq=1
+| | framesize=${9000} | phy_cores=${2}
| tc08-9000B-2t2c-eth-l2bdscale1mmaclrn-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with with\
-| | ... | 2 phy cores, 1 receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for IMIX_v4_1 frames using single trial\
-| | ... | throughput test.
-| | ... | IMIX_v4_1 = (28x64B; 16x570B; 4x1518B)
-| | ...
| | [Tags] | IMIX | 2C
-| | ...
-| | [Template] | Check RR for L2BD eth-l2bdscale
-| | framesize=IMIX_v4_1 | wt=2 | rxq=1
+| | framesize=IMIX_v4_1 | phy_cores=${2}
| tc09-64B-4t4c-eth-l2bdscale1mmaclrn-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with with\
-| | ... | 4 phy cores, 2 receive queues per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 64B frames using single trial\
-| | ... | throughput test.
-| | ...
| | [Tags] | 64B | 4C
-| | ...
-| | [Template] | Check RR for L2BD eth-l2bdscale
-| | framesize=${64} | wt=4 | rxq=2
+| | framesize=${64} | phy_cores=${4}
| tc10-1518B-4t4c-eth-l2bdscale1mmaclrn-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with with\
-| | ... | 4 phy cores, 2 receive queues per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 1518B frames using single trial\
-| | ... | throughput test.
-| | ...
| | [Tags] | 1518B | 4C
-| | ...
-| | [Template] | Check RR for L2BD eth-l2bdscale
-| | framesize=${1518} | wt=4 | rxq=2
+| | framesize=${1518} | phy_cores=${4}
| tc11-9000B-4t4c-eth-l2bdscale1mmaclrn-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with with\
-| | ... | 4 phy cores, 2 receive queues per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 9000B frames using single trial\
-| | ... | throughput test.
-| | ...
| | [Tags] | 9000B | 4C
-| | ...
-| | [Template] | Check RR for L2BD eth-l2bdscale
-| | framesize=${9000} | wt=4 | rxq=2
+| | framesize=${9000} | phy_cores=${4}
| tc12-IMIX-4t4c-eth-l2bdscale1mmaclrn-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with with\
-| | ... | 4 phy cores, 2 receive queues per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for IMIX_v4_1 frames using single trial\
-| | ... | throughput test.
-| | ... | IMIX_v4_1 = (28x64B; 16x570B; 4x1518B)
-| | ...
| | [Tags] | IMIX | 4C
-| | ...
-| | [Template] | Check RR for L2BD eth-l2bdscale
-| | framesize=IMIX_v4_1 | wt=4 | rxq=2
+| | framesize=IMIX_v4_1 | phy_cores=${4}
diff --git a/tests/vpp/perf/l2/10ge2p1x520-eth-l2bdscale1mmaclrn-ndrpdrdisc.robot b/tests/vpp/perf/l2/10ge2p1x520-eth-l2bdscale1mmaclrn-ndrpdrdisc.robot
index aa9f1bdfeb..a1072f33d6 100644
--- a/tests/vpp/perf/l2/10ge2p1x520-eth-l2bdscale1mmaclrn-ndrpdrdisc.robot
+++ b/tests/vpp/perf/l2/10ge2p1x520-eth-l2bdscale1mmaclrn-ndrpdrdisc.robot
@@ -26,6 +26,8 @@
| Test Teardown | Tear down performance discovery test | ${min_rate}pps
| ... | ${framesize} | ${traffic_profile}
| ...
+| Test Template | Local template
+| ...
| Documentation | *RFC2544: Pkt throughput L2BD test cases*
| ...
| ... | *[Top] Network Topologies:* TG-DUT1-DUT2-TG 3-node circular topology\
@@ -58,8 +60,10 @@
| ${traffic_profile} | trex-sl-3n-ethip4-macsrc500kdst500k
*** Keywords ***
-| L2 Bridge Domain Binary Search
-| | [Arguments] | ${framesize} | ${min_rate} | ${wt} | ${rxq} | ${search_type}
+| Local template
+| | [Arguments] | ${framesize} | ${phy_cores} | ${search_type}
+| | ... | ${min_rate}=${50000} | ${rxq}=${None}
+| | ...
| | Set Test Variable | ${framesize}
| | Set Test Variable | ${min_rate}
| | ${get_framesize}= | Set Variable If
@@ -68,7 +72,7 @@
| | ${binary_min}= | Set Variable | ${min_rate}
| | ${binary_max}= | Set Variable | ${max_rate}
| | ${threshold}= | Set Variable | ${min_rate}
-| | Add '${wt}' worker threads and '${rxq}' rxqueues in 3-node single-link circular topology
+| | Add worker threads and rxqueues to all DUTs | ${phy_cores} | ${rxq}
| | Add PCI devices to all DUTs
| | Run Keyword If | ${get_framesize} < ${1522} | Add No Multi Seg to all DUTs
| | Apply startup configuration on all VPP DUTs
@@ -85,182 +89,74 @@
*** Test Cases ***
| tc01-64B-1t1c-eth-l2bdscale1mmaclrn-ndrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with with\
-| | ... | 1 phy core, 1 receive queue per NIC port.
-| | ... | [Ver] Find NDR for 64 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 50kpps.
| | [Tags] | 64B | 1C | NDRDISC
-| | [Template] | L2 Bridge Domain Binary Search
-| | framesize=${64} | min_rate=${50000} | wt=1 | rxq=1 | search_type=NDR
+| | framesize=${64} | phy_cores=${1} | search_type=NDR
| tc02-64B-1t1c-eth-l2bdscale1mmaclrn-pdrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with with\
-| | ... | 1 phy core, 1 receive queue per NIC port.
-| | ... | [Ver] Find PDR for 64 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 50kpps, LT=0.5%.
| | [Tags] | 64B | 1C | PDRDISC | SKIP_PATCH
-| | [Template] | L2 Bridge Domain Binary Search
-| | framesize=${64} | min_rate=${50000} | wt=1 | rxq=1 | search_type=PDR
+| | framesize=${64} | phy_cores=${1} | search_type=PDR
| tc03-1518B-1t1c-eth-l2bdscale1mmaclrn-ndrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with with\
-| | ... | 1 phy core, 1 receive queue per NIC port.
-| | ... | [Ver] Find NDR for 1518 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 50kpps.
| | [Tags] | 1518B | 1C | NDRDISC
-| | [Template] | L2 Bridge Domain Binary Search
-| | framesize=${1518} | min_rate=${50000} | wt=1 | rxq=1 | search_type=NDR
+| | framesize=${1518} | phy_cores=${1} | search_type=NDR
| tc04-1518B-1t1c-eth-l2bdscale1mmaclrn-pdrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with with\
-| | ... | 1 phy core, 1 receive queue per NIC port.
-| | ... | [Ver] Find PDR for 1518 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 50kpps, LT=0.5%.
| | [Tags] | 1518B | 1C | PDRDISC | SKIP_PATCH
-| | [Template] | L2 Bridge Domain Binary Search
-| | framesize=${1518} | min_rate=${50000} | wt=1 | rxq=1 | search_type=PDR
+| | framesize=${1518} | phy_cores=${1} | search_type=PDR
| tc05-9000B-1t1c-eth-l2bdscale1mmaclrn-ndrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with with\
-| | ... | 1 phy core, 1 receive queue per NIC port.
-| | ... | [Ver] Find NDR for 9000 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 10kpps.
| | [Tags] | 9000B | 1C | NDRDISC
-| | [Template] | L2 Bridge Domain Binary Search
-| | framesize=${9000} | min_rate=${10000} | wt=1 | rxq=1 | search_type=NDR
+| | framesize=${9000} | phy_cores=${1} | search_type=NDR
| tc06-9000B-1t1c-eth-l2bdscale1mmaclrn-pdrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with with\
-| | ... | 1 phy core, 1 receive queue per NIC port.
-| | ... | [Ver] Find PDR for 9000 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 10kpps, LT=0.5%.
| | [Tags] | 9000B | 1C | PDRDISC | SKIP_PATCH
-| | [Template] | L2 Bridge Domain Binary Search
-| | framesize=${9000} | min_rate=${10000} | wt=1 | rxq=1 | search_type=PDR
+| | framesize=${9000} | phy_cores=${1} | search_type=PDR
| tc07-64B-2t2c-eth-l2bdscale1mmaclrn-ndrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with with\
-| | ... | 2 phy cores, 1 receive queue per NIC port.
-| | ... | [Ver] Find NDR for 64 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 50kpps.
| | [Tags] | 64B | 2C | NDRDISC
-| | [Template] | L2 Bridge Domain Binary Search
-| | framesize=${64} | min_rate=${50000} | wt=2 | rxq=1 | search_type=NDR
+| | framesize=${64} | phy_cores=${2} | search_type=NDR
| tc08-64B-2t2c-eth-l2bdscale1mmaclrn-pdrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with with\
-| | ... | 2 phy cores, 1 receive queue per NIC port.
-| | ... | [Ver] Find PDR for 64 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 50kpps, LT=0.5%.
| | [Tags] | 64B | 2C | PDRDISC | SKIP_PATCH
-| | [Template] | L2 Bridge Domain Binary Search
-| | framesize=${64} | min_rate=${50000} | wt=2 | rxq=1 | search_type=PDR
+| | framesize=${64} | phy_cores=${2} | search_type=PDR
| tc09-1518B-2t2c-eth-l2bdscale1mmaclrn-ndrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with with\
-| | ... | 2 phy cores, 1 receive queue per NIC port.
-| | ... | [Ver] Find NDR for 1518 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 50kpps.
| | [Tags] | 1518B | 2C | NDRDISC | SKIP_PATCH
-| | [Template] | L2 Bridge Domain Binary Search
-| | framesize=${1518} | min_rate=${50000} | wt=2 | rxq=1 | search_type=NDR
+| | framesize=${1518} | phy_cores=${2} | search_type=NDR
| tc10-1518B-2t2c-eth-l2bdscale1mmaclrn-pdrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with with\
-| | ... | 2 phy cores, 1 receive queue per NIC port.
-| | ... | [Ver] Find PDR for 1518 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 50kpps, LT=0.5%.
| | [Tags] | 1518B | 2C | PDRDISC | SKIP_PATCH
-| | [Template] | L2 Bridge Domain Binary Search
-| | framesize=${1518} | min_rate=${50000} | wt=2 | rxq=1 | search_type=PDR
+| | framesize=${1518} | phy_cores=${2} | search_type=PDR
| tc11-9000B-2t2c-eth-l2bdscale1mmaclrn-ndrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with with\
-| | ... | 2 phy cores, 1 receive queue per NIC port.
-| | ... | [Ver] Find NDR for 9000 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 10kpps.
| | [Tags] | 9000B | 2C | NDRDISC | SKIP_PATCH
-| | [Template] | L2 Bridge Domain Binary Search
-| | framesize=${9000} | min_rate=${10000} | wt=2 | rxq=1 | search_type=NDR
+| | framesize=${9000} | phy_cores=${2} | search_type=NDR
| tc12-9000B-2t2c-eth-l2bdscale1mmaclrn-pdrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with with\
-| | ... | 2 phy cores, 1 receive queue per NIC port.
-| | ... | [Ver] Find PDR for 9000 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 10kpps, LT=0.5%.
| | [Tags] | 9000B | 2C | PDRDISC | SKIP_PATCH
-| | [Template] | L2 Bridge Domain Binary Search
-| | framesize=${9000} | min_rate=${10000} | wt=2 | rxq=1 | search_type=PDR
+| | framesize=${9000} | phy_cores=${2} | search_type=PDR
| tc13-64B-4t4c-eth-l2bdscale1mmaclrn-ndrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with with\
-| | ... | 4 phy cores, 2 receive queues per NIC port.
-| | ... | [Ver] Find NDR for 64 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 50kpps.
| | [Tags] | 64B | 4C | NDRDISC
-| | [Template] | L2 Bridge Domain Binary Search
-| | framesize=${64} | min_rate=${50000} | wt=4 | rxq=2 | search_type=NDR
+| | framesize=${64} | phy_cores=${4} | search_type=NDR
| tc14-64B-4t4c-eth-l2bdscale1mmaclrn-pdrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with with\
-| | ... | 4 phy cores, 2 receive queues per NIC port.
-| | ... | [Ver] Find PDR for 64 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 50kpps, LT=0.5%.
| | [Tags] | 64B | 4C | PDRDISC | SKIP_PATCH
-| | [Template] | L2 Bridge Domain Binary Search
-| | framesize=${64} | min_rate=${50000} | wt=4 | rxq=2 | search_type=PDR
+| | framesize=${64} | phy_cores=${4} | search_type=PDR
| tc15-1518B-4t4c-eth-l2bdscale1mmaclrn-ndrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with with\
-| | ... | 4 phy cores, 2 receive queues per NIC port.
-| | ... | [Ver] Find NDR for 1518 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 50kpps.
| | [Tags] | 1518B | 4C | NDRDISC | SKIP_PATCH
-| | [Template] | L2 Bridge Domain Binary Search
-| | framesize=${1518} | min_rate=${50000} | wt=4 | rxq=2 | search_type=NDR
+| | framesize=${1518} | phy_cores=${4} | search_type=NDR
| tc16-1518B-4t4c-eth-l2bdscale1mmaclrn-pdrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with with\
-| | ... | 4 phy cores, 2 receive queues per NIC port.
-| | ... | [Ver] Find PDR for 1518 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 50kpps, LT=0.5%.
| | [Tags] | 1518B | 4C | PDRDISC | SKIP_PATCH
-| | [Template] | L2 Bridge Domain Binary Search
-| | framesize=${1518} | min_rate=${50000} | wt=4 | rxq=2 | search_type=PDR
+| | framesize=${1518} | phy_cores=${4} | search_type=PDR
| tc17-9000B-4t4c-eth-l2bdscale1mmaclrn-ndrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with with\
-| | ... | 4 phy cores, 2 receive queues per NIC port.
-| | ... | [Ver] Find NDR for 9000 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 10kpps.
| | [Tags] | 9000B | 4C | NDRDISC | SKIP_PATCH
-| | [Template] | L2 Bridge Domain Binary Search
-| | framesize=${9000} | min_rate=${10000} | wt=4 | rxq=2 | search_type=NDR
+| | framesize=${9000} | phy_cores=${4} | search_type=NDR
| tc18-9000B-4t4c-eth-l2bdscale1mmaclrn-pdrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with with\
-| | ... | 4 phy cores, 2 receive queues per NIC port.
-| | ... | [Ver] Find PDR for 9000 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 10kpps, LT=0.5%.
| | [Tags] | 9000B | 4C | PDRDISC | SKIP_PATCH
-| | [Template] | L2 Bridge Domain Binary Search
-| | framesize=${9000} | min_rate=${10000} | wt=4 | rxq=2 | search_type=PDR
+| | framesize=${9000} | phy_cores=${4} | search_type=PDR
diff --git a/tests/vpp/perf/l2/10ge2p1x520-eth-l2xcbase-mrr.robot b/tests/vpp/perf/l2/10ge2p1x520-eth-l2xcbase-mrr.robot
index 60cda67c90..eea07a639e 100644
--- a/tests/vpp/perf/l2/10ge2p1x520-eth-l2xcbase-mrr.robot
+++ b/tests/vpp/perf/l2/10ge2p1x520-eth-l2xcbase-mrr.robot
@@ -24,6 +24,8 @@
| Test Setup | Set up performance test
| Test Teardown | Tear down performance mrr test
| ...
+| Test Template | Local template
+| ...
| Documentation | *Raw results L2XC test cases*
| ...
| ... | *[Top] Network Topologies:* TG-DUT1-DUT2-TG 3-node circular topology
@@ -47,21 +49,26 @@
| ${traffic_profile} | trex-sl-3n-ethip4-ip4src254
*** Keywords ***
-| Check RR for l2xcbase
+| Local template
| | [Documentation]
-| | ... | [Cfg] DUT runs L2XC config with ${wt} thread(s), ${wt}\
-| | ... | phy core(s), ${rxq} receive queue(s) per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for ${framesize} frames using single\
+| | ... | [Cfg] DUT runs L2XC config with ${phy_cores} phy
+| | ... | core(s).
+| | ... | [Ver] Measure MaxReceivedRate for ${framesize}B frames using single\
| | ... | trial throughput test.
| | ...
-| | [Arguments] | ${framesize} | ${wt} | ${rxq}
+| | ... | *Arguments:*
+| | ... | - framesize - Framesize in Bytes in integer or string (IMIX_v4_1).
+| | ... | Type: integer, string
+| | ... | - phy_cores - Number of physical cores. Type: integer
+| | ... | - rxq - Number of RX queues, default value: ${None}. Type: integer
+| | ...
+| | [Arguments] | ${framesize} | ${phy_cores} | ${rxq}=${None}
| | ...
-| | # Test Variables required for test teardown
| | Set Test Variable | ${framesize}
| | ${get_framesize}= | Get Frame Size | ${framesize}
| | ${max_rate}= | Calculate pps | ${s_limit} | ${get_framesize}
| | ...
-| | Given Add '${wt}' worker threads and '${rxq}' rxqueues in 3-node single-link circular topology
+| | Given Add worker threads and rxqueues to all DUTs | ${phy_cores} | ${rxq}
| | And Add PCI devices to all DUTs
| | And Run Keyword If | ${get_framesize} < ${1522}
| | ... | Add no multi seg to all DUTs
@@ -72,136 +79,49 @@
*** Test Cases ***
| tc01-64B-1t1c-eth-l2xcbase-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2XC config with 1 phy core,\
-| | ... | 1 receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 64B frames using single trial\
-| | ... | throughput test.
| | [Tags] | 64B | 1C
-| | ...
-| | [Template] | Check RR for l2xcbase
-| | framesize=${64} | wt=1 | rxq=1
+| | framesize=${64} | phy_cores=${1}
| tc02-1518B-1t1c-eth-l2xcbase-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2XC config with 1 phy core,\
-| | ... | 1 receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 1518B frames using single\
-| | ... | trial throughput test.
| | [Tags] | 1518B | 1C
-| | ...
-| | [Template] | Check RR for l2xcbase
-| | framesize=${1518} | wt=1 | rxq=1
+| | framesize=${1518} | phy_cores=${1}
| tc03-9000B-1t1c-eth-l2xcbase-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2XC config with 1 phy core,\
-| | ... | 1 receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 9000B frames using single\
-| | ... | trial throughput test.
| | [Tags] | 9000B | 1C
-| | ...
-| | [Template] | Check RR for l2xcbase
-| | framesize=${9000} | wt=1 | rxq=1
+| | framesize=${9000} | phy_cores=${1}
| tc04-IMIX-1t1c-eth-l2xcbase-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2XC config with 1 phy core,\
-| | ... | 1 receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for IMIX frames using single\
-| | ... | trial throughput test.
-| | ... | IMIX_v4_1 = (28x64B;16x570B;4x1518B)
| | [Tags] | IMIX | 1C
-| | ...
-| | [Template] | Check RR for l2xcbase
-| | framesize=IMIX_v4_1 | wt=1 | rxq=1
+| | framesize=IMIX_v4_1 | phy_cores=${1}
| tc05-64B-2t2c-eth-l2xcbase-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2XC config with 2 phy cores,\
-| | ... | 1 receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 64B frames using single trial\
-| | ... | throughput test.
| | [Tags] | 64B | 2C
-| | ...
-| | [Template] | Check RR for l2xcbase
-| | framesize=${64} | wt=2 | rxq=1
+| | framesize=${64} | phy_cores=${2}
| tc06-1518B-2t2c-eth-l2xcbase-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2XC config with 2 phy cores,\
-| | ... | 1 receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 1518B frames using single\
-| | ... | trial throughput test.
| | [Tags] | 1518B | 2C
-| | ...
-| | [Template] | Check RR for l2xcbase
-| | framesize=${1518} | wt=2 | rxq=1
+| | framesize=${1518} | phy_cores=${2}
| tc07-9000B-2t2c-eth-l2xcbase-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2XC config with 2 phy cores,\
-| | ... | 1 receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 9000B frames using single\
-| | ... | trial throughput test.
| | [Tags] | 9000B | 2C
-| | ...
-| | [Template] | Check RR for l2xcbase
-| | framesize=${9000} | wt=2 | rxq=1
+| | framesize=${9000} | phy_cores=${2}
| tc08-IMIX-2t2c-eth-l2xcbase-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2XC config with 2 phy cores,\
-| | ... | 1 receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for IMIX frames using single\
-| | ... | trial throughput test.
-| | ... | IMIX_v4_1 = (28x64B;16x570B;4x1518B)
| | [Tags] | IMIX | 2C
-| | ...
-| | [Template] | Check RR for l2xcbase
-| | framesize=IMIX_v4_1 | wt=2 | rxq=1
+| | framesize=IMIX_v4_1 | phy_cores=${2}
| tc09-64B-4t4c-eth-l2xcbase-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2XC config with 4 phy cores,\
-| | ... | 2 receive queues per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 64B frames using single trial\
-| | ... | throughput test.
| | [Tags] | 64B | 4C
-| | ...
-| | [Template] | Check RR for l2xcbase
-| | framesize=${64} | wt=4 | rxq=2
+| | framesize=${64} | phy_cores=${4}
| tc10-1518B-4t4c-eth-l2xcbase-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2XC config with 4 phy cores,\
-| | ... | 2 receive queues per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 1518B frames using single\
-| | ... | trial throughput test.
| | [Tags] | 1518B | 4C
-| | ...
-| | [Template] | Check RR for l2xcbase
-| | framesize=${1518} | wt=4 | rxq=2
+| | framesize=${1518} | phy_cores=${4}
| tc11-9000B-4t4c-eth-l2xcbase-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2XC config with 4 phy cores,\
-| | ... | 2 receive queues per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 9000B frames using single\
-| | ... | trial throughput test.
| | [Tags] | 9000B | 4C
-| | ...
-| | [Template] | Check RR for l2xcbase
-| | framesize=${9000} | wt=4 | rxq=2
+| | framesize=${9000} | phy_cores=${4}
| tc12-IMIX-4t4c-eth-l2xcbase-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2XC config with 4 phy cores,\
-| | ... | 2 receive queues per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for IMIX frames using single\
-| | ... | trial throughput test.
-| | ... | IMIX_v4_1 = (28x64B;16x570B;4x1518B)
| | [Tags] | IMIX | 4C
-| | ...
-| | [Template] | Check RR for l2xcbase
-| | framesize=IMIX_v4_1 | wt=4 | rxq=2
+| | framesize=IMIX_v4_1 | phy_cores=${4}
diff --git a/tests/vpp/perf/l2/10ge2p1x520-eth-l2xcbase-ndrpdrdisc.robot b/tests/vpp/perf/l2/10ge2p1x520-eth-l2xcbase-ndrpdrdisc.robot
index dd27a66f7f..41b9c4a9fe 100644
--- a/tests/vpp/perf/l2/10ge2p1x520-eth-l2xcbase-ndrpdrdisc.robot
+++ b/tests/vpp/perf/l2/10ge2p1x520-eth-l2xcbase-ndrpdrdisc.robot
@@ -68,7 +68,7 @@
| | ${binary_min}= | Set Variable | ${min_rate}
| | ${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
+| | Given Add worker threads and rxqueues to all DUTs | 1
| | And Add PCI devices to all DUTs
| | And Add no multi seg to all DUTs
| | And Apply startup configuration on all VPP DUTs
@@ -89,7 +89,7 @@
| | ${binary_min}= | Set Variable | ${min_rate}
| | ${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
+| | Given Add worker threads and rxqueues to all DUTs | 1
| | And Add PCI devices to all DUTs
| | And Add no multi seg to all DUTs
| | And Apply startup configuration on all VPP DUTs
@@ -111,7 +111,7 @@
| | ${binary_min}= | Set Variable | ${min_rate}
| | ${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
+| | Given Add worker threads and rxqueues to all DUTs | 1
| | And Add PCI devices to all DUTs
| | And Add no multi seg to all DUTs
| | And Apply startup configuration on all VPP DUTs
@@ -132,7 +132,7 @@
| | ${binary_min}= | Set Variable | ${min_rate}
| | ${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
+| | Given Add worker threads and rxqueues to all DUTs | 1
| | And Add PCI devices to all DUTs
| | And Add no multi seg to all DUTs
| | And Apply startup configuration on all VPP DUTs
@@ -154,7 +154,7 @@
| | ${binary_min}= | Set Variable | ${min_rate}
| | ${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
+| | Given Add worker threads and rxqueues to all DUTs | 1
| | And Add PCI devices to all DUTs
| | And Apply startup configuration on all VPP DUTs
| | And Initialize L2 xconnect in 3-node circular topology
@@ -174,7 +174,7 @@
| | ${binary_min}= | Set Variable | ${min_rate}
| | ${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
+| | Given Add worker threads and rxqueues to all DUTs | 1
| | And Add PCI devices to all DUTs
| | And Apply startup configuration on all VPP DUTs
| | And Initialize L2 xconnect in 3-node circular topology
@@ -195,7 +195,7 @@
| | ${binary_min}= | Set Variable | ${min_rate}
| | ${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
+| | Given Add worker threads and rxqueues to all DUTs | 2
| | And Add PCI devices to all DUTs
| | And Add no multi seg to all DUTs
| | And Apply startup configuration on all VPP DUTs
@@ -216,7 +216,7 @@
| | ${binary_min}= | Set Variable | ${min_rate}
| | ${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
+| | Given Add worker threads and rxqueues to all DUTs | 2
| | And Add PCI devices to all DUTs
| | And Add no multi seg to all DUTs
| | And Apply startup configuration on all VPP DUTs
@@ -238,7 +238,7 @@
| | ${binary_min}= | Set Variable | ${min_rate}
| | ${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
+| | Given Add worker threads and rxqueues to all DUTs | 2
| | And Add PCI devices to all DUTs
| | And Add no multi seg to all DUTs
| | And Apply startup configuration on all VPP DUTs
@@ -259,7 +259,7 @@
| | ${binary_min}= | Set Variable | ${min_rate}
| | ${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
+| | Given Add worker threads and rxqueues to all DUTs | 2
| | And Add PCI devices to all DUTs
| | And Add no multi seg to all DUTs
| | And Apply startup configuration on all VPP DUTs
@@ -281,7 +281,7 @@
| | ${binary_min}= | Set Variable | ${min_rate}
| | ${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
+| | Given Add worker threads and rxqueues to all DUTs | 2
| | And Add PCI devices to all DUTs
| | And Apply startup configuration on all VPP DUTs
| | And Initialize L2 xconnect in 3-node circular topology
@@ -301,7 +301,7 @@
| | ${binary_min}= | Set Variable | ${min_rate}
| | ${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
+| | Given Add worker threads and rxqueues to all DUTs | 2
| | And Add PCI devices to all DUTs
| | And Apply startup configuration on all VPP DUTs
| | And Initialize L2 xconnect in 3-node circular topology
@@ -322,7 +322,7 @@
| | ${binary_min}= | Set Variable | ${min_rate}
| | ${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
+| | Given Add worker threads and rxqueues to all DUTs | 4
| | And Add PCI devices to all DUTs
| | And Add no multi seg to all DUTs
| | And Apply startup configuration on all VPP DUTs
@@ -343,7 +343,7 @@
| | ${binary_min}= | Set Variable | ${min_rate}
| | ${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
+| | Given Add worker threads and rxqueues to all DUTs | 4
| | And Add PCI devices to all DUTs
| | And Add no multi seg to all DUTs
| | And Apply startup configuration on all VPP DUTs
@@ -365,7 +365,7 @@
| | ${binary_min}= | Set Variable | ${min_rate}
| | ${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
+| | Given Add worker threads and rxqueues to all DUTs | 4
| | And Add PCI devices to all DUTs
| | And Add no multi seg to all DUTs
| | And Apply startup configuration on all VPP DUTs
@@ -386,7 +386,7 @@
| | ${binary_min}= | Set Variable | ${min_rate}
| | ${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
+| | Given Add worker threads and rxqueues to all DUTs | 4
| | And Add PCI devices to all DUTs
| | And Add no multi seg to all DUTs
| | And Apply startup configuration on all VPP DUTs
@@ -408,7 +408,7 @@
| | ${binary_min}= | Set Variable | ${min_rate}
| | ${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
+| | Given Add worker threads and rxqueues to all DUTs | 4
| | And Add PCI devices to all DUTs
| | And Apply startup configuration on all VPP DUTs
| | And Initialize L2 xconnect in 3-node circular topology
@@ -428,11 +428,11 @@
| | ${binary_min}= | Set Variable | ${min_rate}
| | ${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
+| | Given Add worker threads and rxqueues to all DUTs | 4
| | And Add PCI devices to all DUTs
| | And Apply startup configuration on all VPP DUTs
| | And Initialize L2 xconnect in 3-node circular topology
| | Then Find PDR using binary search and pps | ${framesize} | ${binary_min}
| | ... | ${binary_max} | ${traffic_profile}
| | ... | ${min_rate} | ${max_rate} | ${threshold}
-| | ... | ${perf_pdr_loss_acceptance} | ${perf_pdr_loss_acceptance_type} \ No newline at end of file
+| | ... | ${perf_pdr_loss_acceptance} | ${perf_pdr_loss_acceptance_type}
diff --git a/tests/vpp/perf/l2/10ge2p1x710-dot1q-l2bdbasemaclrn-mrr.robot b/tests/vpp/perf/l2/10ge2p1x710-dot1q-l2bdbasemaclrn-mrr.robot
index 9afd686d9a..3d2a94ed9c 100644
--- a/tests/vpp/perf/l2/10ge2p1x710-dot1q-l2bdbasemaclrn-mrr.robot
+++ b/tests/vpp/perf/l2/10ge2p1x710-dot1q-l2bdbasemaclrn-mrr.robot
@@ -24,6 +24,8 @@
| Test Setup | Set up performance test
| Test Teardown | Tear down performance mrr test
| ...
+| Test Template | Local template
+| ...
| Documentation | *Raw results L2BD test cases with 802.1q test cases*
| ...
| ... | *[Top] Network Topologies:* TG-DUT1-DUT2-TG 3-node circular topology\
@@ -57,22 +59,27 @@
| ${traffic_profile}= | trex-sl-3n-ethip4-ip4src254
*** Keywords ***
-| Check RR for L2 dot1q-l2bdbasemaclrn
+| Local template
| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD config with VLAN with ${wt} thread(s), ${wt}\
-| | ... | phy core(s), ${rxq} receive queue(s) per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for ${framesize} frames using single\
+| | ... | [Cfg] DUT runs L2BD config with VLAN with ${phy_cores} phy
+| | ... | core(s).
+| | ... | [Ver] Measure MaxReceivedRate for ${framesize}B frames using single\
| | ... | trial throughput test.
| | ...
-| | [Arguments] | ${framesize} | ${wt} | ${rxq}
+| | ... | *Arguments:*
+| | ... | - framesize - Framesize in Bytes in integer or string (IMIX_v4_1).
+| | ... | Type: integer, string
+| | ... | - phy_cores - Number of physical cores. Type: integer
+| | ... | - rxq - Number of RX queues, default value: ${None}. Type: integer
+| | ...
+| | [Arguments] | ${phy_cores} | ${framesize} | ${rxq}=${None}
| | ...
-| | # Test Variables required for test teardown
| | Set Test Variable | ${framesize}
| | ${get_framesize}= | Get Frame Size | ${framesize}
| | ${max_rate}= | Calculate pps | ${s_limit}
| | ... | ${get_framesize} + ${vlan_overhead}
| | ...
-| | Given Add '${wt}' worker threads and '${rxq}' rxqueues in 3-node single-link circular topology
+| | Given Add worker threads and rxqueues to all DUTs | ${phy_cores} | ${rxq}
| | And Add PCI devices to all DUTs
| | And Run Keyword If | ${get_framesize} < ${1522}
| | ... | Add no multi seg to all DUTs
@@ -84,148 +91,49 @@
*** Test Cases ***
| tc01-64B-1t1c-dot1q-l2bdbasemaclrn-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with 1 phy core,\
-| | ... | 1 receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 64B frames using single trial\
-| | ... | throughput test.
-| | ...
| | [Tags] | 64B | 1C
-| | ...
-| | [Template] | Check RR for L2 dot1q-l2bdbasemaclrn
-| | wt=1 | rxq=1 | framesize=${64}
+| | phy_cores=${1} | framesize=${64}
| tc02-1518B-1t1c-dot1q-l2bdbasemaclrn-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with 1 phy core,\
-| | ... | 1 receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 1518B frames using single trial\
-| | ... | throughput test.
-| | ...
| | [Tags] | 1518B | 1C
-| | ...
-| | [Template] | Check RR for L2 dot1q-l2bdbasemaclrn
-| | wt=1 | rxq=1 | framesize=${1518}
+| | phy_cores=${1} | framesize=${1518}
| tc03-9000B-1t1c-dot1q-l2bdbasemaclrn-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with 1 phy core,\
-| | ... | 1 receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 9000B frames using single trial\
-| | ... | throughput test.
-| | ...
| | [Tags] | 9000B | 1C
-| | ...
-| | [Template] | Check RR for L2 dot1q-l2bdbasemaclrn
-| | wt=1 | rxq=1 | framesize=${9000}
+| | phy_cores=${1} | framesize=${9000}
| tc04-IMIX-1t1c-dot1q-l2bdbasemaclrn-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with 1 phy core,\
-| | ... | 1 receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for IMIX_v4_1 frames using single trial\
-| | ... | throughput test.
-| | ... | IMIX_v4_1 = (28x64B; 16x570B; 4x1518B)
-| | ...
| | [Tags] | IMIX | 1C
-| | ...
-| | [Template] | Check RR for L2 dot1q-l2bdbasemaclrn
-| | wt=1 | rxq=1 | framesize=IMIX_v4_1
+| | phy_cores=${1} | framesize=IMIX_v4_1
| tc05-64B-2t2c-dot1q-l2bdbasemaclrn-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with 2 phy cores,\
-| | ... | 1 receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 64B frames using single trial\
-| | ... | throughput test.
-| | ...
| | [Tags] | 64B | 2C
-| | ...
-| | [Template] | Check RR for L2 dot1q-l2bdbasemaclrn
-| | wt=2 | rxq=1 | framesize=${64}
+| | phy_cores=${2} | framesize=${64}
| tc06-1518B-2t2c-dot1q-l2bdbasemaclrn-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with 2 phy cores,\
-| | ... | 1 receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 1518B frames using single trial\
-| | ... | throughput test.
-| | ...
| | [Tags] | 1518B | 2C
-| | ...
-| | [Template] | Check RR for L2 dot1q-l2bdbasemaclrn
-| | wt=2 | rxq=1 | framesize=${1518}
+| | phy_cores=${2} | framesize=${1518}
| tc07-9000B-2t2c-dot1q-l2bdbasemaclrn-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with 2 phy cores,\
-| | ... | 1 receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 9000B frames using single trial\
-| | ... | throughput test.
-| | ...
| | [Tags] | 9000B | 2C
-| | ...
-| | [Template] | Check RR for L2 dot1q-l2bdbasemaclrn
-| | wt=2 | rxq=1 | framesize=${9000}
+| | phy_cores=${2} | framesize=${9000}
| tc08-IMIX-2t2c-dot1q-l2bdbasemaclrn-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with 2 phy cores,\
-| | ... | 1 receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for IMIX_v4_1 frames using single trial\
-| | ... | throughput test.
-| | ... | IMIX_v4_1 = (28x64B; 16x570B; 4x1518B)
-| | ...
| | [Tags] | IMIX | 2C
-| | ...
-| | [Template] | Check RR for L2 dot1q-l2bdbasemaclrn
-| | wt=2 | rxq=1 | framesize=IMIX_v4_1
+| | phy_cores=${2} | framesize=IMIX_v4_1
| tc09-64B-4t4c-dot1q-l2bdbasemaclrn-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with 4 phy cores,\
-| | ... | 2 receive queues per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 64B frames using single trial\
-| | ... | throughput test.
-| | ...
| | [Tags] | 64B | 4C
-| | ...
-| | [Template] | Check RR for L2 dot1q-l2bdbasemaclrn
-| | wt=4 | rxq=2 | framesize=${64}
+| | phy_cores=${4} | framesize=${64}
| tc10-1518B-4t4c-dot1q-l2bdbasemaclrn-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with 4 phy cores,\
-| | ... | 2 receive queues per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 1518B frames using single trial\
-| | ... | throughput test.
-| | ...
| | [Tags] | 1518B | 4C
-| | ...
-| | [Template] | Check RR for L2 dot1q-l2bdbasemaclrn
-| | wt=4 | rxq=2 | framesize=${1518}
+| | phy_cores=${4} | framesize=${1518}
| tc11-9000B-4t4c-dot1q-l2bdbasemaclrn-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with 4 phy cores,\
-| | ... | 2 receive queues per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 9000B frames using single trial\
-| | ... | throughput test.
-| | ...
| | [Tags] | 9000B | 4C
-| | ...
-| | [Template] | Check RR for L2 dot1q-l2bdbasemaclrn
-| | wt=4 | rxq=2 | framesize=${9000}
+| | phy_cores=${4} | framesize=${9000}
| tc12-IMIX-4t4c-dot1q-l2bdbasemaclrn-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with 4 phy cores,\
-| | ... | 2 receive queues per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for IMIX_v4_1 frames using single trial\
-| | ... | throughput test.
-| | ... | IMIX_v4_1 = (28x64B; 16x570B; 4x1518B)
-| | ...
| | [Tags] | IMIX | 4C
-| | ...
-| | [Template] | Check RR for L2 dot1q-l2bdbasemaclrn
-| | wt=4 | rxq=2 | framesize=IMIX_v4_1
+| | phy_cores=${4} | framesize=IMIX_v4_1
diff --git a/tests/vpp/perf/l2/10ge2p1x710-dot1q-l2xcbase-mrr.robot b/tests/vpp/perf/l2/10ge2p1x710-dot1q-l2xcbase-mrr.robot
index 006267cb65..1e596508bf 100644
--- a/tests/vpp/perf/l2/10ge2p1x710-dot1q-l2xcbase-mrr.robot
+++ b/tests/vpp/perf/l2/10ge2p1x710-dot1q-l2xcbase-mrr.robot
@@ -21,11 +21,12 @@
| ... | L2 | Intel-X710
| Suite Teardown | Tear down 3-node performance topology
| ...
-| ...
| Test Setup | Set up performance test
| ...
| Test Teardown | Tear down performance mrr test
| ...
+| Test Template | Local template
+| ...
| Documentation | *Raw results L2XC with 802.1q test cases*
| ...
| ... | *[Top] Network Topologies:* TG-DUT1-DUT2-TG 3-node circular topology\
@@ -53,21 +54,26 @@
| ${traffic_profile}= | trex-sl-3n-ethip4-ip4src254
*** Keywords ***
-| Check RR for L2XC dot1q-l2xcbase
+| Local template
| | [Documentation]
-| | ... | [Cfg] DUT runs L2XC config with VLAN dot1q with ${wt} thread(s), \
-| | ... | ${wt} phy core(s), ${rxq} receive queue(s) per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for ${framesize} frames using single\
+| | ... | [Cfg] DUT runs L2XC config with VLAN dot1q with ${phy_cores} phy
+| | ... | core(s).
+| | ... | [Ver] Measure MaxReceivedRate for ${framesize}B frames using single\
| | ... | trial throughput test.
| | ...
-| | [Arguments] | ${framesize} | ${wt} | ${rxq}
+| | ... | *Arguments:*
+| | ... | - framesize - Framesize in Bytes in integer or string (IMIX_v4_1).
+| | ... | Type: integer, string
+| | ... | - phy_cores - Number of physical cores. Type: integer
+| | ... | - rxq - Number of RX queues, default value: ${None}. Type: integer
+| | ...
+| | [Arguments] | ${phy_cores} | ${framesize} | ${rxq}=${None}
| | ...
-| | # Test Variables required for test teardown
| | Set Test Variable | ${framesize}
| | ${get_framesize}= | Get Frame Size | ${framesize}
| | ${max_rate}= | Calculate pps | ${s_limit} | ${get_framesize}
| | ...
-| | Given Add '${wt}' worker threads and '${rxq}' rxqueues in 3-node single-link circular topology
+| | Given Add worker threads and rxqueues to all DUTs | ${phy_cores} | ${rxq}
| | And Add PCI devices to all DUTs
| | And Run Keyword If | ${get_framesize} < ${1522}
| | ... | Add no multi seg to all DUTs
@@ -86,148 +92,49 @@
*** Test Cases ***
| tc01-64B-1t1c-dot1q-l2xcbase-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2XC switching config with 1 phy core, \
-| | ... | 1 receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 64B frames using single trial\
-| | ... | throughput test.
-| | ...
| | [Tags] | 64B | 1C
-| | ...
-| | [Template] | Check RR for L2XC dot1q-l2xcbase
-| | wt=1 | rxq=1 | framesize=${64}
+| | phy_cores=${1} | framesize=${64}
| tc02-1518B-1t1c-dot1q-l2xcbase-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2XC switching config with 1 phy core, \
-| | ... | 1 receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 1518B frames using single trial\
-| | ... | throughput test.
-| | ...
| | [Tags] | 1518B | 1C
-| | ...
-| | [Template] | Check RR for L2XC dot1q-l2xcbase
-| | wt=1 | rxq=1 | framesize=${1518}
+| | phy_cores=${1} | framesize=${1518}
| tc03-9000B-1t1c-dot1q-l2xcbase-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2XC switching config with 1 phy core, \
-| | ... | 1 receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 9000B frames using single trial\
-| | ... | throughput test.
-| | ...
| | [Tags] | 9000B | 1C
-| | ...
-| | [Template] | Check RR for L2XC dot1q-l2xcbase
-| | wt=1 | rxq=1 | framesize=${9000}
+| | phy_cores=${1} | framesize=${9000}
| tc04-IMIX-1t1c-dot1q-l2xcbase-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2XC switching config with 1 phy core, \
-| | ... | 1 receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for IMIX_v4_1 frames using single trial\
-| | ... | throughput test.
-| | ... | IMIX_v4_1 = (28x64B; 16x570B; 4x1518B)
-| | ...
| | [Tags] | IMIX | 1C
-| | ...
-| | [Template] | Check RR for L2XC dot1q-l2xcbase
-| | wt=1 | rxq=1 | framesize=IMIX_v4_1
+| | phy_cores=${1} | framesize=IMIX_v4_1
| tc05-64B-2t2c-dot1q-l2xcbase-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2XC switching config with 2 phy cores, \
-| | ... | 1 receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 64B frames using single trial\
-| | ... | throughput test.
-| | ...
| | [Tags] | 64B | 2C
-| | ...
-| | [Template] | Check RR for L2XC dot1q-l2xcbase
-| | wt=2 | rxq=1 | framesize=${64}
+| | phy_cores=${2} | framesize=${64}
| tc06-1518B-2t2c-dot1q-l2xcbase-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2XC switching config with 2 phy cores, \
-| | ... | 1 receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 1518B frames using single trial\
-| | ... | throughput test.
-| | ...
| | [Tags] | 1518B | 2C
-| | ...
-| | [Template] | Check RR for L2XC dot1q-l2xcbase
-| | wt=2 | rxq=1 | framesize=${1518}
+| | phy_cores=${2} | framesize=${1518}
| tc07-9000B-2t2c-dot1q-l2xcbase-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2XC switching config with 2 phy cores, \
-| | ... | 1 receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 9000B frames using single trial\
-| | ... | throughput test.
-| | ...
| | [Tags] | 9000B | 2C
-| | ...
-| | [Template] | Check RR for L2XC dot1q-l2xcbase
-| | wt=2 | rxq=1 | framesize=${9000}
+| | phy_cores=${2} | framesize=${9000}
| tc08-IMIX-2t2c-dot1q-l2xcbase-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2XC switching config with 2 phy cores, \
-| | ... | 1 receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for IMIX_v4_1 frames using single trial\
-| | ... | throughput test.
-| | ... | IMIX_v4_1 = (28x64B; 16x570B; 4x1518B)
-| | ...
| | [Tags] | IMIX | 2C
-| | ...
-| | [Template] | Check RR for L2XC dot1q-l2xcbase
-| | wt=2 | rxq=1 | framesize=IMIX_v4_1
+| | phy_cores=${2} | framesize=IMIX_v4_1
| tc09-64B-4t4c-dot1q-l2xcbase-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2XC switching config with 4 phy cores, \
-| | ... | 2 receive queues per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 64B frames using single trial\
-| | ... | throughput test.
-| | ...
| | [Tags] | 64B | 4C
-| | ...
-| | [Template] | Check RR for L2XC dot1q-l2xcbase
-| | wt=4 | rxq=2 | framesize=${64}
+| | phy_cores=${4} | framesize=${64}
| tc10-1518B-4t4c-dot1q-l2xcbase-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2XC switching config with 4 phy cores, \
-| | ... | 2 receive queues per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 1518B frames using single trial\
-| | ... | throughput test.
-| | ...
| | [Tags] | 1518B | 4C
-| | ...
-| | [Template] | Check RR for L2XC dot1q-l2xcbase
-| | wt=4 | rxq=2 | framesize=${1518}
+| | phy_cores=${4} | framesize=${1518}
| tc11-9000B-4t4c-dot1q-l2xcbase-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2XC switching config with 4 phy cores, \
-| | ... | 2 receive queues per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 9000B frames using single trial\
-| | ... | throughput test.
-| | ...
| | [Tags] | 9000B | 4C
-| | ...
-| | [Template] | Check RR for L2XC dot1q-l2xcbase
-| | wt=4 | rxq=2 | framesize=${9000}
+| | phy_cores=${4} | framesize=${9000}
| tc12-IMIX-4t4c-dot1q-l2xcbase-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2XC switching config with 4 phy cores, \
-| | ... | 2 receive queues per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for IMIX_v4_1 frames using single trial\
-| | ... | throughput test.
-| | ... | IMIX_v4_1 = (28x64B; 16x570B; 4x1518B)
-| | ...
| | [Tags] | IMIX | 4C
-| | ...
-| | [Template] | Check RR for L2XC dot1q-l2xcbase
-| | wt=4 | rxq=2 | framesize=IMIX_v4_1
+| | phy_cores=${4} | framesize=IMIX_v4_1
diff --git a/tests/vpp/perf/l2/10ge2p1x710-eth-l2bdbasemaclrn-iacl1sf-10kflows-mrr.robot b/tests/vpp/perf/l2/10ge2p1x710-eth-l2bdbasemaclrn-iacl1sf-10kflows-mrr.robot
index 75188cb724..ebe2b9d075 100644
--- a/tests/vpp/perf/l2/10ge2p1x710-eth-l2bdbasemaclrn-iacl1sf-10kflows-mrr.robot
+++ b/tests/vpp/perf/l2/10ge2p1x710-eth-l2bdbasemaclrn-iacl1sf-10kflows-mrr.robot
@@ -28,6 +28,8 @@
| ...
| Test Teardown | Tear down performance mrr test
| ...
+| Test Template | Local template
+| ...
| Documentation | *Raw results L2BD test cases with ACL*
| ...
| ... | *[Top] Network Topologies:* TG-DUT1-DUT2-TG 3-node circular topology\
@@ -71,21 +73,26 @@
| ${traffic_profile}= | trex-sl-3n-ethip4udp-10u1000p-conc
*** Keywords ***
-| Check RR for L2BD l2bdbasemaclrn-iacl1sf
+| Local template
| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD config with ACLs with ${wt} thread(s), ${wt}\
-| | ... | phy core(s), ${rxq} receive queue(s) per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for ${framesize} frames using single\
+| | ... | [Cfg] DUT runs L2BD config with ACLs with ${phy_cores} phy
+| | ... | core(s).
+| | ... | [Ver] Measure MaxReceivedRate for ${framesize}B frames using single\
| | ... | trial throughput test.
| | ...
-| | [Arguments] | ${wt} | ${rxq} | ${framesize}
+| | ... | *Arguments:*
+| | ... | - framesize - Framesize in Bytes in integer or string (IMIX_v4_1).
+| | ... | Type: integer, string
+| | ... | - phy_cores - Number of physical cores. Type: integer
+| | ... | - rxq - Number of RX queues, default value: ${None}. Type: integer
+| | ...
+| | [Arguments] | ${phy_cores} | ${framesize} | ${rxq}=${None}
| | ...
-| | # Test Variables required for test teardown
| | Set Test Variable | ${framesize}
| | ${get_framesize}= | Get Frame Size | ${framesize}
| | ${max_rate}= | Calculate pps | ${s_limit} | ${get_framesize}
| | ...
-| | Given Add '${wt}' worker threads and '${rxq}' rxqueues in 3-node single-link circular topology
+| | Given Add worker threads and rxqueues to all DUTs | ${phy_cores} | ${rxq}
| | And Add PCI devices to all DUTs
| | And Run Keyword If | ${get_framesize} < ${1522}
| | ... | Add no multi seg to all DUTs
@@ -96,148 +103,49 @@
*** Test Cases ***
| tc01-64B-1t1c-eth-l2bdbasemaclrn-iacl1-stateful-flows10k-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with ACL with\
-| | ... | 1 phy core, 1 receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 64B frames using single trial\
-| | ... | throughput test.
-| | ...
| | [Tags] | 64B | 1C
-| | ...
-| | [Template] | Check RR for L2BD l2bdbasemaclrn-iacl1sf
-| | wt=1 | rxq=1 | framesize=${64}
+| | phy_cores=${1} | framesize=${64}
| tc02-1518B-1t1c-eth-l2bdbasemaclrn-iacl1-stateful-flows10k-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with ACL with\
-| | ... | 1 phy core, 1 receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 1518B frames using single trial\
-| | ... | throughput test.
-| | ...
| | [Tags] | 1518B | 1C
-| | ...
-| | [Template] | Check RR for L2BD l2bdbasemaclrn-iacl1sf
-| | wt=1 | rxq=1 | framesize=${1518}
+| | phy_cores=${1} | framesize=${1518}
| tc03-9000B-1t1c-eth-l2bdbasemaclrn-iacl1-stateful-flows10k-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with ACL with\
-| | ... | 1 phy core, 1 receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 9000B frames using single trial\
-| | ... | throughput test.
-| | ...
| | [Tags] | 9000B | 1C
-| | ...
-| | [Template] | Check RR for L2BD l2bdbasemaclrn-iacl1sf
-| | wt=1 | rxq=1 | framesize=${9000}
+| | phy_cores=${1} | framesize=${9000}
| tc04-IMIX-1t1c-eth-l2bdbasemaclrn-iacl1-stateful-flows10k-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with ACL with\
-| | ... | 1 phy core, 1 receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for IMIX_v4_1 frames using single trial\
-| | ... | throughput test.
-| | ... | IMIX_v4_1 = (28x64B; 16x570B; 4x1518B)
-| | ...
| | [Tags] | IMIX | 1C
-| | ...
-| | [Template] | Check RR for L2BD l2bdbasemaclrn-iacl1sf
-| | wt=1 | rxq=1 | framesize=IMIX_v4_1
+| | phy_cores=${1} | framesize=IMIX_v4_1
| tc05-64B-2t2c-eth-l2bdbasemaclrn-iacl1-stateful-flows10k-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with ACL with\
-| | ... | 2 phy cores, 1 receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 64B frames using single trial\
-| | ... | throughput test.
-| | ...
| | [Tags] | 64B | 2C
-| | ...
-| | [Template] | Check RR for L2BD l2bdbasemaclrn-iacl1sf
-| | wt=2 | rxq=1 | framesize=${64}
+| | phy_cores=${2} | framesize=${64}
| tc06-1518B-2t2c-eth-l2bdbasemaclrn-iacl1-stateful-flows10k-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with ACL with\
-| | ... | 2 phy cores, 1 receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 1518B frames using single trial\
-| | ... | throughput test.
-| | ...
| | [Tags] | 1518B | 2C
-| | ...
-| | [Template] | Check RR for L2BD l2bdbasemaclrn-iacl1sf
-| | wt=2 | rxq=1 | framesize=${1518}
+| | phy_cores=${2} | framesize=${1518}
| tc07-9000B-2t2c-eth-l2bdbasemaclrn-iacl1-stateful-flows10k-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with ACL with\
-| | ... | 2 phy cores, 1 receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 9000B frames using single trial\
-| | ... | throughput test.
-| | ...
| | [Tags] | 9000B | 2C
-| | ...
-| | [Template] | Check RR for L2BD l2bdbasemaclrn-iacl1sf
-| | wt=2 | rxq=1 | framesize=${9000}
+| | phy_cores=${2} | framesize=${9000}
| tc08-IMIX-2t2c-eth-l2bdbasemaclrn-iacl1-stateful-flows10k-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with ACL with\
-| | ... | 2 phy cores, 1 receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for IMIX_v4_1 frames using single trial\
-| | ... | throughput test.
-| | ... | IMIX_v4_1 = (28x64B; 16x570B; 4x1518B)
-| | ...
| | [Tags] | IMIX | 2C
-| | ...
-| | [Template] | Check RR for L2BD l2bdbasemaclrn-iacl1sf
-| | wt=2 | rxq=1 | framesize=IMIX_v4_1
+| | phy_cores=${2} | framesize=IMIX_v4_1
| tc09-64B-4t4c-eth-l2bdbasemaclrn-iacl1-stateful-flows10k-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with ACL with\
-| | ... | 4 phy cores, 2 receive queues per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 64B frames using single trial\
-| | ... | throughput test.
-| | ...
| | [Tags] | 64B | 4C
-| | ...
-| | [Template] | Check RR for L2BD l2bdbasemaclrn-iacl1sf
-| | wt=4 | rxq=2 | framesize=${64}
+| | phy_cores=${4} | framesize=${64}
| tc10-1518B-2t2c-eth-l2bdbasemaclrn-iacl1-stateful-flows10k-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with ACL with\
-| | ... | 4 phy cores, 2 receive queues per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 1518B frames using single trial\
-| | ... | throughput test.
-| | ...
| | [Tags] | 1518B | 4C
-| | ...
-| | [Template] | Check RR for L2BD l2bdbasemaclrn-iacl1sf
-| | wt=4 | rxq=2 | framesize=${1518}
+| | phy_cores=${4} | framesize=${1518}
| tc11-9000B-2t2c-eth-l2bdbasemaclrn-iacl1-stateful-flows10k-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with ACL with\
-| | ... | 4 phy cores, 2 receive queues per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 9000B frames using single trial\
-| | ... | throughput test.
-| | ...
| | [Tags] | 9000B | 4C
-| | ...
-| | [Template] | Check RR for L2BD l2bdbasemaclrn-iacl1sf
-| | wt=4 | rxq=2 | framesize=${9000}
+| | phy_cores=${4} | framesize=${9000}
| tc12-IMIX-2t2c-eth-l2bdbasemaclrn-iacl1-stateful-flows10k-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with ACL with\
-| | ... | 4 phy cores, 2 receive queues per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for IMIX_v4_1 frames using single trial\
-| | ... | throughput test.
-| | ... | IMIX_v4_1 = (28x64B; 16x570B; 4x1518B)
-| | ...
| | [Tags] | IMIX | 4C
-| | ...
-| | [Template] | Check RR for L2BD l2bdbasemaclrn-iacl1sf
-| | wt=4 | rxq=2 | framesize=IMIX_v4_1
+| | phy_cores=${4} | framesize=IMIX_v4_1
diff --git a/tests/vpp/perf/l2/10ge2p1x710-eth-l2bdbasemaclrn-iacl1sl-10kflows-mrr.robot b/tests/vpp/perf/l2/10ge2p1x710-eth-l2bdbasemaclrn-iacl1sl-10kflows-mrr.robot
index 14d482ce5f..326a01809b 100644
--- a/tests/vpp/perf/l2/10ge2p1x710-eth-l2bdbasemaclrn-iacl1sl-10kflows-mrr.robot
+++ b/tests/vpp/perf/l2/10ge2p1x710-eth-l2bdbasemaclrn-iacl1sl-10kflows-mrr.robot
@@ -28,6 +28,8 @@
| ...
| Test Teardown | Tear down performance mrr test
| ...
+| Test Template | Local template
+| ...
| Documentation | *Raw results L2BD test cases with ACL*
| ...
| ... | *[Top] Network Topologies:* TG-DUT1-DUT2-TG 3-node circular topology\
@@ -71,21 +73,26 @@
| ${traffic_profile}= | trex-sl-3n-ethip4udp-10u1000p-conc
*** Keywords ***
-| Check RR for L2BD l2bdbasemaclrn-iacl1sl
+| Local template
| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD config with ACLs with ${wt} thread(s), ${wt}\
-| | ... | phy core(s), ${rxq} receive queue(s) per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for ${framesize} frames using single\
+| | ... | [Cfg] DUT runs L2BD config with ACLs with ${phy_cores} phy
+| | ... | core(s).
+| | ... | [Ver] Measure MaxReceivedRate for ${framesize}B frames using single\
| | ... | trial throughput test.
| | ...
-| | [Arguments] | ${wt} | ${rxq} | ${framesize}
+| | ... | *Arguments:*
+| | ... | - framesize - Framesize in Bytes in integer or string (IMIX_v4_1).
+| | ... | Type: integer, string
+| | ... | - phy_cores - Number of physical cores. Type: integer
+| | ... | - rxq - Number of RX queues, default value: ${None}. Type: integer
+| | ...
+| | [Arguments] | ${phy_cores} | ${framesize} | ${rxq}=${None}
| | ...
-| | # Test Variables required for test teardown
| | Set Test Variable | ${framesize}
| | ${get_framesize}= | Get Frame Size | ${framesize}
| | ${max_rate}= | Calculate pps | ${s_limit} | ${get_framesize}
| | ...
-| | Given Add '${wt}' worker threads and '${rxq}' rxqueues in 3-node single-link circular topology
+| | Given Add worker threads and rxqueues to all DUTs | ${phy_cores} | ${rxq}
| | And Add PCI devices to all DUTs
| | And Run Keyword If | ${get_framesize} < ${1522}
| | ... | Add no multi seg to all DUTs
@@ -96,148 +103,49 @@
*** Test Cases ***
| tc01-64B-1t1c-eth-l2bdbasemaclrn-iacl1-stateless-flows10k-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with ACL with\
-| | ... | 1 phy core, 1 receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 64B frames using single trial\
-| | ... | throughput test.
-| | ...
| | [Tags] | 64B | 1C
-| | ...
-| | [Template] | Check RR for L2BD l2bdbasemaclrn-iacl1sl
-| | wt=1 | rxq=1 | framesize=${64}
+| | phy_cores=${1} | framesize=${64}
| tc02-1518B-1t1c-eth-l2bdbasemaclrn-iacl1-stateless-flows10k-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with ACL with\
-| | ... | 1 phy core, 1 receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 1518B frames using single trial\
-| | ... | throughput test.
-| | ...
| | [Tags] | 1518B | 1C
-| | ...
-| | [Template] | Check RR for L2BD l2bdbasemaclrn-iacl1sl
-| | wt=1 | rxq=1 | framesize=${1518}
+| | phy_cores=${1} | framesize=${1518}
| tc03-9000B-1t1c-eth-l2bdbasemaclrn-iacl1-stateless-flows10k-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with ACL with\
-| | ... | 1 phy core, 1 receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 9000B frames using single trial\
-| | ... | throughput test.
-| | ...
| | [Tags] | 9000B | 1C
-| | ...
-| | [Template] | Check RR for L2BD l2bdbasemaclrn-iacl1sl
-| | wt=1 | rxq=1 | framesize=${9000}
+| | phy_cores=${1} | framesize=${9000}
| tc04-IMIX-1t1c-eth-l2bdbasemaclrn-iacl1-stateless-flows10k-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with ACL with\
-| | ... | 1 phy core, 1 receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for IMIX_v4_1 frames using single trial\
-| | ... | throughput test.
-| | ... | IMIX_v4_1 = (28x64B; 16x570B; 4x1518B)
-| | ...
| | [Tags] | IMIX | 1C
-| | ...
-| | [Template] | Check RR for L2BD l2bdbasemaclrn-iacl1sl
-| | wt=1 | rxq=1 | framesize=IMIX_v4_1
+| | phy_cores=${1} | framesize=IMIX_v4_1
| tc05-64B-2t2c-eth-l2bdbasemaclrn-iacl1-stateless-flows10k-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with ACL with\
-| | ... | 2 phy cores, 1 receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 64B frames using single trial\
-| | ... | throughput test.
-| | ...
| | [Tags] | 64B | 2C
-| | ...
-| | [Template] | Check RR for L2BD l2bdbasemaclrn-iacl1sl
-| | wt=2 | rxq=1 | framesize=${64}
+| | phy_cores=${2} | framesize=${64}
| tc06-1518B-2t2c-eth-l2bdbasemaclrn-iacl1-stateless-flows10k-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with ACL with\
-| | ... | 2 phy cores, 1 receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 1518B frames using single trial\
-| | ... | throughput test.
-| | ...
| | [Tags] | 1518B | 2C
-| | ...
-| | [Template] | Check RR for L2BD l2bdbasemaclrn-iacl1sl
-| | wt=2 | rxq=1 | framesize=${1518}
+| | phy_cores=${2} | framesize=${1518}
| tc07-9000B-2t2c-eth-l2bdbasemaclrn-iacl1-stateless-flows10k-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with ACL with\
-| | ... | 2 phy cores, 1 receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 9000B frames using single trial\
-| | ... | throughput test.
-| | ...
| | [Tags] | 9000B | 2C
-| | ...
-| | [Template] | Check RR for L2BD l2bdbasemaclrn-iacl1sl
-| | wt=2 | rxq=1 | framesize=${9000}
+| | phy_cores=${2} | framesize=${9000}
| tc08-IMIX-2t2c-eth-l2bdbasemaclrn-iacl1-stateless-flows10k-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with ACL with\
-| | ... | 2 phy cores, 1 receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for IMIX_v4_1 frames using single trial\
-| | ... | throughput test.
-| | ... | IMIX_v4_1 = (28x64B; 16x570B; 4x1518B)
-| | ...
| | [Tags] | IMIX | 2C
-| | ...
-| | [Template] | Check RR for L2BD l2bdbasemaclrn-iacl1sl
-| | wt=2 | rxq=1 | framesize=IMIX_v4_1
+| | phy_cores=${2} | framesize=IMIX_v4_1
| tc09-64B-4t4c-eth-l2bdbasemaclrn-iacl1-stateless-flows10k-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with ACL with\
-| | ... | 4 phy cores, 2 receive queues per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 64B frames using single trial\
-| | ... | throughput test.
-| | ...
| | [Tags] | 64B | 4C
-| | ...
-| | [Template] | Check RR for L2BD l2bdbasemaclrn-iacl1sl
-| | wt=4 | rxq=2 | framesize=${64}
+| | phy_cores=${4} | framesize=${64}
| tc10-1518B-4t4c-eth-l2bdbasemaclrn-iacl1-stateless-flows10k-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with ACL with\
-| | ... | 4 phy cores, 2 receive queues per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 1518B frames using single trial\
-| | ... | throughput test.
-| | ...
| | [Tags] | 1518B | 4C
-| | ...
-| | [Template] | Check RR for L2BD l2bdbasemaclrn-iacl1sl
-| | wt=4 | rxq=2 | framesize=${1518}
+| | phy_cores=${4} | framesize=${1518}
| tc11-9000B-4t4c-eth-l2bdbasemaclrn-iacl1-stateless-flows10k-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with ACL with\
-| | ... | 4 phy cores, 2 receive queues per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 9000B frames using single trial\
-| | ... | throughput test.
-| | ...
| | [Tags] | 9000B | 4C
-| | ...
-| | [Template] | Check RR for L2BD l2bdbasemaclrn-iacl1sl
-| | wt=4 | rxq=2 | framesize=${9000}
+| | phy_cores=${4} | framesize=${9000}
| tc12-IMIX-4t4c-eth-l2bdbasemaclrn-iacl1-stateless-flows10k-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with ACL with\
-| | ... | 4 phy cores, 2 receive queues per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for IMIX_v4_1 frames using single trial\
-| | ... | throughput test.
-| | ... | IMIX_v4_1 = (28x64B; 16x570B; 4x1518B)
-| | ...
| | [Tags] | IMIX | 4C
-| | ...
-| | [Template] | Check RR for L2BD l2bdbasemaclrn-iacl1sl
-| | wt=4 | rxq=2 | framesize=IMIX_v4_1
+| | phy_cores=${4} | framesize=IMIX_v4_1
diff --git a/tests/vpp/perf/l2/10ge2p1x710-eth-l2bdbasemaclrn-iacl50sf-10kflows-mrr.robot b/tests/vpp/perf/l2/10ge2p1x710-eth-l2bdbasemaclrn-iacl50sf-10kflows-mrr.robot
index 74bc15cea1..8b56ac8431 100644
--- a/tests/vpp/perf/l2/10ge2p1x710-eth-l2bdbasemaclrn-iacl50sf-10kflows-mrr.robot
+++ b/tests/vpp/perf/l2/10ge2p1x710-eth-l2bdbasemaclrn-iacl50sf-10kflows-mrr.robot
@@ -28,6 +28,8 @@
| ...
| Test Teardown | Tear down performance mrr test
| ...
+| Test Template | Local template
+| ...
| Documentation | *Raw results L2BD test cases with ACL*
| ...
| ... | *[Top] Network Topologies:* TG-DUT1-DUT2-TG 3-node circular topology\
@@ -71,21 +73,26 @@
| ${traffic_profile}= | trex-sl-3n-ethip4udp-10u1000p-conc
*** Keywords ***
-| Check RR for L2BD l2bdbasemaclrn-iacl50sf
+| Local template
| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD config with ACLs with ${wt} thread(s), ${wt}\
-| | ... | phy core(s), ${rxq} receive queue(s) per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for ${framesize} frames using single\
+| | ... | [Cfg] DUT runs L2BD config with ACLs with ${phy_cores} phy
+| | ... | core(s).
+| | ... | [Ver] Measure MaxReceivedRate for ${framesize}B frames using single\
| | ... | trial throughput test.
| | ...
-| | [Arguments] | ${wt} | ${rxq} | ${framesize}
+| | ... | *Arguments:*
+| | ... | - framesize - Framesize in Bytes in integer or string (IMIX_v4_1).
+| | ... | Type: integer, string
+| | ... | - phy_cores - Number of physical cores. Type: integer
+| | ... | - rxq - Number of RX queues, default value: ${None}. Type: integer
+| | ...
+| | [Arguments] | ${phy_cores} | ${framesize} | ${rxq}=${None}
| | ...
-| | # Test Variables required for test teardown
| | Set Test Variable | ${framesize}
| | ${get_framesize}= | Get Frame Size | ${framesize}
| | ${max_rate}= | Calculate pps | ${s_limit} | ${get_framesize}
| | ...
-| | Given Add '${wt}' worker threads and '${rxq}' rxqueues in 3-node single-link circular topology
+| | Given Add worker threads and rxqueues to all DUTs | ${phy_cores} | ${rxq}
| | And Add PCI devices to all DUTs
| | And Run Keyword If | ${get_framesize} < ${1522}
| | ... | Add no multi seg to all DUTs
@@ -96,148 +103,49 @@
*** Test Cases ***
| tc01-64B-1t1c-eth-l2bdbasemaclrn-iacl50-stateful-flows10k-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with ACL with\
-| | ... | 1 phy core, 1 receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 64B frames using single trial\
-| | ... | throughput test.
-| | ...
| | [Tags] | 64B | 1C
-| | ...
-| | [Template] | Check RR for L2BD l2bdbasemaclrn-iacl50sf
-| | wt=1 | rxq=1 | framesize=${64}
+| | phy_cores=${1} | framesize=${64}
| tc02-1518B-1t1c-eth-l2bdbasemaclrn-iacl50-stateful-flows10k-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with ACL with\
-| | ... | 1 phy core, 1 receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 1518B frames using single trial\
-| | ... | throughput test.
-| | ...
| | [Tags] | 1518B | 1C
-| | ...
-| | [Template] | Check RR for L2BD l2bdbasemaclrn-iacl50sf
-| | wt=1 | rxq=1 | framesize=${1518}
+| | phy_cores=${1} | framesize=${1518}
| tc03-9000B-1t1c-eth-l2bdbasemaclrn-iacl50-stateful-flows10k-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with ACL with\
-| | ... | 1 phy core, 1 receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 9000B frames using single trial\
-| | ... | throughput test.
-| | ...
| | [Tags] | 9000B | 1C
-| | ...
-| | [Template] | Check RR for L2BD l2bdbasemaclrn-iacl50sf
-| | wt=1 | rxq=1 | framesize=${9000}
+| | phy_cores=${1} | framesize=${9000}
| tc04-IMIX-1t1c-eth-l2bdbasemaclrn-iacl50-stateful-flows10k-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with ACL with\
-| | ... | 1 phy core, 1 receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for IMIX_v4_1 frames using single trial\
-| | ... | throughput test.
-| | ... | IMIX_v4_1 = (28x64B; 16x570B; 4x1518B)
-| | ...
| | [Tags] | IMIX | 1C
-| | ...
-| | [Template] | Check RR for L2BD l2bdbasemaclrn-iacl50sf
-| | wt=1 | rxq=1 | framesize=IMIX_v4_1
+| | phy_cores=${1} | framesize=IMIX_v4_1
| tc05-64B-2t2c-eth-l2bdbasemaclrn-iacl50-stateful-flows10k-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with ACL with\
-| | ... | 2 phy cores, 1 receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 64B frames using single trial\
-| | ... | throughput test.
-| | ...
| | [Tags] | 64B | 2C
-| | ...
-| | [Template] | Check RR for L2BD l2bdbasemaclrn-iacl50sf
-| | wt=2 | rxq=1 | framesize=${64}
+| | phy_cores=${2} | framesize=${64}
| tc06-1518B-2t2c-eth-l2bdbasemaclrn-iacl50-stateful-flows10k-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with ACL with\
-| | ... | 2 phy cores, 1 receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 1518B frames using single trial\
-| | ... | throughput test.
-| | ...
| | [Tags] | 1518B | 2C
-| | ...
-| | [Template] | Check RR for L2BD l2bdbasemaclrn-iacl50sf
-| | wt=2 | rxq=1 | framesize=${1518}
+| | phy_cores=${2} | framesize=${1518}
| tc07-9000B-2t2c-eth-l2bdbasemaclrn-iacl50-stateful-flows10k-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with ACL with\
-| | ... | 2 phy cores, 1 receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 9000B frames using single trial\
-| | ... | throughput test.
-| | ...
| | [Tags] | 9000B | 2C
-| | ...
-| | [Template] | Check RR for L2BD l2bdbasemaclrn-iacl50sf
-| | wt=2 | rxq=1 | framesize=${9000}
+| | phy_cores=${2} | framesize=${9000}
| tc08-IMIX-2t2c-eth-l2bdbasemaclrn-iacl50-stateful-flows10k-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with ACL with\
-| | ... | 2 phy cores, 1 receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for IMIX_v4_1 frames using single trial\
-| | ... | throughput test.
-| | ... | IMIX_v4_1 = (28x64B; 16x570B; 4x1518B)
-| | ...
| | [Tags] | IMIX | 2C
-| | ...
-| | [Template] | Check RR for L2BD l2bdbasemaclrn-iacl50sf
-| | wt=2 | rxq=1 | framesize=IMIX_v4_1
+| | phy_cores=${2} | framesize=IMIX_v4_1
| tc09-64B-4t4c-eth-l2bdbasemaclrn-iacl50-stateful-flows10k-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with ACL with\
-| | ... | 4 phy cores, 2 receive queues per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 64B frames using single trial\
-| | ... | throughput test.
-| | ...
| | [Tags] | 64B | 4C
-| | ...
-| | [Template] | Check RR for L2BD l2bdbasemaclrn-iacl50sf
-| | wt=4 | rxq=2 | framesize=${64}
+| | phy_cores=${4} | framesize=${64}
| tc10-1518B-4t4c-eth-l2bdbasemaclrn-iacl50-stateful-flows10k-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with ACL with\
-| | ... | 4 phy cores, 2 receive queues per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 1518B frames using single trial\
-| | ... | throughput test.
-| | ...
| | [Tags] | 1518B | 4C
-| | ...
-| | [Template] | Check RR for L2BD l2bdbasemaclrn-iacl50sf
-| | wt=4 | rxq=2 | framesize=${1518}
+| | phy_cores=${4} | framesize=${1518}
| tc11-9000B-4t4c-eth-l2bdbasemaclrn-iacl50-stateful-flows10k-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with ACL with\
-| | ... | 4 phy cores, 2 receive queues per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 9000B frames using single trial\
-| | ... | throughput test.
-| | ...
| | [Tags] | 9000B | 4C
-| | ...
-| | [Template] | Check RR for L2BD l2bdbasemaclrn-iacl50sf
-| | wt=4 | rxq=2 | framesize=${9000}
+| | phy_cores=${4} | framesize=${9000}
| tc12-IMIX-4t4c-eth-l2bdbasemaclrn-iacl50-stateful-flows10k-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with ACL with\
-| | ... | 4 phy cores, 2 receive queues per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for IMIX_v4_1 frames using single trial\
-| | ... | throughput test.
-| | ... | IMIX_v4_1 = (28x64B; 16x570B; 4x1518B)
-| | ...
| | [Tags] | IMIX | 4C
-| | ...
-| | [Template] | Check RR for L2BD l2bdbasemaclrn-iacl50sf
-| | wt=4 | rxq=2 | framesize=IMIX_v4_1
+| | phy_cores=${4} | framesize=IMIX_v4_1
diff --git a/tests/vpp/perf/l2/10ge2p1x710-eth-l2bdbasemaclrn-iacl50sl-10kflows-mrr.robot b/tests/vpp/perf/l2/10ge2p1x710-eth-l2bdbasemaclrn-iacl50sl-10kflows-mrr.robot
index c486b38cce..ec5360b311 100644
--- a/tests/vpp/perf/l2/10ge2p1x710-eth-l2bdbasemaclrn-iacl50sl-10kflows-mrr.robot
+++ b/tests/vpp/perf/l2/10ge2p1x710-eth-l2bdbasemaclrn-iacl50sl-10kflows-mrr.robot
@@ -28,6 +28,8 @@
| ...
| Test Teardown | Tear down performance mrr test
| ...
+| Test Template | Local template
+| ...
| Documentation | *Raw results L2BD test cases with ACL*
| ...
| ... | *[Top] Network Topologies:* TG-DUT1-DUT2-TG 3-node circular topology\
@@ -71,21 +73,26 @@
| ${traffic_profile}= | trex-sl-3n-ethip4udp-10u1000p-conc
*** Keywords ***
-| Check RR for L2BD l2bdbasemaclrn-iacl50sl
+| Local template
| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD config with ACLs with ${wt} thread(s), ${wt}\
-| | ... | phy core(s), ${rxq} receive queue(s) per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for ${framesize} frames using single\
+| | ... | [Cfg] DUT runs L2BD config with ACLs with ${phy_cores} phy
+| | ... | core(s).
+| | ... | [Ver] Measure MaxReceivedRate for ${framesize}B frames using single\
| | ... | trial throughput test.
| | ...
-| | [Arguments] | ${wt} | ${rxq} | ${framesize}
+| | ... | *Arguments:*
+| | ... | - framesize - Framesize in Bytes in integer or string (IMIX_v4_1).
+| | ... | Type: integer, string
+| | ... | - phy_cores - Number of physical cores. Type: integer
+| | ... | - rxq - Number of RX queues, default value: ${None}. Type: integer
+| | ...
+| | [Arguments] | ${phy_cores} | ${framesize} | ${rxq}=${None}
| | ...
-| | # Test Variables required for test teardown
| | Set Test Variable | ${framesize}
| | ${get_framesize}= | Get Frame Size | ${framesize}
| | ${max_rate}= | Calculate pps | ${s_limit} | ${get_framesize}
| | ...
-| | Given Add '${wt}' worker threads and '${rxq}' rxqueues in 3-node single-link circular topology
+| | Given Add worker threads and rxqueues to all DUTs | ${phy_cores} | ${rxq}
| | And Add PCI devices to all DUTs
| | And Run Keyword If | ${get_framesize} < ${1522}
| | ... | Add no multi seg to all DUTs
@@ -96,148 +103,49 @@
*** Test Cases ***
| tc01-64B-1t1c-eth-l2bdbasemaclrn-iacl50-stateless-flows10k-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with ACL with\
-| | ... | 1 phy core, 1 receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 64B frames using single trial\
-| | ... | throughput test.
-| | ...
| | [Tags] | 64B | 1C
-| | ...
-| | [Template] | Check RR for L2BD l2bdbasemaclrn-iacl50sl
-| | wt=1 | rxq=1 | framesize=${64}
+| | phy_cores=${1} | framesize=${64}
| tc02-1518B-1t1c-eth-l2bdbasemaclrn-iacl50-stateless-flows10k-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with ACL with\
-| | ... | 1 phy core, 1 receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 1518B frames using single trial\
-| | ... | throughput test.
-| | ...
| | [Tags] | 1518B | 1C
-| | ...
-| | [Template] | Check RR for L2BD l2bdbasemaclrn-iacl50sl
-| | wt=1 | rxq=1 | framesize=${1518}
+| | phy_cores=${1} | framesize=${1518}
| tc03-9000B-1t1c-eth-l2bdbasemaclrn-iacl50-stateless-flows10k-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with ACL with\
-| | ... | 1 phy core, 1 receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 9000B frames using single trial\
-| | ... | throughput test.
-| | ...
| | [Tags] | 9000B | 1C
-| | ...
-| | [Template] | Check RR for L2BD l2bdbasemaclrn-iacl50sl
-| | wt=1 | rxq=1 | framesize=${9000}
+| | phy_cores=${1} | framesize=${9000}
| tc04-IMIX-1t1c-eth-l2bdbasemaclrn-iacl50-stateless-flows10k-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with ACL with\
-| | ... | 1 phy core, 1 receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for IMIX_v4_1 frames using single trial\
-| | ... | throughput test.
-| | ... | IMIX_v4_1 = (28x64B; 16x570B; 4x1518B)
-| | ...
| | [Tags] | IMIX | 1C
-| | ...
-| | [Template] | Check RR for L2BD l2bdbasemaclrn-iacl50sl
-| | wt=1 | rxq=1 | framesize=IMIX_v4_1
+| | phy_cores=${1} | framesize=IMIX_v4_1
| tc05-64B-2t2c-eth-l2bdbasemaclrn-iacl50-stateless-flows10k-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with ACL with\
-| | ... | 2 phy cores, 1 receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 64B frames using single trial\
-| | ... | throughput test.
-| | ...
| | [Tags] | 64B | 2C
-| | ...
-| | [Template] | Check RR for L2BD l2bdbasemaclrn-iacl50sl
-| | wt=2 | rxq=1 | framesize=${64}
+| | phy_cores=${2} | framesize=${64}
| tc06-1518B-2t2c-eth-l2bdbasemaclrn-iacl50-stateless-flows10k-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with ACL with\
-| | ... | 2 phy cores, 1 receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 1518B frames using single trial\
-| | ... | throughput test.
-| | ...
| | [Tags] | 1518B | 2C
-| | ...
-| | [Template] | Check RR for L2BD l2bdbasemaclrn-iacl50sl
-| | wt=2 | rxq=1 | framesize=${1518}
+| | phy_cores=${2} | framesize=${1518}
| tc07-9000B-2t2c-eth-l2bdbasemaclrn-iacl50-stateless-flows10k-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with ACL with\
-| | ... | 2 phy cores, 1 receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 9000B frames using single trial\
-| | ... | throughput test.
-| | ...
| | [Tags] | 9000B | 2C
-| | ...
-| | [Template] | Check RR for L2BD l2bdbasemaclrn-iacl50sl
-| | wt=2 | rxq=1 | framesize=${9000}
+| | phy_cores=${2} | framesize=${9000}
| tc08-IMIX-2t2c-eth-l2bdbasemaclrn-iacl50-stateless-flows10k-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with ACL with\
-| | ... | 2 phy cores, 1 receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for IMIX_v4_1 frames using single trial\
-| | ... | throughput test.
-| | ... | IMIX_v4_1 = (28x64B; 16x570B; 4x1518B)
-| | ...
| | [Tags] | IMIX | 2C
-| | ...
-| | [Template] | Check RR for L2BD l2bdbasemaclrn-iacl50sl
-| | wt=2 | rxq=1 | framesize=IMIX_v4_1
+| | phy_cores=${2} | framesize=IMIX_v4_1
| tc09-64B-4t4c-eth-l2bdbasemaclrn-iacl50-stateless-flows10k-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with ACL with\
-| | ... | 4 phy cores, 2 receive queues per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 64B frames using single trial\
-| | ... | throughput test.
-| | ...
| | [Tags] | 64B | 4C
-| | ...
-| | [Template] | Check RR for L2BD l2bdbasemaclrn-iacl50sl
-| | wt=4 | rxq=2 | framesize=${64}
+| | phy_cores=${4} | framesize=${64}
| tc10-1518B-4t4c-eth-l2bdbasemaclrn-iacl50-stateless-flows10k-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with ACL with\
-| | ... | 4 phy cores, 2 receive queues per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 1518B frames using single trial\
-| | ... | throughput test.
-| | ...
| | [Tags] | 1518B | 4C
-| | ...
-| | [Template] | Check RR for L2BD l2bdbasemaclrn-iacl50sl
-| | wt=4 | rxq=2 | framesize=${1518}
+| | phy_cores=${4} | framesize=${1518}
| tc11-9000B-4t4c-eth-l2bdbasemaclrn-iacl50-stateless-flows10k-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with ACL with\
-| | ... | 4 phy cores, 2 receive queues per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 9000B frames using single trial\
-| | ... | throughput test.
-| | ...
| | [Tags] | 9000B | 4C
-| | ...
-| | [Template] | Check RR for L2BD l2bdbasemaclrn-iacl50sl
-| | wt=4 | rxq=2 | framesize=${9000}
+| | phy_cores=${4} | framesize=${9000}
| tc12-IMIX-4t4c-eth-l2bdbasemaclrn-iacl50-stateless-flows10k-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with ACL with\
-| | ... | 4 phy cores, 2 receive queues per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for IMIX_v4_1 frames using single trial\
-| | ... | throughput test.
-| | ... | IMIX_v4_1 = (28x64B; 16x570B; 4x1518B)
-| | ...
| | [Tags] | IMIX | 4C
-| | ...
-| | [Template] | Check RR for L2BD l2bdbasemaclrn-iacl50sl
-| | wt=4 | rxq=2 | framesize=IMIX_v4_1
+| | phy_cores=${4} | framesize=IMIX_v4_1
diff --git a/tests/vpp/perf/l2/10ge2p1x710-eth-l2bdbasemaclrn-mrr.robot b/tests/vpp/perf/l2/10ge2p1x710-eth-l2bdbasemaclrn-mrr.robot
index 384c33b0e8..ce5d65badb 100644
--- a/tests/vpp/perf/l2/10ge2p1x710-eth-l2bdbasemaclrn-mrr.robot
+++ b/tests/vpp/perf/l2/10ge2p1x710-eth-l2bdbasemaclrn-mrr.robot
@@ -24,6 +24,8 @@
| Test Setup | Set up performance test
| Test Teardown | Tear down performance mrr test
| ...
+| Test Template | Local template
+| ...
| Documentation | *Raw results L2BD test cases*
| ...
| ... | *[Top] Network Topologies:* TG-DUT1-DUT2-TG 3-node circular topology
@@ -48,21 +50,26 @@
| ${traffic_profile}= | trex-sl-3n-ethip4-ip4src254
*** Keywords ***
-| Check RR for l2bdbasemaclrn
+| Local template
| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD config with ${wt} thread(s), ${wt}\
-| | ... | phy core(s), ${rxq} receive queue(s) per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for ${framesize} frames using single\
+| | ... | [Cfg] DUT runs L2BD config with ${phy_cores} phy
+| | ... | core(s).
+| | ... | [Ver] Measure MaxReceivedRate for ${framesize}B frames using single\
| | ... | trial throughput test.
| | ...
-| | [Arguments] | ${framesize} | ${wt} | ${rxq}
+| | ... | *Arguments:*
+| | ... | - framesize - Framesize in Bytes in integer or string (IMIX_v4_1).
+| | ... | Type: integer, string
+| | ... | - phy_cores - Number of physical cores. Type: integer
+| | ... | - rxq - Number of RX queues, default value: ${None}. Type: integer
+| | ...
+| | [Arguments] | ${framesize} | ${phy_cores} | ${rxq}=${None}
| | ...
-| | # Test Variables required for test teardown
| | Set Test Variable | ${framesize}
| | ${get_framesize}= | Get Frame Size | ${framesize}
| | ${max_rate}= | Calculate pps | ${s_limit} | ${framesize}
| | ...
-| | Given Add '${wt}' worker threads and '${rxq}' rxqueues in 3-node single-link circular topology
+| | Given Add worker threads and rxqueues to all DUTs | ${phy_cores} | ${rxq}
| | And Add PCI devices to all DUTs
| | And Run Keyword If | ${get_framesize} < ${1522}
| | ... | Add no multi seg to all DUTs
@@ -73,148 +80,49 @@
*** Test Cases ***
| tc01-64B-1t1c-eth-l2bdbasemaclrn-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD config with 1 phy core,\
-| | ... | 1 receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 64B frames using single trial\
-| | ... | throughput test.
-| | ...
| | [Tags] | 64B | 1C
-| | ...
-| | [Template] | Check RR for l2bdbasemaclrn
-| | framesize=${64} | wt=1 | rxq=1
+| | framesize=${64} | phy_cores=${1}
| tc02-1518B-1t1c-eth-l2bdbasemaclrn-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD config with 1 phy core,\
-| | ... | 1 receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 1518B frames using single\
-| | ... | trial throughput test.
-| | ...
| | [Tags] | 1518B | 1C
-| | ...
-| | [Template] | Check RR for l2bdbasemaclrn
-| | framesize=${1518} | wt=1 | rxq=1
+| | framesize=${1518} | phy_cores=${1}
| tc03-9000B-1t1c-eth-l2bdbasemaclrn-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD config with 1 phy core,\
-| | ... | 1 receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 9000B frames using single\
-| | ... | trial throughput test.
-| | ...
| | [Tags] | 9000B | 1C
-| | ...
-| | [Template] | Check RR for l2bdbasemaclrn
-| | framesize=${9000} | wt=1 | rxq=1
+| | framesize=${9000} | phy_cores=${1}
| tc04-IMIX-1t1c-eth-l2bdbasemaclrn-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD config with 1 phy core,\
-| | ... | 1 receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for IMIX_v4_1 frames using single\
-| | ... | trial throughput test.
-| | ... | IMIX_v4_1 = (28x64B; 16x570B; 4x1518B)
-| | ...
| | [Tags] | IMIX | 1C
-| | ...
-| | [Template] | Check RR for l2bdbasemaclrn
-| | framesize=IMIX_v4_1 | wt=1 | rxq=1
+| | framesize=IMIX_v4_1 | phy_cores=${1}
| tc05-64B-2t2c-eth-l2bdbasemaclrn-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD config with 2 phy cores,\
-| | ... | 1 receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 64B frames using single trial\
-| | ... | throughput test.
-| | ...
| | [Tags] | 64B | 2C
-| | ...
-| | [Template] | Check RR for l2bdbasemaclrn
-| | framesize=${64} | wt=2 | rxq=1
+| | framesize=${64} | phy_cores=${2}
| tc06-1518B-2t2c-eth-l2bdbasemaclrn-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD config with 2 phy cores,\
-| | ... | 1 receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 1518B frames using single\
-| | ... | trial throughput test.
-| | ...
| | [Tags] | 1518B | 2C
-| | ...
-| | [Template] | Check RR for l2bdbasemaclrn
-| | framesize=${1518} | wt=2 | rxq=1
+| | framesize=${1518} | phy_cores=${2}
| tc07-9000B-2t2c-eth-l2bdbasemaclrn-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD config with 2 phy cores,\
-| | ... | 1 receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 9000B frames using single\
-| | ... | trial throughput test.
-| | ...
| | [Tags] | 9000B | 2C
-| | ...
-| | [Template] | Check RR for l2bdbasemaclrn
-| | framesize=${9000} | wt=2 | rxq=1
+| | framesize=${9000} | phy_cores=${2}
| tc08-IMIX-2t2c-eth-l2bdbasemaclrn-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD config with 2 phy cores,\
-| | ... | 1 receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for IMIX_v4_1 frames using single\
-| | ... | trial throughput test.
-| | ... | IMIX_v4_1 = (28x64B; 16x570B; 4x1518B)
-| | ...
| | [Tags] | IMIX | 2C
-| | ...
-| | [Template] | Check RR for l2bdbasemaclrn
-| | framesize=IMIX_v4_1 | wt=2 | rxq=1
+| | framesize=IMIX_v4_1 | phy_cores=${2}
| tc09-64B-4t4c-eth-l2bdbasemaclrn-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD config with 4 phy cores,\
-| | ... | 2 receive queues per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 64B frames using single trial\
-| | ... | throughput test.
-| | ...
| | [Tags] | 64B | 4C
-| | ...
-| | [Template] | Check RR for l2bdbasemaclrn
-| | framesize=${64} | wt=4 | rxq=2
+| | framesize=${64} | phy_cores=${4}
| tc10-1518B-4t4c-eth-l2bdbasemaclrn-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD config with 4 phy cores,\
-| | ... | 2 receive queues per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 1518B frames using single\
-| | ... | trial throughput test.
-| | ...
| | [Tags] | 1518B | 4C
-| | ...
-| | [Template] | Check RR for l2bdbasemaclrn
-| | framesize=${1518} | wt=4 | rxq=2
+| | framesize=${1518} | phy_cores=${4}
| tc11-9000B-4t4c-eth-l2bdbasemaclrn-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD config with 4 phy cores,\
-| | ... | 2 receive queues per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 9000B frames using single\
-| | ... | trial throughput test.
-| | ...
| | [Tags] | 9000B | 4C
-| | ...
-| | [Template] | Check RR for l2bdbasemaclrn
-| | framesize=${9000} | wt=4 | rxq=2
+| | framesize=${9000} | phy_cores=${4}
| tc12-IMIX-4t4c-eth-l2bdbasemaclrn-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD config with 4 phy cores,\
-| | ... | 2 receive queues per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for IMIX_v4_1 frames using single\
-| | ... | trial throughput test.
-| | ... | IMIX_v4_1 = (28x64B; 16x570B; 4x1518B)
-| | ...
| | [Tags] | IMIX | 4C
-| | ...
-| | [Template] | Check RR for l2bdbasemaclrn
-| | framesize=IMIX_v4_1 | wt=4 | rxq=2
+| | framesize=IMIX_v4_1 | phy_cores=${4}
diff --git a/tests/vpp/perf/l2/10ge2p1x710-eth-l2bdbasemaclrn-ndrpdrdisc.robot b/tests/vpp/perf/l2/10ge2p1x710-eth-l2bdbasemaclrn-ndrpdrdisc.robot
index a1c134f9c8..fd47f48974 100644
--- a/tests/vpp/perf/l2/10ge2p1x710-eth-l2bdbasemaclrn-ndrpdrdisc.robot
+++ b/tests/vpp/perf/l2/10ge2p1x710-eth-l2bdbasemaclrn-ndrpdrdisc.robot
@@ -56,14 +56,14 @@
*** Keywords ***
| L2 Bridge Domain NDR Binary Search
-| | [Arguments] | ${framesize} | ${min_rate} | ${wt} | ${rxq}
+| | [Arguments] | ${framesize} | ${phy_cores} | ${min_rate}=${50000}
| | Set Test Variable | ${framesize}
| | Set Test Variable | ${min_rate}
| | ${max_rate}= | Calculate pps | ${s_limit} | ${framesize}
| | ${binary_min}= | Set Variable | ${min_rate}
| | ${binary_max}= | Set Variable | ${max_rate}
| | ${threshold}= | Set Variable | ${min_rate}
-| | Add '${wt}' worker threads and '${rxq}' rxqueues in 3-node single-link circular topology
+| | Add worker threads and rxqueues to all DUTs | ${phy_cores} | ${None}
| | Add PCI devices to all DUTs
| | ${get_framesize}= | Get Frame Size | ${framesize}
| | Run Keyword If | ${get_framesize} < ${1522} | Add no multi seg to all DUTs
@@ -74,14 +74,14 @@
| | ... | ${min_rate} | ${max_rate} | ${threshold}
| L2 Bridge Domain PDR Binary Search
-| | [Arguments] | ${framesize} | ${min_rate} | ${wt} | ${rxq}
+| | [Arguments] | ${framesize} | ${phy_cores} | ${min_rate}=${50000}
| | Set Test Variable | ${framesize}
| | Set Test Variable | ${min_rate}
| | ${max_rate}= | Calculate pps | ${s_limit} | ${framesize}
| | ${binary_min}= | Set Variable | ${min_rate}
| | ${binary_max}= | Set Variable | ${max_rate}
| | ${threshold}= | Set Variable | ${min_rate}
-| | Add '${wt}' worker threads and '${rxq}' rxqueues in 3-node single-link circular topology
+| | Add worker threads and rxqueues to all DUTs | ${phy_cores} | ${None}
| | Add PCI devices to all DUTs
| | ${get_framesize}= | Get Frame Size | ${framesize}
| | Run Keyword If | ${get_framesize} < ${1522} | Add no multi seg to all DUTs
@@ -94,181 +94,91 @@
*** Test Cases ***
| tc01-64B-1t1c-eth-l2bdbasemaclrn-ndrdisc
-| | ... | framesize=${64} | min_rate=${50000} | wt=1 | rxq=1
+| | ... | framesize=${64} | phy_cores=${1}
| | [Tags] | 64B | 1C | NDRDISC
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with with\
-| | ... | 1 phy core, 1 receive queue per NIC port.
-| | ... | [Ver] Find NDR for 64 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 50kpps.
| | [Template] | L2 Bridge Domain NDR Binary Search
| tc02-64B-1t1c-eth-l2bdbasemaclrn-pdrdisc
-| | ... | framesize=${64} | min_rate=${50000} | wt=1 | rxq=1
+| | ... | framesize=${64} | phy_cores=${1}
| | [Tags] | 64B | 1C | PDRDISC | SKIP_PATCH
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with with\
-| | ... | 1 phy core, 1 receive queue per NIC port.
-| | ... | [Ver] Find PDR for 64 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 50kpps, LT=0.5%.
| | [Template] | L2 Bridge Domain PDR Binary Search
| tc03-1518B-1t1c-eth-l2bdbasemaclrn-ndrdisc
-| | ... | framesize=${1518} | min_rate=${50000} | wt=1 | rxq=1
+| | ... | framesize=${1518} | phy_cores=${1}
| | [Tags] | 1518B | 1C | NDRDISC
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with with\
-| | ... | 1 phy core, 1 receive queue per NIC port.
-| | ... | [Ver] Find NDR for 1518 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 50kpps.
| | [Template] | L2 Bridge Domain NDR Binary Search
| tc04-1518B-1t1c-eth-l2bdbasemaclrn-pdrdisc
-| | ... | framesize=${1518} | min_rate=${50000} | wt=1 | rxq=1
+| | ... | framesize=${1518} | phy_cores=${1}
| | [Tags] | 1518B | 1C | PDRDISC | SKIP_PATCH
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with with\
-| | ... | 1 phy core, 1 receive queue per NIC port.
-| | ... | [Ver] Find PDR for 1518 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 50kpps, LT=0.5%.
| | [Template] | L2 Bridge Domain PDR Binary Search
| tc05-9000B-1t1c-eth-l2bdbasemaclrn-ndrdisc
-| | ... | framesize=${9000} | min_rate=${10000} | wt=1 | rxq=1
+| | ... | framesize=${9000} | phy_cores=${1}
| | [Tags] | 9000B | 1C | NDRDISC
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with with\
-| | ... | 1 phy core, 1 receive queue per NIC port.
-| | ... | [Ver] Find NDR for 9000 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 10kpps.
| | [Template] | L2 Bridge Domain NDR Binary Search
| tc06-9000B-1t1c-eth-l2bdbasemaclrn-pdrdisc
-| | ... | framesize=${9000} | min_rate=${10000} | wt=1 | rxq=1
+| | ... | framesize=${9000} | phy_cores=${1}
| | [Tags] | 9000B | 1C | PDRDISC | SKIP_PATCH
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with with\
-| | ... | 1 phy core, 1 receive queue per NIC port.
-| | ... | [Ver] Find PDR for 9000 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 10kpps, LT=0.5%.
| | [Template] | L2 Bridge Domain PDR Binary Search
| tc07-64B-2t2c-eth-l2bdbasemaclrn-ndrdisc
-| | ... | framesize=${64} | min_rate=${50000} | wt=2 | rxq=1
+| | ... | framesize=${64} | phy_cores=${2}
| | [Tags] | 64B | 2C | NDRDISC
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with with\
-| | ... | 2 phy cores, 1 receive queue per NIC port.
-| | ... | [Ver] Find NDR for 64 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 50kpps.
| | [Template] | L2 Bridge Domain NDR Binary Search
| tc08-64B-2t2c-eth-l2bdbasemaclrn-pdrdisc
-| | ... | framesize=${64} | min_rate=${50000} | wt=2 | rxq=1
+| | ... | framesize=${64} | phy_cores=${2}
| | [Tags] | 64B | 2C | PDRDISC | SKIP_PATCH
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with with\
-| | ... | 2 phy cores, 1 receive queue per NIC port.
-| | ... | [Ver] Find PDR for 64 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 50kpps, LT=0.5%.
| | [Template] | L2 Bridge Domain PDR Binary Search
| tc09-1518B-2t2c-eth-l2bdbasemaclrn-ndrdisc
-| | ... | framesize=${1518} | min_rate=${50000} | wt=2 | rxq=1
+| | ... | framesize=${1518} | phy_cores=${2}
| | [Tags] | 1518B | 2C | NDRDISC | SKIP_PATCH
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with with\
-| | ... | 2 phy cores, 1 receive queue per NIC port.
-| | ... | [Ver] Find NDR for 1518 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 50kpps.
| | [Template] | L2 Bridge Domain NDR Binary Search
| tc10-1518B-2t2c-eth-l2bdbasemaclrn-pdrdisc
-| | ... | framesize=${1518} | min_rate=${50000} | wt=2 | rxq=1
+| | ... | framesize=${1518} | phy_cores=${2}
| | [Tags] | 1518B | 2C | PDRDISC | SKIP_PATCH
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with with\
-| | ... | 2 phy cores, 1 receive queue per NIC port.
-| | ... | [Ver] Find PDR for 1518 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 50kpps, LT=0.5%.
| | [Template] | L2 Bridge Domain PDR Binary Search
| tc11-9000B-2t2c-eth-l2bdbasemaclrn-ndrdisc
-| | ... | framesize=${9000} | min_rate=${10000} | wt=2 | rxq=1
+| | ... | framesize=${9000} | phy_cores=${2}
| | [Tags] | 9000B | 2C | NDRDISC | SKIP_PATCH
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with with\
-| | ... | 2 phy cores, 1 receive queue per NIC port.
-| | ... | [Ver] Find NDR for 9000 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 10kpps.
| | [Template] | L2 Bridge Domain NDR Binary Search
| tc12-9000B-2t2c-eth-l2bdbasemaclrn-pdrdisc
-| | ... | framesize=${9000} | min_rate=${10000} | wt=2 | rxq=1
+| | ... | framesize=${9000} | phy_cores=${2}
| | [Tags] | 9000B | 2C | PDRDISC | SKIP_PATCH
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with with\
-| | ... | 2 phy cores, 1 receive queue per NIC port.
-| | ... | [Ver] Find PDR for 9000 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 10kpps, LT=0.5%.
| | [Template] | L2 Bridge Domain PDR Binary Search
| tc13-64B-4t4c-eth-l2bdbasemaclrn-ndrdisc
-| | ... | framesize=${64} | min_rate=${50000} | wt=4 | rxq=2
+| | ... | framesize=${64} | phy_cores=${4}
| | [Tags] | 64B | 4C | NDRDISC
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with with\
-| | ... | 4 phy cores, 2 receive queues per NIC port.
-| | ... | [Ver] Find NDR for 64 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 50kpps.
| | [Template] | L2 Bridge Domain NDR Binary Search
| tc14-64B-4t4c-eth-l2bdbasemaclrn-pdrdisc
-| | ... | framesize=${64} | min_rate=${50000} | wt=4 | rxq=2
+| | ... | framesize=${64} | phy_cores=${4}
| | [Tags] | 64B | 4C | PDRDISC | SKIP_PATCH
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with with\
-| | ... | 4 phy cores, 2 receive queues per NIC port.
-| | ... | [Ver] Find PDR for 64 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 50kpps, LT=0.5%.
| | [Template] | L2 Bridge Domain PDR Binary Search
| tc15-1518B-4t4c-eth-l2bdbasemaclrn-ndrdisc
-| | ... | framesize=${1518} | min_rate=${50000} | wt=4 | rxq=2
+| | ... | framesize=${1518} | phy_cores=${4}
| | [Tags] | 1518B | 4C | NDRDISC | SKIP_PATCH
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with with\
-| | ... | 4 phy cores, 2 receive queues per NIC port.
-| | ... | [Ver] Find NDR for 1518 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 50kpps.
| | [Template] | L2 Bridge Domain NDR Binary Search
| tc16-1518B-4t4c-eth-l2bdbasemaclrn-pdrdisc
-| | ... | framesize=${1518} | min_rate=${50000} | wt=4 | rxq=2
+| | ... | framesize=${1518} | phy_cores=${4}
| | [Tags] | 1518B | 4C | PDRDISC | SKIP_PATCH
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with with\
-| | ... | 4 phy cores, 2 receive queues per NIC port.
-| | ... | [Ver] Find PDR for 1518 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 50kpps, LT=0.5%.
| | [Template] | L2 Bridge Domain PDR Binary Search
| tc17-9000B-4t4c-eth-l2bdbasemaclrn-ndrdisc
-| | ... | framesize=${9000} | min_rate=${10000} | wt=4 | rxq=2
+| | ... | framesize=${9000} | phy_cores=${4}
| | [Tags] | 9000B | 4C | NDRDISC | SKIP_PATCH
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with with\
-| | ... | 4 phy cores, 2 receive queues per NIC port.
-| | ... | [Ver] Find NDR for 9000 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 10kpps.
| | [Template] | L2 Bridge Domain NDR Binary Search
| tc18-9000B-4t4c-eth-l2bdbasemaclrn-pdrdisc
-| | ... | framesize=${9000} | min_rate=${10000} | wt=4 | rxq=2
+| | ... | framesize=${9000} | phy_cores=${4}
| | [Tags] | 9000B | 4C | PDRDISC | SKIP_PATCH
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with with\
-| | ... | 4 phy cores, 2 receive queues per NIC port.
-| | ... | [Ver] Find PDR for 9000 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 10kpps, LT=0.5%.
| | [Template] | L2 Bridge Domain PDR Binary Search
diff --git a/tests/vpp/perf/l2/10ge2p1x710-eth-l2bdscale100kmaclrn-mrr.robot b/tests/vpp/perf/l2/10ge2p1x710-eth-l2bdscale100kmaclrn-mrr.robot
index c93e8dab44..3e4b5bc9ae 100644
--- a/tests/vpp/perf/l2/10ge2p1x710-eth-l2bdscale100kmaclrn-mrr.robot
+++ b/tests/vpp/perf/l2/10ge2p1x710-eth-l2bdscale100kmaclrn-mrr.robot
@@ -25,6 +25,8 @@
| ...
| Test Teardown | Tear down performance mrr test
| ...
+| Test Template | Local template
+| ...
| Documentation | *Raw results for L2BD test cases*
| ...
| ... | *[Top] Network Topologies:* TG-DUT1-DUT2-TG 3-node circular topology\
@@ -53,15 +55,26 @@
| ${traffic_profile}= | trex-sl-3n-ethip4-macsrc50kdst50k
*** Keywords ***
-| Check RR for L2BD eth-l2bdscale
-| | [Arguments] | ${framesize} | ${wt} | ${rxq}
+| Local template
+| | [Documentation]
+| | ... | [Cfg] DUT runs L2BD switching config with ${phy_cores} phy
+| | ... | core(s).
+| | ... | [Ver] Measure MaxReceivedRate for ${framesize}B frames using single\
+| | ... | trial throughput test.
+| | ...
+| | ... | *Arguments:*
+| | ... | - framesize - Framesize in Bytes in integer or string (IMIX_v4_1).
+| | ... | Type: integer, string
+| | ... | - phy_cores - Number of physical cores. Type: integer
+| | ... | - rxq - Number of RX queues, default value: ${None}. Type: integer
+| | ...
+| | [Arguments] | ${framesize} | ${phy_cores} | ${rxq}=${None}
| | ...
-| | # Test Variables required for test teardown
| | Set Test Variable | ${framesize}
| | ${get_framesize}= | Get Frame Size | ${framesize}
| | ${max_rate}= | Calculate pps | ${s_limit} | ${get_framesize}
| | ...
-| | Given Add '${wt}' worker threads and '${rxq}' rxqueues in 3-node single-link circular topology
+| | Given Add worker threads and rxqueues to all DUTs | ${phy_cores} | ${rxq}
| | And Add PCI devices to all DUTs
| | And Run Keyword If | ${get_framesize} < ${1522}
| | ... | Add no multi seg to all DUTs
@@ -72,148 +85,49 @@
*** Test Cases ***
| tc01-64B-1t1c-eth-l2bdscale100kmaclrn-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with with\
-| | ... | 1 phy core, 1 receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 64B frames using single trial\
-| | ... | throughput test.
-| | ...
| | [Tags] | 64B | 1C
-| | ...
-| | [Template] | Check RR for L2BD eth-l2bdscale
-| | framesize=${64} | wt=1 | rxq=1
+| | framesize=${64} | phy_cores=${1}
| tc02-1518B-1t1c-eth-l2bdscale100kmaclrn-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with with\
-| | ... | 1 phy core, 1 receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 1518B frames using single trial\
-| | ... | throughput test.
-| | ...
| | [Tags] | 1518B | 1C
-| | ...
-| | [Template] | Check RR for L2BD eth-l2bdscale
-| | framesize=${1518} | wt=1 | rxq=1
+| | framesize=${1518} | phy_cores=${1}
| tc03-9000B-1t1c-eth-l2bdscale100kmaclrn-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with with\
-| | ... | 1 phy core, 1 receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 9000B frames using single trial\
-| | ... | throughput test.
-| | ...
| | [Tags] | 9000B | 1C
-| | ...
-| | [Template] | Check RR for L2BD eth-l2bdscale
-| | framesize=${9000} | wt=1 | rxq=1
+| | framesize=${9000} | phy_cores=${1}
| tc04-IMIX-1t1c-eth-l2bdscale100kmaclrn-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with with\
-| | ... | 1 phy core, 1 receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for IMIX_v4_1 frames using single trial\
-| | ... | throughput test.
-| | ... | IMIX_v4_1 = (28x64B; 16x570B; 4x1518B)
-| | ...
| | [Tags] | IMIX | 1C
-| | ...
-| | [Template] | Check RR for L2BD eth-l2bdscale
-| | framesize=IMIX_v4_1 | wt=1 | rxq=1
+| | framesize=IMIX_v4_1 | phy_cores=${1}
| tc05-64B-2t2c-eth-l2bdscale100kmaclrn-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with with\
-| | ... | 2 phy cores, 1 receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 64B frames using single trial\
-| | ... | throughput test.
-| | ...
| | [Tags] | 64B | 2C
-| | ...
-| | [Template] | Check RR for L2BD eth-l2bdscale
-| | framesize=${64} | wt=2 | rxq=1
+| | framesize=${64} | phy_cores=${2}
| tc06-1518B-2t2c-eth-l2bdscale100kmaclrn-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with with\
-| | ... | 2 phy cores, 1 receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 1518B frames using single trial\
-| | ... | throughput test.
-| | ...
| | [Tags] | 1518B | 2C
-| | ...
-| | [Template] | Check RR for L2BD eth-l2bdscale
-| | framesize=${1518} | wt=2 | rxq=1
+| | framesize=${1518} | phy_cores=${2}
| tc07-9000B-2t2c-eth-l2bdscale100kmaclrn-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with with\
-| | ... | 2 phy cores, 1 receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 9000B frames using single trial\
-| | ... | throughput test.
-| | ...
| | [Tags] | 9000B | 2C
-| | ...
-| | [Template] | Check RR for L2BD eth-l2bdscale
-| | framesize=${9000} | wt=2 | rxq=1
+| | framesize=${9000} | phy_cores=${2}
| tc08-IMIX-2t2c-eth-l2bdscale100kmaclrn-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with with\
-| | ... | 2 phy cores, 1 receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for IMIX_v4_1 frames using single trial\
-| | ... | throughput test.
-| | ... | IMIX_v4_1 = (28x64B; 16x570B; 4x1518B)
-| | ...
| | [Tags] | IMIX | 2C
-| | ...
-| | [Template] | Check RR for L2BD eth-l2bdscale
-| | framesize=IMIX_v4_1 | wt=2 | rxq=1
+| | framesize=IMIX_v4_1 | phy_cores=${2}
| tc09-64B-4t4c-eth-l2bdscale100kmaclrn-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with with\
-| | ... | 4 phy cores, 2 receive queues per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 64B frames using single trial\
-| | ... | throughput test.
-| | ...
| | [Tags] | 64B | 4C
-| | ...
-| | [Template] | Check RR for L2BD eth-l2bdscale
-| | framesize=${64} | wt=4 | rxq=2
+| | framesize=${64} | phy_cores=${4}
| tc10-1518B-4t4c-eth-l2bdscale100kmaclrn-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with with\
-| | ... | 4 phy cores, 2 receive queues per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 1518B frames using single trial\
-| | ... | throughput test.
-| | ...
| | [Tags] | 1518B | 4C
-| | ...
-| | [Template] | Check RR for L2BD eth-l2bdscale
-| | framesize=${1518} | wt=4 | rxq=2
+| | framesize=${1518} | phy_cores=${4}
| tc11-9000B-4t4c-eth-l2bdscale100kmaclrn-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with with\
-| | ... | 4 phy cores, 2 receive queues per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 9000B frames using single trial\
-| | ... | throughput test.
-| | ...
| | [Tags] | 9000B | 4C
-| | ...
-| | [Template] | Check RR for L2BD eth-l2bdscale
-| | framesize=${9000} | wt=4 | rxq=2
+| | framesize=${9000} | phy_cores=${4}
| tc12-IMIX-4t4c-eth-l2bdscale100kmaclrn-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with with\
-| | ... | 4 phy cores, 2 receive queues per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for IMIX_v4_1 frames using single trial\
-| | ... | throughput test.
-| | ... | IMIX_v4_1 = (28x64B; 16x570B; 4x1518B)
-| | ...
| | [Tags] | IMIX | 4C
-| | ...
-| | [Template] | Check RR for L2BD eth-l2bdscale
-| | framesize=IMIX_v4_1 | wt=4 | rxq=2
+| | framesize=IMIX_v4_1 | phy_cores=${4}
diff --git a/tests/vpp/perf/l2/10ge2p1x710-eth-l2bdscale10kmaclrn-mrr.robot b/tests/vpp/perf/l2/10ge2p1x710-eth-l2bdscale10kmaclrn-mrr.robot
index e1af0b8389..bd636f8773 100644
--- a/tests/vpp/perf/l2/10ge2p1x710-eth-l2bdscale10kmaclrn-mrr.robot
+++ b/tests/vpp/perf/l2/10ge2p1x710-eth-l2bdscale10kmaclrn-mrr.robot
@@ -25,6 +25,8 @@
| ...
| Test Teardown | Tear down performance mrr test
| ...
+| Test Template | Local template
+| ...
| Documentation | *Raw results for L2BD test cases*
| ...
| ... | *[Top] Network Topologies:* TG-DUT1-DUT2-TG 3-node circular topology\
@@ -53,15 +55,26 @@
| ${traffic_profile}= | trex-sl-3n-ethip4-macsrc5kdst5k
*** Keywords ***
-| Check RR for L2BD eth-l2bdscale
-| | [Arguments] | ${framesize} | ${wt} | ${rxq}
+| Local template
+| | [Documentation]
+| | ... | [CFG] DUT runs L2BD switching config with ${phy_cores} phy
+| | ... | core(s).
+| | ... | [Ver] Measure MaxReceivedRate for ${framesize}B frames using single\
+| | ... | trial throughput test.
+| | ...
+| | ... | *Arguments:*
+| | ... | - framesize - Framesize in Bytes in integer or string (IMIX_v4_1).
+| | ... | Type: integer, string
+| | ... | - phy_cores - Number of physical cores. Type: integer
+| | ... | - rxq - Number of RX queues, default value: ${None}. Type: integer
+| | ...
+| | [Arguments] | ${framesize} | ${phy_cores} | ${rxq}=${None}
| | ...
-| | # Test Variables required for test teardown
| | Set Test Variable | ${framesize}
| | ${get_framesize}= | Get Frame Size | ${framesize}
| | ${max_rate}= | Calculate pps | ${s_limit} | ${get_framesize}
| | ...
-| | Given Add '${wt}' worker threads and '${rxq}' rxqueues in 3-node single-link circular topology
+| | Given Add worker threads and rxqueues to all DUTs | ${phy_cores} | ${rxq}
| | And Add PCI devices to all DUTs
| | And Run Keyword If | ${get_framesize} < ${1522}
| | ... | Add no multi seg to all DUTs
@@ -72,148 +85,49 @@
*** Test Cases ***
| tc01-64B-1t1c-eth-l2dbscale10kmaclrn-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with with\
-| | ... | 1 phy core, 1 receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 64B frames using single trial\
-| | ... | throughput test.
-| | ...
| | [Tags] | 64B | 1C
-| | ...
-| | [Template] | Check RR for L2BD eth-l2bdscale
-| | framesize=${64} | wt=1 | rxq=1
+| | framesize=${64} | phy_cores=${1}
| tc02-1518B-1t1c-eth-l2dbscale10kmaclrn-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with with\
-| | ... | 1 phy core, 1 receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 1518B frames using single trial\
-| | ... | throughput test.
-| | ...
| | [Tags] | 1518B | 1C
-| | ...
-| | [Template] | Check RR for L2BD eth-l2bdscale
-| | framesize=${1518} | wt=1 | rxq=1
+| | framesize=${1518} | phy_cores=${1}
| tc03-9000B-1t1c-eth-l2dbscale10kmaclrn-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with with\
-| | ... | 1 phy core, 1 receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 9000B frames using single trial\
-| | ... | throughput test.
-| | ...
| | [Tags] | 9000B | 1C
-| | ...
-| | [Template] | Check RR for L2BD eth-l2bdscale
-| | framesize=${9000} | wt=1 | rxq=1
+| | framesize=${9000} | phy_cores=${1}
| tc04-IMIX-1t1c-eth-l2dbscale10kmaclrn-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with with\
-| | ... | 1 phy core, 1 receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for IMIX_v4_1 frames using single trial\
-| | ... | throughput test.
-| | ... | IMIX_v4_1 = (28x64B; 16x570B; 4x1518B)
-| | ...
| | [Tags] | IMIX_v4_1 | 1C
-| | ...
-| | [Template] | Check RR for L2BD eth-l2bdscale
-| | framesize=IMIX_v4_1 | wt=1 | rxq=1
+| | framesize=IMIX_v4_1 | phy_cores=${1}
| tc05-64B-2t2c-eth-l2dbscale10kmaclrn-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with with\
-| | ... | 2 phy cores, 1 receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 64B frames using single trial\
-| | ... | throughput test.
-| | ...
| | [Tags] | 64B | 2C
-| | ...
-| | [Template] | Check RR for L2BD eth-l2bdscale
-| | framesize=${64} | wt=2 | rxq=1
+| | framesize=${64} | phy_cores=${2}
| tc06-1518B-2t2c-eth-l2dbscale10kmaclrn-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with with\
-| | ... | 2 phy cores, 1 receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 1518B frames using single trial\
-| | ... | throughput test.
-| | ...
| | [Tags] | 1518B | 2C
-| | ...
-| | [Template] | Check RR for L2BD eth-l2bdscale
-| | framesize=${1518} | wt=2 | rxq=1
+| | framesize=${1518} | phy_cores=${2}
| tc07-9000B-2t2c-eth-l2dbscale10kmaclrn-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with with\
-| | ... | 2 phy cores, 1 receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 9000B frames using single trial\
-| | ... | throughput test.
-| | ...
| | [Tags] | 9000B | 2C
-| | ...
-| | [Template] | Check RR for L2BD eth-l2bdscale
-| | framesize=${9000} | wt=2 | rxq=1
+| | framesize=${9000} | phy_cores=${2}
| tc08-IMIX-2t2c-eth-l2dbscale10kmaclrn-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with with\
-| | ... | 2 phy cores, 1 receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for IMIX_v4_1 frames using single trial\
-| | ... | throughput test.
-| | ... | IMIX_v4_1 = (28x64B; 16x570B; 4x1518B)
-| | ...
| | [Tags] | IMIX_v4_1 | 2C
-| | ...
-| | [Template] | Check RR for L2BD eth-l2bdscale
-| | framesize=IMIX_v4_1 | wt=2 | rxq=1
+| | framesize=IMIX_v4_1 | phy_cores=${2}
| tc09-64B-4t4c-eth-l2dbscale10kmaclrn-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with with\
-| | ... | 4 phy cores, 2 receive queues per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 64B frames using single trial\
-| | ... | throughput test.
-| | ...
| | [Tags] | 64B | 4C
-| | ...
-| | [Template] | Check RR for L2BD eth-l2bdscale
-| | framesize=${64} | wt=4 | rxq=2
+| | framesize=${64} | phy_cores=${4}
| tc10-1518B-4t4c-eth-l2dbscale10kmaclrn-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with with\
-| | ... | 4 phy cores, 2 receive queues per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 1518B frames using single trial\
-| | ... | throughput test.
-| | ...
| | [Tags] | 1518B | 4C
-| | ...
-| | [Template] | Check RR for L2BD eth-l2bdscale
-| | framesize=${1518} | wt=4 | rxq=2
+| | framesize=${1518} | phy_cores=${4}
| tc11-9000B-4t4c-eth-l2dbscale10kmaclrn-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with with\
-| | ... | 4 phy cores, 2 receive queues per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 9000B frames using single trial\
-| | ... | throughput test.
-| | ...
| | [Tags] | 9000B | 4C
-| | ...
-| | [Template] | Check RR for L2BD eth-l2bdscale
-| | framesize=${9000} | wt=4 | rxq=2
+| | framesize=${9000} | phy_cores=${4}
| tc12-IMIX-4t4c-eth-l2dbscale10kmaclrn-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with with\
-| | ... | 4 phy cores, 2 receive queues per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for IMIX_v4_1 frames using single trial\
-| | ... | throughput test.
-| | ... | IMIX_v4_1 = (28x64B; 16x570B; 4x1518B)
-| | ...
| | [Tags] | 9000B | IMIX_v4_1
-| | ...
-| | [Template] | Check RR for L2BD eth-l2bdscale
-| | framesize=IMIX_v4_1 | wt=4 | rxq=2
+| | framesize=IMIX_v4_1 | phy_cores=${4}
diff --git a/tests/vpp/perf/l2/10ge2p1x710-eth-l2bdscale1mmaclrn-mrr.robot b/tests/vpp/perf/l2/10ge2p1x710-eth-l2bdscale1mmaclrn-mrr.robot
index 7c3517eb50..7cad4b1b01 100644
--- a/tests/vpp/perf/l2/10ge2p1x710-eth-l2bdscale1mmaclrn-mrr.robot
+++ b/tests/vpp/perf/l2/10ge2p1x710-eth-l2bdscale1mmaclrn-mrr.robot
@@ -25,6 +25,8 @@
| ...
| Test Teardown | Tear down performance mrr test
| ...
+| Test Template | Local template
+| ...
| Documentation | *Raw results for L2BD test cases*
| ...
| ... | *[Top] Network Topologies:* TG-DUT1-DUT2-TG 3-node circular topology\
@@ -53,21 +55,26 @@
| ${traffic_profile}= | trex-sl-3n-ethip4-macsrc500kdst500k
*** Keywords ***
-| Check RR for L2BD eth-l2bdscale
+| Local template
| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD config with ${wt} thread(s), ${wt}\
-| | ... | phy core(s), ${rxq} receive queue(s) per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for ${framesize} frames using single\
+| | ... | [Cfg] DUT runs L2BD config with ${phy_cores} phy
+| | ... | core(s).
+| | ... | [Ver] Measure MaxReceivedRate for ${framesize}B frames using single\
| | ... | trial throughput test.
| | ...
-| | [Arguments] | ${framesize} | ${wt} | ${rxq}
+| | ... | *Arguments:*
+| | ... | - framesize - Framesize in Bytes in integer or string (IMIX_v4_1).
+| | ... | Type: integer, string
+| | ... | - phy_cores - Number of physical cores. Type: integer
+| | ... | - rxq - Number of RX queues, default value: ${None}. Type: integer
+| | ...
+| | [Arguments] | ${framesize} | ${phy_cores} | ${rxq}=${None}
| | ...
-| | # Test Variables required for test teardown
| | Set Test Variable | ${framesize}
| | ${get_framesize}= | Get Frame Size | ${framesize}
| | ${max_rate}= | Calculate pps | ${s_limit} | ${get_framesize}
| | ...
-| | Given Add '${wt}' worker threads and '${rxq}' rxqueues in 3-node single-link circular topology
+| | Given Add worker threads and rxqueues to all DUTs | ${phy_cores} | ${rxq}
| | And Add PCI devices to all DUTs
| | And Run Keyword If | ${get_framesize} < ${1522}
| | ... | Add no multi seg to all DUTs
@@ -78,147 +85,49 @@
*** Test Cases ***
| tc01-64B-1t1c-eth-l2bdscale1mmaclrn-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with with\
-| | ... | 1 phy core, 1 receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 64B frames using single trial\
-| | ... | throughput test.
-| | ...
| | [Tags] | 64B | 1C
-| | [Template] | Check RR for L2BD eth-l2bdscale
-| | framesize=${64} | wt=1 | rxq=1
+| | framesize=${64} | phy_cores=${1}
| tc02-1518B-1t1c-eth-l2bdscale1mmaclrn-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with with\
-| | ... | 1 phy core, 1 receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 1518B frames using single trial\
-| | ... | throughput test.
-| | ...
| | [Tags] | 1518B | 1C
-| | ...
-| | [Template] | Check RR for L2BD eth-l2bdscale
-| | framesize=${1518} | wt=1 | rxq=1
+| | framesize=${1518} | phy_cores=${1}
| tc03-9000B-1t1c-eth-l2bdscale1mmaclrn-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with with\
-| | ... | 1 phy core, 1 receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 9000B frames using single trial\
-| | ... | throughput test.
-| | ...
| | [Tags] | 9000B | 1C
-| | ...
-| | [Template] | Check RR for L2BD eth-l2bdscale
-| | framesize=${9000} | wt=1 | rxq=1
+| | framesize=${9000} | phy_cores=${1}
| tc04-IMIX-1t1c-eth-l2bdscale1mmaclrn-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with with\
-| | ... | 1 phy core, 1 receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for IMIX_v4_1 frames using single trial\
-| | ... | throughput test.
-| | ... | IMIX_v4_1 = (28x64B; 16x570B; 4x1518B)
-| | ...
| | [Tags] | IMIX | 1C
-| | ...
-| | [Template] | Check RR for L2BD eth-l2bdscale
-| | framesize=IMIX_v4_1 | wt=1 | rxq=1
+| | framesize=IMIX_v4_1 | phy_cores=${1}
| tc05-64B-2t2c-eth-l2bdscale1mmaclrn-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with with\
-| | ... | 2 phy cores, 1 receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 64B frames using single trial\
-| | ... | throughput test.
-| | ...
| | [Tags] | 64B | 2C
-| | ...
-| | [Template] | Check RR for L2BD eth-l2bdscale
-| | framesize=${64} | wt=2 | rxq=1
+| | framesize=${64} | phy_cores=${2}
| tc06-1518B-2t2c-eth-l2bdscale1mmaclrn-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with with\
-| | ... | 2 phy cores, 1 receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 1518B frames using single trial\
-| | ... | throughput test.
-| | ...
| | [Tags] | 1518B | 2C
-| | ...
-| | [Template] | Check RR for L2BD eth-l2bdscale
-| | framesize=${1518} | wt=2 | rxq=1
+| | framesize=${1518} | phy_cores=${2}
| tc07-9000B-2t2c-eth-l2bdscale1mmaclrn-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with with\
-| | ... | 2 phy cores, 1 receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 9000B frames using single trial\
-| | ... | throughput test.
-| | ...
| | [Tags] | 9000B | 2C
-| | ...
-| | [Template] | Check RR for L2BD eth-l2bdscale
-| | framesize=${9000} | wt=2 | rxq=1
+| | framesize=${9000} | phy_cores=${2}
| tc08-9000B-2t2c-eth-l2bdscale1mmaclrn-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with with\
-| | ... | 2 phy cores, 1 receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for IMIX_v4_1 frames using single trial\
-| | ... | throughput test.
-| | ... | IMIX_v4_1 = (28x64B; 16x570B; 4x1518B)
-| | ...
| | [Tags] | IMIX | 2C
-| | ...
-| | [Template] | Check RR for L2BD eth-l2bdscale
-| | framesize=IMIX_v4_1 | wt=2 | rxq=1
+| | framesize=IMIX_v4_1 | phy_cores=${2}
| tc09-64B-4t4c-eth-l2bdscale1mmaclrn-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with with\
-| | ... | 4 phy cores, 2 receive queues per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 64B frames using single trial\
-| | ... | throughput test.
-| | ...
| | [Tags] | 64B | 4C
-| | ...
-| | [Template] | Check RR for L2BD eth-l2bdscale
-| | framesize=${64} | wt=4 | rxq=2
+| | framesize=${64} | phy_cores=${4}
| tc10-1518B-4t4c-eth-l2bdscale1mmaclrn-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with with\
-| | ... | 4 phy cores, 2 receive queues per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 1518B frames using single trial\
-| | ... | throughput test.
-| | ...
| | [Tags] | 1518B | 4C
-| | ...
-| | [Template] | Check RR for L2BD eth-l2bdscale
-| | framesize=${1518} | wt=4 | rxq=2
+| | framesize=${1518} | phy_cores=${4}
| tc11-9000B-4t4c-eth-l2bdscale1mmaclrn-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with with\
-| | ... | 4 phy cores, 2 receive queues per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 9000B frames using single trial\
-| | ... | throughput test.
-| | ...
| | [Tags] | 9000B | 4C
-| | ...
-| | [Template] | Check RR for L2BD eth-l2bdscale
-| | framesize=${9000} | wt=4 | rxq=2
+| | framesize=${9000} | phy_cores=${4}
| tc12-IMIX-4t4c-eth-l2bdscale1mmaclrn-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with with\
-| | ... | 4 phy cores, 2 receive queues per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for IMIX_v4_1 frames using single trial\
-| | ... | throughput test.
-| | ... | IMIX_v4_1 = (28x64B; 16x570B; 4x1518B)
-| | ...
| | [Tags] | IMIX | 4C
-| | ...
-| | [Template] | Check RR for L2BD eth-l2bdscale
-| | framesize=IMIX_v4_1 | wt=4 | rxq=2
+| | framesize=IMIX_v4_1 | phy_cores=${4}
diff --git a/tests/vpp/perf/l2/10ge2p1x710-eth-l2xcbase-mrr.robot b/tests/vpp/perf/l2/10ge2p1x710-eth-l2xcbase-mrr.robot
index 29b54b17d8..0f0b0a8f0f 100644
--- a/tests/vpp/perf/l2/10ge2p1x710-eth-l2xcbase-mrr.robot
+++ b/tests/vpp/perf/l2/10ge2p1x710-eth-l2xcbase-mrr.robot
@@ -24,6 +24,8 @@
| Test Setup | Set up performance test
| Test Teardown | Tear down performance mrr test
| ...
+| Test Template | Local template
+| ...
| Documentation | *Raw results L2XC test cases*
| ...
| ... | *[Top] Network Topologies:* TG-DUT1-DUT2-TG 3-node circular topology
@@ -47,21 +49,26 @@
| ${traffic_profile}= | trex-sl-3n-ethip4-ip4src254
*** Keywords ***
-| Check RR for l2xcbase
+| Local template
| | [Documentation]
-| | ... | [Cfg] DUT runs L2XC config with ${wt} thread(s), ${wt}\
-| | ... | phy core(s), ${rxq} receive queue(s) per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for ${framesize} frames using single\
+| | ... | [Cfg] DUT runs L2XC config with ${phy_cores} phy
+| | ... | core(s).
+| | ... | [Ver] Measure MaxReceivedRate for ${framesize}B frames using single\
| | ... | trial throughput test.
| | ...
-| | [Arguments] | ${framesize} | ${wt} | ${rxq}
+| | ... | *Arguments:*
+| | ... | - framesize - Framesize in Bytes in integer or string (IMIX_v4_1).
+| | ... | Type: integer, string
+| | ... | - phy_cores - Number of physical cores. Type: integer
+| | ... | - rxq - Number of RX queues, default value: ${None}. Type: integer
+| | ...
+| | [Arguments] | ${framesize} | ${phy_cores} | ${rxq}=${None}
| | ...
-| | # Test Variables required for test teardown
| | Set Test Variable | ${framesize}
| | ${get_framesize}= | Get Frame Size | ${framesize}
| | ${max_rate}= | Calculate pps | ${s_limit} | ${get_framesize}
| | ...
-| | Given Add '${wt}' worker threads and '${rxq}' rxqueues in 3-node single-link circular topology
+| | Given Add worker threads and rxqueues to all DUTs | ${phy_cores} | ${rxq}
| | And Add PCI devices to all DUTs
| | And Run Keyword If | ${get_framesize} < ${1522}
| | ... | Add no multi seg to all DUTs
@@ -72,136 +79,49 @@
*** Test Cases ***
| tc01-64B-1t1c-eth-l2xcbase-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2XC config with 1 phy core,\
-| | ... | 1 receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 64B frames using single trial\
-| | ... | throughput test.
| | [Tags] | 64B | 1C
-| | ...
-| | [Template] | Check RR for l2xcbase
-| | framesize=${64} | wt=1 | rxq=1
+| | framesize=${64} | phy_cores=${1}
| tc02-1518B-1t1c-eth-l2xcbase-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2XC config with 1 phy core,\
-| | ... | 1 receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 1518B frames using single\
-| | ... | trial throughput test.
| | [Tags] | 1518B | 1C
-| | ...
-| | [Template] | Check RR for l2xcbase
-| | framesize=${1518} | wt=1 | rxq=1
+| | framesize=${1518} | phy_cores=${1}
| tc03-9000B-1t1c-eth-l2xcbase-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2XC config with 1 phy core,\
-| | ... | 1 receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 9000B frames using single\
-| | ... | trial throughput test.
| | [Tags] | 9000B | 1C
-| | ...
-| | [Template] | Check RR for l2xcbase
-| | framesize=${9000} | wt=1 | rxq=1
+| | framesize=${9000} | phy_cores=${1}
| tc04-IMIX-1t1c-eth-l2xcbase-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2XC config with 1 phy core,\
-| | ... | 1 receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for IMIX frames using single\
-| | ... | trial throughput test.
-| | ... | IMIX_v4_1 = (28x64B;16x570B;4x1518B)
| | [Tags] | IMIX | 1C
-| | ...
-| | [Template] | Check RR for l2xcbase
-| | framesize=IMIX_v4_1 | wt=1 | rxq=1
+| | framesize=IMIX_v4_1 | phy_cores=${1}
| tc05-64B-2t2c-eth-l2xcbase-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2XC config with 2 phy cores,\
-| | ... | 1 receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 64B frames using single trial\
-| | ... | throughput test.
| | [Tags] | 64B | 2C
-| | ...
-| | [Template] | Check RR for l2xcbase
-| | framesize=${64} | wt=2 | rxq=1
+| | framesize=${64} | phy_cores=${2}
| tc06-1518B-2t2c-eth-l2xcbase-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2XC config with 2 phy cores,\
-| | ... | 1 receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 1518B frames using single\
-| | ... | trial throughput test.
| | [Tags] | 1518B | 2C
-| | ...
-| | [Template] | Check RR for l2xcbase
-| | framesize=${1518} | wt=2 | rxq=1
+| | framesize=${1518} | phy_cores=${2}
| tc07-9000B-2t2c-eth-l2xcbase-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2XC config with 2 phy cores,\
-| | ... | 1 receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 9000B frames using single\
-| | ... | trial throughput test.
| | [Tags] | 9000B | 2C
-| | ...
-| | [Template] | Check RR for l2xcbase
-| | framesize=${9000} | wt=2 | rxq=1
+| | framesize=${9000} | phy_cores=${2}
| tc08-IMIX-2t2c-eth-l2xcbase-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2XC config with 2 phy cores,\
-| | ... | 1 receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for IMIX frames using single\
-| | ... | trial throughput test.
-| | ... | IMIX_v4_1 = (28x64B;16x570B;4x1518B)
| | [Tags] | IMIX | 2C
-| | ...
-| | [Template] | Check RR for l2xcbase
-| | framesize=IMIX_v4_1 | wt=2 | rxq=1
+| | framesize=IMIX_v4_1 | phy_cores=${2}
| tc09-64B-4t4c-eth-l2xcbase-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2XC config with 4 phy cores,\
-| | ... | 2 receive queues per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 64B frames using single trial\
-| | ... | throughput test.
| | [Tags] | 64B | 4C
-| | ...
-| | [Template] | Check RR for l2xcbase
-| | framesize=${64} | wt=4 | rxq=2
+| | framesize=${64} | phy_cores=${4}
| tc10-1518B-4t4c-eth-l2xcbase-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2XC config with 4 phy cores,\
-| | ... | 2 receive queues per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 1518B frames using single\
-| | ... | trial throughput test.
| | [Tags] | 1518B | 4C
-| | ...
-| | [Template] | Check RR for l2xcbase
-| | framesize=${1518} | wt=4 | rxq=2
+| | framesize=${1518} | phy_cores=${4}
| tc11-9000B-4t4c-eth-l2xcbase-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2XC config with 4 phy cores,\
-| | ... | 2 receive queues per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 9000B frames using single\
-| | ... | trial throughput test.
| | [Tags] | 9000B | 4C
-| | ...
-| | [Template] | Check RR for l2xcbase
-| | framesize=${9000} | wt=4 | rxq=2
+| | framesize=${9000} | phy_cores=${4}
| tc12-IMIX-4t4c-eth-l2xcbase-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2XC config with 4 phy cores,\
-| | ... | 2 receive queues per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for IMIX frames using single\
-| | ... | trial throughput test.
-| | ... | IMIX_v4_1 = (28x64B;16x570B;4x1518B)
| | [Tags] | IMIX | 4C
-| | ...
-| | [Template] | Check RR for l2xcbase
-| | framesize=IMIX_v4_1 | wt=4 | rxq=2
+| | framesize=IMIX_v4_1 | phy_cores=${4}
diff --git a/tests/vpp/perf/l2/40ge2p1vic1385-eth-l2bdbasemaclrn-ndrpdrdisc.robot b/tests/vpp/perf/l2/40ge2p1vic1385-eth-l2bdbasemaclrn-ndrpdrdisc.robot
index be10b96aca..9350b66b57 100644
--- a/tests/vpp/perf/l2/40ge2p1vic1385-eth-l2bdbasemaclrn-ndrpdrdisc.robot
+++ b/tests/vpp/perf/l2/40ge2p1vic1385-eth-l2bdbasemaclrn-ndrpdrdisc.robot
@@ -73,7 +73,7 @@
| | ${binary_min}= | Set Variable | ${min_rate}
| | ${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
+| | Given Add worker threads and rxqueues to all DUTs | 1
| | And Add PCI devices to all DUTs
| | And Add no multi seg to all DUTs
| | And Apply startup configuration on all VPP DUTs
@@ -97,7 +97,7 @@
| | ${binary_min}= | Set Variable | ${min_rate}
| | ${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
+| | Given Add worker threads and rxqueues to all DUTs | 1
| | And Add PCI devices to all DUTs
| | And Add no multi seg to all DUTs
| | And Apply startup configuration on all VPP DUTs
@@ -122,7 +122,7 @@
| | ${binary_min}= | Set Variable | ${min_rate}
| | ${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
+| | Given Add worker threads and rxqueues to all DUTs | 1
| | And Add PCI devices to all DUTs
| | And Add no multi seg to all DUTs
| | And Apply startup configuration on all VPP DUTs
@@ -146,7 +146,7 @@
| | ${binary_min}= | Set Variable | ${min_rate}
| | ${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
+| | Given Add worker threads and rxqueues to all DUTs | 1
| | And Add PCI devices to all DUTs
| | And Add no multi seg to all DUTs
| | And Apply startup configuration on all VPP DUTs
@@ -170,7 +170,7 @@
| | ${binary_min}= | Set Variable | ${min_rate}
| | ${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
+| | Given Add worker threads and rxqueues to all DUTs | 2
| | And Add PCI devices to all DUTs
| | And Add no multi seg to all DUTs
| | And Apply startup configuration on all VPP DUTs
@@ -194,7 +194,7 @@
| | ${binary_min}= | Set Variable | ${min_rate}
| | ${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
+| | Given Add worker threads and rxqueues to all DUTs | 2
| | And Add PCI devices to all DUTs
| | And Add no multi seg to all DUTs
| | And Apply startup configuration on all VPP DUTs
@@ -219,7 +219,7 @@
| | ${binary_min}= | Set Variable | ${min_rate}
| | ${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
+| | Given Add worker threads and rxqueues to all DUTs | 2
| | And Add PCI devices to all DUTs
| | And Add no multi seg to all DUTs
| | And Apply startup configuration on all VPP DUTs
@@ -243,7 +243,7 @@
| | ${binary_min}= | Set Variable | ${min_rate}
| | ${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
+| | Given Add worker threads and rxqueues to all DUTs | 4
| | And Add PCI devices to all DUTs
| | And Add no multi seg to all DUTs
| | And Apply startup configuration on all VPP DUTs
@@ -267,7 +267,7 @@
| | ${binary_min}= | Set Variable | ${min_rate}
| | ${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
+| | Given Add worker threads and rxqueues to all DUTs | 4
| | And Add PCI devices to all DUTs
| | And Add no multi seg to all DUTs
| | And Apply startup configuration on all VPP DUTs
@@ -292,7 +292,7 @@
| | ${binary_min}= | Set Variable | ${min_rate}
| | ${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
+| | Given Add worker threads and rxqueues to all DUTs | 1
| | And Add PCI devices to all DUTs
| | And Add no multi seg to all DUTs
| | And Apply startup configuration on all VPP DUTs
@@ -317,7 +317,7 @@
| | ${binary_min}= | Set Variable | ${min_rate}
| | ${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
+| | Given Add worker threads and rxqueues to all DUTs | 2
| | And Add PCI devices to all DUTs
| | And Add no multi seg to all DUTs
| | And Apply startup configuration on all VPP DUTs
@@ -342,7 +342,7 @@
| | ${binary_min}= | Set Variable | ${min_rate}
| | ${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
+| | Given Add worker threads and rxqueues to all DUTs | 4
| | And Add PCI devices to all DUTs
| | And Add no multi seg to all DUTs
| | And Apply startup configuration on all VPP DUTs
diff --git a/tests/vpp/perf/l2/40ge2p1xl710-eth-l2bdbasemaclrn-mrr.robot b/tests/vpp/perf/l2/40ge2p1xl710-eth-l2bdbasemaclrn-mrr.robot
index 195168e657..4003ae0142 100644
--- a/tests/vpp/perf/l2/40ge2p1xl710-eth-l2bdbasemaclrn-mrr.robot
+++ b/tests/vpp/perf/l2/40ge2p1xl710-eth-l2bdbasemaclrn-mrr.robot
@@ -25,6 +25,8 @@
| ...
| Test Teardown | Tear down performance mrr test
| ...
+| Test Template | Local template
+| ...
| Documentation | *Raw results L2BD test cases*
| ...
| ... | *[Top] Network Topologies:* TG-DUT1-DUT2-TG 3-node circular topology\
@@ -52,23 +54,28 @@
| ${traffic_profile} | trex-sl-3n-ethip4-ip4src254
*** Keywords ***
-| Check RR for l2bdbasemaclrn
+| Local template
| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD config with ${wt} thread(s),\
-| | ... | ${wt} phy core(s), ${rxq} receive queue(s) per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for ${framesize} frames using single\
+| | ... | [Cfg] DUT runs L2BD config with ${phy_cores} phy
+| | ... | core(s).
+| | ... | [Ver] Measure MaxReceivedRate for ${framesize}B frames using single\
| | ... | trial throughput test.
| | ...
-| | [Arguments] | ${framesize} | ${wt} | ${rxq}
+| | ... | *Arguments:*
+| | ... | - framesize - Framesize in Bytes in integer or string (IMIX_v4_1).
+| | ... | Type: integer, string
+| | ... | - phy_cores - Number of physical cores. Type: integer
+| | ... | - rxq - Number of RX queues, default value: ${None}. Type: integer
+| | ...
+| | [Arguments] | ${framesize} | ${phy_cores} | ${rxq}=${None}
| | ...
-| | # Test Variables required for test teardown
| | Set Test Variable | ${framesize}
| | ${get_framesize}= | Get Frame Size | ${framesize}
| | ${max_rate}= | Calculate pps | ${s_24.5G} | ${get_framesize}
| | ${max_rate}= | Set Variable If
| | ... | ${max_rate} > ${s_18.75Mpps} | ${s_18.75Mpps} | ${max_rate}
| | ...
-| | Given Add '${wt}' worker threads and '${rxq}' rxqueues in 3-node single-link circular topology
+| | Given Add worker threads and rxqueues to all DUTs | ${phy_cores} | ${rxq}
| | And Add PCI devices to all DUTs
| | And Run Keyword If | ${get_framesize} < ${1522}
| | ... | Add no multi seg to all DUTs
@@ -81,148 +88,49 @@
*** Test Cases ***
| tc01-64B-1t1c-eth-l2bdbasemaclrn-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with with\
-| | ... | 1 phy core, 1 receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 64B frames using single trial\
-| | ... | throughput test.
-| | ...
| | [Tags] | 64B | 1C
-| | ...
-| | [Template] | Check RR for l2bdbasemaclrn
-| | framesize=${64} | wt=1 | rxq=1
+| | framesize=${64} | phy_cores=${1}
| tc02-1518B-1t1c-eth-l2bdbasemaclrn-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with with\
-| | ... | 1 phy core, 1 receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 1518B frames using single trial\
-| | ... | throughput test.
-| | ...
| | [Tags] | 1518B | 1C
-| | ...
-| | [Template] | Check RR for l2bdbasemaclrn
-| | framesize=${1518} | wt=1 | rxq=1
+| | framesize=${1518} | phy_cores=${1}
| tc03-9000B-1t1c-eth-l2bdbasemaclrn-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with with\
-| | ... | 1 phy core, 1 receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 9000B frames using single trial\
-| | ... | throughput test.
-| | ...
| | [Tags] | 9000B | 1C
-| | ...
-| | [Template] | Check RR for l2bdbasemaclrn
-| | framesize=${9000} | wt=1 | rxq=1
+| | framesize=${9000} | phy_cores=${1}
| tc04-IMIX-1t1c-eth-l2bdbasemaclrn-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with with\
-| | ... | 1 phy core, 1 receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for IMIX_v4_1 frames using single trial\
-| | ... | throughput test.
-| | ... | IMIX_v4_1 = (28x64B; 16x570B; 4x1518B)
-| | ...
| | [Tags] | IMIX | 1C
-| | ...
-| | [Template] | Check RR for l2bdbasemaclrn
-| | framesize=IMIX_v4_1 | wt=1 | rxq=1
+| | framesize=IMIX_v4_1 | phy_cores=${1}
| tc05-64B-2t2c-eth-l2bdbasemaclrn-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with with\
-| | ... | 2 phy cores, 1 receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 64B frames using single trial\
-| | ... | throughput test.
-| | ...
| | [Tags] | 64B | 2C
-| | ...
-| | [Template] | Check RR for l2bdbasemaclrn
-| | framesize=${64} | wt=2 | rxq=1
+| | framesize=${64} | phy_cores=${2}
| tc06-1518B-2t2c-eth-l2bdbasemaclrn-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with with\
-| | ... | 2 phy cores, 1 receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 1518B frames using single trial\
-| | ... | throughput test.
-| | ...
| | [Tags] | 1518B | 2C
-| | ...
-| | [Template] | Check RR for l2bdbasemaclrn
-| | framesize=${1518} | wt=2 | rxq=1
+| | framesize=${1518} | phy_cores=${2}
| tc07-9000B-2t2c-eth-l2bdbasemaclrn-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with with\
-| | ... | 2 phy cores, 1 receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 9000B frames using single trial\
-| | ... | throughput test.
-| | ...
| | [Tags] | 9000B | 2C
-| | ...
-| | [Template] | Check RR for l2bdbasemaclrn
-| | framesize=${9000} | wt=2 | rxq=1
+| | framesize=${9000} | phy_cores=${2}
| tc08-IMIX-2t2c-eth-l2bdbasemaclrn-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with with\
-| | ... | 2 phy cores, 1 receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for IMIX_v4_1 frames using single trial\
-| | ... | throughput test.
-| | ... | IMIX_v4_1 = (28x64B; 16x570B; 4x1518B)
-| | ...
| | [Tags] | IMIX | 2C
-| | ...
-| | [Template] | Check RR for l2bdbasemaclrn
-| | framesize=IMIX_v4_1 | wt=2 | rxq=1
+| | framesize=IMIX_v4_1 | phy_cores=${2}
| tc09-64B-4t4c-eth-l2bdbasemaclrn-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with with\
-| | ... | 4 phy cores, 2 receive queues per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 64B frames using single trial\
-| | ... | throughput test.
-| | ...
| | [Tags] | 64B | 4C
-| | ...
-| | [Template] | Check RR for l2bdbasemaclrn
-| | framesize=${64} | wt=4 | rxq=2
+| | framesize=${64} | phy_cores=${4}
| tc10-1518B-4t4c-eth-l2bdbasemaclrn-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with with\
-| | ... | 4 phy cores, 2 receive queues per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 1518B frames using single trial\
-| | ... | throughput test.
-| | ...
| | [Tags] | 1518B | 4C
-| | ...
-| | [Template] | Check RR for l2bdbasemaclrn
-| | framesize=${1518} | wt=4 | rxq=2
+| | framesize=${1518} | phy_cores=${4}
| tc11-9000B-4t4c-eth-l2bdbasemaclrn-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with with\
-| | ... | 4 phy cores, 2 receive queues per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 9000B frames using single trial\
-| | ... | throughput test.
-| | ...
| | [Tags] | 9000B | 4C
-| | ...
-| | [Template] | Check RR for l2bdbasemaclrn
-| | framesize=${9000} | wt=4 | rxq=2
+| | framesize=${9000} | phy_cores=${4}
| tc12-IMIX-4t4c-eth-l2bdbasemaclrn-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with with\
-| | ... | 4 phy cores, 2 receive queues per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for IMIX_v4_1 frames using single trial\
-| | ... | throughput test.
-| | ... | IMIX_v4_1 = (28x64B; 16x570B; 4x1518B)
-| | ...
| | [Tags] | IMIX | 4C
-| | ...
-| | [Template] | Check RR for l2bdbasemaclrn
-| | framesize=IMIX_v4_1 | wt=4 | rxq=2
+| | framesize=IMIX_v4_1 | phy_cores=${4}
diff --git a/tests/vpp/perf/l2/40ge2p1xl710-eth-l2bdbasemaclrn-ndrpdrdisc.robot b/tests/vpp/perf/l2/40ge2p1xl710-eth-l2bdbasemaclrn-ndrpdrdisc.robot
index 2f2ea98fe4..3d16103d19 100644
--- a/tests/vpp/perf/l2/40ge2p1xl710-eth-l2bdbasemaclrn-ndrpdrdisc.robot
+++ b/tests/vpp/perf/l2/40ge2p1xl710-eth-l2bdbasemaclrn-ndrpdrdisc.robot
@@ -26,6 +26,8 @@
| Test Teardown | Tear down performance discovery test | ${min_rate}pps
| ... | ${framesize} | ${traffic_profile}
| ...
+| Test Template | Local template
+| ...
| Documentation | *RFC2544: Pkt throughput L2BD test cases*
| ...
| ... | *[Top] Network Topologies:* TG-DUT1-DUT2-TG 3-node circular topology\
@@ -58,15 +60,15 @@
*** Keywords ***
| L2 Bridge Domain Binary Search BW limit
-| | [Arguments] | ${framesize} | ${min_rate} | ${wt} | ${rxq} | ${s_limit}
-| | ... | ${search_type}
+| | [Arguments] | ${framesize} | ${phy_cores} | ${s_limit}
+| | ... | ${search_type} | ${min_rate}=${50000}
| | Set Test Variable | ${framesize}
| | Set Test Variable | ${min_rate}
| | ${max_rate}= | Calculate pps | ${s_limit} | ${framesize}
| | ${binary_min}= | Set Variable | ${min_rate}
| | ${binary_max}= | Set Variable | ${max_rate}
| | ${threshold}= | Set Variable | ${min_rate}
-| | Add '${wt}' worker threads and '${rxq}' rxqueues in 3-node single-link circular topology
+| | Add worker threads and rxqueues to all DUTs | ${phy_cores} | ${None}
| | Add PCI devices to all DUTs
| | ${get_framesize}= | Get Frame Size | ${framesize}
| | Run Keyword If | ${get_framesize} < ${1522} | Add no multi seg to all DUTs
@@ -85,15 +87,15 @@
| | ... | ${perf_pdr_loss_acceptance} | ${perf_pdr_loss_acceptance_type}
| L2 Bridge Domain Binary Search
-| | [Arguments] | ${framesize} | ${min_rate} | ${wt} | ${rxq} | ${s_limit}
-| | ... | ${search_type}
+| | [Arguments] | ${framesize} | ${phy_cores} | ${s_limit}
+| | ... | ${search_type} | ${min_rate}=${50000}
| | Set Test Variable | ${framesize}
| | Set Test Variable | ${min_rate}
| | ${max_rate}= | Set Variable | ${s_limit}
| | ${binary_min}= | Set Variable | ${min_rate}
| | ${binary_max}= | Set Variable | ${max_rate}
| | ${threshold}= | Set Variable | ${min_rate}
-| | Add '${wt}' worker threads and '${rxq}' rxqueues in 3-node single-link circular topology
+| | Add worker threads and rxqueues to all DUTs | ${phy_cores} | ${None}
| | Add PCI devices to all DUTs
| | ${get_framesize}= | Get Frame Size | ${framesize}
| | Run Keyword If | ${get_framesize} < ${1522} | Add no multi seg to all DUTs
@@ -120,7 +122,7 @@
| | ... | 18.75Mpps rate, step 50kpps.
| | [Tags] | 64B | 1C | NDRDISC
| | [Template] | L2 Bridge Domain Binary Search
-| | framesize=${64} | min_rate=${50000} | wt=1 | rxq=1
+| | framesize=${64} | phy_cores=${1}
| | ... | s_limit=${s_18.75Mpps} | search_type=NDR
| tc03-1518B-1t1c-eth-l2bdbasemaclrn-ndrdisc
@@ -131,7 +133,7 @@
| | ... | 24.5G rate, step 50kpps.
| | [Tags] | 1518B | 1C | NDRDISC
| | [Template] | L2 Bridge Domain Binary Search BW limit
-| | framesize=${1518} | min_rate=${50000} | wt=1 | rxq=1
+| | framesize=${1518} | phy_cores=${1}
| | ... | s_limit=${s_24.5G} | search_type=NDR
| tc07-64B-2t2c-eth-l2bdbasemaclrn-ndrdisc
@@ -142,7 +144,7 @@
| | ... | 18.75Mpps rate, step 50kpps.
| | [Tags] | 64B | 2C | NDRDISC
| | [Template] | L2 Bridge Domain Binary Search
-| | framesize=${64} | min_rate=${50000} | wt=2 | rxq=1
+| | framesize=${64} | phy_cores=${2}
| | ... | s_limit=${s_18.75Mpps} | search_type=NDR
| tc09-1518B-2t2c-eth-l2bdbasemaclrn-ndrdisc
@@ -153,7 +155,7 @@
| | ... | 24.5G rate, step 50kpps.
| | [Tags] | 1518B | 2C | NDRDISC | SKIP_PATCH
| | [Template] | L2 Bridge Domain Binary Search BW limit
-| | framesize=${1518} | min_rate=${50000} | wt=2 | rxq=1
+| | framesize=${1518} | phy_cores=${2}
| | ... | s_limit=${s_24.5G} | search_type=NDR
| tc13-64B-4t4c-eth-l2bdbasemaclrn-ndrdisc
@@ -164,7 +166,7 @@
| | ... | 18.75Mpps rate, step 50kpps.
| | [Tags] | 64B | 4C | NDRDISC
| | [Template] | L2 Bridge Domain Binary Search
-| | framesize=${64} | min_rate=${50000} | wt=4 | rxq=2
+| | framesize=${64} | phy_cores=${4}
| | ... | s_limit=${s_18.75Mpps} | search_type=NDR
| tc15-1518B-4t4c-eth-l2bdbasemaclrn-ndrdisc
@@ -175,7 +177,7 @@
| | ... | 24.5G rate, step 50kpps.
| | [Tags] | 1518B | 4C | NDRDISC | SKIP_PATCH
| | [Template] | L2 Bridge Domain Binary Search BW limit
-| | framesize=${1518} | min_rate=${50000} | wt=4 | rxq=2
+| | framesize=${1518} | phy_cores=${4}
| | ... | s_limit=${s_24.5G} | search_type=NDR
| tc19-IMIX-1t1c-eth-l2bdbasemaclrn-ndrdisc
@@ -186,7 +188,7 @@
| | ... | 24.5G rate, step 50kpps.
| | [Tags] | IMIX | 1C | NDRDISC
| | [Template] | L2 Bridge Domain Binary Search BW limit
-| | framesize=IMIX_v4_1 | min_rate=${50000} | wt=1 | rxq=1
+| | framesize=IMIX_v4_1 | phy_cores=${1}
| | ... | s_limit=${s_24.5G} | search_type=NDR
| tc20-IMIX-2t2c-eth-l2bdbasemaclrn-ndrdisc
@@ -197,7 +199,7 @@
| | ... | 24.5G rate, step 50kpps.
| | [Tags] | IMIX | 2C | NDRDISC | SKIP_PATCH
| | [Template] | L2 Bridge Domain Binary Search BW limit
-| | framesize=IMIX_v4_1 | min_rate=${50000} | wt=2 | rxq=1
+| | framesize=IMIX_v4_1 | phy_cores=${2}
| | ... | s_limit=${s_24.5G} | search_type=NDR
| tc21-IMIX-4t4c-eth-l2bdbasemaclrn-ndrdisc
@@ -208,6 +210,6 @@
| | ... | 24.5G rate, step 50kpps.
| | [Tags] | IMIX | 4C | NDRDISC | SKIP_PATCH
| | [Template] | L2 Bridge Domain Binary Search BW limit
-| | framesize=IMIX_v4_1 | min_rate=${50000} | wt=4 | rxq=2
+| | framesize=IMIX_v4_1 | phy_cores=${4}
| | ... | s_limit=${s_24.5G} | search_type=NDR
diff --git a/tests/vpp/perf/l2/40ge2p1xl710-eth-l2xcbase-mrr.robot b/tests/vpp/perf/l2/40ge2p1xl710-eth-l2xcbase-mrr.robot
index 65db8c4393..f6e7da49fb 100644
--- a/tests/vpp/perf/l2/40ge2p1xl710-eth-l2xcbase-mrr.robot
+++ b/tests/vpp/perf/l2/40ge2p1xl710-eth-l2xcbase-mrr.robot
@@ -27,6 +27,8 @@
| ...
| Test Teardown | Tear down performance mrr test
| ...
+| Test Template | Local template
+| ...
| Documentation | *Raw results L2XC test cases*
| ...
| ... | *[Top] Network Topologies:* TG-DUT1-DUT2-TG 3-node circular topology
@@ -53,23 +55,28 @@
| ${traffic_profile} | trex-sl-3n-ethip4-ip4src254
*** Keywords ***
-| Check RR for l2xcbase
+| Local template
| | [Documentation]
-| | ... | [Cfg] DUT runs L2XC config with ${wt} thread(s),\
-| | ... | ${wt} phy core(s), ${rxq} receive queue(s) per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for ${framesize} frames using single\
+| | ... | [Cfg] DUT runs L2XC config with ${phy_cores} phy
+| | ... | core(s).
+| | ... | [Ver] Measure MaxReceivedRate for ${framesize}B frames using single\
| | ... | trial throughput test.
| | ...
-| | [Arguments] | ${framesize} | ${wt} | ${rxq}
+| | ... | *Arguments:*
+| | ... | - framesize - Framesize in Bytes in integer or string (IMIX_v4_1).
+| | ... | Type: integer, string
+| | ... | - phy_cores - Number of physical cores. Type: integer
+| | ... | - rxq - Number of RX queues, default value: ${None}. Type: integer
+| | ...
+| | [Arguments] | ${framesize} | ${phy_cores} | ${rxq}=${None}
| | ...
-| | # Test Variables required for test teardown
| | Set Test Variable | ${framesize}
| | ${get_framesize}= | Get Frame Size | ${framesize}
| | ${max_rate}= | Calculate pps | ${s_24.5G} | ${get_framesize}
| | ${max_rate}= | Set Variable If
| | ... | ${max_rate} > ${s_18.75Mpps} | ${s_18.75Mpps} | ${max_rate}
| | ...
-| | Given Add '${wt}' worker threads and '${rxq}' rxqueues in 3-node single-link circular topology
+| | Given Add worker threads and rxqueues to all DUTs | ${phy_cores} | ${rxq}
| | And Add PCI devices to all DUTs
| | And Run Keyword If | ${get_framesize} < ${1522}
| | ... | Add no multi seg to all DUTs
@@ -83,148 +90,49 @@
*** Test Cases ***
| tc01-64B-1t1c-eth-l2xcbase-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2XC switching config with 1 phy core, \
-| | ... | 1 receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 64B frames using single trial\
-| | ... | throughput test.
-| | ...
| | [Tags] | 64B | 1C
-| | ...
-| | [Template] | Check RR for l2xcbase
-| | framesize=${64} | wt=1 | rxq=1
+| | framesize=${64} | phy_cores=${1}
| tc02-1518B-1t1c-eth-l2xcbase-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2XC switching config with 1 phy core, \
-| | ... | 1 receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 1518B frames using single trial\
-| | ... | throughput test.
-| | ...
| | [Tags] | 1518B | 1C
-| | ...
-| | [Template] | Check RR for l2xcbase
-| | framesize=${1518} | wt=1 | rxq=1
+| | framesize=${1518} | phy_cores=${1}
| tc03-9000B-1t1c-eth-l2xcbase-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2XC switching config with 1 phy core, \
-| | ... | 1 receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 9000B frames using single trial\
-| | ... | throughput test.
-| | ...
| | [Tags] | 9000B | 1C
-| | ...
-| | [Template] | Check RR for l2xcbase
-| | framesize=${9000} | wt=1 | rxq=1
+| | framesize=${9000} | phy_cores=${1}
| tc04-IMIX-1t1c-eth-l2xcbase-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2XC switching config with 1 phy core, \
-| | ... | 1 receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for IMIX_v4_1 frames using single trial\
-| | ... | throughput test.
-| | ... | IMIX_v4_1 = (28x64B;16x570B;4x1518B)
-| | ...
| | [Tags] | IMIX | 1C
-| | ...
-| | [Template] | Check RR for l2xcbase
-| | framesize=IMIX_v4_1 | wt=1 | rxq=1
+| | framesize=IMIX_v4_1 | phy_cores=${1}
| tc05-64B-2t2c-eth-l2xcbase-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2XC switching config with 2 phy cores, \
-| | ... | 1 receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 64B frames using single trial\
-| | ... | throughput test.
-| | ...
| | [Tags] | 64B | 2C
-| | ...
-| | [Template] | Check RR for l2xcbase
-| | framesize=${64} | wt=2 | rxq=1
+| | framesize=${64} | phy_cores=${2}
| tc06-1518B-2t2c-eth-l2xcbase-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2XC switching config with 2 phy cores, \
-| | ... | 1 receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 1518B frames using single trial\
-| | ... | throughput test.
-| | ...
| | [Tags] | 1518B | 2C
-| | ...
-| | [Template] | Check RR for l2xcbase
-| | framesize=${1518} | wt=2 | rxq=1
+| | framesize=${1518} | phy_cores=${2}
| tc07-9000B-2t2c-eth-l2xcbase-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2XC switching config with 2 phy cores, \
-| | ... | 1 receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 9000B frames using single trial\
-| | ... | throughput test.
-| | ...
| | [Tags] | 9000B | 2C
-| | ...
-| | [Template] | Check RR for l2xcbase
-| | framesize=${9000} | wt=2 | rxq=1
+| | framesize=${9000} | phy_cores=${2}
| tc08-IMIX-2t2c-eth-l2xcbase-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2XC switching config with 2 phy core, \
-| | ... | 1 receive queue per NIC port..
-| | ... | [Ver] Measure MaxReceivedRate for IMIX_v4_1 frames using single trial\
-| | ... | throughput test.
-| | ... | IMIX_v4_1 = (28x64B;16x570B;4x1518B)
-| | ...
| | [Tags] | IMIX | 2C
-| | ...
-| | [Template] | Check RR for l2xcbase
-| | framesize=IMIX_v4_1 | wt=2 | rxq=1
+| | framesize=IMIX_v4_1 | phy_cores=${2}
| tc09-64B-4t4c-eth-l2xcbase-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2XC switching config with 4 phy cores, \
-| | ... | 2 receive queues per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 64B frames using single trial\
-| | ... | throughput test.
-| | ...
| | [Tags] | 64B | 4C
-| | ...
-| | [Template] | Check RR for l2xcbase
-| | framesize=${64} | wt=4 | rxq=2
+| | framesize=${64} | phy_cores=${4}
| tc10-1518B-4t4c-eth-l2xcbase-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2XC switching config with 4 phy cores, \
-| | ... | 2 receive queues per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 1518B frames using single trial\
-| | ... | throughput test.
-| | ...
| | [Tags] | 1518B | 4C
-| | ...
-| | [Template] | Check RR for l2xcbase
-| | framesize=${1518} | wt=4 | rxq=2
+| | framesize=${1518} | phy_cores=${4}
| tc11-9000B-4t4c-eth-l2xcbase-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2XC switching config with 4 phy cores, \
-| | ... | 2 receive queues per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 9000B frames using single trial\
-| | ... | throughput test.
-| | ...
| | [Tags] | 9000B | 4C
-| | ...
-| | [Template] | Check RR for l2xcbase
-| | framesize=${9000} | wt=4 | rxq=2
+| | framesize=${9000} | phy_cores=${4}
| tc12-IMIX-4t4c-eth-l2xcbase-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2XC switching config with 4 thread, 4 phy core, \
-| | ... | 2 receive queue per NIC port..
-| | ... | [Ver] Measure MaxReceivedRate for IMIX_v4_1 frames using single trial\
-| | ... | throughput test.
-| | ... | IMIX_v4_1 = (28x64B;16x570B;4x1518B)
-| | ...
| | [Tags] | IMIX | 4C
-| | ...
-| | [Template] | Check RR for l2xcbase
-| | framesize=IMIX_v4_1 | wt=4 | rxq=2
+| | framesize=IMIX_v4_1 | phy_cores=${4}
diff --git a/tests/vpp/perf/l2/40ge2p1xl710-eth-l2xcbase-ndrpdrdisc.robot b/tests/vpp/perf/l2/40ge2p1xl710-eth-l2xcbase-ndrpdrdisc.robot
index 54a2de44e6..e4acddfcb5 100644
--- a/tests/vpp/perf/l2/40ge2p1xl710-eth-l2xcbase-ndrpdrdisc.robot
+++ b/tests/vpp/perf/l2/40ge2p1xl710-eth-l2xcbase-ndrpdrdisc.robot
@@ -70,7 +70,7 @@
| | ${binary_min}= | Set Variable | ${min_rate}
| | ${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
+| | Given Add worker threads and rxqueues to all DUTs | 1
| | And Add PCI devices to all DUTs
| | And Add no multi seg to all DUTs
| | And Add DPDK dev default RXD to all DUTs | 2048
@@ -93,7 +93,7 @@
| | ${binary_min}= | Set Variable | ${min_rate}
| | ${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
+| | Given Add worker threads and rxqueues to all DUTs | 1
| | And Add PCI devices to all DUTs
| | And Add no multi seg to all DUTs
| | And Add DPDK dev default RXD to all DUTs | 2048
@@ -116,7 +116,7 @@
| | ${binary_min}= | Set Variable | ${min_rate}
| | ${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
+| | Given Add worker threads and rxqueues to all DUTs | 2
| | And Add PCI devices to all DUTs
| | And Add no multi seg to all DUTs
| | And Add DPDK dev default RXD to all DUTs | 2048
@@ -139,7 +139,7 @@
| | ${binary_min}= | Set Variable | ${min_rate}
| | ${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
+| | Given Add worker threads and rxqueues to all DUTs | 2
| | And Add PCI devices to all DUTs
| | And Add no multi seg to all DUTs
| | And Add DPDK dev default RXD to all DUTs | 2048
@@ -162,7 +162,7 @@
| | ${binary_min}= | Set Variable | ${min_rate}
| | ${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
+| | Given Add worker threads and rxqueues to all DUTs | 4
| | And Add PCI devices to all DUTs
| | And Add no multi seg to all DUTs
| | And Add DPDK dev default RXD to all DUTs | 2048
@@ -185,7 +185,7 @@
| | ${binary_min}= | Set Variable | ${min_rate}
| | ${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
+| | Given Add worker threads and rxqueues to all DUTs | 4
| | And Add PCI devices to all DUTs
| | And Add no multi seg to all DUTs
| | And Add DPDK dev default RXD to all DUTs | 2048
@@ -209,7 +209,7 @@
| | ${binary_min}= | Set Variable | ${min_rate}
| | ${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
+| | Given Add worker threads and rxqueues to all DUTs | 1
| | And Add PCI devices to all DUTs
| | And Add no multi seg to all DUTs
| | And Add DPDK dev default RXD to all DUTs | 2048
@@ -233,7 +233,7 @@
| | ${binary_min}= | Set Variable | ${min_rate}
| | ${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
+| | Given Add worker threads and rxqueues to all DUTs | 2
| | And Add PCI devices to all DUTs
| | And Add no multi seg to all DUTs
| | And Add DPDK dev default RXD to all DUTs | 2048
@@ -257,7 +257,7 @@
| | ${binary_min}= | Set Variable | ${min_rate}
| | ${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
+| | Given Add worker threads and rxqueues to all DUTs | 4
| | And Add PCI devices to all DUTs
| | And Add no multi seg to all DUTs
| | And Add DPDK dev default RXD to all DUTs | 2048
diff --git a/tests/vpp/perf/srv6/10ge2p1x520-ethip6ip6-ip6base-srv6enc1sid-mrr.robot b/tests/vpp/perf/srv6/10ge2p1x520-ethip6ip6-ip6base-srv6enc1sid-mrr.robot
index 86f3b2d826..1a42090412 100644
--- a/tests/vpp/perf/srv6/10ge2p1x520-ethip6ip6-ip6base-srv6enc1sid-mrr.robot
+++ b/tests/vpp/perf/srv6/10ge2p1x520-ethip6ip6-ip6base-srv6enc1sid-mrr.robot
@@ -25,6 +25,8 @@
| ...
| Test Teardown | Tear down mrr test with SRv6 with encapsulation
| ...
+| Test Template | Local template
+| ...
| Documentation | *Raw results for Segment routing over IPv6 dataplane with\
| ... | one SID (SRH not inserted) test cases*
| ...
@@ -72,17 +74,27 @@
| ${traffic_profile}= | trex-sl-3n-ethip6-ip6src253
*** Keywords ***
-| Check RR for IPv6 routing over SRv6
+| Local template
+| | [Documentation]
+| | ... | [Cfg] DUT runs IPv6 over SRv6 routing config with ${phy_cores} phy
+| | ... | core(s).
+| | ... | [Ver] Measure MaxReceivedRate for ${framesize}B frames using single\
+| | ... | trial throughput test.
+| | ...
+| | ... | *Arguments:*
+| | ... | - framesize - Framesize in Bytes in integer or string (IMIX_v4_1).
+| | ... | Type: integer, string
+| | ... | - phy_cores - Number of physical cores. Type: integer
+| | ... | - rxq - Number of RX queues, default value: ${None}. Type: integer
| | ...
-| | [Arguments] | ${wt} | ${rxq} | ${framesize}
+| | [Arguments] | ${phy_cores} | ${framesize} | ${rxq}=${None}
| | ...
-| | # Test Variables required for test teardown
| | Set Test Variable | ${framesize}
| | ${get_framesize}= | Get Frame Size | ${framesize}
| | ${max_rate}= | Calculate pps | ${s_limit}
| | ... | ${get_framesize} + ${srv6_overhead_nosrh}
| | ...
-| | Given Add '${wt}' worker threads and '${rxq}' rxqueues in 3-node single-link circular topology
+| | Given Add worker threads and rxqueues to all DUTs | ${phy_cores} | ${rxq}
| | And Add PCI devices to all DUTs
| | And Run Keyword If | ${get_framesize} < ${1522} | Add no multi seg to all DUTs
| | And Apply startup configuration on all VPP DUTs
@@ -92,148 +104,49 @@
*** Test Cases ***
| tc01-78B-1t1c-ethip6ip6-ip6base-srv6enc1sid-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv6 over SRv6 routing config with\
-| | ... | 1 phy core, 1 receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 78B frames using single trial\
-| | ... | throughput test.
-| | ...
| | [Tags] | 78B | 1C
-| | ...
-| | [Template] | Check RR for IPv6 routing over SRv6
-| | wt=1 | rxq=1 | framesize=${78}
+| | phy_cores=${1} | framesize=${78}
| tc02-1518B-1t1c-ethip6ip6-ip6base-srv6enc1sid-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv6 over SRv6 routing config with\
-| | ... | 1 phy core, 1 receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 1518B frames using single trial\
-| | ... | throughput test.
-| | ...
| | [Tags] | 1518B | 1C
-| | ...
-| | [Template] | Check RR for IPv6 routing over SRv6
-| | wt=1 | rxq=1 | framesize=${1518}
+| | phy_cores=${1} | framesize=${1518}
| tc03-9000B-1t1c-ethip6ip6-ip6base-srv6enc1sid-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv6 over SRv6 routing config with\
-| | ... | 1 phy core, 1 receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 9000B frames using single trial\
-| | ... | throughput test.
-| | ...
| | [Tags] | 9000B | 1C
-| | ...
-| | [Template] | Check RR for IPv6 routing over SRv6
-| | wt=1 | rxq=1 | framesize=${9000}
+| | phy_cores=${1} | framesize=${9000}
| tc04-IMIX-1t1c-ethip6ip6-ip6base-srv6enc1sid-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv6 over SRv6 routing config with\
-| | ... | 1 phy core, 1 receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for IMIX_v4_1 frames using single trial\
-| | ... | throughput test.
-| | ... | IMIX_v4_1 = (28x64B; 16x570B; 4x1518B)
-| | ...
| | [Tags] | IMIX | 1C
-| | ...
-| | [Template] | Check RR for IPv6 routing over SRv6
-| | wt=1 | rxq=1 | framesize=IMIX_v4_1
+| | phy_cores=${1} | framesize=IMIX_v4_1
| tc05-78B-2t2c-ethip6ip6-ip6base-srv6enc1sid-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv6 over SRv6 routing config with\
-| | ... | 2 phy cores, 1 receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 78B frames using single trial\
-| | ... | throughput test.
-| | ...
| | [Tags] | 78B | 2C
-| | ...
-| | [Template] | Check RR for IPv6 routing over SRv6
-| | wt=2 | rxq=1 | framesize=${78}
+| | phy_cores=${2} | framesize=${78}
| tc06-1518B-2t2c-ethip6ip6-ip6base-srv6enc1sid-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv6 over SRv6 routing config with\
-| | ... | 2 phy cores, 1 receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 1518B frames using single trial\
-| | ... | throughput test.
-| | ...
| | [Tags] | 1518B | 2C
-| | ...
-| | [Template] | Check RR for IPv6 routing over SRv6
-| | wt=2 | rxq=1 | framesize=${1518}
+| | phy_cores=${2} | framesize=${1518}
| tc07-9000B-2t2c-ethip6ip6-ip6base-srv6enc1sid-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv6 over SRv6 routing config with\
-| | ... | 2 phy cores, 1 receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 9000B frames using single trial\
-| | ... | throughput test.
-| | ...
| | [Tags] | 9000B | 2C
-| | ...
-| | [Template] | Check RR for IPv6 routing over SRv6
-| | wt=2 | rxq=1 | framesize=${9000}
+| | phy_cores=${2} | framesize=${9000}
| tc08-IMIX-2t2c-ethip6ip6-ip6base-srv6enc1sid-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv6 over SRv6 routing config with\
-| | ... | 2 phy cores, 1 receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for IMIX_v4_1 frames using single trial\
-| | ... | throughput test.
-| | ... | IMIX_v4_1 = (28x64B; 16x570B; 4x1518B)
-| | ...
| | [Tags] | IMIX | 2C
-| | ...
-| | [Template] | Check RR for IPv6 routing over SRv6
-| | wt=2 | rxq=1 | framesize=IMIX_v4_1
+| | phy_cores=${2} | framesize=IMIX_v4_1
| tc09-78B-4t4c-ethip6ip6-ip6base-srv6enc1sid-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv6 over SRv6 routing config with\
-| | ... | 4 phy cores, 2 receive queues per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 78B frames using single trial\
-| | ... | throughput test.
-| | ...
| | [Tags] | 78B | 4C
-| | ...
-| | [Template] | Check RR for IPv6 routing over SRv6
-| | wt=4 | rxq=2 | framesize=${78}
+| | phy_cores=${4} | framesize=${78}
| tc10-1518B-4t4c-ethip6ip6-ip6base-srv6enc1sid-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv6 over SRv6 routing config with\
-| | ... | 4 phy cores, 2 receive queues per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 1518B frames using single trial\
-| | ... | throughput test.
-| | ...
| | [Tags] | 1518B | 4C
-| | ...
-| | [Template] | Check RR for IPv6 routing over SRv6
-| | wt=4 | rxq=2 | framesize=${1518}
+| | phy_cores=${4} | framesize=${1518}
| tc11-9000B-4t4c-ethip6ip6-ip6base-srv6enc1sid-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv6 over SRv6 routing config with\
-| | ... | 4 phy cores, 2 receive queues per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 9000B frames using single trial\
-| | ... | throughput test.
-| | ...
| | [Tags] | 9000B | 4C
-| | ...
-| | [Template] | Check RR for IPv6 routing over SRv6
-| | wt=4 | rxq=2 | framesize=${9000}
+| | phy_cores=${4} | framesize=${9000}
| tc12-IMIX-4t4c-ethip6ip6-ip6base-srv6enc1sid-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv6 over SRv6 routing config with\
-| | ... | 4 phy cores, 2 receive queues per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for IMIX_v4_1 frames using single trial\
-| | ... | throughput test.
-| | ... | IMIX_v4_1 = (28x64B; 16x570B; 4x1518B)
-| | ...
| | [Tags] | IMIX | 4C
-| | ...
-| | [Template] | Check RR for IPv6 routing over SRv6
-| | wt=4 | rxq=2 | framesize=IMIX_v4_1
+| | phy_cores=${4} | framesize=IMIX_v4_1
diff --git a/tests/vpp/perf/srv6/10ge2p1x520-ethip6ip6-ip6base-srv6enc1sid-ndrpdrdisc.robot b/tests/vpp/perf/srv6/10ge2p1x520-ethip6ip6-ip6base-srv6enc1sid-ndrpdrdisc.robot
index d13c07cc85..eef92a22b6 100644
--- a/tests/vpp/perf/srv6/10ge2p1x520-ethip6ip6-ip6base-srv6enc1sid-ndrpdrdisc.robot
+++ b/tests/vpp/perf/srv6/10ge2p1x520-ethip6ip6-ip6base-srv6enc1sid-ndrpdrdisc.robot
@@ -26,6 +26,8 @@
| Test Teardown | Tear down performance test with SRv6 with encapsulation
| ... | ${min_rate}pps | ${framesize} | ${traffic_profile}
| ...
+| Test Template | Local template
+| ...
| Documentation | *Packet throughput Segment routing over IPv6 dataplane with\
| ... | one SID (SRH not inserted) test cases*
| ...
@@ -77,9 +79,9 @@
| ${traffic_profile}= | trex-sl-3n-ethip6-ip6src253
*** Keywords ***
-| Discover NDR or PDR for IPv6 routing over SRv6
-| | ...
-| | [Arguments] | ${wt} | ${rxq} | ${framesize} | ${min_rate} | ${search_type}
+| Local template
+| | [Arguments] | ${phy_cores} | ${framesize} | ${search_type}
+| | ... | ${min_rate}=${50000} | ${rxq}=${None}
| | ...
| | Set Test Variable | ${framesize}
| | Set Test Variable | ${min_rate}
@@ -89,7 +91,7 @@
| | ${binary_min}= | Set Variable | ${min_rate}
| | ${binary_max}= | Set Variable | ${max_rate}
| | ${threshold}= | Set Variable | ${min_rate}
-| | Given Add '${wt}' worker threads and '${rxq}' rxqueues in 3-node single-link circular topology
+| | Given Add worker threads and rxqueues to all DUTs | ${phy_cores} | ${rxq}
| | And Add PCI devices to all DUTs
| | And Run Keyword If | ${get_framesize} < ${1522} | Add no multi seg to all DUTs
| | And Apply startup configuration on all VPP DUTs
@@ -106,145 +108,49 @@
*** Test Cases ***
| tc01-78B-1t1c-ethip6ip6-ip6base-srv6enc1sid-ndrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv6 over SRv6 routing config with\
-| | ... | 1 phy core, 1 receive queue per NIC port.
-| | ... | [Ver] Find NDR for 78 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 50kpps.
-| | ...
| | [Tags] | 78B | 1C | NDRDISC
-| | ...
-| | [Template] | Discover NDR or PDR for IPv6 routing over SRv6
-| | wt=1 | rxq=1 | framesize=${78} | min_rate=${50000} | search_type=NDR
+| | phy_cores=${1} | framesize=${78} | search_type=NDR
| tc02-78B-1t1c-ethip6ip6-ip6base-srv6enc1sid-pdrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv6 over SRv6 routing config with\
-| | ... | 1 phy core, 1 receive queue per NIC port.
-| | ... | [Ver] Find PDR for 78 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 50kpps, LT=0.5%.
-| | ...
| | [Tags] | 78B | 1C | PDRDISC | SKIP_PATCH
-| | ...
-| | [Template] | Discover NDR or PDR for IPv6 routing over SRv6
-| | wt=1 | rxq=1 | framesize=${78} | min_rate=${50000} | search_type=PDR
+| | phy_cores=${1} | framesize=${78} | search_type=PDR
| tc03-78B-2t2c-ethip6ip6-ip6base-srv6enc1sid-ndrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv6 over SRv6 routing config with\
-| | ... | 2 phy cores, 1 receive queue per NIC port.
-| | ... | [Ver] Find NDR for 78 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 50kpps.
-| | ...
| | [Tags] | 78B | 2C | NDRDISC
-| | ...
-| | [Template] | Discover NDR or PDR for IPv6 routing over SRv6
-| | wt=2 | rxq=1 | framesize=${78} | min_rate=${50000} | search_type=NDR
+| | phy_cores=${2} | framesize=${78} | search_type=NDR
| tc04-78B-2t2c-ethip6ip6-ip6base-srv6enc1sid-pdrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv6 over SRv6 routing config with\
-| | ... | 2 phy cores, 1 receive queue per NIC port.
-| | ... | [Ver] Find PDR for 78 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 50kpps, LT=0.5%.
-| | ...
| | [Tags] | 78B | 2C | PDRDISC | SKIP_PATCH
-| | ...
-| | [Template] | Discover NDR or PDR for IPv6 routing over SRv6
-| | wt=2 | rxq=1 | framesize=${78} | min_rate=${50000} | search_type=PDR
+| | phy_cores=${2} | framesize=${78} | search_type=PDR
| tc05-78B-4t4c-ethip6ip6-ip6base-srv6enc1sid-ndrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv6 over SRv6 routing config with\
-| | ... | 4 phy cores, 2 receive queues per NIC port.
-| | ... | [Ver] Find NDR for 78 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 50kpps.
-| | ...
| | [Tags] | 78B | 4C | NDRDISC
-| | ...
-| | [Template] | Discover NDR or PDR for IPv6 routing over SRv6
-| | wt=4 | rxq=2 | framesize=${78} | min_rate=${50000} | search_type=NDR
+| | phy_cores=${4} | framesize=${78} | search_type=NDR
| tc06-78B-4t4c-ethip6ip6-ip6base-srv6enc1sid-pdrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv6 over SRv6 routing config with\
-| | ... | 4 phy cores, 2 receive queues per NIC port.
-| | ... | [Ver] Find PDR for 78 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 50kpps, LT=0.5%.
-| | ...
| | [Tags] | 78B | 4C | PDRDISC | SKIP_PATCH
-| | ...
-| | [Template] | Discover NDR or PDR for IPv6 routing over SRv6
-| | wt=4 | rxq=2 | framesize=${78} | min_rate=${50000} | search_type=PDR
+| | phy_cores=${4} | framesize=${78} | search_type=PDR
| tc07-1518B-1t1c-ethip6ip6-ip6base-srv6enc1sid-ndrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv6 over SRv6 routing config with\
-| | ... | 1 phy core, 1 receive queue per NIC port.
-| | ... | [Ver] Find NDR for 1518 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 50kpps.
-| | ...
| | [Tags] | 1518B | 1C | NDRDISC
-| | ...
-| | [Template] | Discover NDR or PDR for IPv6 routing over SRv6
-| | wt=1 | rxq=1 | framesize=${1518} | min_rate=${50000} | search_type=NDR
+| | phy_cores=${1} | framesize=${1518} | search_type=NDR
| tc08-1518B-1t1c-ethip6ip6-ip6base-srv6enc1sid-pdrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv6 over SRv6 routing config with\
-| | ... | 1 phy core, 1 receive queue per NIC port.
-| | ... | [Ver] Find PDR for 1518 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 50kpps, LT=0.5%.
-| | ...
| | [Tags] | 1518B | 1C | PDRDISC | SKIP_PATCH
-| | ...
-| | [Template] | Discover NDR or PDR for IPv6 routing over SRv6
-| | wt=1 | rxq=1 | framesize=${1518} | min_rate=${50000} | search_type=PDR
+| | phy_cores=${1} | framesize=${1518} | search_type=PDR
| tc09-1518B-2t2c-ethip6ip6-ip6base-srv6enc1sid-ndrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv6 over SRv6 routing config with\
-| | ... | 2 phy cores, 1 receive queue per NIC port.
-| | ... | [Ver] Find NDR for 1518 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 50kpps.
-| | ...
| | [Tags] | 1518B | 2C | NDRDISC
-| | ...
-| | [Template] | Discover NDR or PDR for IPv6 routing over SRv6
-| | wt=2 | rxq=1 | framesize=${1518} | min_rate=${50000} | search_type=NDR
+| | phy_cores=${2} | framesize=${1518} | search_type=NDR
| tc10-1518B-2t2c-ethip6ip6-ip6base-srv6enc1sid-pdrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv6 over SRv6 routing config with\
-| | ... | 2 phy cores, 1 receive queue per NIC port.
-| | ... | [Ver] Find PDR for 1518 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 50kpps, LT=0.5%.
-| | ...
| | [Tags] | 1518B | 2C | PDRDISC | SKIP_PATCH
-| | ...
-| | [Template] | Discover NDR or PDR for IPv6 routing over SRv6
-| | wt=2 | rxq=1 | framesize=${1518} | min_rate=${50000} | search_type=PDR
+| | phy_cores=${2} | framesize=${1518} | search_type=PDR
| tc11-1518B-4t4c-ethip6ip6-ip6base-srv6enc1sid-ndrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv6 over SRv6 routing config with\
-| | ... | 4 phy cores, 2 receive queues per NIC port.
-| | ... | [Ver] Find NDR for 1518 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 50kpps.
-| | ...
| | [Tags] | 1518B | 4C | NDRDISC
-| | ...
-| | [Template] | Discover NDR or PDR for IPv6 routing over SRv6
-| | wt=4 | rxq=2 | framesize=${1518} | min_rate=${50000} | search_type=NDR
+| | phy_cores=${4} | framesize=${1518} | search_type=NDR
| tc12-1518B-4t4c-ethip6ip6-ip6base-srv6enc1sid-pdrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv6 over SRv6 routing config with\
-| | ... | 4 phy cores, 2 receive queues per NIC port.
-| | ... | [Ver] Find PDR for 1518 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 50kpps, LT=0.5%.
-| | ...
| | [Tags] | 1518B | 4C | PDRDISC | SKIP_PATCH
-| | ...
-| | [Template] | Discover NDR or PDR for IPv6 routing over SRv6
-| | wt=4 | rxq=2 | framesize=${1518} | min_rate=${50000} | search_type=PDR
+| | phy_cores=${4} | framesize=${1518} | search_type=PDR
diff --git a/tests/vpp/perf/srv6/10ge2p1x520-ethip6srhip6-ip6base-srv6enc2sids-mrr.robot b/tests/vpp/perf/srv6/10ge2p1x520-ethip6srhip6-ip6base-srv6enc2sids-mrr.robot
index 4335844135..51af0b1f7a 100644
--- a/tests/vpp/perf/srv6/10ge2p1x520-ethip6srhip6-ip6base-srv6enc2sids-mrr.robot
+++ b/tests/vpp/perf/srv6/10ge2p1x520-ethip6srhip6-ip6base-srv6enc2sids-mrr.robot
@@ -25,6 +25,8 @@
| ...
| Test Teardown | Tear down mrr test with SRv6 with encapsulation
| ...
+| Test Template | Local template
+| ...
| Documentation | *Raw results for Segment routing over IPv6 dataplane with\
| ... | two SIDs (SRH inserted) test cases*
| ...
@@ -75,17 +77,27 @@
| ${traffic_profile}= | trex-sl-3n-ethip6-ip6src253
*** Keywords ***
-| Check RR for IPv6 routing over SRv6
+| Local template
+| | [Documentation]
+| | ... | [Cfg] DUT runs IPv6 over SRv6 routing config with ${phy_cores} phy
+| | ... | core(s).
+| | ... | [Ver] Measure MaxReceivedRate for ${framesize}B frames using single\
+| | ... | trial throughput test.
+| | ...
+| | ... | *Arguments:*
+| | ... | - framesize - Framesize in Bytes in integer or string (IMIX_v4_1).
+| | ... | Type: integer, string
+| | ... | - phy_cores - Number of physical cores. Type: integer
+| | ... | - rxq - Number of RX queues, default value: ${None}. Type: integer
| | ...
-| | [Arguments] | ${wt} | ${rxq} | ${framesize}
+| | [Arguments] | ${phy_cores} | ${framesize} | ${rxq}=${None}
| | ...
-| | # Test Variables required for test teardown
| | Set Test Variable | ${framesize}
| | ${get_framesize}= | Get Frame Size | ${framesize}
| | ${max_rate}= | Calculate pps | ${s_limit}
| | ... | ${get_framesize} + ${srv6_overhead_2sids}
| | ...
-| | Given Add '${wt}' worker threads and '${rxq}' rxqueues in 3-node single-link circular topology
+| | Given Add worker threads and rxqueues to all DUTs | ${phy_cores} | ${rxq}
| | And Add PCI devices to all DUTs
| | And Run Keyword If | ${get_framesize} < ${1522} | Add no multi seg to all DUTs
| | And Apply startup configuration on all VPP DUTs
@@ -95,148 +107,49 @@
*** Test Cases ***
| tc01-78B-1t1c-ethip6srhip6-ip6base-srv6enc2sids-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv6 over SRv6 routing config with\
-| | ... | 1 phy core, 1 receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 78B frames using single trial\
-| | ... | throughput test.
-| | ...
| | [Tags] | 78B | 1C
-| | ...
-| | [Template] | Check RR for IPv6 routing over SRv6
-| | wt=1 | rxq=1 | framesize=${78}
+| | phy_cores=${1} | framesize=${78}
| tc02-1518B-1t1c-ethip6srhip6-ip6base-srv6enc2sids-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv6 over SRv6 routing config with\
-| | ... | 1 phy core, 1 receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 1518B frames using single trial\
-| | ... | throughput test.
-| | ...
| | [Tags] | 1518B | 1C
-| | ...
-| | [Template] | Check RR for IPv6 routing over SRv6
-| | wt=1 | rxq=1 | framesize=${1518}
+| | phy_cores=${1} | framesize=${1518}
| tc03-9000B-1t1c-ethip6srhip6-ip6base-srv6enc2sids-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv6 over SRv6 routing config with\
-| | ... | 1 phy core, 1 receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 9000B frames using single trial\
-| | ... | throughput test.
-| | ...
| | [Tags] | 9000B | 1C
-| | ...
-| | [Template] | Check RR for IPv6 routing over SRv6
-| | wt=1 | rxq=1 | framesize=${9000}
+| | phy_cores=${1} | framesize=${9000}
| tc04-IMIX-1t1c-ethip6srhip6-ip6base-srv6enc2sids-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv6 over SRv6 routing config with\
-| | ... | 1 phy core, 1 receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for IMIX_v4_1 frames using single trial\
-| | ... | throughput test.
-| | ... | IMIX_v4_1 = (28x64B; 16x570B; 4x1518B)
-| | ...
| | [Tags] | IMIX | 1C
-| | ...
-| | [Template] | Check RR for IPv6 routing over SRv6
-| | wt=1 | rxq=1 | framesize=IMIX_v4_1
+| | phy_cores=${1} | framesize=IMIX_v4_1
| tc05-78B-2t2c-ethip6srhip6-ip6base-srv6enc2sids-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv6 over SRv6 routing config with\
-| | ... | 2 phy cores, 1 receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 78B frames using single trial\
-| | ... | throughput test.
-| | ...
| | [Tags] | 78B | 2C
-| | ...
-| | [Template] | Check RR for IPv6 routing over SRv6
-| | wt=2 | rxq=1 | framesize=${78}
+| | phy_cores=${2} | framesize=${78}
| tc06-1518B-2t2c-ethip6srhip6-ip6base-srv6enc2sids-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv6 over SRv6 routing config with\
-| | ... | 2 phy cores, 1 receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 1518B frames using single trial\
-| | ... | throughput test.
-| | ...
| | [Tags] | 1518B | 2C
-| | ...
-| | [Template] | Check RR for IPv6 routing over SRv6
-| | wt=2 | rxq=1 | framesize=${1518}
+| | phy_cores=${2} | framesize=${1518}
| tc07-9000B-2t2c-ethip6srhip6-ip6base-srv6enc2sids-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv6 over SRv6 routing config with\
-| | ... | 2 phy cores, 1 receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 9000B frames using single trial\
-| | ... | throughput test.
-| | ...
| | [Tags] | 9000B | 2C
-| | ...
-| | [Template] | Check RR for IPv6 routing over SRv6
-| | wt=2 | rxq=1 | framesize=${9000}
+| | phy_cores=${2} | framesize=${9000}
| tc08-IMIX-2t2c-ethip6srhip6-ip6base-srv6enc2sids-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv6 over SRv6 routing config with\
-| | ... | 2 phy cores, 1 receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for IMIX_v4_1 frames using single trial\
-| | ... | throughput test.
-| | ... | IMIX_v4_1 = (28x64B; 16x570B; 4x1518B)
-| | ...
| | [Tags] | IMIX | 2C
-| | ...
-| | [Template] | Check RR for IPv6 routing over SRv6
-| | wt=2 | rxq=1 | framesize=IMIX_v4_1
+| | phy_cores=${2} | framesize=IMIX_v4_1
| tc09-78B-4t4c-ethip6srhip6-ip6base-srv6enc2sids-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv6 over SRv6 routing config with\
-| | ... | 4 phy cores, 2 receive queues per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 78B frames using single trial\
-| | ... | throughput test.
-| | ...
| | [Tags] | 78B | 4C
-| | ...
-| | [Template] | Check RR for IPv6 routing over SRv6
-| | wt=4 | rxq=2 | framesize=${78}
+| | phy_cores=${4} | framesize=${78}
| tc10-1518B-4t4c-ethip6srhip6-ip6base-srv6enc2sids-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv6 over SRv6 routing config with\
-| | ... | 4 phy cores, 2 receive queues per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 1518B frames using single trial\
-| | ... | throughput test.
-| | ...
| | [Tags] | 1518B | 4C
-| | ...
-| | [Template] | Check RR for IPv6 routing over SRv6
-| | wt=4 | rxq=2 | framesize=${1518}
+| | phy_cores=${4} | framesize=${1518}
| tc11-9000B-4t4c-ethip6srhip6-ip6base-srv6enc2sids-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv6 over SRv6 routing config with\
-| | ... | 4 phy cores, 2 receive queues per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 9000B frames using single trial\
-| | ... | throughput test.
-| | ...
| | [Tags] | 9000B | 4C
-| | ...
-| | [Template] | Check RR for IPv6 routing over SRv6
-| | wt=4 | rxq=2 | framesize=${9000}
+| | phy_cores=${4} | framesize=${9000}
| tc12-IMIX-4t4c-ethip6srhip6-ip6base-srv6enc2sids-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv6 over SRv6 routing config with\
-| | ... | 4 phy cores, 2 receive queues per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for IMIX_v4_1 frames using single trial\
-| | ... | throughput test.
-| | ... | IMIX_v4_1 = (28x64B; 16x570B; 4x1518B)
-| | ...
| | [Tags] | IMIX | 4C
-| | ...
-| | [Template] | Check RR for IPv6 routing over SRv6
-| | wt=4 | rxq=2 | framesize=IMIX_v4_1
+| | phy_cores=${4} | framesize=IMIX_v4_1
diff --git a/tests/vpp/perf/srv6/10ge2p1x520-ethip6srhip6-ip6base-srv6enc2sids-ndrpdrdisc.robot b/tests/vpp/perf/srv6/10ge2p1x520-ethip6srhip6-ip6base-srv6enc2sids-ndrpdrdisc.robot
index cf57558f2d..68f1bc4780 100644
--- a/tests/vpp/perf/srv6/10ge2p1x520-ethip6srhip6-ip6base-srv6enc2sids-ndrpdrdisc.robot
+++ b/tests/vpp/perf/srv6/10ge2p1x520-ethip6srhip6-ip6base-srv6enc2sids-ndrpdrdisc.robot
@@ -26,6 +26,8 @@
| Test Teardown | Tear down performance test with SRv6 with encapsulation
| ... | ${min_rate}pps | ${framesize} | ${traffic_profile}
| ...
+| Test Template | Local template
+| ...
| Documentation | *Packet throughput Segment routing over IPv6 dataplane with\
| ... | two SIDs (SRH inserted) test cases*
| ...
@@ -80,9 +82,9 @@
| ${traffic_profile}= | trex-sl-3n-ethip6-ip6src253
*** Keywords ***
-| Discover NDR or PDR for IPv6 routing over SRv6
-| | ...
-| | [Arguments] | ${wt} | ${rxq} | ${framesize} | ${min_rate} | ${search_type}
+| Local template
+| | [Arguments] | ${phy_cores} | ${framesize} | ${search_type}
+| | ... | ${min_rate}=${50000} | ${rxq}=${None}
| | ...
| | Set Test Variable | ${framesize}
| | Set Test Variable | ${min_rate}
@@ -92,7 +94,7 @@
| | ${binary_min}= | Set Variable | ${min_rate}
| | ${binary_max}= | Set Variable | ${max_rate}
| | ${threshold}= | Set Variable | ${min_rate}
-| | Given Add '${wt}' worker threads and '${rxq}' rxqueues in 3-node single-link circular topology
+| | Given Add worker threads and rxqueues to all DUTs | ${phy_cores} | ${rxq}
| | And Add PCI devices to all DUTs
| | And Run Keyword If | ${get_framesize} < ${1522} | Add no multi seg to all DUTs
| | And Apply startup configuration on all VPP DUTs
@@ -109,145 +111,49 @@
*** Test Cases ***
| tc01-78B-1t1c-ethip6srhip6-ip6base-srv6enc2sids-ndrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv6 over SRv6 routing config with\
-| | ... | 1 phy core, 1 receive queue per NIC port.
-| | ... | [Ver] Find NDR for 78 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 50kpps.
-| | ...
| | [Tags] | 78B | 1C | NDRDISC
-| | ...
-| | [Template] | Discover NDR or PDR for IPv6 routing over SRv6
-| | wt=1 | rxq=1 | framesize=${78} | min_rate=${50000} | search_type=NDR
+| | phy_cores=${1} | framesize=${78} | search_type=NDR
| tc02-78B-1t1c-ethip6srhip6-ip6base-srv6enc2sids-pdrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv6 over SRv6 routing config with\
-| | ... | 1 phy core, 1 receive queue per NIC port.
-| | ... | [Ver] Find PDR for 78 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 50kpps, LT=0.5%.
-| | ...
| | [Tags] | 78B | 1C | PDRDISC | SKIP_PATCH
-| | ...
-| | [Template] | Discover NDR or PDR for IPv6 routing over SRv6
-| | wt=1 | rxq=1 | framesize=${78} | min_rate=${50000} | search_type=PDR
+| | phy_cores=${1} | framesize=${78} | search_type=PDR
| tc03-78B-2t2c-ethip6srhip6-ip6base-srv6enc2sids-ndrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv6 over SRv6 routing config with\
-| | ... | 2 phy cores, 1 receive queue per NIC port.
-| | ... | [Ver] Find NDR for 78 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 50kpps.
-| | ...
| | [Tags] | 78B | 2C | NDRDISC
-| | ...
-| | [Template] | Discover NDR or PDR for IPv6 routing over SRv6
-| | wt=2 | rxq=1 | framesize=${78} | min_rate=${50000} | search_type=NDR
+| | phy_cores=${2} | framesize=${78} | search_type=NDR
| tc04-78B-2t2c-ethip6srhip6-ip6base-srv6enc2sids-pdrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv6 over SRv6 routing config with\
-| | ... | 2 phy cores, 1 receive queue per NIC port.
-| | ... | [Ver] Find PDR for 78 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 50kpps, LT=0.5%.
-| | ...
| | [Tags] | 78B | 2C | PDRDISC | SKIP_PATCH
-| | ...
-| | [Template] | Discover NDR or PDR for IPv6 routing over SRv6
-| | wt=2 | rxq=1 | framesize=${78} | min_rate=${50000} | search_type=PDR
+| | phy_cores=${2} | framesize=${78} | search_type=PDR
| tc05-78B-4t4c-ethip6srhip6-ip6base-srv6enc2sids-ndrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv6 over SRv6 routing config with\
-| | ... | 4 phy cores, 2 receive queues per NIC port.
-| | ... | [Ver] Find NDR for 78 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 50kpps.
-| | ...
| | [Tags] | 78B | 4C | NDRDISC
-| | ...
-| | [Template] | Discover NDR or PDR for IPv6 routing over SRv6
-| | wt=4 | rxq=2 | framesize=${78} | min_rate=${50000} | search_type=NDR
+| | phy_cores=${4} | framesize=${78} | search_type=NDR
| tc06-78B-4t4c-ethip6srhip6-ip6base-srv6enc2sids-pdrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv6 over SRv6 routing config with\
-| | ... | 4 phy cores, 2 receive queues per NIC port.
-| | ... | [Ver] Find PDR for 78 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 50kpps, LT=0.5%.
-| | ...
| | [Tags] | 78B | 4C | PDRDISC | SKIP_PATCH
-| | ...
-| | [Template] | Discover NDR or PDR for IPv6 routing over SRv6
-| | wt=4 | rxq=2 | framesize=${78} | min_rate=${50000} | search_type=PDR
+| | phy_cores=${4} | framesize=${78} | search_type=PDR
| tc07-1518B-1t1c-ethip6srhip6-ip6base-srv6enc2sids-ndrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv6 over SRv6 routing config with\
-| | ... | 1 phy core, 1 receive queue per NIC port.
-| | ... | [Ver] Find NDR for 1518 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 50kpps.
-| | ...
| | [Tags] | 1518B | 1C | NDRDISC
-| | ...
-| | [Template] | Discover NDR or PDR for IPv6 routing over SRv6
-| | wt=1 | rxq=1 | framesize=${1518} | min_rate=${50000} | search_type=NDR
+| | phy_cores=${1} | framesize=${1518} | search_type=NDR
| tc08-1518B-1t1c-ethip6srhip6-ip6base-srv6enc2sids-pdrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv6 over SRv6 routing config with\
-| | ... | 1 phy core, 1 receive queue per NIC port.
-| | ... | [Ver] Find PDR for 1518 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 50kpps, LT=0.5%.
-| | ...
| | [Tags] | 1518B | 1C | PDRDISC | SKIP_PATCH
-| | ...
-| | [Template] | Discover NDR or PDR for IPv6 routing over SRv6
-| | wt=1 | rxq=1 | framesize=${1518} | min_rate=${50000} | search_type=PDR
+| | phy_cores=${1} | framesize=${1518} | search_type=PDR
| tc09-1518B-2t2c-ethip6srhip6-ip6base-srv6enc2sids-ndrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv6 over SRv6 routing config with\
-| | ... | 2 phy cores, 1 receive queue per NIC port.
-| | ... | [Ver] Find NDR for 1518 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 50kpps.
-| | ...
| | [Tags] | 1518B | 2C | NDRDISC
-| | ...
-| | [Template] | Discover NDR or PDR for IPv6 routing over SRv6
-| | wt=2 | rxq=1 | framesize=${1518} | min_rate=${50000} | search_type=NDR
+| | phy_cores=${2} | framesize=${1518} | search_type=NDR
| tc10-1518B-2t2c-ethip6srhip6-ip6base-srv6enc2sids-pdrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv6 over SRv6 routing config with\
-| | ... | 2 phy cores, 1 receive queue per NIC port.
-| | ... | [Ver] Find PDR for 1518 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 50kpps, LT=0.5%.
-| | ...
| | [Tags] | 1518B | 2C | PDRDISC | SKIP_PATCH
-| | ...
-| | [Template] | Discover NDR or PDR for IPv6 routing over SRv6
-| | wt=2 | rxq=1 | framesize=${1518} | min_rate=${50000} | search_type=PDR
+| | phy_cores=${2} | framesize=${1518} | search_type=PDR
| tc11-1518B-4t4c-ethip6srhip6-ip6base-srv6enc2sids-ndrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv6 over SRv6 routing config with\
-| | ... | 4 phy cores, 2 receive queues per NIC port.
-| | ... | [Ver] Find NDR for 1518 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 50kpps.
-| | ...
| | [Tags] | 1518B | 4C | NDRDISC
-| | ...
-| | [Template] | Discover NDR or PDR for IPv6 routing over SRv6
-| | wt=4 | rxq=2 | framesize=${1518} | min_rate=${50000} | search_type=NDR
+| | phy_cores=${4} | framesize=${1518} | search_type=NDR
| tc12-1518B-4t4c-ethip6srhip6-ip6base-srv6enc2sids-pdrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv6 over SRv6 routing config with\
-| | ... | 4 phy cores, 2 receive queues per NIC port.
-| | ... | [Ver] Find PDR for 1518 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 50kpps, LT=0.5%.
-| | ...
| | [Tags] | 1518B | 4C | PDRDISC | SKIP_PATCH
-| | ...
-| | [Template] | Discover NDR or PDR for IPv6 routing over SRv6
-| | wt=4 | rxq=2 | framesize=${1518} | min_rate=${50000} | search_type=PDR
+| | phy_cores=${4} | framesize=${1518} | search_type=PDR
diff --git a/tests/vpp/perf/srv6/10ge2p1x520-ethip6srhip6-ip6base-srv6enc2sids-nodecaps-mrr.robot b/tests/vpp/perf/srv6/10ge2p1x520-ethip6srhip6-ip6base-srv6enc2sids-nodecaps-mrr.robot
index 0a6773015f..fd1139faea 100644
--- a/tests/vpp/perf/srv6/10ge2p1x520-ethip6srhip6-ip6base-srv6enc2sids-nodecaps-mrr.robot
+++ b/tests/vpp/perf/srv6/10ge2p1x520-ethip6srhip6-ip6base-srv6enc2sids-nodecaps-mrr.robot
@@ -25,6 +25,8 @@
| ...
| Test Teardown | Tear down mrr test with SRv6 with encapsulation
| ...
+| Test Template | Local template
+| ...
| Documentation | *Raw results for Segment routing over IPv6 dataplane with\
| ... | two SIDs (SRH inserted) without decapsulation test cases*
| ...
@@ -74,17 +76,27 @@
| ${traffic_profile}= | trex-sl-3n-ethip6-ip6src253
*** Keywords ***
-| Check RR for IPv6 routing over SRv6
+| Local template
+| | [Documentation]
+| | ... | [Cfg] DUT runs IPv6 over SRv6 routing config with ${phy_cores} phy
+| | ... | core(s).
+| | ... | [Ver] Measure MaxReceivedRate for ${framesize}B frames using single\
+| | ... | trial throughput test.
+| | ...
+| | ... | *Arguments:*
+| | ... | - framesize - Framesize in Bytes in integer or string (IMIX_v4_1).
+| | ... | Type: integer, string
+| | ... | - phy_cores - Number of physical cores. Type: integer
+| | ... | - rxq - Number of RX queues, default value: ${None}. Type: integer
| | ...
-| | [Arguments] | ${wt} | ${rxq} | ${framesize}
+| | [Arguments] | ${phy_cores} | ${framesize} | ${rxq}=${None}
| | ...
-| | # Test Variables required for test teardown
| | Set Test Variable | ${framesize}
| | ${get_framesize}= | Get Frame Size | ${framesize}
| | ${max_rate}= | Calculate pps | ${s_limit}
| | ... | ${get_framesize} + ${srv6_overhead_2sids}
| | ...
-| | Given Add '${wt}' worker threads and '${rxq}' rxqueues in 3-node single-link circular topology
+| | Given Add worker threads and rxqueues to all DUTs | ${phy_cores} | ${rxq}
| | And Add PCI devices to all DUTs
| | And Run Keyword If | ${get_framesize} < ${1522} | Add no multi seg to all DUTs
| | And Apply startup configuration on all VPP DUTs
@@ -94,148 +106,49 @@
*** Test Cases ***
| tc01-78B-1t1c-ethip6srhip6-ip6base-srv6enc2sids-nodecaps-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv6 over SRv6 routing config with\
-| | ... | 1 phy core, 1 receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 78B frames using single trial\
-| | ... | throughput test.
-| | ...
| | [Tags] | 78B | 1C
-| | ...
-| | [Template] | Check RR for IPv6 routing over SRv6
-| | wt=1 | rxq=1 | framesize=${78}
+| | phy_cores=${1} | framesize=${78}
| tc02-1518B-1t1c-ethip6srhip6-ip6base-srv6enc2sids-nodecaps-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv6 over SRv6 routing config with\
-| | ... | 1 phy core, 1 receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 1518B frames using single trial\
-| | ... | throughput test.
-| | ...
| | [Tags] | 1518B | 1C
-| | ...
-| | [Template] | Check RR for IPv6 routing over SRv6
-| | wt=1 | rxq=1 | framesize=${1518}
+| | phy_cores=${1} | framesize=${1518}
| tc03-9000B-1t1c-ethip6srhip6-ip6base-srv6enc2sids-nodecaps-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv6 over SRv6 routing config with\
-| | ... | 1 phy core, 1 receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 9000B frames using single trial\
-| | ... | throughput test.
-| | ...
| | [Tags] | 9000B | 1C
-| | ...
-| | [Template] | Check RR for IPv6 routing over SRv6
-| | wt=1 | rxq=1 | framesize=${9000}
+| | phy_cores=${1} | framesize=${9000}
| tc04-IMIX-1t1c-ethip6srhip6-ip6base-srv6enc2sids-nodecaps-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv6 over SRv6 routing config with\
-| | ... | 1 phy core, 1 receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for IMIX_v4_1 frames using single trial\
-| | ... | throughput test.
-| | ... | IMIX_v4_1 = (28x64B; 16x570B; 4x1518B)
-| | ...
| | [Tags] | IMIX | 1C
-| | ...
-| | [Template] | Check RR for IPv6 routing over SRv6
-| | wt=1 | rxq=1 | framesize=IMIX_v4_1
+| | phy_cores=${1} | framesize=IMIX_v4_1
| tc05-78B-2t2c-ethip6srhip6-ip6base-srv6enc2sids-nodecaps-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv6 over SRv6 routing config with\
-| | ... | 2 phy cores, 1 receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 78B frames using single trial\
-| | ... | throughput test.
-| | ...
| | [Tags] | 78B | 2C
-| | ...
-| | [Template] | Check RR for IPv6 routing over SRv6
-| | wt=2 | rxq=1 | framesize=${78}
+| | phy_cores=${2} | framesize=${78}
| tc06-1518B-2t2c-ethip6srhip6-ip6base-srv6enc2sids-nodecaps-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv6 over SRv6 routing config with\
-| | ... | 2 phy cores, 1 receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 1518B frames using single trial\
-| | ... | throughput test.
-| | ...
| | [Tags] | 1518B | 2C
-| | ...
-| | [Template] | Check RR for IPv6 routing over SRv6
-| | wt=2 | rxq=1 | framesize=${1518}
+| | phy_cores=${2} | framesize=${1518}
| tc07-9000B-2t2c-ethip6srhip6-ip6base-srv6enc2sids-nodecaps-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv6 over SRv6 routing config with\
-| | ... | 2 phy cores, 1 receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 9000B frames using single trial\
-| | ... | throughput test.
-| | ...
| | [Tags] | 9000B | 2C
-| | ...
-| | [Template] | Check RR for IPv6 routing over SRv6
-| | wt=2 | rxq=1 | framesize=${9000}
+| | phy_cores=${2} | framesize=${9000}
| tc08-IMIX-2t2c-ethip6srhip6-ip6base-srv6enc2sids-nodecaps-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv6 over SRv6 routing config with\
-| | ... | 2 phy cores, 1 receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for IMIX_v4_1 frames using single trial\
-| | ... | throughput test.
-| | ... | IMIX_v4_1 = (28x64B; 16x570B; 4x1518B)
-| | ...
| | [Tags] | IMIX | 2C
-| | ...
-| | [Template] | Check RR for IPv6 routing over SRv6
-| | wt=2 | rxq=1 | framesize=IMIX_v4_1
+| | phy_cores=${2} | framesize=IMIX_v4_1
| tc09-78B-4t4c-ethip6srhip6-ip6base-srv6enc2sids-nodecaps-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv6 over SRv6 routing config with\
-| | ... | 4 phy cores, 2 receive queues per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 78B frames using single trial\
-| | ... | throughput test.
-| | ...
| | [Tags] | 78B | 4C
-| | ...
-| | [Template] | Check RR for IPv6 routing over SRv6
-| | wt=4 | rxq=2 | framesize=${78}
+| | phy_cores=${4} | framesize=${78}
| tc10-1518B-4t4c-ethip6srhip6-ip6base-srv6enc2sids-nodecaps-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv6 over SRv6 routing config with\
-| | ... | 4 phy cores, 2 receive queues per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 1518B frames using single trial\
-| | ... | throughput test.
-| | ...
| | [Tags] | 1518B | 4C
-| | ...
-| | [Template] | Check RR for IPv6 routing over SRv6
-| | wt=4 | rxq=2 | framesize=${1518}
+| | phy_cores=${4} | framesize=${1518}
| tc11-9000B-4t4c-ethip6srhip6-ip6base-srv6enc2sids-nodecaps-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv6 over SRv6 routing config with\
-| | ... | 4 phy cores, 2 receive queues per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 9000B frames using single trial\
-| | ... | throughput test.
-| | ...
| | [Tags] | 9000B | 4C
-| | ...
-| | [Template] | Check RR for IPv6 routing over SRv6
-| | wt=4 | rxq=2 | framesize=${9000}
+| | phy_cores=${4} | framesize=${9000}
| tc12-IMIX-4t4c-ethip6srhip6-ip6base-srv6enc2sids-nodecaps-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv6 over SRv6 routing config with\
-| | ... | 4 phy cores, 2 receive queues per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for IMIX_v4_1 frames using single trial\
-| | ... | throughput test.
-| | ... | IMIX_v4_1 = (28x64B; 16x570B; 4x1518B)
-| | ...
| | [Tags] | IMIX | 4C
-| | ...
-| | [Template] | Check RR for IPv6 routing over SRv6
-| | wt=4 | rxq=2 | framesize=IMIX_v4_1
+| | phy_cores=${4} | framesize=IMIX_v4_1
diff --git a/tests/vpp/perf/srv6/10ge2p1x520-ethip6srhip6-ip6base-srv6enc2sids-nodecaps-ndrpdrdisc.robot b/tests/vpp/perf/srv6/10ge2p1x520-ethip6srhip6-ip6base-srv6enc2sids-nodecaps-ndrpdrdisc.robot
index 80d1c7383f..af17be5fd3 100644
--- a/tests/vpp/perf/srv6/10ge2p1x520-ethip6srhip6-ip6base-srv6enc2sids-nodecaps-ndrpdrdisc.robot
+++ b/tests/vpp/perf/srv6/10ge2p1x520-ethip6srhip6-ip6base-srv6enc2sids-nodecaps-ndrpdrdisc.robot
@@ -26,6 +26,8 @@
| Test Teardown | Tear down performance test with SRv6 with encapsulation
| ... | ${min_rate}pps | ${framesize} | ${traffic_profile}
| ...
+| Test Template | Local template
+| ...
| Documentation | *Packet throughput Segment routing over IPv6 dataplane with\
| ... | two SIDs (SRH inserted) without decapsulation test cases*
| ...
@@ -79,9 +81,9 @@
| ${traffic_profile}= | trex-sl-3n-ethip6-ip6src253
*** Keywords ***
-| Discover NDR or PDR for IPv6 routing over SRv6
-| | ...
-| | [Arguments] | ${wt} | ${rxq} | ${framesize} | ${min_rate} | ${search_type}
+| Local template
+| | [Arguments] | ${phy_cores} | ${framesize} | ${search_type}
+| | ... | ${min_rate}=${50000} | ${rxq}=${None}
| | ...
| | Set Test Variable | ${framesize}
| | Set Test Variable | ${min_rate}
@@ -91,7 +93,7 @@
| | ${binary_min}= | Set Variable | ${min_rate}
| | ${binary_max}= | Set Variable | ${max_rate}
| | ${threshold}= | Set Variable | ${min_rate}
-| | Given Add '${wt}' worker threads and '${rxq}' rxqueues in 3-node single-link circular topology
+| | Given Add worker threads and rxqueues to all DUTs | ${phy_cores} | ${rxq}
| | And Add PCI devices to all DUTs
| | And Run Keyword If | ${get_framesize} < ${1522} | Add no multi seg to all DUTs
| | And Apply startup configuration on all VPP DUTs
@@ -108,145 +110,49 @@
*** Test Cases ***
| tc01-78B-1t1c-ethip6srhip6-ip6base-srv6enc2sids-nodecaps-ndrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv6 over SRv6 routing config with\
-| | ... | 1 phy core, 1 receive queue per NIC port.
-| | ... | [Ver] Find NDR for 78 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 50kpps.
-| | ...
| | [Tags] | 78B | 1C | NDRDISC
-| | ...
-| | [Template] | Discover NDR or PDR for IPv6 routing over SRv6
-| | wt=1 | rxq=1 | framesize=${78} | min_rate=${50000} | search_type=NDR
+| | phy_cores=${1} | framesize=${78} | search_type=NDR
| tc02-78B-1t1c-ethip6srhip6-ip6base-srv6enc2sids-nodecaps-pdrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv6 over SRv6 routing config with\
-| | ... | 1 phy core, 1 receive queue per NIC port.
-| | ... | [Ver] Find PDR for 78 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 50kpps, LT=0.5%.
-| | ...
| | [Tags] | 78B | 1C | PDRDISC | SKIP_PATCH
-| | ...
-| | [Template] | Discover NDR or PDR for IPv6 routing over SRv6
-| | wt=1 | rxq=1 | framesize=${78} | min_rate=${50000} | search_type=PDR
+| | phy_cores=${1} | framesize=${78} | search_type=PDR
| tc03-78B-2t2c-ethip6srhip6-ip6base-srv6enc2sids-nodecaps-ndrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv6 over SRv6 routing config with\
-| | ... | 2 phy cores, 1 receive queue per NIC port.
-| | ... | [Ver] Find NDR for 78 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 50kpps.
-| | ...
| | [Tags] | 78B | 2C | NDRDISC
-| | ...
-| | [Template] | Discover NDR or PDR for IPv6 routing over SRv6
-| | wt=2 | rxq=1 | framesize=${78} | min_rate=${50000} | search_type=NDR
+| | phy_cores=${2} | framesize=${78} | search_type=NDR
| tc04-78B-2t2c-ethip6srhip6-ip6base-srv6enc2sids-nodecaps-pdrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv6 over SRv6 routing config with\
-| | ... | 2 phy cores, 1 receive queue per NIC port.
-| | ... | [Ver] Find PDR for 78 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 50kpps, LT=0.5%.
-| | ...
| | [Tags] | 78B | 2C | PDRDISC | SKIP_PATCH
-| | ...
-| | [Template] | Discover NDR or PDR for IPv6 routing over SRv6
-| | wt=2 | rxq=1 | framesize=${78} | min_rate=${50000} | search_type=PDR
+| | phy_cores=${2} | framesize=${78} | search_type=PDR
| tc05-78B-4t4c-ethip6srhip6-ip6base-srv6enc2sids-nodecaps-ndrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv6 over SRv6 routing config with\
-| | ... | 4 phy cores, 2 receive queues per NIC port.
-| | ... | [Ver] Find NDR for 78 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 50kpps.
-| | ...
| | [Tags] | 78B | 4C | NDRDISC
-| | ...
-| | [Template] | Discover NDR or PDR for IPv6 routing over SRv6
-| | wt=4 | rxq=2 | framesize=${78} | min_rate=${50000} | search_type=NDR
+| | phy_cores=${4} | framesize=${78} | search_type=NDR
| tc06-78B-4t4c-ethip6srhip6-ip6base-srv6enc2sids-nodecaps-pdrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv6 over SRv6 routing config with\
-| | ... | 4 phy cores, 2 receive queues per NIC port.
-| | ... | [Ver] Find PDR for 78 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 50kpps, LT=0.5%.
-| | ...
| | [Tags] | 78B | 4C | PDRDISC | SKIP_PATCH
-| | ...
-| | [Template] | Discover NDR or PDR for IPv6 routing over SRv6
-| | wt=4 | rxq=2 | framesize=${78} | min_rate=${50000} | search_type=PDR
+| | phy_cores=${4} | framesize=${78} | search_type=PDR
| tc07-1518B-1t1c-ethip6srhip6-ip6base-srv6enc2sids-nodecaps-ndrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv6 over SRv6 routing config with\
-| | ... | 1 phy core, 1 receive queue per NIC port.
-| | ... | [Ver] Find NDR for 1518 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 50kpps.
-| | ...
| | [Tags] | 1518B | 1C | NDRDISC
-| | ...
-| | [Template] | Discover NDR or PDR for IPv6 routing over SRv6
-| | wt=1 | rxq=1 | framesize=${1518} | min_rate=${50000} | search_type=NDR
+| | phy_cores=${1} | framesize=${1518} | search_type=NDR
| tc08-1518B-1t1c-ethip6srhip6-ip6base-srv6enc2sids-nodecaps-pdrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv6 over SRv6 routing config with\
-| | ... | 1 phy core, 1 receive queue per NIC port.
-| | ... | [Ver] Find PDR for 1518 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 50kpps, LT=0.5%.
-| | ...
| | [Tags] | 1518B | 1C | PDRDISC | SKIP_PATCH
-| | ...
-| | [Template] | Discover NDR or PDR for IPv6 routing over SRv6
-| | wt=1 | rxq=1 | framesize=${1518} | min_rate=${50000} | search_type=PDR
+| | phy_cores=${1} | framesize=${1518} | search_type=PDR
| tc09-1518B-2t2c-ethip6srhip6-ip6base-srv6enc2sids-nodecaps-ndrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv6 over SRv6 routing config with\
-| | ... | 2 phy cores, 1 receive queue per NIC port.
-| | ... | [Ver] Find NDR for 1518 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 50kpps.
-| | ...
| | [Tags] | 1518B | 2C | NDRDISC
-| | ...
-| | [Template] | Discover NDR or PDR for IPv6 routing over SRv6
-| | wt=2 | rxq=1 | framesize=${1518} | min_rate=${50000} | search_type=NDR
+| | phy_cores=${2} | framesize=${1518} | search_type=NDR
| tc10-1518B-2t2c-ethip6srhip6-ip6base-srv6enc2sids-nodecaps-pdrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv6 over SRv6 routing config with\
-| | ... | 2 phy cores, 1 receive queue per NIC port.
-| | ... | [Ver] Find PDR for 1518 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 50kpps, LT=0.5%.
-| | ...
| | [Tags] | 1518B | 2C | PDRDISC | SKIP_PATCH
-| | ...
-| | [Template] | Discover NDR or PDR for IPv6 routing over SRv6
-| | wt=2 | rxq=1 | framesize=${1518} | min_rate=${50000} | search_type=PDR
+| | phy_cores=${2} | framesize=${1518} | search_type=PDR
| tc11-1518B-4t4c-ethip6srhip6-ip6base-srv6enc2sids-nodecaps-ndrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv6 over SRv6 routing config with\
-| | ... | 4 phy cores, 2 receive queues per NIC port.
-| | ... | [Ver] Find NDR for 1518 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 50kpps.
-| | ...
| | [Tags] | 1518B | 4C | NDRDISC
-| | ...
-| | [Template] | Discover NDR or PDR for IPv6 routing over SRv6
-| | wt=4 | rxq=2 | framesize=${1518} | min_rate=${50000} | search_type=NDR
+| | phy_cores=${4} | framesize=${1518} | search_type=NDR
| tc12-1518B-4t4c-ethip6srhip6-ip6base-srv6enc2sids-nodecaps-pdrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv6 over SRv6 routing config with\
-| | ... | 4 phy cores, 2 receive queues per NIC port.
-| | ... | [Ver] Find PDR for 1518 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 50kpps, LT=0.5%.
-| | ...
| | [Tags] | 1518B | 4C | PDRDISC | SKIP_PATCH
-| | ...
-| | [Template] | Discover NDR or PDR for IPv6 routing over SRv6
-| | wt=4 | rxq=2 | framesize=${1518} | min_rate=${50000} | search_type=PDR
+| | phy_cores=${4} | framesize=${1518} | search_type=PDR
diff --git a/tests/vpp/perf/srv6/10ge2p1x520-ethip6srhip6-ip6base-srv6proxy-dyn-mrr.robot b/tests/vpp/perf/srv6/10ge2p1x520-ethip6srhip6-ip6base-srv6proxy-dyn-mrr.robot
index cafe8c6a28..d6f3a84999 100644
--- a/tests/vpp/perf/srv6/10ge2p1x520-ethip6srhip6-ip6base-srv6proxy-dyn-mrr.robot
+++ b/tests/vpp/perf/srv6/10ge2p1x520-ethip6srhip6-ip6base-srv6proxy-dyn-mrr.robot
@@ -31,6 +31,8 @@
| ...
| Test Teardown | Tear down mrr test with SRv6 with encapsulation
| ...
+| Test Template | Local template
+| ...
| Documentation | *Raw results for Segment routing over IPv6 dataplane with\
| ... | Dynamic SRv6 proxy test cases*
| ...
@@ -98,18 +100,27 @@
| ${container_cpus}= | ${5}
*** Keywords ***
-| Check RR for IPv6 routing over SRv6 with endpoint to SR-unaware Service Function via dynamic proxy behaviour
+| Local template
+| | [Documentation]
+| | ... | [Cfg] DUT runs IPv6 over SRv6 routing config with ${phy_cores} phy
+| | ... | core(s).
+| | ... | [Ver] Measure MaxReceivedRate for ${framesize}B frames using single\
+| | ... | trial throughput test.
+| | ...
+| | ... | *Arguments:*
+| | ... | - framesize - Framesize in Bytes in integer or string (IMIX_v4_1).
+| | ... | Type: integer, string
+| | ... | - phy_cores - Number of physical cores. Type: integer
+| | ... | - rxq - Number of RX queues, default value: ${None}. Type: integer
| | ...
-| | [Arguments] | ${wt} | ${rxq} | ${framesize}
+| | [Arguments] | ${phy_cores} | ${framesize} | ${rxq}=${None}
| | ...
-| | # Test Variables required for test teardown
| | Set Test Variable | ${framesize}
-| | Set Test Variable | ${rxq}
| | ${get_framesize}= | Get Frame Size | ${framesize}
| | ${max_rate}= | Calculate pps | ${s_limit}
| | ... | ${get_framesize} + ${srv6_overhead_3sids}
| | ...
-| | Given Add '${wt}' worker threads and '${rxq}' rxqueues in 3-node single-link circular topology
+| | Given Add worker threads and rxqueues to all DUTs | ${phy_cores} | ${rxq}
| | And Add PCI devices to all DUTs
| | And Run Keyword If | ${get_framesize} + ${srv6_overhead_3sids} < ${1522}
| | ... | Add no multi seg to all DUTs
@@ -120,148 +131,49 @@
*** Test Cases ***
| tc01-78B-1t1c-ethip6srhip6-ip6base-srv6proxy-dyn-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv6 over SRv6 routing with dynamic SRv6 proxy config\
-| | ... | 1 phy core, 1 receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 78B frames using single trial\
-| | ... | throughput test.
-| | ...
| | [Tags] | 78B | 1C
-| | ...
-| | [Template] | Check RR for IPv6 routing over SRv6 with endpoint to SR-unaware Service Function via dynamic proxy behaviour
-| | wt=1 | rxq=1 | framesize=${78}
+| | phy_cores=${1} | framesize=${78}
| tc02-1518B-1t1c-ethip6srhip6-ip6base-srv6proxy-dyn-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv6 over SRv6 routing with dynamic SRv6 proxy config\
-| | ... | 1 phy core, 1 receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 1518B frames using single trial\
-| | ... | throughput test.
-| | ...
| | [Tags] | 1518B | 1C
-| | ...
-| | [Template] | Check RR for IPv6 routing over SRv6 with endpoint to SR-unaware Service Function via dynamic proxy behaviour
-| | wt=1 | rxq=1 | framesize=${1518}
+| | phy_cores=${1} | framesize=${1518}
| tc03-9000B-1t1c-ethip6srhip6-ip6base-srv6proxy-dyn-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv6 over SRv6 routing with dynamic SRv6 proxy config\
-| | ... | 1 phy core, 1 receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 9000B frames using single trial\
-| | ... | throughput test.
-| | ...
| | [Tags] | 9000B | 1C
-| | ...
-| | [Template] | Check RR for IPv6 routing over SRv6 with endpoint to SR-unaware Service Function via dynamic proxy behaviour
-| | wt=1 | rxq=1 | framesize=${9000}
+| | phy_cores=${1} | framesize=${9000}
| tc04-IMIX-1t1c-ethip6srhip6-ip6base-srv6proxy-dyn-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv6 over SRv6 routing with dynamic SRv6 proxy config\
-| | ... | 1 phy core, 1 receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for IMIX_v4_1 frames using single trial\
-| | ... | throughput test.
-| | ... | IMIX_v4_1 = (28x64B; 16x570B; 4x1518B)
-| | ...
| | [Tags] | IMIX | 1C
-| | ...
-| | [Template] | Check RR for IPv6 routing over SRv6 with endpoint to SR-unaware Service Function via dynamic proxy behaviour
-| | wt=1 | rxq=1 | framesize=IMIX_v4_1
+| | phy_cores=${1} | framesize=IMIX_v4_1
| tc05-78B-2t2c-ethip6srhip6-ip6base-srv6proxy-dyn-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv6 over SRv6 routing with dynamic SRv6 proxy config\
-| | ... | 2 phy cores, 1 receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 78B frames using single trial\
-| | ... | throughput test.
-| | ...
| | [Tags] | 78B | 2C
-| | ...
-| | [Template] | Check RR for IPv6 routing over SRv6 with endpoint to SR-unaware Service Function via dynamic proxy behaviour
-| | wt=2 | rxq=1 | framesize=${78}
+| | phy_cores=${2} | framesize=${78}
| tc06-1518B-2t2c-ethip6srhip6-ip6base-srv6proxy-dyn-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv6 over SRv6 routing with dynamic SRv6 proxy config\
-| | ... | 2 phy cores, 1 receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 1518B frames using single trial\
-| | ... | throughput test.
-| | ...
| | [Tags] | 1518B | 2C
-| | ...
-| | [Template] | Check RR for IPv6 routing over SRv6 with endpoint to SR-unaware Service Function via dynamic proxy behaviour
-| | wt=2 | rxq=1 | framesize=${1518}
+| | phy_cores=${2} | framesize=${1518}
| tc07-9000B-2t2c-ethip6srhip6-ip6base-srv6proxy-dyn-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv6 over SRv6 routing with dynamic SRv6 proxy config\
-| | ... | 2 phy cores, 1 receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 9000B frames using single trial\
-| | ... | throughput test.
-| | ...
| | [Tags] | 9000B | 2C
-| | ...
-| | [Template] | Check RR for IPv6 routing over SRv6 with endpoint to SR-unaware Service Function via dynamic proxy behaviour
-| | wt=2 | rxq=1 | framesize=${9000}
+| | phy_cores=${2} | framesize=${9000}
| tc08-IMIX-2t2c-ethip6srhip6-ip6base-srv6proxy-dyn-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv6 over SRv6 routing with dynamic SRv6 proxy config\
-| | ... | 2 phy cores, 1 receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for IMIX_v4_1 frames using single trial\
-| | ... | throughput test.
-| | ... | IMIX_v4_1 = (28x64B; 16x570B; 4x1518B)
-| | ...
| | [Tags] | IMIX | 2C
-| | ...
-| | [Template] | Check RR for IPv6 routing over SRv6 with endpoint to SR-unaware Service Function via dynamic proxy behaviour
-| | wt=2 | rxq=1 | framesize=IMIX_v4_1
+| | phy_cores=${2} | framesize=IMIX_v4_1
| tc09-78B-4t4c-ethip6srhip6-ip6base-srv6proxy-dyn-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv6 over SRv6 routing with dynamic SRv6 proxy config\
-| | ... | 4 phy cores, 2 receive queues per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 78B frames using single trial\
-| | ... | throughput test.
-| | ...
| | [Tags] | 78B | 4C
-| | ...
-| | [Template] | Check RR for IPv6 routing over SRv6 with endpoint to SR-unaware Service Function via dynamic proxy behaviour
-| | wt=4 | rxq=2 | framesize=${78}
+| | phy_cores=${4} | framesize=${78}
| tc10-1518B-4t4c-ethip6srhip6-ip6base-srv6proxy-dyn-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv6 over SRv6 routing with dynamic SRv6 proxy config\
-| | ... | 4 phy cores, 2 receive queues per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 1518B frames using single trial\
-| | ... | throughput test.
-| | ...
| | [Tags] | 1518B | 4C
-| | ...
-| | [Template] | Check RR for IPv6 routing over SRv6 with endpoint to SR-unaware Service Function via dynamic proxy behaviour
-| | wt=4 | rxq=2 | framesize=${1518}
+| | phy_cores=${4} | framesize=${1518}
| tc11-9000B-4t4c-ethip6srhip6-ip6base-srv6proxy-dyn-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv6 over SRv6 routing with dynamic SRv6 proxy config\
-| | ... | 4 phy cores, 2 receive queues per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 9000B frames using single trial\
-| | ... | throughput test.
-| | ...
| | [Tags] | 9000B | 4C
-| | ...
-| | [Template] | Check RR for IPv6 routing over SRv6 with endpoint to SR-unaware Service Function via dynamic proxy behaviour
-| | wt=4 | rxq=2 | framesize=${9000}
+| | phy_cores=${4} | framesize=${9000}
| tc12-IMIX-4t4c-ethip6srhip6-ip6base-srv6proxy-dyn-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv6 over SRv6 routing with dynamic SRv6 proxy config\
-| | ... | 4 phy cores, 2 receive queues per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for IMIX_v4_1 frames using single trial\
-| | ... | throughput test.
-| | ... | IMIX_v4_1 = (28x64B; 16x570B; 4x1518B)
-| | ...
| | [Tags] | IMIX | 4C
-| | ...
-| | [Template] | Check RR for IPv6 routing over SRv6 with endpoint to SR-unaware Service Function via dynamic proxy behaviour
-| | wt=4 | rxq=2 | framesize=IMIX_v4_1
+| | phy_cores=${4} | framesize=IMIX_v4_1
diff --git a/tests/vpp/perf/srv6/10ge2p1x520-ethip6srhip6-ip6base-srv6proxy-dyn-ndrpdrdisc.robot b/tests/vpp/perf/srv6/10ge2p1x520-ethip6srhip6-ip6base-srv6proxy-dyn-ndrpdrdisc.robot
index 2356103766..a50f6a33cc 100644
--- a/tests/vpp/perf/srv6/10ge2p1x520-ethip6srhip6-ip6base-srv6proxy-dyn-ndrpdrdisc.robot
+++ b/tests/vpp/perf/srv6/10ge2p1x520-ethip6srhip6-ip6base-srv6proxy-dyn-ndrpdrdisc.robot
@@ -32,6 +32,8 @@
| Test Teardown | Tear down performance test with SRv6 with encapsulation
| ... | ${min_rate}pps | ${framesize} | ${traffic_profile}
| ...
+| Test Template | Local template
+| ...
| Documentation | *Packet throughput Segment routing over IPv6 dataplane with\
| ... | Dynamic SRv6 proxy test cases*
| ...
@@ -103,20 +105,19 @@
| ${container_cpus}= | ${5}
*** Keywords ***
-| Discover NDR or PDR for IPv6 routing over SRv6 with endpoint to SR-unaware Service Function via dynamic proxy behaviour
-| | ...
-| | [Arguments] | ${wt} | ${rxq} | ${framesize} | ${min_rate} | ${search_type}
+| Local template
+| | [Arguments] | ${phy_cores} | ${framesize} | ${search_type}
+| | ... | ${min_rate}=${50000} | ${rxq}=${None}
| | ...
| | Set Test Variable | ${framesize}
| | Set Test Variable | ${min_rate}
-| | Set Test Variable | ${rxq}
| | ${get_framesize}= | Get Frame Size | ${framesize}
| | ${max_rate}= | Calculate pps | ${s_limit}
| | ... | ${get_framesize} + ${srv6_overhead_3sids}
| | ${binary_min}= | Set Variable | ${min_rate}
| | ${binary_max}= | Set Variable | ${max_rate}
| | ${threshold}= | Set Variable | ${min_rate}
-| | Given Add '${wt}' worker threads and '${rxq}' rxqueues in 3-node single-link circular topology
+| | Given Add worker threads and rxqueues to all DUTs | ${phy_cores} | ${rxq}
| | And Add PCI devices to all DUTs
| | And Run Keyword If | ${get_framesize} + ${srv6_overhead_3sids} < ${1522}
| | ... | Add no multi seg to all DUTs
@@ -134,145 +135,49 @@
*** Test Cases ***
| tc01-78B-1t1c-ethip6srhip6-ip6base-srv6proxy-dyn-ndrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv6 over SRv6 routing with dynamic SRv6 proxy config\
-| | ... | with 1 phy core, 1 receive queue per NIC port.
-| | ... | [Ver] Find NDR for 78 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 50kpps.
-| | ...
| | [Tags] | 78B | 1C | NDRDISC
-| | ...
-| | [Template] | Discover NDR or PDR for IPv6 routing over SRv6 with endpoint to SR-unaware Service Function via dynamic proxy behaviour
-| | wt=1 | rxq=1 | framesize=${78} | min_rate=${50000} | search_type=NDR
+| | phy_cores=${1} | framesize=${78} | search_type=NDR
| tc02-78B-1t1c-ethip6srhip6-ip6base-srv6proxy-dyn-pdrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv6 over SRv6 routing with dynamic SRv6 proxy config\
-| | ... | with 1 phy core, 1 receive queue per NIC port.
-| | ... | [Ver] Find PDR for 78 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 50kpps, LT=0.5%.
-| | ...
| | [Tags] | 78B | 1C | PDRDISC | SKIP_PATCH
-| | ...
-| | [Template] | Discover NDR or PDR for IPv6 routing over SRv6 with endpoint to SR-unaware Service Function via dynamic proxy behaviour
-| | wt=1 | rxq=1 | framesize=${78} | min_rate=${50000} | search_type=PDR
+| | phy_cores=${1} | framesize=${78} | search_type=PDR
| tc03-78B-2t2c-ethip6srhip6-ip6base-srv6proxy-dyn-ndrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv6 over SRv6 routing with dynamic SRv6 proxy config\
-| | ... | with 2 phy cores, 1 receive queue per NIC port.
-| | ... | [Ver] Find NDR for 78 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 50kpps.
-| | ...
| | [Tags] | 78B | 2C | NDRDISC
-| | ...
-| | [Template] | Discover NDR or PDR for IPv6 routing over SRv6 with endpoint to SR-unaware Service Function via dynamic proxy behaviour
-| | wt=2 | rxq=1 | framesize=${78} | min_rate=${50000} | search_type=NDR
+| | phy_cores=${2} | framesize=${78} | search_type=NDR
| tc04-78B-2t2c-ethip6srhip6-ip6base-srv6proxy-dyn-pdrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv6 over SRv6 routing with dynamic SRv6 proxy config\
-| | ... | with 2 phy cores, 1 receive queue per NIC port.
-| | ... | [Ver] Find PDR for 78 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 50kpps, LT=0.5%.
-| | ...
| | [Tags] | 78B | 2C | PDRDISC | SKIP_PATCH
-| | ...
-| | [Template] | Discover NDR or PDR for IPv6 routing over SRv6 with endpoint to SR-unaware Service Function via dynamic proxy behaviour
-| | wt=2 | rxq=1 | framesize=${78} | min_rate=${50000} | search_type=PDR
+| | phy_cores=${2} | framesize=${78} | search_type=PDR
| tc05-78B-4t4c-ethip6srhip6-ip6base-srv6proxy-dyn-ndrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv6 over SRv6 routing with dynamic SRv6 proxy config\
-| | ... | with 4 phy cores, 2 receive queues per NIC port.
-| | ... | [Ver] Find NDR for 78 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 50kpps.
-| | ...
| | [Tags] | 78B | 4C | NDRDISC
-| | ...
-| | [Template] | Discover NDR or PDR for IPv6 routing over SRv6 with endpoint to SR-unaware Service Function via dynamic proxy behaviour
-| | wt=4 | rxq=2 | framesize=${78} | min_rate=${50000} | search_type=NDR
+| | phy_cores=${4} | framesize=${78} | search_type=NDR
| tc06-78B-4t4c-ethip6srhip6-ip6base-srv6proxy-dyn-pdrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv6 over SRv6 routing with dynamic SRv6 proxy config\
-| | ... | with 4 phy cores, 2 receive queues per NIC port.
-| | ... | [Ver] Find PDR for 78 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 50kpps, LT=0.5%.
-| | ...
| | [Tags] | 78B | 4C | PDRDISC | SKIP_PATCH
-| | ...
-| | [Template] | Discover NDR or PDR for IPv6 routing over SRv6 with endpoint to SR-unaware Service Function via dynamic proxy behaviour
-| | wt=4 | rxq=2 | framesize=${78} | min_rate=${50000} | search_type=PDR
+| | phy_cores=${4} | framesize=${78} | search_type=PDR
| tc07-1518B-1t1c-ethip6srhip6-ip6base-srv6proxy-dyn-ndrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv6 over SRv6 routing with dynamic SRv6 proxy config\
-| | ... | with 1 phy core, 1 receive queue per NIC port.
-| | ... | [Ver] Find NDR for 1518 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 50kpps.
-| | ...
| | [Tags] | 1518B | 1C | NDRDISC
-| | ...
-| | [Template] | Discover NDR or PDR for IPv6 routing over SRv6 with endpoint to SR-unaware Service Function via dynamic proxy behaviour
-| | wt=1 | rxq=1 | framesize=${1518} | min_rate=${50000} | search_type=NDR
+| | phy_cores=${1} | framesize=${1518} | search_type=NDR
| tc08-1518B-1t1c-ethip6srhip6-ip6base-srv6proxy-dyn-pdrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv6 over SRv6 routing with dynamic SRv6 proxy config\
-| | ... | with 1 phy core, 1 receive queue per NIC port.
-| | ... | [Ver] Find PDR for 1518 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 50kpps, LT=0.5%.
-| | ...
| | [Tags] | 1518B | 1C | PDRDISC | SKIP_PATCH
-| | ...
-| | [Template] | Discover NDR or PDR for IPv6 routing over SRv6 with endpoint to SR-unaware Service Function via dynamic proxy behaviour
-| | wt=1 | rxq=1 | framesize=${1518} | min_rate=${50000} | search_type=PDR
+| | phy_cores=${1} | framesize=${1518} | search_type=PDR
| tc09-1518B-2t2c-ethip6srhip6-ip6base-srv6proxy-dyn-ndrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv6 over SRv6 routing with dynamic SRv6 proxy config\
-| | ... | with 2 phy cores, 1 receive queue per NIC port.
-| | ... | [Ver] Find NDR for 1518 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 50kpps.
-| | ...
| | [Tags] | 1518B | 2C | NDRDISC
-| | ...
-| | [Template] | Discover NDR or PDR for IPv6 routing over SRv6 with endpoint to SR-unaware Service Function via dynamic proxy behaviour
-| | wt=2 | rxq=1 | framesize=${1518} | min_rate=${50000} | search_type=NDR
+| | phy_cores=${2} | framesize=${1518} | search_type=NDR
| tc10-1518B-2t2c-ethip6srhip6-ip6base-srv6proxy-dyn-pdrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv6 over SRv6 routing with dynamic SRv6 proxy config\
-| | ... | with 2 phy cores, 1 receive queue per NIC port.
-| | ... | [Ver] Find PDR for 1518 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 50kpps, LT=0.5%.
-| | ...
| | [Tags] | 1518B | 2C | PDRDISC | SKIP_PATCH
-| | ...
-| | [Template] | Discover NDR or PDR for IPv6 routing over SRv6 with endpoint to SR-unaware Service Function via dynamic proxy behaviour
-| | wt=2 | rxq=1 | framesize=${1518} | min_rate=${50000} | search_type=PDR
+| | phy_cores=${2} | framesize=${1518} | search_type=PDR
| tc11-1518B-4t4c-ethip6srhip6-ip6base-srv6proxy-dyn-ndrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv6 over SRv6 routing with dynamic SRv6 proxy config\
-| | ... | with 4 phy cores, 2 receive queues per NIC port.
-| | ... | [Ver] Find NDR for 1518 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 50kpps.
-| | ...
| | [Tags] | 1518B | 4C | NDRDISC
-| | ...
-| | [Template] | Discover NDR or PDR for IPv6 routing over SRv6 with endpoint to SR-unaware Service Function via dynamic proxy behaviour
-| | wt=4 | rxq=2 | framesize=${1518} | min_rate=${50000} | search_type=NDR
+| | phy_cores=${4} | framesize=${1518} | search_type=NDR
| tc12-1518B-4t4c-ethip6srhip6-ip6base-srv6proxy-dyn-pdrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv6 over SRv6 routing with dynamic SRv6 proxy config\
-| | ... | with 4 phy cores, 2 receive queues per NIC port.
-| | ... | [Ver] Find PDR for 1518 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 50kpps, LT=0.5%.
-| | ...
| | [Tags] | 1518B | 4C | PDRDISC | SKIP_PATCH
-| | ...
-| | [Template] | Discover NDR or PDR for IPv6 routing over SRv6 with endpoint to SR-unaware Service Function via dynamic proxy behaviour
-| | wt=4 | rxq=2 | framesize=${1518} | min_rate=${50000} | search_type=PDR
+| | phy_cores=${4} | framesize=${1518} | search_type=PDR
diff --git a/tests/vpp/perf/srv6/10ge2p1x520-ethip6srhip6-ip6base-srv6proxy-masq-mrr.robot b/tests/vpp/perf/srv6/10ge2p1x520-ethip6srhip6-ip6base-srv6proxy-masq-mrr.robot
index 0acf9f70f8..f49fc852b4 100644
--- a/tests/vpp/perf/srv6/10ge2p1x520-ethip6srhip6-ip6base-srv6proxy-masq-mrr.robot
+++ b/tests/vpp/perf/srv6/10ge2p1x520-ethip6srhip6-ip6base-srv6proxy-masq-mrr.robot
@@ -31,6 +31,8 @@
| ...
| Test Teardown | Tear down mrr test with SRv6 with encapsulation
| ...
+| Test Template | Local template
+| ...
| Documentation | *Raw results for Segment routing over IPv6 dataplane with\
| ... | Masquerading SRv6 proxy test cases*
| ...
@@ -98,18 +100,27 @@
| ${container_cpus}= | ${5}
*** Keywords ***
-| Check RR for IPv6 routing over SRv6 with endpoint to SR-unaware Service Function via masquerading proxy behaviour
+| Local template
+| | [Documentation]
+| | ... | [Cfg] DUT runs IPv6 over SRv6 routing config with ${phy_cores} phy
+| | ... | core(s).
+| | ... | [Ver] Measure MaxReceivedRate for ${framesize}B frames using single\
+| | ... | trial throughput test.
+| | ...
+| | ... | *Arguments:*
+| | ... | - framesize - Framesize in Bytes in integer or string (IMIX_v4_1).
+| | ... | Type: integer, string
+| | ... | - phy_cores - Number of physical cores. Type: integer
+| | ... | - rxq - Number of RX queues, default value: ${None}. Type: integer
| | ...
-| | [Arguments] | ${wt} | ${rxq} | ${framesize}
+| | [Arguments] | ${phy_cores} | ${framesize} | ${rxq}=${None}
| | ...
-| | # Test Variables required for test teardown
| | Set Test Variable | ${framesize}
-| | Set Test Variable | ${rxq}
| | ${get_framesize}= | Get Frame Size | ${framesize}
| | ${max_rate}= | Calculate pps | ${s_limit}
| | ... | ${get_framesize} + ${srv6_overhead_3sids}
| | ...
-| | Given Add '${wt}' worker threads and '${rxq}' rxqueues in 3-node single-link circular topology
+| | Given Add worker threads and rxqueues to all DUTs | ${phy_cores} | ${rxq}
| | And Add PCI devices to all DUTs
| | And Run Keyword If | ${get_framesize} + ${srv6_overhead_3sids} < ${1522}
| | ... | Add no multi seg to all DUTs
@@ -120,148 +131,49 @@
*** Test Cases ***
| tc01-78B-1t1c-ethip6srhip6-ip6base-srv6proxy-masq-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv6 over SRv6 routing with masquerading SRv6 proxy\
-| | ... | 1 phy core, 1 receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 78B frames using single trial\
-| | ... | throughput test.
-| | ...
| | [Tags] | 78B | 1C
-| | ...
-| | [Template] | Check RR for IPv6 routing over SRv6 with endpoint to SR-unaware Service Function via masquerading proxy behaviour
-| | wt=1 | rxq=1 | framesize=${78}
+| | phy_cores=${1} | framesize=${78}
| tc02-1518B-1t1c-ethip6srhip6-ip6base-srv6proxy-masq-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv6 over SRv6 routing with masquerading SRv6 proxy\
-| | ... | 1 phy core, 1 receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 1518B frames using single trial\
-| | ... | throughput test.
-| | ...
| | [Tags] | 1518B | 1C
-| | ...
-| | [Template] | Check RR for IPv6 routing over SRv6 with endpoint to SR-unaware Service Function via masquerading proxy behaviour
-| | wt=1 | rxq=1 | framesize=${1518}
+| | phy_cores=${1} | framesize=${1518}
| tc03-9000B-1t1c-ethip6srhip6-ip6base-srv6proxy-masq-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv6 over SRv6 routing with masquerading SRv6 proxy\
-| | ... | 1 phy core, 1 receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 9000B frames using single trial\
-| | ... | throughput test.
-| | ...
| | [Tags] | 9000B | 1C
-| | ...
-| | [Template] | Check RR for IPv6 routing over SRv6 with endpoint to SR-unaware Service Function via masquerading proxy behaviour
-| | wt=1 | rxq=1 | framesize=${9000}
+| | phy_cores=${1} | framesize=${9000}
| tc04-IMIX-1t1c-ethip6srhip6-ip6base-srv6proxy-masq-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv6 over SRv6 routing with masquerading SRv6 proxy\
-| | ... | 1 phy core, 1 receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for IMIX_v4_1 frames using single trial\
-| | ... | throughput test.
-| | ... | IMIX_v4_1 = (28x64B; 16x570B; 4x1518B)
-| | ...
| | [Tags] | IMIX | 1C
-| | ...
-| | [Template] | Check RR for IPv6 routing over SRv6 with endpoint to SR-unaware Service Function via masquerading proxy behaviour
-| | wt=1 | rxq=1 | framesize=IMIX_v4_1
+| | phy_cores=${1} | framesize=IMIX_v4_1
| tc05-78B-2t2c-ethip6srhip6-ip6base-srv6proxy-masq-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv6 over SRv6 routing with masquerading SRv6 proxy\
-| | ... | 2 phy cores, 1 receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 78B frames using single trial\
-| | ... | throughput test.
-| | ...
| | [Tags] | 78B | 2C
-| | ...
-| | [Template] | Check RR for IPv6 routing over SRv6 with endpoint to SR-unaware Service Function via masquerading proxy behaviour
-| | wt=2 | rxq=1 | framesize=${78}
+| | phy_cores=${2} | framesize=${78}
| tc06-1518B-2t2c-ethip6srhip6-ip6base-srv6proxy-masq-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv6 over SRv6 routing with masquerading SRv6 proxy\
-| | ... | 2 phy cores, 1 receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 1518B frames using single trial\
-| | ... | throughput test.
-| | ...
| | [Tags] | 1518B | 2C
-| | ...
-| | [Template] | Check RR for IPv6 routing over SRv6 with endpoint to SR-unaware Service Function via masquerading proxy behaviour
-| | wt=2 | rxq=1 | framesize=${1518}
+| | phy_cores=${2} | framesize=${1518}
| tc07-9000B-2t2c-ethip6srhip6-ip6base-srv6proxy-masq-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv6 over SRv6 routing with masquerading SRv6 proxy\
-| | ... | 2 phy cores, 1 receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 9000B frames using single trial\
-| | ... | throughput test.
-| | ...
| | [Tags] | 9000B | 2C
-| | ...
-| | [Template] | Check RR for IPv6 routing over SRv6 with endpoint to SR-unaware Service Function via masquerading proxy behaviour
-| | wt=2 | rxq=1 | framesize=${9000}
+| | phy_cores=${2} | framesize=${9000}
| tc08-IMIX-2t2c-ethip6srhip6-ip6base-srv6proxy-masq-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv6 over SRv6 routing with masquerading SRv6 proxy\
-| | ... | 2 phy cores, 1 receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for IMIX_v4_1 frames using single trial\
-| | ... | throughput test.
-| | ... | IMIX_v4_1 = (28x64B; 16x570B; 4x1518B)
-| | ...
| | [Tags] | IMIX | 2C
-| | ...
-| | [Template] | Check RR for IPv6 routing over SRv6 with endpoint to SR-unaware Service Function via masquerading proxy behaviour
-| | wt=2 | rxq=1 | framesize=IMIX_v4_1
+| | phy_cores=${2} | framesize=IMIX_v4_1
| tc09-78B-4t4c-ethip6srhip6-ip6base-srv6proxy-masq-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv6 over SRv6 routing with masquerading SRv6 proxy\
-| | ... | 4 phy cores, 2 receive queues per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 78B frames using single trial\
-| | ... | throughput test.
-| | ...
| | [Tags] | 78B | 4C
-| | ...
-| | [Template] | Check RR for IPv6 routing over SRv6 with endpoint to SR-unaware Service Function via masquerading proxy behaviour
-| | wt=4 | rxq=2 | framesize=${78}
+| | phy_cores=${4} | framesize=${78}
| tc10-1518B-4t4c-ethip6srhip6-ip6base-srv6proxy-masq-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv6 over SRv6 routing with masquerading SRv6 proxy\
-| | ... | 4 phy cores, 2 receive queues per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 1518B frames using single trial\
-| | ... | throughput test.
-| | ...
| | [Tags] | 1518B | 4C
-| | ...
-| | [Template] | Check RR for IPv6 routing over SRv6 with endpoint to SR-unaware Service Function via masquerading proxy behaviour
-| | wt=4 | rxq=2 | framesize=${1518}
+| | phy_cores=${4} | framesize=${1518}
| tc11-9000B-4t4c-ethip6srhip6-ip6base-srv6proxy-masq-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv6 over SRv6 routing with masquerading SRv6 proxy\
-| | ... | 4 phy cores, 2 receive queues per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 9000B frames using single trial\
-| | ... | throughput test.
-| | ...
| | [Tags] | 9000B | 4C
-| | ...
-| | [Template] | Check RR for IPv6 routing over SRv6 with endpoint to SR-unaware Service Function via masquerading proxy behaviour
-| | wt=4 | rxq=2 | framesize=${9000}
+| | phy_cores=${4} | framesize=${9000}
| tc12-IMIX-4t4c-ethip6srhip6-ip6base-srv6proxy-masq-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv6 over SRv6 routing with masquerading SRv6 proxy\
-| | ... | 4 phy cores, 2 receive queues per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for IMIX_v4_1 frames using single trial\
-| | ... | throughput test.
-| | ... | IMIX_v4_1 = (28x64B; 16x570B; 4x1518B)
-| | ...
| | [Tags] | IMIX | 4C
-| | ...
-| | [Template] | Check RR for IPv6 routing over SRv6 with endpoint to SR-unaware Service Function via masquerading proxy behaviour
-| | wt=4 | rxq=2 | framesize=IMIX_v4_1
+| | phy_cores=${4} | framesize=IMIX_v4_1
diff --git a/tests/vpp/perf/srv6/10ge2p1x520-ethip6srhip6-ip6base-srv6proxy-masq-ndrpdrdisc.robot b/tests/vpp/perf/srv6/10ge2p1x520-ethip6srhip6-ip6base-srv6proxy-masq-ndrpdrdisc.robot
index 42be3f9f3f..7066f619b7 100644
--- a/tests/vpp/perf/srv6/10ge2p1x520-ethip6srhip6-ip6base-srv6proxy-masq-ndrpdrdisc.robot
+++ b/tests/vpp/perf/srv6/10ge2p1x520-ethip6srhip6-ip6base-srv6proxy-masq-ndrpdrdisc.robot
@@ -32,6 +32,8 @@
| Test Teardown | Tear down performance test with SRv6 with encapsulation
| ... | ${min_rate}pps | ${framesize} | ${traffic_profile}
| ...
+| Test Template | Local template
+| ...
| Documentation | *Packet throughput Segment routing over IPv6 dataplane with\
| ... | Masquerading SRv6 proxy test cases*
| ...
@@ -103,20 +105,19 @@
| ${container_cpus}= | ${5}
*** Keywords ***
-| Discover NDR or PDR for IPv6 routing over SRv6 with endpoint to SR-unaware Service Function via masquerading proxy behaviour
-| | ...
-| | [Arguments] | ${wt} | ${rxq} | ${framesize} | ${min_rate} | ${search_type}
+| Local template
+| | [Arguments] | ${phy_cores} | ${framesize} | ${search_type}
+| | ... | ${min_rate}=${50000} | ${rxq}=${None}
| | ...
| | Set Test Variable | ${framesize}
| | Set Test Variable | ${min_rate}
-| | Set Test Variable | ${rxq}
| | ${get_framesize}= | Get Frame Size | ${framesize}
| | ${max_rate}= | Calculate pps | ${s_limit}
| | ... | ${get_framesize} + ${srv6_overhead_3sids}
| | ${binary_min}= | Set Variable | ${min_rate}
| | ${binary_max}= | Set Variable | ${max_rate}
| | ${threshold}= | Set Variable | ${min_rate}
-| | Given Add '${wt}' worker threads and '${rxq}' rxqueues in 3-node single-link circular topology
+| | Given Add worker threads and rxqueues to all DUTs | ${phy_cores} | ${rxq}
| | And Add PCI devices to all DUTs
| | And Run Keyword If | ${get_framesize} + ${srv6_overhead_3sids} < ${1522}
| | ... | Add no multi seg to all DUTs
@@ -134,145 +135,49 @@
*** Test Cases ***
| tc01-78B-1t1c-ethip6srhip6-ip6base-srv6proxy-masq-ndrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv6 over SRv6 routing with masquerading SRv6 proxy\
-| | ... | config with 1 phy core, 1 receive queue per NIC port.
-| | ... | [Ver] Find NDR for 78 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 50kpps.
-| | ...
| | [Tags] | 78B | 1C | NDRDISC
-| | ...
-| | [Template] | Discover NDR or PDR for IPv6 routing over SRv6 with endpoint to SR-unaware Service Function via masquerading proxy behaviour
-| | wt=1 | rxq=1 | framesize=${78} | min_rate=${50000} | search_type=NDR
+| | phy_cores=${1} | framesize=${78} | search_type=NDR
| tc02-78B-1t1c-ethip6srhip6-ip6base-srv6proxy-masq-pdrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv6 over SRv6 routing with masquerading SRv6 proxy\
-| | ... | config with 1 phy core, 1 receive queue per NIC port.
-| | ... | [Ver] Find PDR for 78 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 50kpps, LT=0.5%.
-| | ...
| | [Tags] | 78B | 1C | PDRDISC | SKIP_PATCH
-| | ...
-| | [Template] | Discover NDR or PDR for IPv6 routing over SRv6 with endpoint to SR-unaware Service Function via masquerading proxy behaviour
-| | wt=1 | rxq=1 | framesize=${78} | min_rate=${50000} | search_type=PDR
+| | phy_cores=${1} | framesize=${78} | search_type=PDR
| tc03-78B-2t2c-ethip6srhip6-ip6base-srv6proxy-masq-ndrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv6 over SRv6 routing with masquerading SRv6 proxy\
-| | ... | config with 2 phy cores, 1 receive queue per NIC port.
-| | ... | [Ver] Find NDR for 78 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 50kpps.
-| | ...
| | [Tags] | 78B | 2C | NDRDISC
-| | ...
-| | [Template] | Discover NDR or PDR for IPv6 routing over SRv6 with endpoint to SR-unaware Service Function via masquerading proxy behaviour
-| | wt=2 | rxq=1 | framesize=${78} | min_rate=${50000} | search_type=NDR
+| | phy_cores=${2} | framesize=${78} | search_type=NDR
| tc04-78B-2t2c-ethip6srhip6-ip6base-srv6proxy-masq-pdrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv6 over SRv6 routing with masquerading SRv6 proxy\
-| | ... | config with 2 phy cores, 1 receive queue per NIC port.
-| | ... | [Ver] Find PDR for 78 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 50kpps, LT=0.5%.
-| | ...
| | [Tags] | 78B | 2C | PDRDISC | SKIP_PATCH
-| | ...
-| | [Template] | Discover NDR or PDR for IPv6 routing over SRv6 with endpoint to SR-unaware Service Function via masquerading proxy behaviour
-| | wt=2 | rxq=1 | framesize=${78} | min_rate=${50000} | search_type=PDR
+| | phy_cores=${2} | framesize=${78} | search_type=PDR
| tc05-78B-4t4c-ethip6srhip6-ip6base-srv6proxy-masq-ndrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv6 over SRv6 routing with masquerading SRv6 proxy\
-| | ... | config with 4 phy cores, 2 receive queues per NIC port.
-| | ... | [Ver] Find NDR for 78 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 50kpps.
-| | ...
| | [Tags] | 78B | 4C | NDRDISC
-| | ...
-| | [Template] | Discover NDR or PDR for IPv6 routing over SRv6 with endpoint to SR-unaware Service Function via masquerading proxy behaviour
-| | wt=4 | rxq=2 | framesize=${78} | min_rate=${50000} | search_type=NDR
+| | phy_cores=${4} | framesize=${78} | search_type=NDR
| tc06-78B-4t4c-ethip6srhip6-ip6base-srv6proxy-masq-pdrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv6 over SRv6 routing with masquerading SRv6 proxy\
-| | ... | config with 4 phy cores, 2 receive queues per NIC port.
-| | ... | [Ver] Find PDR for 78 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 50kpps, LT=0.5%.
-| | ...
| | [Tags] | 78B | 4C | PDRDISC | SKIP_PATCH
-| | ...
-| | [Template] | Discover NDR or PDR for IPv6 routing over SRv6 with endpoint to SR-unaware Service Function via masquerading proxy behaviour
-| | wt=4 | rxq=2 | framesize=${78} | min_rate=${50000} | search_type=PDR
+| | phy_cores=${4} | framesize=${78} | search_type=PDR
| tc07-1518B-1t1c-ethip6srhip6-ip6base-srv6proxy-masq-ndrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv6 over SRv6 routing with masquerading SRv6 proxy\
-| | ... | config with 1 phy core, 1 receive queue per NIC port.
-| | ... | [Ver] Find NDR for 1518 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 50kpps.
-| | ...
| | [Tags] | 1518B | 1C | NDRDISC
-| | ...
-| | [Template] | Discover NDR or PDR for IPv6 routing over SRv6 with endpoint to SR-unaware Service Function via masquerading proxy behaviour
-| | wt=1 | rxq=1 | framesize=${1518} | min_rate=${50000} | search_type=NDR
+| | phy_cores=${1} | framesize=${1518} | search_type=NDR
| tc08-1518B-1t1c-ethip6srhip6-ip6base-srv6proxy-masq-pdrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv6 over SRv6 routing with masquerading SRv6 proxy\
-| | ... | config with 1 phy core, 1 receive queue per NIC port.
-| | ... | [Ver] Find PDR for 1518 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 50kpps, LT=0.5%.
-| | ...
| | [Tags] | 1518B | 1C | PDRDISC | SKIP_PATCH
-| | ...
-| | [Template] | Discover NDR or PDR for IPv6 routing over SRv6 with endpoint to SR-unaware Service Function via masquerading proxy behaviour
-| | wt=1 | rxq=1 | framesize=${1518} | min_rate=${50000} | search_type=PDR
+| | phy_cores=${1} | framesize=${1518} | search_type=PDR
| tc09-1518B-2t2c-ethip6srhip6-ip6base-srv6proxy-masq-ndrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv6 over SRv6 routing with masquerading SRv6 proxy\
-| | ... | config with 2 phy cores, 1 receive queue per NIC port.
-| | ... | [Ver] Find NDR for 1518 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 50kpps.
-| | ...
| | [Tags] | 1518B | 2C | NDRDISC
-| | ...
-| | [Template] | Discover NDR or PDR for IPv6 routing over SRv6 with endpoint to SR-unaware Service Function via masquerading proxy behaviour
-| | wt=2 | rxq=1 | framesize=${1518} | min_rate=${50000} | search_type=NDR
+| | phy_cores=${2} | framesize=${1518} | search_type=NDR
| tc10-1518B-2t2c-ethip6srhip6-ip6base-srv6proxy-masq-pdrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv6 over SRv6 routing with masquerading SRv6 proxy\
-| | ... | config with 2 phy cores, 1 receive queue per NIC port.
-| | ... | [Ver] Find PDR for 1518 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 50kpps, LT=0.5%.
-| | ...
| | [Tags] | 1518B | 2C | PDRDISC | SKIP_PATCH
-| | ...
-| | [Template] | Discover NDR or PDR for IPv6 routing over SRv6 with endpoint to SR-unaware Service Function via masquerading proxy behaviour
-| | wt=2 | rxq=1 | framesize=${1518} | min_rate=${50000} | search_type=PDR
+| | phy_cores=${2} | framesize=${1518} | search_type=PDR
| tc11-1518B-4t4c-ethip6srhip6-ip6base-srv6proxy-masq-ndrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv6 over SRv6 routing with masquerading SRv6 proxy\
-| | ... | config with 4 phy cores, 2 receive queues per NIC port.
-| | ... | [Ver] Find NDR for 1518 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 50kpps.
-| | ...
| | [Tags] | 1518B | 4C | NDRDISC
-| | ...
-| | [Template] | Discover NDR or PDR for IPv6 routing over SRv6 with endpoint to SR-unaware Service Function via masquerading proxy behaviour
-| | wt=4 | rxq=2 | framesize=${1518} | min_rate=${50000} | search_type=NDR
+| | phy_cores=${4} | framesize=${1518} | search_type=NDR
| tc12-1518B-4t4c-ethip6srhip6-ip6base-srv6proxy-masq-pdrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv6 over SRv6 routing with masquerading SRv6 proxy\
-| | ... | config with 4 phy cores, 2 receive queues per NIC port.
-| | ... | [Ver] Find PDR for 1518 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 50kpps, LT=0.5%.
-| | ...
| | [Tags] | 1518B | 4C | PDRDISC | SKIP_PATCH
-| | ...
-| | [Template] | Discover NDR or PDR for IPv6 routing over SRv6 with endpoint to SR-unaware Service Function via masquerading proxy behaviour
-| | wt=4 | rxq=2 | framesize=${1518} | min_rate=${50000} | search_type=PDR
+| | phy_cores=${4} | framesize=${1518} | search_type=PDR
diff --git a/tests/vpp/perf/srv6/10ge2p1x520-ethip6srhip6-ip6base-srv6proxy-stat-mrr.robot b/tests/vpp/perf/srv6/10ge2p1x520-ethip6srhip6-ip6base-srv6proxy-stat-mrr.robot
index 661d3df8c4..0be9ccda27 100644
--- a/tests/vpp/perf/srv6/10ge2p1x520-ethip6srhip6-ip6base-srv6proxy-stat-mrr.robot
+++ b/tests/vpp/perf/srv6/10ge2p1x520-ethip6srhip6-ip6base-srv6proxy-stat-mrr.robot
@@ -31,6 +31,8 @@
| ...
| Test Teardown | Tear down mrr test with SRv6 with encapsulation
| ...
+| Test Template | Local template
+| ...
| Documentation | *Packet throughput Segment routing over IPv6 dataplane with\
| ... | Static SRv6 proxy test cases*
| ...
@@ -98,18 +100,27 @@
| ${container_cpus}= | ${5}
*** Keywords ***
-| Check RR for IPv6 routing over SRv6 with endpoint to SR-unaware Service Function via static proxy behaviour
+| Local template
+| | [Documentation]
+| | ... | [Cfg] DUT runs IPv6 over SRv6 routing config with ${phy_cores} phy
+| | ... | core(s).
+| | ... | [Ver] Measure MaxReceivedRate for ${framesize}B frames using single\
+| | ... | trial throughput test.
+| | ...
+| | ... | *Arguments:*
+| | ... | - framesize - Framesize in Bytes in integer or string (IMIX_v4_1).
+| | ... | Type: integer, string
+| | ... | - phy_cores - Number of physical cores. Type: integer
+| | ... | - rxq - Number of RX queues, default value: ${None}. Type: integer
| | ...
-| | [Arguments] | ${wt} | ${rxq} | ${framesize}
+| | [Arguments] | ${phy_cores} | ${framesize} | ${rxq}=${None}
| | ...
-| | # Test Variables required for test teardown
| | Set Test Variable | ${framesize}
-| | Set Test Variable | ${rxq}
| | ${get_framesize}= | Get Frame Size | ${framesize}
| | ${max_rate}= | Calculate pps | ${s_limit}
| | ... | ${get_framesize} + ${srv6_overhead_3sids}
| | ...
-| | Given Add '${wt}' worker threads and '${rxq}' rxqueues in 3-node single-link circular topology
+| | Given Add worker threads and rxqueues to all DUTs | ${phy_cores} | ${rxq}
| | And Add PCI devices to all DUTs
| | And Run Keyword If | ${get_framesize} + ${srv6_overhead_3sids} < ${1522}
| | ... | Add no multi seg to all DUTs
@@ -120,148 +131,49 @@
*** Test Cases ***
| tc01-78B-1t1c-ethip6srhip6-ip6base-srv6proxy-stat-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv6 over SRv6 routing with static SRv6 proxy config\
-| | ... | 1 phy core, 1 receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 78B frames using single trial\
-| | ... | throughput test.
-| | ...
| | [Tags] | 78B | 1C
-| | ...
-| | [Template] | Check RR for IPv6 routing over SRv6 with endpoint to SR-unaware Service Function via static proxy behaviour
-| | wt=1 | rxq=1 | framesize=${78}
+| | phy_cores=${1} | framesize=${78}
| tc02-1518B-1t1c-ethip6srhip6-ip6base-srv6proxy-stat-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv6 over SRv6 routing with static SRv6 proxy config\
-| | ... | 1 phy core, 1 receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 1518B frames using single trial\
-| | ... | throughput test.
-| | ...
| | [Tags] | 1518B | 1C
-| | ...
-| | [Template] | Check RR for IPv6 routing over SRv6 with endpoint to SR-unaware Service Function via static proxy behaviour
-| | wt=1 | rxq=1 | framesize=${1518}
+| | phy_cores=${1} | framesize=${1518}
| tc03-9000B-1t1c-ethip6srhip6-ip6base-srv6proxy-stat-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv6 over SRv6 routing with static SRv6 proxy config\
-| | ... | 1 phy core, 1 receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 9000B frames using single trial\
-| | ... | throughput test.
-| | ...
| | [Tags] | 9000B | 1C
-| | ...
-| | [Template] | Check RR for IPv6 routing over SRv6 with endpoint to SR-unaware Service Function via static proxy behaviour
-| | wt=1 | rxq=1 | framesize=${9000}
+| | phy_cores=${1} | framesize=${9000}
| tc04-IMIX-1t1c-ethip6srhip6-ip6base-srv6proxy-stat-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv6 over SRv6 routing with static SRv6 proxy config\
-| | ... | 1 phy core, 1 receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for IMIX_v4_1 frames using single trial\
-| | ... | throughput test.
-| | ... | IMIX_v4_1 = (28x64B; 16x570B; 4x1518B)
-| | ...
| | [Tags] | IMIX | 1C
-| | ...
-| | [Template] | Check RR for IPv6 routing over SRv6 with endpoint to SR-unaware Service Function via static proxy behaviour
-| | wt=1 | rxq=1 | framesize=IMIX_v4_1
+| | phy_cores=${1} | framesize=IMIX_v4_1
| tc05-78B-2t2c-ethip6srhip6-ip6base-srv6proxy-stat-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv6 over SRv6 routing with static SRv6 proxy config\
-| | ... | 2 phy cores, 1 receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 78B frames using single trial\
-| | ... | throughput test.
-| | ...
| | [Tags] | 78B | 2C
-| | ...
-| | [Template] | Check RR for IPv6 routing over SRv6 with endpoint to SR-unaware Service Function via static proxy behaviour
-| | wt=2 | rxq=1 | framesize=${78}
+| | phy_cores=${2} | framesize=${78}
| tc06-1518B-2t2c-ethip6srhip6-ip6base-srv6proxy-stat-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv6 over SRv6 routing with static SRv6 proxy config\
-| | ... | 2 phy cores, 1 receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 1518B frames using single trial\
-| | ... | throughput test.
-| | ...
| | [Tags] | 1518B | 2C
-| | ...
-| | [Template] | Check RR for IPv6 routing over SRv6 with endpoint to SR-unaware Service Function via static proxy behaviour
-| | wt=2 | rxq=1 | framesize=${1518}
+| | phy_cores=${2} | framesize=${1518}
| tc07-9000B-2t2c-ethip6srhip6-ip6base-srv6proxy-stat-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv6 over SRv6 routing with static SRv6 proxy config\
-| | ... | 2 phy cores, 1 receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 9000B frames using single trial\
-| | ... | throughput test.
-| | ...
| | [Tags] | 9000B | 2C
-| | ...
-| | [Template] | Check RR for IPv6 routing over SRv6 with endpoint to SR-unaware Service Function via static proxy behaviour
-| | wt=2 | rxq=1 | framesize=${9000}
+| | phy_cores=${2} | framesize=${9000}
| tc08-IMIX-2t2c-ethip6srhip6-ip6base-srv6proxy-stat-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv6 over SRv6 routing with static SRv6 proxy config\
-| | ... | 2 phy cores, 1 receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for IMIX_v4_1 frames using single trial\
-| | ... | throughput test.
-| | ... | IMIX_v4_1 = (28x64B; 16x570B; 4x1518B)
-| | ...
| | [Tags] | IMIX | 2C
-| | ...
-| | [Template] | Check RR for IPv6 routing over SRv6 with endpoint to SR-unaware Service Function via static proxy behaviour
-| | wt=2 | rxq=1 | framesize=IMIX_v4_1
+| | phy_cores=${2} | framesize=IMIX_v4_1
| tc09-78B-4t4c-ethip6srhip6-ip6base-srv6proxy-stat-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv6 over SRv6 routing with static SRv6 proxy config\
-| | ... | 4 phy cores, 2 receive queues per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 78B frames using single trial\
-| | ... | throughput test.
-| | ...
| | [Tags] | 78B | 4C
-| | ...
-| | [Template] | Check RR for IPv6 routing over SRv6 with endpoint to SR-unaware Service Function via static proxy behaviour
-| | wt=4 | rxq=2 | framesize=${78}
+| | phy_cores=${4} | framesize=${78}
| tc10-1518B-4t4c-ethip6srhip6-ip6base-srv6proxy-stat-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv6 over SRv6 routing with static SRv6 proxy config\
-| | ... | 4 phy cores, 2 receive queues per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 1518B frames using single trial\
-| | ... | throughput test.
-| | ...
| | [Tags] | 1518B | 4C
-| | ...
-| | [Template] | Check RR for IPv6 routing over SRv6 with endpoint to SR-unaware Service Function via static proxy behaviour
-| | wt=4 | rxq=2 | framesize=${1518}
+| | phy_cores=${4} | framesize=${1518}
| tc11-9000B-4t4c-ethip6srhip6-ip6base-srv6proxy-stat-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv6 over SRv6 routing with static SRv6 proxy config\
-| | ... | 4 phy cores, 2 receive queues per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 9000B frames using single trial\
-| | ... | throughput test.
-| | ...
| | [Tags] | 9000B | 4C
-| | ...
-| | [Template] | Check RR for IPv6 routing over SRv6 with endpoint to SR-unaware Service Function via static proxy behaviour
-| | wt=4 | rxq=2 | framesize=${9000}
+| | phy_cores=${4} | framesize=${9000}
| tc12-IMIX-4t4c-ethip6srhip6-ip6base-srv6proxy-stat-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv6 over SRv6 routing with static SRv6 proxy config\
-| | ... | 4 phy cores, 2 receive queues per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for IMIX_v4_1 frames using single trial\
-| | ... | throughput test.
-| | ... | IMIX_v4_1 = (28x64B; 16x570B; 4x1518B)
-| | ...
| | [Tags] | IMIX | 4C
-| | ...
-| | [Template] | Check RR for IPv6 routing over SRv6 with endpoint to SR-unaware Service Function via static proxy behaviour
-| | wt=4 | rxq=2 | framesize=IMIX_v4_1
+| | phy_cores=${4} | framesize=IMIX_v4_1
diff --git a/tests/vpp/perf/srv6/10ge2p1x520-ethip6srhip6-ip6base-srv6proxy-stat-ndrpdrdisc.robot b/tests/vpp/perf/srv6/10ge2p1x520-ethip6srhip6-ip6base-srv6proxy-stat-ndrpdrdisc.robot
index 5d42cd2555..b17d023b73 100644
--- a/tests/vpp/perf/srv6/10ge2p1x520-ethip6srhip6-ip6base-srv6proxy-stat-ndrpdrdisc.robot
+++ b/tests/vpp/perf/srv6/10ge2p1x520-ethip6srhip6-ip6base-srv6proxy-stat-ndrpdrdisc.robot
@@ -32,6 +32,8 @@
| Test Teardown | Tear down performance test with SRv6 with encapsulation
| ... | ${min_rate}pps | ${framesize} | ${traffic_profile}
| ...
+| Test Template | Local template
+| ...
| Documentation | *Packet throughput Segment routing over IPv6 dataplane with\
| ... | Static SRv6 proxy test cases*
| ...
@@ -103,20 +105,19 @@
| ${container_cpus}= | ${5}
*** Keywords ***
-| Discover NDR or PDR for IPv6 routing over SRv6 with endpoint to SR-unaware Service Function via static proxy behaviour
-| | ...
-| | [Arguments] | ${wt} | ${rxq} | ${framesize} | ${min_rate} | ${search_type}
+| Local template
+| | [Arguments] | ${phy_cores} | ${framesize} | ${search_type}
+| | ... | ${min_rate}=${50000} | ${rxq}=${None}
| | ...
| | Set Test Variable | ${framesize}
| | Set Test Variable | ${min_rate}
-| | Set Test Variable | ${rxq}
| | ${get_framesize}= | Get Frame Size | ${framesize}
| | ${max_rate}= | Calculate pps | ${s_limit}
| | ... | ${get_framesize} + ${srv6_overhead_3sids}
| | ${binary_min}= | Set Variable | ${min_rate}
| | ${binary_max}= | Set Variable | ${max_rate}
| | ${threshold}= | Set Variable | ${min_rate}
-| | Given Add '${wt}' worker threads and '${rxq}' rxqueues in 3-node single-link circular topology
+| | Given Add worker threads and rxqueues to all DUTs | ${phy_cores} | ${rxq}
| | And Add PCI devices to all DUTs
| | And Run Keyword If | ${get_framesize} + ${srv6_overhead_3sids} < ${1522}
| | ... | Add no multi seg to all DUTs
@@ -134,145 +135,49 @@
*** Test Cases ***
| tc01-78B-1t1c-ethip6srhip6-ip6base-srv6proxy-stat-ndrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv6 over SRv6 routing with static SRv6 proxy config\
-| | ... | with 1 phy core, 1 receive queue per NIC port.
-| | ... | [Ver] Find NDR for 78 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 50kpps.
-| | ...
| | [Tags] | 78B | 1C | NDRDISC
-| | ...
-| | [Template] | Discover NDR or PDR for IPv6 routing over SRv6 with endpoint to SR-unaware Service Function via static proxy behaviour
-| | wt=1 | rxq=1 | framesize=${78} | min_rate=${50000} | search_type=NDR
+| | phy_cores=${1} | framesize=${78} | search_type=NDR
| tc02-78B-1t1c-ethip6srhip6-ip6base-srv6proxy-stat-pdrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv6 over SRv6 routing with static SRv6 proxy config\
-| | ... | with 1 phy core, 1 receive queue per NIC port.
-| | ... | [Ver] Find PDR for 78 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 50kpps, LT=0.5%.
-| | ...
| | [Tags] | 78B | 1C | PDRDISC | SKIP_PATCH
-| | ...
-| | [Template] | Discover NDR or PDR for IPv6 routing over SRv6 with endpoint to SR-unaware Service Function via static proxy behaviour
-| | wt=1 | rxq=1 | framesize=${78} | min_rate=${50000} | search_type=PDR
+| | phy_cores=${1} | framesize=${78} | search_type=PDR
| tc03-78B-2t2c-ethip6srhip6-ip6base-srv6proxy-stat-ndrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv6 over SRv6 routing with static SRv6 proxy config\
-| | ... | with 2 phy cores, 1 receive queue per NIC port.
-| | ... | [Ver] Find NDR for 78 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 50kpps.
-| | ...
| | [Tags] | 78B | 2C | NDRDISC
-| | ...
-| | [Template] | Discover NDR or PDR for IPv6 routing over SRv6 with endpoint to SR-unaware Service Function via static proxy behaviour
-| | wt=2 | rxq=1 | framesize=${78} | min_rate=${50000} | search_type=NDR
+| | phy_cores=${2} | framesize=${78} | search_type=NDR
| tc04-78B-2t2c-ethip6srhip6-ip6base-srv6proxy-stat-pdrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv6 over SRv6 routing with static SRv6 proxy config\
-| | ... | with 2 phy cores, 1 receive queue per NIC port.
-| | ... | [Ver] Find PDR for 78 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 50kpps, LT=0.5%.
-| | ...
| | [Tags] | 78B | 2C | PDRDISC | SKIP_PATCH
-| | ...
-| | [Template] | Discover NDR or PDR for IPv6 routing over SRv6 with endpoint to SR-unaware Service Function via static proxy behaviour
-| | wt=2 | rxq=1 | framesize=${78} | min_rate=${50000} | search_type=PDR
+| | phy_cores=${2} | framesize=${78} | search_type=PDR
| tc05-78B-4t4c-ethip6srhip6-ip6base-srv6proxy-stat-ndrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv6 over SRv6 routing with static SRv6 proxy config\
-| | ... | with 4 phy cores, 2 receive queues per NIC port.
-| | ... | [Ver] Find NDR for 78 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 50kpps.
-| | ...
| | [Tags] | 78B | 4C | NDRDISC
-| | ...
-| | [Template] | Discover NDR or PDR for IPv6 routing over SRv6 with endpoint to SR-unaware Service Function via static proxy behaviour
-| | wt=4 | rxq=2 | framesize=${78} | min_rate=${50000} | search_type=NDR
+| | phy_cores=${4} | framesize=${78} | search_type=NDR
| tc06-78B-4t4c-ethip6srhip6-ip6base-srv6proxy-stat-pdrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv6 over SRv6 routing with static SRv6 proxy config\
-| | ... | with 4 phy cores, 2 receive queues per NIC port.
-| | ... | [Ver] Find PDR for 78 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 50kpps, LT=0.5%.
-| | ...
| | [Tags] | 78B | 4C | PDRDISC | SKIP_PATCH
-| | ...
-| | [Template] | Discover NDR or PDR for IPv6 routing over SRv6 with endpoint to SR-unaware Service Function via static proxy behaviour
-| | wt=4 | rxq=2 | framesize=${78} | min_rate=${50000} | search_type=PDR
+| | phy_cores=${4} | framesize=${78} | search_type=PDR
| tc07-1518B-1t1c-ethip6srhip6-ip6base-srv6proxy-stat-ndrdisc
-| | [Documentation]
-| | ... | [[Cfg] DUT runs IPv6 over SRv6 routing with static SRv6 proxy config\
-| | ... | with 1 phy core, 1 receive queue per NIC port.
-| | ... | [Ver] Find NDR for 1518 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 50kpps.
-| | ...
| | [Tags] | 1518B | 1C | NDRDISC
-| | ...
-| | [Template] | Discover NDR or PDR for IPv6 routing over SRv6 with endpoint to SR-unaware Service Function via static proxy behaviour
-| | wt=1 | rxq=1 | framesize=${1518} | min_rate=${50000} | search_type=NDR
+| | phy_cores=${1} | framesize=${1518} | search_type=NDR
| tc08-1518B-1t1c-ethip6srhip6-ip6base-srv6proxy-stat-pdrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv6 over SRv6 routing with static SRv6 proxy config\
-| | ... | with 1 phy core, 1 receive queue per NIC port.
-| | ... | [Ver] Find PDR for 1518 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 50kpps, LT=0.5%.
-| | ...
| | [Tags] | 1518B | 1C | PDRDISC | SKIP_PATCH
-| | ...
-| | [Template] | Discover NDR or PDR for IPv6 routing over SRv6 with endpoint to SR-unaware Service Function via static proxy behaviour
-| | wt=1 | rxq=1 | framesize=${1518} | min_rate=${50000} | search_type=PDR
+| | phy_cores=${1} | framesize=${1518} | search_type=PDR
| tc09-1518B-2t2c-ethip6srhip6-ip6base-srv6proxy-stat-ndrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv6 over SRv6 routing with static SRv6 proxy config\
-| | ... | with 2 phy cores, 1 receive queue per NIC port.
-| | ... | [Ver] Find NDR for 1518 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 50kpps.
-| | ...
| | [Tags] | 1518B | 2C | NDRDISC
-| | ...
-| | [Template] | Discover NDR or PDR for IPv6 routing over SRv6 with endpoint to SR-unaware Service Function via static proxy behaviour
-| | wt=2 | rxq=1 | framesize=${1518} | min_rate=${50000} | search_type=NDR
+| | phy_cores=${2} | framesize=${1518} | search_type=NDR
| tc10-1518B-2t2c-ethip6srhip6-ip6base-srv6proxy-stat-pdrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv6 over SRv6 routing with static SRv6 proxy config\
-| | ... | with 2 phy cores, 1 receive queue per NIC port.
-| | ... | [Ver] Find PDR for 1518 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 50kpps, LT=0.5%.
-| | ...
| | [Tags] | 1518B | 2C | PDRDISC | SKIP_PATCH
-| | ...
-| | [Template] | Discover NDR or PDR for IPv6 routing over SRv6 with endpoint to SR-unaware Service Function via static proxy behaviour
-| | wt=2 | rxq=1 | framesize=${1518} | min_rate=${50000} | search_type=PDR
+| | phy_cores=${2} | framesize=${1518} | search_type=PDR
| tc11-1518B-4t4c-ethip6srhip6-ip6base-srv6proxy-stat-ndrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv6 over SRv6 routing with static SRv6 proxy config\
-| | ... | with 4 phy cores, 2 receive queues per NIC port.
-| | ... | [Ver] Find NDR for 1518 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 50kpps.
-| | ...
| | [Tags] | 1518B | 4C | NDRDISC
-| | ...
-| | [Template] | Discover NDR or PDR for IPv6 routing over SRv6 with endpoint to SR-unaware Service Function via static proxy behaviour
-| | wt=4 | rxq=2 | framesize=${1518} | min_rate=${50000} | search_type=NDR
+| | phy_cores=${4} | framesize=${1518} | search_type=NDR
| tc12-1518B-4t4c-ethip6srhip6-ip6base-srv6proxy-stat-pdrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv6 over SRv6 routing with static SRv6 proxy config\
-| | ... | with 4 phy cores, 2 receive queues per NIC port.
-| | ... | [Ver] Find PDR for 1518 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 50kpps, LT=0.5%.
-| | ...
| | [Tags] | 1518B | 4C | PDRDISC | SKIP_PATCH
-| | ...
-| | [Template] | Discover NDR or PDR for IPv6 routing over SRv6 with endpoint to SR-unaware Service Function via static proxy behaviour
-| | wt=4 | rxq=2 | framesize=${1518} | min_rate=${50000} | search_type=PDR
+| | phy_cores=${4} | framesize=${1518} | search_type=PDR
diff --git a/tests/vpp/perf/tcp/10ge2p1x520-ethip4tcphttp-httpserver.robot b/tests/vpp/perf/tcp/10ge2p1x520-ethip4tcphttp-httpserver.robot
index c900d52cf4..f5dd934ed4 100644
--- a/tests/vpp/perf/tcp/10ge2p1x520-ethip4tcphttp-httpserver.robot
+++ b/tests/vpp/perf/tcp/10ge2p1x520-ethip4tcphttp-httpserver.robot
@@ -26,6 +26,8 @@
| Test Setup | Set up tcp performance test
| Test Teardown | Tear down performance test with wrk
| ...
+| Test Template | Local template
+| ...
| Documentation | *HTTP requests per seconds, connections per seconds and
| ... | throughput measurement.*
| ...
@@ -37,10 +39,11 @@
| ... | *[Ref] Applicable standard specifications:*
*** Keywords ***
-| Measure throughput or rps or cps
-| | [Arguments] | ${traffic_profile} | ${wt} | ${rxq} | ${test_type}
+| Local template
+| | [Arguments] | ${traffic_profile} | ${phy_cores} | ${test_type}
+| | ... | ${rxq}=${None}
| | ...
-| | Add '${wt}' worker threads and '${rxq}' rxqueues in 3-node single-link circular topology
+| | Add worker threads and rxqueues to all DUTs | ${phy_cores} | ${rxq}
| | Add PCI devices to all DUTs
| | ${duts}= | Get Matches | ${nodes} | DUT*
| | :FOR | ${dut} | IN | @{duts}
@@ -81,9 +84,7 @@
| | ... | Measure number of connections per second using wrk.
| | ...
| | [Tags] | 1C | TCP_CPS
-| | ...
-| | [Template] | Measure throughput or rps or cps
-| | traffic_profile=wrk-sf-2n-ethip4tcphttp-8u8c50con-cps | wt=1 | rxq=1
+| | traffic_profile=wrk-sf-2n-ethip4tcphttp-8u8c50con-cps | phy_cores=${1}
| | ... | test_type=cps
| tc02-2t2c-ethip4tcphttp-httpserver-cps
@@ -91,9 +92,7 @@
| | ... | Measure number of connections per second using wrk.
| | ...
| | [Tags] | 2C | TCP_CPS
-| | ...
-| | [Template] | Measure throughput or rps or cps
-| | traffic_profile=wrk-sf-2n-ethip4tcphttp-8u8c50con-cps | wt=2 | rxq=2
+| | traffic_profile=wrk-sf-2n-ethip4tcphttp-8u8c50con-cps | phy_cores=${2}
| | ... | test_type=cps
| tc03-4t4c-ethip4tcphttp-httpserver-cps
@@ -101,9 +100,7 @@
| | ... | Measure number of connections per second using wrk.
| | ...
| | [Tags] | 4C | TCP_CPS
-| | ...
-| | [Template] | Measure throughput or rps or cps
-| | traffic_profile=wrk-sf-2n-ethip4tcphttp-8u8c50con-cps | wt=4 | rxq=4
+| | traffic_profile=wrk-sf-2n-ethip4tcphttp-8u8c50con-cps | phy_cores=${4}
| | ... | test_type=cps
| tc04-1t1c-ethip4tcphttp-httpserver-rps
@@ -111,9 +108,7 @@
| | ... | Measure and report number of requests per second using wrk.
| | ...
| | [Tags] | 1C | TCP_RPS
-| | ...
-| | [Template] | Measure throughput or rps or cps
-| | traffic_profile=wrk-sf-2n-ethip4tcphttp-8u8c50con-rps | wt=1 | rxq=1
+| | traffic_profile=wrk-sf-2n-ethip4tcphttp-8u8c50con-rps | phy_cores=${1}
| | ... | test_type=rps
| tc05-2t2c-ethip4tcphttp-httpserver-rps
@@ -121,9 +116,7 @@
| | ... | Measure and report number of requests per second using wrk.
| | ...
| | [Tags] | 2C | TCP_RPS
-| | ...
-| | [Template] | Measure throughput or rps or cps
-| | traffic_profile=wrk-sf-2n-ethip4tcphttp-8u8c50con-rps | wt=2 | rxq=2
+| | traffic_profile=wrk-sf-2n-ethip4tcphttp-8u8c50con-rps | phy_cores=${2}
| | ... | test_type=rps
| tc06-4t4c-ethip4tcphttp-httpserver-rps
@@ -131,7 +124,5 @@
| | ... | Measure and report number of requests per second using wrk.
| | ...
| | [Tags] | 4C | TCP_RPS
-| | ...
-| | [Template] | Measure throughput or rps or cps
-| | traffic_profile=wrk-sf-2n-ethip4tcphttp-8u8c50con-rps | wt=4 | rxq=4
+| | traffic_profile=wrk-sf-2n-ethip4tcphttp-8u8c50con-rps | phy_cores=${4}
| | ... | test_type=rps
diff --git a/tests/vpp/perf/vm_vhost/10ge2p1x520-1lbdpdk-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-mrr.robot b/tests/vpp/perf/vm_vhost/10ge2p1x520-1lbdpdk-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-mrr.robot
index 451d45a00e..053db0e745 100644
--- a/tests/vpp/perf/vm_vhost/10ge2p1x520-1lbdpdk-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-mrr.robot
+++ b/tests/vpp/perf/vm_vhost/10ge2p1x520-1lbdpdk-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-mrr.robot
@@ -28,6 +28,8 @@
| ... | dut1_node=${dut1} | dut1_vm_refs=${dut1_vm_refs}
| ... | dut2_node=${dut2} | dut2_vm_refs=${dut2_vm_refs}
| ...
+| Test Template | Local template
+| ...
| Documentation | *Raw results L2BD test cases with vhost and dpdk link bonding*
| ...
| ... | *[Top] Network Topologies:* TG-DUT1-DUT2-TG 3-node circular topology
@@ -71,16 +73,21 @@
| ${traffic_profile}= | trex-sl-3n-ethip4-ip4src254
*** Keywords ***
-| Check RR for 1lbdpdk-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm
+| Local template
| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with ${wt} thread, ${wt} phy\
-| | ... | core, ${rxq} receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for ${framesize} frames using single\
+| | ... | [Cfg] DUT runs L2BD switching config.
+| | ... | Each DUT uses ${phy_cores} physical core(s) for worker threads.
+| | ... | [Ver] Measure MaxReceivedRate for ${framesize}B frames using single\
| | ... | trial throughput test.
| | ...
-| | [Arguments] | ${framesize} | ${wt} | ${rxq}
+| | ... | *Arguments:*
+| | ... | - framesize - Framesize in Bytes in integer or string (IMIX_v4_1).
+| | ... | Type: integer, string
+| | ... | - phy_cores - Number of physical cores. Type: integer
+| | ... | - rxq - Number of RX queues, default value: ${None}. Type: integer
+| | ...
+| | [Arguments] | ${framesize} | ${phy_cores} | ${rxq}=${None}
| | ...
-| | # Test Variables required for test and test teardown
| | Set Test Variable | ${framesize}
| | ${get_framesize}= | Get Frame Size | ${framesize}
| | ${max_rate}= | Calculate pps | ${s_limit}
@@ -92,7 +99,7 @@
| | ${jumbo_frames}= | Set Variable If
| | ... | ${get_framesize + ${vlan_overhead}} < ${1522} | ${False} | ${True}
| | ...
-| | Given Add '${wt}' worker threads and '${rxq}' rxqueues in 3-node single-link circular topology
+| | Given Add worker threads and rxqueues to all DUTs | ${phy_cores} | ${rxq}
| | And Add PCI devices to all DUTs
| | And Add VLAN Strip Offload switch off between DUTs in 3-node single link topology
| | And Add DPDK bonded Ethernet interfaces to DUTs in 3-node single link topology
@@ -116,148 +123,49 @@
*** Test Cases ***
| tc01-64B-1t1c-1lbdpdk-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with 1 phy\
-| | ... | core, 1 receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 64B frames using single\
-| | ... | trial throughput test.
-| | ...
| | [Tags] | 64B | 1C
-| | ...
-| | [Template] | Check RR for 1lbdpdk-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm
-| | framesize=${64} | wt=1 | rxq=1
+| | framesize=${64} | phy_cores=${1}
| tc02-1518B-1t1c-1lbdpdk-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with 1 phy\
-| | ... | core, 1 receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 1518B frames using single\
-| | ... | trial throughput test.
-| | ...
| | [Tags] | 1518B | 1C
-| | ...
-| | [Template] | Check RR for 1lbdpdk-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm
-| | framesize=${1518} | wt=1 | rxq=1
+| | framesize=${1518} | phy_cores=${1}
| tc03-9000B-1t1c-1lbdpdk-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with 1 phy\
-| | ... | core, 1 receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 9000B frames using single\
-| | ... | trial throughput test.
-| | ...
| | [Tags] | 9000B | 1C
-| | ...
-| | [Template] | Check RR for 1lbdpdk-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm
-| | framesize=${9000} | wt=1 | rxq=1
+| | framesize=${9000} | phy_cores=${1}
| tc04-IMIX-1t1c-1lbdpdk-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with 1 phy\
-| | ... | core, 1 receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for IMIX_v4_1 frames using single\
-| | ... | trial throughput test.
-| | ... | IMIX_v4_1 = (28x64B; 16x570B; 4x1518B)
-| | ...
| | [Tags] | IMIX | 1C
-| | ...
-| | [Template] | Check RR for 1lbdpdk-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm
-| | framesize=IMIX_v4_1 | wt=1 | rxq=1
+| | framesize=IMIX_v4_1 | phy_cores=${1}
| tc05-64B-2t2c-1lbdpdk-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with 2 phy\
-| | ... | cores, 1 receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 64B frames using single\
-| | ... | trial throughput test.
-| | ...
| | [Tags] | 64B | 2C
-| | ...
-| | [Template] | Check RR for 1lbdpdk-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm
-| | framesize=${64} | wt=2 | rxq=1
+| | framesize=${64} | phy_cores=${2}
| tc06-1518B-2t2c-1lbdpdk-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with 2 phy\
-| | ... | cores, 1 receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 1518B frames using single\
-| | ... | trial throughput test.
-| | ...
| | [Tags] | 1518B | 2C
-| | ...
-| | [Template] | Check RR for 1lbdpdk-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm
-| | framesize=${1518} | wt=2 | rxq=1
+| | framesize=${1518} | phy_cores=${2}
| tc07-9000B-2t2c-1lbdpdk-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with 2 phy\
-| | ... | cores, 1 receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 9000B frames using single\
-| | ... | trial throughput test.
-| | ...
| | [Tags] | 9000B | 2C
-| | ...
-| | [Template] | Check RR for 1lbdpdk-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm
-| | framesize=${9000} | wt=2 | rxq=1
+| | framesize=${9000} | phy_cores=${2}
| tc08-IMIX-2t2c-1lbdpdk-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with 2 phy\
-| | ... | cores, 1 receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for IMIX_v4_1 frames using single\
-| | ... | trial throughput test.
-| | ... | IMIX_v4_1 = (28x64B; 16x570B; 4x1518B)
-| | ...
| | [Tags] | IMIX | 2C
-| | ...
-| | [Template] | Check RR for 1lbdpdk-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm
-| | framesize=IMIX_v4_1 | wt=2 | rxq=1
+| | framesize=IMIX_v4_1 | phy_cores=${2}
| tc09-64B-4t4c-1lbdpdk-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with 4 phy\
-| | ... | cores, 2 receive queues per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 64B frames using single\
-| | ... | trial throughput test.
-| | ...
| | [Tags] | 64B | 4C
-| | ...
-| | [Template] | Check RR for 1lbdpdk-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm
-| | framesize=${64} | wt=4 | rxq=2
+| | framesize=${64} | phy_cores=${4}
| tc10-1518B-4t4c-1lbdpdk-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with 4 phy\
-| | ... | cores, 2 receive queues per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 1518B frames using single\
-| | ... | trial throughput test.
-| | ...
| | [Tags] | 1518B | 4C
-| | ...
-| | [Template] | Check RR for 1lbdpdk-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm
-| | framesize=${1518} | wt=4 | rxq=2
+| | framesize=${1518} | phy_cores=${4}
| tc11-9000B-4t4c-1lbdpdk-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with 4 phy\
-| | ... | cores, 2 receive queues per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 9000B frames using single\
-| | ... | trial throughput test.
-| | ...
| | [Tags] | 9000B | 4C
-| | ...
-| | [Template] | Check RR for 1lbdpdk-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm
-| | framesize=${9000} | wt=4 | rxq=2
+| | framesize=${9000} | phy_cores=${4}
| tc12-IMIX-4t4c-1lbdpdk-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with 4 phy\
-| | ... | cores, 2 receive queues per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for IMIX_v4_1 frames using single\
-| | ... | trial throughput test.
-| | ... | IMIX_v4_1 = (28x64B; 16x570B; 4x1518B)
-| | ...
| | [Tags] | IMIX | 4C
-| | ...
-| | [Template] | Check RR for 1lbdpdk-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm
-| | framesize=IMIX_v4_1 | wt=4 | rxq=2
+| | framesize=IMIX_v4_1 | phy_cores=${4}
diff --git a/tests/vpp/perf/vm_vhost/10ge2p1x520-1lbdpdk-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-ndrpdrdisc.robot b/tests/vpp/perf/vm_vhost/10ge2p1x520-1lbdpdk-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-ndrpdrdisc.robot
index 19335dfe0b..46ae2f46e8 100644
--- a/tests/vpp/perf/vm_vhost/10ge2p1x520-1lbdpdk-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-ndrpdrdisc.robot
+++ b/tests/vpp/perf/vm_vhost/10ge2p1x520-1lbdpdk-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-ndrpdrdisc.robot
@@ -29,6 +29,8 @@
| ... | dut1_node=${dut1} | dut1_vm_refs=${dut1_vm_refs}
| ... | dut2_node=${dut2} | dut2_vm_refs=${dut2_vm_refs}
| ...
+| Test Template | Local template
+| ...
| Documentation | *RFC2544: Packet throughput L2BD test cases with vhost and
| ... | dpdk link bonding*
| ...
@@ -79,16 +81,10 @@
| ${traffic_profile}= | trex-sl-3n-ethip4-ip4src254
*** Keywords ***
-| Discover NDR or PDR for 1lbdpdk-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with ${wt} thread, ${wt} phy\
-| | ... | core, ${rxq} receive queue per NIC port.
-| | ... | [Ver] Discover NDR or PDR for ${framesize} frames using xxx\
-| | ... | trial throughput test.
-| | ...
-| | [Arguments] | ${wt} | ${rxq} | ${framesize} | ${min_rate} | ${search_type}
+| Local template
+| | [Arguments] | ${phy_cores} | ${framesize} | ${search_type} | ${rxq}=${None}
+| | ... | ${min_rate}=${10000}
| | ...
-| | # Test Variables required for test and test teardown
| | Set Test Variable | ${framesize}
| | Set Test Variable | ${min_rate}
| | ${get_framesize}= | Get Frame Size | ${framesize}
@@ -104,7 +100,7 @@
| | ${jumbo_frames}= | Set Variable If
| | ... | ${get_framesize + ${vlan_overhead}} < ${1522} | ${False} | ${True}
| | ...
-| | Given Add '${wt}' worker threads and '${rxq}' rxqueues in 3-node single-link circular topology
+| | Given Add worker threads and rxqueues to all DUTs | ${phy_cores} | ${rxq}
| | And Add PCI devices to all DUTs
| | And Add VLAN Strip Offload switch off between DUTs in 3-node single link topology
| | And Add DPDK bonded Ethernet interfaces to DUTs in 3-node single link topology
@@ -135,295 +131,97 @@
*** Test Cases ***
| tc01-64B-1t1c-1lbdpdk-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-ndrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with 1 phy core,\
-| | ... | 1 receive queue per NIC port.
-| | ... | [Ver] Find NDR for 64 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 10kpps.
-| | ...
| | [Tags] | 64B | 1C | NDRDISC
-| | ...
-| | [Template] | Discover NDR or PDR for 1lbdpdk-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm
-| | wt=1 | rxq=1 | framesize=${64} | min_rate=${10000} | search_type=NDR
+| | phy_cores=${1} | framesize=${64} | search_type=NDR
| tc02-64B-1t1c-1lbdpdk-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-pdrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with 1 phy core,\
-| | ... | 1 receive queue per NIC port.
-| | ... | [Ver] Find PDR for 64 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 10kpps, LT=0.5%.
-| | ...
| | [Tags] | 64B | 1C | PDRDISC | SKIP_PATCH
-| | ...
-| | [Template] | Discover NDR or PDR for 1lbdpdk-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm
-| | wt=1 | rxq=1 | framesize=${64} | min_rate=${10000} | search_type=PDR
+| | phy_cores=${1} | framesize=${64} | search_type=PDR
| tc03-1518B-1t1c-1lbdpdk-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-ndrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with 1 phy core,\
-| | ... | 1 receive queue per NIC port.
-| | ... | [Ver] Find NDR for 1518 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 10kpps.
-| | ...
| | [Tags] | 1518B | 1C | NDRDISC
-| | ...
-| | [Template] | Discover NDR or PDR for 1lbdpdk-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm
-| | wt=1 | rxq=1 | framesize=${1518} | min_rate=${10000} | search_type=NDR
+| | phy_cores=${1} | framesize=${1518} | search_type=NDR
| tc04-1518B-1t1c-1lbdpdk-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-pdrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with 1 phy core,\
-| | ... | 1 receive queue per NIC port.
-| | ... | [Ver] Find PDR for 1518 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 10kpps, LT=0.5%.
-| | ...
| | [Tags] | 1518B | 1C | PDRDISC | SKIP_PATCH
-| | ...
-| | [Template] | Discover NDR or PDR for 1lbdpdk-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm
-| | wt=1 | rxq=1 | framesize=${1518} | min_rate=${10000} | search_type=PDR
+| | phy_cores=${1} | framesize=${1518} | search_type=PDR
| tc05-9000B-1t1c-1lbdpdk-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-ndrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with 1 phy core,\
-| | ... | 1 receive queue per NIC port.
-| | ... | [Ver] Find NDR for 9000 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 10kpps.
-| | ...
| | [Tags] | 9000B | 1C | NDRDISC
-| | ...
-| | [Template] | Discover NDR or PDR for 1lbdpdk-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm
-| | wt=1 | rxq=1 | framesize=${9000} | min_rate=${10000} | search_type=NDR
+| | phy_cores=${1} | framesize=${9000} | search_type=NDR
| tc06-9000B-1t1c-1lbdpdk-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-pdrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with 1 phy core,\
-| | ... | 1 receive queue per NIC port.
-| | ... | [Ver] Find PDR for 9000 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 10kpps, LT=0.5%.
-| | ...
| | [Tags] | 9000B | 1C | PDRDISC | SKIP_PATCH
-| | ...
-| | [Template] | Discover NDR or PDR for 1lbdpdk-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm
-| | wt=1 | rxq=1 | framesize=${9000} | min_rate=${10000} | search_type=PDR
+| | phy_cores=${1} | framesize=${9000} | search_type=PDR
| tc07-IMIX-1t1c-1lbdpdk-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-ndrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with 1 phy core,\
-| | ... | 1 receive queue per NIC port.
-| | ... | [Ver] Find NDR for IMIX_v4_1 framesize using binary search start at\
-| | ... | 10GE linerate, step 10kpps.
-| | ... | IMIX_v4_1 = (28x64B; 16x570B; 4x1518B)
-| | ...
| | [Tags] | IMIX | 1C | NDRDISC
-| | ...
-| | [Template] | Discover NDR or PDR for 1lbdpdk-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm
-| | wt=1 | rxq=1 | framesize=IMIX_v4_1 | min_rate=${10000} | search_type=NDR
+| | phy_cores=${1} | framesize=IMIX_v4_1 | search_type=NDR
| tc08-IMIX-1t1c-1lbdpdk-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-pdrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with 1 phy core,\
-| | ... | 1 receive queue per NIC port.
-| | ... | [Ver] Find PDR for IMIX_v4_1 framesize using binary search start at\
-| | ... | 10GE linerate, step 10kpps, LT=0.5%.
-| | ... | IMIX_v4_1 = (28x64B; 16x570B; 4x1518B)
-| | ...
| | [Tags] | IMIX | 1C | PDRDISC | SKIP_PATCH
-| | ...
-| | [Template] | Discover NDR or PDR for 1lbdpdk-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm
-| | wt=1 | rxq=1 | framesize=IMIX_v4_1 | min_rate=${10000} | search_type=PDR
+| | phy_cores=${1} | framesize=IMIX_v4_1 | search_type=PDR
| tc09-64B-2t2c-1lbdpdk-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-ndrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with 2 phy cores,\
-| | ... | 1 receive queue per NIC port.
-| | ... | [Ver] Find NDR for 64 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 10kpps.
-| | ...
| | [Tags] | 64B | 2C | NDRDISC
-| | ...
-| | [Template] | Discover NDR or PDR for 1lbdpdk-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm
-| | wt=2 | rxq=1 | framesize=${64} | min_rate=${10000} | search_type=NDR
+| | phy_cores=${2} | framesize=${64} | search_type=NDR
| tc10-64B-2t2c-1lbdpdk-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-pdrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with 2 phy cores,\
-| | ... | 1 receive queue per NIC port.
-| | ... | [Ver] Find PDR for 64 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 10kpps, LT=0.5%.
-| | ...
| | [Tags] | 64B | 2C | PDRDISC | SKIP_PATCH
-| | ...
-| | [Template] | Discover NDR or PDR for 1lbdpdk-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm
-| | wt=2 | rxq=1 | framesize=${64} | min_rate=${10000} | search_type=PDR
+| | phy_cores=${2} | framesize=${64} | search_type=PDR
| tc11-1518B-2t2c-1lbdpdk-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-ndrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with 2 phy cores,\
-| | ... | 1 receive queue per NIC port.
-| | ... | [Ver] Find NDR for 1518 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 10kpps.
-| | ...
| | [Tags] | 1518B | 2C | NDRDISC | SKIP_PATCH
-| | ...
-| | [Template] | Discover NDR or PDR for 1lbdpdk-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm
-| | wt=2 | rxq=1 | framesize=${1518} | min_rate=${10000} | search_type=NDR
+| | phy_cores=${2} | framesize=${1518} | search_type=NDR
| tc12-1518B-2t2c-1lbdpdk-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-pdrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with 2 phy cores,\
-| | ... | 1 receive queue per NIC port.
-| | ... | [Ver] Find PDR for 1518 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 10kpps, LT=0.5%.
-| | ...
| | [Tags] | 1518B | 2C | PDRDISC | SKIP_PATCH
-| | ...
-| | [Template] | Discover NDR or PDR for 1lbdpdk-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm
-| | wt=2 | rxq=1 | framesize=${1518} | min_rate=${10000} | search_type=PDR
+| | phy_cores=${2} | framesize=${1518} | search_type=PDR
| tc13-9000B-2t2c-1lbdpdk-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-ndrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with 2 phy cores,\
-| | ... | 1 receive queue per NIC port.
-| | ... | [Ver] Find NDR for 9000 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 10kpps.
-| | ...
| | [Tags] | 9000B | 2C | NDRDISC | SKIP_PATCH
-| | ...
-| | [Template] | Discover NDR or PDR for 1lbdpdk-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm
-| | wt=2 | rxq=1 | framesize=${9000} | min_rate=${10000} | search_type=NDR
+| | phy_cores=${2} | framesize=${9000} | search_type=NDR
| tc14-9000B-2t2c-1lbdpdk-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-pdrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with 2 phy cores,\
-| | ... | 1 receive queue per NIC port.
-| | ... | [Ver] Find PDR for 9000 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 10kpps, LT=0.5%.
-| | ...
| | [Tags] | 9000B | 2C | PDRDISC | SKIP_PATCH
-| | ...
-| | [Template] | Discover NDR or PDR for 1lbdpdk-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm
-| | wt=2 | rxq=1 | framesize=${9000} | min_rate=${10000} | search_type=PDR
+| | phy_cores=${2} | framesize=${9000} | search_type=PDR
| tc15-IMIX-2t2c-1lbdpdk-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-ndrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with 2 phy cores,\
-| | ... | 1 receive queue per NIC port.
-| | ... | [Ver] Find NDR for IMIX_v4_1 framesize using binary search start at\
-| | ... | 10GE linerate, step 10kpps.
-| | ... | IMIX_v4_1 = (28x64B; 16x570B; 4x1518B)
-| | ...
| | [Tags] | IMIX | 2C | NDRDISC | SKIP_PATCH
-| | ...
-| | [Template] | Discover NDR or PDR for 1lbdpdk-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm
-| | wt=2 | rxq=1 | framesize=IMIX_v4_1 | min_rate=${10000} | search_type=NDR
+| | phy_cores=${2} | framesize=IMIX_v4_1 | search_type=NDR
| tc16-IMIX-2t2c-1lbdpdk-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-pdrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with 2 phy cores,\
-| | ... | 1 receive queue per NIC port.
-| | ... | [Ver] Find PDR for IMIX_v4_1 framesize using binary search start at\
-| | ... | 10GE linerate, step 10kpps.
-| | ... | IMIX_v4_1 = (28x64B; 16x570B; 4x1518B)
-| | ...
| | [Tags] | IMIX | 2C | PDRDISC | SKIP_PATCH
-| | ...
-| | [Template] | Discover NDR or PDR for 1lbdpdk-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm
-| | wt=2 | rxq=1 | framesize=IMIX_v4_1 | min_rate=${10000} | search_type=PDR
+| | phy_cores=${2} | framesize=IMIX_v4_1 | search_type=PDR
| tc17-64B-4t4c-1lbdpdk-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-ndrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with 4 phy cores,\
-| | ... | 2 receive queues per NIC port.
-| | ... | [Ver] Find NDR for 64 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 10kpps.
-| | ...
| | [Tags] | 64B | 4C | NDRDISC
-| | ...
-| | [Template] | Discover NDR or PDR for 1lbdpdk-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm
-| | wt=4 | rxq=2 | framesize=${64} | min_rate=${10000} | search_type=NDR
+| | phy_cores=${4} | framesize=${64} | search_type=NDR
| tc18-64B-4t4c-1lbdpdk-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-pdrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with 4 phy cores,\
-| | ... | 2 receive queues per NIC port.
-| | ... | [Ver] Find PDR for 64 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 10kpps, LT=0.5%.
-| | ...
| | [Tags] | 64B | 4C | PDRDISC | SKIP_PATCH
-| | ...
-| | [Template] | Discover NDR or PDR for 1lbdpdk-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm
-| | wt=4 | rxq=2 | framesize=${64} | min_rate=${10000} | search_type=PDR
+| | phy_cores=${4} | framesize=${64} | search_type=PDR
| tc19-1518B-4t4c-1lbdpdk-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-ndrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with 4 phy cores,\
-| | ... | 2 receive queues per NIC port.
-| | ... | [Ver] Find NDR for 1518 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 10kpps.
-| | ...
| | [Tags] | 1518B | 4C | NDRDISC | SKIP_PATCH
-| | ...
-| | [Template] | Discover NDR or PDR for 1lbdpdk-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm
-| | wt=4 | rxq=2 | framesize=${1518} | min_rate=${10000} | search_type=NDR
+| | phy_cores=${4} | framesize=${1518} | search_type=NDR
| tc20-1518B-4t4c-1lbdpdk-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-pdrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with 4 phy cores,\
-| | ... | 2 receive queues per NIC port.
-| | ... | [Ver] Find PDR for 1518 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 10kpps, LT=0.5%.
-| | ...
| | [Tags] | 1518B | 4C | PDRDISC | SKIP_PATCH
-| | ...
-| | [Template] | Discover NDR or PDR for 1lbdpdk-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm
-| | wt=4 | rxq=2 | framesize=${1518} | min_rate=${10000} | search_type=PDR
+| | phy_cores=${4} | framesize=${1518} | search_type=PDR
| tc21-9000B-4t4c-1lbdpdk-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-ndrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with 4 phy cores,\
-| | ... | 2 receive queues per NIC port.
-| | ... | [Ver] Find NDR for 9000 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 10kpps.
-| | ...
| | [Tags] | 9000B | 4C | NDRDISC | SKIP_PATCH
-| | ...
-| | [Template] | Discover NDR or PDR for 1lbdpdk-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm
-| | wt=4 | rxq=2 | framesize=${9000} | min_rate=${10000} | search_type=NDR
+| | phy_cores=${4} | framesize=${9000} | search_type=NDR
| tc22-9000B-4t4c-1lbdpdk-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-pdrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with 4 phy cores,\
-| | ... | 2 receive queues per NIC port.
-| | ... | [Ver] Find PDR for 9000 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 10kpps, LT=0.5%.
-| | ...
| | [Tags] | 9000B | 4C | PDRDISC | SKIP_PATCH
-| | ...
-| | [Template] | Discover NDR or PDR for 1lbdpdk-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm
-| | wt=4 | rxq=2 | framesize=${9000} | min_rate=${10000} | search_type=PDR
+| | phy_cores=${4} | framesize=${9000} | search_type=PDR
| tc23-IMIX-4t4c-1lbdpdk-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-ndrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with 4 phy cores,\
-| | ... | 2 receive queues per NIC port.
-| | ... | [Ver] Find NDR for IMIX_v4_1 framesize using binary search start at\
-| | ... | 10GE linerate, step 10kpps.
-| | ... | IMIX_v4_1 = (28x64B; 16x570B; 4x1518B)
-| | ...
| | [Tags] | IMIX | 4C | NDRDISC | SKIP_PATCH
-| | ...
-| | [Template] | Discover NDR or PDR for 1lbdpdk-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm
-| | wt=4 | rxq=2 | framesize=IMIX_v4_1 | min_rate=${10000} | search_type=NDR
+| | phy_cores=${4} | framesize=IMIX_v4_1 | search_type=NDR
| tc24-IMIX-4t4c-1lbdpdk-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-pdrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with 4 phy cores,\
-| | ... | 2 receive queues per NIC port.
-| | ... | [Ver] Find PDR for IMIX_v4_1 framesize using binary search start at\
-| | ... | 10GE linerate, step 10kpps, LT=0.5%.
-| | ... | IMIX_v4_1 = (28x64B; 16x570B; 4x1518B)
-| | ...
| | [Tags] | IMIX | 4C | PDRDISC | SKIP_PATCH
-| | ...
-| | [Template] | Discover NDR or PDR for 1lbdpdk-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm
-| | wt=4 | rxq=2 | framesize=IMIX_v4_1 | min_rate=${10000} | search_type=PDR
+| | phy_cores=${4} | framesize=IMIX_v4_1 | search_type=PDR
diff --git a/tests/vpp/perf/vm_vhost/10ge2p1x520-1lbdpdk-dot1q-l2xcbase-eth-2vhostvr1024-1vm-mrr.robot b/tests/vpp/perf/vm_vhost/10ge2p1x520-1lbdpdk-dot1q-l2xcbase-eth-2vhostvr1024-1vm-mrr.robot
index 6c0b6bee46..01f174ff36 100644
--- a/tests/vpp/perf/vm_vhost/10ge2p1x520-1lbdpdk-dot1q-l2xcbase-eth-2vhostvr1024-1vm-mrr.robot
+++ b/tests/vpp/perf/vm_vhost/10ge2p1x520-1lbdpdk-dot1q-l2xcbase-eth-2vhostvr1024-1vm-mrr.robot
@@ -28,6 +28,8 @@
| ... | dut1_node=${dut1} | dut1_vm_refs=${dut1_vm_refs}
| ... | dut2_node=${dut2} | dut2_vm_refs=${dut2_vm_refs}
| ...
+| Test Template | Local template
+| ...
| Documentation | *Raw results L2XC test cases with vhost and dpdk link bonding*
| ...
| ... | *[Top] Network Topologies:* TG-DUT1-DUT2-TG 3-node circular topology
@@ -69,16 +71,21 @@
| ${traffic_profile}= | trex-sl-3n-ethip4-ip4src254
*** Keywords ***
-| Check RR for 1lbdpdk-dot1q-l2xcbase-eth-2vhostvr1024-1vm
+| Local template
| | [Documentation]
-| | ... | [Cfg] DUT runs L2XC switching config with ${wt} thread, ${wt} phy\
-| | ... | core, ${rxq} receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for ${framesize} frames using single\
+| | ... | [Cfg] DUT runs L2XC switching config.
+| | ... | Each DUT uses ${phy_cores} physical core(s) for worker threads.
+| | ... | [Ver] Measure MaxReceivedRate for ${framesize}B frames using single\
| | ... | trial throughput test.
| | ...
-| | [Arguments] | ${framesize} | ${wt} | ${rxq}
+| | ... | *Arguments:*
+| | ... | - framesize - Framesize in Bytes in integer or string (IMIX_v4_1).
+| | ... | Type: integer, string
+| | ... | - phy_cores - Number of physical cores. Type: integer
+| | ... | - rxq - Number of RX queues, default value: ${None}. Type: integer
+| | ...
+| | [Arguments] | ${framesize} | ${phy_cores} | ${rxq}=${None}
| | ...
-| | # Test Variables required for test and test teardown
| | Set Test Variable | ${framesize}
| | ${get_framesize}= | Get Frame Size | ${framesize}
| | ${max_rate}= | Calculate pps | ${s_limit}
@@ -90,7 +97,7 @@
| | ${jumbo_frames}= | Set Variable If
| | ... | ${get_framesize + ${vlan_overhead}} < ${1522} | ${False} | ${True}
| | ...
-| | Given Add '${wt}' worker threads and '${rxq}' rxqueues in 3-node single-link circular topology
+| | Given Add worker threads and rxqueues to all DUTs | ${phy_cores} | ${rxq}
| | And Add PCI devices to all DUTs
| | And Add VLAN Strip Offload switch off between DUTs in 3-node single link topology
| | And Add DPDK bonded Ethernet interfaces to DUTs in 3-node single link topology
@@ -113,148 +120,49 @@
*** Test Cases ***
| tc01-64B-1t1c-1lbdpdk-dot1q-l2xcbase-eth-2vhostvr1024-1vm-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2XC switching config with 1 phy\
-| | ... | core, 1 receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 64B frames using single\
-| | ... | trial throughput test.
-| | ...
| | [Tags] | 64B | 1C
-| | ...
-| | [Template] | Check RR for 1lbdpdk-dot1q-l2xcbase-eth-2vhostvr1024-1vm
-| | framesize=${64} | wt=1 | rxq=1
+| | framesize=${64} | phy_cores=${1}
| tc02-1518B-1t1c-1lbdpdk-dot1q-l2xcbase-eth-2vhostvr1024-1vm-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2XC switching config with 1 phy\
-| | ... | core, 1 receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 1518B frames using single\
-| | ... | trial throughput test.
-| | ...
| | [Tags] | 1518B | 1C
-| | ...
-| | [Template] | Check RR for 1lbdpdk-dot1q-l2xcbase-eth-2vhostvr1024-1vm
-| | framesize=${1518} | wt=1 | rxq=1
+| | framesize=${1518} | phy_cores=${1}
| tc03-9000B-1t1c-1lbdpdk-dot1q-l2xcbase-eth-2vhostvr1024-1vm-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2XC switching config with 1 phy\
-| | ... | core, 1 receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 9000B frames using single\
-| | ... | trial throughput test.
-| | ...
| | [Tags] | 9000B | 1C
-| | ...
-| | [Template] | Check RR for 1lbdpdk-dot1q-l2xcbase-eth-2vhostvr1024-1vm
-| | framesize=${9000} | wt=1 | rxq=1
+| | framesize=${9000} | phy_cores=${1}
| tc04-IMIX-1t1c-1lbdpdk-dot1q-l2xcbase-eth-2vhostvr1024-1vm-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2XC switching config with 1 phy\
-| | ... | core, 1 receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for IMIX_v4_1 frames using single\
-| | ... | trial throughput test.
-| | ... | IMIX_v4_1 = (28x64B; 16x570B; 4x1518B)
-| | ...
| | [Tags] | IMIX | 1C
-| | ...
-| | [Template] | Check RR for 1lbdpdk-dot1q-l2xcbase-eth-2vhostvr1024-1vm
-| | framesize=IMIX_v4_1 | wt=1 | rxq=1
+| | framesize=IMIX_v4_1 | phy_cores=${1}
| tc05-64B-2t2c-1lbdpdk-dot1q-l2xcbase-eth-2vhostvr1024-1vm-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2XC switching config with 2 phy\
-| | ... | cores, 1 receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 64B frames using single\
-| | ... | trial throughput test.
-| | ...
| | [Tags] | 64B | 2C
-| | ...
-| | [Template] | Check RR for 1lbdpdk-dot1q-l2xcbase-eth-2vhostvr1024-1vm
-| | framesize=${64} | wt=2 | rxq=1
+| | framesize=${64} | phy_cores=${2}
| tc06-1518B-2t2c-1lbdpdk-dot1q-l2xcbase-eth-2vhostvr1024-1vm-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2XC switching config with 2 phy\
-| | ... | cores, 1 receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 1518B frames using single\
-| | ... | trial throughput test.
-| | ...
| | [Tags] | 1518B | 2C
-| | ...
-| | [Template] | Check RR for 1lbdpdk-dot1q-l2xcbase-eth-2vhostvr1024-1vm
-| | framesize=${1518} | wt=2 | rxq=1
+| | framesize=${1518} | phy_cores=${2}
| tc07-9000B-2t2c-1lbdpdk-dot1q-l2xcbase-eth-2vhostvr1024-1vm-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2XC switching config with 2 phy\
-| | ... | cores, 1 receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 9000B frames using single\
-| | ... | trial throughput test.
-| | ...
| | [Tags] | 9000B | 2C
-| | ...
-| | [Template] | Check RR for 1lbdpdk-dot1q-l2xcbase-eth-2vhostvr1024-1vm
-| | framesize=${9000} | wt=2 | rxq=1
+| | framesize=${9000} | phy_cores=${2}
| tc08-IMIX-2t2c-1lbdpdk-dot1q-l2xcbase-eth-2vhostvr1024-1vm-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2XC switching config with 2 phy\
-| | ... | cores, 1 receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for IMIX_v4_1 frames using single\
-| | ... | trial throughput test.
-| | ... | IMIX_v4_1 = (28x64B; 16x570B; 4x1518B)
-| | ...
| | [Tags] | IMIX | 2C
-| | ...
-| | [Template] | Check RR for 1lbdpdk-dot1q-l2xcbase-eth-2vhostvr1024-1vm
-| | framesize=IMIX_v4_1 | wt=2 | rxq=1
+| | framesize=IMIX_v4_1 | phy_cores=${2}
| tc09-64B-4t4c-1lbdpdk-dot1q-l2xcbase-eth-2vhostvr1024-1vm-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2XC switching config with 4 phy\
-| | ... | cores, 2 receive queues per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 64B frames using single\
-| | ... | trial throughput test.
-| | ...
| | [Tags] | 64B | 4C
-| | ...
-| | [Template] | Check RR for 1lbdpdk-dot1q-l2xcbase-eth-2vhostvr1024-1vm
-| | framesize=${64} | wt=4 | rxq=2
+| | framesize=${64} | phy_cores=${4}
| tc10-1518B-4t4c-1lbdpdk-dot1q-l2xcbase-eth-2vhostvr1024-1vm-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2XC switching config with 4 phy\
-| | ... | cores, 2 receive queues per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 1518B frames using single\
-| | ... | trial throughput test.
-| | ...
| | [Tags] | 1518B | 4C
-| | ...
-| | [Template] | Check RR for 1lbdpdk-dot1q-l2xcbase-eth-2vhostvr1024-1vm
-| | framesize=${1518} | wt=4 | rxq=2
+| | framesize=${1518} | phy_cores=${4}
| tc11-9000B-4t4c-1lbdpdk-dot1q-l2xcbase-eth-2vhostvr1024-1vm-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2XC switching config with 4 phy\
-| | ... | cores, 2 receive queues per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 9000B frames using single\
-| | ... | trial throughput test.
-| | ...
| | [Tags] | 9000B | 4C
-| | ...
-| | [Template] | Check RR for 1lbdpdk-dot1q-l2xcbase-eth-2vhostvr1024-1vm
-| | framesize=${9000} | wt=4 | rxq=2
+| | framesize=${9000} | phy_cores=${4}
| tc12-IMIX-4t4c-1lbdpdk-dot1q-l2xcbase-eth-2vhostvr1024-1vm-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2XC switching config with 4 phy\
-| | ... | cores, 2 receive queues per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for IMIX_v4_1 frames using single\
-| | ... | trial throughput test.
-| | ... | IMIX_v4_1 = (28x64B; 16x570B; 4x1518B)
-| | ...
| | [Tags] | IMIX | 4C
-| | ...
-| | [Template] | Check RR for 1lbdpdk-dot1q-l2xcbase-eth-2vhostvr1024-1vm
-| | framesize=IMIX_v4_1 | wt=4 | rxq=2
+| | framesize=IMIX_v4_1 | phy_cores=${4}
diff --git a/tests/vpp/perf/vm_vhost/10ge2p1x520-1lbdpdk-dot1q-l2xcbase-eth-2vhostvr1024-1vm-ndrpdrdisc.robot b/tests/vpp/perf/vm_vhost/10ge2p1x520-1lbdpdk-dot1q-l2xcbase-eth-2vhostvr1024-1vm-ndrpdrdisc.robot
index 7d567743af..5c16dc3181 100644
--- a/tests/vpp/perf/vm_vhost/10ge2p1x520-1lbdpdk-dot1q-l2xcbase-eth-2vhostvr1024-1vm-ndrpdrdisc.robot
+++ b/tests/vpp/perf/vm_vhost/10ge2p1x520-1lbdpdk-dot1q-l2xcbase-eth-2vhostvr1024-1vm-ndrpdrdisc.robot
@@ -29,6 +29,8 @@
| ... | dut1_node=${dut1} | dut1_vm_refs=${dut1_vm_refs}
| ... | dut2_node=${dut2} | dut2_vm_refs=${dut2_vm_refs}
| ...
+| Test Template | Local template
+| ...
| Documentation | *RFC2544: Packet throughput L2XC test cases with vhost and
| ... | dpdk link bonding*
| ...
@@ -79,16 +81,10 @@
| ${traffic_profile}= | trex-sl-3n-ethip4-ip4src254
*** Keywords ***
-| Discover NDR or PDR for 1lbdpdk-dot1q-l2xcbase-eth-2vhostvr1024-1vm
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2XC switching config with ${wt} thread, ${wt} phy\
-| | ... | core, ${rxq} receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for ${framesize} frames using single\
-| | ... | trial throughput test.
-| | ...
-| | [Arguments] | ${wt} | ${rxq} | ${framesize} | ${min_rate} | ${search_type}
+| Local template
+| | [Arguments] | ${phy_cores} | ${framesize} | ${search_type} | ${rxq}=${None}
+| | ... | ${min_rate}=${10000}
| | ...
-| | # Test Variables required for test and test teardown
| | Set Test Variable | ${framesize}
| | Set Test Variable | ${min_rate}
| | ${get_framesize}= | Get Frame Size | ${framesize}
@@ -104,7 +100,7 @@
| | ${jumbo_frames}= | Set Variable If
| | ... | ${get_framesize + ${vlan_overhead}} < ${1522} | ${False} | ${True}
| | ...
-| | Given Add '${wt}' worker threads and '${rxq}' rxqueues in 3-node single-link circular topology
+| | Given Add worker threads and rxqueues to all DUTs | ${phy_cores} | ${rxq}
| | And Add PCI devices to all DUTs
| | And Add VLAN Strip Offload switch off between DUTs in 3-node single link topology
| | And Add DPDK bonded Ethernet interfaces to DUTs in 3-node single link topology
@@ -134,295 +130,97 @@
*** Test Cases ***
| tc01-64B-1t1c-1lbdpdk-dot1q-l2xcbase-eth-2vhostvr1024-1vm-ndrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2XC switching config with 1 phy core,\
-| | ... | 1 receive queue per NIC port.
-| | ... | [Ver] Find NDR for 64 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 10kpps.
-| | ...
| | [Tags] | 64B | 1C | NDRDISC
-| | ...
-| | [Template] | Discover NDR or PDR for 1lbdpdk-dot1q-l2xcbase-eth-2vhostvr1024-1vm
-| | wt=1 | rxq=1 | framesize=${64} | min_rate=${10000} | search_type=NDR
+| | phy_cores=${1} | framesize=${64} | search_type=NDR
| tc02-64B-1t1c-1lbdpdk-dot1q-l2xcbase-eth-2vhostvr1024-1vm-pdrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2XC switching config with 1 phy core,\
-| | ... | 1 receive queue per NIC port.
-| | ... | [Ver] Find PDR for 64 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 10kpps, LT=0.5%.
-| | ...
| | [Tags] | 64B | 1C | PDRDISC | SKIP_PATCH
-| | ...
-| | [Template] | Discover NDR or PDR for 1lbdpdk-dot1q-l2xcbase-eth-2vhostvr1024-1vm
-| | wt=1 | rxq=1 | framesize=${64} | min_rate=${10000} | search_type=PDR
+| | phy_cores=${1} | framesize=${64} | search_type=PDR
| tc03-1518B-1t1c-1lbdpdk-dot1q-l2xcbase-eth-2vhostvr1024-1vm-ndrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2XC switching config with 1 phy core,\
-| | ... | 1 receive queue per NIC port.
-| | ... | [Ver] Find NDR for 1518 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 10kpps.
-| | ...
| | [Tags] | 1518B | 1C | NDRDISC
-| | ...
-| | [Template] | Discover NDR or PDR for 1lbdpdk-dot1q-l2xcbase-eth-2vhostvr1024-1vm
-| | wt=1 | rxq=1 | framesize=${1518} | min_rate=${10000} | search_type=NDR
+| | phy_cores=${1} | framesize=${1518} | search_type=NDR
| tc04-1518B-1t1c-1lbdpdk-dot1q-l2xcbase-eth-2vhostvr1024-1vm-pdrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2XC switching config with 1 phy core,\
-| | ... | 1 receive queue per NIC port.
-| | ... | [Ver] Find PDR for 1518 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 10kpps, LT=0.5%.
-| | ...
| | [Tags] | 1518B | 1C | PDRDISC | SKIP_PATCH
-| | ...
-| | [Template] | Discover NDR or PDR for 1lbdpdk-dot1q-l2xcbase-eth-2vhostvr1024-1vm
-| | wt=1 | rxq=1 | framesize=${1518} | min_rate=${10000} | search_type=PDR
+| | phy_cores=${1} | framesize=${1518} | search_type=PDR
| tc05-9000B-1t1c-1lbdpdk-dot1q-l2xcbase-eth-2vhostvr1024-1vm-ndrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2XC switching config with 1 phy core,\
-| | ... | 1 receive queue per NIC port.
-| | ... | [Ver] Find NDR for 9000 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 10kpps.
-| | ...
| | [Tags] | 9000B | 1C | NDRDISC
-| | ...
-| | [Template] | Discover NDR or PDR for 1lbdpdk-dot1q-l2xcbase-eth-2vhostvr1024-1vm
-| | wt=1 | rxq=1 | framesize=${9000} | min_rate=${10000} | search_type=NDR
+| | phy_cores=${1} | framesize=${9000} | search_type=NDR
| tc06-9000B-1t1c-1lbdpdk-dot1q-l2xcbase-eth-2vhostvr1024-1vm-pdrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2XC switching config with 1 phy core,\
-| | ... | 1 receive queue per NIC port.
-| | ... | [Ver] Find PDR for 9000 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 10kpps, LT=0.5%.
-| | ...
| | [Tags] | 9000B | 1C | PDRDISC | SKIP_PATCH
-| | ...
-| | [Template] | Discover NDR or PDR for 1lbdpdk-dot1q-l2xcbase-eth-2vhostvr1024-1vm
-| | wt=1 | rxq=1 | framesize=${9000} | min_rate=${10000} | search_type=PDR
+| | phy_cores=${1} | framesize=${9000} | search_type=PDR
| tc07-IMIX-1t1c-1lbdpdk-dot1q-l2xcbase-eth-2vhostvr1024-1vm-ndrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2XC switching config with 1 phy core,\
-| | ... | 1 receive queue per NIC port.
-| | ... | [Ver] Find NDR for IMIX_v4_1 framesize using binary search start at\
-| | ... | 10GE linerate, step 10kpps.
-| | ... | IMIX_v4_1 = (28x64B; 16x570B; 4x1518B)
-| | ...
| | [Tags] | IMIX | 1C | NDRDISC
-| | ...
-| | [Template] | Discover NDR or PDR for 1lbdpdk-dot1q-l2xcbase-eth-2vhostvr1024-1vm
-| | wt=1 | rxq=1 | framesize=IMIX_v4_1 | min_rate=${10000} | search_type=NDR
+| | phy_cores=${1} | framesize=IMIX_v4_1 | search_type=NDR
| tc08-IMIX-1t1c-1lbdpdk-dot1q-l2xcbase-eth-2vhostvr1024-1vm-pdrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2XC switching config with 1 phy core,\
-| | ... | 1 receive queue per NIC port.
-| | ... | [Ver] Find PDR for IMIX_v4_1 framesize using binary search start at\
-| | ... | 10GE linerate, step 10kpps, LT=0.5%.
-| | ... | IMIX_v4_1 = (28x64B; 16x570B; 4x1518B)
-| | ...
| | [Tags] | IMIX | 1C | PDRDISC | SKIP_PATCH
-| | ...
-| | [Template] | Discover NDR or PDR for 1lbdpdk-dot1q-l2xcbase-eth-2vhostvr1024-1vm
-| | wt=1 | rxq=1 | framesize=IMIX_v4_1 | min_rate=${10000} | search_type=PDR
+| | phy_cores=${1} | framesize=IMIX_v4_1 | search_type=PDR
| tc09-64B-2t2c-1lbdpdk-dot1q-l2xcbase-eth-2vhostvr1024-1vm-ndrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2XC switching config with 2 phy cores,\
-| | ... | 1 receive queue per NIC port.
-| | ... | [Ver] Find NDR for 64 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 10kpps.
-| | ...
| | [Tags] | 64B | 2C | NDRDISC
-| | ...
-| | [Template] | Discover NDR or PDR for 1lbdpdk-dot1q-l2xcbase-eth-2vhostvr1024-1vm
-| | wt=2 | rxq=1 | framesize=${64} | min_rate=${10000} | search_type=NDR
+| | phy_cores=${2} | framesize=${64} | search_type=NDR
| tc10-64B-2t2c-1lbdpdk-dot1q-l2xcbase-eth-2vhostvr1024-1vm-pdrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2XC switching config with 2 phy cores,\
-| | ... | 1 receive queue per NIC port.
-| | ... | [Ver] Find PDR for 64 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 10kpps, LT=0.5%.
-| | ...
| | [Tags] | 64B | 2C | PDRDISC | SKIP_PATCH
-| | ...
-| | [Template] | Discover NDR or PDR for 1lbdpdk-dot1q-l2xcbase-eth-2vhostvr1024-1vm
-| | wt=2 | rxq=1 | framesize=${64} | min_rate=${10000} | search_type=PDR
+| | phy_cores=${2} | framesize=${64} | search_type=PDR
| tc11-1518B-2t2c-1lbdpdk-dot1q-l2xcbase-eth-2vhostvr1024-1vm-ndrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2XC switching config with 2 phy cores,\
-| | ... | 1 receive queue per NIC port.
-| | ... | [Ver] Find NDR for 1518 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 10kpps.
-| | ...
| | [Tags] | 1518B | 2C | NDRDISC | SKIP_PATCH
-| | ...
-| | [Template] | Discover NDR or PDR for 1lbdpdk-dot1q-l2xcbase-eth-2vhostvr1024-1vm
-| | wt=2 | rxq=1 | framesize=${1518} | min_rate=${10000} | search_type=NDR
+| | phy_cores=${2} | framesize=${1518} | search_type=NDR
| tc12-1518B-2t2c-1lbdpdk-dot1q-l2xcbase-eth-2vhostvr1024-1vm-pdrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2XC switching config with 2 phy cores,\
-| | ... | 1 receive queue per NIC port.
-| | ... | [Ver] Find PDR for 1518 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 10kpps, LT=0.5%.
-| | ...
| | [Tags] | 1518B | 2C | PDRDISC | SKIP_PATCH
-| | ...
-| | [Template] | Discover NDR or PDR for 1lbdpdk-dot1q-l2xcbase-eth-2vhostvr1024-1vm
-| | wt=2 | rxq=1 | framesize=${1518} | min_rate=${10000} | search_type=PDR
+| | phy_cores=${2} | framesize=${1518} | search_type=PDR
| tc13-9000B-2t2c-1lbdpdk-dot1q-l2xcbase-eth-2vhostvr1024-1vm-ndrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2XC switching config with 2 phy cores,\
-| | ... | 1 receive queue per NIC port.
-| | ... | [Ver] Find NDR for 9000 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 10kpps.
-| | ...
| | [Tags] | 9000B | 2C | NDRDISC | SKIP_PATCH
-| | ...
-| | [Template] | Discover NDR or PDR for 1lbdpdk-dot1q-l2xcbase-eth-2vhostvr1024-1vm
-| | wt=2 | rxq=1 | framesize=${9000} | min_rate=${10000} | search_type=NDR
+| | phy_cores=${2} | framesize=${9000} | search_type=NDR
| tc14-9000B-2t2c-1lbdpdk-dot1q-l2xcbase-eth-2vhostvr1024-1vm-pdrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2XC switching config with 2 phy cores,\
-| | ... | 1 receive queue per NIC port.
-| | ... | [Ver] Find PDR for 9000 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 10kpps, LT=0.5%.
-| | ...
| | [Tags] | 9000B | 2C | PDRDISC | SKIP_PATCH
-| | ...
-| | [Template] | Discover NDR or PDR for 1lbdpdk-dot1q-l2xcbase-eth-2vhostvr1024-1vm
-| | wt=2 | rxq=1 | framesize=${9000} | min_rate=${10000} | search_type=PDR
+| | phy_cores=${2} | framesize=${9000} | search_type=PDR
| tc15-IMIX-2t2c-1lbdpdk-dot1q-l2xcbase-eth-2vhostvr1024-1vm-ndrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2XC switching config with 2 phy cores,\
-| | ... | 1 receive queue per NIC port.
-| | ... | [Ver] Find NDR for IMIX_v4_1 framesize using binary search start at\
-| | ... | 10GE linerate, step 10kpps.
-| | ... | IMIX_v4_1 = (28x64B; 16x570B; 4x1518B)
-| | ...
| | [Tags] | IMIX | 2C | NDRDISC | SKIP_PATCH
-| | ...
-| | [Template] | Discover NDR or PDR for 1lbdpdk-dot1q-l2xcbase-eth-2vhostvr1024-1vm
-| | wt=2 | rxq=1 | framesize=IMIX_v4_1 | min_rate=${10000} | search_type=NDR
+| | phy_cores=${2} | framesize=IMIX_v4_1 | search_type=NDR
| tc16-IMIX-2t2c-1lbdpdk-dot1q-l2xcbase-eth-2vhostvr1024-1vm-pdrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2XC switching config with 2 phy cores,\
-| | ... | 1 receive queue per NIC port.
-| | ... | [Ver] Find PDR for IMIX_v4_1 framesize using binary search start at\
-| | ... | 10GE linerate, step 10kpps.
-| | ... | IMIX_v4_1 = (28x64B; 16x570B; 4x1518B)
-| | ...
| | [Tags] | IMIX | 2C | PDRDISC | SKIP_PATCH
-| | ...
-| | [Template] | Discover NDR or PDR for 1lbdpdk-dot1q-l2xcbase-eth-2vhostvr1024-1vm
-| | wt=2 | rxq=1 | framesize=IMIX_v4_1 | min_rate=${10000} | search_type=PDR
+| | phy_cores=${2} | framesize=IMIX_v4_1 | search_type=PDR
| tc17-64B-4t4c-1lbdpdk-dot1q-l2xcbase-eth-2vhostvr1024-1vm-ndrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2XC switching config with 4 phy cores,\
-| | ... | 2 receive queues per NIC port.
-| | ... | [Ver] Find NDR for 64 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 10kpps.
-| | ...
| | [Tags] | 64B | 4C | NDRDISC
-| | ...
-| | [Template] | Discover NDR or PDR for 1lbdpdk-dot1q-l2xcbase-eth-2vhostvr1024-1vm
-| | wt=4 | rxq=2 | framesize=${64} | min_rate=${10000} | search_type=NDR
+| | phy_cores=${4} | framesize=${64} | search_type=NDR
| tc18-64B-4t4c-1lbdpdk-dot1q-l2xcbase-eth-2vhostvr1024-1vm-pdrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2XC switching config with 4 phy cores,\
-| | ... | 2 receive queues per NIC port.
-| | ... | [Ver] Find PDR for 64 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 10kpps, LT=0.5%.
-| | ...
| | [Tags] | 64B | 4C | PDRDISC | SKIP_PATCH
-| | ...
-| | [Template] | Discover NDR or PDR for 1lbdpdk-dot1q-l2xcbase-eth-2vhostvr1024-1vm
-| | wt=4 | rxq=2 | framesize=${64} | min_rate=${10000} | search_type=PDR
+| | phy_cores=${4} | framesize=${64} | search_type=PDR
| tc19-1518B-4t4c-1lbdpdk-dot1q-l2xcbase-eth-2vhostvr1024-1vm-ndrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2XC switching config with 4 phy cores,\
-| | ... | 2 receive queues per NIC port.
-| | ... | [Ver] Find NDR for 1518 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 10kpps.
-| | ...
| | [Tags] | 1518B | 4C | NDRDISC | SKIP_PATCH
-| | ...
-| | [Template] | Discover NDR or PDR for 1lbdpdk-dot1q-l2xcbase-eth-2vhostvr1024-1vm
-| | wt=4 | rxq=2 | framesize=${1518} | min_rate=${10000} | search_type=NDR
+| | phy_cores=${4} | framesize=${1518} | search_type=NDR
| tc20-1518B-4t4c-1lbdpdk-dot1q-l2xcbase-eth-2vhostvr1024-1vm-pdrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2XC switching config with 4 phy cores,\
-| | ... | 2 receive queues per NIC port.
-| | ... | [Ver] Find PDR for 1518 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 10kpps, LT=0.5%.
-| | ...
| | [Tags] | 1518B | 4C | PDRDISC | SKIP_PATCH
-| | ...
-| | [Template] | Discover NDR or PDR for 1lbdpdk-dot1q-l2xcbase-eth-2vhostvr1024-1vm
-| | wt=4 | rxq=2 | framesize=${1518} | min_rate=${10000} | search_type=PDR
+| | phy_cores=${4} | framesize=${1518} | search_type=PDR
| tc21-9000B-4t4c-1lbdpdk-dot1q-l2xcbase-eth-2vhostvr1024-1vm-ndrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2XC switching config with 4 phy cores,\
-| | ... | 2 receive queues per NIC port.
-| | ... | [Ver] Find NDR for 9000 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 10kpps.
-| | ...
| | [Tags] | 9000B | 4C | NDRDISC | SKIP_PATCH
-| | ...
-| | [Template] | Discover NDR or PDR for 1lbdpdk-dot1q-l2xcbase-eth-2vhostvr1024-1vm
-| | wt=4 | rxq=2 | framesize=${9000} | min_rate=${10000} | search_type=NDR
+| | phy_cores=${4} | framesize=${9000} | search_type=NDR
| tc22-9000B-4t4c-1lbdpdk-dot1q-l2xcbase-eth-2vhostvr1024-1vm-pdrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2XC switching config with 4 phy cores,\
-| | ... | 2 receive queues per NIC port.
-| | ... | [Ver] Find PDR for 9000 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 10kpps, LT=0.5%.
-| | ...
| | [Tags] | 9000B | 4C | PDRDISC | SKIP_PATCH
-| | ...
-| | [Template] | Discover NDR or PDR for 1lbdpdk-dot1q-l2xcbase-eth-2vhostvr1024-1vm
-| | wt=4 | rxq=2 | framesize=${9000} | min_rate=${10000} | search_type=PDR
+| | phy_cores=${4} | framesize=${9000} | search_type=PDR
| tc23-IMIX-4t4c-1lbdpdk-dot1q-l2xcbase-eth-2vhostvr1024-1vm-ndrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2XC switching config with 4 phy cores,\
-| | ... | 2 receive queues per NIC port.
-| | ... | [Ver] Find NDR for IMIX_v4_1 framesize using binary search start at\
-| | ... | 10GE linerate, step 10kpps.
-| | ... | IMIX_v4_1 = (28x64B; 16x570B; 4x1518B)
-| | ...
| | [Tags] | IMIX | 4C | NDRDISC | SKIP_PATCH
-| | ...
-| | [Template] | Discover NDR or PDR for 1lbdpdk-dot1q-l2xcbase-eth-2vhostvr1024-1vm
-| | wt=4 | rxq=2 | framesize=IMIX_v4_1 | min_rate=${10000} | search_type=NDR
+| | phy_cores=${4} | framesize=IMIX_v4_1 | search_type=NDR
| tc24-IMIX-4t4c-1lbdpdk-dot1q-l2xcbase-eth-2vhostvr1024-1vm-pdrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2XC switching config with 4 phy cores,\
-| | ... | 2 receive queues per NIC port.
-| | ... | [Ver] Find PDR for IMIX_v4_1 framesize using binary search start at\
-| | ... | 10GE linerate, step 10kpps, LT=0.5%.
-| | ... | IMIX_v4_1 = (28x64B; 16x570B; 4x1518B)
-| | ...
| | [Tags] | IMIX | 4C | PDRDISC | SKIP_PATCH
-| | ...
-| | [Template] | Discover NDR or PDR for 1lbdpdk-dot1q-l2xcbase-eth-2vhostvr1024-1vm
-| | wt=4 | rxq=2 | framesize=IMIX_v4_1 | min_rate=${10000} | search_type=PDR
+| | phy_cores=${4} | framesize=IMIX_v4_1 | search_type=PDR
diff --git a/tests/vpp/perf/vm_vhost/10ge2p1x520-1lbvpplacp-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-mrr.robot b/tests/vpp/perf/vm_vhost/10ge2p1x520-1lbvpplacp-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-mrr.robot
index 7b0b7eeabe..4032a0a012 100644
--- a/tests/vpp/perf/vm_vhost/10ge2p1x520-1lbvpplacp-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-mrr.robot
+++ b/tests/vpp/perf/vm_vhost/10ge2p1x520-1lbvpplacp-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-mrr.robot
@@ -32,6 +32,8 @@
| ... | dut1_node=${dut1} | dut1_vm_refs=${dut1_vm_refs}
| ... | dut2_node=${dut2} | dut2_vm_refs=${dut2_vm_refs}
| ...
+| Test Template | Local template
+| ...
| Documentation | *Raw results L2BD test cases with vhost and vpp link bonding*
| ...
| ... | *[Top] Network Topologies:* TG-DUT1-DUT2-TG 3-node circular topology
@@ -74,16 +76,21 @@
| ${traffic_profile}= | trex-sl-3n-ethip4-ip4src254
*** Keywords ***
-| Check RR for 1lbvpp-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm
+| Local template
| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with ${wt} thread, ${wt} phy\
-| | ... | core, ${rxq} receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for ${framesize} frames using single\
+| | ... | [Cfg] DUT runs L2BD switching config.
+| | ... | Each DUT uses ${phy_cores} physical core(s) for worker threads.
+| | ... | [Ver] Measure MaxReceivedRate for ${framesize}B frames using single\
| | ... | trial throughput test.
| | ...
-| | [Arguments] | ${framesize} | ${wt} | ${rxq}
+| | ... | *Arguments:*
+| | ... | - framesize - Framesize in Bytes in integer or string (IMIX_v4_1).
+| | ... | Type: integer, string
+| | ... | - phy_cores - Number of physical cores. Type: integer
+| | ... | - rxq - Number of RX queues, default value: ${None}. Type: integer
+| | ...
+| | [Arguments] | ${framesize} | ${phy_cores} | ${rxq}=${None}
| | ...
-| | # Test Variables required for test and test teardown
| | Set Test Variable | ${framesize}
| | ${get_framesize}= | Get Frame Size | ${framesize}
| | ${max_rate}= | Calculate pps | ${s_limit}
@@ -95,7 +102,7 @@
| | ${jumbo_frames}= | Set Variable If
| | ... | ${get_framesize + ${vlan_overhead}} < ${1522} | ${False} | ${True}
| | ...
-| | Given Add '${wt}' worker threads and '${rxq}' rxqueues in 3-node single-link circular topology
+| | Given Add worker threads and rxqueues to all DUTs | ${phy_cores} | ${rxq}
| | And Add PCI devices to all DUTs
| | And Add VLAN Strip Offload switch off between DUTs in 3-node single link topology
| | And Run Keyword If | ${get_framesize + ${vlan_overhead}} < ${1522}
@@ -118,148 +125,49 @@
*** Test Cases ***
| tc01-64B-1t1c-1lbvpplacp-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with 1 phy\
-| | ... | core, 1 receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 64B frames using single\
-| | ... | trial throughput test.
-| | ...
| | [Tags] | 64B | 1C
-| | ...
-| | [Template] | Check RR for 1lbvpp-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm
-| | framesize=${64} | wt=1 | rxq=1
+| | framesize=${64} | phy_cores=${1}
| tc02-1518B-1t1c-1lbvpplacp-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with 1 phy\
-| | ... | core, 1 receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 1518B frames using single\
-| | ... | trial throughput test.
-| | ...
| | [Tags] | 1518B | 1C
-| | ...
-| | [Template] | Check RR for 1lbvpp-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm
-| | framesize=${1518} | wt=1 | rxq=1
+| | framesize=${1518} | phy_cores=${1}
| tc03-9000B-1t1c-1lbvpplacp-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with 1 phy\
-| | ... | core, 1 receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 9000B frames using single\
-| | ... | trial throughput test.
-| | ...
| | [Tags] | 9000B | 1C
-| | ...
-| | [Template] | Check RR for 1lbvpp-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm
-| | framesize=${9000} | wt=1 | rxq=1
+| | framesize=${9000} | phy_cores=${1}
| tc04-IMIX-1t1c-1lbvpplacp-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with 1 phy\
-| | ... | core, 1 receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for IMIX_v4_1 frames using single\
-| | ... | trial throughput test.
-| | ... | IMIX_v4_1 = (28x64B; 16x570B; 4x1518B)
-| | ...
| | [Tags] | IMIX | 1C
-| | ...
-| | [Template] | Check RR for 1lbvpp-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm
-| | framesize=IMIX_v4_1 | wt=1 | rxq=1
+| | framesize=IMIX_v4_1 | phy_cores=${1}
| tc05-64B-2t2c-1lbvpplacp-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with 2 phy\
-| | ... | cores, 1 receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 64B frames using single\
-| | ... | trial throughput test.
-| | ...
| | [Tags] | 64B | 2C
-| | ...
-| | [Template] | Check RR for 1lbvpp-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm
-| | framesize=${64} | wt=2 | rxq=1
+| | framesize=${64} | phy_cores=${2}
| tc06-1518B-2t2c-1lbvpplacp-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with 2 phy\
-| | ... | cores, 1 receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 1518B frames using single\
-| | ... | trial throughput test.
-| | ...
| | [Tags] | 1518B | 2C
-| | ...
-| | [Template] | Check RR for 1lbvpp-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm
-| | framesize=${1518} | wt=2 | rxq=1
+| | framesize=${1518} | phy_cores=${2}
| tc07-9000B-2t2c-1lbvpplacp-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with 2 phy\
-| | ... | cores, 1 receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 9000B frames using single\
-| | ... | trial throughput test.
-| | ...
| | [Tags] | 9000B | 2C
-| | ...
-| | [Template] | Check RR for 1lbvpp-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm
-| | framesize=${9000} | wt=2 | rxq=1
+| | framesize=${9000} | phy_cores=${2}
| tc08-IMIX-2t2c-1lbvpplacp-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with 2 phy\
-| | ... | cores, 1 receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for IMIX_v4_1 frames using single\
-| | ... | trial throughput test.
-| | ... | IMIX_v4_1 = (28x64B; 16x570B; 4x1518B)
-| | ...
| | [Tags] | IMIX | 2C
-| | ...
-| | [Template] | Check RR for 1lbvpp-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm
-| | framesize=IMIX_v4_1 | wt=2 | rxq=1
+| | framesize=IMIX_v4_1 | phy_cores=${2}
| tc09-64B-4t4c-1lbvpplacp-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with 4 phy\
-| | ... | cores, 2 receive queues per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 64B frames using single\
-| | ... | trial throughput test.
-| | ...
| | [Tags] | 64B | 4C
-| | ...
-| | [Template] | Check RR for 1lbvpp-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm
-| | framesize=${64} | wt=4 | rxq=2
+| | framesize=${64} | phy_cores=${4}
| tc10-1518B-4t4c-1lbvpplacp-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with 4 phy\
-| | ... | cores, 2 receive queues per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 1518B frames using single\
-| | ... | trial throughput test.
-| | ...
| | [Tags] | 1518B | 4C
-| | ...
-| | [Template] | Check RR for 1lbvpp-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm
-| | framesize=${1518} | wt=4 | rxq=2
+| | framesize=${1518} | phy_cores=${4}
| tc11-9000B-4t4c-1lbvpplacp-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with 4 phy\
-| | ... | cores, 2 receive queues per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 9000B frames using single\
-| | ... | trial throughput test.
-| | ...
| | [Tags] | 9000B | 4C
-| | ...
-| | [Template] | Check RR for 1lbvpp-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm
-| | framesize=${9000} | wt=4 | rxq=2
+| | framesize=${9000} | phy_cores=${4}
| tc12-IMIX-4t4c-1lbvpplacp-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with 4 phy\
-| | ... | cores, 2 receive queues per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for IMIX_v4_1 frames using single\
-| | ... | trial throughput test.
-| | ... | IMIX_v4_1 = (28x64B; 16x570B; 4x1518B)
-| | ...
| | [Tags] | IMIX | 4C
-| | ...
-| | [Template] | Check RR for 1lbvpp-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm
-| | framesize=IMIX_v4_1 | wt=4 | rxq=2
+| | framesize=IMIX_v4_1 | phy_cores=${4}
diff --git a/tests/vpp/perf/vm_vhost/10ge2p1x520-1lbvpplacp-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-ndrpdrdisc.robot b/tests/vpp/perf/vm_vhost/10ge2p1x520-1lbvpplacp-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-ndrpdrdisc.robot
index dfa87cdf06..c608565e4f 100644
--- a/tests/vpp/perf/vm_vhost/10ge2p1x520-1lbvpplacp-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-ndrpdrdisc.robot
+++ b/tests/vpp/perf/vm_vhost/10ge2p1x520-1lbvpplacp-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-ndrpdrdisc.robot
@@ -32,6 +32,8 @@
| ... | dut1_node=${dut1} | dut1_vm_refs=${dut1_vm_refs}
| ... | dut2_node=${dut2} | dut2_vm_refs=${dut2_vm_refs}
| ...
+| Test Template | Local template
+| ...
| Documentation | *RFC2544: Packet throughput L2BD test cases with vhost and
| ... | vpp link bonding*
| ...
@@ -81,16 +83,10 @@
| ${traffic_profile}= | trex-sl-3n-ethip4-ip4src254
*** Keywords ***
-| Discover NDR or PDR for 1lbvpp-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with ${wt} thread, ${wt} phy\
-| | ... | core, ${rxq} receive queue per NIC port.
-| | ... | [Ver] Discover NDR or PDR for ${framesize} frames using xxx\
-| | ... | trial throughput test.
-| | ...
-| | [Arguments] | ${wt} | ${rxq} | ${framesize} | ${min_rate} | ${search_type}
+| Local template
+| | [Arguments] | ${phy_cores} | ${framesize} | ${search_type} | ${rxq}=${None}
+| | ... | ${min_rate}=${10000}
| | ...
-| | # Test Variables required for test and test teardown
| | Set Test Variable | ${framesize}
| | Set Test Variable | ${min_rate}
| | ${get_framesize}= | Get Frame Size | ${framesize}
@@ -106,7 +102,7 @@
| | ${jumbo_frames}= | Set Variable If
| | ... | ${get_framesize + ${vlan_overhead}} < ${1522} | ${False} | ${True}
| | ...
-| | Given Add '${wt}' worker threads and '${rxq}' rxqueues in 3-node single-link circular topology
+| | Given Add worker threads and rxqueues to all DUTs | ${phy_cores} | ${rxq}
| | And Add PCI devices to all DUTs
| | And Add VLAN Strip Offload switch off between DUTs in 3-node single link topology
| | And Run Keyword If | ${get_framesize + ${vlan_overhead}} < ${1522}
@@ -136,295 +132,97 @@
*** Test Cases ***
| tc01-64B-1t1c-1lbvpplacp-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-ndrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with 1 phy core,\
-| | ... | 1 receive queue per NIC port.
-| | ... | [Ver] Find NDR for 64 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 10kpps.
-| | ...
| | [Tags] | 64B | 1C | NDRDISC
-| | ...
-| | [Template] | Discover NDR or PDR for 1lbvpp-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm
-| | wt=1 | rxq=1 | framesize=${64} | min_rate=${10000} | search_type=NDR
+| | phy_cores=${1} | framesize=${64} | search_type=NDR
| tc02-64B-1t1c-1lbvpplacp-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-pdrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with 1 phy core,\
-| | ... | 1 receive queue per NIC port.
-| | ... | [Ver] Find PDR for 64 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 10kpps, LT=0.5%.
-| | ...
| | [Tags] | 64B | 1C | PDRDISC | SKIP_PATCH
-| | ...
-| | [Template] | Discover NDR or PDR for 1lbvpp-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm
-| | wt=1 | rxq=1 | framesize=${64} | min_rate=${10000} | search_type=PDR
+| | phy_cores=${1} | framesize=${64} | search_type=PDR
| tc03-1518B-1t1c-1lbvpplacp-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-ndrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with 1 phy core,\
-| | ... | 1 receive queue per NIC port.
-| | ... | [Ver] Find NDR for 1518 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 10kpps.
-| | ...
| | [Tags] | 1518B | 1C | NDRDISC
-| | ...
-| | [Template] | Discover NDR or PDR for 1lbvpp-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm
-| | wt=1 | rxq=1 | framesize=${1518} | min_rate=${10000} | search_type=NDR
+| | phy_cores=${1} | framesize=${1518} | search_type=NDR
| tc04-1518B-1t1c-1lbvpplacp-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-pdrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with 1 phy core,\
-| | ... | 1 receive queue per NIC port.
-| | ... | [Ver] Find PDR for 1518 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 10kpps, LT=0.5%.
-| | ...
| | [Tags] | 1518B | 1C | PDRDISC | SKIP_PATCH
-| | ...
-| | [Template] | Discover NDR or PDR for 1lbvpp-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm
-| | wt=1 | rxq=1 | framesize=${1518} | min_rate=${10000} | search_type=PDR
+| | phy_cores=${1} | framesize=${1518} | search_type=PDR
| tc05-9000B-1t1c-1lbvpplacp-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-ndrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with 1 phy core,\
-| | ... | 1 receive queue per NIC port.
-| | ... | [Ver] Find NDR for 9000 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 10kpps.
-| | ...
| | [Tags] | 9000B | 1C | NDRDISC
-| | ...
-| | [Template] | Discover NDR or PDR for 1lbvpp-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm
-| | wt=1 | rxq=1 | framesize=${9000} | min_rate=${10000} | search_type=NDR
+| | phy_cores=${1} | framesize=${9000} | search_type=NDR
| tc06-9000B-1t1c-1lbvpplacp-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-pdrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with 1 phy core,\
-| | ... | 1 receive queue per NIC port.
-| | ... | [Ver] Find PDR for 9000 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 10kpps, LT=0.5%.
-| | ...
| | [Tags] | 9000B | 1C | PDRDISC | SKIP_PATCH
-| | ...
-| | [Template] | Discover NDR or PDR for 1lbvpp-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm
-| | wt=1 | rxq=1 | framesize=${9000} | min_rate=${10000} | search_type=PDR
+| | phy_cores=${1} | framesize=${9000} | search_type=PDR
| tc07-IMIX-1t1c-1lbvpplacp-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-ndrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with 1 phy core,\
-| | ... | 1 receive queue per NIC port.
-| | ... | [Ver] Find NDR for IMIX_v4_1 framesize using binary search start at\
-| | ... | 10GE linerate, step 10kpps.
-| | ... | IMIX_v4_1 = (28x64B; 16x570B; 4x1518B)
-| | ...
| | [Tags] | IMIX | 1C | NDRDISC
-| | ...
-| | [Template] | Discover NDR or PDR for 1lbvpp-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm
-| | wt=1 | rxq=1 | framesize=IMIX_v4_1 | min_rate=${10000} | search_type=NDR
+| | phy_cores=${1} | framesize=IMIX_v4_1 | search_type=NDR
| tc08-IMIX-1t1c-1lbvpplacp-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-pdrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with 1 phy core,\
-| | ... | 1 receive queue per NIC port.
-| | ... | [Ver] Find PDR for IMIX_v4_1 framesize using binary search start at\
-| | ... | 10GE linerate, step 10kpps, LT=0.5%.
-| | ... | IMIX_v4_1 = (28x64B; 16x570B; 4x1518B)
-| | ...
| | [Tags] | IMIX | 1C | PDRDISC | SKIP_PATCH
-| | ...
-| | [Template] | Discover NDR or PDR for 1lbvpp-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm
-| | wt=1 | rxq=1 | framesize=IMIX_v4_1 | min_rate=${10000} | search_type=PDR
+| | phy_cores=${1} | framesize=IMIX_v4_1 | search_type=PDR
| tc09-64B-2t2c-1lbvpplacp-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-ndrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with 2 phy cores,\
-| | ... | 1 receive queue per NIC port.
-| | ... | [Ver] Find NDR for 64 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 10kpps.
-| | ...
| | [Tags] | 64B | 2C | NDRDISC
-| | ...
-| | [Template] | Discover NDR or PDR for 1lbvpp-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm
-| | wt=2 | rxq=1 | framesize=${64} | min_rate=${10000} | search_type=NDR
+| | phy_cores=${2} | framesize=${64} | search_type=NDR
| tc10-64B-2t2c-1lbvpplacp-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-pdrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with 2 phy cores,\
-| | ... | 1 receive queue per NIC port.
-| | ... | [Ver] Find PDR for 64 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 10kpps, LT=0.5%.
-| | ...
| | [Tags] | 64B | 2C | PDRDISC | SKIP_PATCH
-| | ...
-| | [Template] | Discover NDR or PDR for 1lbvpp-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm
-| | wt=2 | rxq=1 | framesize=${64} | min_rate=${10000} | search_type=PDR
+| | phy_cores=${2} | framesize=${64} | search_type=PDR
| tc11-1518B-2t2c-1lbvpplacp-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-ndrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with 2 phy cores,\
-| | ... | 1 receive queue per NIC port.
-| | ... | [Ver] Find NDR for 1518 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 10kpps.
-| | ...
| | [Tags] | 1518B | 2C | NDRDISC | SKIP_PATCH
-| | ...
-| | [Template] | Discover NDR or PDR for 1lbvpp-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm
-| | wt=2 | rxq=1 | framesize=${1518} | min_rate=${10000} | search_type=NDR
+| | phy_cores=${2} | framesize=${1518} | search_type=NDR
| tc12-1518B-2t2c-1lbvpplacp-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-pdrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with 2 phy cores,\
-| | ... | 1 receive queue per NIC port.
-| | ... | [Ver] Find PDR for 1518 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 10kpps, LT=0.5%.
-| | ...
| | [Tags] | 1518B | 2C | PDRDISC | SKIP_PATCH
-| | ...
-| | [Template] | Discover NDR or PDR for 1lbvpp-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm
-| | wt=2 | rxq=1 | framesize=${1518} | min_rate=${10000} | search_type=PDR
+| | phy_cores=${2} | framesize=${1518} | search_type=PDR
| tc13-9000B-2t2c-1lbvpplacp-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-ndrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with 2 phy cores,\
-| | ... | 1 receive queue per NIC port.
-| | ... | [Ver] Find NDR for 9000 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 10kpps.
-| | ...
| | [Tags] | 9000B | 2C | NDRDISC | SKIP_PATCH
-| | ...
-| | [Template] | Discover NDR or PDR for 1lbvpp-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm
-| | wt=2 | rxq=1 | framesize=${9000} | min_rate=${10000} | search_type=NDR
+| | phy_cores=${2} | framesize=${9000} | search_type=NDR
| tc14-9000B-2t2c-1lbvpplacp-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-pdrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with 2 phy cores,\
-| | ... | 1 receive queue per NIC port.
-| | ... | [Ver] Find PDR for 9000 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 10kpps, LT=0.5%.
-| | ...
| | [Tags] | 9000B | 2C | PDRDISC | SKIP_PATCH
-| | ...
-| | [Template] | Discover NDR or PDR for 1lbvpp-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm
-| | wt=2 | rxq=1 | framesize=${9000} | min_rate=${10000} | search_type=PDR
+| | phy_cores=${2} | framesize=${9000} | search_type=PDR
| tc15-IMIX-2t2c-1lbvpplacp-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-ndrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with 2 phy cores,\
-| | ... | 1 receive queue per NIC port.
-| | ... | [Ver] Find NDR for IMIX_v4_1 framesize using binary search start at\
-| | ... | 10GE linerate, step 10kpps.
-| | ... | IMIX_v4_1 = (28x64B; 16x570B; 4x1518B)
-| | ...
| | [Tags] | IMIX | 2C | NDRDISC | SKIP_PATCH
-| | ...
-| | [Template] | Discover NDR or PDR for 1lbvpp-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm
-| | wt=2 | rxq=1 | framesize=IMIX_v4_1 | min_rate=${10000} | search_type=NDR
+| | phy_cores=${2} | framesize=IMIX_v4_1 | search_type=NDR
| tc16-IMIX-2t2c-1lbvpplacp-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-pdrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with 2 phy cores,\
-| | ... | 1 receive queue per NIC port.
-| | ... | [Ver] Find PDR for IMIX_v4_1 framesize using binary search start at\
-| | ... | 10GE linerate, step 10kpps.
-| | ... | IMIX_v4_1 = (28x64B; 16x570B; 4x1518B)
-| | ...
| | [Tags] | IMIX | 2C | PDRDISC | SKIP_PATCH
-| | ...
-| | [Template] | Discover NDR or PDR for 1lbvpp-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm
-| | wt=2 | rxq=1 | framesize=IMIX_v4_1 | min_rate=${10000} | search_type=PDR
+| | phy_cores=${2} | framesize=IMIX_v4_1 | search_type=PDR
| tc17-64B-4t4c-1lbvpplacp-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-ndrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with 4 phy cores,\
-| | ... | 2 receive queues per NIC port.
-| | ... | [Ver] Find NDR for 64 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 10kpps.
-| | ...
| | [Tags] | 64B | 4C | NDRDISC
-| | ...
-| | [Template] | Discover NDR or PDR for 1lbvpp-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm
-| | wt=4 | rxq=2 | framesize=${64} | min_rate=${10000} | search_type=NDR
+| | phy_cores=${4} | framesize=${64} | search_type=NDR
| tc18-64B-4t4c-1lbvpplacp-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-pdrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with 4 phy cores,\
-| | ... | 2 receive queues per NIC port.
-| | ... | [Ver] Find PDR for 64 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 10kpps, LT=0.5%.
-| | ...
| | [Tags] | 64B | 4C | PDRDISC | SKIP_PATCH
-| | ...
-| | [Template] | Discover NDR or PDR for 1lbvpp-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm
-| | wt=4 | rxq=2 | framesize=${64} | min_rate=${10000} | search_type=PDR
+| | phy_cores=${4} | framesize=${64} | search_type=PDR
| tc19-1518B-4t4c-1lbvpplacp-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-ndrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with 4 phy cores,\
-| | ... | 2 receive queues per NIC port.
-| | ... | [Ver] Find NDR for 1518 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 10kpps.
-| | ...
| | [Tags] | 1518B | 4C | NDRDISC | SKIP_PATCH
-| | ...
-| | [Template] | Discover NDR or PDR for 1lbvpp-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm
-| | wt=4 | rxq=2 | framesize=${1518} | min_rate=${10000} | search_type=NDR
+| | phy_cores=${4} | framesize=${1518} | search_type=NDR
| tc20-1518B-4t4c-1lbvpplacp-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-pdrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with 4 phy cores,\
-| | ... | 2 receive queues per NIC port.
-| | ... | [Ver] Find PDR for 1518 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 10kpps, LT=0.5%.
-| | ...
| | [Tags] | 1518B | 4C | PDRDISC | SKIP_PATCH
-| | ...
-| | [Template] | Discover NDR or PDR for 1lbvpp-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm
-| | wt=4 | rxq=2 | framesize=${1518} | min_rate=${10000} | search_type=PDR
+| | phy_cores=${4} | framesize=${1518} | search_type=PDR
| tc21-9000B-4t4c-1lbvpplacp-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-ndrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with 4 phy cores,\
-| | ... | 2 receive queues per NIC port.
-| | ... | [Ver] Find NDR for 9000 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 10kpps.
-| | ...
| | [Tags] | 9000B | 4C | NDRDISC | SKIP_PATCH
-| | ...
-| | [Template] | Discover NDR or PDR for 1lbvpp-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm
-| | wt=4 | rxq=2 | framesize=${9000} | min_rate=${10000} | search_type=NDR
+| | phy_cores=${4} | framesize=${9000} | search_type=NDR
| tc22-9000B-4t4c-1lbvpplacp-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-pdrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with 4 phy cores,\
-| | ... | 2 receive queues per NIC port.
-| | ... | [Ver] Find PDR for 9000 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 10kpps, LT=0.5%.
-| | ...
| | [Tags] | 9000B | 4C | PDRDISC | SKIP_PATCH
-| | ...
-| | [Template] | Discover NDR or PDR for 1lbvpp-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm
-| | wt=4 | rxq=2 | framesize=${9000} | min_rate=${10000} | search_type=PDR
+| | phy_cores=${4} | framesize=${9000} | search_type=PDR
| tc23-IMIX-4t4c-1lbvpplacp-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-ndrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with 4 phy cores,\
-| | ... | 2 receive queues per NIC port.
-| | ... | [Ver] Find NDR for IMIX_v4_1 framesize using binary search start at\
-| | ... | 10GE linerate, step 10kpps.
-| | ... | IMIX_v4_1 = (28x64B; 16x570B; 4x1518B)
-| | ...
| | [Tags] | IMIX | 4C | NDRDISC | SKIP_PATCH
-| | ...
-| | [Template] | Discover NDR or PDR for 1lbvpp-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm
-| | wt=4 | rxq=2 | framesize=IMIX_v4_1 | min_rate=${10000} | search_type=NDR
+| | phy_cores=${4} | framesize=IMIX_v4_1 | search_type=NDR
| tc24-IMIX-4t4c-1lbvpplacp-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-pdrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with 4 phy cores,\
-| | ... | 2 receive queues per NIC port.
-| | ... | [Ver] Find PDR for IMIX_v4_1 framesize using binary search start at\
-| | ... | 10GE linerate, step 10kpps, LT=0.5%.
-| | ... | IMIX_v4_1 = (28x64B; 16x570B; 4x1518B)
-| | ...
| | [Tags] | IMIX | 4C | PDRDISC | SKIP_PATCH
-| | ...
-| | [Template] | Discover NDR or PDR for 1lbvpp-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm
-| | wt=4 | rxq=2 | framesize=IMIX_v4_1 | min_rate=${10000} | search_type=PDR
+| | phy_cores=${4} | framesize=IMIX_v4_1 | search_type=PDR
diff --git a/tests/vpp/perf/vm_vhost/10ge2p1x520-1lbvpplacp-dot1q-l2xcbase-eth-2vhostvr1024-1vm-mrr.robot b/tests/vpp/perf/vm_vhost/10ge2p1x520-1lbvpplacp-dot1q-l2xcbase-eth-2vhostvr1024-1vm-mrr.robot
index 1970f1a731..4a7ffd3735 100644
--- a/tests/vpp/perf/vm_vhost/10ge2p1x520-1lbvpplacp-dot1q-l2xcbase-eth-2vhostvr1024-1vm-mrr.robot
+++ b/tests/vpp/perf/vm_vhost/10ge2p1x520-1lbvpplacp-dot1q-l2xcbase-eth-2vhostvr1024-1vm-mrr.robot
@@ -31,6 +31,8 @@
| ... | dut1_node=${dut1} | dut1_vm_refs=${dut1_vm_refs}
| ... | dut2_node=${dut2} | dut2_vm_refs=${dut2_vm_refs}
| ...
+| Test Template | Local template
+| ...
| Documentation | *Raw results L2XC test cases with vhost and vpp link bonding*
| ...
| ... | *[Top] Network Topologies:* TG-DUT1-DUT2-TG 3-node circular topology
@@ -71,16 +73,21 @@
| ${traffic_profile}= | trex-sl-3n-ethip4-ip4src254
*** Keywords ***
-| Check RR for 1lbvpp-dot1q-l2xcbase-eth-2vhostvr1024-1vm
+| Local template
| | [Documentation]
-| | ... | [Cfg] DUT runs L2XC switching config with ${wt} thread, ${wt} phy\
-| | ... | core, ${rxq} receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for ${framesize} frames using single\
+| | ... | [Cfg] DUT runs L2XC switching config.
+| | ... | Each DUT uses ${phy_cores} physical core(s) for worker threads.
+| | ... | [Ver] Measure MaxReceivedRate for ${framesize}B frames using single\
| | ... | trial throughput test.
| | ...
-| | [Arguments] | ${framesize} | ${wt} | ${rxq}
+| | ... | *Arguments:*
+| | ... | - framesize - Framesize in Bytes in integer or string (IMIX_v4_1).
+| | ... | Type: integer, string
+| | ... | - phy_cores - Number of physical cores. Type: integer
+| | ... | - rxq - Number of RX queues, default value: ${None}. Type: integer
+| | ...
+| | [Arguments] | ${framesize} | ${phy_cores} | ${rxq}=${None}
| | ...
-| | # Test Variables required for test and test teardown
| | Set Test Variable | ${framesize}
| | ${get_framesize}= | Get Frame Size | ${framesize}
| | ${max_rate}= | Calculate pps | ${s_limit}
@@ -92,7 +99,7 @@
| | ${jumbo_frames}= | Set Variable If
| | ... | ${get_framesize + ${vlan_overhead}} < ${1522} | ${False} | ${True}
| | ...
-| | Given Add '${wt}' worker threads and '${rxq}' rxqueues in 3-node single-link circular topology
+| | Given Add worker threads and rxqueues to all DUTs | ${phy_cores} | ${rxq}
| | And Add PCI devices to all DUTs
| | And Add VLAN Strip Offload switch off between DUTs in 3-node single link topology
| | And Run Keyword If | ${get_framesize + ${vlan_overhead}} < ${1522}
@@ -115,148 +122,49 @@
*** Test Cases ***
| tc01-64B-1t1c-1lbvpplacp-dot1q-l2xcbase-eth-2vhostvr1024-1vm-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2XC switching config with 1 phy\
-| | ... | core, 1 receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 64B frames using single\
-| | ... | trial throughput test.
-| | ...
| | [Tags] | 64B | 1C
-| | ...
-| | [Template] | Check RR for 1lbvpp-dot1q-l2xcbase-eth-2vhostvr1024-1vm
-| | framesize=${64} | wt=1 | rxq=1
+| | framesize=${64} | phy_cores=${1}
| tc02-1518B-1t1c-1lbvpplacp-dot1q-l2xcbase-eth-2vhostvr1024-1vm-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2XC switching config with 1 phy\
-| | ... | core, 1 receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 1518B frames using single\
-| | ... | trial throughput test.
-| | ...
| | [Tags] | 1518B | 1C
-| | ...
-| | [Template] | Check RR for 1lbvpp-dot1q-l2xcbase-eth-2vhostvr1024-1vm
-| | framesize=${1518} | wt=1 | rxq=1
+| | framesize=${1518} | phy_cores=${1}
| tc03-9000B-1t1c-1lbvpplacp-dot1q-l2xcbase-eth-2vhostvr1024-1vm-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2XC switching config with 1 phy\
-| | ... | core, 1 receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 9000B frames using single\
-| | ... | trial throughput test.
-| | ...
| | [Tags] | 9000B | 1C
-| | ...
-| | [Template] | Check RR for 1lbvpp-dot1q-l2xcbase-eth-2vhostvr1024-1vm
-| | framesize=${9000} | wt=1 | rxq=1
+| | framesize=${9000} | phy_cores=${1}
| tc04-IMIX-1t1c-1lbvpplacp-dot1q-l2xcbase-eth-2vhostvr1024-1vm-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2XC switching config with 1 phy\
-| | ... | core, 1 receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for IMIX_v4_1 frames using single\
-| | ... | trial throughput test.
-| | ... | IMIX_v4_1 = (28x64B; 16x570B; 4x1518B)
-| | ...
| | [Tags] | IMIX | 1C
-| | ...
-| | [Template] | Check RR for 1lbvpp-dot1q-l2xcbase-eth-2vhostvr1024-1vm
-| | framesize=IMIX_v4_1 | wt=1 | rxq=1
+| | framesize=IMIX_v4_1 | phy_cores=${1}
| tc05-64B-2t2c-1lbvpplacp-dot1q-l2xcbase-eth-2vhostvr1024-1vm-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2XC switching config with 2 phy\
-| | ... | cores, 1 receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 64B frames using single\
-| | ... | trial throughput test.
-| | ...
| | [Tags] | 64B | 2C
-| | ...
-| | [Template] | Check RR for 1lbvpp-dot1q-l2xcbase-eth-2vhostvr1024-1vm
-| | framesize=${64} | wt=2 | rxq=1
+| | framesize=${64} | phy_cores=${2}
| tc06-1518B-2t2c-1lbvpplacp-dot1q-l2xcbase-eth-2vhostvr1024-1vm-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2XC switching config with 2 phy\
-| | ... | cores, 1 receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 1518B frames using single\
-| | ... | trial throughput test.
-| | ...
| | [Tags] | 1518B | 2C
-| | ...
-| | [Template] | Check RR for 1lbvpp-dot1q-l2xcbase-eth-2vhostvr1024-1vm
-| | framesize=${1518} | wt=2 | rxq=1
+| | framesize=${1518} | phy_cores=${2}
| tc07-9000B-2t2c-1lbvpplacp-dot1q-l2xcbase-eth-2vhostvr1024-1vm-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2XC switching config with 2 phy\
-| | ... | cores, 1 receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 9000B frames using single\
-| | ... | trial throughput test.
-| | ...
| | [Tags] | 9000B | 2C
-| | ...
-| | [Template] | Check RR for 1lbvpp-dot1q-l2xcbase-eth-2vhostvr1024-1vm
-| | framesize=${9000} | wt=2 | rxq=1
+| | framesize=${9000} | phy_cores=${2}
| tc08-IMIX-2t2c-1lbvpplacp-dot1q-l2xcbase-eth-2vhostvr1024-1vm-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2XC switching config with 2 phy\
-| | ... | cores, 1 receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for IMIX_v4_1 frames using single\
-| | ... | trial throughput test.
-| | ... | IMIX_v4_1 = (28x64B; 16x570B; 4x1518B)
-| | ...
| | [Tags] | IMIX | 2C
-| | ...
-| | [Template] | Check RR for 1lbvpp-dot1q-l2xcbase-eth-2vhostvr1024-1vm
-| | framesize=IMIX_v4_1 | wt=2 | rxq=1
+| | framesize=IMIX_v4_1 | phy_cores=${2}
| tc09-64B-4t4c-1lbvpplacp-dot1q-l2xcbase-eth-2vhostvr1024-1vm-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2XC switching config with 4 phy\
-| | ... | cores, 2 receive queues per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 64B frames using single\
-| | ... | trial throughput test.
-| | ...
| | [Tags] | 64B | 4C
-| | ...
-| | [Template] | Check RR for 1lbvpp-dot1q-l2xcbase-eth-2vhostvr1024-1vm
-| | framesize=${64} | wt=4 | rxq=2
+| | framesize=${64} | phy_cores=${4}
| tc10-1518B-4t4c-1lbvpplacp-dot1q-l2xcbase-eth-2vhostvr1024-1vm-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2XC switching config with 4 phy\
-| | ... | cores, 2 receive queues per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 1518B frames using single\
-| | ... | trial throughput test.
-| | ...
| | [Tags] | 1518B | 4C
-| | ...
-| | [Template] | Check RR for 1lbvpp-dot1q-l2xcbase-eth-2vhostvr1024-1vm
-| | framesize=${1518} | wt=4 | rxq=2
+| | framesize=${1518} | phy_cores=${4}
| tc11-9000B-4t4c-1lbvpplacp-dot1q-l2xcbase-eth-2vhostvr1024-1vm-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2XC switching config with 4 phy\
-| | ... | cores, 2 receive queues per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 9000B frames using single\
-| | ... | trial throughput test.
-| | ...
| | [Tags] | 9000B | 4C
-| | ...
-| | [Template] | Check RR for 1lbvpp-dot1q-l2xcbase-eth-2vhostvr1024-1vm
-| | framesize=${9000} | wt=4 | rxq=2
+| | framesize=${9000} | phy_cores=${4}
| tc12-IMIX-4t4c-1lbvpplacp-dot1q-l2xcbase-eth-2vhostvr1024-1vm-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2XC switching config with 4 phy\
-| | ... | cores, 2 receive queues per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for IMIX_v4_1 frames using single\
-| | ... | trial throughput test.
-| | ... | IMIX_v4_1 = (28x64B; 16x570B; 4x1518B)
-| | ...
| | [Tags] | IMIX | 4C
-| | ...
-| | [Template] | Check RR for 1lbvpp-dot1q-l2xcbase-eth-2vhostvr1024-1vm
-| | framesize=IMIX_v4_1 | wt=4 | rxq=2
+| | framesize=IMIX_v4_1 | phy_cores=${4}
diff --git a/tests/vpp/perf/vm_vhost/10ge2p1x520-1lbvpplacp-dot1q-l2xcbase-eth-2vhostvr1024-1vm-ndrpdrdisc.robot b/tests/vpp/perf/vm_vhost/10ge2p1x520-1lbvpplacp-dot1q-l2xcbase-eth-2vhostvr1024-1vm-ndrpdrdisc.robot
index 680be414bb..a42443ce5d 100644
--- a/tests/vpp/perf/vm_vhost/10ge2p1x520-1lbvpplacp-dot1q-l2xcbase-eth-2vhostvr1024-1vm-ndrpdrdisc.robot
+++ b/tests/vpp/perf/vm_vhost/10ge2p1x520-1lbvpplacp-dot1q-l2xcbase-eth-2vhostvr1024-1vm-ndrpdrdisc.robot
@@ -32,6 +32,8 @@
| ... | dut1_node=${dut1} | dut1_vm_refs=${dut1_vm_refs}
| ... | dut2_node=${dut2} | dut2_vm_refs=${dut2_vm_refs}
| ...
+| Test Template | Local template
+| ...
| Documentation | *RFC2544: Packet throughput L2XC test cases with vhost and
| ... | vpp link bonding*
| ...
@@ -81,16 +83,10 @@
| ${traffic_profile}= | trex-sl-3n-ethip4-ip4src254
*** Keywords ***
-| Discover NDR or PDR for 1lbvpp-dot1q-l2xcbase-eth-2vhostvr1024-1vm
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2XC switching config with ${wt} thread, ${wt} phy\
-| | ... | core, ${rxq} receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for ${framesize} frames using single\
-| | ... | trial throughput test.
-| | ...
-| | [Arguments] | ${wt} | ${rxq} | ${framesize} | ${min_rate} | ${search_type}
+| Local template
+| | [Arguments] | ${phy_cores} | ${framesize} | ${search_type} | ${rxq}=${None}
+| | ... | ${min_rate}=${10000}
| | ...
-| | # Test Variables required for test and test teardown
| | Set Test Variable | ${framesize}
| | Set Test Variable | ${min_rate}
| | ${get_framesize}= | Get Frame Size | ${framesize}
@@ -106,7 +102,7 @@
| | ${jumbo_frames}= | Set Variable If
| | ... | ${get_framesize + ${vlan_overhead}} < ${1522} | ${False} | ${True}
| | ...
-| | Given Add '${wt}' worker threads and '${rxq}' rxqueues in 3-node single-link circular topology
+| | Given Add worker threads and rxqueues to all DUTs | ${phy_cores} | ${rxq}
| | And Add PCI devices to all DUTs
| | And Add VLAN Strip Offload switch off between DUTs in 3-node single link topology
| | And Run Keyword If | ${get_framesize + ${vlan_overhead}} < ${1522}
@@ -136,295 +132,97 @@
*** Test Cases ***
| tc01-64B-1t1c-1lbvpplacp-dot1q-l2xcbase-eth-2vhostvr1024-1vm-ndrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2XC switching config with 1 phy core,\
-| | ... | 1 receive queue per NIC port.
-| | ... | [Ver] Find NDR for 64 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 10kpps.
-| | ...
| | [Tags] | 64B | 1C | NDRDISC
-| | ...
-| | [Template] | Discover NDR or PDR for 1lbvpp-dot1q-l2xcbase-eth-2vhostvr1024-1vm
-| | wt=1 | rxq=1 | framesize=${64} | min_rate=${10000} | search_type=NDR
+| | phy_cores=${1} | framesize=${64} | search_type=NDR
| tc02-64B-1t1c-1lbvpplacp-dot1q-l2xcbase-eth-2vhostvr1024-1vm-pdrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2XC switching config with 1 phy core,\
-| | ... | 1 receive queue per NIC port.
-| | ... | [Ver] Find PDR for 64 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 10kpps, LT=0.5%.
-| | ...
| | [Tags] | 64B | 1C | PDRDISC | SKIP_PATCH
-| | ...
-| | [Template] | Discover NDR or PDR for 1lbvpp-dot1q-l2xcbase-eth-2vhostvr1024-1vm
-| | wt=1 | rxq=1 | framesize=${64} | min_rate=${10000} | search_type=PDR
+| | phy_cores=${1} | framesize=${64} | search_type=PDR
| tc03-1518B-1t1c-1lbvpplacp-dot1q-l2xcbase-eth-2vhostvr1024-1vm-ndrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2XC switching config with 1 phy core,\
-| | ... | 1 receive queue per NIC port.
-| | ... | [Ver] Find NDR for 1518 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 10kpps.
-| | ...
| | [Tags] | 1518B | 1C | NDRDISC
-| | ...
-| | [Template] | Discover NDR or PDR for 1lbvpp-dot1q-l2xcbase-eth-2vhostvr1024-1vm
-| | wt=1 | rxq=1 | framesize=${1518} | min_rate=${10000} | search_type=NDR
+| | phy_cores=${1} | framesize=${1518} | search_type=NDR
| tc04-1518B-1t1c-1lbvpplacp-dot1q-l2xcbase-eth-2vhostvr1024-1vm-pdrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2XC switching config with 1 phy core,\
-| | ... | 1 receive queue per NIC port.
-| | ... | [Ver] Find PDR for 1518 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 10kpps, LT=0.5%.
-| | ...
| | [Tags] | 1518B | 1C | PDRDISC | SKIP_PATCH
-| | ...
-| | [Template] | Discover NDR or PDR for 1lbvpp-dot1q-l2xcbase-eth-2vhostvr1024-1vm
-| | wt=1 | rxq=1 | framesize=${1518} | min_rate=${10000} | search_type=PDR
+| | phy_cores=${1} | framesize=${1518} | search_type=PDR
| tc05-9000B-1t1c-1lbvpplacp-dot1q-l2xcbase-eth-2vhostvr1024-1vm-ndrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2XC switching config with 1 phy core,\
-| | ... | 1 receive queue per NIC port.
-| | ... | [Ver] Find NDR for 9000 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 10kpps.
-| | ...
| | [Tags] | 9000B | 1C | NDRDISC
-| | ...
-| | [Template] | Discover NDR or PDR for 1lbvpp-dot1q-l2xcbase-eth-2vhostvr1024-1vm
-| | wt=1 | rxq=1 | framesize=${9000} | min_rate=${10000} | search_type=NDR
+| | phy_cores=${1} | framesize=${9000} | search_type=NDR
| tc06-9000B-1t1c-1lbvpplacp-dot1q-l2xcbase-eth-2vhostvr1024-1vm-pdrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2XC switching config with 1 phy core,\
-| | ... | 1 receive queue per NIC port.
-| | ... | [Ver] Find PDR for 9000 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 10kpps, LT=0.5%.
-| | ...
| | [Tags] | 9000B | 1C | PDRDISC | SKIP_PATCH
-| | ...
-| | [Template] | Discover NDR or PDR for 1lbvpp-dot1q-l2xcbase-eth-2vhostvr1024-1vm
-| | wt=1 | rxq=1 | framesize=${9000} | min_rate=${10000} | search_type=PDR
+| | phy_cores=${1} | framesize=${9000} | search_type=PDR
| tc07-IMIX-1t1c-1lbvpplacp-dot1q-l2xcbase-eth-2vhostvr1024-1vm-ndrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2XC switching config with 1 phy core,\
-| | ... | 1 receive queue per NIC port.
-| | ... | [Ver] Find NDR for IMIX_v4_1 framesize using binary search start at\
-| | ... | 10GE linerate, step 10kpps.
-| | ... | IMIX_v4_1 = (28x64B; 16x570B; 4x1518B)
-| | ...
| | [Tags] | IMIX | 1C | NDRDISC
-| | ...
-| | [Template] | Discover NDR or PDR for 1lbvpp-dot1q-l2xcbase-eth-2vhostvr1024-1vm
-| | wt=1 | rxq=1 | framesize=IMIX_v4_1 | min_rate=${10000} | search_type=NDR
+| | phy_cores=${1} | framesize=IMIX_v4_1 | search_type=NDR
| tc08-IMIX-1t1c-1lbvpplacp-dot1q-l2xcbase-eth-2vhostvr1024-1vm-pdrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2XC switching config with 1 phy core,\
-| | ... | 1 receive queue per NIC port.
-| | ... | [Ver] Find PDR for IMIX_v4_1 framesize using binary search start at\
-| | ... | 10GE linerate, step 10kpps, LT=0.5%.
-| | ... | IMIX_v4_1 = (28x64B; 16x570B; 4x1518B)
-| | ...
| | [Tags] | IMIX | 1C | PDRDISC | SKIP_PATCH
-| | ...
-| | [Template] | Discover NDR or PDR for 1lbvpp-dot1q-l2xcbase-eth-2vhostvr1024-1vm
-| | wt=1 | rxq=1 | framesize=IMIX_v4_1 | min_rate=${10000} | search_type=PDR
+| | phy_cores=${1} | framesize=IMIX_v4_1 | search_type=PDR
| tc09-64B-2t2c-1lbvpplacp-dot1q-l2xcbase-eth-2vhostvr1024-1vm-ndrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2XC switching config with 2 phy cores,\
-| | ... | 1 receive queue per NIC port.
-| | ... | [Ver] Find NDR for 64 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 10kpps.
-| | ...
| | [Tags] | 64B | 2C | NDRDISC
-| | ...
-| | [Template] | Discover NDR or PDR for 1lbvpp-dot1q-l2xcbase-eth-2vhostvr1024-1vm
-| | wt=2 | rxq=1 | framesize=${64} | min_rate=${10000} | search_type=NDR
+| | phy_cores=${2} | framesize=${64} | search_type=NDR
| tc10-64B-2t2c-1lbvpplacp-dot1q-l2xcbase-eth-2vhostvr1024-1vm-pdrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2XC switching config with 2 phy cores,\
-| | ... | 1 receive queue per NIC port.
-| | ... | [Ver] Find PDR for 64 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 10kpps, LT=0.5%.
-| | ...
| | [Tags] | 64B | 2C | PDRDISC | SKIP_PATCH
-| | ...
-| | [Template] | Discover NDR or PDR for 1lbvpp-dot1q-l2xcbase-eth-2vhostvr1024-1vm
-| | wt=2 | rxq=1 | framesize=${64} | min_rate=${10000} | search_type=PDR
+| | phy_cores=${2} | framesize=${64} | search_type=PDR
| tc11-1518B-2t2c-1lbvpplacp-dot1q-l2xcbase-eth-2vhostvr1024-1vm-ndrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2XC switching config with 2 phy cores,\
-| | ... | 1 receive queue per NIC port.
-| | ... | [Ver] Find NDR for 1518 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 10kpps.
-| | ...
| | [Tags] | 1518B | 2C | NDRDISC | SKIP_PATCH
-| | ...
-| | [Template] | Discover NDR or PDR for 1lbvpp-dot1q-l2xcbase-eth-2vhostvr1024-1vm
-| | wt=2 | rxq=1 | framesize=${1518} | min_rate=${10000} | search_type=NDR
+| | phy_cores=${2} | framesize=${1518} | search_type=NDR
| tc12-1518B-2t2c-1lbvpplacp-dot1q-l2xcbase-eth-2vhostvr1024-1vm-pdrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2XC switching config with 2 phy cores,\
-| | ... | 1 receive queue per NIC port.
-| | ... | [Ver] Find PDR for 1518 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 10kpps, LT=0.5%.
-| | ...
| | [Tags] | 1518B | 2C | PDRDISC | SKIP_PATCH
-| | ...
-| | [Template] | Discover NDR or PDR for 1lbvpp-dot1q-l2xcbase-eth-2vhostvr1024-1vm
-| | wt=2 | rxq=1 | framesize=${1518} | min_rate=${10000} | search_type=PDR
+| | phy_cores=${2} | framesize=${1518} | search_type=PDR
| tc13-9000B-2t2c-1lbvpplacp-dot1q-l2xcbase-eth-2vhostvr1024-1vm-ndrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2XC switching config with 2 phy cores,\
-| | ... | 1 receive queue per NIC port.
-| | ... | [Ver] Find NDR for 9000 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 10kpps.
-| | ...
| | [Tags] | 9000B | 2C | NDRDISC | SKIP_PATCH
-| | ...
-| | [Template] | Discover NDR or PDR for 1lbvpp-dot1q-l2xcbase-eth-2vhostvr1024-1vm
-| | wt=2 | rxq=1 | framesize=${9000} | min_rate=${10000} | search_type=NDR
+| | phy_cores=${2} | framesize=${9000} | search_type=NDR
| tc14-9000B-2t2c-1lbvpplacp-dot1q-l2xcbase-eth-2vhostvr1024-1vm-pdrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2XC switching config with 2 phy cores,\
-| | ... | 1 receive queue per NIC port.
-| | ... | [Ver] Find PDR for 9000 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 10kpps, LT=0.5%.
-| | ...
| | [Tags] | 9000B | 2C | PDRDISC | SKIP_PATCH
-| | ...
-| | [Template] | Discover NDR or PDR for 1lbvpp-dot1q-l2xcbase-eth-2vhostvr1024-1vm
-| | wt=2 | rxq=1 | framesize=${9000} | min_rate=${10000} | search_type=PDR
+| | phy_cores=${2} | framesize=${9000} | search_type=PDR
| tc15-IMIX-2t2c-1lbvpplacp-dot1q-l2xcbase-eth-2vhostvr1024-1vm-ndrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2XC switching config with 2 phy cores,\
-| | ... | 1 receive queue per NIC port.
-| | ... | [Ver] Find NDR for IMIX_v4_1 framesize using binary search start at\
-| | ... | 10GE linerate, step 10kpps.
-| | ... | IMIX_v4_1 = (28x64B; 16x570B; 4x1518B)
-| | ...
| | [Tags] | IMIX | 2C | NDRDISC | SKIP_PATCH
-| | ...
-| | [Template] | Discover NDR or PDR for 1lbvpp-dot1q-l2xcbase-eth-2vhostvr1024-1vm
-| | wt=2 | rxq=1 | framesize=IMIX_v4_1 | min_rate=${10000} | search_type=NDR
+| | phy_cores=${2} | framesize=IMIX_v4_1 | search_type=NDR
| tc16-IMIX-2t2c-1lbvpplacp-dot1q-l2xcbase-eth-2vhostvr1024-1vm-pdrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2XC switching config with 2 phy cores,\
-| | ... | 1 receive queue per NIC port.
-| | ... | [Ver] Find PDR for IMIX_v4_1 framesize using binary search start at\
-| | ... | 10GE linerate, step 10kpps.
-| | ... | IMIX_v4_1 = (28x64B; 16x570B; 4x1518B)
-| | ...
| | [Tags] | IMIX | 2C | PDRDISC | SKIP_PATCH
-| | ...
-| | [Template] | Discover NDR or PDR for 1lbvpp-dot1q-l2xcbase-eth-2vhostvr1024-1vm
-| | wt=2 | rxq=1 | framesize=IMIX_v4_1 | min_rate=${10000} | search_type=PDR
+| | phy_cores=${2} | framesize=IMIX_v4_1 | search_type=PDR
| tc17-64B-4t4c-1lbvpplacp-dot1q-l2xcbase-eth-2vhostvr1024-1vm-ndrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2XC switching config with 4 phy cores,\
-| | ... | 2 receive queues per NIC port.
-| | ... | [Ver] Find NDR for 64 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 10kpps.
-| | ...
| | [Tags] | 64B | 4C | NDRDISC
-| | ...
-| | [Template] | Discover NDR or PDR for 1lbvpp-dot1q-l2xcbase-eth-2vhostvr1024-1vm
-| | wt=4 | rxq=2 | framesize=${64} | min_rate=${10000} | search_type=NDR
+| | phy_cores=${4} | framesize=${64} | search_type=NDR
| tc18-64B-4t4c-1lbvpplacp-dot1q-l2xcbase-eth-2vhostvr1024-1vm-pdrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2XC switching config with 4 phy cores,\
-| | ... | 2 receive queues per NIC port.
-| | ... | [Ver] Find PDR for 64 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 10kpps, LT=0.5%.
-| | ...
| | [Tags] | 64B | 4C | PDRDISC | SKIP_PATCH
-| | ...
-| | [Template] | Discover NDR or PDR for 1lbvpp-dot1q-l2xcbase-eth-2vhostvr1024-1vm
-| | wt=4 | rxq=2 | framesize=${64} | min_rate=${10000} | search_type=PDR
+| | phy_cores=${4} | framesize=${64} | search_type=PDR
| tc19-1518B-4t4c-1lbvpplacp-dot1q-l2xcbase-eth-2vhostvr1024-1vm-ndrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2XC switching config with 4 phy cores,\
-| | ... | 2 receive queues per NIC port.
-| | ... | [Ver] Find NDR for 1518 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 10kpps.
-| | ...
| | [Tags] | 1518B | 4C | NDRDISC | SKIP_PATCH
-| | ...
-| | [Template] | Discover NDR or PDR for 1lbvpp-dot1q-l2xcbase-eth-2vhostvr1024-1vm
-| | wt=4 | rxq=2 | framesize=${1518} | min_rate=${10000} | search_type=NDR
+| | phy_cores=${4} | framesize=${1518} | search_type=NDR
| tc20-1518B-4t4c-1lbvpplacp-dot1q-l2xcbase-eth-2vhostvr1024-1vm-pdrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2XC switching config with 4 phy cores,\
-| | ... | 2 receive queues per NIC port.
-| | ... | [Ver] Find PDR for 1518 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 10kpps, LT=0.5%.
-| | ...
| | [Tags] | 1518B | 4C | PDRDISC | SKIP_PATCH
-| | ...
-| | [Template] | Discover NDR or PDR for 1lbvpp-dot1q-l2xcbase-eth-2vhostvr1024-1vm
-| | wt=4 | rxq=2 | framesize=${1518} | min_rate=${10000} | search_type=PDR
+| | phy_cores=${4} | framesize=${1518} | search_type=PDR
| tc21-9000B-4t4c-1lbvpplacp-dot1q-l2xcbase-eth-2vhostvr1024-1vm-ndrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2XC switching config with 4 phy cores,\
-| | ... | 2 receive queues per NIC port.
-| | ... | [Ver] Find NDR for 9000 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 10kpps.
-| | ...
| | [Tags] | 9000B | 4C | NDRDISC | SKIP_PATCH
-| | ...
-| | [Template] | Discover NDR or PDR for 1lbvpp-dot1q-l2xcbase-eth-2vhostvr1024-1vm
-| | wt=4 | rxq=2 | framesize=${9000} | min_rate=${10000} | search_type=NDR
+| | phy_cores=${4} | framesize=${9000} | search_type=NDR
| tc22-9000B-4t4c-1lbvpplacp-dot1q-l2xcbase-eth-2vhostvr1024-1vm-pdrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2XC switching config with 4 phy cores,\
-| | ... | 2 receive queues per NIC port.
-| | ... | [Ver] Find PDR for 9000 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 10kpps, LT=0.5%.
-| | ...
| | [Tags] | 9000B | 4C | PDRDISC | SKIP_PATCH
-| | ...
-| | [Template] | Discover NDR or PDR for 1lbvpp-dot1q-l2xcbase-eth-2vhostvr1024-1vm
-| | wt=4 | rxq=2 | framesize=${9000} | min_rate=${10000} | search_type=PDR
+| | phy_cores=${4} | framesize=${9000} | search_type=PDR
| tc23-IMIX-4t4c-1lbvpplacp-dot1q-l2xcbase-eth-2vhostvr1024-1vm-ndrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2XC switching config with 4 phy cores,\
-| | ... | 2 receive queues per NIC port.
-| | ... | [Ver] Find NDR for IMIX_v4_1 framesize using binary search start at\
-| | ... | 10GE linerate, step 10kpps.
-| | ... | IMIX_v4_1 = (28x64B; 16x570B; 4x1518B)
-| | ...
| | [Tags] | IMIX | 4C | NDRDISC | SKIP_PATCH
-| | ...
-| | [Template] | Discover NDR or PDR for 1lbvpp-dot1q-l2xcbase-eth-2vhostvr1024-1vm
-| | wt=4 | rxq=2 | framesize=IMIX_v4_1 | min_rate=${10000} | search_type=NDR
+| | phy_cores=${4} | framesize=IMIX_v4_1 | search_type=NDR
| tc24-IMIX-4t4c-1lbvpplacp-dot1q-l2xcbase-eth-2vhostvr1024-1vm-pdrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2XC switching config with 4 phy cores,\
-| | ... | 2 receive queues per NIC port.
-| | ... | [Ver] Find PDR for IMIX_v4_1 framesize using binary search start at\
-| | ... | 10GE linerate, step 10kpps, LT=0.5%.
-| | ... | IMIX_v4_1 = (28x64B; 16x570B; 4x1518B)
-| | ...
| | [Tags] | IMIX | 4C | PDRDISC | SKIP_PATCH
-| | ...
-| | [Template] | Discover NDR or PDR for 1lbvpp-dot1q-l2xcbase-eth-2vhostvr1024-1vm
-| | wt=4 | rxq=2 | framesize=IMIX_v4_1 | min_rate=${10000} | search_type=PDR
+| | phy_cores=${4} | framesize=IMIX_v4_1 | search_type=PDR
diff --git a/tests/vpp/perf/vm_vhost/10ge2p1x520-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-mrr.robot b/tests/vpp/perf/vm_vhost/10ge2p1x520-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-mrr.robot
index 41cfa3e482..a4da58c919 100644
--- a/tests/vpp/perf/vm_vhost/10ge2p1x520-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-mrr.robot
+++ b/tests/vpp/perf/vm_vhost/10ge2p1x520-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-mrr.robot
@@ -28,6 +28,8 @@
| ... | dut1_node=${dut1} | dut1_vm_refs=${dut1_vm_refs}
| ... | dut2_node=${dut2} | dut2_vm_refs=${dut2_vm_refs}
| ...
+| Test Template | Local template
+| ...
| Documentation | *Raw results L2BD test cases with vhost*
| ...
| ... | *[Top] Network Topologies:* TG-DUT1-DUT2-TG 3-node circular topology
@@ -65,16 +67,21 @@
| ${traffic_profile}= | trex-sl-3n-ethip4-ip4src254
*** Keywords ***
-| Check RR for dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm
+| Local template
| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with ${wt} thread, ${wt} phy\
-| | ... | core, ${rxq} receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for ${framesize} frames using single\
+| | ... | [Cfg] DUT runs L2BD switching config.
+| | ... | Each DUT uses ${phy_cores} physical core(s) for worker threads.
+| | ... | [Ver] Measure MaxReceivedRate for ${framesize}B frames using single\
| | ... | trial throughput test.
| | ...
-| | [Arguments] | ${framesize} | ${wt} | ${rxq}
+| | ... | *Arguments:*
+| | ... | - framesize - Framesize in Bytes in integer or string (IMIX_v4_1).
+| | ... | Type: integer, string
+| | ... | - phy_cores - Number of physical cores. Type: integer
+| | ... | - rxq - Number of RX queues, default value: ${None}. Type: integer
+| | ...
+| | [Arguments] | ${framesize} | ${phy_cores} | ${rxq}=${None}
| | ...
-| | # Test Variables required for test and test teardown
| | Set Test Variable | ${framesize}
| | ${get_framesize}= | Get Frame Size | ${framesize}
| | ${max_rate}= | Calculate pps | ${s_limit} | ${get_framesize}
@@ -85,7 +92,7 @@
| | ${jumbo_frames}= | Set Variable If | ${get_framesize} < ${1522}
| | ... | ${False} | ${True}
| | ...
-| | Given Add '${wt}' worker threads and '${rxq}' rxqueues in 3-node single-link circular topology
+| | Given Add worker threads and rxqueues to all DUTs | ${phy_cores} | ${rxq}
| | And Add PCI devices to all DUTs
| | And Run Keyword If | ${get_framesize} < ${1522}
| | ... | Add no multi seg to all DUTs
@@ -106,148 +113,49 @@
*** Test Cases ***
| tc01-64B-1t1c-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with 1 phy\
-| | ... | core, 1 receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 64B frames using single\
-| | ... | trial throughput test.
-| | ...
| | [Tags] | 64B | 1C
-| | ...
-| | [Template] | Check RR for dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm
-| | framesize=${64} | wt=1 | rxq=1
+| | framesize=${64} | phy_cores=${1}
| tc02-1518B-1t1c-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with 1 phy\
-| | ... | core, 1 receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 1518B frames using single\
-| | ... | trial throughput test.
-| | ...
| | [Tags] | 1518B | 1C
-| | ...
-| | [Template] | Check RR for dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm
-| | framesize=${1518} | wt=1 | rxq=1
+| | framesize=${1518} | phy_cores=${1}
| tc03-9000B-1t1c-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with 1 phy\
-| | ... | core, 1 receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 9000B frames using single\
-| | ... | trial throughput test.
-| | ...
| | [Tags] | 9000B | 1C
-| | ...
-| | [Template] | Check RR for dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm
-| | framesize=${9000} | wt=1 | rxq=1
+| | framesize=${9000} | phy_cores=${1}
| tc04-IMIX-1t1c-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with 1 phy\
-| | ... | core, 1 receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for IMIX_v4_1 frames using single\
-| | ... | trial throughput test.
-| | ... | IMIX_v4_1 = (28x64B; 16x570B; 4x1518B)
-| | ...
| | [Tags] | IMIX | 1C
-| | ...
-| | [Template] | Check RR for dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm
-| | framesize=IMIX_v4_1 | wt=1 | rxq=1
+| | framesize=IMIX_v4_1 | phy_cores=${1}
| tc05-64B-2t2c-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with 2 phy\
-| | ... | cores, 1 receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 64B frames using single\
-| | ... | trial throughput test.
-| | ...
| | [Tags] | 64B | 2C
-| | ...
-| | [Template] | Check RR for dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm
-| | framesize=${64} | wt=2 | rxq=1
+| | framesize=${64} | phy_cores=${2}
| tc06-1518B-2t2c-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with 2 phy\
-| | ... | cores, 1 receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 1518B frames using single\
-| | ... | trial throughput test.
-| | ...
| | [Tags] | 1518B | 2C
-| | ...
-| | [Template] | Check RR for dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm
-| | framesize=${1518} | wt=2 | rxq=1
+| | framesize=${1518} | phy_cores=${2}
| tc07-9000B-2t2c-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with 2 phy\
-| | ... | cores, 1 receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 9000B frames using single\
-| | ... | trial throughput test.
-| | ...
| | [Tags] | 9000B | 2C
-| | ...
-| | [Template] | Check RR for dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm
-| | framesize=${9000} | wt=2 | rxq=1
+| | framesize=${9000} | phy_cores=${2}
| tc08-IMIX-2t2c-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with 2 phy\
-| | ... | cores, 1 receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for IMIX_v4_1 frames using single\
-| | ... | trial throughput test.
-| | ... | IMIX_v4_1 = (28x64B; 16x570B; 4x1518B)
-| | ...
| | [Tags] | IMIX | 2C
-| | ...
-| | [Template] | Check RR for dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm
-| | framesize=IMIX_v4_1 | wt=2 | rxq=1
+| | framesize=IMIX_v4_1 | phy_cores=${2}
| tc09-64B-4t4c-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with 4 phy\
-| | ... | cores, 2 receive queues per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 64B frames using single\
-| | ... | trial throughput test.
-| | ...
| | [Tags] | 64B | 4C
-| | ...
-| | [Template] | Check RR for dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm
-| | framesize=${64} | wt=4 | rxq=2
+| | framesize=${64} | phy_cores=${4}
| tc10-1518B-4t4c-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with 4 phy\
-| | ... | cores, 2 receive queues per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 1518B frames using single\
-| | ... | trial throughput test.
-| | ...
| | [Tags] | 1518B | 4C
-| | ...
-| | [Template] | Check RR for dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm
-| | framesize=${1518} | wt=4 | rxq=2
+| | framesize=${1518} | phy_cores=${4}
| tc11-9000B-4t4c-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with 4 phy\
-| | ... | cores, 2 receive queues per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 9000B frames using single\
-| | ... | trial throughput test.
-| | ...
| | [Tags] | 9000B | 4C
-| | ...
-| | [Template] | Check RR for dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm
-| | framesize=${9000} | wt=4 | rxq=2
+| | framesize=${9000} | phy_cores=${4}
| tc12-IMIX-4t4c-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with 4 phy\
-| | ... | cores, 2 receive queues per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for IMIX_v4_1 frames using single\
-| | ... | trial throughput test.
-| | ... | IMIX_v4_1 = (28x64B; 16x570B; 4x1518B)
-| | ...
| | [Tags] | IMIX | 4C
-| | ...
-| | [Template] | Check RR for dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm
-| | framesize=IMIX_v4_1 | wt=4 | rxq=2
+| | framesize=IMIX_v4_1 | phy_cores=${4}
diff --git a/tests/vpp/perf/vm_vhost/10ge2p1x520-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-ndrpdrdisc.robot b/tests/vpp/perf/vm_vhost/10ge2p1x520-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-ndrpdrdisc.robot
index 453c9435b1..49971c4a3b 100644
--- a/tests/vpp/perf/vm_vhost/10ge2p1x520-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-ndrpdrdisc.robot
+++ b/tests/vpp/perf/vm_vhost/10ge2p1x520-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-ndrpdrdisc.robot
@@ -89,7 +89,7 @@
| | ${threshold}= | Set Variable | ${min_rate}
| | ${dut1_vm_refs}= | Create Dictionary
| | ${dut2_vm_refs}= | Create Dictionary
-| | Given Add '1' worker threads and '1' rxqueues in 3-node single-link circular topology
+| | Given Add worker threads and rxqueues to all DUTs | 1
| | And Add PCI devices to all DUTs
| | And Add no multi seg to all DUTs
| | And Apply startup configuration on all VPP DUTs
@@ -123,7 +123,7 @@
| | ${threshold}= | Set Variable | ${min_rate}
| | ${dut1_vm_refs}= | Create Dictionary
| | ${dut2_vm_refs}= | Create Dictionary
-| | Given Add '1' worker threads and '1' rxqueues in 3-node single-link circular topology
+| | Given Add worker threads and rxqueues to all DUTs | 1
| | And Add PCI devices to all DUTs
| | And Add no multi seg to all DUTs
| | And Apply startup configuration on all VPP DUTs
@@ -158,7 +158,7 @@
| | ${threshold}= | Set Variable | ${min_rate}
| | ${dut1_vm_refs}= | Create Dictionary
| | ${dut2_vm_refs}= | Create Dictionary
-| | Given Add '1' worker threads and '1' rxqueues in 3-node single-link circular topology
+| | Given Add worker threads and rxqueues to all DUTs | 1
| | And Add PCI devices to all DUTs
| | And Add no multi seg to all DUTs
| | And Apply startup configuration on all VPP DUTs
@@ -192,7 +192,7 @@
| | ${threshold}= | Set Variable | ${min_rate}
| | ${dut1_vm_refs}= | Create Dictionary
| | ${dut2_vm_refs}= | Create Dictionary
-| | Given Add '1' worker threads and '1' rxqueues in 3-node single-link circular topology
+| | Given Add worker threads and rxqueues to all DUTs | 1
| | And Add PCI devices to all DUTs
| | And Add no multi seg to all DUTs
| | And Apply startup configuration on all VPP DUTs
@@ -229,7 +229,7 @@
| | ${threshold}= | Set Variable | ${min_rate}
| | ${dut1_vm_refs}= | Create Dictionary
| | ${dut2_vm_refs}= | Create Dictionary
-| | Given Add '1' worker threads and '1' rxqueues in 3-node single-link circular topology
+| | Given Add worker threads and rxqueues to all DUTs | 1
| | And Add PCI devices to all DUTs
| | And Add no multi seg to all DUTs
| | And Apply startup configuration on all VPP DUTs
@@ -265,7 +265,7 @@
| | ${threshold}= | Set Variable | ${min_rate}
| | ${dut1_vm_refs}= | Create Dictionary
| | ${dut2_vm_refs}= | Create Dictionary
-| | Given Add '1' worker threads and '1' rxqueues in 3-node single-link circular topology
+| | Given Add worker threads and rxqueues to all DUTs | 1
| | And Add PCI devices to all DUTs
| | And Add no multi seg to all DUTs
| | And Apply startup configuration on all VPP DUTs
@@ -300,7 +300,7 @@
| | ${threshold}= | Set Variable | ${min_rate}
| | ${dut1_vm_refs}= | Create Dictionary
| | ${dut2_vm_refs}= | Create Dictionary
-| | Given Add '2' worker threads and '1' rxqueues in 3-node single-link circular topology
+| | Given Add worker threads and rxqueues to all DUTs | 2
| | And Add PCI devices to all DUTs
| | And Add no multi seg to all DUTs
| | And Apply startup configuration on all VPP DUTs
@@ -334,7 +334,7 @@
| | ${threshold}= | Set Variable | ${min_rate}
| | ${dut1_vm_refs}= | Create Dictionary
| | ${dut2_vm_refs}= | Create Dictionary
-| | Given Add '2' worker threads and '1' rxqueues in 3-node single-link circular topology
+| | Given Add worker threads and rxqueues to all DUTs | 2
| | And Add PCI devices to all DUTs
| | And Add no multi seg to all DUTs
| | And Apply startup configuration on all VPP DUTs
@@ -369,7 +369,7 @@
| | ${threshold}= | Set Variable | ${min_rate}
| | ${dut1_vm_refs}= | Create Dictionary
| | ${dut2_vm_refs}= | Create Dictionary
-| | Given Add '2' worker threads and '1' rxqueues in 3-node single-link circular topology
+| | Given Add worker threads and rxqueues to all DUTs | 2
| | And Add PCI devices to all DUTs
| | And Add no multi seg to all DUTs
| | And Apply startup configuration on all VPP DUTs
@@ -403,7 +403,7 @@
| | ${threshold}= | Set Variable | ${min_rate}
| | ${dut1_vm_refs}= | Create Dictionary
| | ${dut2_vm_refs}= | Create Dictionary
-| | Given Add '2' worker threads and '1' rxqueues in 3-node single-link circular topology
+| | Given Add worker threads and rxqueues to all DUTs | 2
| | And Add PCI devices to all DUTs
| | And Add no multi seg to all DUTs
| | And Apply startup configuration on all VPP DUTs
@@ -440,7 +440,7 @@
| | ${threshold}= | Set Variable | ${min_rate}
| | ${dut1_vm_refs}= | Create Dictionary
| | ${dut2_vm_refs}= | Create Dictionary
-| | Given Add '2' worker threads and '1' rxqueues in 3-node single-link circular topology
+| | Given Add worker threads and rxqueues to all DUTs | 2
| | And Add PCI devices to all DUTs
| | And Add no multi seg to all DUTs
| | And Apply startup configuration on all VPP DUTs
@@ -476,7 +476,7 @@
| | ${threshold}= | Set Variable | ${min_rate}
| | ${dut1_vm_refs}= | Create Dictionary
| | ${dut2_vm_refs}= | Create Dictionary
-| | Given Add '2' worker threads and '1' rxqueues in 3-node single-link circular topology
+| | Given Add worker threads and rxqueues to all DUTs | 2
| | And Add PCI devices to all DUTs
| | And Add no multi seg to all DUTs
| | And Apply startup configuration on all VPP DUTs
@@ -511,7 +511,7 @@
| | ${threshold}= | Set Variable | ${min_rate}
| | ${dut1_vm_refs}= | Create Dictionary
| | ${dut2_vm_refs}= | Create Dictionary
-| | Given Add '4' worker threads and '2' rxqueues in 3-node single-link circular topology
+| | Given Add worker threads and rxqueues to all DUTs | 4
| | And Add PCI devices to all DUTs
| | And Add no multi seg to all DUTs
| | And Apply startup configuration on all VPP DUTs
@@ -545,7 +545,7 @@
| | ${threshold}= | Set Variable | ${min_rate}
| | ${dut1_vm_refs}= | Create Dictionary
| | ${dut2_vm_refs}= | Create Dictionary
-| | Given Add '4' worker threads and '2' rxqueues in 3-node single-link circular topology
+| | Given Add worker threads and rxqueues to all DUTs | 4
| | And Add PCI devices to all DUTs
| | And Add no multi seg to all DUTs
| | And Apply startup configuration on all VPP DUTs
@@ -580,7 +580,7 @@
| | ${threshold}= | Set Variable | ${min_rate}
| | ${dut1_vm_refs}= | Create Dictionary
| | ${dut2_vm_refs}= | Create Dictionary
-| | Given Add '4' worker threads and '2' rxqueues in 3-node single-link circular topology
+| | Given Add worker threads and rxqueues to all DUTs | 4
| | And Add PCI devices to all DUTs
| | And Add no multi seg to all DUTs
| | And Apply startup configuration on all VPP DUTs
@@ -614,7 +614,7 @@
| | ${threshold}= | Set Variable | ${min_rate}
| | ${dut1_vm_refs}= | Create Dictionary
| | ${dut2_vm_refs}= | Create Dictionary
-| | Given Add '4' worker threads and '2' rxqueues in 3-node single-link circular topology
+| | Given Add worker threads and rxqueues to all DUTs | 4
| | And Add PCI devices to all DUTs
| | And Add no multi seg to all DUTs
| | And Apply startup configuration on all VPP DUTs
@@ -651,7 +651,7 @@
| | ${threshold}= | Set Variable | ${min_rate}
| | ${dut1_vm_refs}= | Create Dictionary
| | ${dut2_vm_refs}= | Create Dictionary
-| | Given Add '4' worker threads and '2' rxqueues in 3-node single-link circular topology
+| | Given Add worker threads and rxqueues to all DUTs | 4
| | And Add PCI devices to all DUTs
| | And Add no multi seg to all DUTs
| | And Apply startup configuration on all VPP DUTs
@@ -687,7 +687,7 @@
| | ${threshold}= | Set Variable | ${min_rate}
| | ${dut1_vm_refs}= | Create Dictionary
| | ${dut2_vm_refs}= | Create Dictionary
-| | Given Add '4' worker threads and '2' rxqueues in 3-node single-link circular topology
+| | Given Add worker threads and rxqueues to all DUTs | 4
| | And Add PCI devices to all DUTs
| | And Add no multi seg to all DUTs
| | And Apply startup configuration on all VPP DUTs
diff --git a/tests/vpp/perf/vm_vhost/10ge2p1x520-dot1q-l2xcbase-eth-2vhostvr1024-1vm-mrr.robot b/tests/vpp/perf/vm_vhost/10ge2p1x520-dot1q-l2xcbase-eth-2vhostvr1024-1vm-mrr.robot
index 73055733ba..ab465feaf9 100644
--- a/tests/vpp/perf/vm_vhost/10ge2p1x520-dot1q-l2xcbase-eth-2vhostvr1024-1vm-mrr.robot
+++ b/tests/vpp/perf/vm_vhost/10ge2p1x520-dot1q-l2xcbase-eth-2vhostvr1024-1vm-mrr.robot
@@ -27,6 +27,8 @@
| ... | dut1_node=${dut1} | dut1_vm_refs=${dut1_vm_refs}
| ... | dut2_node=${dut2} | dut2_vm_refs=${dut2_vm_refs}
| ...
+| Test Template | Local template
+| ...
| Documentation | *Raw results L2XC test cases with vhost*
| ...
| ... | *[Top] Network Topologies:* TG-DUT1-DUT2-TG 3-node circular topology
@@ -62,16 +64,21 @@
| ${traffic_profile}= | trex-sl-3n-ethip4-ip4src254
*** Keywords ***
-| Check RR for dot1q-l2xcbase-eth-2vhostvr1024-1vm
+| Local template
| | [Documentation]
-| | ... | [Cfg] DUT runs L2XC switching config with ${wt} thread, ${wt} phy\
-| | ... | core, ${rxq} receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for ${framesize} frames using single\
+| | ... | [Cfg] DUT runs L2XC switching config with.
+| | ... | Each DUT uses ${phy_cores} physical core(s) for worker threads.
+| | ... | [Ver] Measure MaxReceivedRate for ${framesize}B frames using single\
| | ... | trial throughput test.
| | ...
-| | [Arguments] | ${framesize} | ${wt} | ${rxq}
+| | ... | *Arguments:*
+| | ... | - framesize - Framesize in Bytes in integer or string (IMIX_v4_1).
+| | ... | Type: integer, string
+| | ... | - phy_cores - Number of physical cores. Type: integer
+| | ... | - rxq - Number of RX queues, default value: ${None}. Type: integer
+| | ...
+| | [Arguments] | ${framesize} | ${phy_cores} | ${rxq}=${None}
| | ...
-| | # Test Variables required for test and test teardown
| | Set Test Variable | ${framesize}
| | ${get_framesize}= | Get Frame Size | ${framesize}
| | ${max_rate}= | Calculate pps | ${s_limit} | ${get_framesize}
@@ -82,7 +89,7 @@
| | ${jumbo_frames}= | Set Variable If | ${get_framesize} < ${1522}
| | ... | ${False} | ${True}
| | ...
-| | Given Add '${wt}' worker threads and '${rxq}' rxqueues in 3-node single-link circular topology
+| | Given Add worker threads and rxqueues to all DUTs | ${phy_cores} | ${rxq}
| | And Add PCI devices to all DUTs
| | And Run Keyword If | ${get_framesize} < ${1522}
| | ... | Add no multi seg to all DUTs
@@ -102,148 +109,49 @@
*** Test Cases ***
| tc01-64B-1t1c-dot1q-l2xcbase-eth-2vhostvr1024-1vm-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2XC switching config with 1 phy\
-| | ... | core, 1 receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 64B frames using single\
-| | ... | trial throughput test.
-| | ...
| | [Tags] | 64B | 1C
-| | ...
-| | [Template] | Check RR for dot1q-l2xcbase-eth-2vhostvr1024-1vm
-| | framesize=${64} | wt=1 | rxq=1
+| | framesize=${64} | phy_cores=${1}
| tc02-1518B-1t1c-dot1q-l2xcbase-eth-2vhostvr1024-1vm-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2XC switching config with 1 phy\
-| | ... | core, 1 receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 1518B frames using single\
-| | ... | trial throughput test.
-| | ...
| | [Tags] | 1518B | 1C
-| | ...
-| | [Template] | Check RR for dot1q-l2xcbase-eth-2vhostvr1024-1vm
-| | framesize=${1518} | wt=1 | rxq=1
+| | framesize=${1518} | phy_cores=${1}
| tc03-9000B-1t1c-dot1q-l2xcbase-eth-2vhostvr1024-1vm-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2XC switching config with 1 phy\
-| | ... | core, 1 receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 9000B frames using single\
-| | ... | trial throughput test.
-| | ...
| | [Tags] | 9000B | 1C
-| | ...
-| | [Template] | Check RR for dot1q-l2xcbase-eth-2vhostvr1024-1vm
-| | framesize=${9000} | wt=1 | rxq=1
+| | framesize=${9000} | phy_cores=${1}
| tc04-IMIX-1t1c-dot1q-l2xcbase-eth-2vhostvr1024-1vm-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2XC switching config with 1 phy\
-| | ... | core, 1 receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for IMIX_v4_1 frames using single\
-| | ... | trial throughput test.
-| | ... | IMIX_v4_1 = (28x64B; 16x570B; 4x1518B)
-| | ...
| | [Tags] | IMIX | 1C
-| | ...
-| | [Template] | Check RR for dot1q-l2xcbase-eth-2vhostvr1024-1vm
-| | framesize=IMIX_v4_1 | wt=1 | rxq=1
+| | framesize=IMIX_v4_1 | phy_cores=${1}
| tc05-64B-2t2c-dot1q-l2xcbase-eth-2vhostvr1024-1vm-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2XC switching config with 2 phy\
-| | ... | cores, 1 receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 64B frames using single\
-| | ... | trial throughput test.
-| | ...
| | [Tags] | 64B | 2C
-| | ...
-| | [Template] | Check RR for dot1q-l2xcbase-eth-2vhostvr1024-1vm
-| | framesize=${64} | wt=2 | rxq=1
+| | framesize=${64} | phy_cores=${2}
| tc06-1518B-2t2c-dot1q-l2xcbase-eth-2vhostvr1024-1vm-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2XC switching config with 2 phy\
-| | ... | cores, 1 receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 1518B frames using single\
-| | ... | trial throughput test.
-| | ...
| | [Tags] | 1518B | 2C
-| | ...
-| | [Template] | Check RR for dot1q-l2xcbase-eth-2vhostvr1024-1vm
-| | framesize=${1518} | wt=2 | rxq=1
+| | framesize=${1518} | phy_cores=${2}
| tc07-9000B-2t2c-dot1q-l2xcbase-eth-2vhostvr1024-1vm-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2XC switching config with 2 phy\
-| | ... | cores, 1 receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 9000B frames using single\
-| | ... | trial throughput test.
-| | ...
| | [Tags] | 9000B | 2C
-| | ...
-| | [Template] | Check RR for dot1q-l2xcbase-eth-2vhostvr1024-1vm
-| | framesize=${9000} | wt=2 | rxq=1
+| | framesize=${9000} | phy_cores=${2}
| tc08-IMIX-2t2c-dot1q-l2xcbase-eth-2vhostvr1024-1vm-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2XC switching config with 2 phy\
-| | ... | cores, 1 receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for IMIX_v4_1 frames using single\
-| | ... | trial throughput test.
-| | ... | IMIX_v4_1 = (28x64B; 16x570B; 4x1518B)
-| | ...
| | [Tags] | IMIX | 2C
-| | ...
-| | [Template] | Check RR for dot1q-l2xcbase-eth-2vhostvr1024-1vm
-| | framesize=IMIX_v4_1 | wt=2 | rxq=1
+| | framesize=IMIX_v4_1 | phy_cores=${2}
| tc09-64B-4t4c-dot1q-l2xcbase-eth-2vhostvr1024-1vm-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2XC switching config with 4 phy\
-| | ... | cores, 2 receive queues per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 64B frames using single\
-| | ... | trial throughput test.
-| | ...
| | [Tags] | 64B | 4C
-| | ...
-| | [Template] | Check RR for dot1q-l2xcbase-eth-2vhostvr1024-1vm
-| | framesize=${64} | wt=4 | rxq=2
+| | framesize=${64} | phy_cores=${4}
| tc10-1518B-4t4c-dot1q-l2xcbase-eth-2vhostvr1024-1vm-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2XC switching config with 4 phy\
-| | ... | cores, 2 receive queues per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 1518B frames using single\
-| | ... | trial throughput test.
-| | ...
| | [Tags] | 1518B | 4C
-| | ...
-| | [Template] | Check RR for dot1q-l2xcbase-eth-2vhostvr1024-1vm
-| | framesize=${1518} | wt=4 | rxq=2
+| | framesize=${1518} | phy_cores=${4}
| tc11-9000B-4t4c-dot1q-l2xcbase-eth-2vhostvr1024-1vm-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2XC switching config with 4 phy\
-| | ... | cores, 2 receive queues per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 9000B frames using single\
-| | ... | trial throughput test.
-| | ...
| | [Tags] | 9000B | 4C
-| | ...
-| | [Template] | Check RR for dot1q-l2xcbase-eth-2vhostvr1024-1vm
-| | framesize=${9000} | wt=4 | rxq=2
+| | framesize=${9000} | phy_cores=${4}
| tc12-IMIX-4t4c-dot1q-l2xcbase-eth-2vhostvr1024-1vm-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2XC switching config with 4 phy\
-| | ... | cores, 2 receive queues per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for IMIX_v4_1 frames using single\
-| | ... | trial throughput test.
-| | ... | IMIX_v4_1 = (28x64B; 16x570B; 4x1518B)
-| | ...
| | [Tags] | IMIX | 4C
-| | ...
-| | [Template] | Check RR for dot1q-l2xcbase-eth-2vhostvr1024-1vm
-| | framesize=IMIX_v4_1 | wt=4 | rxq=2
+| | framesize=IMIX_v4_1 | phy_cores=${4}
diff --git a/tests/vpp/perf/vm_vhost/10ge2p1x520-dot1q-l2xcbase-eth-2vhostvr1024-1vm-ndrpdrdisc.robot b/tests/vpp/perf/vm_vhost/10ge2p1x520-dot1q-l2xcbase-eth-2vhostvr1024-1vm-ndrpdrdisc.robot
index 532d633b1b..1dd4cacc9b 100644
--- a/tests/vpp/perf/vm_vhost/10ge2p1x520-dot1q-l2xcbase-eth-2vhostvr1024-1vm-ndrpdrdisc.robot
+++ b/tests/vpp/perf/vm_vhost/10ge2p1x520-dot1q-l2xcbase-eth-2vhostvr1024-1vm-ndrpdrdisc.robot
@@ -86,7 +86,7 @@
| | ${threshold}= | Set Variable | ${min_rate}
| | ${dut1_vm_refs}= | Create Dictionary
| | ${dut2_vm_refs}= | Create Dictionary
-| | Given Add '1' worker threads and '1' rxqueues in 3-node single-link circular topology
+| | Given Add worker threads and rxqueues to all DUTs | 1
| | And Add PCI devices to all DUTs
| | And Add no multi seg to all DUTs
| | And Apply startup configuration on all VPP DUTs
@@ -119,7 +119,7 @@
| | ${threshold}= | Set Variable | ${min_rate}
| | ${dut1_vm_refs}= | Create Dictionary
| | ${dut2_vm_refs}= | Create Dictionary
-| | Given Add '1' worker threads and '1' rxqueues in 3-node single-link circular topology
+| | Given Add worker threads and rxqueues to all DUTs | 1
| | And Add PCI devices to all DUTs
| | And Add no multi seg to all DUTs
| | And Apply startup configuration on all VPP DUTs
@@ -153,7 +153,7 @@
| | ${threshold}= | Set Variable | ${min_rate}
| | ${dut1_vm_refs}= | Create Dictionary
| | ${dut2_vm_refs}= | Create Dictionary
-| | Given Add '1' worker threads and '1' rxqueues in 3-node single-link circular topology
+| | Given Add worker threads and rxqueues to all DUTs | 1
| | And Add PCI devices to all DUTs
| | And Add no multi seg to all DUTs
| | And Apply startup configuration on all VPP DUTs
@@ -186,7 +186,7 @@
| | ${threshold}= | Set Variable | ${min_rate}
| | ${dut1_vm_refs}= | Create Dictionary
| | ${dut2_vm_refs}= | Create Dictionary
-| | Given Add '1' worker threads and '1' rxqueues in 3-node single-link circular topology
+| | Given Add worker threads and rxqueues to all DUTs | 1
| | And Add PCI devices to all DUTs
| | And Add no multi seg to all DUTs
| | And Apply startup configuration on all VPP DUTs
@@ -222,7 +222,7 @@
| | ${threshold}= | Set Variable | ${min_rate}
| | ${dut1_vm_refs}= | Create Dictionary
| | ${dut2_vm_refs}= | Create Dictionary
-| | Given Add '1' worker threads and '1' rxqueues in 3-node single-link circular topology
+| | Given Add worker threads and rxqueues to all DUTs | 1
| | And Add PCI devices to all DUTs
| | And Add no multi seg to all DUTs
| | And Apply startup configuration on all VPP DUTs
@@ -257,7 +257,7 @@
| | ${threshold}= | Set Variable | ${min_rate}
| | ${dut1_vm_refs}= | Create Dictionary
| | ${dut2_vm_refs}= | Create Dictionary
-| | Given Add '1' worker threads and '1' rxqueues in 3-node single-link circular topology
+| | Given Add worker threads and rxqueues to all DUTs | 1
| | And Add PCI devices to all DUTs
| | And Add no multi seg to all DUTs
| | And Apply startup configuration on all VPP DUTs
@@ -291,7 +291,7 @@
| | ${threshold}= | Set Variable | ${min_rate}
| | ${dut1_vm_refs}= | Create Dictionary
| | ${dut2_vm_refs}= | Create Dictionary
-| | Given Add '2' worker threads and '1' rxqueues in 3-node single-link circular topology
+| | Given Add worker threads and rxqueues to all DUTs | 2
| | And Add PCI devices to all DUTs
| | And Add no multi seg to all DUTs
| | And Apply startup configuration on all VPP DUTs
@@ -324,7 +324,7 @@
| | ${threshold}= | Set Variable | ${min_rate}
| | ${dut1_vm_refs}= | Create Dictionary
| | ${dut2_vm_refs}= | Create Dictionary
-| | Given Add '2' worker threads and '1' rxqueues in 3-node single-link circular topology
+| | Given Add worker threads and rxqueues to all DUTs | 2
| | And Add PCI devices to all DUTs
| | And Add no multi seg to all DUTs
| | And Apply startup configuration on all VPP DUTs
@@ -358,7 +358,7 @@
| | ${threshold}= | Set Variable | ${min_rate}
| | ${dut1_vm_refs}= | Create Dictionary
| | ${dut2_vm_refs}= | Create Dictionary
-| | Given Add '2' worker threads and '1' rxqueues in 3-node single-link circular topology
+| | Given Add worker threads and rxqueues to all DUTs | 2
| | And Add PCI devices to all DUTs
| | And Add no multi seg to all DUTs
| | And Apply startup configuration on all VPP DUTs
@@ -391,7 +391,7 @@
| | ${threshold}= | Set Variable | ${min_rate}
| | ${dut1_vm_refs}= | Create Dictionary
| | ${dut2_vm_refs}= | Create Dictionary
-| | Given Add '2' worker threads and '1' rxqueues in 3-node single-link circular topology
+| | Given Add worker threads and rxqueues to all DUTs | 2
| | And Add PCI devices to all DUTs
| | And Add no multi seg to all DUTs
| | And Apply startup configuration on all VPP DUTs
@@ -427,7 +427,7 @@
| | ${threshold}= | Set Variable | ${min_rate}
| | ${dut1_vm_refs}= | Create Dictionary
| | ${dut2_vm_refs}= | Create Dictionary
-| | Given Add '2' worker threads and '1' rxqueues in 3-node single-link circular topology
+| | Given Add worker threads and rxqueues to all DUTs | 2
| | And Add PCI devices to all DUTs
| | And Add no multi seg to all DUTs
| | And Apply startup configuration on all VPP DUTs
@@ -462,7 +462,7 @@
| | ${threshold}= | Set Variable | ${min_rate}
| | ${dut1_vm_refs}= | Create Dictionary
| | ${dut2_vm_refs}= | Create Dictionary
-| | Given Add '2' worker threads and '1' rxqueues in 3-node single-link circular topology
+| | Given Add worker threads and rxqueues to all DUTs | 2
| | And Add PCI devices to all DUTs
| | And Add no multi seg to all DUTs
| | And Apply startup configuration on all VPP DUTs
@@ -496,7 +496,7 @@
| | ${threshold}= | Set Variable | ${min_rate}
| | ${dut1_vm_refs}= | Create Dictionary
| | ${dut2_vm_refs}= | Create Dictionary
-| | Given Add '4' worker threads and '2' rxqueues in 3-node single-link circular topology
+| | Given Add worker threads and rxqueues to all DUTs | 4
| | And Add PCI devices to all DUTs
| | And Add no multi seg to all DUTs
| | And Apply startup configuration on all VPP DUTs
@@ -529,7 +529,7 @@
| | ${threshold}= | Set Variable | ${min_rate}
| | ${dut1_vm_refs}= | Create Dictionary
| | ${dut2_vm_refs}= | Create Dictionary
-| | Given Add '4' worker threads and '2' rxqueues in 3-node single-link circular topology
+| | Given Add worker threads and rxqueues to all DUTs | 4
| | And Add PCI devices to all DUTs
| | And Add no multi seg to all DUTs
| | And Apply startup configuration on all VPP DUTs
@@ -563,7 +563,7 @@
| | ${threshold}= | Set Variable | ${min_rate}
| | ${dut1_vm_refs}= | Create Dictionary
| | ${dut2_vm_refs}= | Create Dictionary
-| | Given Add '4' worker threads and '2' rxqueues in 3-node single-link circular topology
+| | Given Add worker threads and rxqueues to all DUTs | 4
| | And Add PCI devices to all DUTs
| | And Add no multi seg to all DUTs
| | And Apply startup configuration on all VPP DUTs
@@ -596,7 +596,7 @@
| | ${threshold}= | Set Variable | ${min_rate}
| | ${dut1_vm_refs}= | Create Dictionary
| | ${dut2_vm_refs}= | Create Dictionary
-| | Given Add '4' worker threads and '2' rxqueues in 3-node single-link circular topology
+| | Given Add worker threads and rxqueues to all DUTs | 4
| | And Add PCI devices to all DUTs
| | And Add no multi seg to all DUTs
| | And Apply startup configuration on all VPP DUTs
@@ -632,7 +632,7 @@
| | ${threshold}= | Set Variable | ${min_rate}
| | ${dut1_vm_refs}= | Create Dictionary
| | ${dut2_vm_refs}= | Create Dictionary
-| | Given Add '4' worker threads and '2' rxqueues in 3-node single-link circular topology
+| | Given Add worker threads and rxqueues to all DUTs | 4
| | And Add PCI devices to all DUTs
| | And Add no multi seg to all DUTs
| | And Apply startup configuration on all VPP DUTs
@@ -667,7 +667,7 @@
| | ${threshold}= | Set Variable | ${min_rate}
| | ${dut1_vm_refs}= | Create Dictionary
| | ${dut2_vm_refs}= | Create Dictionary
-| | Given Add '4' worker threads and '2' rxqueues in 3-node single-link circular topology
+| | Given Add worker threads and rxqueues to all DUTs | 4
| | And Add PCI devices to all DUTs
| | And Add no multi seg to all DUTs
| | And Apply startup configuration on all VPP DUTs
diff --git a/tests/vpp/perf/vm_vhost/10ge2p1x520-eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-cfsrr1-ndrpdrdisc.robot b/tests/vpp/perf/vm_vhost/10ge2p1x520-eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-cfsrr1-ndrpdrdisc.robot
index e175c4873a..04c05e5efa 100644
--- a/tests/vpp/perf/vm_vhost/10ge2p1x520-eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-cfsrr1-ndrpdrdisc.robot
+++ b/tests/vpp/perf/vm_vhost/10ge2p1x520-eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-cfsrr1-ndrpdrdisc.robot
@@ -29,6 +29,8 @@
| ... | dut1_node=${dut1} | dut1_vm_refs=${dut1_vm_refs}
| ... | dut2_node=${dut2} | dut2_vm_refs=${dut2_vm_refs}
| ...
+| Test Template | Local template
+| ...
| Documentation | *RFC2544: Packet throughput L2BD test cases with vhost*
| ...
| ... | *[Top] Network Topologies:* TG-DUT1-DUT2-TG 3-node circular topology
@@ -72,8 +74,9 @@
| ${traffic_profile}= | trex-sl-3n-ethip4-ip4src254
*** Keywords ***
-| Discover NDR or PDR for L2 Bridge Domain with VM
-| | [Arguments] | ${wt} | ${rxq} | ${framesize} | ${min_rate} | ${search_type}
+| Local template
+| | [Arguments] | ${phy_cores} | ${framesize} | ${search_type} | ${rxq}=${None}
+| | ... | ${min_rate}=${10000}
| | ...
| | Set Test Variable | ${use_tuned_cfs} | ${True}
| | Set Test Variable | ${framesize}
@@ -89,7 +92,7 @@
| | ${dut2_vm_refs}= | Create Dictionary
| | Set Test Variable | ${dut1_vm_refs}
| | Set Test Variable | ${dut2_vm_refs}
-| | Given Add '${wt}' worker threads and '${rxq}' rxqueues in 3-node single-link circular topology
+| | Given Add worker threads and rxqueues to all DUTs | ${phy_cores} | ${rxq}
| | And Add PCI devices to all DUTs
| | And Run Keyword If | ${get_framesize} < ${1522} | Add no multi seg to all DUTs
| | And Apply startup configuration on all VPP DUTs
@@ -114,223 +117,73 @@
*** Test Cases ***
| tc01-64B-1t1c-eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-cfsrr1-ndrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with 1 phy core,\
-| | ... | 1 receive queue per NIC port.
-| | ... | [Ver] Find NDR for 64 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 10kpps.
-| | ...
| | [Tags] | 64B | 1C | NDRDISC
-| | ...
-| | [Template] | Discover NDR or PDR for L2 Bridge Domain with VM
-| | wt=1 | rxq=1 | framesize=${64} | min_rate=${10000} | search_type=NDR
+| | phy_cores=${1} | framesize=${64} | search_type=NDR
| tc02-64B-1t1c-eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-cfsrr1-pdrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with 1 phy core,\
-| | ... | 1 receive queue per NIC port.
-| | ... | [Ver] Find PDR for 64 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 10kpps, LT=0.5%.
-| | ...
| | [Tags] | 64B | 1C | PDRDISC | SKIP_PATCH
-| | ...
-| | [Template] | Discover NDR or PDR for L2 Bridge Domain with VM
-| | wt=1 | rxq=1 | framesize=${64} | min_rate=${10000} | search_type=PDR
+| | phy_cores=${1} | framesize=${64} | search_type=PDR
| tc03-1518B-1t1c-etc-l2bdbasemaclrn-eth-2vhostvr1024-1vm-cfsrr1-ndrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with 1 phy core,\
-| | ... | 1 receive queue per NIC port.
-| | ... | [Ver] Find NDR for 1518 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 10kpps.
-| | ...
| | [Tags] | 1518B | 1C | NDRDISC
-| | ...
-| | [Template] | Discover NDR or PDR for L2 Bridge Domain with VM
-| | wt=1 | rxq=1 | framesize=${1518} | min_rate=${10000} | search_type=NDR
+| | phy_cores=${1} | framesize=${1518} | search_type=NDR
| tc04-1518B-1t1c-eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-cfsrr1-pdrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with 1 phy core,\
-| | ... | 1 receive queue per NIC port.
-| | ... | [Ver] Find PDR for 1518 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 10kpps, LT=0.5%.
-| | ...
| | [Tags] | 1518B | 1C | PDRDISC | SKIP_PATCH
-| | ...
-| | [Template] | Discover NDR or PDR for L2 Bridge Domain with VM
-| | wt=1 | rxq=1 | framesize=${1518} | min_rate=${10000} | search_type=PDR
+| | phy_cores=${1} | framesize=${1518} | search_type=PDR
| tc05-IMIX-1t1c-eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-cfsrr1-ndrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with 1 phy core,\
-| | ... | 1 receive queue per NIC port.
-| | ... | [Ver] Find NDR for IMIX_v4_1 framesize using binary search start at\
-| | ... | 10GE linerate, step 10kpps.
-| | ... | IMIX_v4_1 = (28x64B; 16x570B; 4x1518B)
-| | ...
| | [Tags] | IMIX | 1C | NDRDISC
-| | ...
-| | [Template] | Discover NDR or PDR for L2 Bridge Domain with VM
-| | wt=1 | rxq=1 | framesize=IMIX_v4_1 | min_rate=${10000} | search_type=NDR
+| | phy_cores=${1} | framesize=IMIX_v4_1 | search_type=NDR
| tc06-IMIX-1t1c-eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-cfsrr1-pdrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with 1 phy core,\
-| | ... | 1 receive queue per NIC port.
-| | ... | [Ver] Find PDR for IMIX_v4_1 framesize using binary search start at\
-| | ... | 10GE linerate, step 10kpps, LT=0.5%.
-| | ... | IMIX_v4_1 = (28x64B; 16x570B; 4x1518B)
-| | ...
| | [Tags] | IMIX | 1C | PDRDISC | SKIP_PATCH
-| | ...
-| | [Template] | Discover NDR or PDR for L2 Bridge Domain with VM
-| | wt=1 | rxq=1 | framesize=IMIX_v4_1 | min_rate=${10000} | search_type=PDR
+| | phy_cores=${1} | framesize=IMIX_v4_1 | search_type=PDR
| tc07-64B-2t2c-eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-cfsrr1-ndrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with 2 phy cores,\
-| | ... | 1 receive queue per NIC port.
-| | ... | [Ver] Find NDR for 64 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 10kpps.
-| | ...
| | [Tags] | 64B | 2C | NDRDISC
-| | ...
-| | [Template] | Discover NDR or PDR for L2 Bridge Domain with VM
-| | wt=2 | rxq=1 | framesize=${64} | min_rate=${10000} | search_type=NDR
+| | phy_cores=${2} | framesize=${64} | search_type=NDR
| tc08-64B-2t2c-eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-cfsrr1-pdrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with 2 phy cores,\
-| | ... | 1 receive queue per NIC port.
-| | ... | [Ver] Find PDR for 64 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 10kpps, LT=0.5%.
-| | ...
| | [Tags] | 64B | 2C | PDRDISC | SKIP_PATCH
-| | ...
-| | [Template] | Discover NDR or PDR for L2 Bridge Domain with VM
-| | wt=2 | rxq=1 | framesize=${64} | min_rate=${10000} | search_type=PDR
+| | phy_cores=${2} | framesize=${64} | search_type=PDR
| tc09-1518B-2t2c-eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-cfsrr1-ndrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with 2 phy cores,\
-| | ... | 1 receive queue per NIC port.
-| | ... | [Ver] Find NDR for 1518 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 10kpps.
-| | ...
| | [Tags] | 1518B | 2C | NDRDISC | SKIP_PATCH
-| | ...
-| | [Template] | Discover NDR or PDR for L2 Bridge Domain with VM
-| | wt=2 | rxq=1 | framesize=${1518} | min_rate=${10000} | search_type=NDR
+| | phy_cores=${2} | framesize=${1518} | search_type=NDR
| tc10-1518B-2t2c-eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-cfsrr1-pdrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with 2 phy cores,\
-| | ... | 1 receive queue per NIC port.
-| | ... | [Ver] Find PDR for 1518 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 10kpps, LT=0.5%.
-| | ...
| | [Tags] | 1518B | 2C | PDRDISC | SKIP_PATCH
-| | ...
-| | [Template] | Discover NDR or PDR for L2 Bridge Domain with VM
-| | wt=2 | rxq=1 | framesize=${1518} | min_rate=${10000} | search_type=PDR
+| | phy_cores=${2} | framesize=${1518} | search_type=PDR
| tc11-IMIX-2t2c-eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-cfsrr1-ndrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with 2 phy cores,\
-| | ... | 1 receive queue per NIC port.
-| | ... | [Ver] Find NDR for IMIX_v4_1 framesize using binary search start at\
-| | ... | 10GE linerate, step 10kpps.
-| | ... | IMIX_v4_1 = (28x64B; 16x570B; 4x1518B)
-| | ...
| | [Tags] | IMIX | 2C | NDRDISC | SKIP_PATCH
-| | ...
-| | [Template] | Discover NDR or PDR for L2 Bridge Domain with VM
-| | wt=2 | rxq=1 | framesize=IMIX_v4_1 | min_rate=${10000} | search_type=NDR
+| | phy_cores=${2} | framesize=IMIX_v4_1 | search_type=NDR
| tc12-IMIX-2t2c-eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-cfsrr1-pdrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with 2 phy cores,\
-| | ... | 1 receive queue per NIC port.
-| | ... | [Ver] Find PDR for IMIX_v4_1 framesize using binary search start at\
-| | ... | 10GE linerate, step 10kpps.
-| | ... | IMIX_v4_1 = (28x64B; 16x570B; 4x1518B)
-| | ...
| | [Tags] | IMIX | 2C | PDRDISC | SKIP_PATCH
-| | ...
-| | [Template] | Discover NDR or PDR for L2 Bridge Domain with VM
-| | wt=2 | rxq=1 | framesize=IMIX_v4_1 | min_rate=${10000} | search_type=PDR
+| | phy_cores=${2} | framesize=IMIX_v4_1 | search_type=PDR
| tc13-64B-4t4c-eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-cfsrr1-ndrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with 4 phy cores,\
-| | ... | 2 receive queues per NIC port.
-| | ... | [Ver] Find NDR for 64 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 10kpps.
-| | ...
| | [Tags] | 64B | 4C | NDRDISC
-| | ...
-| | [Template] | Discover NDR or PDR for L2 Bridge Domain with VM
-| | wt=4 | rxq=2 | framesize=${64} | min_rate=${10000} | search_type=NDR
+| | phy_cores=${4} | framesize=${64} | search_type=NDR
| tc14-64B-4t4c-eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-cfsrr1-pdrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with 4 phy cores,\
-| | ... | 2 receive queues per NIC port.
-| | ... | [Ver] Find PDR for 64 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 10kpps, LT=0.5%.
-| | ...
| | [Tags] | 64B | 4C | PDRDISC | SKIP_PATCH
-| | ...
-| | [Template] | Discover NDR or PDR for L2 Bridge Domain with VM
-| | wt=4 | rxq=2 | framesize=${64} | min_rate=${10000} | search_type=PDR
+| | phy_cores=${4} | framesize=${64} | search_type=PDR
| tc15-1518B-4t4c-eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-cfsrr1-ndrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with 4 phy cores,\
-| | ... | 2 receive queues per NIC port.
-| | ... | [Ver] Find NDR for 1518 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 10kpps.
-| | ...
| | [Tags] | 1518B | 4C | NDRDISC | SKIP_PATCH
-| | ...
-| | [Template] | Discover NDR or PDR for L2 Bridge Domain with VM
-| | wt=4 | rxq=2 | framesize=${1518} | min_rate=${10000} | search_type=NDR
+| | phy_cores=${4} | framesize=${1518} | search_type=NDR
| tc16-1518B-4t4c-eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-cfsrr1-pdrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with 4 phy cores,\
-| | ... | 2 receive queues per NIC port.
-| | ... | [Ver] Find PDR for 1518 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 10kpps, LT=0.5%.
-| | ...
| | [Tags] | 1518B | 4C | PDRDISC | SKIP_PATCH
-| | ...
-| | [Template] | Discover NDR or PDR for L2 Bridge Domain with VM
-| | wt=4 | rxq=2 | framesize=${1518} | min_rate=${10000} | search_type=PDR
+| | phy_cores=${4} | framesize=${1518} | search_type=PDR
| tc17-IMIX-4t4c-eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-cfsrr1-ndrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with 4 phy cores,\
-| | ... | 2 receive queues per NIC port.
-| | ... | [Ver] Find NDR for IMIX_v4_1 framesize using binary search start at\
-| | ... | 10GE linerate, step 10kpps.
-| | ... | IMIX_v4_1 = (28x64B; 16x570B; 4x1518B)
-| | ...
| | [Tags] | IMIX | 4C | NDRDISC | SKIP_PATCH
-| | ...
-| | [Template] | Discover NDR or PDR for L2 Bridge Domain with VM
-| | wt=4 | rxq=2 | framesize=IMIX_v4_1 | min_rate=${10000} | search_type=NDR
+| | phy_cores=${4} | framesize=IMIX_v4_1 | search_type=NDR
| tc18-IMIX-4t4c-eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-cfsrr1-pdrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with 4 phy cores,\
-| | ... | 2 receive queues per NIC port.
-| | ... | [Ver] Find PDR for IMIX_v4_1 framesize using binary search start at\
-| | ... | 10GE linerate, step 10kpps, LT=0.5%.
-| | ... | IMIX_v4_1 = (28x64B; 16x570B; 4x1518B)
-| | ...
| | [Tags] | IMIX | 4C | PDRDISC | SKIP_PATCH
-| | ...
-| | [Template] | Discover NDR or PDR for L2 Bridge Domain with VM
-| | wt=4 | rxq=2 | framesize=IMIX_v4_1 | min_rate=${10000} | search_type=PDR
+| | phy_cores=${4} | framesize=IMIX_v4_1 | search_type=PDR
diff --git a/tests/vpp/perf/vm_vhost/10ge2p1x520-eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-mrr.robot b/tests/vpp/perf/vm_vhost/10ge2p1x520-eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-mrr.robot
index 3bd8a5ef4d..7a69383e0f 100644
--- a/tests/vpp/perf/vm_vhost/10ge2p1x520-eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-mrr.robot
+++ b/tests/vpp/perf/vm_vhost/10ge2p1x520-eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-mrr.robot
@@ -27,6 +27,8 @@
| ... | dut1_node=${dut1} | dut1_vm_refs=${dut1_vm_refs}
| ... | dut2_node=${dut2} | dut2_vm_refs=${dut2_vm_refs}
| ...
+| Test Template | Local template
+| ...
| Documentation | *Raw results L2BD test cases with vhost*
| ...
| ... | *[Top] Network Topologies:* TG-DUT1-DUT2-TG 3-node circular topology
@@ -62,16 +64,21 @@
| ${traffic_profile}= | trex-sl-3n-ethip4-ip4src254
*** Keywords ***
-| Check RR for eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm
+| Local template
| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with ${wt} thread, ${wt} phy\
-| | ... | core, ${rxq} receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for ${framesize} frames using single\
+| | ... | [Cfg] DUT runs L2BD switching config.
+| | ... | Each DUT uses ${phy_cores} physical core(s) for worker threads.
+| | ... | [Ver] Measure MaxReceivedRate for ${framesize}B frames using single\
| | ... | trial throughput test.
| | ...
-| | [Arguments] | ${framesize} | ${wt} | ${rxq}
+| | ... | *Arguments:*
+| | ... | - framesize - Framesize in Bytes in integer or string (IMIX_v4_1).
+| | ... | Type: integer, string
+| | ... | - phy_cores - Number of physical cores. Type: integer
+| | ... | - rxq - Number of RX queues, default value: ${None}. Type: integer
+| | ...
+| | [Arguments] | ${framesize} | ${phy_cores} | ${rxq}=${None}
| | ...
-| | # Test Variables required for test and test teardown
| | Set Test Variable | ${framesize}
| | ${get_framesize}= | Get Frame Size | ${framesize}
| | ${max_rate}= | Calculate pps | ${s_limit} | ${get_framesize}
@@ -82,7 +89,7 @@
| | ${jumbo_frames}= | Set Variable If | ${get_framesize} < ${1522}
| | ... | ${False} | ${True}
| | ...
-| | Given Add '${wt}' worker threads and '${rxq}' rxqueues in 3-node single-link circular topology
+| | Given Add worker threads and rxqueues to all DUTs | ${phy_cores} | ${rxq}
| | And Add PCI devices to all DUTs
| | And Run Keyword If | ${get_framesize} < ${1522}
| | ... | Add no multi seg to all DUTs
@@ -102,148 +109,49 @@
*** Test Cases ***
| tc01-64B-1t1c-eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with 1 phy\
-| | ... | core, 1 receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 64B frames using single\
-| | ... | trial throughput test.
-| | ...
| | [Tags] | 64B | 1C
-| | ...
-| | [Template] | Check RR for eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm
-| | framesize=${64} | wt=1 | rxq=1
+| | framesize=${64} | phy_cores=${1}
| tc02-1518B-1t1c-eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with 1 phy\
-| | ... | core, 1 receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 1518B frames using single\
-| | ... | trial throughput test.
-| | ...
| | [Tags] | 1518B | 1C
-| | ...
-| | [Template] | Check RR for eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm
-| | framesize=${1518} | wt=1 | rxq=1
+| | framesize=${1518} | phy_cores=${1}
| tc03-9000B-1t1c-eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with 1 phy\
-| | ... | core, 1 receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 9000B frames using single\
-| | ... | trial throughput test.
-| | ...
| | [Tags] | 9000B | 1C
-| | ...
-| | [Template] | Check RR for eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm
-| | framesize=${9000} | wt=1 | rxq=1
+| | framesize=${9000} | phy_cores=${1}
| tc04-IMIX-1t1c-eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with 1 phy\
-| | ... | core, 1 receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for IMIX_v4_1 frames using single\
-| | ... | trial throughput test.
-| | ... | IMIX_v4_1 = (28x64B; 16x570B; 4x1518B)
-| | ...
| | [Tags] | IMIX | 1C
-| | ...
-| | [Template] | Check RR for eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm
-| | framesize=IMIX_v4_1 | wt=1 | rxq=1
+| | framesize=IMIX_v4_1 | phy_cores=${1}
| tc05-64B-2t2c-eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with 2 phy\
-| | ... | cores, 1 receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 64B frames using single\
-| | ... | trial throughput test.
-| | ...
| | [Tags] | 64B | 2C
-| | ...
-| | [Template] | Check RR for eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm
-| | framesize=${64} | wt=2 | rxq=1
+| | framesize=${64} | phy_cores=${2}
| tc06-1518B-2t2c-eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with 2 phy\
-| | ... | cores, 1 receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 1518B frames using single\
-| | ... | trial throughput test.
-| | ...
| | [Tags] | 1518B | 2C
-| | ...
-| | [Template] | Check RR for eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm
-| | framesize=${1518} | wt=2 | rxq=1
+| | framesize=${1518} | phy_cores=${2}
| tc07-9000B-2t2c-eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with 2 phy\
-| | ... | cores, 1 receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 9000B frames using single\
-| | ... | trial throughput test.
-| | ...
| | [Tags] | 9000B | 2C
-| | ...
-| | [Template] | Check RR for eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm
-| | framesize=${9000} | wt=2 | rxq=1
+| | framesize=${9000} | phy_cores=${2}
| tc08-IMIX-2t2c-eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with 2 phy\
-| | ... | cores, 1 receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for IMIX_v4_1 frames using single\
-| | ... | trial throughput test.
-| | ... | IMIX_v4_1 = (28x64B; 16x570B; 4x1518B)
-| | ...
| | [Tags] | IMIX | 2C
-| | ...
-| | [Template] | Check RR for eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm
-| | framesize=IMIX_v4_1 | wt=2 | rxq=1
+| | framesize=IMIX_v4_1 | phy_cores=${2}
| tc09-64B-4t4c-eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with 4 phy\
-| | ... | cores, 2 receive queues per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 64B frames using single\
-| | ... | trial throughput test.
-| | ...
| | [Tags] | 64B | 4C
-| | ...
-| | [Template] | Check RR for eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm
-| | framesize=${64} | wt=4 | rxq=2
+| | framesize=${64} | phy_cores=${4}
| tc10-1518B-4t4c-eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with 4 phy\
-| | ... | cores, 2 receive queues per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 1518B frames using single\
-| | ... | trial throughput test.
-| | ...
| | [Tags] | 1518B | 4C
-| | ...
-| | [Template] | Check RR for eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm
-| | framesize=${1518} | wt=4 | rxq=2
+| | framesize=${1518} | phy_cores=${4}
| tc10-9000B-4t4c-eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with 4 phy\
-| | ... | cores, 2 receive queues per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 9000B frames using single\
-| | ... | trial throughput test.
-| | ...
| | [Tags] | 9000B | 4C
-| | ...
-| | [Template] | Check RR for eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm
-| | framesize=${9000} | wt=4 | rxq=2
+| | framesize=${9000} | phy_cores=${4}
| tc12-IMIX-4t4c-eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with 4 phy\
-| | ... | cores, 2 receive queues per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for IMIX_v4_1 frames using single\
-| | ... | trial throughput test.
-| | ... | IMIX_v4_1 = (28x64B; 16x570B; 4x1518B)
-| | ...
| | [Tags] | IMIX | 4C
-| | ...
-| | [Template] | Check RR for eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm
-| | framesize=IMIX_v4_1 | wt=4 | rxq=2
+| | framesize=IMIX_v4_1 | phy_cores=${4}
diff --git a/tests/vpp/perf/vm_vhost/10ge2p1x520-eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-ndrpdr.robot b/tests/vpp/perf/vm_vhost/10ge2p1x520-eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-ndrpdr.robot
index 65903a9b31..b822676e2d 100644
--- a/tests/vpp/perf/vm_vhost/10ge2p1x520-eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-ndrpdr.robot
+++ b/tests/vpp/perf/vm_vhost/10ge2p1x520-eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-ndrpdr.robot
@@ -55,7 +55,7 @@
| ... | dut1_node=${dut1} | dut1_vm_refs=${dut1_vm_refs}
| ... | dut2_node=${dut2} | dut2_vm_refs=${dut2_vm_refs}
| ...
-| Test Template | Find NDRPDR for eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm
+| Test Template | Local template
*** Variables ***
| ${perf_qemu_qsz}= | 1024
@@ -71,16 +71,14 @@
| ${traffic_profile} | trex-sl-3n-ethip4-ip4src254
*** Keywords ***
-| Find NDRPDR for eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm
+| Local template
| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with ${wt} thread, ${wt} phy\
-| | ... | core, ${rxq} receive queue per NIC port.
+| | ... | [Cfg] DUT runs L2BD switching config with ${phy_cores} phy cores.
| | ... | [Ver] Find NDR for ${framesize} frames \
| | ... | using binary search start at 10GE linerate.
| | ...
-| | [Arguments] | ${framesize} | ${wt} | ${rxq}
+| | [Arguments] | ${framesize} | ${phy_cores} | ${rxq}=${None}
| | ...
-| | # Test Variables required for test and test teardown
| | Set Test Variable | ${framesize}
| | ${get_framesize}= | Get Frame Size | ${framesize}
| | ${max_unidirectional_rate}= | Calculate pps | ${s_limit} | ${get_framesize}
@@ -92,7 +90,7 @@
| | ${jumbo_frames}= | Set Variable If | ${get_framesize} < ${1522}
| | ... | ${False} | ${True}
| | ...
-| | Given Add '${wt}' worker threads and '${rxq}' rxqueues in 3-node single-link circular topology
+| | Given Add worker threads and rxqueues to all DUTs | ${phy_cores} | ${rxq}
| | And Add PCI devices to all DUTs
| | And Run Keyword If | ${get_framesize} < ${1522}
| | ... | Add no multi seg to all DUTs
@@ -113,60 +111,48 @@
*** Test Cases ***
| tc01-64B-1t1c-eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-ndrpdr
| | [Tags] | 64B | 1C
-| | ...
-| | framesize=${64} | wt=1 | rxq=1
+| | framesize=${64} | phy_cores=${1}
| tc02-1518B-1t1c-eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-ndrpdr
| | [Tags] | 1518B | 1C
-| | ...
-| | framesize=${1518} | wt=1 | rxq=1
+| | framesize=${1518} | phy_cores=${1}
| tc03-9000B-1t1c-eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-ndrpdr
| | [Tags] | 9000B | 1C
-| | ...
-| | framesize=${9000} | wt=1 | rxq=1
+| | framesize=${9000} | phy_cores=${1}
| tc04-IMIX-1t1c-eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-ndrpdr
| | [Tags] | IMIX | 1C
-| | ...
-| | framesize=IMIX_v4_1 | wt=1 | rxq=1
+| | framesize=IMIX_v4_1 | phy_cores=${1}
| tc05-64B-2t2c-eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-ndrpdr
| | [Tags] | 64B | 2C
-| | ...
-| | framesize=${64} | wt=2 | rxq=1
+| | framesize=${64} | phy_cores=${2}
| tc06-1518B-2t2c-eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-ndrpdr
| | [Tags] | 1518B | 2C
-| | ...
-| | framesize=${1518} | wt=2 | rxq=1
+| | framesize=${1518} | phy_cores=${2}
| tc07-9000B-2t2c-eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-ndrpdr
| | [Tags] | 9000B | 2C
-| | ...
-| | framesize=${9000} | wt=2 | rxq=1
+| | framesize=${9000} | phy_cores=${2}
| tc08-IMIX-2t2c-eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-ndrpdr
| | [Tags] | IMIX | 2C
-| | ...
-| | framesize=IMIX_v4_1 | wt=2 | rxq=1
+| | framesize=IMIX_v4_1 | phy_cores=${2}
| tc09-64B-4t4c-eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-ndrpdr
| | [Tags] | 64B | 4C
-| | ...
-| | framesize=${64} | wt=4 | rxq=2
+| | framesize=${64} | phy_cores=${4}
| tc10-1518B-4t4c-eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-ndrpdr
| | [Tags] | 1518B | 4C
-| | ...
-| | framesize=${1518} | wt=4 | rxq=2
+| | framesize=${1518} | phy_cores=${4}
| tc11-9000B-4t4c-eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-ndrpdr
| | [Tags] | 9000B | 4C
-| | ...
-| | framesize=${9000} | wt=4 | rxq=2
+| | framesize=${9000} | phy_cores=${4}
| tc12-IMIX-4t4c-eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-ndrpdr
| | [Tags] | IMIX | 4C
-| | ...
-| | framesize=IMIX_v4_1 | wt=4 | rxq=2
+| | framesize=IMIX_v4_1 | phy_cores=${4}
diff --git a/tests/vpp/perf/vm_vhost/10ge2p1x520-eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-ndrpdrdisc.robot b/tests/vpp/perf/vm_vhost/10ge2p1x520-eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-ndrpdrdisc.robot
index 0dd7ed6468..7f5a6ec903 100644
--- a/tests/vpp/perf/vm_vhost/10ge2p1x520-eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-ndrpdrdisc.robot
+++ b/tests/vpp/perf/vm_vhost/10ge2p1x520-eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-ndrpdrdisc.robot
@@ -82,7 +82,7 @@
| | ${threshold}= | Set Variable | ${min_rate}
| | ${dut1_vm_refs}= | Create Dictionary
| | ${dut2_vm_refs}= | Create Dictionary
-| | Given Add '1' worker threads and '1' rxqueues in 3-node single-link circular topology
+| | Given Add worker threads and rxqueues to all DUTs | 1
| | And Add PCI devices to all DUTs
| | And Add no multi seg to all DUTs
| | And Apply startup configuration on all VPP DUTs
@@ -112,7 +112,7 @@
| | ${threshold}= | Set Variable | ${min_rate}
| | ${dut1_vm_refs}= | Create Dictionary
| | ${dut2_vm_refs}= | Create Dictionary
-| | Given Add '1' worker threads and '1' rxqueues in 3-node single-link circular topology
+| | Given Add worker threads and rxqueues to all DUTs | 1
| | And Add PCI devices to all DUTs
| | And Add no multi seg to all DUTs
| | And Apply startup configuration on all VPP DUTs
@@ -143,7 +143,7 @@
| | ${threshold}= | Set Variable | ${min_rate}
| | ${dut1_vm_refs}= | Create Dictionary
| | ${dut2_vm_refs}= | Create Dictionary
-| | Given Add '1' worker threads and '1' rxqueues in 3-node single-link circular topology
+| | Given Add worker threads and rxqueues to all DUTs | 1
| | And Add PCI devices to all DUTs
| | And Add no multi seg to all DUTs
| | And Apply startup configuration on all VPP DUTs
@@ -173,7 +173,7 @@
| | ${threshold}= | Set Variable | ${min_rate}
| | ${dut1_vm_refs}= | Create Dictionary
| | ${dut2_vm_refs}= | Create Dictionary
-| | Given Add '1' worker threads and '1' rxqueues in 3-node single-link circular topology
+| | Given Add worker threads and rxqueues to all DUTs | 1
| | And Add PCI devices to all DUTs
| | And Add no multi seg to all DUTs
| | And Apply startup configuration on all VPP DUTs
@@ -205,7 +205,7 @@
| | ${threshold}= | Set Variable | ${min_rate}
| | ${dut1_vm_refs}= | Create Dictionary
| | ${dut2_vm_refs}= | Create Dictionary
-| | Given Add '1' worker threads and '1' rxqueues in 3-node single-link circular topology
+| | Given Add worker threads and rxqueues to all DUTs | 1
| | And Add PCI devices to all DUTs
| | And Add no multi seg to all DUTs
| | And Apply startup configuration on all VPP DUTs
@@ -236,7 +236,7 @@
| | ${threshold}= | Set Variable | ${min_rate}
| | ${dut1_vm_refs}= | Create Dictionary
| | ${dut2_vm_refs}= | Create Dictionary
-| | Given Add '1' worker threads and '1' rxqueues in 3-node single-link circular topology
+| | Given Add worker threads and rxqueues to all DUTs | 1
| | And Add PCI devices to all DUTs
| | And Add no multi seg to all DUTs
| | And Apply startup configuration on all VPP DUTs
@@ -267,7 +267,7 @@
| | ${threshold}= | Set Variable | ${min_rate}
| | ${dut1_vm_refs}= | Create Dictionary
| | ${dut2_vm_refs}= | Create Dictionary
-| | Given Add '2' worker threads and '1' rxqueues in 3-node single-link circular topology
+| | Given Add worker threads and rxqueues to all DUTs | 2
| | And Add PCI devices to all DUTs
| | And Add no multi seg to all DUTs
| | And Apply startup configuration on all VPP DUTs
@@ -297,7 +297,7 @@
| | ${threshold}= | Set Variable | ${min_rate}
| | ${dut1_vm_refs}= | Create Dictionary
| | ${dut2_vm_refs}= | Create Dictionary
-| | Given Add '2' worker threads and '1' rxqueues in 3-node single-link circular topology
+| | Given Add worker threads and rxqueues to all DUTs | 2
| | And Add PCI devices to all DUTs
| | And Add no multi seg to all DUTs
| | And Apply startup configuration on all VPP DUTs
@@ -328,7 +328,7 @@
| | ${threshold}= | Set Variable | ${min_rate}
| | ${dut1_vm_refs}= | Create Dictionary
| | ${dut2_vm_refs}= | Create Dictionary
-| | Given Add '2' worker threads and '1' rxqueues in 3-node single-link circular topology
+| | Given Add worker threads and rxqueues to all DUTs | 2
| | And Add PCI devices to all DUTs
| | And Add no multi seg to all DUTs
| | And Apply startup configuration on all VPP DUTs
@@ -358,7 +358,7 @@
| | ${threshold}= | Set Variable | ${min_rate}
| | ${dut1_vm_refs}= | Create Dictionary
| | ${dut2_vm_refs}= | Create Dictionary
-| | Given Add '2' worker threads and '1' rxqueues in 3-node single-link circular topology
+| | Given Add worker threads and rxqueues to all DUTs | 2
| | And Add PCI devices to all DUTs
| | And Add no multi seg to all DUTs
| | And Apply startup configuration on all VPP DUTs
@@ -390,7 +390,7 @@
| | ${threshold}= | Set Variable | ${min_rate}
| | ${dut1_vm_refs}= | Create Dictionary
| | ${dut2_vm_refs}= | Create Dictionary
-| | Given Add '2' worker threads and '1' rxqueues in 3-node single-link circular topology
+| | Given Add worker threads and rxqueues to all DUTs | 2
| | And Add PCI devices to all DUTs
| | And Add no multi seg to all DUTs
| | And Apply startup configuration on all VPP DUTs
@@ -421,7 +421,7 @@
| | ${threshold}= | Set Variable | ${min_rate}
| | ${dut1_vm_refs}= | Create Dictionary
| | ${dut2_vm_refs}= | Create Dictionary
-| | Given Add '2' worker threads and '1' rxqueues in 3-node single-link circular topology
+| | Given Add worker threads and rxqueues to all DUTs | 2
| | And Add PCI devices to all DUTs
| | And Add no multi seg to all DUTs
| | And Apply startup configuration on all VPP DUTs
@@ -452,7 +452,7 @@
| | ${threshold}= | Set Variable | ${min_rate}
| | ${dut1_vm_refs}= | Create Dictionary
| | ${dut2_vm_refs}= | Create Dictionary
-| | Given Add '4' worker threads and '2' rxqueues in 3-node single-link circular topology
+| | Given Add worker threads and rxqueues to all DUTs | 4
| | And Add PCI devices to all DUTs
| | And Add no multi seg to all DUTs
| | And Apply startup configuration on all VPP DUTs
@@ -482,7 +482,7 @@
| | ${threshold}= | Set Variable | ${min_rate}
| | ${dut1_vm_refs}= | Create Dictionary
| | ${dut2_vm_refs}= | Create Dictionary
-| | Given Add '4' worker threads and '2' rxqueues in 3-node single-link circular topology
+| | Given Add worker threads and rxqueues to all DUTs | 4
| | And Add PCI devices to all DUTs
| | And Add no multi seg to all DUTs
| | And Apply startup configuration on all VPP DUTs
@@ -513,7 +513,7 @@
| | ${threshold}= | Set Variable | ${min_rate}
| | ${dut1_vm_refs}= | Create Dictionary
| | ${dut2_vm_refs}= | Create Dictionary
-| | Given Add '4' worker threads and '2' rxqueues in 3-node single-link circular topology
+| | Given Add worker threads and rxqueues to all DUTs | 4
| | And Add PCI devices to all DUTs
| | And Add no multi seg to all DUTs
| | And Apply startup configuration on all VPP DUTs
@@ -543,7 +543,7 @@
| | ${threshold}= | Set Variable | ${min_rate}
| | ${dut1_vm_refs}= | Create Dictionary
| | ${dut2_vm_refs}= | Create Dictionary
-| | Given Add '4' worker threads and '2' rxqueues in 3-node single-link circular topology
+| | Given Add worker threads and rxqueues to all DUTs | 4
| | And Add PCI devices to all DUTs
| | And Add no multi seg to all DUTs
| | And Apply startup configuration on all VPP DUTs
@@ -575,7 +575,7 @@
| | ${threshold}= | Set Variable | ${min_rate}
| | ${dut1_vm_refs}= | Create Dictionary
| | ${dut2_vm_refs}= | Create Dictionary
-| | Given Add '4' worker threads and '2' rxqueues in 3-node single-link circular topology
+| | Given Add worker threads and rxqueues to all DUTs | 4
| | And Add PCI devices to all DUTs
| | And Add no multi seg to all DUTs
| | And Apply startup configuration on all VPP DUTs
@@ -606,7 +606,7 @@
| | ${threshold}= | Set Variable | ${min_rate}
| | ${dut1_vm_refs}= | Create Dictionary
| | ${dut2_vm_refs}= | Create Dictionary
-| | Given Add '4' worker threads and '2' rxqueues in 3-node single-link circular topology
+| | Given Add worker threads and rxqueues to all DUTs | 4
| | And Add PCI devices to all DUTs
| | And Add no multi seg to all DUTs
| | And Apply startup configuration on all VPP DUTs
diff --git a/tests/vpp/perf/vm_vhost/10ge2p1x520-eth-l2bdbasemaclrn-eth-2vhostvr256-1vm-cfsrr1-ndrpdrdisc.robot b/tests/vpp/perf/vm_vhost/10ge2p1x520-eth-l2bdbasemaclrn-eth-2vhostvr256-1vm-cfsrr1-ndrpdrdisc.robot
index ad72f0794b..c0fdcbcb96 100644
--- a/tests/vpp/perf/vm_vhost/10ge2p1x520-eth-l2bdbasemaclrn-eth-2vhostvr256-1vm-cfsrr1-ndrpdrdisc.robot
+++ b/tests/vpp/perf/vm_vhost/10ge2p1x520-eth-l2bdbasemaclrn-eth-2vhostvr256-1vm-cfsrr1-ndrpdrdisc.robot
@@ -29,6 +29,8 @@
| ... | dut1_node=${dut1} | dut1_vm_refs=${dut1_vm_refs}
| ... | dut2_node=${dut2} | dut2_vm_refs=${dut2_vm_refs}
| ...
+| Test Template | Local template
+| ...
| Documentation | *RFC2544: Packet throughput L2BD test cases with vhost*
| ...
| ... | *[Top] Network Topologies:* TG-DUT1-DUT2-TG 3-node circular topology
@@ -72,22 +74,9 @@
| ${traffic_profile} | trex-sl-3n-ethip4-ip4src254
*** Keywords ***
-| Discover NDR or PDR for L2 Bridge Domain with VM
-| | [Arguments] | ${wt} | ${rxq} | ${framesize} | ${min_rate} | ${search_type}
-| | ...
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with required number of threads,\
-| | ... | phy cores and receive queues per NIC port.
-| | ... | [Ver] Find NDR or PDR for defined frame size using binary search\
-| | ... | start at 10GE linerate with specified step.
-| | ...
-| | ... | *Arguments:*
-| | ... | - wt - Number of worker threads to be used. Type: integer
-| | ... | - rxq - Number of Rx queues to be used. Type: integer
-| | ... | - framesize - L2 Frame Size [B]. Type: integer
-| | ... | - min_rate - Lower limit of search [pps]. Type: float
-| | ... | - search_type - Type of the search - non drop rate (NDR) or partial
-| | ... | drop rare (PDR). Type: string
+| Local template
+| | [Arguments] | ${phy_cores} | ${framesize} | ${search_type} | ${rxq}=${None}
+| | ... | ${min_rate}=${10000}
| | ...
| | Set Test Variable | ${use_tuned_cfs} | ${True}
| | Set Test Variable | ${framesize}
@@ -103,7 +92,7 @@
| | ${dut2_vm_refs}= | Create Dictionary
| | Set Test Variable | ${dut1_vm_refs}
| | Set Test Variable | ${dut2_vm_refs}
-| | Given Add '${wt}' worker threads and '${rxq}' rxqueues in 3-node single-link circular topology
+| | Given Add worker threads and rxqueues to all DUTs | ${phy_cores} | ${rxq}
| | And Add PCI devices to all DUTs
| | And Run Keyword If | ${get_framesize} < ${1522} | Add no multi seg to all DUTs
| | And Apply startup configuration on all VPP DUTs
@@ -128,223 +117,73 @@
*** Test Cases ***
| tc01-64B-1t1c-eth-l2bdbasemaclrn-eth-2vhostvr256-1vm-cfsrr1-ndrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with 1 phy core,\
-| | ... | 1 receive queue per NIC port.
-| | ... | [Ver] Find NDR for 64 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 10kpps.
-| | ...
| | [Tags] | 64B | 1C | NDRDISC
-| | ...
-| | [Template] | Discover NDR or PDR for L2 Bridge Domain with VM
-| | wt=1 | rxq=1 | framesize=${64} | min_rate=${10000} | search_type=NDR
+| | phy_cores=${1} | framesize=${64} | search_type=NDR
| tc02-64B-1t1c-eth-l2bdbasemaclrn-eth-2vhostvr256-1vm-cfsrr1-pdrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with 1 phy core,\
-| | ... | 1 receive queue per NIC port.
-| | ... | [Ver] Find PDR for 64 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 10kpps, LT=0.5%.
-| | ...
| | [Tags] | 64B | 1C | PDRDISC | SKIP_PATCH
-| | ...
-| | [Template] | Discover NDR or PDR for L2 Bridge Domain with VM
-| | wt=1 | rxq=1 | framesize=${64} | min_rate=${10000} | search_type=PDR
+| | phy_cores=${1} | framesize=${64} | search_type=PDR
| tc03-1518B-1t1c-etc-l2bdbasemaclrn-eth-2vhostvr256-1vm-cfsrr1-ndrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with 1 phy core,\
-| | ... | 1 receive queue per NIC port.
-| | ... | [Ver] Find NDR for 1518 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 10kpps.
-| | ...
| | [Tags] | 1518B | 1C | NDRDISC
-| | ...
-| | [Template] | Discover NDR or PDR for L2 Bridge Domain with VM
-| | wt=1 | rxq=1 | framesize=${1518} | min_rate=${10000} | search_type=NDR
+| | phy_cores=${1} | framesize=${1518} | search_type=NDR
| tc04-1518B-1t1c-eth-l2bdbasemaclrn-eth-2vhostvr256-1vm-cfsrr1-pdrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with 1 phy core,\
-| | ... | 1 receive queue per NIC port.
-| | ... | [Ver] Find PDR for 1518 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 10kpps, LT=0.5%.
-| | ...
| | [Tags] | 1518B | 1C | PDRDISC | SKIP_PATCH
-| | ...
-| | [Template] | Discover NDR or PDR for L2 Bridge Domain with VM
-| | wt=1 | rxq=1 | framesize=${1518} | min_rate=${10000} | search_type=PDR
+| | phy_cores=${1} | framesize=${1518} | search_type=PDR
| tc05-IMIX-1t1c-eth-l2bdbasemaclrn-eth-2vhostvr256-1vm-cfsrr1-ndrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with 1 phy core,\
-| | ... | 1 receive queue per NIC port.
-| | ... | [Ver] Find NDR for IMIX_v4_1 framesize using binary search start at\
-| | ... | 10GE linerate, step 10kpps.
-| | ... | IMIX_v4_1 = (28x64B; 16x570B; 4x1518B)
-| | ...
| | [Tags] | IMIX | 1C | NDRDISC
-| | ...
-| | [Template] | Discover NDR or PDR for L2 Bridge Domain with VM
-| | wt=1 | rxq=1 | framesize=IMIX_v4_1 | min_rate=${10000} | search_type=NDR
+| | phy_cores=${1} | framesize=IMIX_v4_1 | search_type=NDR
| tc06-IMIX-1t1c-eth-l2bdbasemaclrn-eth-2vhostvr256-1vm-cfsrr1-pdrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with 1 phy core,\
-| | ... | 1 receive queue per NIC port.
-| | ... | [Ver] Find PDR for IMIX_v4_1 framesize using binary search start at\
-| | ... | 10GE linerate, step 10kpps, LT=0.5%.
-| | ... | IMIX_v4_1 = (28x64B; 16x570B; 4x1518B)
-| | ...
| | [Tags] | IMIX | 1C | PDRDISC | SKIP_PATCH
-| | ...
-| | [Template] | Discover NDR or PDR for L2 Bridge Domain with VM
-| | wt=1 | rxq=1 | framesize=IMIX_v4_1 | min_rate=${10000} | search_type=PDR
+| | phy_cores=${1} | framesize=IMIX_v4_1 | search_type=PDR
| tc07-64B-2t2c-eth-l2bdbasemaclrn-eth-2vhostvr256-1vm-cfsrr1-ndrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with 2 phy cores,\
-| | ... | 1 receive queue per NIC port.
-| | ... | [Ver] Find NDR for 64 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 10kpps.
-| | ...
| | [Tags] | 64B | 2C | NDRDISC
-| | ...
-| | [Template] | Discover NDR or PDR for L2 Bridge Domain with VM
-| | wt=2 | rxq=1 | framesize=${64} | min_rate=${10000} | search_type=NDR
+| | phy_cores=${2} | framesize=${64} | search_type=NDR
| tc08-64B-2t2c-eth-l2bdbasemaclrn-eth-2vhostvr256-1vm-cfsrr1-pdrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with 2 phy cores,\
-| | ... | 1 receive queue per NIC port.
-| | ... | [Ver] Find PDR for 64 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 10kpps, LT=0.5%.
-| | ...
| | [Tags] | 64B | 2C | PDRDISC | SKIP_PATCH
-| | ...
-| | [Template] | Discover NDR or PDR for L2 Bridge Domain with VM
-| | wt=2 | rxq=1 | framesize=${64} | min_rate=${10000} | search_type=PDR
+| | phy_cores=${2} | framesize=${64} | search_type=PDR
| tc09-1518B-2t2c-eth-l2bdbasemaclrn-eth-2vhostvr256-1vm-cfsrr1-ndrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with 2 phy cores,\
-| | ... | 1 receive queue per NIC port.
-| | ... | [Ver] Find NDR for 1518 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 10kpps.
-| | ...
| | [Tags] | 1518B | 2C | NDRDISC | SKIP_PATCH
-| | ...
-| | [Template] | Discover NDR or PDR for L2 Bridge Domain with VM
-| | wt=2 | rxq=1 | framesize=${1518} | min_rate=${10000} | search_type=NDR
+| | phy_cores=${2} | framesize=${1518} | search_type=NDR
| tc10-1518B-2t2c-eth-l2bdbasemaclrn-eth-2vhostvr256-1vm-cfsrr1-pdrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with 2 phy cores,\
-| | ... | 1 receive queue per NIC port.
-| | ... | [Ver] Find PDR for 1518 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 10kpps, LT=0.5%.
-| | ...
| | [Tags] | 1518B | 2C | PDRDISC | SKIP_PATCH
-| | ...
-| | [Template] | Discover NDR or PDR for L2 Bridge Domain with VM
-| | wt=2 | rxq=1 | framesize=${1518} | min_rate=${10000} | search_type=PDR
+| | phy_cores=${2} | framesize=${1518} | search_type=PDR
| tc11-IMIX-2t2c-eth-l2bdbasemaclrn-eth-2vhostvr256-1vm-cfsrr1-ndrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with 2 phy cores,\
-| | ... | 1 receive queue per NIC port.
-| | ... | [Ver] Find NDR for IMIX_v4_1 framesize using binary search start at\
-| | ... | 10GE linerate, step 10kpps.
-| | ... | IMIX_v4_1 = (28x64B; 16x570B; 4x1518B)
-| | ...
| | [Tags] | IMIX | 2C | NDRDISC | SKIP_PATCH
-| | ...
-| | [Template] | Discover NDR or PDR for L2 Bridge Domain with VM
-| | wt=2 | rxq=1 | framesize=IMIX_v4_1 | min_rate=${10000} | search_type=NDR
+| | phy_cores=${2} | framesize=IMIX_v4_1 | search_type=NDR
| tc12-IMIX-2t2c-eth-l2bdbasemaclrn-eth-2vhostvr256-1vm-cfsrr1-pdrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with 2 phy cores,\
-| | ... | 1 receive queue per NIC port.
-| | ... | [Ver] Find PDR for IMIX_v4_1 framesize using binary search start at\
-| | ... | 10GE linerate, step 10kpps.
-| | ... | IMIX_v4_1 = (28x64B; 16x570B; 4x1518B)
-| | ...
| | [Tags] | IMIX | 2C | PDRDISC | SKIP_PATCH
-| | ...
-| | [Template] | Discover NDR or PDR for L2 Bridge Domain with VM
-| | wt=2 | rxq=1 | framesize=IMIX_v4_1 | min_rate=${10000} | search_type=PDR
+| | phy_cores=${2} | framesize=IMIX_v4_1 | search_type=PDR
| tc13-64B-4t4c-eth-l2bdbasemaclrn-eth-2vhostvr256-1vm-cfsrr1-ndrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with 4 phy cores,\
-| | ... | 2 receive queues per NIC port.
-| | ... | [Ver] Find NDR for 64 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 10kpps.
-| | ...
| | [Tags] | 64B | 4C | NDRDISC
-| | ...
-| | [Template] | Discover NDR or PDR for L2 Bridge Domain with VM
-| | wt=4 | rxq=2 | framesize=${64} | min_rate=${10000} | search_type=NDR
+| | phy_cores=${4} | framesize=${64} | search_type=NDR
| tc14-64B-4t4c-eth-l2bdbasemaclrn-eth-2vhostvr256-1vm-cfsrr1-pdrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with 4 phy cores,\
-| | ... | 2 receive queues per NIC port.
-| | ... | [Ver] Find PDR for 64 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 10kpps, LT=0.5%.
-| | ...
| | [Tags] | 64B | 4C | PDRDISC | SKIP_PATCH
-| | ...
-| | [Template] | Discover NDR or PDR for L2 Bridge Domain with VM
-| | wt=4 | rxq=2 | framesize=${64} | min_rate=${10000} | search_type=PDR
+| | phy_cores=${4} | framesize=${64} | search_type=PDR
| tc15-1518B-4t4c-eth-l2bdbasemaclrn-eth-2vhostvr256-1vm-cfsrr1-ndrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with 4 phy cores,\
-| | ... | 2 receive queues per NIC port.
-| | ... | [Ver] Find NDR for 1518 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 10kpps.
-| | ...
| | [Tags] | 1518B | 4C | NDRDISC | SKIP_PATCH
-| | ...
-| | [Template] | Discover NDR or PDR for L2 Bridge Domain with VM
-| | wt=4 | rxq=2 | framesize=${1518} | min_rate=${10000} | search_type=NDR
+| | phy_cores=${4} | framesize=${1518} | search_type=NDR
| tc16-1518B-4t4c-eth-l2bdbasemaclrn-eth-2vhostvr256-1vm-cfsrr1-pdrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with 4 phy cores,\
-| | ... | 2 receive queues per NIC port.
-| | ... | [Ver] Find PDR for 1518 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 10kpps, LT=0.5%.
-| | ...
| | [Tags] | 1518B | 4C | PDRDISC | SKIP_PATCH
-| | ...
-| | [Template] | Discover NDR or PDR for L2 Bridge Domain with VM
-| | wt=4 | rxq=2 | framesize=${1518} | min_rate=${10000} | search_type=PDR
+| | phy_cores=${4} | framesize=${1518} | search_type=PDR
| tc17-IMIX-4t4c-eth-l2bdbasemaclrn-eth-2vhostvr256-1vm-cfsrr1-ndrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with 4 phy cores,\
-| | ... | 2 receive queues per NIC port.
-| | ... | [Ver] Find NDR for IMIX_v4_1 framesize using binary search start at\
-| | ... | 10GE linerate, step 10kpps.
-| | ... | IMIX_v4_1 = (28x64B; 16x570B; 4x1518B)
-| | ...
| | [Tags] | IMIX | 4C | NDRDISC | SKIP_PATCH
-| | ...
-| | [Template] | Discover NDR or PDR for L2 Bridge Domain with VM
-| | wt=4 | rxq=2 | framesize=IMIX_v4_1 | min_rate=${10000} | search_type=NDR
+| | phy_cores=${4} | framesize=IMIX_v4_1 | search_type=NDR
| tc18-IMIX-4t4c-eth-l2bdbasemaclrn-eth-2vhostvr256-1vm-cfsrr1-pdrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with 4 phy cores,\
-| | ... | 2 receive queues per NIC port.
-| | ... | [Ver] Find PDR for IMIX_v4_1 framesize using binary search start at\
-| | ... | 10GE linerate, step 10kpps, LT=0.5%.
-| | ... | IMIX_v4_1 = (28x64B; 16x570B; 4x1518B)
-| | ...
| | [Tags] | IMIX | 4C | PDRDISC | SKIP_PATCH
-| | ...
-| | [Template] | Discover NDR or PDR for L2 Bridge Domain with VM
-| | wt=4 | rxq=2 | framesize=IMIX_v4_1 | min_rate=${10000} | search_type=PDR
+| | phy_cores=${4} | framesize=IMIX_v4_1 | search_type=PDR
diff --git a/tests/vpp/perf/vm_vhost/10ge2p1x520-eth-l2bdbasemaclrn-eth-2vhostvr256-1vm-mrr.robot b/tests/vpp/perf/vm_vhost/10ge2p1x520-eth-l2bdbasemaclrn-eth-2vhostvr256-1vm-mrr.robot
index 3d651fdafc..eafd275085 100644
--- a/tests/vpp/perf/vm_vhost/10ge2p1x520-eth-l2bdbasemaclrn-eth-2vhostvr256-1vm-mrr.robot
+++ b/tests/vpp/perf/vm_vhost/10ge2p1x520-eth-l2bdbasemaclrn-eth-2vhostvr256-1vm-mrr.robot
@@ -27,6 +27,8 @@
| ... | dut1_node=${dut1} | dut1_vm_refs=${dut1_vm_refs}
| ... | dut2_node=${dut2} | dut2_vm_refs=${dut2_vm_refs}
| ...
+| Test Template | Local template
+| ...
| Documentation | *Raw results L2BD test cases with vhost*
| ...
| ... | *[Top] Network Topologies:* TG-DUT1-DUT2-TG 3-node circular topology
@@ -62,16 +64,21 @@
| ${traffic_profile}= | trex-sl-3n-ethip4-ip4src254
*** Keywords ***
-| Check RR for eth-l2bdbasemaclrn-eth-2vhostvr256-1vm
+| Local template
| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 routing config with ${wt} thread, ${wt} phy\
-| | ... | core, ${rxq} receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for ${framesize} frames using single\
+| | ... | [Cfg] DUT runs IPv4 routing config.
+| | ... | Each DUT uses ${phy_cores} physical core(s) for worker threads.
+| | ... | [Ver] Measure MaxReceivedRate for ${framesize}B frames using single\
| | ... | trial throughput test.
| | ...
-| | [Arguments] | ${framesize} | ${wt} | ${rxq}
+| | ... | *Arguments:*
+| | ... | - framesize - Framesize in Bytes in integer or string (IMIX_v4_1).
+| | ... | Type: integer, string
+| | ... | - phy_cores - Number of physical cores. Type: integer
+| | ... | - rxq - Number of RX queues, default value: ${None}. Type: integer
+| | ...
+| | [Arguments] | ${framesize} | ${phy_cores} | ${rxq}=${None}
| | ...
-| | # Test Variables required for test and test teardown
| | Set Test Variable | ${framesize}
| | ${get_framesize}= | Get Frame Size | ${framesize}
| | ${max_rate}= | Calculate pps | ${s_limit} | ${get_framesize}
@@ -82,7 +89,7 @@
| | ${jumbo_frames}= | Set Variable If | ${get_framesize} < ${1522}
| | ... | ${False} | ${True}
| | ...
-| | Given Add '${wt}' worker threads and '${rxq}' rxqueues in 3-node single-link circular topology
+| | Given Add worker threads and rxqueues to all DUTs | ${phy_cores} | ${rxq}
| | And Add PCI devices to all DUTs
| | And Run Keyword If | ${get_framesize} < ${1522}
| | ... | Add no multi seg to all DUTs
@@ -102,148 +109,49 @@
*** Test Cases ***
| tc01-64B-1t1c-eth-l2bdbasemaclrn-eth-2vhostvr256-1vm-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with 1 phy core,\
-| | ... | 1 receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 64B frames using single\
-| | ... | trial throughput test.
-| | ...
| | [Tags] | 64B | 1C
-| | ...
-| | [Template] | Check RR for eth-l2bdbasemaclrn-eth-2vhostvr256-1vm
-| | framesize=${64} | wt=1 | rxq=1
+| | framesize=${64} | phy_cores=${1}
| tc02-1518B-1t1c-eth-l2bdbasemaclrn-eth-2vhostvr256-1vm
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with 1 phy core,\
-| | ... | 1 receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 1518B frames using single\
-| | ... | trial throughput test.
-| | ...
| | [Tags] | 1518B | 1C
-| | ...
-| | [Template] | Check RR for eth-l2bdbasemaclrn-eth-2vhostvr256-1vm
-| | framesize=${1518} | wt=1 | rxq=1
+| | framesize=${1518} | phy_cores=${1}
| tc03-9000B-1t1c-eth-l2bdbasemaclrn-eth-2vhostvr256-1vm
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with 1 phy core,\
-| | ... | 1 receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 9000B frames using single\
-| | ... | trial throughput test.
-| | ...
| | [Tags] | 9000B | 1C
-| | ...
-| | [Template] | Check RR for eth-l2bdbasemaclrn-eth-2vhostvr256-1vm
-| | framesize=${9000} | wt=1 | rxq=1
+| | framesize=${9000} | phy_cores=${1}
| tc04-IMIX-1t1c-eth-l2bdbasemaclrn-eth-2vhostvr256-1vm-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with 1 phy core,\
-| | ... | 1 receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for IMIX_v4_1 frames using single\
-| | ... | trial throughput test.
-| | ... | IMIX_v4_1 = (28x64B; 16x570B; 4x1518B)
-| | ...
| | [Tags] | IMIX | 1C
-| | ...
-| | [Template] | Check RR for eth-l2bdbasemaclrn-eth-2vhostvr256-1vm
-| | framesize=IMIX_v4_1 | wt=1 | rxq=1
+| | framesize=IMIX_v4_1 | phy_cores=${1}
| tc05-64B-2t2c-eth-l2bdbasemaclrn-eth-2vhostvr256-1vm-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with 2 phy cores,\
-| | ... | 1 receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 64B frames using single\
-| | ... | trial throughput test.
-| | ...
| | [Tags] | 64B | 2C
-| | ...
-| | [Template] | Check RR for eth-l2bdbasemaclrn-eth-2vhostvr256-1vm
-| | framesize=${64} | wt=2 | rxq=1
+| | framesize=${64} | phy_cores=${2}
| tc06-1518B-2t2c-eth-l2bdbasemaclrn-eth-2vhostvr256-1vm-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with 2 phy cores,\
-| | ... | 1 receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 1518B frames using single\
-| | ... | trial throughput test.
-| | ...
| | [Tags] | 1518B | 2C
-| | ...
-| | [Template] | Check RR for eth-l2bdbasemaclrn-eth-2vhostvr256-1vm
-| | framesize=${1518} | wt=2 | rxq=1
+| | framesize=${1518} | phy_cores=${2}
| tc07-9000B-2t2c-eth-l2bdbasemaclrn-eth-2vhostvr256-1vm-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with 2 phy cores,\
-| | ... | 1 receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 9000B frames using single\
-| | ... | trial throughput test.
-| | ...
| | [Tags] | 9000B | 2C
-| | ...
-| | [Template] | Check RR for eth-l2bdbasemaclrn-eth-2vhostvr256-1vm
-| | framesize=${9000} | wt=2 | rxq=1
+| | framesize=${9000} | phy_cores=${2}
| tc08-IMIX-2t2c-eth-l2bdbasemaclrn-eth-2vhostvr256-1vm-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with 2 phy cores,\
-| | ... | 1 receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for IMIX_v4_1 frames using single\
-| | ... | trial throughput test.
-| | ... | IMIX_v4_1 = (28x64B; 16x570B; 4x1518B)
-| | ...
| | [Tags] | IMIX | 2C
-| | ...
-| | [Template] | Check RR for eth-l2bdbasemaclrn-eth-2vhostvr256-1vm
-| | framesize=IMIX_v4_1 | wt=2 | rxq=1
+| | framesize=IMIX_v4_1 | phy_cores=${2}
| tc09-64B-4t4c-eth-l2bdbasemaclrn-eth-2vhostvr256-1vm-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with 4 phy cores,\
-| | ... | 2 receive queues per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 64B frames using single\
-| | ... | trial throughput test.
-| | ...
| | [Tags] | 64B | 4C
-| | ...
-| | [Template] | Check RR for eth-l2bdbasemaclrn-eth-2vhostvr256-1vm
-| | framesize=${64} | wt=4 | rxq=2
+| | framesize=${64} | phy_cores=${4}
| tc10-1518B-4t4c-eth-l2bdbasemaclrn-eth-2vhostvr256-1vm-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with 4 phy cores,\
-| | ... | 2 receive queues per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 1518B frames using single\
-| | ... | trial throughput test.
-| | ...
| | [Tags] | 1518B | 4C
-| | ...
-| | [Template] | Check RR for eth-l2bdbasemaclrn-eth-2vhostvr256-1vm
-| | framesize=${1518} | wt=4 | rxq=2
+| | framesize=${1518} | phy_cores=${4}
| tc11-9000B-4t4c-eth-l2bdbasemaclrn-eth-2vhostvr256-1vm-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with 4 phy cores,\
-| | ... | 2 receive queues per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 9000B frames using single\
-| | ... | trial throughput test.
-| | ...
| | [Tags] | 9000B | 4C
-| | ...
-| | [Template] | Check RR for eth-l2bdbasemaclrn-eth-2vhostvr256-1vm
-| | framesize=${9000} | wt=4 | rxq=2
+| | framesize=${9000} | phy_cores=${4}
| tc12-IMIX-4t4c-eth-l2bdbasemaclrn-eth-2vhostvr256-1vm-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with 4 phy cores,\
-| | ... | 2 receive queues per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for IMIX_v4_1 frames using single\
-| | ... | trial throughput test.
-| | ... | IMIX_v4_1 = (28x64B; 16x570B; 4x1518B)
-| | ...
| | [Tags] | IMIX | 4C
-| | ...
-| | [Template] | Check RR for eth-l2bdbasemaclrn-eth-2vhostvr256-1vm
-| | framesize=IMIX_v4_1 | wt=4 | rxq=2
+| | framesize=IMIX_v4_1 | phy_cores=${4}
diff --git a/tests/vpp/perf/vm_vhost/10ge2p1x520-eth-l2bdbasemaclrn-eth-2vhostvr256-1vm-ndrpdrdisc.robot b/tests/vpp/perf/vm_vhost/10ge2p1x520-eth-l2bdbasemaclrn-eth-2vhostvr256-1vm-ndrpdrdisc.robot
index d92bffe18c..c2e65ea7ad 100644
--- a/tests/vpp/perf/vm_vhost/10ge2p1x520-eth-l2bdbasemaclrn-eth-2vhostvr256-1vm-ndrpdrdisc.robot
+++ b/tests/vpp/perf/vm_vhost/10ge2p1x520-eth-l2bdbasemaclrn-eth-2vhostvr256-1vm-ndrpdrdisc.robot
@@ -28,6 +28,8 @@
| ... | dut1_node=${dut1} | dut1_vm_refs=${dut1_vm_refs}
| ... | dut2_node=${dut2} | dut2_vm_refs=${dut2_vm_refs}
| ...
+| Test Template | Local template
+| ...
| Documentation | *RFC2544: Packet throughput L2BD test cases with vhost*
| ...
| ... | *[Top] Network Topologies:* TG-DUT1-DUT2-TG 3-node circular topology
@@ -70,22 +72,9 @@
| ${traffic_profile} | trex-sl-3n-ethip4-ip4src254
*** Keywords ***
-| Discover NDR or PDR for L2 Bridge Domain with VM
-| | [Arguments] | ${wt} | ${rxq} | ${framesize} | ${min_rate} | ${search_type}
-| | ...
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with required number of threads,\
-| | ... | phy cores and receive queues per NIC port.
-| | ... | [Ver] Find NDR or PDR for defined frame size using binary search\
-| | ... | start at 10GE linerate with specified step.
-| | ...
-| | ... | *Arguments:*
-| | ... | - wt - Number of worker threads to be used. Type: integer
-| | ... | - rxq - Number of Rx queues to be used. Type: integer
-| | ... | - framesize - L2 Frame Size [B]. Type: integer
-| | ... | - min_rate - Lower limit of search [pps]. Type: float
-| | ... | - search_type - Type of the search - non drop rate (NDR) or partial
-| | ... | drop rare (PDR). Type: string
+| Local template
+| | [Arguments] | ${phy_cores} | ${framesize} | ${search_type} | ${rxq}=${None}
+| | ... | ${min_rate}=${10000}
| | ...
| | Set Test Variable | ${framesize}
| | Set Test Variable | ${min_rate}
@@ -100,7 +89,7 @@
| | ${dut2_vm_refs}= | Create Dictionary
| | Set Test Variable | ${dut1_vm_refs}
| | Set Test Variable | ${dut2_vm_refs}
-| | Given Add '${wt}' worker threads and '${rxq}' rxqueues in 3-node single-link circular topology
+| | Given Add worker threads and rxqueues to all DUTs | ${phy_cores} | ${rxq}
| | And Add PCI devices to all DUTs
| | And Run Keyword If | ${get_framesize} < ${1522} | Add no multi seg to all DUTs
| | And Apply startup configuration on all VPP DUTs
@@ -124,223 +113,73 @@
*** Test Cases ***
| tc01-64B-1t1c-eth-l2bdbasemaclrn-eth-2vhostvr256-1vm-ndrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with 1 phy core,\
-| | ... | 1 receive queue per NIC port.
-| | ... | [Ver] Find NDR for 64 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 10kpps.
-| | ...
| | [Tags] | 64B | 1C | NDRDISC
-| | ...
-| | [Template] | Discover NDR or PDR for L2 Bridge Domain with VM
-| | wt=1 | rxq=1 | framesize=${64} | min_rate=${10000} | search_type=NDR
+| | phy_cores=${1} | framesize=${64} | search_type=NDR
| tc02-64B-1t1c-eth-l2bdbasemaclrn-eth-2vhostvr256-1vm-pdrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with 1 phy core,\
-| | ... | 1 receive queue per NIC port.
-| | ... | [Ver] Find PDR for 64 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 10kpps, LT=0.5%.
-| | ...
| | [Tags] | 64B | 1C | PDRDISC | SKIP_PATCH
-| | ...
-| | [Template] | Discover NDR or PDR for L2 Bridge Domain with VM
-| | wt=1 | rxq=1 | framesize=${64} | min_rate=${10000} | search_type=PDR
+| | phy_cores=${1} | framesize=${64} | search_type=PDR
| tc03-1518B-1t1c-etc-l2bdbasemaclrn-eth-2vhostvr256-1vm-ndrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with 1 phy core,\
-| | ... | 1 receive queue per NIC port.
-| | ... | [Ver] Find NDR for 1518 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 10kpps.
-| | ...
| | [Tags] | 1518B | 1C | NDRDISC
-| | ...
-| | [Template] | Discover NDR or PDR for L2 Bridge Domain with VM
-| | wt=1 | rxq=1 | framesize=${1518} | min_rate=${10000} | search_type=NDR
+| | phy_cores=${1} | framesize=${1518} | search_type=NDR
| tc04-1518B-1t1c-eth-l2bdbasemaclrn-eth-2vhostvr256-1vm-pdrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with 1 phy core,\
-| | ... | 1 receive queue per NIC port.
-| | ... | [Ver] Find PDR for 1518 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 10kpps, LT=0.5%.
-| | ...
| | [Tags] | 1518B | 1C | PDRDISC | SKIP_PATCH
-| | ...
-| | [Template] | Discover NDR or PDR for L2 Bridge Domain with VM
-| | wt=1 | rxq=1 | framesize=${1518} | min_rate=${10000} | search_type=PDR
+| | phy_cores=${1} | framesize=${1518} | search_type=PDR
| tc05-IMIX-1t1c-eth-l2bdbasemaclrn-eth-2vhostvr256-1vm-ndrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with 1 phy core,\
-| | ... | 1 receive queue per NIC port.
-| | ... | [Ver] Find NDR for IMIX_v4_1 framesize using binary search start at\
-| | ... | 10GE linerate, step 10kpps.
-| | ... | IMIX_v4_1 = (28x64B; 16x570B; 4x1518B)
-| | ...
| | [Tags] | IMIX | 1C | NDRDISC
-| | ...
-| | [Template] | Discover NDR or PDR for L2 Bridge Domain with VM
-| | wt=1 | rxq=1 | framesize=IMIX_v4_1 | min_rate=${10000} | search_type=NDR
+| | phy_cores=${1} | framesize=IMIX_v4_1 | search_type=NDR
| tc06-IMIX-1t1c-eth-l2bdbasemaclrn-eth-2vhostvr256-1vm-pdrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with 1 phy core,\
-| | ... | 1 receive queue per NIC port.
-| | ... | [Ver] Find PDR for IMIX_v4_1 framesize using binary search start at\
-| | ... | 10GE linerate, step 10kpps, LT=0.5%.
-| | ... | IMIX_v4_1 = (28x64B; 16x570B; 4x1518B)
-| | ...
| | [Tags] | IMIX | 1C | PDRDISC | SKIP_PATCH
-| | ...
-| | [Template] | Discover NDR or PDR for L2 Bridge Domain with VM
-| | wt=1 | rxq=1 | framesize=IMIX_v4_1 | min_rate=${10000} | search_type=PDR
+| | phy_cores=${1} | framesize=IMIX_v4_1 | search_type=PDR
| tc07-64B-2t2c-eth-l2bdbasemaclrn-eth-2vhostvr256-1vm-ndrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with 2 phy cores,\
-| | ... | 1 receive queue per NIC port.
-| | ... | [Ver] Find NDR for 64 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 10kpps.
-| | ...
| | [Tags] | 64B | 2C | NDRDISC
-| | ...
-| | [Template] | Discover NDR or PDR for L2 Bridge Domain with VM
-| | wt=2 | rxq=1 | framesize=${64} | min_rate=${10000} | search_type=NDR
+| | phy_cores=${2} | framesize=${64} | search_type=NDR
| tc08-64B-2t2c-eth-l2bdbasemaclrn-eth-2vhostvr256-1vm-pdrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with 2 phy cores,\
-| | ... | 1 receive queue per NIC port.
-| | ... | [Ver] Find PDR for 64 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 10kpps, LT=0.5%.
-| | ...
| | [Tags] | 64B | 2C | PDRDISC | SKIP_PATCH
-| | ...
-| | [Template] | Discover NDR or PDR for L2 Bridge Domain with VM
-| | wt=2 | rxq=1 | framesize=${64} | min_rate=${10000} | search_type=PDR
+| | phy_cores=${2} | framesize=${64} | search_type=PDR
| tc09-1518B-2t2c-eth-l2bdbasemaclrn-eth-2vhostvr256-1vm-ndrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with 2 phy cores,\
-| | ... | 1 receive queue per NIC port.
-| | ... | [Ver] Find NDR for 1518 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 10kpps.
-| | ...
| | [Tags] | 1518B | 2C | NDRDISC | SKIP_PATCH
-| | ...
-| | [Template] | Discover NDR or PDR for L2 Bridge Domain with VM
-| | wt=2 | rxq=1 | framesize=${1518} | min_rate=${10000} | search_type=NDR
+| | phy_cores=${2} | framesize=${1518} | search_type=NDR
| tc10-1518B-2t2c-eth-l2bdbasemaclrn-eth-2vhostvr256-1vm-pdrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with 2 phy cores,\
-| | ... | 1 receive queue per NIC port.
-| | ... | [Ver] Find PDR for 1518 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 10kpps, LT=0.5%.
-| | ...
| | [Tags] | 1518B | 2C | PDRDISC | SKIP_PATCH
-| | ...
-| | [Template] | Discover NDR or PDR for L2 Bridge Domain with VM
-| | wt=2 | rxq=1 | framesize=${1518} | min_rate=${10000} | search_type=PDR
+| | phy_cores=${2} | framesize=${1518} | search_type=PDR
| tc11-IMIX-2t2c-eth-l2bdbasemaclrn-eth-2vhostvr256-1vm-ndrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with 2 phy cores,\
-| | ... | 1 receive queue per NIC port.
-| | ... | [Ver] Find NDR for IMIX_v4_1 framesize using binary search start at\
-| | ... | 10GE linerate, step 10kpps.
-| | ... | IMIX_v4_1 = (28x64B; 16x570B; 4x1518B)
-| | ...
| | [Tags] | IMIX | 2C | NDRDISC | SKIP_PATCH
-| | ...
-| | [Template] | Discover NDR or PDR for L2 Bridge Domain with VM
-| | wt=2 | rxq=1 | framesize=IMIX_v4_1 | min_rate=${10000} | search_type=NDR
+| | phy_cores=${2} | framesize=IMIX_v4_1 | search_type=NDR
| tc12-IMIX-2t2c-eth-l2bdbasemaclrn-eth-2vhostvr256-1vm-pdrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with 2 phy cores,\
-| | ... | 1 receive queue per NIC port.
-| | ... | [Ver] Find PDR for IMIX_v4_1 framesize using binary search start at\
-| | ... | 10GE linerate, step 10kpps.
-| | ... | IMIX_v4_1 = (28x64B; 16x570B; 4x1518B)
-| | ...
| | [Tags] | IMIX | 2C | PDRDISC | SKIP_PATCH
-| | ...
-| | [Template] | Discover NDR or PDR for L2 Bridge Domain with VM
-| | wt=2 | rxq=1 | framesize=IMIX_v4_1 | min_rate=${10000} | search_type=PDR
+| | phy_cores=${2} | framesize=IMIX_v4_1 | search_type=PDR
| tc13-64B-4t4c-eth-l2bdbasemaclrn-eth-2vhostvr256-1vm-ndrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with 4 phy cores,\
-| | ... | 2 receive queues per NIC port.
-| | ... | [Ver] Find NDR for 64 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 10kpps.
-| | ...
| | [Tags] | 64B | 4C | NDRDISC
-| | ...
-| | [Template] | Discover NDR or PDR for L2 Bridge Domain with VM
-| | wt=4 | rxq=2 | framesize=${64} | min_rate=${10000} | search_type=NDR
+| | phy_cores=${4} | framesize=${64} | search_type=NDR
| tc14-64B-4t4c-eth-l2bdbasemaclrn-eth-2vhostvr256-1vm-pdrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with 4 phy cores,\
-| | ... | 2 receive queues per NIC port.
-| | ... | [Ver] Find PDR for 64 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 10kpps, LT=0.5%.
-| | ...
| | [Tags] | 64B | 4C | PDRDISC | SKIP_PATCH
-| | ...
-| | [Template] | Discover NDR or PDR for L2 Bridge Domain with VM
-| | wt=4 | rxq=2 | framesize=${64} | min_rate=${10000} | search_type=PDR
+| | phy_cores=${4} | framesize=${64} | search_type=PDR
| tc15-1518B-4t4c-eth-l2bdbasemaclrn-eth-2vhostvr256-1vm-ndrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with 4 phy cores,\
-| | ... | 2 receive queues per NIC port.
-| | ... | [Ver] Find NDR for 1518 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 10kpps.
-| | ...
| | [Tags] | 1518B | 4C | NDRDISC | SKIP_PATCH
-| | ...
-| | [Template] | Discover NDR or PDR for L2 Bridge Domain with VM
-| | wt=4 | rxq=2 | framesize=${1518} | min_rate=${10000} | search_type=NDR
+| | phy_cores=${4} | framesize=${1518} | search_type=NDR
| tc16-1518B-4t4c-eth-l2bdbasemaclrn-eth-2vhostvr256-1vm-pdrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with 4 phy cores,\
-| | ... | 2 receive queues per NIC port.
-| | ... | [Ver] Find PDR for 1518 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 10kpps, LT=0.5%.
-| | ...
| | [Tags] | 1518B | 4C | PDRDISC | SKIP_PATCH
-| | ...
-| | [Template] | Discover NDR or PDR for L2 Bridge Domain with VM
-| | wt=4 | rxq=2 | framesize=${1518} | min_rate=${10000} | search_type=PDR
+| | phy_cores=${4} | framesize=${1518} | search_type=PDR
| tc17-IMIX-4t4c-eth-l2bdbasemaclrn-eth-2vhostvr256-1vm-ndrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with 4 phy cores,\
-| | ... | 2 receive queues per NIC port.
-| | ... | [Ver] Find NDR for IMIX_v4_1 framesize using binary search start at\
-| | ... | 10GE linerate, step 10kpps.
-| | ... | IMIX_v4_1 = (28x64B; 16x570B; 4x1518B)
-| | ...
| | [Tags] | IMIX | 4C | NDRDISC | SKIP_PATCH
-| | ...
-| | [Template] | Discover NDR or PDR for L2 Bridge Domain with VM
-| | wt=4 | rxq=2 | framesize=IMIX_v4_1 | min_rate=${10000} | search_type=NDR
+| | phy_cores=${4} | framesize=IMIX_v4_1 | search_type=NDR
| tc18-IMIX-4t4c-eth-l2bdbasemaclrn-eth-2vhostvr256-1vm-pdrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with 4 phy cores,\
-| | ... | 2 receive queues per NIC port.
-| | ... | [Ver] Find PDR for IMIX_v4_1 framesize using binary search start at\
-| | ... | 10GE linerate, step 10kpps, LT=0.5%.
-| | ... | IMIX_v4_1 = (28x64B; 16x570B; 4x1518B)
-| | ...
| | [Tags] | IMIX | 4C | PDRDISC | SKIP_PATCH
-| | ...
-| | [Template] | Discover NDR or PDR for L2 Bridge Domain with VM
-| | wt=4 | rxq=2 | framesize=IMIX_v4_1 | min_rate=${10000} | search_type=PDR
+| | phy_cores=${4} | framesize=IMIX_v4_1 | search_type=PDR
diff --git a/tests/vpp/perf/vm_vhost/10ge2p1x520-eth-l2bdbasemaclrn-eth-4vhostvr1024-2vm-mrr.robot b/tests/vpp/perf/vm_vhost/10ge2p1x520-eth-l2bdbasemaclrn-eth-4vhostvr1024-2vm-mrr.robot
index aae10f1a86..dd9b38c659 100644
--- a/tests/vpp/perf/vm_vhost/10ge2p1x520-eth-l2bdbasemaclrn-eth-4vhostvr1024-2vm-mrr.robot
+++ b/tests/vpp/perf/vm_vhost/10ge2p1x520-eth-l2bdbasemaclrn-eth-4vhostvr1024-2vm-mrr.robot
@@ -27,6 +27,8 @@
| ... | dut1_node=${dut1} | dut1_vm_refs=${dut1_vm_refs}
| ... | dut2_node=${dut2} | dut2_vm_refs=${dut2_vm_refs}
| ...
+| Test Template | Local template
+| ...
| Documentation | *Raw results L2BD test cases with vhost*
| ...
| ... | *[Top] Network Topologies:* TG-DUT1-DUT2-TG 3-node circular topology
@@ -60,16 +62,21 @@
| ${traffic_profile}= | trex-sl-3n-ethip4-ip4src254
*** Keywords ***
-| Check RR for eth-l2bdbasemaclrn-eth-4vhostvr1024-2vm
+| Local template
| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with ${wt} thread, ${wt} phy\
-| | ... | core, ${rxq} receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for ${framesize} frames using single\
+| | ... | [Cfg] DUT runs L2BD switching config.
+| | ... | Each DUT uses ${phy_cores} physical core(s) for worker threads.
+| | ... | [Ver] Measure MaxReceivedRate for ${framesize}B frames using single\
| | ... | trial throughput test.
| | ...
-| | [Arguments] | ${framesize} | ${wt} | ${rxq}
+| | ... | *Arguments:*
+| | ... | - framesize - Framesize in Bytes in integer or string (IMIX_v4_1).
+| | ... | Type: integer, string
+| | ... | - phy_cores - Number of physical cores. Type: integer
+| | ... | - rxq - Number of RX queues, default value: ${None}. Type: integer
+| | ...
+| | [Arguments] | ${framesize} | ${phy_cores} | ${rxq}=${None}
| | ...
-| | # Test Variables required for test and test teardown
| | Set Test Variable | ${framesize}
| | ${get_framesize}= | Get Frame Size | ${framesize}
| | ${max_rate}= | Calculate pps | ${s_limit} | ${get_framesize}
@@ -81,7 +88,7 @@
| | ... | ${False} | ${True}
| | Set Test Variable | ${jumbo_frames}
| | ...
-| | Given Add '${wt}' worker threads and '${rxq}' rxqueues in 3-node single-link circular topology
+| | Given Add worker threads and rxqueues to all DUTs | ${phy_cores} | ${rxq}
| | And Add PCI devices to all DUTs
| | And Run Keyword If | ${get_framesize} < ${1522}
| | ... | Add no multi seg to all DUTs
@@ -93,148 +100,49 @@
*** Test Cases ***
| tc01-64B-1t1c-eth-l2bdbasemaclrn-eth-4vhostvr1024-2vm-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with 1 phy\
-| | ... | core, 1 receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 64B frames using single\
-| | ... | trial throughput test.
-| | ...
| | [Tags] | 64B | 1C
-| | ...
-| | [Template] | Check RR for eth-l2bdbasemaclrn-eth-4vhostvr1024-2vm
-| | framesize=${64} | wt=1 | rxq=1
+| | framesize=${64} | phy_cores=${1}
| tc02-1518B-1t1c-eth-l2bdbasemaclrn-eth-4vhostvr1024-2vm-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with 1 phy\
-| | ... | core, 1 receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 1518B frames using single\
-| | ... | trial throughput test.
-| | ...
| | [Tags] | 1518B | 1C
-| | ...
-| | [Template] | Check RR for eth-l2bdbasemaclrn-eth-4vhostvr1024-2vm
-| | framesize=${1518} | wt=1 | rxq=1
+| | framesize=${1518} | phy_cores=${1}
| tc03-9000B-1t1c-eth-l2bdbasemaclrn-eth-4vhostvr1024-2vm-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with 1 phy\
-| | ... | core, 1 receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 9000B frames using single\
-| | ... | trial throughput test.
-| | ...
| | [Tags] | 9000B | 1C
-| | ...
-| | [Template] | Check RR for eth-l2bdbasemaclrn-eth-4vhostvr1024-2vm
-| | framesize=${9000} | wt=1 | rxq=1
+| | framesize=${9000} | phy_cores=${1}
| tc04-IMIX-1t1c-eth-l2bdbasemaclrn-eth-4vhostvr1024-2vm-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with 1 phy\
-| | ... | core, 1 receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for IMIX_v4_1 frames using single\
-| | ... | trial throughput test.
-| | ... | IMIX_v4_1 = (28x64B; 16x570B; 4x1518B)
-| | ...
| | [Tags] | IMIX | 1C
-| | ...
-| | [Template] | Check RR for eth-l2bdbasemaclrn-eth-4vhostvr1024-2vm
-| | framesize=IMIX_v4_1 | wt=1 | rxq=1
+| | framesize=IMIX_v4_1 | phy_cores=${1}
| tc05-64B-2t2c-eth-l2bdbasemaclrn-eth-4vhostvr1024-2vm-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with 2 phy\
-| | ... | cores, 1 receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 64B frames using single\
-| | ... | trial throughput test.
-| | ...
| | [Tags] | 64B | 2C
-| | ...
-| | [Template] | Check RR for eth-l2bdbasemaclrn-eth-4vhostvr1024-2vm
-| | framesize=${64} | wt=2 | rxq=1
+| | framesize=${64} | phy_cores=${2}
| tc06-1518B-2t2c-eth-l2bdbasemaclrn-eth-4vhostvr1024-2vm-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with 2 phy\
-| | ... | cores, 1 receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 1518B frames using single\
-| | ... | trial throughput test.
-| | ...
| | [Tags] | 1518B | 2C
-| | ...
-| | [Template] | Check RR for eth-l2bdbasemaclrn-eth-4vhostvr1024-2vm
-| | framesize=${1518} | wt=2 | rxq=1
+| | framesize=${1518} | phy_cores=${2}
| tc07-9000B-2t2c-eth-l2bdbasemaclrn-eth-4vhostvr1024-2vm-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with 2 phy\
-| | ... | cores, 1 receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 9000B frames using single\
-| | ... | trial throughput test.
-| | ...
| | [Tags] | 9000B | 2C
-| | ...
-| | [Template] | Check RR for eth-l2bdbasemaclrn-eth-4vhostvr1024-2vm
-| | framesize=${9000} | wt=2 | rxq=1
+| | framesize=${9000} | phy_cores=${2}
| tc08-IMIX-2t2c-eth-l2bdbasemaclrn-eth-4vhostvr1024-2vm-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with 2 phy\
-| | ... | cores, 1 receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for IMIX_v4_1 frames using single\
-| | ... | trial throughput test.
-| | ... | IMIX_v4_1 = (28x64B; 16x570B; 4x1518B)
-| | ...
| | [Tags] | IMIX | 2C
-| | ...
-| | [Template] | Check RR for eth-l2bdbasemaclrn-eth-4vhostvr1024-2vm
-| | framesize=IMIX_v4_1 | wt=2 | rxq=1
+| | framesize=IMIX_v4_1 | phy_cores=${2}
| tc09-64B-4t4c-eth-l2bdbasemaclrn-eth-4vhostvr1024-2vm-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with 4 phy\
-| | ... | cores, 2 receive queues per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 64B frames using single\
-| | ... | trial throughput test.
-| | ...
| | [Tags] | 64B | 4C
-| | ...
-| | [Template] | Check RR for eth-l2bdbasemaclrn-eth-4vhostvr1024-2vm
-| | framesize=${64} | wt=4 | rxq=2
+| | framesize=${64} | phy_cores=${4}
| tc10-1518B-4t4c-eth-l2bdbasemaclrn-eth-4vhostvr1024-2vm-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with 4 phy\
-| | ... | cores, 2 receive queues per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 1518B frames using single\
-| | ... | trial throughput test.
-| | ...
| | [Tags] | 1518B | 4C
-| | ...
-| | [Template] | Check RR for eth-l2bdbasemaclrn-eth-4vhostvr1024-2vm
-| | framesize=${1518} | wt=4 | rxq=2
+| | framesize=${1518} | phy_cores=${4}
| tc11-9000B-4t4c-eth-l2bdbasemaclrn-eth-4vhostvr1024-2vm-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with 4 phy\
-| | ... | cores, 2 receive queues per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 9000B frames using single\
-| | ... | trial throughput test.
-| | ...
| | [Tags] | 9000B | 4C
-| | ...
-| | [Template] | Check RR for eth-l2bdbasemaclrn-eth-4vhostvr1024-2vm
-| | framesize=${9000} | wt=4 | rxq=2
+| | framesize=${9000} | phy_cores=${4}
| tc12-IMIX-4t4c-eth-l2bdbasemaclrn-eth-4vhostvr1024-2vm-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with 4 phy\
-| | ... | cores, 2 receive queues per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for IMIX_v4_1 frames using single\
-| | ... | trial throughput test.
-| | ... | IMIX_v4_1 = (28x64B; 16x570B; 4x1518B)
-| | ...
| | [Tags] | IMIX | 4C
-| | ...
-| | [Template] | Check RR for eth-l2bdbasemaclrn-eth-4vhostvr1024-2vm
-| | framesize=IMIX_v4_1 | wt=4 | rxq=2
+| | framesize=IMIX_v4_1 | phy_cores=${4}
diff --git a/tests/vpp/perf/vm_vhost/10ge2p1x520-eth-l2bdbasemaclrn-eth-4vhostvr1024-2vm-ndrpdrdisc.robot b/tests/vpp/perf/vm_vhost/10ge2p1x520-eth-l2bdbasemaclrn-eth-4vhostvr1024-2vm-ndrpdrdisc.robot
index 60f3d1ff55..fcae29a286 100644
--- a/tests/vpp/perf/vm_vhost/10ge2p1x520-eth-l2bdbasemaclrn-eth-4vhostvr1024-2vm-ndrpdrdisc.robot
+++ b/tests/vpp/perf/vm_vhost/10ge2p1x520-eth-l2bdbasemaclrn-eth-4vhostvr1024-2vm-ndrpdrdisc.robot
@@ -26,6 +26,8 @@
| ... | ${min_rate}pps | ${framesize} | ${traffic_profile}
| ... | dut1_node=${dut1} | dut1_vm_refs=${dut1_vm_refs}
| ... | dut2_node=${dut2} | dut2_vm_refs=${dut2_vm_refs}
+| Test Template | Local template
+| ...
| Documentation | *RFC2544: Pkt throughput L2BD test cases with vhost*
| ...
| ... | *[Top] Network Topologies:* TG-DUT1-DUT2-TG 3-node circular topology
@@ -65,16 +67,10 @@
| ${traffic_profile}= | trex-sl-3n-ethip4-ip4src254
*** Keywords ***
-| Discover NDR or PDR for eth-l2bdbasemaclrn-eth-4vhostvr1024-2vm
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with ${wt} thread, ${wt} phy\
-| | ... | core, ${rxq} receive queue per NIC port.
-| | ... | [Ver] Find NDR for ${framesize} frames using binary search start at
-| | ... | 10GE linerate, step 10kpps.
-| | ...
-| | [Arguments] | ${wt} | ${rxq} | ${framesize} | ${min_rate} | ${search_type}
+| Local template
+| | [Arguments] | ${phy_cores} | ${framesize} | ${search_type} | ${rxq}=${None}
+| | ... | ${min_rate}=${10000}
| | ...
-| | # Test Variables required for test and test teardown
| | Set Test Variable | ${framesize}
| | Set Test Variable | ${min_rate}
| | ${get_framesize}= | Get Frame Size | ${framesize}
@@ -90,7 +86,7 @@
| | ... | ${False} | ${True}
| | Set Test Variable | ${jumbo_frames}
| | ...
-| | Given Add '${wt}' worker threads and '${rxq}' rxqueues in 3-node single-link circular topology
+| | Given Add worker threads and rxqueues to all DUTs | ${phy_cores} | ${rxq}
| | And Add PCI devices to all DUTs
| | And Run Keyword If | ${get_framesize} < ${1522}
| | ... | Add no multi seg to all DUTs
@@ -109,223 +105,73 @@
*** Test Cases ***
| tc01-64B-1t1c-eth-l2bdbasemaclrn-eth-4vhostvr1024-2vm-ndrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with 1 phy core, \
-| | ... | 1 receive queue per NIC port.
-| | ... | [Ver] Find NDR for 64 Byte frames \
-| | ... | using binary search start at 10GE linerate, step 10kpps.
-| | ...
| | [Tags] | 64B | 1C | NDRDISC
-| | ...
-| | [Template] | Discover NDR or PDR for eth-l2bdbasemaclrn-eth-4vhostvr1024-2vm
-| | wt=1 | rxq=1 | framesize=${64} | min_rate=${10000} | search_type=NDR
+| | phy_cores=${1} | framesize=${64} | search_type=NDR
| tc02-64B-1t1c-eth-l2bdbasemaclrn-eth-4vhostvr1024-2vm-pdrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with 1 phy core, \
-| | ... | 1 receive queue per NIC port.
-| | ... | [Ver] Find PDR for 64 Byte frames \
-| | ... | using binary search start at 10GE linerate, step 10kpps, LT=0.5%.
-| | ...
| | [Tags] | 64B | 1C | PDRDISC | SKIP_PATCH
-| | ...
-| | [Template] | Discover NDR or PDR for eth-l2bdbasemaclrn-eth-4vhostvr1024-2vm
-| | wt=1 | rxq=1 | framesize=${64} | min_rate=${10000} | search_type=PDR
+| | phy_cores=${1} | framesize=${64} | search_type=PDR
| tc03-1518B-1t1c-eth-l2bdbasemaclrn-eth-4vhostvr1024-2vm-ndrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with 1 phy core, \
-| | ... | 1 receive queue per NIC port.
-| | ... | [Ver] Find NDR for 1518 Byte frames \
-| | ... | using binary search start at 10GE linerate, step 10kpps.
-| | ...
| | [Tags] | 1518B | 1C | NDRDISC
-| | ...
-| | [Template] | Discover NDR or PDR for eth-l2bdbasemaclrn-eth-4vhostvr1024-2vm
-| | wt=1 | rxq=1 | framesize=${1518} | min_rate=${10000} | search_type=NDR
+| | phy_cores=${1} | framesize=${1518} | search_type=NDR
| tc04-1518B-1t1c-eth-l2bdbasemaclrn-eth-4vhostvr1024-2vm-pdrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with 1 phy core, \
-| | ... | 1 receive queue per NIC port.
-| | ... | [Ver] Find PDR for 1518 Byte frames \
-| | ... | using binary search start at 10GE linerate, step 10kpps, LT=0.5%.
-| | ...
| | [Tags] | 1518B | 1C | PDRDISC | SKIP_PATCH
-| | ...
-| | [Template] | Discover NDR or PDR for eth-l2bdbasemaclrn-eth-4vhostvr1024-2vm
-| | wt=1 | rxq=1 | framesize=${1518} | min_rate=${10000} | search_type=PDR
+| | phy_cores=${1} | framesize=${1518} | search_type=PDR
| tc05-IMIX-1t1c-eth-l2bdbasemaclrn-eth-4vhostvr1024-2vm-ndrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with 1 phy core, \
-| | ... | 1 receive queue per NIC port.
-| | ... | [Ver] Find NDR for IMIX_v4_1 frame \
-| | ... | size using binary search start at 10GE linerate, step 10kpps.
-| | ... | IMIX_v4_1 = (28x64B;16x570B;4x1518B)
-| | ...
| | [Tags] | IMIX | 1C | NDRDISC
-| | ...
-| | [Template] | Discover NDR or PDR for eth-l2bdbasemaclrn-eth-4vhostvr1024-2vm
-| | wt=1 | rxq=1 | framesize=IMIX_v4_1 | min_rate=${10000} | search_type=NDR
+| | phy_cores=${1} | framesize=IMIX_v4_1 | search_type=NDR
| tc06-IMIX-1t1c-eth-l2bdbasemaclrn-eth-4vhostvr1024-2vm-pdrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with 1 phy core, \
-| | ... | 1 receive queue per NIC port.
-| | ... | [Ver] Find PDR for IMIX_v4_1 frame \
-| | ... | size using binary search start at 10GE linerate, step 10kpps, LT=0.5%.
-| | ... | IMIX_v4_1 = (28x64B;16x570B;4x1518B)
-| | ...
| | [Tags] | IMIX | 1C | PDRDISC | SKIP_PATCH
-| | ...
-| | [Template] | Discover NDR or PDR for eth-l2bdbasemaclrn-eth-4vhostvr1024-2vm
-| | wt=1 | rxq=1 | framesize=IMIX_v4_1 | min_rate=${10000} | search_type=PDR
+| | phy_cores=${1} | framesize=IMIX_v4_1 | search_type=PDR
| tc07-64B-2t2c-eth-l2bdbasemaclrn-eth-4vhostvr1024-2vm-ndrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with 2 phy cores, \
-| | ... | 1 receive queue per NIC port.
-| | ... | [Ver] Find NDR for 64 Byte frames \
-| | ... | using binary search start at 10GE linerate, step 10kpps.
-| | ...
| | [Tags] | 64B | 2C | NDRDISC
-| | ...
-| | [Template] | Discover NDR or PDR for eth-l2bdbasemaclrn-eth-4vhostvr1024-2vm
-| | wt=2 | rxq=1 | framesize=${64} | min_rate=${10000} | search_type=NDR
+| | phy_cores=${2} | framesize=${64} | search_type=NDR
| tc08-64B-2t2c-eth-l2bdbasemaclrn-eth-4vhostvr1024-2vm-pdrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with 2 phy cores, \
-| | ... | 1 receive queue per NIC port.
-| | ... | [Ver] Find PDR for 64 Byte frames \
-| | ... | using binary search start at 10GE linerate, step 10kpps, LT=0.5%.
-| | ...
| | [Tags] | 64B | 2C | PDRDISC | SKIP_PATCH
-| | ...
-| | [Template] | Discover NDR or PDR for eth-l2bdbasemaclrn-eth-4vhostvr1024-2vm
-| | wt=2 | rxq=1 | framesize=${64} | min_rate=${10000} | search_type=PDR
+| | phy_cores=${2} | framesize=${64} | search_type=PDR
| tc09-1518B-2t2c-eth-l2bdbasemaclrn-eth-4vhostvr1024-2vm-ndrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with 2 phy cores, \
-| | ... | 1 receive queue per NIC port.
-| | ... | [Ver] Find NDR for 1518 Byte frames \
-| | ... | using binary search start at 10GE linerate, step 10kpps.
-| | ...
| | [Tags] | 1518B | 2C | NDRDISC | SKIP_PATCH
-| | ...
-| | [Template] | Discover NDR or PDR for eth-l2bdbasemaclrn-eth-4vhostvr1024-2vm
-| | wt=2 | rxq=1 | framesize=${1518} | min_rate=${10000} | search_type=NDR
+| | phy_cores=${2} | framesize=${1518} | search_type=NDR
| tc10-1518B-2t2c-eth-l2bdbasemaclrn-eth-4vhostvr1024-2vm-pdrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with 2 phy cores, \
-| | ... | 1 receive queue per NIC port.
-| | ... | [Ver] Find PDR for 1518 Byte frames \
-| | ... | using binary search start at 10GE linerate, step 10kpps, LT=0.5%.
-| | ...
| | [Tags] | 1518B | 2C | PDRDISC | SKIP_PATCH
-| | ...
-| | [Template] | Discover NDR or PDR for eth-l2bdbasemaclrn-eth-4vhostvr1024-2vm
-| | wt=2 | rxq=1 | framesize=${1518} | min_rate=${10000} | search_type=PDR
+| | phy_cores=${2} | framesize=${1518} | search_type=PDR
| tc11-IMIX-2t2c-eth-l2bdbasemaclrn-eth-4vhostvr1024-2vm-ndrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with 2 phy cores, \
-| | ... | 1 receive queue per NIC port.
-| | ... | [Ver] Find NDR for IMIX_v4_1 frame \
-| | ... | size using binary search start at 10GE linerate, step 10kpps.
-| | ... | IMIX_v4_1 = (28x64B;16x570B;4x1518B)
-| | ...
| | [Tags] | IMIX | 2C | NDRDISC | SKIP_PATCH
-| | ...
-| | [Template] | Discover NDR or PDR for eth-l2bdbasemaclrn-eth-4vhostvr1024-2vm
-| | wt=2 | rxq=1 | framesize=IMIX_v4_1 | min_rate=${10000} | search_type=NDR
+| | phy_cores=${2} | framesize=IMIX_v4_1 | search_type=NDR
| tc12-IMIX-2t2c-eth-l2bdbasemaclrn-eth-4vhostvr1024-2vm-pdrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with 2 phy cores, \
-| | ... | 1 receive queue per NIC port.
-| | ... | [Ver] Find PDR for IMIX_v4_1 frame \
-| | ... | size using binary search start at 10GE linerate, step 10kpps, LT=0.5%.
-| | ... | IMIX_v4_1 = (28x64B;16x570B;4x1518B)
-| | ...
| | [Tags] | IMIX | 2C | PDRDISC | SKIP_PATCH
-| | ...
-| | [Template] | Discover NDR or PDR for eth-l2bdbasemaclrn-eth-4vhostvr1024-2vm
-| | wt=2 | rxq=1 | framesize=IMIX_v4_1 | min_rate=${10000} | search_type=PDR
+| | phy_cores=${2} | framesize=IMIX_v4_1 | search_type=PDR
| tc13-64B-4t4c-eth-l2bdbasemaclrn-eth-4vhostvr1024-2vm-ndrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with 4 phy cores, \
-| | ... | 2 receive queues per NIC port.
-| | ... | [Ver] Find NDR for 64 Byte frames \
-| | ... | using binary search start at 10GE linerate, step 10kpps.
-| | ...
| | [Tags] | 64B | 4C | NDRDISC
-| | ...
-| | [Template] | Discover NDR or PDR for eth-l2bdbasemaclrn-eth-4vhostvr1024-2vm
-| | wt=4 | rxq=2 | framesize=${64} | min_rate=${10000} | search_type=NDR
+| | phy_cores=${4} | framesize=${64} | search_type=NDR
| tc14-64B-4t4c-eth-l2bdbasemaclrn-eth-4vhostvr1024-2vm-pdrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with 4 phy cores, \
-| | ... | 2 receive queues per NIC port.
-| | ... | [Ver] Find PDR for 64 Byte frames \
-| | ... | using binary search start at 10GE linerate, step 10kpps, LT=0.5%.
-| | ...
| | [Tags] | 64B | 4C | PDRDISC | SKIP_PATCH
-| | ...
-| | [Template] | Discover NDR or PDR for eth-l2bdbasemaclrn-eth-4vhostvr1024-2vm
-| | wt=4 | rxq=2 | framesize=${64} | min_rate=${10000} | search_type=PDR
+| | phy_cores=${4} | framesize=${64} | search_type=PDR
| tc15-1518B-4t4c-eth-l2bdbasemaclrn-eth-4vhostvr1024-2vm-ndrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with 4 phy cores, \
-| | ... | 2 receive queues per NIC port.
-| | ... | [Ver] Find NDR for 1518 Byte frames \
-| | ... | using binary search start at 10GE linerate, step 10kpps.
-| | ...
| | [Tags] | 1518B | 4C | NDRDISC | SKIP_PATCH
-| | ...
-| | [Template] | Discover NDR or PDR for eth-l2bdbasemaclrn-eth-4vhostvr1024-2vm
-| | wt=4 | rxq=2 | framesize=${1518} | min_rate=${10000} | search_type=NDR
+| | phy_cores=${4} | framesize=${1518} | search_type=NDR
| tc16-1518B-4t4c-eth-l2bdbasemaclrn-eth-4vhostvr1024-2vm-pdrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with 4 phy cores, \
-| | ... | 2 receive queues per NIC port.
-| | ... | [Ver] Find PDR for 1518 Byte frames \
-| | ... | using binary search start at 10GE linerate, step 10kpps, LT=0.5%.
-| | ...
| | [Tags] | 1518B | 4C | PDRDISC | SKIP_PATCH
-| | ...
-| | [Template] | Discover NDR or PDR for eth-l2bdbasemaclrn-eth-4vhostvr1024-2vm
-| | wt=4 | rxq=2 | framesize=${1518} | min_rate=${10000} | search_type=PDR
+| | phy_cores=${4} | framesize=${1518} | search_type=PDR
| tc17-IMIX-4t4c-eth-l2bdbasemaclrn-eth-4vhostvr1024-2vm-ndrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with 4 phy cores, \
-| | ... | 2 receive queues per NIC port.
-| | ... | [Ver] Find NDR for IMIX_v4_1 frame \
-| | ... | size using binary search start at 10GE linerate, step 10kpps.
-| | ... | IMIX_v4_1 = (28x64B;16x570B;4x1518B)
-| | ...
| | [Tags] | IMIX | 4C | NDRDISC | SKIP_PATCH
-| | ...
-| | [Template] | Discover NDR or PDR for eth-l2bdbasemaclrn-eth-4vhostvr1024-2vm
-| | wt=4 | rxq=2 | framesize=IMIX_v4_1 | min_rate=${10000} | search_type=NDR
+| | phy_cores=${4} | framesize=IMIX_v4_1 | search_type=NDR
| tc18-IMIX-4t4c-eth-l2bdbasemaclrn-eth-4vhostvr1024-2vm-pdrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with 4 phy cores, \
-| | ... | 2 receive queues per NIC port.
-| | ... | [Ver] Find PDR for IMIX_v4_1 frame \
-| | ... | size using binary search start at 10GE linerate, step 10kpps, LT=0.5%.
-| | ... | IMIX_v4_1 = (28x64B;16x570B;4x1518B)
-| | ...
| | [Tags] | IMIX | 4C | PDRDISC | SKIP_PATCH
-| | ...
-| | [Template] | Discover NDR or PDR for eth-l2bdbasemaclrn-eth-4vhostvr1024-2vm
-| | wt=4 | rxq=2 | framesize=IMIX_v4_1 | min_rate=${10000} | search_type=PDR
+| | phy_cores=${4} | framesize=IMIX_v4_1 | search_type=PDR
diff --git a/tests/vpp/perf/vm_vhost/10ge2p1x520-eth-l2bdscale100kmaclrn-eth-2vhostvr1024-1vm-cfsrr1-ndrpdrdisc.robot b/tests/vpp/perf/vm_vhost/10ge2p1x520-eth-l2bdscale100kmaclrn-eth-2vhostvr1024-1vm-cfsrr1-ndrpdrdisc.robot
index b8ea2ff974..18c724e070 100644
--- a/tests/vpp/perf/vm_vhost/10ge2p1x520-eth-l2bdscale100kmaclrn-eth-2vhostvr1024-1vm-cfsrr1-ndrpdrdisc.robot
+++ b/tests/vpp/perf/vm_vhost/10ge2p1x520-eth-l2bdscale100kmaclrn-eth-2vhostvr1024-1vm-cfsrr1-ndrpdrdisc.robot
@@ -29,6 +29,8 @@
| ... | dut1_node=${dut1} | dut1_vm_refs=${dut1_vm_refs}
| ... | dut2_node=${dut2} | dut2_vm_refs=${dut2_vm_refs}
| ...
+| Test Template | Local template
+| ...
| Documentation | *RFC2544: Packet throughput L2BD test cases with vhost*
| ...
| ... | *[Top] Network Topologies:* TG-DUT1-DUT2-TG 3-node circular topology\
@@ -75,8 +77,9 @@
| ${traffic_profile}= | trex-sl-3n-ethip4-macsrc50kdst50k
*** Keywords ***
-| Discover NDR or PDR for L2 Bridge Domain with VM
-| | [Arguments] | ${wt} | ${rxq} | ${framesize} | ${min_rate} | ${search_type}
+| Local template
+| | [Arguments] | ${phy_cores} | ${framesize} | ${search_type} | ${rxq}=${None}
+| | ... | ${min_rate}=${10000}
| | ...
| | Set Test Variable | ${use_tuned_cfs} | ${True}
| | Set Test Variable | ${framesize}
@@ -92,7 +95,7 @@
| | ${dut2_vm_refs}= | Create Dictionary
| | Set Test Variable | ${dut1_vm_refs}
| | Set Test Variable | ${dut2_vm_refs}
-| | Given Add '${wt}' worker threads and '${rxq}' rxqueues in 3-node single-link circular topology
+| | Given Add worker threads and rxqueues to all DUTs | ${phy_cores} | ${rxq}
| | And Add PCI devices to all DUTs
| | And Run Keyword If | ${get_framesize} < ${1522} | Add no multi seg to all DUTs
| | And Apply startup configuration on all VPP DUTs
@@ -117,223 +120,73 @@
*** Test Cases ***
| tc01-64B-1t1c-eth-l2dbscale100kmaclrn-eth-2vhostvr1024-1vm-cfsrr1-ndrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with 1 phy core,\
-| | ... | 1 receive queue per NIC port.
-| | ... | [Ver] Find NDR for 64 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 10kpps.
-| | ...
| | [Tags] | 64B | 1C | NDRDISC
-| | ...
-| | [Template] | Discover NDR or PDR for L2 Bridge Domain with VM
-| | wt=1 | rxq=1 | framesize=${64} | min_rate=${10000} | search_type=NDR
+| | phy_cores=${1} | framesize=${64} | search_type=NDR
| tc02-64B-1t1c-eth-l2dbscale100kmaclrn-eth-2vhostvr1024-1vm-cfsrr1-pdrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with 1 phy core,\
-| | ... | 1 receive queue per NIC port.
-| | ... | [Ver] Find PDR for 64 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 10kpps, LT=0.5%.
-| | ...
| | [Tags] | 64B | 1C | PDRDISC | SKIP_PATCH
-| | ...
-| | [Template] | Discover NDR or PDR for L2 Bridge Domain with VM
-| | wt=1 | rxq=1 | framesize=${64} | min_rate=${10000} | search_type=PDR
+| | phy_cores=${1} | framesize=${64} | search_type=PDR
| tc03-1518B-1t1c-etc-l2dbscale100kmaclrn-eth-2vhostvr1024-1vm-cfsrr1-ndrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with 1 phy core,\
-| | ... | 1 receive queue per NIC port.
-| | ... | [Ver] Find NDR for 1518 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 10kpps.
-| | ...
| | [Tags] | 1518B | 1C | NDRDISC
-| | ...
-| | [Template] | Discover NDR or PDR for L2 Bridge Domain with VM
-| | wt=1 | rxq=1 | framesize=${1518} | min_rate=${10000} | search_type=NDR
+| | phy_cores=${1} | framesize=${1518} | search_type=NDR
| tc04-1518B-1t1c-eth-l2dbscale100kmaclrn-eth-2vhostvr1024-1vm-cfsrr1-pdrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with 1 phy core,\
-| | ... | 1 receive queue per NIC port.
-| | ... | [Ver] Find PDR for 1518 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 10kpps, LT=0.5%.
-| | ...
| | [Tags] | 1518B | 1C | PDRDISC | SKIP_PATCH
-| | ...
-| | [Template] | Discover NDR or PDR for L2 Bridge Domain with VM
-| | wt=1 | rxq=1 | framesize=${1518} | min_rate=${10000} | search_type=PDR
+| | phy_cores=${1} | framesize=${1518} | search_type=PDR
| tc05-IMIX-1t1c-eth-l2dbscale100kmaclrn-eth-2vhostvr1024-1vm-cfsrr1-ndrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with 1 phy core,\
-| | ... | 1 receive queue per NIC port.
-| | ... | [Ver] Find NDR for IMIX_v4_1 framesize using binary search start at\
-| | ... | 10GE linerate, step 10kpps.
-| | ... | IMIX_v4_1 = (28x64B; 16x570B; 4x1518B)
-| | ...
| | [Tags] | IMIX | 1C | NDRDISC
-| | ...
-| | [Template] | Discover NDR or PDR for L2 Bridge Domain with VM
-| | wt=1 | rxq=1 | framesize=IMIX_v4_1 | min_rate=${10000} | search_type=NDR
+| | phy_cores=${1} | framesize=IMIX_v4_1 | search_type=NDR
| tc06-IMIX-1t1c-eth-l2dbscale100kmaclrn-eth-2vhostvr1024-1vm-cfsrr1-pdrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with 1 phy core,\
-| | ... | 1 receive queue per NIC port.
-| | ... | [Ver] Find PDR for IMIX_v4_1 framesize using binary search start at\
-| | ... | 10GE linerate, step 10kpps, LT=0.5%.
-| | ... | IMIX_v4_1 = (28x64B; 16x570B; 4x1518B)
-| | ...
| | [Tags] | IMIX | 1C | PDRDISC | SKIP_PATCH
-| | ...
-| | [Template] | Discover NDR or PDR for L2 Bridge Domain with VM
-| | wt=1 | rxq=1 | framesize=IMIX_v4_1 | min_rate=${10000} | search_type=PDR
+| | phy_cores=${1} | framesize=IMIX_v4_1 | search_type=PDR
| tc07-64B-2t2c-eth-l2dbscale100kmaclrn-eth-2vhostvr1024-1vm-cfsrr1-ndrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with 2 phy cores,\
-| | ... | 1 receive queue per NIC port.
-| | ... | [Ver] Find NDR for 64 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 10kpps.
-| | ...
| | [Tags] | 64B | 2C | NDRDISC
-| | ...
-| | [Template] | Discover NDR or PDR for L2 Bridge Domain with VM
-| | wt=2 | rxq=1 | framesize=${64} | min_rate=${10000} | search_type=NDR
+| | phy_cores=${2} | framesize=${64} | search_type=NDR
| tc08-64B-2t2c-eth-l2dbscale100kmaclrn-eth-2vhostvr1024-1vm-cfsrr1-pdrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with 2 phy cores,\
-| | ... | 1 receive queue per NIC port.
-| | ... | [Ver] Find PDR for 64 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 10kpps, LT=0.5%.
-| | ...
| | [Tags] | 64B | 2C | PDRDISC | SKIP_PATCH
-| | ...
-| | [Template] | Discover NDR or PDR for L2 Bridge Domain with VM
-| | wt=2 | rxq=1 | framesize=${64} | min_rate=${10000} | search_type=PDR
+| | phy_cores=${2} | framesize=${64} | search_type=PDR
| tc09-1518B-2t2c-eth-l2dbscale100kmaclrn-eth-2vhostvr1024-1vm-cfsrr1-ndrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with 2 phy cores,\
-| | ... | 1 receive queue per NIC port.
-| | ... | [Ver] Find NDR for 1518 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 10kpps.
-| | ...
| | [Tags] | 1518B | 2C | NDRDISC | SKIP_PATCH
-| | ...
-| | [Template] | Discover NDR or PDR for L2 Bridge Domain with VM
-| | wt=2 | rxq=1 | framesize=${1518} | min_rate=${10000} | search_type=NDR
+| | phy_cores=${2} | framesize=${1518} | search_type=NDR
| tc10-1518B-2t2c-eth-l2dbscale100kmaclrn-eth-2vhostvr1024-1vm-cfsrr1-pdrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with 2 phy cores,\
-| | ... | 1 receive queue per NIC port.
-| | ... | [Ver] Find PDR for 1518 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 10kpps, LT=0.5%.
-| | ...
| | [Tags] | 1518B | 2C | PDRDISC | SKIP_PATCH
-| | ...
-| | [Template] | Discover NDR or PDR for L2 Bridge Domain with VM
-| | wt=2 | rxq=1 | framesize=${1518} | min_rate=${10000} | search_type=PDR
+| | phy_cores=${2} | framesize=${1518} | search_type=PDR
| tc11-IMIX-2t2c-eth-l2dbscale100kmaclrn-eth-2vhostvr1024-1vm-cfsrr1-ndrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with 2 phy cores,\
-| | ... | 1 receive queue per NIC port.
-| | ... | [Ver] Find NDR for IMIX_v4_1 framesize using binary search start at\
-| | ... | 10GE linerate, step 10kpps.
-| | ... | IMIX_v4_1 = (28x64B; 16x570B; 4x1518B)
-| | ...
| | [Tags] | IMIX | 2C | NDRDISC | SKIP_PATCH
-| | ...
-| | [Template] | Discover NDR or PDR for L2 Bridge Domain with VM
-| | wt=2 | rxq=1 | framesize=IMIX_v4_1 | min_rate=${10000} | search_type=NDR
+| | phy_cores=${2} | framesize=IMIX_v4_1 | search_type=NDR
| tc12-IMIX-2t2c-eth-l2dbscale100kmaclrn-eth-2vhostvr1024-1vm-cfsrr1-pdrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with 2 phy cores,\
-| | ... | 1 receive queue per NIC port.
-| | ... | [Ver] Find PDR for IMIX_v4_1 framesize using binary search start at\
-| | ... | 10GE linerate, step 10kpps.
-| | ... | IMIX_v4_1 = (28x64B; 16x570B; 4x1518B)
-| | ...
| | [Tags] | IMIX | 2C | PDRDISC | SKIP_PATCH
-| | ...
-| | [Template] | Discover NDR or PDR for L2 Bridge Domain with VM
-| | wt=2 | rxq=1 | framesize=IMIX_v4_1 | min_rate=${10000} | search_type=PDR
+| | phy_cores=${2} | framesize=IMIX_v4_1 | search_type=PDR
| tc13-64B-4t4c-eth-l2dbscale100kmaclrn-eth-2vhostvr1024-1vm-cfsrr1-ndrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with 4 phy cores,\
-| | ... | 2 receive queues per NIC port.
-| | ... | [Ver] Find NDR for 64 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 10kpps.
-| | ...
| | [Tags] | 64B | 4C | NDRDISC
-| | ...
-| | [Template] | Discover NDR or PDR for L2 Bridge Domain with VM
-| | wt=4 | rxq=2 | framesize=${64} | min_rate=${10000} | search_type=NDR
+| | phy_cores=${4} | framesize=${64} | search_type=NDR
| tc14-64B-4t4c-eth-l2dbscale100kmaclrn-eth-2vhostvr1024-1vm-cfsrr1-pdrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with 4 phy cores,\
-| | ... | 2 receive queues per NIC port.
-| | ... | [Ver] Find PDR for 64 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 10kpps, LT=0.5%.
-| | ...
| | [Tags] | 64B | 4C | PDRDISC | SKIP_PATCH
-| | ...
-| | [Template] | Discover NDR or PDR for L2 Bridge Domain with VM
-| | wt=4 | rxq=2 | framesize=${64} | min_rate=${10000} | search_type=PDR
+| | phy_cores=${4} | framesize=${64} | search_type=PDR
| tc15-1518B-4t4c-eth-l2dbscale100kmaclrn-eth-2vhostvr1024-1vm-cfsrr1-ndrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with 4 phy cores,\
-| | ... | 2 receive queues per NIC port.
-| | ... | [Ver] Find NDR for 1518 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 10kpps.
-| | ...
| | [Tags] | 1518B | 4C | NDRDISC | SKIP_PATCH
-| | ...
-| | [Template] | Discover NDR or PDR for L2 Bridge Domain with VM
-| | wt=4 | rxq=2 | framesize=${1518} | min_rate=${10000} | search_type=NDR
+| | phy_cores=${4} | framesize=${1518} | search_type=NDR
| tc16-1518B-4t4c-eth-l2dbscale100kmaclrn-eth-2vhostvr1024-1vm-cfsrr1-pdrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with 4 phy cores,\
-| | ... | 2 receive queues per NIC port.
-| | ... | [Ver] Find PDR for 1518 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 10kpps, LT=0.5%.
-| | ...
| | [Tags] | 1518B | 4C | PDRDISC | SKIP_PATCH
-| | ...
-| | [Template] | Discover NDR or PDR for L2 Bridge Domain with VM
-| | wt=4 | rxq=2 | framesize=${1518} | min_rate=${10000} | search_type=PDR
+| | phy_cores=${4} | framesize=${1518} | search_type=PDR
| tc17-IMIX-4t4c-eth-l2dbscale100kmaclrn-eth-2vhostvr1024-1vm-cfsrr1-ndrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with 4 phy cores,\
-| | ... | 2 receive queues per NIC port.
-| | ... | [Ver] Find NDR for IMIX_v4_1 framesize using binary search start at\
-| | ... | 10GE linerate, step 10kpps.
-| | ... | IMIX_v4_1 = (28x64B; 16x570B; 4x1518B)
-| | ...
| | [Tags] | IMIX | 4C | NDRDISC | SKIP_PATCH
-| | ...
-| | [Template] | Discover NDR or PDR for L2 Bridge Domain with VM
-| | wt=4 | rxq=2 | framesize=IMIX_v4_1 | min_rate=${10000} | search_type=NDR
+| | phy_cores=${4} | framesize=IMIX_v4_1 | search_type=NDR
| tc18-IMIX-4t4c-eth-l2dbscale100kmaclrn-eth-2vhostvr1024-1vm-cfsrr1-pdrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with 4 phy cores,\
-| | ... | 2 receive queues per NIC port.
-| | ... | [Ver] Find PDR for IMIX_v4_1 framesize using binary search start at\
-| | ... | 10GE linerate, step 10kpps, LT=0.5%.
-| | ... | IMIX_v4_1 = (28x64B; 16x570B; 4x1518B)
-| | ...
| | [Tags] | IMIX | 4C | PDRDISC | SKIP_PATCH
-| | ...
-| | [Template] | Discover NDR or PDR for L2 Bridge Domain with VM
-| | wt=4 | rxq=2 | framesize=IMIX_v4_1 | min_rate=${10000} | search_type=PDR
+| | phy_cores=${4} | framesize=IMIX_v4_1 | search_type=PDR
diff --git a/tests/vpp/perf/vm_vhost/10ge2p1x520-eth-l2bdscale10kmaclrn-eth-2vhostvr1024-1vm-cfsrr1-ndrpdrdisc.robot b/tests/vpp/perf/vm_vhost/10ge2p1x520-eth-l2bdscale10kmaclrn-eth-2vhostvr1024-1vm-cfsrr1-ndrpdrdisc.robot
index ee220e8db6..ad01f900d6 100644
--- a/tests/vpp/perf/vm_vhost/10ge2p1x520-eth-l2bdscale10kmaclrn-eth-2vhostvr1024-1vm-cfsrr1-ndrpdrdisc.robot
+++ b/tests/vpp/perf/vm_vhost/10ge2p1x520-eth-l2bdscale10kmaclrn-eth-2vhostvr1024-1vm-cfsrr1-ndrpdrdisc.robot
@@ -29,6 +29,8 @@
| ... | dut1_node=${dut1} | dut1_vm_refs=${dut1_vm_refs}
| ... | dut2_node=${dut2} | dut2_vm_refs=${dut2_vm_refs}
| ...
+| Test Template | Local template
+| ...
| Documentation | *RFC2544: Packet throughput L2BD test cases with vhost*
| ...
| ... | *[Top] Network Topologies:* TG-DUT1-DUT2-TG 3-node circular topology
@@ -75,8 +77,9 @@
| ${traffic_profile} | trex-sl-3n-ethip4-macsrc5kdst5k
*** Keywords ***
-| Discover NDR or PDR for L2 Bridge Domain with VM
-| | [Arguments] | ${wt} | ${rxq} | ${framesize} | ${min_rate} | ${search_type}
+| Local template
+| | [Arguments] | ${phy_cores} | ${framesize} | ${search_type} | ${rxq}=${None}
+| | ... | ${min_rate}=${10000}
| | ...
| | Set Test Variable | ${use_tuned_cfs} | ${True}
| | Set Test Variable | ${framesize}
@@ -92,7 +95,7 @@
| | ${dut2_vm_refs}= | Create Dictionary
| | Set Test Variable | ${dut1_vm_refs}
| | Set Test Variable | ${dut2_vm_refs}
-| | Given Add '${wt}' worker threads and '${rxq}' rxqueues in 3-node single-link circular topology
+| | Given Add worker threads and rxqueues to all DUTs | ${phy_cores} | ${rxq}
| | And Add PCI devices to all DUTs
| | And Run Keyword If | ${get_framesize} < ${1522} | Add no multi seg to all DUTs
| | And Apply startup configuration on all VPP DUTs
@@ -117,223 +120,73 @@
*** Test Cases ***
| tc01-64B-1t1c-eth-l2dbscale10kmaclrn-eth-2vhostvr1024-1vm-cfsrr1-ndrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with 1 phy core,\
-| | ... | 1 receive queue per NIC port.
-| | ... | [Ver] Find NDR for 64 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 10kpps.
-| | ...
| | [Tags] | 64B | 1C | NDRDISC
-| | ...
-| | [Template] | Discover NDR or PDR for L2 Bridge Domain with VM
-| | wt=1 | rxq=1 | framesize=${64} | min_rate=${10000} | search_type=NDR
+| | phy_cores=${1} | framesize=${64} | search_type=NDR
| tc02-64B-1t1c-eth-l2dbscale10kmaclrn-eth-2vhostvr1024-1vm-cfsrr1-pdrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with 1 phy core,\
-| | ... | 1 receive queue per NIC port.
-| | ... | [Ver] Find PDR for 64 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 10kpps, LT=0.5%.
-| | ...
| | [Tags] | 64B | 1C | PDRDISC | SKIP_PATCH
-| | ...
-| | [Template] | Discover NDR or PDR for L2 Bridge Domain with VM
-| | wt=1 | rxq=1 | framesize=${64} | min_rate=${10000} | search_type=PDR
+| | phy_cores=${1} | framesize=${64} | search_type=PDR
| tc03-1518B-1t1c-etc-l2dbscale10kmaclrn-eth-2vhostvr1024-1vm-cfsrr1-ndrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with 1 phy core,\
-| | ... | 1 receive queue per NIC port.
-| | ... | [Ver] Find NDR for 1518 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 10kpps.
-| | ...
| | [Tags] | 1518B | 1C | NDRDISC
-| | ...
-| | [Template] | Discover NDR or PDR for L2 Bridge Domain with VM
-| | wt=1 | rxq=1 | framesize=${1518} | min_rate=${10000} | search_type=NDR
+| | phy_cores=${1} | framesize=${1518} | search_type=NDR
| tc04-1518B-1t1c-eth-l2dbscale10kmaclrn-eth-2vhostvr1024-1vm-cfsrr1-pdrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with 1 phy core,\
-| | ... | 1 receive queue per NIC port.
-| | ... | [Ver] Find PDR for 1518 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 10kpps, LT=0.5%.
-| | ...
| | [Tags] | 1518B | 1C | PDRDISC | SKIP_PATCH
-| | ...
-| | [Template] | Discover NDR or PDR for L2 Bridge Domain with VM
-| | wt=1 | rxq=1 | framesize=${1518} | min_rate=${10000} | search_type=PDR
+| | phy_cores=${1} | framesize=${1518} | search_type=PDR
| tc05-IMIX-1t1c-eth-l2dbscale10kmaclrn-eth-2vhostvr1024-1vm-cfsrr1-ndrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with 1 phy core,\
-| | ... | 1 receive queue per NIC port.
-| | ... | [Ver] Find NDR for IMIX_v4_1 framesize using binary search start at\
-| | ... | 10GE linerate, step 10kpps.
-| | ... | IMIX_v4_1 = (28x64B; 16x570B; 4x1518B)
-| | ...
| | [Tags] | IMIX | 1C | NDRDISC
-| | ...
-| | [Template] | Discover NDR or PDR for L2 Bridge Domain with VM
-| | wt=1 | rxq=1 | framesize=IMIX_v4_1 | min_rate=${10000} | search_type=NDR
+| | phy_cores=${1} | framesize=IMIX_v4_1 | search_type=NDR
| tc06-IMIX-1t1c-eth-l2dbscale10kmaclrn-eth-2vhostvr1024-1vm-cfsrr1-pdrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with 1 phy core,\
-| | ... | 1 receive queue per NIC port.
-| | ... | [Ver] Find PDR for IMIX_v4_1 framesize using binary search start at\
-| | ... | 10GE linerate, step 10kpps, LT=0.5%.
-| | ... | IMIX_v4_1 = (28x64B; 16x570B; 4x1518B)
-| | ...
| | [Tags] | IMIX | 1C | PDRDISC | SKIP_PATCH
-| | ...
-| | [Template] | Discover NDR or PDR for L2 Bridge Domain with VM
-| | wt=1 | rxq=1 | framesize=IMIX_v4_1 | min_rate=${10000} | search_type=PDR
+| | phy_cores=${1} | framesize=IMIX_v4_1 | search_type=PDR
| tc07-64B-2t2c-eth-l2dbscale10kmaclrn-eth-2vhostvr1024-1vm-cfsrr1-ndrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with 2 phy cores,\
-| | ... | 1 receive queue per NIC port.
-| | ... | [Ver] Find NDR for 64 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 10kpps.
-| | ...
| | [Tags] | 64B | 2C | NDRDISC
-| | ...
-| | [Template] | Discover NDR or PDR for L2 Bridge Domain with VM
-| | wt=2 | rxq=1 | framesize=${64} | min_rate=${10000} | search_type=NDR
+| | phy_cores=${2} | framesize=${64} | search_type=NDR
| tc08-64B-2t2c-eth-l2dbscale10kmaclrn-eth-2vhostvr1024-1vm-cfsrr1-pdrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with 2 phy cores,\
-| | ... | 1 receive queue per NIC port.
-| | ... | [Ver] Find PDR for 64 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 10kpps, LT=0.5%.
-| | ...
| | [Tags] | 64B | 2C | PDRDISC | SKIP_PATCH
-| | ...
-| | [Template] | Discover NDR or PDR for L2 Bridge Domain with VM
-| | wt=2 | rxq=1 | framesize=${64} | min_rate=${10000} | search_type=PDR
+| | phy_cores=${2} | framesize=${64} | search_type=PDR
| tc09-1518B-2t2c-eth-l2dbscale10kmaclrn-eth-2vhostvr1024-1vm-cfsrr1-ndrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with 2 phy cores,\
-| | ... | 1 receive queue per NIC port.
-| | ... | [Ver] Find NDR for 1518 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 10kpps.
-| | ...
| | [Tags] | 1518B | 2C | NDRDISC | SKIP_PATCH
-| | ...
-| | [Template] | Discover NDR or PDR for L2 Bridge Domain with VM
-| | wt=2 | rxq=1 | framesize=${1518} | min_rate=${10000} | search_type=NDR
+| | phy_cores=${2} | framesize=${1518} | search_type=NDR
| tc10-1518B-2t2c-eth-l2dbscale10kmaclrn-eth-2vhostvr1024-1vm-cfsrr1-pdrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with 2 phy cores,\
-| | ... | 1 receive queue per NIC port.
-| | ... | [Ver] Find PDR for 1518 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 10kpps, LT=0.5%.
-| | ...
| | [Tags] | 1518B | 2C | PDRDISC | SKIP_PATCH
-| | ...
-| | [Template] | Discover NDR or PDR for L2 Bridge Domain with VM
-| | wt=2 | rxq=1 | framesize=${1518} | min_rate=${10000} | search_type=PDR
+| | phy_cores=${2} | framesize=${1518} | search_type=PDR
| tc11-IMIX-2t2c-eth-l2dbscale10kmaclrn-eth-2vhostvr1024-1vm-cfsrr1-ndrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with 2 phy cores,\
-| | ... | 1 receive queue per NIC port.
-| | ... | [Ver] Find NDR for IMIX_v4_1 framesize using binary search start at\
-| | ... | 10GE linerate, step 10kpps.
-| | ... | IMIX_v4_1 = (28x64B; 16x570B; 4x1518B)
-| | ...
| | [Tags] | IMIX | 2C | NDRDISC | SKIP_PATCH
-| | ...
-| | [Template] | Discover NDR or PDR for L2 Bridge Domain with VM
-| | wt=2 | rxq=1 | framesize=IMIX_v4_1 | min_rate=${10000} | search_type=NDR
+| | phy_cores=${2} | framesize=IMIX_v4_1 | search_type=NDR
| tc12-IMIX-2t2c-eth-l2dbscale10kmaclrn-eth-2vhostvr1024-1vm-cfsrr1-pdrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with 2 phy cores,\
-| | ... | 1 receive queue per NIC port.
-| | ... | [Ver] Find PDR for IMIX_v4_1 framesize using binary search start at\
-| | ... | 10GE linerate, step 10kpps.
-| | ... | IMIX_v4_1 = (28x64B; 16x570B; 4x1518B)
-| | ...
| | [Tags] | IMIX | 2C | PDRDISC | SKIP_PATCH
-| | ...
-| | [Template] | Discover NDR or PDR for L2 Bridge Domain with VM
-| | wt=2 | rxq=1 | framesize=IMIX_v4_1 | min_rate=${10000} | search_type=PDR
+| | phy_cores=${2} | framesize=IMIX_v4_1 | search_type=PDR
| tc13-64B-4t4c-eth-l2dbscale10kmaclrn-eth-2vhostvr1024-1vm-cfsrr1-ndrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with 4 phy cores,\
-| | ... | 2 receive queues per NIC port.
-| | ... | [Ver] Find NDR for 64 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 10kpps.
-| | ...
| | [Tags] | 64B | 4C | NDRDISC
-| | ...
-| | [Template] | Discover NDR or PDR for L2 Bridge Domain with VM
-| | wt=4 | rxq=2 | framesize=${64} | min_rate=${10000} | search_type=NDR
+| | phy_cores=${4} | framesize=${64} | search_type=NDR
| tc14-64B-4t4c-eth-l2dbscale10kmaclrn-eth-2vhostvr1024-1vm-cfsrr1-pdrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with 4 phy cores,\
-| | ... | 2 receive queues per NIC port.
-| | ... | [Ver] Find PDR for 64 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 10kpps, LT=0.5%.
-| | ...
| | [Tags] | 64B | 4C | PDRDISC | SKIP_PATCH
-| | ...
-| | [Template] | Discover NDR or PDR for L2 Bridge Domain with VM
-| | wt=4 | rxq=2 | framesize=${64} | min_rate=${10000} | search_type=PDR
+| | phy_cores=${4} | framesize=${64} | search_type=PDR
| tc15-1518B-4t4c-eth-l2dbscale10kmaclrn-eth-2vhostvr1024-1vm-cfsrr1-ndrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with 4 phy cores,\
-| | ... | 2 receive queues per NIC port.
-| | ... | [Ver] Find NDR for 1518 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 10kpps.
-| | ...
| | [Tags] | 1518B | 4C | NDRDISC | SKIP_PATCH
-| | ...
-| | [Template] | Discover NDR or PDR for L2 Bridge Domain with VM
-| | wt=4 | rxq=2 | framesize=${1518} | min_rate=${10000} | search_type=NDR
+| | phy_cores=${4} | framesize=${1518} | search_type=NDR
| tc16-1518B-4t4c-eth-l2dbscale10kmaclrn-eth-2vhostvr1024-1vm-cfsrr1-pdrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with 4 phy cores,\
-| | ... | 2 receive queues per NIC port.
-| | ... | [Ver] Find PDR for 1518 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 10kpps, LT=0.5%.
-| | ...
| | [Tags] | 1518B | 4C | PDRDISC | SKIP_PATCH
-| | ...
-| | [Template] | Discover NDR or PDR for L2 Bridge Domain with VM
-| | wt=4 | rxq=2 | framesize=${1518} | min_rate=${10000} | search_type=PDR
+| | phy_cores=${4} | framesize=${1518} | search_type=PDR
| tc17-IMIX-4t4c-eth-l2dbscale10kmaclrn-eth-2vhostvr1024-1vm-cfsrr1-ndrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with 4 phy cores,\
-| | ... | 2 receive queues per NIC port.
-| | ... | [Ver] Find NDR for IMIX_v4_1 framesize using binary search start at\
-| | ... | 10GE linerate, step 10kpps.
-| | ... | IMIX_v4_1 = (28x64B; 16x570B; 4x1518B)
-| | ...
| | [Tags] | IMIX | 4C | NDRDISC | SKIP_PATCH
-| | ...
-| | [Template] | Discover NDR or PDR for L2 Bridge Domain with VM
-| | wt=4 | rxq=2 | framesize=IMIX_v4_1 | min_rate=${10000} | search_type=NDR
+| | phy_cores=${4} | framesize=IMIX_v4_1 | search_type=NDR
| tc18-IMIX-4t4c-eth-l2dbscale10kmaclrn-eth-2vhostvr1024-1vm-cfsrr1-pdrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with 4 phy cores,\
-| | ... | 2 receive queues per NIC port.
-| | ... | [Ver] Find PDR for IMIX_v4_1 framesize using binary search start at\
-| | ... | 10GE linerate, step 10kpps, LT=0.5%.
-| | ... | IMIX_v4_1 = (28x64B; 16x570B; 4x1518B)
-| | ...
| | [Tags] | IMIX | 4C | PDRDISC | SKIP_PATCH
-| | ...
-| | [Template] | Discover NDR or PDR for L2 Bridge Domain with VM
-| | wt=4 | rxq=2 | framesize=IMIX_v4_1 | min_rate=${10000} | search_type=PDR
+| | phy_cores=${4} | framesize=IMIX_v4_1 | search_type=PDR
diff --git a/tests/vpp/perf/vm_vhost/10ge2p1x520-eth-l2bdscale1mmaclrn-eth-2vhostvr1024-1vm-cfsrr1-ndrpdrdisc.robot b/tests/vpp/perf/vm_vhost/10ge2p1x520-eth-l2bdscale1mmaclrn-eth-2vhostvr1024-1vm-cfsrr1-ndrpdrdisc.robot
index 61d676197b..ce0ea381ad 100644
--- a/tests/vpp/perf/vm_vhost/10ge2p1x520-eth-l2bdscale1mmaclrn-eth-2vhostvr1024-1vm-cfsrr1-ndrpdrdisc.robot
+++ b/tests/vpp/perf/vm_vhost/10ge2p1x520-eth-l2bdscale1mmaclrn-eth-2vhostvr1024-1vm-cfsrr1-ndrpdrdisc.robot
@@ -29,6 +29,8 @@
| ... | dut1_node=${dut1} | dut1_vm_refs=${dut1_vm_refs}
| ... | dut2_node=${dut2} | dut2_vm_refs=${dut2_vm_refs}
| ...
+| Test Template | Local template
+| ...
| Documentation | *RFC2544: Packet throughput L2BD test cases with vhost*
| ...
| ... | *[Top] Network Topologies:* TG-DUT1-DUT2-TG 3-node circular topology\
@@ -75,8 +77,9 @@
| ${traffic_profile}= | trex-sl-3n-ethip4-macsrc500kdst500k
*** Keywords ***
-| Discover NDR or PDR for L2 Bridge Domain with VM
-| | [Arguments] | ${wt} | ${rxq} | ${framesize} | ${min_rate} | ${search_type}
+| Local template
+| | [Arguments] | ${phy_cores} | ${framesize} | ${search_type} | ${rxq}=${None}
+| | ... | ${min_rate}=${10000}
| | ...
| | Set Test Variable | ${use_tuned_cfs} | ${True}
| | Set Test Variable | ${framesize}
@@ -92,7 +95,7 @@
| | ${dut2_vm_refs}= | Create Dictionary
| | Set Test Variable | ${dut1_vm_refs}
| | Set Test Variable | ${dut2_vm_refs}
-| | Given Add '${wt}' worker threads and '${rxq}' rxqueues in 3-node single-link circular topology
+| | Given Add worker threads and rxqueues to all DUTs | ${phy_cores} | ${rxq}
| | And Add PCI devices to all DUTs
| | And Run Keyword If | ${get_framesize} < ${1522} | Add no multi seg to all DUTs
| | And Apply startup configuration on all VPP DUTs
@@ -117,223 +120,73 @@
*** Test Cases ***
| tc01-64B-1t1c-eth-l2dbscale1mmaclrn-eth-2vhostvr1024-1vm-cfsrr1-ndrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with 1 phy core,\
-| | ... | 1 receive queue per NIC port.
-| | ... | [Ver] Find NDR for 64 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 10kpps.
-| | ...
| | [Tags] | 64B | 1C | NDRDISC
-| | ...
-| | [Template] | Discover NDR or PDR for L2 Bridge Domain with VM
-| | wt=1 | rxq=1 | framesize=${64} | min_rate=${10000} | search_type=NDR
+| | phy_cores=${1} | framesize=${64} | search_type=NDR
| tc02-64B-1t1c-eth-l2dbscale1mmaclrn-eth-2vhostvr1024-1vm-cfsrr1-pdrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with 1 phy core,\
-| | ... | 1 receive queue per NIC port.
-| | ... | [Ver] Find PDR for 64 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 10kpps, LT=0.5%.
-| | ...
| | [Tags] | 64B | 1C | PDRDISC | SKIP_PATCH
-| | ...
-| | [Template] | Discover NDR or PDR for L2 Bridge Domain with VM
-| | wt=1 | rxq=1 | framesize=${64} | min_rate=${10000} | search_type=PDR
+| | phy_cores=${1} | framesize=${64} | search_type=PDR
| tc03-1518B-1t1c-etc-l2dbscale1mmaclrn-eth-2vhostvr1024-1vm-cfsrr1-ndrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with 1 phy core,\
-| | ... | 1 receive queue per NIC port.
-| | ... | [Ver] Find NDR for 1518 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 10kpps.
-| | ...
| | [Tags] | 1518B | 1C | NDRDISC
-| | ...
-| | [Template] | Discover NDR or PDR for L2 Bridge Domain with VM
-| | wt=1 | rxq=1 | framesize=${1518} | min_rate=${10000} | search_type=NDR
+| | phy_cores=${1} | framesize=${1518} | search_type=NDR
| tc04-1518B-1t1c-eth-l2dbscale1mmaclrn-eth-2vhostvr1024-1vm-cfsrr1-pdrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with 1 phy core,\
-| | ... | 1 receive queue per NIC port.
-| | ... | [Ver] Find PDR for 1518 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 10kpps, LT=0.5%.
-| | ...
| | [Tags] | 1518B | 1C | PDRDISC | SKIP_PATCH
-| | ...
-| | [Template] | Discover NDR or PDR for L2 Bridge Domain with VM
-| | wt=1 | rxq=1 | framesize=${1518} | min_rate=${10000} | search_type=PDR
+| | phy_cores=${1} | framesize=${1518} | search_type=PDR
| tc05-IMIX-1t1c-eth-l2dbscale1mmaclrn-eth-2vhostvr1024-1vm-cfsrr1-ndrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with 1 phy core,\
-| | ... | 1 receive queue per NIC port.
-| | ... | [Ver] Find NDR for IMIX_v4_1 framesize using binary search start at\
-| | ... | 10GE linerate, step 10kpps.
-| | ... | IMIX_v4_1 = (28x64B; 16x570B; 4x1518B)
-| | ...
| | [Tags] | IMIX | 1C | NDRDISC
-| | ...
-| | [Template] | Discover NDR or PDR for L2 Bridge Domain with VM
-| | wt=1 | rxq=1 | framesize=IMIX_v4_1 | min_rate=${10000} | search_type=NDR
+| | phy_cores=${1} | framesize=IMIX_v4_1 | search_type=NDR
| tc06-IMIX-1t1c-eth-l2dbscale1mmaclrn-eth-2vhostvr1024-1vm-cfsrr1-pdrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with 1 phy core,\
-| | ... | 1 receive queue per NIC port.
-| | ... | [Ver] Find PDR for IMIX_v4_1 framesize using binary search start at\
-| | ... | 10GE linerate, step 10kpps, LT=0.5%.
-| | ... | IMIX_v4_1 = (28x64B; 16x570B; 4x1518B)
-| | ...
| | [Tags] | IMIX | 1C | PDRDISC | SKIP_PATCH
-| | ...
-| | [Template] | Discover NDR or PDR for L2 Bridge Domain with VM
-| | wt=1 | rxq=1 | framesize=IMIX_v4_1 | min_rate=${10000} | search_type=PDR
+| | phy_cores=${1} | framesize=IMIX_v4_1 | search_type=PDR
| tc07-64B-2t2c-eth-l2dbscale1mmaclrn-eth-2vhostvr1024-1vm-cfsrr1-ndrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with 2 phy cores,\
-| | ... | 1 receive queue per NIC port.
-| | ... | [Ver] Find NDR for 64 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 10kpps.
-| | ...
| | [Tags] | 64B | 2C | NDRDISC
-| | ...
-| | [Template] | Discover NDR or PDR for L2 Bridge Domain with VM
-| | wt=2 | rxq=1 | framesize=${64} | min_rate=${10000} | search_type=NDR
+| | phy_cores=${2} | framesize=${64} | search_type=NDR
| tc08-64B-2t2c-eth-l2dbscale1mmaclrn-eth-2vhostvr1024-1vm-cfsrr1-pdrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with 2 phy cores,\
-| | ... | 1 receive queue per NIC port.
-| | ... | [Ver] Find PDR for 64 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 10kpps, LT=0.5%.
-| | ...
| | [Tags] | 64B | 2C | PDRDISC | SKIP_PATCH
-| | ...
-| | [Template] | Discover NDR or PDR for L2 Bridge Domain with VM
-| | wt=2 | rxq=1 | framesize=${64} | min_rate=${10000} | search_type=PDR
+| | phy_cores=${2} | framesize=${64} | search_type=PDR
| tc09-1518B-2t2c-eth-l2dbscale1mmaclrn-eth-2vhostvr1024-1vm-cfsrr1-ndrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with 2 phy cores,\
-| | ... | 1 receive queue per NIC port.
-| | ... | [Ver] Find NDR for 1518 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 10kpps.
-| | ...
| | [Tags] | 1518B | 2C | NDRDISC | SKIP_PATCH
-| | ...
-| | [Template] | Discover NDR or PDR for L2 Bridge Domain with VM
-| | wt=2 | rxq=1 | framesize=${1518} | min_rate=${10000} | search_type=NDR
+| | phy_cores=${2} | framesize=${1518} | search_type=NDR
| tc10-1518B-2t2c-eth-l2dbscale1mmaclrn-eth-2vhostvr1024-1vm-cfsrr1-pdrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with 2 phy cores,\
-| | ... | 1 receive queue per NIC port.
-| | ... | [Ver] Find PDR for 1518 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 10kpps, LT=0.5%.
-| | ...
| | [Tags] | 1518B | 2C | PDRDISC | SKIP_PATCH
-| | ...
-| | [Template] | Discover NDR or PDR for L2 Bridge Domain with VM
-| | wt=2 | rxq=1 | framesize=${1518} | min_rate=${10000} | search_type=PDR
+| | phy_cores=${2} | framesize=${1518} | search_type=PDR
| tc11-IMIX-2t2c-eth-l2dbscale1mmaclrn-eth-2vhostvr1024-1vm-cfsrr1-ndrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with 2 phy cores,\
-| | ... | 1 receive queue per NIC port.
-| | ... | [Ver] Find NDR for IMIX_v4_1 framesize using binary search start at\
-| | ... | 10GE linerate, step 10kpps.
-| | ... | IMIX_v4_1 = (28x64B; 16x570B; 4x1518B)
-| | ...
| | [Tags] | IMIX | 2C | NDRDISC | SKIP_PATCH
-| | ...
-| | [Template] | Discover NDR or PDR for L2 Bridge Domain with VM
-| | wt=2 | rxq=1 | framesize=IMIX_v4_1 | min_rate=${10000} | search_type=NDR
+| | phy_cores=${2} | framesize=IMIX_v4_1 | search_type=NDR
| tc12-IMIX-2t2c-eth-l2dbscale1mmaclrn-eth-2vhostvr1024-1vm-cfsrr1-pdrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with 2 phy cores,\
-| | ... | 1 receive queue per NIC port.
-| | ... | [Ver] Find PDR for IMIX_v4_1 framesize using binary search start at\
-| | ... | 10GE linerate, step 10kpps.
-| | ... | IMIX_v4_1 = (28x64B; 16x570B; 4x1518B)
-| | ...
| | [Tags] | IMIX | 2C | PDRDISC | SKIP_PATCH
-| | ...
-| | [Template] | Discover NDR or PDR for L2 Bridge Domain with VM
-| | wt=2 | rxq=1 | framesize=IMIX_v4_1 | min_rate=${10000} | search_type=PDR
+| | phy_cores=${2} | framesize=IMIX_v4_1 | search_type=PDR
| tc13-64B-4t4c-eth-l2dbscale1mmaclrn-eth-2vhostvr1024-1vm-cfsrr1-ndrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with 4 phy cores,\
-| | ... | 2 receive queues per NIC port.
-| | ... | [Ver] Find NDR for 64 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 10kpps.
-| | ...
| | [Tags] | 64B | 4C | NDRDISC
-| | ...
-| | [Template] | Discover NDR or PDR for L2 Bridge Domain with VM
-| | wt=4 | rxq=2 | framesize=${64} | min_rate=${10000} | search_type=NDR
+| | phy_cores=${4} | framesize=${64} | search_type=NDR
| tc14-64B-4t4c-eth-l2dbscale1mmaclrn-eth-2vhostvr1024-1vm-cfsrr1-pdrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with 4 phy cores,\
-| | ... | 2 receive queues per NIC port.
-| | ... | [Ver] Find PDR for 64 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 10kpps, LT=0.5%.
-| | ...
| | [Tags] | 64B | 4C | PDRDISC | SKIP_PATCH
-| | ...
-| | [Template] | Discover NDR or PDR for L2 Bridge Domain with VM
-| | wt=4 | rxq=2 | framesize=${64} | min_rate=${10000} | search_type=PDR
+| | phy_cores=${4} | framesize=${64} | search_type=PDR
| tc15-1518B-4t4c-eth-l2dbscale1mmaclrn-eth-2vhostvr1024-1vm-cfsrr1-ndrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with 4 phy cores,\
-| | ... | 2 receive queues per NIC port.
-| | ... | [Ver] Find NDR for 1518 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 10kpps.
-| | ...
| | [Tags] | 1518B | 4C | NDRDISC | SKIP_PATCH
-| | ...
-| | [Template] | Discover NDR or PDR for L2 Bridge Domain with VM
-| | wt=4 | rxq=2 | framesize=${1518} | min_rate=${10000} | search_type=NDR
+| | phy_cores=${4} | framesize=${1518} | search_type=NDR
| tc16-1518B-4t4c-eth-l2dbscale1mmaclrn-eth-2vhostvr1024-1vm-cfsrr1-pdrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with 4 phy cores,\
-| | ... | 2 receive queues per NIC port.
-| | ... | [Ver] Find PDR for 1518 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 10kpps, LT=0.5%.
-| | ...
| | [Tags] | 1518B | 4C | PDRDISC | SKIP_PATCH
-| | ...
-| | [Template] | Discover NDR or PDR for L2 Bridge Domain with VM
-| | wt=4 | rxq=2 | framesize=${1518} | min_rate=${10000} | search_type=PDR
+| | phy_cores=${4} | framesize=${1518} | search_type=PDR
| tc17-IMIX-4t4c-eth-l2dbscale1mmaclrn-eth-2vhostvr1024-1vm-cfsrr1-ndrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with 4 phy cores,\
-| | ... | 2 receive queues per NIC port.
-| | ... | [Ver] Find NDR for IMIX_v4_1 framesize using binary search start at\
-| | ... | 10GE linerate, step 10kpps.
-| | ... | IMIX_v4_1 = (28x64B; 16x570B; 4x1518B)
-| | ...
| | [Tags] | IMIX | 4C | NDRDISC | SKIP_PATCH
-| | ...
-| | [Template] | Discover NDR or PDR for L2 Bridge Domain with VM
-| | wt=4 | rxq=2 | framesize=IMIX_v4_1 | min_rate=${10000} | search_type=NDR
+| | phy_cores=${4} | framesize=IMIX_v4_1 | search_type=NDR
| tc18-IMIX-4t4c-eth-l2dbscale1mmaclrn-eth-2vhostvr1024-1vm-cfsrr1-pdrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with 4 phy cores,\
-| | ... | 2 receive queues per NIC port.
-| | ... | [Ver] Find PDR for IMIX_v4_1 framesize using binary search start at\
-| | ... | 10GE linerate, step 10kpps, LT=0.5%.
-| | ... | IMIX_v4_1 = (28x64B; 16x570B; 4x1518B)
-| | ...
| | [Tags] | IMIX | 4C | PDRDISC | SKIP_PATCH
-| | ...
-| | [Template] | Discover NDR or PDR for L2 Bridge Domain with VM
-| | wt=4 | rxq=2 | framesize=IMIX_v4_1 | min_rate=${10000} | search_type=PDR
+| | phy_cores=${4} | framesize=IMIX_v4_1 | search_type=PDR
diff --git a/tests/vpp/perf/vm_vhost/10ge2p1x520-eth-l2xcbase-eth-2vhostvr1024-1vm-cfsrr1-ndrpdrdisc.robot b/tests/vpp/perf/vm_vhost/10ge2p1x520-eth-l2xcbase-eth-2vhostvr1024-1vm-cfsrr1-ndrpdrdisc.robot
index b562789e8a..a07647c942 100644
--- a/tests/vpp/perf/vm_vhost/10ge2p1x520-eth-l2xcbase-eth-2vhostvr1024-1vm-cfsrr1-ndrpdrdisc.robot
+++ b/tests/vpp/perf/vm_vhost/10ge2p1x520-eth-l2xcbase-eth-2vhostvr1024-1vm-cfsrr1-ndrpdrdisc.robot
@@ -29,6 +29,8 @@
| ... | dut1_node=${dut1} | dut1_vm_refs=${dut1_vm_refs}
| ... | dut2_node=${dut2} | dut2_vm_refs=${dut2_vm_refs}
| ...
+| Test Template | Local template
+| ...
| Documentation | *RFC2544: Packet throughput L2BD test cases with vhost*
| ...
| ... | *[Top] Network Topologies:* TG-DUT1-DUT2-TG 3-node circular topology
@@ -69,8 +71,9 @@
| ${traffic_profile}= | trex-sl-3n-ethip4-ip4src254
*** Keywords ***
-| Discover NDR or PDR for L2 xconnect with VM
-| | [Arguments] | ${wt} | ${rxq} | ${framesize} | ${min_rate} | ${search_type}
+| Local template
+| | [Arguments] | ${phy_cores} | ${framesize} | ${search_type} | ${rxq}=${None}
+| | ... | ${min_rate}=${10000}
| | ...
| | Set Test Variable | ${use_tuned_cfs} | ${True}
| | Set Test Variable | ${framesize}
@@ -86,7 +89,7 @@
| | ${dut2_vm_refs}= | Create Dictionary
| | Set Test Variable | ${dut1_vm_refs}
| | Set Test Variable | ${dut2_vm_refs}
-| | Given Add '${wt}' worker threads and '${rxq}' rxqueues in 3-node single-link circular topology
+| | Given Add worker threads and rxqueues to all DUTs | ${phy_cores} | ${rxq}
| | And Add PCI devices to all DUTs
| | And Run Keyword If | ${get_framesize} < ${1522} | Add no multi seg to all DUTs
| | And Apply startup configuration on all VPP DUTs
@@ -111,223 +114,73 @@
*** Test Cases ***
| tc01-64B-1t1c-eth-l2xcbase-eth-2vhostvr1024-1vm-cfsrr1-ndrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with 1 phy core,\
-| | ... | 1 receive queue per NIC port.
-| | ... | [Ver] Find NDR for 64 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 10kpps.
-| | ...
| | [Tags] | 64B | 1C | NDRDISC
-| | ...
-| | [Template] | Discover NDR or PDR for L2 xconnect with VM
-| | wt=1 | rxq=1 | framesize=${64} | min_rate=${10000} | search_type=NDR
+| | phy_cores=${1} | framesize=${64} | search_type=NDR
| tc02-64B-1t1c-eth-l2xcbase-eth-2vhostvr1024-1vm-cfsrr1-pdrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with 1 phy core,\
-| | ... | 1 receive queue per NIC port.
-| | ... | [Ver] Find PDR for 64 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 10kpps, LT=0.5%.
-| | ...
| | [Tags] | 64B | 1C | PDRDISC | SKIP_PATCH
-| | ...
-| | [Template] | Discover NDR or PDR for L2 xconnect with VM
-| | wt=1 | rxq=1 | framesize=${64} | min_rate=${10000} | search_type=PDR
+| | phy_cores=${1} | framesize=${64} | search_type=PDR
| tc03-1518B-1t1c-etc-l2xcbase-eth-2vhostvr1024-1vm-cfsrr1-ndrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with 1 phy core,\
-| | ... | 1 receive queue per NIC port.
-| | ... | [Ver] Find NDR for 1518 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 10kpps.
-| | ...
| | [Tags] | 1518B | 1C | NDRDISC
-| | ...
-| | [Template] | Discover NDR or PDR for L2 xconnect with VM
-| | wt=1 | rxq=1 | framesize=${1518} | min_rate=${10000} | search_type=NDR
+| | phy_cores=${1} | framesize=${1518} | search_type=NDR
| tc04-1518B-1t1c-eth-l2xcbase-eth-2vhostvr1024-1vm-cfsrr1-pdrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with 1 phy core,\
-| | ... | 1 receive queue per NIC port.
-| | ... | [Ver] Find PDR for 1518 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 10kpps, LT=0.5%.
-| | ...
| | [Tags] | 1518B | 1C | PDRDISC | SKIP_PATCH
-| | ...
-| | [Template] | Discover NDR or PDR for L2 xconnect with VM
-| | wt=1 | rxq=1 | framesize=${1518} | min_rate=${10000} | search_type=PDR
+| | phy_cores=${1} | framesize=${1518} | search_type=PDR
| tc05-IMIX-1t1c-eth-l2xcbase-eth-2vhostvr1024-1vm-cfsrr1-ndrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with 1 phy core,\
-| | ... | 1 receive queue per NIC port.
-| | ... | [Ver] Find NDR for IMIX_v4_1 framesize using binary search start at\
-| | ... | 10GE linerate, step 10kpps.
-| | ... | IMIX_v4_1 = (28x64B; 16x570B; 4x1518B)
-| | ...
| | [Tags] | IMIX | 1C | NDRDISC
-| | ...
-| | [Template] | Discover NDR or PDR for L2 xconnect with VM
-| | wt=1 | rxq=1 | framesize=IMIX_v4_1 | min_rate=${10000} | search_type=NDR
+| | phy_cores=${1} | framesize=IMIX_v4_1 | search_type=NDR
| tc06-IMIX-1t1c-eth-l2xcbase-eth-2vhostvr1024-1vm-cfsrr1-pdrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with 1 phy core,\
-| | ... | 1 receive queue per NIC port.
-| | ... | [Ver] Find PDR for IMIX_v4_1 framesize using binary search start at\
-| | ... | 10GE linerate, step 10kpps, LT=0.5%.
-| | ... | IMIX_v4_1 = (28x64B; 16x570B; 4x1518B)
-| | ...
| | [Tags] | IMIX | 1C | PDRDISC | SKIP_PATCH
-| | ...
-| | [Template] | Discover NDR or PDR for L2 xconnect with VM
-| | wt=1 | rxq=1 | framesize=IMIX_v4_1 | min_rate=${10000} | search_type=PDR
+| | phy_cores=${1} | framesize=IMIX_v4_1 | search_type=PDR
| tc07-64B-2t2c-eth-l2xcbase-eth-2vhostvr1024-1vm-cfsrr1-ndrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with 2 phy cores,\
-| | ... | 1 receive queue per NIC port.
-| | ... | [Ver] Find NDR for 64 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 10kpps.
-| | ...
| | [Tags] | 64B | 2C | NDRDISC
-| | ...
-| | [Template] | Discover NDR or PDR for L2 xconnect with VM
-| | wt=2 | rxq=1 | framesize=${64} | min_rate=${10000} | search_type=NDR
+| | phy_cores=${2} | framesize=${64} | search_type=NDR
| tc08-64B-2t2c-eth-l2xcbase-eth-2vhostvr1024-1vm-cfsrr1-pdrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with 2 phy cores,\
-| | ... | 1 receive queue per NIC port.
-| | ... | [Ver] Find PDR for 64 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 10kpps, LT=0.5%.
-| | ...
| | [Tags] | 64B | 2C | PDRDISC | SKIP_PATCH
-| | ...
-| | [Template] | Discover NDR or PDR for L2 xconnect with VM
-| | wt=2 | rxq=1 | framesize=${64} | min_rate=${10000} | search_type=PDR
+| | phy_cores=${2} | framesize=${64} | search_type=PDR
| tc09-1518B-2t2c-eth-l2xcbase-eth-2vhostvr1024-1vm-cfsrr1-ndrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with 2 phy cores,\
-| | ... | 1 receive queue per NIC port.
-| | ... | [Ver] Find NDR for 1518 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 10kpps.
-| | ...
| | [Tags] | 1518B | 2C | NDRDISC | SKIP_PATCH
-| | ...
-| | [Template] | Discover NDR or PDR for L2 xconnect with VM
-| | wt=2 | rxq=1 | framesize=${1518} | min_rate=${10000} | search_type=NDR
+| | phy_cores=${2} | framesize=${1518} | search_type=NDR
| tc10-1518B-2t2c-eth-l2xcbase-eth-2vhostvr1024-1vm-cfsrr1-pdrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with 2 phy cores,\
-| | ... | 1 receive queue per NIC port.
-| | ... | [Ver] Find PDR for 1518 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 10kpps, LT=0.5%.
-| | ...
| | [Tags] | 1518B | 2C | PDRDISC | SKIP_PATCH
-| | ...
-| | [Template] | Discover NDR or PDR for L2 xconnect with VM
-| | wt=2 | rxq=1 | framesize=${1518} | min_rate=${10000} | search_type=PDR
+| | phy_cores=${2} | framesize=${1518} | search_type=PDR
| tc11-IMIX-2t2c-eth-l2xcbase-eth-2vhostvr1024-1vm-cfsrr1-ndrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with 2 phy cores,\
-| | ... | 1 receive queue per NIC port.
-| | ... | [Ver] Find NDR for IMIX_v4_1 framesize using binary search start at\
-| | ... | 10GE linerate, step 10kpps.
-| | ... | IMIX_v4_1 = (28x64B; 16x570B; 4x1518B)
-| | ...
| | [Tags] | IMIX | 2C | NDRDISC | SKIP_PATCH
-| | ...
-| | [Template] | Discover NDR or PDR for L2 xconnect with VM
-| | wt=2 | rxq=1 | framesize=IMIX_v4_1 | min_rate=${10000} | search_type=NDR
+| | phy_cores=${2} | framesize=IMIX_v4_1 | search_type=NDR
| tc12-IMIX-2t2c-eth-l2xcbase-eth-2vhostvr1024-1vm-cfsrr1-pdrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with 2 phy cores,\
-| | ... | 1 receive queue per NIC port.
-| | ... | [Ver] Find PDR for IMIX_v4_1 framesize using binary search start at\
-| | ... | 10GE linerate, step 10kpps.
-| | ... | IMIX_v4_1 = (28x64B; 16x570B; 4x1518B)
-| | ...
| | [Tags] | IMIX | 2C | PDRDISC | SKIP_PATCH
-| | ...
-| | [Template] | Discover NDR or PDR for L2 xconnect with VM
-| | wt=2 | rxq=1 | framesize=IMIX_v4_1 | min_rate=${10000} | search_type=PDR
+| | phy_cores=${2} | framesize=IMIX_v4_1 | search_type=PDR
| tc13-64B-4t4c-eth-l2xcbase-eth-2vhostvr1024-1vm-cfsrr1-ndrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with 4 phy cores,\
-| | ... | 2 receive queues per NIC port.
-| | ... | [Ver] Find NDR for 64 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 10kpps.
-| | ...
| | [Tags] | 64B | 4C | NDRDISC
-| | ...
-| | [Template] | Discover NDR or PDR for L2 xconnect with VM
-| | wt=4 | rxq=2 | framesize=${64} | min_rate=${10000} | search_type=NDR
+| | phy_cores=${4} | framesize=${64} | search_type=NDR
| tc14-64B-4t4c-eth-l2xcbase-eth-2vhostvr1024-1vm-cfsrr1-pdrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with 4 phy cores,\
-| | ... | 2 receive queues per NIC port.
-| | ... | [Ver] Find PDR for 64 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 10kpps, LT=0.5%.
-| | ...
| | [Tags] | 64B | 4C | PDRDISC | SKIP_PATCH
-| | ...
-| | [Template] | Discover NDR or PDR for L2 xconnect with VM
-| | wt=4 | rxq=2 | framesize=${64} | min_rate=${10000} | search_type=PDR
+| | phy_cores=${4} | framesize=${64} | search_type=PDR
| tc15-1518B-4t4c-eth-l2xcbase-eth-2vhostvr1024-1vm-cfsrr1-ndrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with 4 phy cores,\
-| | ... | 2 receive queues per NIC port.
-| | ... | [Ver] Find NDR for 1518 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 10kpps.
-| | ...
| | [Tags] | 1518B | 4C | NDRDISC | SKIP_PATCH
-| | ...
-| | [Template] | Discover NDR or PDR for L2 xconnect with VM
-| | wt=4 | rxq=2 | framesize=${1518} | min_rate=${10000} | search_type=NDR
+| | phy_cores=${4} | framesize=${1518} | search_type=NDR
| tc16-1518B-4t4c-eth-l2xcbase-eth-2vhostvr1024-1vm-cfsrr1-pdrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with 4 phy cores,\
-| | ... | 2 receive queues per NIC port.
-| | ... | [Ver] Find PDR for 1518 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 10kpps, LT=0.5%.
-| | ...
| | [Tags] | 1518B | 4C | PDRDISC | SKIP_PATCH
-| | ...
-| | [Template] | Discover NDR or PDR for L2 xconnect with VM
-| | wt=4 | rxq=2 | framesize=${1518} | min_rate=${10000} | search_type=PDR
+| | phy_cores=${4} | framesize=${1518} | search_type=PDR
| tc17-IMIX-4t4c-eth-l2xcbase-eth-2vhostvr1024-1vm-cfsrr1-ndrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with 4 phy cores,\
-| | ... | 2 receive queues per NIC port.
-| | ... | [Ver] Find NDR for IMIX_v4_1 framesize using binary search start at\
-| | ... | 10GE linerate, step 10kpps.
-| | ... | IMIX_v4_1 = (28x64B; 16x570B; 4x1518B)
-| | ...
| | [Tags] | IMIX | 4C | NDRDISC | SKIP_PATCH
-| | ...
-| | [Template] | Discover NDR or PDR for L2 xconnect with VM
-| | wt=4 | rxq=2 | framesize=IMIX_v4_1 | min_rate=${10000} | search_type=NDR
+| | phy_cores=${4} | framesize=IMIX_v4_1 | search_type=NDR
| tc18-IMIX-4t4c-eth-l2xcbase-eth-2vhostvr1024-1vm-cfsrr1-pdrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with 4 phy cores,\
-| | ... | 2 receive queues per NIC port.
-| | ... | [Ver] Find PDR for IMIX_v4_1 framesize using binary search start at\
-| | ... | 10GE linerate, step 10kpps, LT=0.5%.
-| | ... | IMIX_v4_1 = (28x64B; 16x570B; 4x1518B)
-| | ...
| | [Tags] | IMIX | 4C | PDRDISC | SKIP_PATCH
-| | ...
-| | [Template] | Discover NDR or PDR for L2 xconnect with VM
-| | wt=4 | rxq=2 | framesize=IMIX_v4_1 | min_rate=${10000} | search_type=PDR
+| | phy_cores=${4} | framesize=IMIX_v4_1 | search_type=PDR
diff --git a/tests/vpp/perf/vm_vhost/10ge2p1x520-eth-l2xcbase-eth-2vhostvr1024-1vm-mrr.robot b/tests/vpp/perf/vm_vhost/10ge2p1x520-eth-l2xcbase-eth-2vhostvr1024-1vm-mrr.robot
index b7a5d204d6..696b32d95d 100644
--- a/tests/vpp/perf/vm_vhost/10ge2p1x520-eth-l2xcbase-eth-2vhostvr1024-1vm-mrr.robot
+++ b/tests/vpp/perf/vm_vhost/10ge2p1x520-eth-l2xcbase-eth-2vhostvr1024-1vm-mrr.robot
@@ -27,6 +27,8 @@
| ... | dut1_node=${dut1} | dut1_vm_refs=${dut1_vm_refs}
| ... | dut2_node=${dut2} | dut2_vm_refs=${dut2_vm_refs}
| ...
+| Test Template | Local template
+| ...
| Documentation | *Raw results L2XC test cases with vhost*
| ...
| ... | *[Top] Network Topologies:* TG-DUT1-DUT2-TG 3-node circular topology
@@ -59,16 +61,21 @@
| ${traffic_profile}= | trex-sl-3n-ethip4-ip4src254
*** Keywords ***
-| Check RR for eth-l2xcbase-eth-2vhostvr1024-1vm
+| Local template
| | [Documentation]
-| | ... | [Cfg] DUT runs L2XC switching config with ${wt} thread, ${wt} phy\
-| | ... | core, ${rxq} receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for ${framesize} frames using single\
+| | ... | [Cfg] DUT runs L2XC switching config.
+| | ... | Each DUT uses ${phy_cores} physical core(s) for worker threads.
+| | ... | [Ver] Measure MaxReceivedRate for ${framesize}B frames using single\
| | ... | trial throughput test.
| | ...
-| | [Arguments] | ${framesize} | ${wt} | ${rxq}
+| | ... | *Arguments:*
+| | ... | - framesize - Framesize in Bytes in integer or string (IMIX_v4_1).
+| | ... | Type: integer, string
+| | ... | - phy_cores - Number of physical cores. Type: integer
+| | ... | - rxq - Number of RX queues, default value: ${None}. Type: integer
+| | ...
+| | [Arguments] | ${framesize} | ${phy_cores} | ${rxq}=${None}
| | ...
-| | # Test Variables required for test and test teardown
| | Set Test Variable | ${framesize}
| | ${get_framesize}= | Get Frame Size | ${framesize}
| | ${max_rate}= | Calculate pps | ${s_limit} | ${get_framesize}
@@ -79,7 +86,7 @@
| | ${jumbo_frames}= | Set Variable If | ${get_framesize} < ${1522}
| | ... | ${False} | ${True}
| | ...
-| | Given Add '${wt}' worker threads and '${rxq}' rxqueues in 3-node single-link circular topology
+| | Given Add worker threads and rxqueues to all DUTs | ${phy_cores} | ${rxq}
| | And Add PCI devices to all DUTs
| | And Run Keyword If | ${get_framesize} < ${1522}
| | ... | Add no multi seg to all DUTs
@@ -99,148 +106,49 @@
*** Test Cases ***
| tc01-64B-1t1c-eth-l2xcbase-eth-2vhostvr1024-1vm-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2XC switching config with 1 phy\
-| | ... | core, 1 receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 64B frames using single\
-| | ... | trial throughput test.
-| | ...
| | [Tags] | 64B | 1C
-| | ...
-| | [Template] | Check RR for eth-l2xcbase-eth-2vhostvr1024-1vm
-| | framesize=${64} | wt=1 | rxq=1
+| | framesize=${64} | phy_cores=${1}
| tc02-1518B-1t1c-eth-l2xcbase-eth-2vhostvr1024-1vm-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2XC switching config with 1 phy\
-| | ... | core, 1 receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 1518B frames using single\
-| | ... | trial throughput test.
-| | ...
| | [Tags] | 1518B | 1C
-| | ...
-| | [Template] | Check RR for eth-l2xcbase-eth-2vhostvr1024-1vm
-| | framesize=${1518} | wt=1 | rxq=1
+| | framesize=${1518} | phy_cores=${1}
| tc03-9000B-1t1c-eth-l2xcbase-eth-2vhostvr1024-1vm-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2XC switching config with 1 phy\
-| | ... | core, 1 receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 9000B frames using single\
-| | ... | trial throughput test.
-| | ...
| | [Tags] | 9000B | 1C
-| | ...
-| | [Template] | Check RR for eth-l2xcbase-eth-2vhostvr1024-1vm
-| | framesize=${9000} | wt=1 | rxq=1
+| | framesize=${9000} | phy_cores=${1}
| tc04-IMIX-1t1c-eth-l2xcbase-eth-2vhostvr1024-1vm-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2XC switching config with 1 phy\
-| | ... | core, 1 receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for IMIX_v4_1 frames using single\
-| | ... | trial throughput test.
-| | ... | IMIX_v4_1 = (28x64B; 16x570B; 4x1518B)
-| | ...
| | [Tags] | IMIX | 1C
-| | ...
-| | [Template] | Check RR for eth-l2xcbase-eth-2vhostvr1024-1vm
-| | framesize=IMIX_v4_1 | wt=1 | rxq=1
+| | framesize=IMIX_v4_1 | phy_cores=${1}
| tc05-64B-2t2c-eth-l2xcbase-eth-2vhostvr1024-1vm-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2XC switching config with 2 phy\
-| | ... | cores, 1 receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 64B frames using single\
-| | ... | trial throughput test.
-| | ...
| | [Tags] | 64B | 2C
-| | ...
-| | [Template] | Check RR for eth-l2xcbase-eth-2vhostvr1024-1vm
-| | framesize=${64} | wt=2 | rxq=1
+| | framesize=${64} | phy_cores=${2}
| tc06-1518B-2t2c-eth-l2xcbase-eth-2vhostvr1024-1vm-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2XC switching config with 2 phy\
-| | ... | cores, 1 receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 1518B frames using single\
-| | ... | trial throughput test.
-| | ...
| | [Tags] | 1518B | 2C
-| | ...
-| | [Template] | Check RR for eth-l2xcbase-eth-2vhostvr1024-1vm
-| | framesize=${1518} | wt=2 | rxq=1
+| | framesize=${1518} | phy_cores=${2}
| tc07-9000B-2t2c-eth-l2xcbase-eth-2vhostvr1024-1vm-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2XC switching config with 2 phy\
-| | ... | cores, 1 receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 9000B frames using single\
-| | ... | trial throughput test.
-| | ...
| | [Tags] | 9000B | 2C
-| | ...
-| | [Template] | Check RR for eth-l2xcbase-eth-2vhostvr1024-1vm
-| | framesize=${9000} | wt=2 | rxq=1
+| | framesize=${9000} | phy_cores=${2}
| tc08-IMIX-2t2c-eth-l2xcbase-eth-2vhostvr1024-1vm-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2XC switching config with 2 phy\
-| | ... | cores, 1 receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for IMIX_v4_1 frames using single\
-| | ... | trial throughput test.
-| | ... | IMIX_v4_1 = (28x64B; 16x570B; 4x1518B)
-| | ...
| | [Tags] | IMIX | 2C
-| | ...
-| | [Template] | Check RR for eth-l2xcbase-eth-2vhostvr1024-1vm
-| | framesize=IMIX_v4_1 | wt=2 | rxq=1
+| | framesize=IMIX_v4_1 | phy_cores=${2}
| tc09-64B-4t4c-eth-l2xcbase-eth-2vhostvr1024-1vm-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2XC switching config with 4 phy\
-| | ... | cores, 2 receive queues per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 64B frames using single\
-| | ... | trial throughput test.
-| | ...
| | [Tags] | 64B | 4C
-| | ...
-| | [Template] | Check RR for eth-l2xcbase-eth-2vhostvr1024-1vm
-| | framesize=${64} | wt=4 | rxq=2
+| | framesize=${64} | phy_cores=${4}
| tc10-1518B-4t4c-eth-l2xcbase-eth-2vhostvr1024-1vm-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2XC switching config with 4 phy\
-| | ... | cores, 2 receive queues per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 1518B frames using single\
-| | ... | trial throughput test.
-| | ...
| | [Tags] | 1518B | 4C
-| | ...
-| | [Template] | Check RR for eth-l2xcbase-eth-2vhostvr1024-1vm
-| | framesize=${1518} | wt=4 | rxq=2
+| | framesize=${1518} | phy_cores=${4}
| tc11-9000B-4t4c-eth-l2xcbase-eth-2vhostvr1024-1vm-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2XC switching config with 4 phy\
-| | ... | cores, 2 receive queues per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 9000B frames using single\
-| | ... | trial throughput test.
-| | ...
| | [Tags] | 9000B | 4C
-| | ...
-| | [Template] | Check RR for eth-l2xcbase-eth-2vhostvr1024-1vm
-| | framesize=${9000} | wt=4 | rxq=2
+| | framesize=${9000} | phy_cores=${4}
| tc12-IMIX-4t4c-eth-l2xcbase-eth-2vhostvr1024-1vm-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2XC switching config with 4 phy\
-| | ... | cores, 2 receive queues per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for IMIX_v4_1 frames using single\
-| | ... | trial throughput test.
-| | ... | IMIX_v4_1 = (28x64B; 16x570B; 4x1518B)
-| | ...
| | [Tags] | IMIX | 4C
-| | ...
-| | [Template] | Check RR for eth-l2xcbase-eth-2vhostvr1024-1vm
-| | framesize=IMIX_v4_1 | wt=4 | rxq=2
+| | framesize=IMIX_v4_1 | phy_cores=${4}
diff --git a/tests/vpp/perf/vm_vhost/10ge2p1x520-eth-l2xcbase-eth-2vhostvr1024-1vm-ndrpdrdisc.robot b/tests/vpp/perf/vm_vhost/10ge2p1x520-eth-l2xcbase-eth-2vhostvr1024-1vm-ndrpdrdisc.robot
index a3b0b7a77b..629f17e81c 100644
--- a/tests/vpp/perf/vm_vhost/10ge2p1x520-eth-l2xcbase-eth-2vhostvr1024-1vm-ndrpdrdisc.robot
+++ b/tests/vpp/perf/vm_vhost/10ge2p1x520-eth-l2xcbase-eth-2vhostvr1024-1vm-ndrpdrdisc.robot
@@ -78,7 +78,7 @@
| | ${threshold}= | Set Variable | ${min_rate}
| | ${dut1_vm_refs}= | Create Dictionary
| | ${dut2_vm_refs}= | Create Dictionary
-| | Given Add '1' worker threads and '1' rxqueues in 3-node single-link circular topology
+| | Given Add worker threads and rxqueues to all DUTs | 1
| | And Add PCI devices to all DUTs
| | And Add no multi seg to all DUTs
| | And Apply startup configuration on all VPP DUTs
@@ -108,7 +108,7 @@
| | ${threshold}= | Set Variable | ${min_rate}
| | ${dut1_vm_refs}= | Create Dictionary
| | ${dut2_vm_refs}= | Create Dictionary
-| | Given Add '1' worker threads and '1' rxqueues in 3-node single-link circular topology
+| | Given Add worker threads and rxqueues to all DUTs | 1
| | And Add PCI devices to all DUTs
| | And Add no multi seg to all DUTs
| | And Apply startup configuration on all VPP DUTs
@@ -139,7 +139,7 @@
| | ${threshold}= | Set Variable | ${min_rate}
| | ${dut1_vm_refs}= | Create Dictionary
| | ${dut2_vm_refs}= | Create Dictionary
-| | Given Add '1' worker threads and '1' rxqueues in 3-node single-link circular topology
+| | Given Add worker threads and rxqueues to all DUTs | 1
| | And Add PCI devices to all DUTs
| | And Add no multi seg to all DUTs
| | And Apply startup configuration on all VPP DUTs
@@ -169,7 +169,7 @@
| | ${threshold}= | Set Variable | ${min_rate}
| | ${dut1_vm_refs}= | Create Dictionary
| | ${dut2_vm_refs}= | Create Dictionary
-| | Given Add '1' worker threads and '1' rxqueues in 3-node single-link circular topology
+| | Given Add worker threads and rxqueues to all DUTs | 1
| | And Add PCI devices to all DUTs
| | And Add no multi seg to all DUTs
| | And Apply startup configuration on all VPP DUTs
@@ -201,7 +201,7 @@
| | ${threshold}= | Set Variable | ${min_rate}
| | ${dut1_vm_refs}= | Create Dictionary
| | ${dut2_vm_refs}= | Create Dictionary
-| | Given Add '1' worker threads and '1' rxqueues in 3-node single-link circular topology
+| | Given Add worker threads and rxqueues to all DUTs | 1
| | And Add PCI devices to all DUTs
| | And Add no multi seg to all DUTs
| | And Apply startup configuration on all VPP DUTs
@@ -232,7 +232,7 @@
| | ${threshold}= | Set Variable | ${min_rate}
| | ${dut1_vm_refs}= | Create Dictionary
| | ${dut2_vm_refs}= | Create Dictionary
-| | Given Add '1' worker threads and '1' rxqueues in 3-node single-link circular topology
+| | Given Add worker threads and rxqueues to all DUTs | 1
| | And Add PCI devices to all DUTs
| | And Add no multi seg to all DUTs
| | And Apply startup configuration on all VPP DUTs
@@ -263,7 +263,7 @@
| | ${threshold}= | Set Variable | ${min_rate}
| | ${dut1_vm_refs}= | Create Dictionary
| | ${dut2_vm_refs}= | Create Dictionary
-| | Given Add '2' worker threads and '1' rxqueues in 3-node single-link circular topology
+| | Given Add worker threads and rxqueues to all DUTs | 2
| | And Add PCI devices to all DUTs
| | And Add no multi seg to all DUTs
| | And Apply startup configuration on all VPP DUTs
@@ -293,7 +293,7 @@
| | ${threshold}= | Set Variable | ${min_rate}
| | ${dut1_vm_refs}= | Create Dictionary
| | ${dut2_vm_refs}= | Create Dictionary
-| | Given Add '2' worker threads and '1' rxqueues in 3-node single-link circular topology
+| | Given Add worker threads and rxqueues to all DUTs | 2
| | And Add PCI devices to all DUTs
| | And Add no multi seg to all DUTs
| | And Apply startup configuration on all VPP DUTs
@@ -324,7 +324,7 @@
| | ${threshold}= | Set Variable | ${min_rate}
| | ${dut1_vm_refs}= | Create Dictionary
| | ${dut2_vm_refs}= | Create Dictionary
-| | Given Add '2' worker threads and '1' rxqueues in 3-node single-link circular topology
+| | Given Add worker threads and rxqueues to all DUTs | 2
| | And Add PCI devices to all DUTs
| | And Add no multi seg to all DUTs
| | And Apply startup configuration on all VPP DUTs
@@ -354,7 +354,7 @@
| | ${threshold}= | Set Variable | ${min_rate}
| | ${dut1_vm_refs}= | Create Dictionary
| | ${dut2_vm_refs}= | Create Dictionary
-| | Given Add '2' worker threads and '1' rxqueues in 3-node single-link circular topology
+| | Given Add worker threads and rxqueues to all DUTs | 2
| | And Add PCI devices to all DUTs
| | And Add no multi seg to all DUTs
| | And Apply startup configuration on all VPP DUTs
@@ -386,7 +386,7 @@
| | ${threshold}= | Set Variable | ${min_rate}
| | ${dut1_vm_refs}= | Create Dictionary
| | ${dut2_vm_refs}= | Create Dictionary
-| | Given Add '2' worker threads and '1' rxqueues in 3-node single-link circular topology
+| | Given Add worker threads and rxqueues to all DUTs | 2
| | And Add PCI devices to all DUTs
| | And Add no multi seg to all DUTs
| | And Apply startup configuration on all VPP DUTs
@@ -417,7 +417,7 @@
| | ${threshold}= | Set Variable | ${min_rate}
| | ${dut1_vm_refs}= | Create Dictionary
| | ${dut2_vm_refs}= | Create Dictionary
-| | Given Add '2' worker threads and '1' rxqueues in 3-node single-link circular topology
+| | Given Add worker threads and rxqueues to all DUTs | 2
| | And Add PCI devices to all DUTs
| | And Add no multi seg to all DUTs
| | And Apply startup configuration on all VPP DUTs
@@ -448,7 +448,7 @@
| | ${threshold}= | Set Variable | ${min_rate}
| | ${dut1_vm_refs}= | Create Dictionary
| | ${dut2_vm_refs}= | Create Dictionary
-| | Given Add '4' worker threads and '2' rxqueues in 3-node single-link circular topology
+| | Given Add worker threads and rxqueues to all DUTs | 4
| | And Add PCI devices to all DUTs
| | And Add no multi seg to all DUTs
| | And Apply startup configuration on all VPP DUTs
@@ -478,7 +478,7 @@
| | ${threshold}= | Set Variable | ${min_rate}
| | ${dut1_vm_refs}= | Create Dictionary
| | ${dut2_vm_refs}= | Create Dictionary
-| | Given Add '4' worker threads and '2' rxqueues in 3-node single-link circular topology
+| | Given Add worker threads and rxqueues to all DUTs | 4
| | And Add PCI devices to all DUTs
| | And Add no multi seg to all DUTs
| | And Apply startup configuration on all VPP DUTs
@@ -509,7 +509,7 @@
| | ${threshold}= | Set Variable | ${min_rate}
| | ${dut1_vm_refs}= | Create Dictionary
| | ${dut2_vm_refs}= | Create Dictionary
-| | Given Add '4' worker threads and '2' rxqueues in 3-node single-link circular topology
+| | Given Add worker threads and rxqueues to all DUTs | 4
| | And Add PCI devices to all DUTs
| | And Add no multi seg to all DUTs
| | And Apply startup configuration on all VPP DUTs
@@ -539,7 +539,7 @@
| | ${threshold}= | Set Variable | ${min_rate}
| | ${dut1_vm_refs}= | Create Dictionary
| | ${dut2_vm_refs}= | Create Dictionary
-| | Given Add '4' worker threads and '2' rxqueues in 3-node single-link circular topology
+| | Given Add worker threads and rxqueues to all DUTs | 4
| | And Add PCI devices to all DUTs
| | And Add no multi seg to all DUTs
| | And Apply startup configuration on all VPP DUTs
@@ -571,7 +571,7 @@
| | ${threshold}= | Set Variable | ${min_rate}
| | ${dut1_vm_refs}= | Create Dictionary
| | ${dut2_vm_refs}= | Create Dictionary
-| | Given Add '4' worker threads and '2' rxqueues in 3-node single-link circular topology
+| | Given Add worker threads and rxqueues to all DUTs | 4
| | And Add PCI devices to all DUTs
| | And Add no multi seg to all DUTs
| | And Apply startup configuration on all VPP DUTs
@@ -602,7 +602,7 @@
| | ${threshold}= | Set Variable | ${min_rate}
| | ${dut1_vm_refs}= | Create Dictionary
| | ${dut2_vm_refs}= | Create Dictionary
-| | Given Add '4' worker threads and '2' rxqueues in 3-node single-link circular topology
+| | Given Add worker threads and rxqueues to all DUTs | 4
| | And Add PCI devices to all DUTs
| | And Add no multi seg to all DUTs
| | And Apply startup configuration on all VPP DUTs
diff --git a/tests/vpp/perf/vm_vhost/10ge2p1x520-eth-l2xcbase-eth-2vhostvr256-1vm-cfsrr1-ndrpdrdisc.robot b/tests/vpp/perf/vm_vhost/10ge2p1x520-eth-l2xcbase-eth-2vhostvr256-1vm-cfsrr1-ndrpdrdisc.robot
index 016e89e151..567c0b3399 100644
--- a/tests/vpp/perf/vm_vhost/10ge2p1x520-eth-l2xcbase-eth-2vhostvr256-1vm-cfsrr1-ndrpdrdisc.robot
+++ b/tests/vpp/perf/vm_vhost/10ge2p1x520-eth-l2xcbase-eth-2vhostvr256-1vm-cfsrr1-ndrpdrdisc.robot
@@ -29,6 +29,8 @@
| ... | dut1_node=${dut1} | dut1_vm_refs=${dut1_vm_refs}
| ... | dut2_node=${dut2} | dut2_vm_refs=${dut2_vm_refs}
| ...
+| Test Template | Local template
+| ...
| Documentation | *RFC2544: Packet throughput L2XC test cases with vhost*
| ...
| ... | *[Top] Network Topologies:* TG-DUT1-DUT2-TG 3-node circular topology
@@ -69,22 +71,9 @@
| ${traffic_profile}= | trex-sl-3n-ethip4-ip4src254
*** Keywords ***
-| Discover NDR or PDR for L2 xconnect with VM
-| | [Arguments] | ${wt} | ${rxq} | ${framesize} | ${min_rate} | ${search_type}
-| | ...
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2XC switching config with required number of threads,\
-| | ... | phy cores and receive queues per NIC port.
-| | ... | [Ver] Find NDR or PDR for defined frame size using binary search\
-| | ... | start at 10GE linerate with specified step.
-| | ...
-| | ... | *Arguments:*
-| | ... | - wt - Number of worker threads to be used. Type: integer
-| | ... | - rxq - Number of Rx queues to be used. Type: integer
-| | ... | - framesize - L2 Frame Size [B]. Type: integer
-| | ... | - min_rate - Lower limit of search [pps]. Type: float
-| | ... | - search_type - Type of the search - non drop rate (NDR) or partial
-| | ... | drop rare (PDR). Type: string
+| Local template
+| | [Arguments] | ${phy_cores} | ${framesize} | ${search_type} | ${rxq}=${None}
+| | ... | ${min_rate}=${10000}
| | ...
| | Set Test Variable | ${use_tuned_cfs} | ${True}
| | Set Test Variable | ${framesize}
@@ -100,7 +89,7 @@
| | ${dut2_vm_refs}= | Create Dictionary
| | Set Test Variable | ${dut1_vm_refs}
| | Set Test Variable | ${dut2_vm_refs}
-| | Given Add '${wt}' worker threads and '${rxq}' rxqueues in 3-node single-link circular topology
+| | Given Add worker threads and rxqueues to all DUTs | ${phy_cores} | ${rxq}
| | And Add PCI devices to all DUTs
| | And Run Keyword If | ${get_framesize} < ${1522} | Add no multi seg to all DUTs
| | And Apply startup configuration on all VPP DUTs
@@ -125,223 +114,73 @@
*** Test Cases ***
| tc01-64B-1t1c-eth-l2xcbase-eth-2vhostvr256-1vm-cfsrr1-ndrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2XC switching config with 1 phy core,\
-| | ... | 1 receive queue per NIC port.
-| | ... | [Ver] Find NDR for 64 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 10kpps.
-| | ...
| | [Tags] | 64B | 1C | NDRDISC
-| | ...
-| | [Template] | Discover NDR or PDR for L2 xconnect with VM
-| | wt=1 | rxq=1 | framesize=${64} | min_rate=${10000} | search_type=NDR
+| | phy_cores=${1} | framesize=${64} | search_type=NDR
| tc02-64B-1t1c-eth-l2xcbase-eth-2vhostvr256-1vm-cfsrr1-pdrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2XC switching config with 1 phy core,\
-| | ... | 1 receive queue per NIC port.
-| | ... | [Ver] Find PDR for 64 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 10kpps, LT=0.5%.
-| | ...
| | [Tags] | 64B | 1C | PDRDISC | SKIP_PATCH
-| | ...
-| | [Template] | Discover NDR or PDR for L2 xconnect with VM
-| | wt=1 | rxq=1 | framesize=${64} | min_rate=${10000} | search_type=PDR
+| | phy_cores=${1} | framesize=${64} | search_type=PDR
| tc03-1518B-1t1c-etc-l2xcbase-eth-2vhostvr256-1vm-cfsrr1-ndrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2XC switching config with 1 phy core,\
-| | ... | 1 receive queue per NIC port.
-| | ... | [Ver] Find NDR for 1518 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 10kpps.
-| | ...
| | [Tags] | 1518B | 1C | NDRDISC
-| | ...
-| | [Template] | Discover NDR or PDR for L2 xconnect with VM
-| | wt=1 | rxq=1 | framesize=${1518} | min_rate=${10000} | search_type=NDR
+| | phy_cores=${1} | framesize=${1518} | search_type=NDR
| tc04-1518B-1t1c-eth-l2xcbase-eth-2vhostvr256-1vm-cfsrr1-pdrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2XC switching config with 1 phy core,\
-| | ... | 1 receive queue per NIC port.
-| | ... | [Ver] Find PDR for 1518 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 10kpps, LT=0.5%.
-| | ...
| | [Tags] | 1518B | 1C | PDRDISC | SKIP_PATCH
-| | ...
-| | [Template] | Discover NDR or PDR for L2 xconnect with VM
-| | wt=1 | rxq=1 | framesize=${1518} | min_rate=${10000} | search_type=PDR
+| | phy_cores=${1} | framesize=${1518} | search_type=PDR
| tc05-IMIX-1t1c-eth-l2xcbase-eth-2vhostvr256-1vm-cfsrr1-ndrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2XC switching config with 1 phy core,\
-| | ... | 1 receive queue per NIC port.
-| | ... | [Ver] Find NDR for IMIX_v4_1 framesize using binary search start at\
-| | ... | 10GE linerate, step 10kpps.
-| | ... | IMIX_v4_1 = (28x64B; 16x570B; 4x1518B)
-| | ...
| | [Tags] | IMIX | 1C | NDRDISC
-| | ...
-| | [Template] | Discover NDR or PDR for L2 xconnect with VM
-| | wt=1 | rxq=1 | framesize=IMIX_v4_1 | min_rate=${10000} | search_type=NDR
+| | phy_cores=${1} | framesize=IMIX_v4_1 | search_type=NDR
| tc06-IMIX-1t1c-eth-l2xcbase-eth-2vhostvr256-1vm-cfsrr1-pdrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2XC switching config with 1 phy core,\
-| | ... | 1 receive queue per NIC port.
-| | ... | [Ver] Find PDR for IMIX_v4_1 framesize using binary search start at\
-| | ... | 10GE linerate, step 10kpps, LT=0.5%.
-| | ... | IMIX_v4_1 = (28x64B; 16x570B; 4x1518B)
-| | ...
| | [Tags] | IMIX | 1C | PDRDISC | SKIP_PATCH
-| | ...
-| | [Template] | Discover NDR or PDR for L2 xconnect with VM
-| | wt=1 | rxq=1 | framesize=IMIX_v4_1 | min_rate=${10000} | search_type=PDR
+| | phy_cores=${1} | framesize=IMIX_v4_1 | search_type=PDR
| tc07-64B-2t2c-eth-l2xcbase-eth-2vhostvr256-1vm-cfsrr1-ndrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2XC switching config with 2 phy cores,\
-| | ... | 1 receive queue per NIC port.
-| | ... | [Ver] Find NDR for 64 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 10kpps.
-| | ...
| | [Tags] | 64B | 2C | NDRDISC
-| | ...
-| | [Template] | Discover NDR or PDR for L2 xconnect with VM
-| | wt=2 | rxq=1 | framesize=${64} | min_rate=${10000} | search_type=NDR
+| | phy_cores=${2} | framesize=${64} | search_type=NDR
| tc08-64B-2t2c-eth-l2xcbase-eth-2vhostvr256-1vm-cfsrr1-pdrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2XC switching config with 2 phy cores,\
-| | ... | 1 receive queue per NIC port.
-| | ... | [Ver] Find PDR for 64 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 10kpps, LT=0.5%.
-| | ...
| | [Tags] | 64B | 2C | PDRDISC | SKIP_PATCH
-| | ...
-| | [Template] | Discover NDR or PDR for L2 xconnect with VM
-| | wt=2 | rxq=1 | framesize=${64} | min_rate=${10000} | search_type=PDR
+| | phy_cores=${2} | framesize=${64} | search_type=PDR
| tc09-1518B-2t2c-eth-l2xcbase-eth-2vhostvr256-1vm-cfsrr1-ndrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2XC switching config with 2 phy cores,\
-| | ... | 1 receive queue per NIC port.
-| | ... | [Ver] Find NDR for 1518 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 10kpps.
-| | ...
| | [Tags] | 1518B | 2C | NDRDISC | SKIP_PATCH
-| | ...
-| | [Template] | Discover NDR or PDR for L2 xconnect with VM
-| | wt=2 | rxq=1 | framesize=${1518} | min_rate=${10000} | search_type=NDR
+| | phy_cores=${2} | framesize=${1518} | search_type=NDR
| tc10-1518B-2t2c-eth-l2xcbase-eth-2vhostvr256-1vm-cfsrr1-pdrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2XC switching config with 2 phy cores,\
-| | ... | 1 receive queue per NIC port.
-| | ... | [Ver] Find PDR for 1518 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 10kpps, LT=0.5%.
-| | ...
| | [Tags] | 1518B | 2C | PDRDISC | SKIP_PATCH
-| | ...
-| | [Template] | Discover NDR or PDR for L2 xconnect with VM
-| | wt=2 | rxq=1 | framesize=${1518} | min_rate=${10000} | search_type=PDR
+| | phy_cores=${2} | framesize=${1518} | search_type=PDR
| tc11-IMIX-2t2c-eth-l2xcbase-eth-2vhostvr256-1vm-cfsrr1-ndrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2XC switching config with 2 phy cores,\
-| | ... | 1 receive queue per NIC port.
-| | ... | [Ver] Find NDR for IMIX_v4_1 framesize using binary search start at\
-| | ... | 10GE linerate, step 10kpps.
-| | ... | IMIX_v4_1 = (28x64B; 16x570B; 4x1518B)
-| | ...
| | [Tags] | IMIX | 2C | NDRDISC | SKIP_PATCH
-| | ...
-| | [Template] | Discover NDR or PDR for L2 xconnect with VM
-| | wt=2 | rxq=1 | framesize=IMIX_v4_1 | min_rate=${10000} | search_type=NDR
+| | phy_cores=${2} | framesize=IMIX_v4_1 | search_type=NDR
| tc12-IMIX-2t2c-eth-l2xcbase-eth-2vhostvr256-1vm-cfsrr1-pdrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2XC switching config with 2 phy cores,\
-| | ... | 1 receive queue per NIC port.
-| | ... | [Ver] Find PDR for IMIX_v4_1 framesize using binary search start at\
-| | ... | 10GE linerate, step 10kpps.
-| | ... | IMIX_v4_1 = (28x64B; 16x570B; 4x1518B)
-| | ...
| | [Tags] | IMIX | 2C | PDRDISC | SKIP_PATCH
-| | ...
-| | [Template] | Discover NDR or PDR for L2 xconnect with VM
-| | wt=2 | rxq=1 | framesize=IMIX_v4_1 | min_rate=${10000} | search_type=PDR
+| | phy_cores=${2} | framesize=IMIX_v4_1 | search_type=PDR
| tc13-64B-4t4c-eth-l2xcbase-eth-2vhostvr256-1vm-cfsrr1-ndrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2XC switching config with 4 phy cores,\
-| | ... | 2 receive queues per NIC port.
-| | ... | [Ver] Find NDR for 64 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 10kpps.
-| | ...
| | [Tags] | 64B | 4C | NDRDISC
-| | ...
-| | [Template] | Discover NDR or PDR for L2 xconnect with VM
-| | wt=4 | rxq=2 | framesize=${64} | min_rate=${10000} | search_type=NDR
+| | phy_cores=${4} | framesize=${64} | search_type=NDR
| tc14-64B-4t4c-eth-l2xcbase-eth-2vhostvr256-1vm-cfsrr1-pdrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2XC switching config with 4 phy cores,\
-| | ... | 2 receive queues per NIC port.
-| | ... | [Ver] Find PDR for 64 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 10kpps, LT=0.5%.
-| | ...
| | [Tags] | 64B | 4C | PDRDISC | SKIP_PATCH
-| | ...
-| | [Template] | Discover NDR or PDR for L2 xconnect with VM
-| | wt=4 | rxq=2 | framesize=${64} | min_rate=${10000} | search_type=PDR
+| | phy_cores=${4} | framesize=${64} | search_type=PDR
| tc15-1518B-4t4c-eth-l2xcbase-eth-2vhostvr256-1vm-cfsrr1-ndrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2XC switching config with 4 phy cores,\
-| | ... | 2 receive queues per NIC port.
-| | ... | [Ver] Find NDR for 1518 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 10kpps.
-| | ...
| | [Tags] | 1518B | 4C | NDRDISC | SKIP_PATCH
-| | ...
-| | [Template] | Discover NDR or PDR for L2 xconnect with VM
-| | wt=4 | rxq=2 | framesize=${1518} | min_rate=${10000} | search_type=NDR
+| | phy_cores=${4} | framesize=${1518} | search_type=NDR
| tc16-1518B-4t4c-eth-l2xcbase-eth-2vhostvr256-1vm-cfsrr1-pdrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2XC switching config with 4 phy cores,\
-| | ... | 2 receive queues per NIC port.
-| | ... | [Ver] Find PDR for 1518 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 10kpps, LT=0.5%.
-| | ...
| | [Tags] | 1518B | 4C | PDRDISC | SKIP_PATCH
-| | ...
-| | [Template] | Discover NDR or PDR for L2 xconnect with VM
-| | wt=4 | rxq=2 | framesize=${1518} | min_rate=${10000} | search_type=PDR
+| | phy_cores=${4} | framesize=${1518} | search_type=PDR
| tc17-IMIX-4t4c-eth-l2xcbase-eth-2vhostvr256-1vm-cfsrr1-ndrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2XC switching config with 4 phy cores,\
-| | ... | 2 receive queues per NIC port.
-| | ... | [Ver] Find NDR for IMIX_v4_1 framesize using binary search start at\
-| | ... | 10GE linerate, step 10kpps.
-| | ... | IMIX_v4_1 = (28x64B; 16x570B; 4x1518B)
-| | ...
| | [Tags] | IMIX | 4C | NDRDISC | SKIP_PATCH
-| | ...
-| | [Template] | Discover NDR or PDR for L2 xconnect with VM
-| | wt=4 | rxq=2 | framesize=IMIX_v4_1 | min_rate=${10000} | search_type=NDR
+| | phy_cores=${4} | framesize=IMIX_v4_1 | search_type=NDR
| tc18-IMIX-4t4c-eth-l2xcbase-eth-2vhostvr256-1vm-cfsrr1-pdrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2XC switching config with 4 phy cores,\
-| | ... | 2 receive queues per NIC port.
-| | ... | [Ver] Find PDR for IMIX_v4_1 framesize using binary search start at\
-| | ... | 10GE linerate, step 10kpps, LT=0.5%.
-| | ... | IMIX_v4_1 = (28x64B; 16x570B; 4x1518B)
-| | ...
| | [Tags] | IMIX | 4C | PDRDISC | SKIP_PATCH
-| | ...
-| | [Template] | Discover NDR or PDR for L2 xconnect with VM
-| | wt=4 | rxq=2 | framesize=IMIX_v4_1 | min_rate=${10000} | search_type=PDR
+| | phy_cores=${4} | framesize=IMIX_v4_1 | search_type=PDR
diff --git a/tests/vpp/perf/vm_vhost/10ge2p1x520-eth-l2xcbase-eth-2vhostvr256-1vm-mrr.robot b/tests/vpp/perf/vm_vhost/10ge2p1x520-eth-l2xcbase-eth-2vhostvr256-1vm-mrr.robot
index fa37102973..f0e13ac986 100644
--- a/tests/vpp/perf/vm_vhost/10ge2p1x520-eth-l2xcbase-eth-2vhostvr256-1vm-mrr.robot
+++ b/tests/vpp/perf/vm_vhost/10ge2p1x520-eth-l2xcbase-eth-2vhostvr256-1vm-mrr.robot
@@ -27,6 +27,8 @@
| ... | dut1_node=${dut1} | dut1_vm_refs=${dut1_vm_refs}
| ... | dut2_node=${dut2} | dut2_vm_refs=${dut2_vm_refs}
| ...
+| Test Template | Local template
+| ...
| Documentation | *Raw results L2XC test cases with vhost*
| ...
| ... | *[Top] Network Topologies:* TG-DUT1-DUT2-TG 3-node circular topology
@@ -59,16 +61,21 @@
| ${traffic_profile}= | trex-sl-3n-ethip4-ip4src254
*** Keywords ***
-| Check RR for eth-l2xcbase-eth-2vhostvr256-1vm
+| Local template
| | [Documentation]
-| | ... | [Cfg] DUT runs L2XC switching config with ${wt} thread, ${wt} phy\
-| | ... | core, ${rxq} receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for ${framesize} frames using single\
+| | ... | [Cfg] DUT runs L2XC switching config.
+| | ... | Each DUT uses ${phy_cores} physical core(s) for worker threads.
+| | ... | [Ver] Measure MaxReceivedRate for ${framesize}B frames using single\
| | ... | trial throughput test.
| | ...
-| | [Arguments] | ${framesize} | ${wt} | ${rxq}
+| | ... | *Arguments:*
+| | ... | - framesize - Framesize in Bytes in integer or string (IMIX_v4_1).
+| | ... | Type: integer, string
+| | ... | - phy_cores - Number of physical cores. Type: integer
+| | ... | - rxq - Number of RX queues, default value: ${None}. Type: integer
+| | ...
+| | [Arguments] | ${framesize} | ${phy_cores} | ${rxq}=${None}
| | ...
-| | # Test Variables required for test and test teardown
| | Set Test Variable | ${framesize}
| | ${get_framesize}= | Get Frame Size | ${framesize}
| | ${max_rate}= | Calculate pps | ${s_limit} | ${get_framesize}
@@ -79,7 +86,7 @@
| | ${jumbo_frames}= | Set Variable If | ${get_framesize} < ${1522}
| | ... | ${False} | ${True}
| | ...
-| | Given Add '${wt}' worker threads and '${rxq}' rxqueues in 3-node single-link circular topology
+| | Given Add worker threads and rxqueues to all DUTs | ${phy_cores} | ${rxq}
| | And Add PCI devices to all DUTs
| | And Run Keyword If | ${get_framesize} < ${1522}
| | ... | Add no multi seg to all DUTs
@@ -99,148 +106,49 @@
*** Test Cases ***
| tc01-64B-1t1c-eth-l2xcbase-eth-2vhostvr256-1vm-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2XC switching config with 1 phy\
-| | ... | core, 1 receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 64B frames using single\
-| | ... | trial throughput test.
-| | ...
| | [Tags] | 64B | 1C
-| | ...
-| | [Template] | Check RR for eth-l2xcbase-eth-2vhostvr256-1vm
-| | framesize=${64} | wt=1 | rxq=1
+| | framesize=${64} | phy_cores=${1}
| tc02-1518B-1t1c-eth-l2xcbase-eth-2vhostvr256-1vm-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2XC switching config with 1 phy\
-| | ... | core, 1 receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 1518B frames using single\
-| | ... | trial throughput test.
-| | ...
| | [Tags] | 1518B | 1C
-| | ...
-| | [Template] | Check RR for eth-l2xcbase-eth-2vhostvr256-1vm
-| | framesize=${1518} | wt=1 | rxq=1
+| | framesize=${1518} | phy_cores=${1}
| tc03-9000B-1t1c-eth-l2xcbase-eth-2vhostvr256-1vm-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2XC switching config with 1 phy\
-| | ... | core, 1 receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 9000B frames using single\
-| | ... | trial throughput test.
-| | ...
| | [Tags] | 9000B | 1C
-| | ...
-| | [Template] | Check RR for eth-l2xcbase-eth-2vhostvr256-1vm
-| | framesize=${9000} | wt=1 | rxq=1
+| | framesize=${9000} | phy_cores=${1}
| tc04-IMIX-1t1c-eth-l2xcbase-eth-2vhostvr256-1vm-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2XC switching config with 1 phy\
-| | ... | core, 1 receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for IMIX_v4_1 frames using single\
-| | ... | trial throughput test.
-| | ... | IMIX_v4_1 = (28x64B; 16x570B; 4x1518B)
-| | ...
| | [Tags] | IMIX | 1C
-| | ...
-| | [Template] | Check RR for eth-l2xcbase-eth-2vhostvr256-1vm
-| | framesize=IMIX_v4_1 | wt=1 | rxq=1
+| | framesize=IMIX_v4_1 | phy_cores=${1}
| tc05-64B-2t2c-eth-l2xcbase-eth-2vhostvr256-1vm-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2XC switching config with 2 phy\
-| | ... | cores, 1 receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 64B frames using single\
-| | ... | trial throughput test.
-| | ...
| | [Tags] | 64B | 2C
-| | ...
-| | [Template] | Check RR for eth-l2xcbase-eth-2vhostvr256-1vm
-| | framesize=${64} | wt=2 | rxq=1
+| | framesize=${64} | phy_cores=${2}
| tc06-1518B-2t2c-eth-l2xcbase-eth-2vhostvr256-1vm-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2XC switching config with 2 phy\
-| | ... | cores, 1 receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 1518B frames using single\
-| | ... | trial throughput test.
-| | ...
| | [Tags] | 1518B | 2C
-| | ...
-| | [Template] | Check RR for eth-l2xcbase-eth-2vhostvr256-1vm
-| | framesize=${1518} | wt=2 | rxq=1
+| | framesize=${1518} | phy_cores=${2}
| tc07-9000B-2t2c-eth-l2xcbase-eth-2vhostvr256-1vm-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2XC switching config with 2 phy\
-| | ... | cores, 1 receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 9000B frames using single\
-| | ... | trial throughput test.
-| | ...
| | [Tags] | 9000B | 2C
-| | ...
-| | [Template] | Check RR for eth-l2xcbase-eth-2vhostvr256-1vm
-| | framesize=${9000} | wt=2 | rxq=1
+| | framesize=${9000} | phy_cores=${2}
| tc08-IMIX-2t2c-eth-l2xcbase-eth-2vhostvr256-1vm-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2XC switching config with 2 phy\
-| | ... | cores, 1 receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for IMIX_v4_1 frames using single\
-| | ... | trial throughput test.
-| | ... | IMIX_v4_1 = (28x64B; 16x570B; 4x1518B)
-| | ...
| | [Tags] | IMIX | 2C
-| | ...
-| | [Template] | Check RR for eth-l2xcbase-eth-2vhostvr256-1vm
-| | framesize=IMIX_v4_1 | wt=2 | rxq=1
+| | framesize=IMIX_v4_1 | phy_cores=${2}
| tc09-64B-4t4c-eth-l2xcbase-eth-2vhostvr256-1vm-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2XC switching config with 4 phy\
-| | ... | cores, 2 receive queues per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 64B frames using single\
-| | ... | trial throughput test.
-| | ...
| | [Tags] | 64B | 4C
-| | ...
-| | [Template] | Check RR for eth-l2xcbase-eth-2vhostvr256-1vm
-| | framesize=${64} | wt=4 | rxq=2
+| | framesize=${64} | phy_cores=${4}
| tc10-1518B-4t4c-eth-l2xcbase-eth-2vhostvr256-1vm-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2XC switching config with 4 phy\
-| | ... | cores, 2 receive queues per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 1518B frames using single\
-| | ... | trial throughput test.
-| | ...
| | [Tags] | 1518B | 4C
-| | ...
-| | [Template] | Check RR for eth-l2xcbase-eth-2vhostvr256-1vm
-| | framesize=${1518} | wt=4 | rxq=2
+| | framesize=${1518} | phy_cores=${4}
| tc11-9000B-4t4c-eth-l2xcbase-eth-2vhostvr256-1vm-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2XC switching config with 4 phy\
-| | ... | cores, 2 receive queues per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 9000B frames using single\
-| | ... | trial throughput test.
-| | ...
| | [Tags] | 9000B | 4C
-| | ...
-| | [Template] | Check RR for eth-l2xcbase-eth-2vhostvr256-1vm
-| | framesize=${9000} | wt=4 | rxq=2
+| | framesize=${9000} | phy_cores=${4}
| tc12-IMIX-4t4c-eth-l2xcbase-eth-2vhostvr256-1vm-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2XC switching config with 4 phy\
-| | ... | cores, 2 receive queues per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for IMIX_v4_1 frames using single\
-| | ... | trial throughput test.
-| | ... | IMIX_v4_1 = (28x64B; 16x570B; 4x1518B)
-| | ...
| | [Tags] | IMIX | 4C
-| | ...
-| | [Template] | Check RR for eth-l2xcbase-eth-2vhostvr256-1vm
-| | framesize=IMIX_v4_1 | wt=4 | rxq=2
+| | framesize=IMIX_v4_1 | phy_cores=${4}
diff --git a/tests/vpp/perf/vm_vhost/10ge2p1x520-eth-l2xcbase-eth-2vhostvr256-1vm-ndrpdrdisc.robot b/tests/vpp/perf/vm_vhost/10ge2p1x520-eth-l2xcbase-eth-2vhostvr256-1vm-ndrpdrdisc.robot
index 2857f8e29f..1e84646d93 100644
--- a/tests/vpp/perf/vm_vhost/10ge2p1x520-eth-l2xcbase-eth-2vhostvr256-1vm-ndrpdrdisc.robot
+++ b/tests/vpp/perf/vm_vhost/10ge2p1x520-eth-l2xcbase-eth-2vhostvr256-1vm-ndrpdrdisc.robot
@@ -28,6 +28,8 @@
| ... | dut1_node=${dut1} | dut1_vm_refs=${dut1_vm_refs}
| ... | dut2_node=${dut2} | dut2_vm_refs=${dut2_vm_refs}
| ...
+| Test Template | Local template
+| ...
| Documentation | *RFC2544: Packet throughput L2XC test cases with vhost*
| ...
| ... | *[Top] Network Topologies:* TG-DUT1-DUT2-TG 3-node circular topology
@@ -67,22 +69,9 @@
| ${traffic_profile}= | trex-sl-3n-ethip4-ip4src254
*** Keywords ***
-| Discover NDR or PDR for L2 xconnect with VM
-| | [Arguments] | ${wt} | ${rxq} | ${framesize} | ${min_rate} | ${search_type}
-| | ...
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2XC switching config with required number of threads,\
-| | ... | phy cores and receive queues per NIC port.
-| | ... | [Ver] Find NDR or PDR for defined frame size using binary search\
-| | ... | start at 10GE linerate with specified step.
-| | ...
-| | ... | *Arguments:*
-| | ... | - wt - Number of worker threads to be used. Type: integer
-| | ... | - rxq - Number of Rx queues to be used. Type: integer
-| | ... | - framesize - L2 Frame Size [B]. Type: integer
-| | ... | - min_rate - Lower limit of search [pps]. Type: float
-| | ... | - search_type - Type of the search - non drop rate (NDR) or partial
-| | ... | drop rare (PDR). Type: string
+| Local template
+| | [Arguments] | ${phy_cores} | ${framesize} | ${search_type} | ${rxq}=${None}
+| | ... | ${min_rate}=${10000}
| | ...
| | Set Test Variable | ${framesize}
| | Set Test Variable | ${min_rate}
@@ -97,7 +86,7 @@
| | ${dut2_vm_refs}= | Create Dictionary
| | Set Test Variable | ${dut1_vm_refs}
| | Set Test Variable | ${dut2_vm_refs}
-| | Given Add '${wt}' worker threads and '${rxq}' rxqueues in 3-node single-link circular topology
+| | Given Add worker threads and rxqueues to all DUTs | ${phy_cores} | ${rxq}
| | And Add PCI devices to all DUTs
| | And Run Keyword If | ${get_framesize} < ${1522} | Add no multi seg to all DUTs
| | And Apply startup configuration on all VPP DUTs
@@ -121,223 +110,73 @@
*** Test Cases ***
| tc01-64B-1t1c-eth-l2xcbase-eth-2vhostvr256-1vm-ndrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2XC switching config with 1 phy core,\
-| | ... | 1 receive queue per NIC port.
-| | ... | [Ver] Find NDR for 64 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 10kpps.
-| | ...
| | [Tags] | 64B | 1C | NDRDISC
-| | ...
-| | [Template] | Discover NDR or PDR for L2 xconnect with VM
-| | wt=1 | rxq=1 | framesize=${64} | min_rate=${10000} | search_type=NDR
+| | phy_cores=${1} | framesize=${64} | search_type=NDR
| tc02-64B-1t1c-eth-l2xcbase-eth-2vhostvr256-1vm-pdrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2XC switching config with 1 phy core,\
-| | ... | 1 receive queue per NIC port.
-| | ... | [Ver] Find PDR for 64 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 10kpps, LT=0.5%.
-| | ...
| | [Tags] | 64B | 1C | PDRDISC | SKIP_PATCH
-| | ...
-| | [Template] | Discover NDR or PDR for L2 xconnect with VM
-| | wt=1 | rxq=1 | framesize=${64} | min_rate=${10000} | search_type=PDR
+| | phy_cores=${1} | framesize=${64} | search_type=PDR
| tc03-1518B-1t1c-etc-l2xcbase-eth-2vhostvr256-1vm-ndrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2XC switching config with 1 phy core,\
-| | ... | 1 receive queue per NIC port.
-| | ... | [Ver] Find NDR for 1518 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 10kpps.
-| | ...
| | [Tags] | 1518B | 1C | NDRDISC
-| | ...
-| | [Template] | Discover NDR or PDR for L2 xconnect with VM
-| | wt=1 | rxq=1 | framesize=${1518} | min_rate=${10000} | search_type=NDR
+| | phy_cores=${1} | framesize=${1518} | search_type=NDR
| tc04-1518B-1t1c-eth-l2xcbase-eth-2vhostvr256-1vm-pdrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2XC switching config with 1 phy core,\
-| | ... | 1 receive queue per NIC port.
-| | ... | [Ver] Find PDR for 1518 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 10kpps, LT=0.5%.
-| | ...
| | [Tags] | 1518B | 1C | PDRDISC | SKIP_PATCH
-| | ...
-| | [Template] | Discover NDR or PDR for L2 xconnect with VM
-| | wt=1 | rxq=1 | framesize=${1518} | min_rate=${10000} | search_type=PDR
+| | phy_cores=${1} | framesize=${1518} | search_type=PDR
| tc05-IMIX-1t1c-eth-l2xcbase-eth-2vhostvr256-1vm-ndrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2XC switching config with 1 phy core,\
-| | ... | 1 receive queue per NIC port.
-| | ... | [Ver] Find NDR for IMIX_v4_1 framesize using binary search start at\
-| | ... | 10GE linerate, step 10kpps.
-| | ... | IMIX_v4_1 = (28x64B; 16x570B; 4x1518B)
-| | ...
| | [Tags] | IMIX | 1C | NDRDISC
-| | ...
-| | [Template] | Discover NDR or PDR for L2 xconnect with VM
-| | wt=1 | rxq=1 | framesize=IMIX_v4_1 | min_rate=${10000} | search_type=NDR
+| | phy_cores=${1} | framesize=IMIX_v4_1 | search_type=NDR
| tc06-IMIX-1t1c-eth-l2xcbase-eth-2vhostvr256-1vm-pdrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2XC switching config with 1 phy core,\
-| | ... | 1 receive queue per NIC port.
-| | ... | [Ver] Find PDR for IMIX_v4_1 framesize using binary search start at\
-| | ... | 10GE linerate, step 10kpps, LT=0.5%.
-| | ... | IMIX_v4_1 = (28x64B; 16x570B; 4x1518B)
-| | ...
| | [Tags] | IMIX | 1C | PDRDISC | SKIP_PATCH
-| | ...
-| | [Template] | Discover NDR or PDR for L2 xconnect with VM
-| | wt=1 | rxq=1 | framesize=IMIX_v4_1 | min_rate=${10000} | search_type=PDR
+| | phy_cores=${1} | framesize=IMIX_v4_1 | search_type=PDR
| tc07-64B-2t2c-eth-l2xcbase-eth-2vhostvr256-1vm-ndrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2XC switching config with 2 phy cores,\
-| | ... | 1 receive queue per NIC port.
-| | ... | [Ver] Find NDR for 64 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 10kpps.
-| | ...
| | [Tags] | 64B | 2C | NDRDISC
-| | ...
-| | [Template] | Discover NDR or PDR for L2 xconnect with VM
-| | wt=2 | rxq=1 | framesize=${64} | min_rate=${10000} | search_type=NDR
+| | phy_cores=${2} | framesize=${64} | search_type=NDR
| tc08-64B-2t2c-eth-l2xcbase-eth-2vhostvr256-1vm-pdrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2XC switching config with 2 phy cores,\
-| | ... | 1 receive queue per NIC port.
-| | ... | [Ver] Find PDR for 64 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 10kpps, LT=0.5%.
-| | ...
| | [Tags] | 64B | 2C | PDRDISC | SKIP_PATCH
-| | ...
-| | [Template] | Discover NDR or PDR for L2 xconnect with VM
-| | wt=2 | rxq=1 | framesize=${64} | min_rate=${10000} | search_type=PDR
+| | phy_cores=${2} | framesize=${64} | search_type=PDR
| tc09-1518B-2t2c-eth-l2xcbase-eth-2vhostvr256-1vm-ndrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2XC switching config with 2 phy cores,\
-| | ... | 1 receive queue per NIC port.
-| | ... | [Ver] Find NDR for 1518 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 10kpps.
-| | ...
| | [Tags] | 1518B | 2C | NDRDISC | SKIP_PATCH
-| | ...
-| | [Template] | Discover NDR or PDR for L2 xconnect with VM
-| | wt=2 | rxq=1 | framesize=${1518} | min_rate=${10000} | search_type=NDR
+| | phy_cores=${2} | framesize=${1518} | search_type=NDR
| tc10-1518B-2t2c-eth-l2xcbase-eth-2vhostvr256-1vm-pdrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2XC switching config with 2 phy cores,\
-| | ... | 1 receive queue per NIC port.
-| | ... | [Ver] Find PDR for 1518 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 10kpps, LT=0.5%.
-| | ...
| | [Tags] | 1518B | 2C | PDRDISC | SKIP_PATCH
-| | ...
-| | [Template] | Discover NDR or PDR for L2 xconnect with VM
-| | wt=2 | rxq=1 | framesize=${1518} | min_rate=${10000} | search_type=PDR
+| | phy_cores=${2} | framesize=${1518} | search_type=PDR
| tc11-IMIX-2t2c-eth-l2xcbase-eth-2vhostvr256-1vm-ndrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2XC switching config with 2 phy cores,\
-| | ... | 1 receive queue per NIC port.
-| | ... | [Ver] Find NDR for IMIX_v4_1 framesize using binary search start at\
-| | ... | 10GE linerate, step 10kpps.
-| | ... | IMIX_v4_1 = (28x64B; 16x570B; 4x1518B)
-| | ...
| | [Tags] | IMIX | 2C | NDRDISC | SKIP_PATCH
-| | ...
-| | [Template] | Discover NDR or PDR for L2 xconnect with VM
-| | wt=2 | rxq=1 | framesize=IMIX_v4_1 | min_rate=${10000} | search_type=NDR
+| | phy_cores=${2} | framesize=IMIX_v4_1 | search_type=NDR
| tc12-IMIX-2t2c-eth-l2xcbase-eth-2vhostvr256-1vm-pdrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2XC switching config with 2 phy cores,\
-| | ... | 1 receive queue per NIC port.
-| | ... | [Ver] Find PDR for IMIX_v4_1 framesize using binary search start at\
-| | ... | 10GE linerate, step 10kpps.
-| | ... | IMIX_v4_1 = (28x64B; 16x570B; 4x1518B)
-| | ...
| | [Tags] | IMIX | 2C | PDRDISC | SKIP_PATCH
-| | ...
-| | [Template] | Discover NDR or PDR for L2 xconnect with VM
-| | wt=2 | rxq=1 | framesize=IMIX_v4_1 | min_rate=${10000} | search_type=PDR
+| | phy_cores=${2} | framesize=IMIX_v4_1 | search_type=PDR
| tc13-64B-4t4c-eth-l2xcbase-eth-2vhostvr256-1vm-ndrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2XC switching config with 4 phy cores,\
-| | ... | 2 receive queues per NIC port.
-| | ... | [Ver] Find NDR for 64 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 10kpps.
-| | ...
| | [Tags] | 64B | 4C | NDRDISC
-| | ...
-| | [Template] | Discover NDR or PDR for L2 xconnect with VM
-| | wt=4 | rxq=2 | framesize=${64} | min_rate=${10000} | search_type=NDR
+| | phy_cores=${4} | framesize=${64} | search_type=NDR
| tc14-64B-4t4c-eth-l2xcbase-eth-2vhostvr256-1vm-pdrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2XC switching config with 4 phy cores,\
-| | ... | 2 receive queues per NIC port.
-| | ... | [Ver] Find PDR for 64 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 10kpps, LT=0.5%.
-| | ...
| | [Tags] | 64B | 4C | PDRDISC | SKIP_PATCH
-| | ...
-| | [Template] | Discover NDR or PDR for L2 xconnect with VM
-| | wt=4 | rxq=2 | framesize=${64} | min_rate=${10000} | search_type=PDR
+| | phy_cores=${4} | framesize=${64} | search_type=PDR
| tc15-1518B-4t4c-eth-l2xcbase-eth-2vhostvr256-1vm-ndrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2XC switching config with 4 phy cores,\
-| | ... | 2 receive queues per NIC port.
-| | ... | [Ver] Find NDR for 1518 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 10kpps.
-| | ...
| | [Tags] | 1518B | 4C | NDRDISC | SKIP_PATCH
-| | ...
-| | [Template] | Discover NDR or PDR for L2 xconnect with VM
-| | wt=4 | rxq=2 | framesize=${1518} | min_rate=${10000} | search_type=NDR
+| | phy_cores=${4} | framesize=${1518} | search_type=NDR
| tc16-1518B-4t4c-eth-l2xcbase-eth-2vhostvr256-1vm-pdrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2XC switching config with 4 phy cores,\
-| | ... | 2 receive queues per NIC port.
-| | ... | [Ver] Find PDR for 1518 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 10kpps, LT=0.5%.
-| | ...
| | [Tags] | 1518B | 4C | PDRDISC | SKIP_PATCH
-| | ...
-| | [Template] | Discover NDR or PDR for L2 xconnect with VM
-| | wt=4 | rxq=2 | framesize=${1518} | min_rate=${10000} | search_type=PDR
+| | phy_cores=${4} | framesize=${1518} | search_type=PDR
| tc17-IMIX-4t4c-eth-l2xcbase-eth-2vhostvr256-1vm-ndrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2XC switching config with 4 phy cores,\
-| | ... | 2 receive queues per NIC port.
-| | ... | [Ver] Find NDR for IMIX_v4_1 framesize using binary search start at\
-| | ... | 10GE linerate, step 10kpps.
-| | ... | IMIX_v4_1 = (28x64B; 16x570B; 4x1518B)
-| | ...
| | [Tags] | IMIX | 4C | NDRDISC | SKIP_PATCH
-| | ...
-| | [Template] | Discover NDR or PDR for L2 xconnect with VM
-| | wt=4 | rxq=2 | framesize=IMIX_v4_1 | min_rate=${10000} | search_type=NDR
+| | phy_cores=${4} | framesize=IMIX_v4_1 | search_type=NDR
| tc18-IMIX-4t4c-eth-l2xcbase-eth-2vhostvr256-1vm-pdrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2XC switching config with 4 phy cores,\
-| | ... | 2 receive queues per NIC port.
-| | ... | [Ver] Find PDR for IMIX_v4_1 framesize using binary search start at\
-| | ... | 10GE linerate, step 10kpps, LT=0.5%.
-| | ... | IMIX_v4_1 = (28x64B; 16x570B; 4x1518B)
-| | ...
| | [Tags] | IMIX | 4C | PDRDISC | SKIP_PATCH
-| | ...
-| | [Template] | Discover NDR or PDR for L2 xconnect with VM
-| | wt=4 | rxq=2 | framesize=IMIX_v4_1 | min_rate=${10000} | search_type=PDR
+| | phy_cores=${4} | framesize=IMIX_v4_1 | search_type=PDR
diff --git a/tests/vpp/perf/vm_vhost/10ge2p1x520-eth-l2xcbase-eth-4vhostvr1024-2vm-mrr.robot b/tests/vpp/perf/vm_vhost/10ge2p1x520-eth-l2xcbase-eth-4vhostvr1024-2vm-mrr.robot
index db3dfa674d..65f775d666 100644
--- a/tests/vpp/perf/vm_vhost/10ge2p1x520-eth-l2xcbase-eth-4vhostvr1024-2vm-mrr.robot
+++ b/tests/vpp/perf/vm_vhost/10ge2p1x520-eth-l2xcbase-eth-4vhostvr1024-2vm-mrr.robot
@@ -27,6 +27,8 @@
| ... | dut1_node=${dut1} | dut1_vm_refs=${dut1_vm_refs}
| ... | dut2_node=${dut2} | dut2_vm_refs=${dut2_vm_refs}
| ...
+| Test Template | Local template
+| ...
| Documentation | *Raw results L2XC test cases with vhost*
| ...
| ... | *[Top] Network Topologies:* TG-DUT1-DUT2-TG 3-node circular topology
@@ -60,16 +62,21 @@
| ${traffic_profile}= | trex-sl-3n-ethip4-ip4src254
*** Keywords ***
-| Check RR for eth-l2xcbase-eth-4vhostvr1024-2vm-ndrdisc
+| Local template
| | [Documentation]
-| | ... | [Cfg] DUT runs L2XC switching config with ${wt} thread, ${wt} phy\
-| | ... | core, ${rxq} receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for ${framesize} frames using single\
+| | ... | [Cfg] DUT runs L2XC switching config.
+| | ... | Each DUT uses ${phy_cores} physical core(s) for worker threads.
+| | ... | [Ver] Measure MaxReceivedRate for ${framesize}B frames using single\
| | ... | trial throughput test.
| | ...
-| | [Arguments] | ${framesize} | ${wt} | ${rxq}
+| | ... | *Arguments:*
+| | ... | - framesize - Framesize in Bytes in integer or string (IMIX_v4_1).
+| | ... | Type: integer, string
+| | ... | - phy_cores - Number of physical cores. Type: integer
+| | ... | - rxq - Number of RX queues, default value: ${None}. Type: integer
+| | ...
+| | [Arguments] | ${framesize} | ${phy_cores} | ${rxq}=${None}
| | ...
-| | # Test Variables required for test and test teardown
| | Set Test Variable | ${framesize}
| | ${get_framesize}= | Get Frame Size | ${framesize}
| | ${max_rate}= | Calculate pps | ${s_limit} | ${get_framesize}
@@ -81,7 +88,7 @@
| | ... | ${False} | ${True}
| | Set Test Variable | ${jumbo_frames}
| | ...
-| | Given Add '${wt}' worker threads and '${rxq}' rxqueues in 3-node single-link circular topology
+| | Given Add worker threads and rxqueues to all DUTs | ${phy_cores} | ${rxq}
| | And Add PCI devices to all DUTs
| | And Run Keyword If | ${get_framesize} < ${1522}
| | ... | Add no multi seg to all DUTs
@@ -93,148 +100,49 @@
*** Test Cases ***
| tc01-64B-1t1c-eth-l2xcbase-eth-4vhostvr1024-2vm-ndrdisc-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2XC switching config with 1 phy\
-| | ... | core, 1 receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 64B frames using single\
-| | ... | trial throughput test.
-| | ...
| | [Tags] | 64B | 1C
-| | ...
-| | [Template] | Check RR for eth-l2xcbase-eth-4vhostvr1024-2vm-ndrdisc
-| | framesize=${64} | wt=1 | rxq=1
+| | framesize=${64} | phy_cores=${1}
| tc02-1518B-1t1c-eth-l2xcbase-eth-4vhostvr1024-2vm-ndrdisc-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2XC switching config with 1 phy\
-| | ... | core, 1 receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 1518B frames using single\
-| | ... | trial throughput test.
-| | ...
| | [Tags] | 1518B | 1C
-| | ...
-| | [Template] | Check RR for eth-l2xcbase-eth-4vhostvr1024-2vm-ndrdisc
-| | framesize=${1518} | wt=1 | rxq=1
+| | framesize=${1518} | phy_cores=${1}
| tc03-9000B-1t1c-eth-l2xcbase-eth-4vhostvr1024-2vm-ndrdisc-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2XC switching config with 1 phy\
-| | ... | core, 1 receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 9000B frames using single\
-| | ... | trial throughput test.
-| | ...
| | [Tags] | 9000B | 1C
-| | ...
-| | [Template] | Check RR for eth-l2xcbase-eth-4vhostvr1024-2vm-ndrdisc
-| | framesize=${9000} | wt=1 | rxq=1
+| | framesize=${9000} | phy_cores=${1}
| tc04-IMIX-1t1c-eth-l2xcbase-eth-4vhostvr1024-2vm-ndrdisc-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2XC switching config with 1 phy\
-| | ... | core, 1 receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for IMIX_v4_1 frames using single\
-| | ... | trial throughput test.
-| | ... | IMIX_v4_1 = (28x64B; 16x570B; 4x1518B)
-| | ...
| | [Tags] | IMIX | 1C
-| | ...
-| | [Template] | Check RR for eth-l2xcbase-eth-4vhostvr1024-2vm-ndrdisc
-| | framesize=IMIX_v4_1 | wt=1 | rxq=1
+| | framesize=IMIX_v4_1 | phy_cores=${1}
| tc05-64B-2t2c-eth-l2xcbase-eth-4vhostvr1024-2vm-ndrdisc-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2XC switching config with 2 phy\
-| | ... | cores, 1 receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 64B frames using single\
-| | ... | trial throughput test.
-| | ...
| | [Tags] | 64B | 2C
-| | ...
-| | [Template] | Check RR for eth-l2xcbase-eth-4vhostvr1024-2vm-ndrdisc
-| | framesize=${64} | wt=2 | rxq=1
+| | framesize=${64} | phy_cores=${2}
| tc06-1518B-2t2c-eth-l2xcbase-eth-4vhostvr1024-2vm-ndrdisc-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2XC switching config with 2 phy\
-| | ... | cores, 1 receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 1518B frames using single\
-| | ... | trial throughput test.
-| | ...
| | [Tags] | 1518B | 2C
-| | ...
-| | [Template] | Check RR for eth-l2xcbase-eth-4vhostvr1024-2vm-ndrdisc
-| | framesize=${1518} | wt=2 | rxq=1
+| | framesize=${1518} | phy_cores=${2}
| tc07-9000B-2t2c-eth-l2xcbase-eth-4vhostvr1024-2vm-ndrdisc-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2XC switching config with 2 phy\
-| | ... | cores, 1 receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 9000B frames using single\
-| | ... | trial throughput test.
-| | ...
| | [Tags] | 9000B | 2C
-| | ...
-| | [Template] | Check RR for eth-l2xcbase-eth-4vhostvr1024-2vm-ndrdisc
-| | framesize=${9000} | wt=2 | rxq=1
+| | framesize=${9000} | phy_cores=${2}
| tc08-IMIX-2t2c-eth-l2xcbase-eth-4vhostvr1024-2vm-ndrdisc-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2XC switching config with 2 phy\
-| | ... | cores, 1 receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for IMIX_v4_1 frames using single\
-| | ... | trial throughput test.
-| | ... | IMIX_v4_1 = (28x64B; 16x570B; 4x1518B)
-| | ...
| | [Tags] | IMIX | 2C
-| | ...
-| | [Template] | Check RR for eth-l2xcbase-eth-4vhostvr1024-2vm-ndrdisc
-| | framesize=IMIX_v4_1 | wt=2 | rxq=1
+| | framesize=IMIX_v4_1 | phy_cores=${2}
| tc09-64B-4t4c-eth-l2xcbase-eth-4vhostvr1024-2vm-ndrdisc-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2XC switching config with 4 phy\
-| | ... | cores, 2 receive queues per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 64B frames using single\
-| | ... | trial throughput test.
-| | ...
| | [Tags] | 64B | 4C
-| | ...
-| | [Template] | Check RR for eth-l2xcbase-eth-4vhostvr1024-2vm-ndrdisc
-| | framesize=${64} | wt=4 | rxq=2
+| | framesize=${64} | phy_cores=${4}
| tc10-1518B-4t4c-eth-l2xcbase-eth-4vhostvr1024-2vm-ndrdisc-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2XC switching config with 4 phy\
-| | ... | cores, 2 receive queues per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 1518B frames using single\
-| | ... | trial throughput test.
-| | ...
| | [Tags] | 1518B | 4C
-| | ...
-| | [Template] | Check RR for eth-l2xcbase-eth-4vhostvr1024-2vm-ndrdisc
-| | framesize=${1518} | wt=4 | rxq=2
+| | framesize=${1518} | phy_cores=${4}
| tc11-9000B-4t4c-eth-l2xcbase-eth-4vhostvr1024-2vm-ndrdisc-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2XC switching config with 4 phy\
-| | ... | cores, 2 receive queues per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 9000B frames using single\
-| | ... | trial throughput test.
-| | ...
| | [Tags] | 9000B | 4C
-| | ...
-| | [Template] | Check RR for eth-l2xcbase-eth-4vhostvr1024-2vm-ndrdisc
-| | framesize=${9000} | wt=4 | rxq=2
+| | framesize=${9000} | phy_cores=${4}
| tc12-IMIX-4t4c-eth-l2xcbase-eth-4vhostvr1024-2vm-ndrdisc-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2XC switching config with 4 phy\
-| | ... | cores, 2 receive queues per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for IMIX_v4_1 frames using single\
-| | ... | trial throughput test.
-| | ... | IMIX_v4_1 = (28x64B; 16x570B; 4x1518B)
-| | ...
| | [Tags] | IMIX | 4C
-| | ...
-| | [Template] | Check RR for eth-l2xcbase-eth-4vhostvr1024-2vm-ndrdisc
-| | framesize=IMIX_v4_1 | wt=4 | rxq=2
+| | framesize=IMIX_v4_1 | phy_cores=${4}
diff --git a/tests/vpp/perf/vm_vhost/10ge2p1x520-eth-l2xcbase-eth-4vhostvr1024-2vm-ndrpdrdisc.robot b/tests/vpp/perf/vm_vhost/10ge2p1x520-eth-l2xcbase-eth-4vhostvr1024-2vm-ndrpdrdisc.robot
index ed25aa56f5..e139db35e1 100644
--- a/tests/vpp/perf/vm_vhost/10ge2p1x520-eth-l2xcbase-eth-4vhostvr1024-2vm-ndrpdrdisc.robot
+++ b/tests/vpp/perf/vm_vhost/10ge2p1x520-eth-l2xcbase-eth-4vhostvr1024-2vm-ndrpdrdisc.robot
@@ -28,6 +28,8 @@
| ... | dut1_node=${dut1} | dut1_vm_refs=${dut1_vm_refs}
| ... | dut2_node=${dut2} | dut2_vm_refs=${dut2_vm_refs}
| ...
+| Test Template | Local template
+| ...
| Documentation | *RFC2544: Pkt throughput L2XC test cases with vhost*
| ...
| ... | *[Top] Network Topologies:* TG-DUT1-DUT2-TG 3-node circular topology
@@ -66,16 +68,10 @@
| ${traffic_profile} | trex-sl-3n-ethip4-ip4src254
*** Keywords ***
-| Discover NDR or PDR for eth-l2xcbase-eth-4vhostvr1024-2vm
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2XC switching config with ${wt} thread, ${wt} phy\
-| | ... | core, ${rxq} receive queue per NIC port.
-| | ... | [Ver] Find NDR for ${framesize} frames using binary search start at
-| | ... | 10GE linerate, step 10kpps.
-| | ...
-| | [Arguments] | ${wt} | ${rxq} | ${framesize} | ${min_rate} | ${search_type}
+| Local template
+| | [Arguments] | ${phy_cores} | ${framesize} | ${search_type} | ${rxq}=${None}
+| | ... | ${min_rate}=${10000}
| | ...
-| | # Test Variables required for test and test teardown
| | Set Test Variable | ${framesize}
| | Set Test Variable | ${min_rate}
| | ${get_framesize}= | Get Frame Size | ${framesize}
@@ -91,7 +87,7 @@
| | ... | ${False} | ${True}
| | Set Test Variable | ${jumbo_frames}
| | ...
-| | Given Add '${wt}' worker threads and '${rxq}' rxqueues in 3-node single-link circular topology
+| | Given Add worker threads and rxqueues to all DUTs | ${phy_cores} | ${rxq}
| | And Add PCI devices to all DUTs
| | And Run Keyword If | ${get_framesize} < ${1522}
| | ... | Add no multi seg to all DUTs
@@ -110,223 +106,73 @@
*** Test Cases ***
| tc01-64B-1t1c-eth-l2xcbase-eth-4vhostvr1024-2vm-ndrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2XC switching config with 1 phy core, \
-| | ... | 1 receive queue per NIC port.
-| | ... | [Ver] Find NDR for 64 Byte frames \
-| | ... | using binary search start at 10GE linerate, step 10kpps.
-| | ...
| | [Tags] | 64B | 1C | NDRDISC
-| | ...
-| | [Template] | Discover NDR or PDR for eth-l2xcbase-eth-4vhostvr1024-2vm
-| | wt=1 | rxq=1 | framesize=${64} | min_rate=${10000} | search_type=NDR
+| | phy_cores=${1} | framesize=${64} | search_type=NDR
| tc02-64B-1t1c-eth-l2xcbase-eth-4vhostvr1024-2vm-pdrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2XC switching config with 1 phy core, \
-| | ... | 1 receive queue per NIC port.
-| | ... | [Ver] Find PDR for 64 Byte frames \
-| | ... | using binary search start at 10GE linerate, step 10kpps, LT=0.5%.
-| | ...
| | [Tags] | 64B | 1C | PDRDISC | SKIP_PATCH
-| | ...
-| | [Template] | Discover NDR or PDR for eth-l2xcbase-eth-4vhostvr1024-2vm
-| | wt=1 | rxq=1 | framesize=${64} | min_rate=${10000} | search_type=PDR
+| | phy_cores=${1} | framesize=${64} | search_type=PDR
| tc03-1518B-1t1c-eth-l2xcbase-eth-4vhostvr1024-2vm-ndrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2XC switching config with 1 phy core, \
-| | ... | 1 receive queue per NIC port.
-| | ... | [Ver] Find NDR for 1518 Byte frames \
-| | ... | using binary search start at 10GE linerate, step 10kpps.
-| | ...
| | [Tags] | 1518B | 1C | NDRDISC
-| | ...
-| | [Template] | Discover NDR or PDR for eth-l2xcbase-eth-4vhostvr1024-2vm
-| | wt=1 | rxq=1 | framesize=${1518} | min_rate=${10000} | search_type=NDR
+| | phy_cores=${1} | framesize=${1518} | search_type=NDR
| tc04-1518B-1t1c-eth-l2xcbase-eth-4vhostvr1024-2vm-pdrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2XC switching config with 1 phy core, \
-| | ... | 1 receive queue per NIC port.
-| | ... | [Ver] Find PDR for 1518 Byte frames \
-| | ... | using binary search start at 10GE linerate, step 10kpps, LT=0.5%.
-| | ...
| | [Tags] | 1518B | 1C | PDRDISC | SKIP_PATCH
-| | ...
-| | [Template] | Discover NDR or PDR for eth-l2xcbase-eth-4vhostvr1024-2vm
-| | wt=1 | rxq=1 | framesize=${1518} | min_rate=${10000} | search_type=PDR
+| | phy_cores=${1} | framesize=${1518} | search_type=PDR
| tc05-IMIX-1t1c-eth-l2xcbase-eth-4vhostvr1024-2vm-ndrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2XC switching config with 1 phy core, \
-| | ... | 1 receive queue per NIC port.
-| | ... | [Ver] Find NDR for IMIX_v4_1 frame \
-| | ... | size using binary search start at 10GE linerate, step 10kpps.
-| | ... | IMIX_v4_1 = (28x64B;16x570B;4x1518B)
-| | ...
| | [Tags] | IMIX | 1C | NDRDISC
-| | ...
-| | [Template] | Discover NDR or PDR for eth-l2xcbase-eth-4vhostvr1024-2vm
-| | wt=1 | rxq=1 | framesize=IMIX_v4_1 | min_rate=${10000} | search_type=NDR
+| | phy_cores=${1} | framesize=IMIX_v4_1 | search_type=NDR
| tc06-IMIX-1t1c-eth-l2xcbase-eth-4vhostvr1024-2vm-pdrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2XC switching config with 1 phy core, \
-| | ... | 1 receive queue per NIC port.
-| | ... | [Ver] Find PDR for IMIX_v4_1 frame \
-| | ... | size using binary search start at 10GE linerate, step 10kpps, LT=0.5%.
-| | ... | IMIX_v4_1 = (28x64B;16x570B;4x1518B)
-| | ...
| | [Tags] | IMIX | 1C | PDRDISC | SKIP_PATCH
-| | ...
-| | [Template] | Discover NDR or PDR for eth-l2xcbase-eth-4vhostvr1024-2vm
-| | wt=1 | rxq=1 | framesize=IMIX_v4_1 | min_rate=${10000} | search_type=PDR
+| | phy_cores=${1} | framesize=IMIX_v4_1 | search_type=PDR
| tc07-64B-2t2c-eth-l2xcbase-eth-4vhostvr1024-2vm-ndrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2XC switching config with 2 phy cores, \
-| | ... | 1 receive queue per NIC port.
-| | ... | [Ver] Find NDR for 64 Byte frames \
-| | ... | using binary search start at 10GE linerate, step 10kpps.
-| | ...
| | [Tags] | 64B | 2C | NDRDISC
-| | ...
-| | [Template] | Discover NDR or PDR for eth-l2xcbase-eth-4vhostvr1024-2vm
-| | wt=2 | rxq=1 | framesize=${64} | min_rate=${10000} | search_type=NDR
+| | phy_cores=${2} | framesize=${64} | search_type=NDR
| tc08-64B-2t2c-eth-l2xcbase-eth-4vhostvr1024-2vm-pdrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2XC switching config with 2 phy cores, \
-| | ... | 1 receive queue per NIC port.
-| | ... | [Ver] Find PDR for 64 Byte frames \
-| | ... | using binary search start at 10GE linerate, step 10kpps, LT=0.5%.
-| | ...
| | [Tags] | 64B | 2C | PDRDISC | SKIP_PATCH
-| | ...
-| | [Template] | Discover NDR or PDR for eth-l2xcbase-eth-4vhostvr1024-2vm
-| | wt=2 | rxq=1 | framesize=${64} | min_rate=${10000} | search_type=PDR
+| | phy_cores=${2} | framesize=${64} | search_type=PDR
| tc09-1518B-2t2c-eth-l2xcbase-eth-4vhostvr1024-2vm-ndrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2XC switching config with 2 phy cores, \
-| | ... | 1 receive queue per NIC port.
-| | ... | [Ver] Find NDR for 1518 Byte frames \
-| | ... | using binary search start at 10GE linerate, step 10kpps.
-| | ...
| | [Tags] | 1518B | 2C | NDRDISC | SKIP_PATCH
-| | ...
-| | [Template] | Discover NDR or PDR for eth-l2xcbase-eth-4vhostvr1024-2vm
-| | wt=2 | rxq=1 | framesize=${1518} | min_rate=${10000} | search_type=NDR
+| | phy_cores=${2} | framesize=${1518} | search_type=NDR
| tc10-1518B-2t2c-eth-l2xcbase-eth-4vhostvr1024-2vm-pdrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2XC switching config with 2 phy cores, \
-| | ... | 1 receive queue per NIC port.
-| | ... | [Ver] Find PDR for 1518 Byte frames \
-| | ... | using binary search start at 10GE linerate, step 10kpps, LT=0.5%.
-| | ...
| | [Tags] | 1518B | 2C | PDRDISC | SKIP_PATCH
-| | ...
-| | [Template] | Discover NDR or PDR for eth-l2xcbase-eth-4vhostvr1024-2vm
-| | wt=2 | rxq=1 | framesize=${1518} | min_rate=${10000} | search_type=PDR
+| | phy_cores=${2} | framesize=${1518} | search_type=PDR
| tc11-IMIX-2t2c-eth-l2xcbase-eth-4vhostvr1024-2vm-ndrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2XC switching config with 2 phy cores, \
-| | ... | 1 receive queue per NIC port.
-| | ... | [Ver] Find NDR for IMIX_v4_1 frame \
-| | ... | size using binary search start at 10GE linerate, step 10kpps.
-| | ... | IMIX_v4_1 = (28x64B;16x570B;4x1518B)
-| | ...
| | [Tags] | IMIX | 2C | NDRDISC | SKIP_PATCH
-| | ...
-| | [Template] | Discover NDR or PDR for eth-l2xcbase-eth-4vhostvr1024-2vm
-| | wt=2 | rxq=1 | framesize=IMIX_v4_1 | min_rate=${10000} | search_type=NDR
+| | phy_cores=${2} | framesize=IMIX_v4_1 | search_type=NDR
| tc12-IMIX-2t2c-eth-l2xcbase-eth-4vhostvr1024-2vm-pdrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2XC switching config with 2 phy cores, \
-| | ... | 1 receive queue per NIC port.
-| | ... | [Ver] Find PDR for IMIX_v4_1 frame \
-| | ... | size using binary search start at 10GE linerate, step 10kpps, LT=0.5%.
-| | ... | IMIX_v4_1 = (28x64B;16x570B;4x1518B)
-| | ...
| | [Tags] | IMIX | 2C | PDRDISC | SKIP_PATCH
-| | ...
-| | [Template] | Discover NDR or PDR for eth-l2xcbase-eth-4vhostvr1024-2vm
-| | wt=2 | rxq=1 | framesize=IMIX_v4_1 | min_rate=${10000} | search_type=PDR
+| | phy_cores=${2} | framesize=IMIX_v4_1 | search_type=PDR
| tc13-64B-4t4c-eth-l2xcbase-eth-4vhostvr1024-2vm-ndrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2XC switching config with 4 phy cores, \
-| | ... | 2 receive queues per NIC port.
-| | ... | [Ver] Find NDR for 64 Byte frames \
-| | ... | using binary search start at 10GE linerate, step 10kpps.
-| | ...
| | [Tags] | 64B | 4C | NDRDISC
-| | ...
-| | [Template] | Discover NDR or PDR for eth-l2xcbase-eth-4vhostvr1024-2vm
-| | wt=4 | rxq=2 | framesize=${64} | min_rate=${10000} | search_type=NDR
+| | phy_cores=${4} | framesize=${64} | search_type=NDR
| tc14-64B-4t4c-eth-l2xcbase-eth-4vhostvr1024-2vm-pdrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2XC switching config with 4 phy cores, \
-| | ... | 2 receive queues per NIC port.
-| | ... | [Ver] Find PDR for 64 Byte frames \
-| | ... | using binary search start at 10GE linerate, step 10kpps, LT=0.5%.
-| | ...
| | [Tags] | 64B | 4C | PDRDISC | SKIP_PATCH
-| | ...
-| | [Template] | Discover NDR or PDR for eth-l2xcbase-eth-4vhostvr1024-2vm
-| | wt=4 | rxq=2 | framesize=${64} | min_rate=${10000} | search_type=PDR
+| | phy_cores=${4} | framesize=${64} | search_type=PDR
| tc15-1518B-4t4c-eth-l2xcbase-eth-4vhostvr1024-2vm-ndrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2XC switching config with 4 phy cores, \
-| | ... | 2 receive queues per NIC port.
-| | ... | [Ver] Find NDR for 1518 Byte frames \
-| | ... | using binary search start at 10GE linerate, step 10kpps.
-| | ...
| | [Tags] | 1518B | 4C | NDRDISC | SKIP_PATCH
-| | ...
-| | [Template] | Discover NDR or PDR for eth-l2xcbase-eth-4vhostvr1024-2vm
-| | wt=4 | rxq=2 | framesize=${1518} | min_rate=${10000} | search_type=NDR
+| | phy_cores=${4} | framesize=${1518} | search_type=NDR
| tc16-1518B-4t4c-eth-l2xcbase-eth-4vhostvr1024-2vm-pdrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2XC switching config with 4 phy cores, \
-| | ... | 2 receive queues per NIC port.
-| | ... | [Ver] Find PDR for 1518 Byte frames \
-| | ... | using binary search start at 10GE linerate, step 10kpps, LT=0.5%.
-| | ...
| | [Tags] | 1518B | 4C | PDRDISC | SKIP_PATCH
-| | ...
-| | [Template] | Discover NDR or PDR for eth-l2xcbase-eth-4vhostvr1024-2vm
-| | wt=4 | rxq=2 | framesize=${1518} | min_rate=${10000} | search_type=PDR
+| | phy_cores=${4} | framesize=${1518} | search_type=PDR
| tc17-IMIX-4t4c-eth-l2xcbase-eth-4vhostvr1024-2vm-ndrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2XC switching config with 4 phy cores, \
-| | ... | 2 receive queues per NIC port.
-| | ... | [Ver] Find NDR for IMIX_v4_1 frame \
-| | ... | size using binary search start at 10GE linerate, step 10kpps.
-| | ... | IMIX_v4_1 = (28x64B;16x570B;4x1518B)
-| | ...
| | [Tags] | IMIX | 4C | NDRDISC | SKIP_PATCH
-| | ...
-| | [Template] | Discover NDR or PDR for eth-l2xcbase-eth-4vhostvr1024-2vm
-| | wt=4 | rxq=2 | framesize=IMIX_v4_1 | min_rate=${10000} | search_type=NDR
+| | phy_cores=${4} | framesize=IMIX_v4_1 | search_type=NDR
| tc18-IMIX-4t4c-eth-l2xcbase-eth-4vhostvr1024-2vm-pdrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2XC switching config with 4 phy cores, \
-| | ... | 2 receive queues per NIC port.
-| | ... | [Ver] Find PDR for IMIX_v4_1 frame \
-| | ... | size using binary search start at 10GE linerate, step 10kpps, LT=0.5%.
-| | ... | IMIX_v4_1 = (28x64B;16x570B;4x1518B)
-| | ...
| | [Tags] | IMIX | 4C | PDRDISC | SKIP_PATCH
-| | ...
-| | [Template] | Discover NDR or PDR for eth-l2xcbase-eth-4vhostvr1024-2vm
-| | wt=4 | rxq=2 | framesize=IMIX_v4_1 | min_rate=${10000} | search_type=PDR
+| | phy_cores=${4} | framesize=IMIX_v4_1 | search_type=PDR
diff --git a/tests/vpp/perf/vm_vhost/10ge2p1x520-ethip4-ip4base-eth-2vhostvr1024-1vm-cfsrr1-ndrpdrdisc.robot b/tests/vpp/perf/vm_vhost/10ge2p1x520-ethip4-ip4base-eth-2vhostvr1024-1vm-cfsrr1-ndrpdrdisc.robot
index f21fafc456..589dd17490 100644
--- a/tests/vpp/perf/vm_vhost/10ge2p1x520-ethip4-ip4base-eth-2vhostvr1024-1vm-cfsrr1-ndrpdrdisc.robot
+++ b/tests/vpp/perf/vm_vhost/10ge2p1x520-ethip4-ip4base-eth-2vhostvr1024-1vm-cfsrr1-ndrpdrdisc.robot
@@ -29,6 +29,8 @@
| ... | dut1_node=${dut1} | dut1_vm_refs=${dut1_vm_refs}
| ... | dut2_node=${dut2} | dut2_vm_refs=${dut2_vm_refs}
| ...
+| Test Template | Local template
+| ...
| Documentation | *RFC2544: Packet throughput L2BD test cases with vhost*
| ...
| ... | *[Top] Network Topologies:* TG-DUT1-DUT2-TG 3-node circular topology
@@ -72,8 +74,9 @@
| ${traffic_profile} | trex-sl-3n-ethip4-ip4src253
*** Keywords ***
-| Discover NDR or PDR for IPv4 forwarding with VM
-| | [Arguments] | ${wt} | ${rxq} | ${framesize} | ${min_rate} | ${search_type}
+| Local template
+| | [Arguments] | ${phy_cores} | ${framesize} | ${search_type} | ${rxq}=${None}
+| | ... | ${min_rate}=${10000}
| | ...
| | Set Test Variable | ${use_tuned_cfs} | ${True}
| | Set Test Variable | ${framesize}
@@ -89,7 +92,7 @@
| | ${dut2_vm_refs}= | Create Dictionary
| | Set Test Variable | ${dut1_vm_refs}
| | Set Test Variable | ${dut2_vm_refs}
-| | Given Add '${wt}' worker threads and '${rxq}' rxqueues in 3-node single-link circular topology
+| | Given Add worker threads and rxqueues to all DUTs | ${phy_cores} | ${rxq}
| | And Add PCI devices to all DUTs
| | And Run Keyword If | ${get_framesize} < ${1522} | Add no multi seg to all DUTs
| | And Apply startup configuration on all VPP DUTs
@@ -116,223 +119,73 @@
*** Test Cases ***
| tc01-64B-1t1c-ethip4-ip4base-eth-2vhostvr1024-1vm-cfsrr1-ndrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with 1 phy core,\
-| | ... | 1 receive queue per NIC port.
-| | ... | [Ver] Find NDR for 64 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 10kpps.
-| | ...
| | [Tags] | 64B | 1C | NDRDISC
-| | ...
-| | [Template] | Discover NDR or PDR for IPv4 forwarding with VM
-| | wt=1 | rxq=1 | framesize=${64} | min_rate=${10000} | search_type=NDR
+| | phy_cores=${1} | framesize=${64} | search_type=NDR
| tc02-64B-1t1c-ethip4-ip4base-eth-2vhostvr1024-1vm-cfsrr1-pdrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with 1 phy core,\
-| | ... | 1 receive queue per NIC port.
-| | ... | [Ver] Find PDR for 64 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 10kpps, LT=0.5%.
-| | ...
| | [Tags] | 64B | 1C | PDRDISC | SKIP_PATCH
-| | ...
-| | [Template] | Discover NDR or PDR for IPv4 forwarding with VM
-| | wt=1 | rxq=1 | framesize=${64} | min_rate=${10000} | search_type=PDR
+| | phy_cores=${1} | framesize=${64} | search_type=PDR
| tc03-1518B-1t1c-etc-l2bdbasemaclrn-eth-2vhostvr1024-1vm-cfsrr1-ndrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with 1 phy core,\
-| | ... | 1 receive queue per NIC port.
-| | ... | [Ver] Find NDR for 1518 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 10kpps.
-| | ...
| | [Tags] | 1518B | 1C | NDRDISC
-| | ...
-| | [Template] | Discover NDR or PDR for IPv4 forwarding with VM
-| | wt=1 | rxq=1 | framesize=${1518} | min_rate=${10000} | search_type=NDR
+| | phy_cores=${1} | framesize=${1518} | search_type=NDR
| tc04-1518B-1t1c-ethip4-ip4base-eth-2vhostvr1024-1vm-cfsrr1-pdrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with 1 phy core,\
-| | ... | 1 receive queue per NIC port.
-| | ... | [Ver] Find PDR for 1518 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 10kpps, LT=0.5%.
-| | ...
| | [Tags] | 1518B | 1C | PDRDISC | SKIP_PATCH
-| | ...
-| | [Template] | Discover NDR or PDR for IPv4 forwarding with VM
-| | wt=1 | rxq=1 | framesize=${1518} | min_rate=${10000} | search_type=PDR
+| | phy_cores=${1} | framesize=${1518} | search_type=PDR
| tc05-IMIX-1t1c-ethip4-ip4base-eth-2vhostvr1024-1vm-cfsrr1-ndrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with 1 phy core,\
-| | ... | 1 receive queue per NIC port.
-| | ... | [Ver] Find NDR for IMIX_v4_1 framesize using binary search start at\
-| | ... | 10GE linerate, step 10kpps.
-| | ... | IMIX_v4_1 = (28x64B; 16x570B; 4x1518B)
-| | ...
| | [Tags] | IMIX | 1C | NDRDISC
-| | ...
-| | [Template] | Discover NDR or PDR for IPv4 forwarding with VM
-| | wt=1 | rxq=1 | framesize=IMIX_v4_1 | min_rate=${10000} | search_type=NDR
+| | phy_cores=${1} | framesize=IMIX_v4_1 | search_type=NDR
| tc06-IMIX-1t1c-ethip4-ip4base-eth-2vhostvr1024-1vm-cfsrr1-pdrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with 1 phy core,\
-| | ... | 1 receive queue per NIC port.
-| | ... | [Ver] Find PDR for IMIX_v4_1 framesize using binary search start at\
-| | ... | 10GE linerate, step 10kpps, LT=0.5%.
-| | ... | IMIX_v4_1 = (28x64B; 16x570B; 4x1518B)
-| | ...
| | [Tags] | IMIX | 1C | PDRDISC | SKIP_PATCH
-| | ...
-| | [Template] | Discover NDR or PDR for IPv4 forwarding with VM
-| | wt=1 | rxq=1 | framesize=IMIX_v4_1 | min_rate=${10000} | search_type=PDR
+| | phy_cores=${1} | framesize=IMIX_v4_1 | search_type=PDR
| tc07-64B-2t2c-ethip4-ip4base-eth-2vhostvr1024-1vm-cfsrr1-ndrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with 2 phy cores,\
-| | ... | 1 receive queue per NIC port.
-| | ... | [Ver] Find NDR for 64 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 10kpps.
-| | ...
| | [Tags] | 64B | 2C | NDRDISC
-| | ...
-| | [Template] | Discover NDR or PDR for IPv4 forwarding with VM
-| | wt=2 | rxq=1 | framesize=${64} | min_rate=${10000} | search_type=NDR
+| | phy_cores=${2} | framesize=${64} | search_type=NDR
| tc08-64B-2t2c-ethip4-ip4base-eth-2vhostvr1024-1vm-cfsrr1-pdrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with 2 phy cores,\
-| | ... | 1 receive queue per NIC port.
-| | ... | [Ver] Find PDR for 64 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 10kpps, LT=0.5%.
-| | ...
| | [Tags] | 64B | 2C | PDRDISC | SKIP_PATCH
-| | ...
-| | [Template] | Discover NDR or PDR for IPv4 forwarding with VM
-| | wt=2 | rxq=1 | framesize=${64} | min_rate=${10000} | search_type=PDR
+| | phy_cores=${2} | framesize=${64} | search_type=PDR
| tc09-1518B-2t2c-ethip4-ip4base-eth-2vhostvr1024-1vm-cfsrr1-ndrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with 2 phy cores,\
-| | ... | 1 receive queue per NIC port.
-| | ... | [Ver] Find NDR for 1518 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 10kpps.
-| | ...
| | [Tags] | 1518B | 2C | NDRDISC | SKIP_PATCH
-| | ...
-| | [Template] | Discover NDR or PDR for IPv4 forwarding with VM
-| | wt=2 | rxq=1 | framesize=${1518} | min_rate=${10000} | search_type=NDR
+| | phy_cores=${2} | framesize=${1518} | search_type=NDR
| tc10-1518B-2t2c-ethip4-ip4base-eth-2vhostvr1024-1vm-cfsrr1-pdrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with 2 phy cores,\
-| | ... | 1 receive queue per NIC port.
-| | ... | [Ver] Find PDR for 1518 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 10kpps, LT=0.5%.
-| | ...
| | [Tags] | 1518B | 2C | PDRDISC | SKIP_PATCH
-| | ...
-| | [Template] | Discover NDR or PDR for IPv4 forwarding with VM
-| | wt=2 | rxq=1 | framesize=${1518} | min_rate=${10000} | search_type=PDR
+| | phy_cores=${2} | framesize=${1518} | search_type=PDR
| tc11-IMIX-2t2c-ethip4-ip4base-eth-2vhostvr1024-1vm-cfsrr1-ndrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with 2 phy cores,\
-| | ... | 1 receive queue per NIC port.
-| | ... | [Ver] Find NDR for IMIX_v4_1 framesize using binary search start at\
-| | ... | 10GE linerate, step 10kpps.
-| | ... | IMIX_v4_1 = (28x64B; 16x570B; 4x1518B)
-| | ...
| | [Tags] | IMIX | 2C | NDRDISC | SKIP_PATCH
-| | ...
-| | [Template] | Discover NDR or PDR for IPv4 forwarding with VM
-| | wt=2 | rxq=1 | framesize=IMIX_v4_1 | min_rate=${10000} | search_type=NDR
+| | phy_cores=${2} | framesize=IMIX_v4_1 | search_type=NDR
| tc12-IMIX-2t2c-ethip4-ip4base-eth-2vhostvr1024-1vm-cfsrr1-pdrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with 2 phy cores,\
-| | ... | 1 receive queue per NIC port.
-| | ... | [Ver] Find PDR for IMIX_v4_1 framesize using binary search start at\
-| | ... | 10GE linerate, step 10kpps.
-| | ... | IMIX_v4_1 = (28x64B; 16x570B; 4x1518B)
-| | ...
| | [Tags] | IMIX | 2C | PDRDISC | SKIP_PATCH
-| | ...
-| | [Template] | Discover NDR or PDR for IPv4 forwarding with VM
-| | wt=2 | rxq=1 | framesize=IMIX_v4_1 | min_rate=${10000} | search_type=PDR
+| | phy_cores=${2} | framesize=IMIX_v4_1 | search_type=PDR
| tc13-64B-4t4c-ethip4-ip4base-eth-2vhostvr1024-1vm-cfsrr1-ndrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with 4 phy cores,\
-| | ... | 2 receive queues per NIC port.
-| | ... | [Ver] Find NDR for 64 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 10kpps.
-| | ...
| | [Tags] | 64B | 4C | NDRDISC
-| | ...
-| | [Template] | Discover NDR or PDR for IPv4 forwarding with VM
-| | wt=4 | rxq=2 | framesize=${64} | min_rate=${10000} | search_type=NDR
+| | phy_cores=${4} | framesize=${64} | search_type=NDR
| tc14-64B-4t4c-ethip4-ip4base-eth-2vhostvr1024-1vm-cfsrr1-pdrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with 4 phy cores,\
-| | ... | 2 receive queues per NIC port.
-| | ... | [Ver] Find PDR for 64 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 10kpps, LT=0.5%.
-| | ...
| | [Tags] | 64B | 4C | PDRDISC | SKIP_PATCH
-| | ...
-| | [Template] | Discover NDR or PDR for IPv4 forwarding with VM
-| | wt=4 | rxq=2 | framesize=${64} | min_rate=${10000} | search_type=PDR
+| | phy_cores=${4} | framesize=${64} | search_type=PDR
| tc15-1518B-4t4c-ethip4-ip4base-eth-2vhostvr1024-1vm-cfsrr1-ndrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with 4 phy cores,\
-| | ... | 2 receive queues per NIC port.
-| | ... | [Ver] Find NDR for 1518 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 10kpps.
-| | ...
| | [Tags] | 1518B | 4C | NDRDISC | SKIP_PATCH
-| | ...
-| | [Template] | Discover NDR or PDR for IPv4 forwarding with VM
-| | wt=4 | rxq=2 | framesize=${1518} | min_rate=${10000} | search_type=NDR
+| | phy_cores=${4} | framesize=${1518} | search_type=NDR
| tc16-1518B-4t4c-ethip4-ip4base-eth-2vhostvr1024-1vm-cfsrr1-pdrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with 4 phy cores,\
-| | ... | 2 receive queues per NIC port.
-| | ... | [Ver] Find PDR for 1518 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 10kpps, LT=0.5%.
-| | ...
| | [Tags] | 1518B | 4C | PDRDISC | SKIP_PATCH
-| | ...
-| | [Template] | Discover NDR or PDR for IPv4 forwarding with VM
-| | wt=4 | rxq=2 | framesize=${1518} | min_rate=${10000} | search_type=PDR
+| | phy_cores=${4} | framesize=${1518} | search_type=PDR
| tc17-IMIX-4t4c-ethip4-ip4base-eth-2vhostvr1024-1vm-cfsrr1-ndrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with 4 phy cores,\
-| | ... | 2 receive queues per NIC port.
-| | ... | [Ver] Find NDR for IMIX_v4_1 framesize using binary search start at\
-| | ... | 10GE linerate, step 10kpps.
-| | ... | IMIX_v4_1 = (28x64B; 16x570B; 4x1518B)
-| | ...
| | [Tags] | IMIX | 4C | NDRDISC | SKIP_PATCH
-| | ...
-| | [Template] | Discover NDR or PDR for IPv4 forwarding with VM
-| | wt=4 | rxq=2 | framesize=IMIX_v4_1 | min_rate=${10000} | search_type=NDR
+| | phy_cores=${4} | framesize=IMIX_v4_1 | search_type=NDR
| tc18-IMIX-4t4c-ethip4-ip4base-eth-2vhostvr1024-1vm-cfsrr1-pdrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with 4 phy cores,\
-| | ... | 2 receive queues per NIC port.
-| | ... | [Ver] Find PDR for IMIX_v4_1 framesize using binary search start at\
-| | ... | 10GE linerate, step 10kpps, LT=0.5%.
-| | ... | IMIX_v4_1 = (28x64B; 16x570B; 4x1518B)
-| | ...
| | [Tags] | IMIX | 4C | PDRDISC | SKIP_PATCH
-| | ...
-| | [Template] | Discover NDR or PDR for IPv4 forwarding with VM
-| | wt=4 | rxq=2 | framesize=IMIX_v4_1 | min_rate=${10000} | search_type=PDR
+| | phy_cores=${4} | framesize=IMIX_v4_1 | search_type=PDR
diff --git a/tests/vpp/perf/vm_vhost/10ge2p1x520-ethip4-ip4base-eth-2vhostvr1024-1vm-mrr.robot b/tests/vpp/perf/vm_vhost/10ge2p1x520-ethip4-ip4base-eth-2vhostvr1024-1vm-mrr.robot
index 771fa916e1..b28c29331e 100644
--- a/tests/vpp/perf/vm_vhost/10ge2p1x520-ethip4-ip4base-eth-2vhostvr1024-1vm-mrr.robot
+++ b/tests/vpp/perf/vm_vhost/10ge2p1x520-ethip4-ip4base-eth-2vhostvr1024-1vm-mrr.robot
@@ -27,6 +27,8 @@
| ... | dut1_node=${dut1} | dut1_vm_refs=${dut1_vm_refs}
| ... | dut2_node=${dut2} | dut2_vm_refs=${dut2_vm_refs}
| ...
+| Test Template | Local template
+| ...
| Documentation | *Raw results IPv4 test cases with vhost*
| ...
| ... | *[Top] Network Topologies:* TG-DUT1-DUT2-TG 3-node circular topology
@@ -62,16 +64,21 @@
| ${traffic_profile} | trex-sl-3n-ethip4-ip4src253
*** Keywords ***
-| Check RR for ethip4-ip4base-eth-2vhostvr1024-1vm
+| Local template
| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 routing config with ${wt} thread, ${wt} phy\
-| | ... | core, ${rxq} receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for ${framesize} frames using single\
+| | ... | [Cfg] DUT runs IPv4 routing config.
+| | ... | Each DUT uses ${phy_cores} physical core(s) for worker threads.
+| | ... | [Ver] Measure MaxReceivedRate for ${framesize}B frames using single\
| | ... | trial throughput test.
| | ...
-| | [Arguments] | ${framesize} | ${wt} | ${rxq}
+| | ... | *Arguments:*
+| | ... | - framesize - Framesize in Bytes in integer or string (IMIX_v4_1).
+| | ... | Type: integer, string
+| | ... | - phy_cores - Number of physical cores. Type: integer
+| | ... | - rxq - Number of RX queues, default value: ${None}. Type: integer
+| | ...
+| | [Arguments] | ${framesize} | ${phy_cores} | ${rxq}=${None}
| | ...
-| | # Test Variables required for test and test teardown
| | Set Test Variable | ${framesize}
| | ${get_framesize}= | Get Frame Size | ${framesize}
| | ${max_rate}= | Calculate pps | ${s_limit} | ${framesize}
@@ -82,7 +89,7 @@
| | ${jumbo_frames}= | Set Variable If | ${get_framesize} < ${1522}
| | ... | ${False} | ${True}
| | ...
-| | Given Add '${wt}' worker threads and '${rxq}' rxqueues in 3-node single-link circular topology
+| | Given Add worker threads and rxqueues to all DUTs | ${phy_cores} | ${rxq}
| | And Add PCI devices to all DUTs
| | And Run Keyword If | ${get_framesize} < ${1522}
| | ... | Add no multi seg to all DUTs
@@ -102,148 +109,49 @@
*** Test Cases ***
| tc01-64B-1t1c-ethip4-ip4base-eth-2vhostvr1024-1vm-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 routing config with 1 phy\
-| | ... | core, 1 receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 64B frames using single\
-| | ... | trial throughput test.
-| | ...
| | [Tags] | 64B | 1C
-| | ...
-| | [Template] | Check RR for ethip4-ip4base-eth-2vhostvr1024-1vm
-| | framesize=${64} | wt=1 | rxq=1
+| | framesize=${64} | phy_cores=${1}
| tc02-1518B-1t1c-ethip4-ip4base-eth-2vhostvr1024-1vm-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 routing config with 1 phy\
-| | ... | core, 1 receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 1518B frames using single\
-| | ... | trial throughput test.
-| | ...
| | [Tags] | 1518B | 1C
-| | ...
-| | [Template] | Check RR for ethip4-ip4base-eth-2vhostvr1024-1vm
-| | framesize=${1518} | wt=1 | rxq=1
+| | framesize=${1518} | phy_cores=${1}
| tc03-9000B-1t1c-ethip4-ip4base-eth-2vhostvr1024-1vm-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 routing config with 1 phy\
-| | ... | core, 1 receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 9000B frames using single\
-| | ... | trial throughput test.
-| | ...
| | [Tags] | 9000B | 1C
-| | ...
-| | [Template] | Check RR for ethip4-ip4base-eth-2vhostvr1024-1vm
-| | framesize=${9000} | wt=1 | rxq=1
+| | framesize=${9000} | phy_cores=${1}
| tc04-IMIX-1t1c-ethip4-ip4base-eth-2vhostvr1024-1vm-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 routing config with 1 phy\
-| | ... | core, 1 receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for IMIX_v4_1 frames using single\
-| | ... | trial throughput test.
-| | ... | IMIX_v4_1 = (28x64B; 16x570B; 4x1518B)
-| | ...
| | [Tags] | IMIX | 1C
-| | ...
-| | [Template] | Check RR for ethip4-ip4base-eth-2vhostvr1024-1vm
-| | framesize=IMIX_v4_1 | wt=1 | rxq=1
+| | framesize=IMIX_v4_1 | phy_cores=${1}
| tc05-64B-2t2c-ethip4-ip4base-eth-2vhostvr1024-1vm-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 routing config with 2 phy\
-| | ... | cores, 1 receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 64B frames using single\
-| | ... | trial throughput test.
-| | ...
| | [Tags] | 64B | 2C
-| | ...
-| | [Template] | Check RR for ethip4-ip4base-eth-2vhostvr1024-1vm
-| | framesize=${64} | wt=2 | rxq=1
+| | framesize=${64} | phy_cores=${2}
| tc06-1518B-2t2c-ethip4-ip4base-eth-2vhostvr1024-1vm-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 routing config with 2 phy\
-| | ... | cores, 1 receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 1518B frames using single\
-| | ... | trial throughput test.
-| | ...
| | [Tags] | 1518B | 2C
-| | ...
-| | [Template] | Check RR for ethip4-ip4base-eth-2vhostvr1024-1vm
-| | framesize=${1518} | wt=2 | rxq=1
+| | framesize=${1518} | phy_cores=${2}
| tc07-9000B-2t2c-ethip4-ip4base-eth-2vhostvr1024-1vm-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 routing config with 2 phy\
-| | ... | cores, 1 receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 9000B frames using single\
-| | ... | trial throughput test.
-| | ...
| | [Tags] | 9000B | 2C
-| | ...
-| | [Template] | Check RR for ethip4-ip4base-eth-2vhostvr1024-1vm
-| | framesize=${9000} | wt=2 | rxq=1
+| | framesize=${9000} | phy_cores=${2}
| tc08-IMIX-2t2c-ethip4-ip4base-eth-2vhostvr1024-1vm-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 routing config with 2 phy\
-| | ... | cores, 1 receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for IMIX_v4_1 frames using single\
-| | ... | trial throughput test.
-| | ... | IMIX_v4_1 = (28x64B; 16x570B; 4x1518B)
-| | ...
| | [Tags] | IMIX | 2C
-| | ...
-| | [Template] | Check RR for ethip4-ip4base-eth-2vhostvr1024-1vm
-| | framesize=IMIX_v4_1 | wt=2 | rxq=1
+| | framesize=IMIX_v4_1 | phy_cores=${2}
| tc09-64B-4t4c-ethip4-ip4base-eth-2vhostvr1024-1vm-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 routing config with 4 phy\
-| | ... | cores, 2 receive queues per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 64B frames using single\
-| | ... | trial throughput test.
-| | ...
| | [Tags] | 64B | 4C
-| | ...
-| | [Template] | Check RR for ethip4-ip4base-eth-2vhostvr1024-1vm
-| | framesize=${64} | wt=4 | rxq=2
+| | framesize=${64} | phy_cores=${4}
| tc10-1518B-4t4c-ethip4-ip4base-eth-2vhostvr1024-1vm-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 routing config with 4 phy\
-| | ... | cores, 2 receive queues per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 1518B frames using single\
-| | ... | trial throughput test.
-| | ...
| | [Tags] | 1518B | 4C
-| | ...
-| | [Template] | Check RR for ethip4-ip4base-eth-2vhostvr1024-1vm
-| | framesize=${1518} | wt=4 | rxq=2
+| | framesize=${1518} | phy_cores=${4}
| tc11-9000B-4t4c-ethip4-ip4base-eth-2vhostvr1024-1vm-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 routing config with 4 phy\
-| | ... | cores, 2 receive queues per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 9000B frames using single\
-| | ... | trial throughput test.
-| | ...
| | [Tags] | 9000B | 4C
-| | ...
-| | [Template] | Check RR for ethip4-ip4base-eth-2vhostvr1024-1vm
-| | framesize=${9000} | wt=4 | rxq=2
+| | framesize=${9000} | phy_cores=${4}
| tc12-IMIX-4t4c-ethip4-ip4base-eth-2vhostvr1024-1vm-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 routing config with 4 phy\
-| | ... | cores, 2 receive queues per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for IMIX_v4_1 frames using single\
-| | ... | trial throughput test.
-| | ... | IMIX_v4_1 = (28x64B; 16x570B; 4x1518B)
-| | ...
| | [Tags] | IMIX | 4C
-| | ...
-| | [Template] | Check RR for ethip4-ip4base-eth-2vhostvr1024-1vm
-| | framesize=IMIX_v4_1 | wt=4 | rxq=2
+| | framesize=IMIX_v4_1 | phy_cores=${4}
diff --git a/tests/vpp/perf/vm_vhost/10ge2p1x520-ethip4-ip4base-eth-2vhostvr1024-1vm-ndrpdrdisc.robot b/tests/vpp/perf/vm_vhost/10ge2p1x520-ethip4-ip4base-eth-2vhostvr1024-1vm-ndrpdrdisc.robot
index cb6bbf2b94..5c8cf6f84f 100644
--- a/tests/vpp/perf/vm_vhost/10ge2p1x520-ethip4-ip4base-eth-2vhostvr1024-1vm-ndrpdrdisc.robot
+++ b/tests/vpp/perf/vm_vhost/10ge2p1x520-ethip4-ip4base-eth-2vhostvr1024-1vm-ndrpdrdisc.robot
@@ -81,7 +81,7 @@
| | ${threshold}= | Set Variable | ${min_rate}
| | ${dut1_vm_refs}= | Create Dictionary
| | ${dut2_vm_refs}= | Create Dictionary
-| | Given Add '1' worker threads and '1' rxqueues in 3-node single-link circular topology
+| | Given Add worker threads and rxqueues to all DUTs | 1
| | And Add PCI devices to all DUTs
| | And Add no multi seg to all DUTs
| | And Apply startup configuration on all VPP DUTs
@@ -113,7 +113,7 @@
| | ${threshold}= | Set Variable | ${min_rate}
| | ${dut1_vm_refs}= | Create Dictionary
| | ${dut2_vm_refs}= | Create Dictionary
-| | Given Add '1' worker threads and '1' rxqueues in 3-node single-link circular topology
+| | Given Add worker threads and rxqueues to all DUTs | 1
| | And Add PCI devices to all DUTs
| | And Add no multi seg to all DUTs
| | And Apply startup configuration on all VPP DUTs
@@ -146,7 +146,7 @@
| | ${threshold}= | Set Variable | ${min_rate}
| | ${dut1_vm_refs}= | Create Dictionary
| | ${dut2_vm_refs}= | Create Dictionary
-| | Given Add '1' worker threads and '1' rxqueues in 3-node single-link circular topology
+| | Given Add worker threads and rxqueues to all DUTs | 1
| | And Add PCI devices to all DUTs
| | And Add no multi seg to all DUTs
| | And Apply startup configuration on all VPP DUTs
@@ -178,7 +178,7 @@
| | ${threshold}= | Set Variable | ${min_rate}
| | ${dut1_vm_refs}= | Create Dictionary
| | ${dut2_vm_refs}= | Create Dictionary
-| | Given Add '1' worker threads and '1' rxqueues in 3-node single-link circular topology
+| | Given Add worker threads and rxqueues to all DUTs | 1
| | And Add PCI devices to all DUTs
| | And Add no multi seg to all DUTs
| | And Apply startup configuration on all VPP DUTs
@@ -212,7 +212,7 @@
| | ${threshold}= | Set Variable | ${min_rate}
| | ${dut1_vm_refs}= | Create Dictionary
| | ${dut2_vm_refs}= | Create Dictionary
-| | Given Add '1' worker threads and '1' rxqueues in 3-node single-link circular topology
+| | Given Add worker threads and rxqueues to all DUTs | 1
| | And Add PCI devices to all DUTs
| | And Add no multi seg to all DUTs
| | And Apply startup configuration on all VPP DUTs
@@ -245,7 +245,7 @@
| | ${threshold}= | Set Variable | ${min_rate}
| | ${dut1_vm_refs}= | Create Dictionary
| | ${dut2_vm_refs}= | Create Dictionary
-| | Given Add '1' worker threads and '1' rxqueues in 3-node single-link circular topology
+| | Given Add worker threads and rxqueues to all DUTs | 1
| | And Add PCI devices to all DUTs
| | And Add no multi seg to all DUTs
| | And Apply startup configuration on all VPP DUTs
@@ -278,7 +278,7 @@
| | ${threshold}= | Set Variable | ${min_rate}
| | ${dut1_vm_refs}= | Create Dictionary
| | ${dut2_vm_refs}= | Create Dictionary
-| | Given Add '2' worker threads and '1' rxqueues in 3-node single-link circular topology
+| | Given Add worker threads and rxqueues to all DUTs | 2
| | And Add PCI devices to all DUTs
| | And Add no multi seg to all DUTs
| | And Apply startup configuration on all VPP DUTs
@@ -310,7 +310,7 @@
| | ${threshold}= | Set Variable | ${min_rate}
| | ${dut1_vm_refs}= | Create Dictionary
| | ${dut2_vm_refs}= | Create Dictionary
-| | Given Add '2' worker threads and '1' rxqueues in 3-node single-link circular topology
+| | Given Add worker threads and rxqueues to all DUTs | 2
| | And Add PCI devices to all DUTs
| | And Add no multi seg to all DUTs
| | And Apply startup configuration on all VPP DUTs
@@ -343,7 +343,7 @@
| | ${threshold}= | Set Variable | ${min_rate}
| | ${dut1_vm_refs}= | Create Dictionary
| | ${dut2_vm_refs}= | Create Dictionary
-| | Given Add '2' worker threads and '1' rxqueues in 3-node single-link circular topology
+| | Given Add worker threads and rxqueues to all DUTs | 2
| | And Add PCI devices to all DUTs
| | And Add no multi seg to all DUTs
| | And Apply startup configuration on all VPP DUTs
@@ -375,7 +375,7 @@
| | ${threshold}= | Set Variable | ${min_rate}
| | ${dut1_vm_refs}= | Create Dictionary
| | ${dut2_vm_refs}= | Create Dictionary
-| | Given Add '2' worker threads and '1' rxqueues in 3-node single-link circular topology
+| | Given Add worker threads and rxqueues to all DUTs | 2
| | And Add PCI devices to all DUTs
| | And Add no multi seg to all DUTs
| | And Apply startup configuration on all VPP DUTs
@@ -409,7 +409,7 @@
| | ${threshold}= | Set Variable | ${min_rate}
| | ${dut1_vm_refs}= | Create Dictionary
| | ${dut2_vm_refs}= | Create Dictionary
-| | Given Add '2' worker threads and '1' rxqueues in 3-node single-link circular topology
+| | Given Add worker threads and rxqueues to all DUTs | 2
| | And Add PCI devices to all DUTs
| | And Add no multi seg to all DUTs
| | And Apply startup configuration on all VPP DUTs
@@ -442,7 +442,7 @@
| | ${threshold}= | Set Variable | ${min_rate}
| | ${dut1_vm_refs}= | Create Dictionary
| | ${dut2_vm_refs}= | Create Dictionary
-| | Given Add '2' worker threads and '1' rxqueues in 3-node single-link circular topology
+| | Given Add worker threads and rxqueues to all DUTs | 2
| | And Add PCI devices to all DUTs
| | And Add no multi seg to all DUTs
| | And Apply startup configuration on all VPP DUTs
@@ -475,7 +475,7 @@
| | ${threshold}= | Set Variable | ${min_rate}
| | ${dut1_vm_refs}= | Create Dictionary
| | ${dut2_vm_refs}= | Create Dictionary
-| | Given Add '4' worker threads and '2' rxqueues in 3-node single-link circular topology
+| | Given Add worker threads and rxqueues to all DUTs | 4
| | And Add PCI devices to all DUTs
| | And Add no multi seg to all DUTs
| | And Apply startup configuration on all VPP DUTs
@@ -507,7 +507,7 @@
| | ${threshold}= | Set Variable | ${min_rate}
| | ${dut1_vm_refs}= | Create Dictionary
| | ${dut2_vm_refs}= | Create Dictionary
-| | Given Add '4' worker threads and '2' rxqueues in 3-node single-link circular topology
+| | Given Add worker threads and rxqueues to all DUTs | 4
| | And Add PCI devices to all DUTs
| | And Add no multi seg to all DUTs
| | And Apply startup configuration on all VPP DUTs
@@ -540,7 +540,7 @@
| | ${threshold}= | Set Variable | ${min_rate}
| | ${dut1_vm_refs}= | Create Dictionary
| | ${dut2_vm_refs}= | Create Dictionary
-| | Given Add '4' worker threads and '2' rxqueues in 3-node single-link circular topology
+| | Given Add worker threads and rxqueues to all DUTs | 4
| | And Add PCI devices to all DUTs
| | And Add no multi seg to all DUTs
| | And Apply startup configuration on all VPP DUTs
@@ -572,7 +572,7 @@
| | ${threshold}= | Set Variable | ${min_rate}
| | ${dut1_vm_refs}= | Create Dictionary
| | ${dut2_vm_refs}= | Create Dictionary
-| | Given Add '4' worker threads and '2' rxqueues in 3-node single-link circular topology
+| | Given Add worker threads and rxqueues to all DUTs | 4
| | And Add PCI devices to all DUTs
| | And Add no multi seg to all DUTs
| | And Apply startup configuration on all VPP DUTs
@@ -606,7 +606,7 @@
| | ${threshold}= | Set Variable | ${min_rate}
| | ${dut1_vm_refs}= | Create Dictionary
| | ${dut2_vm_refs}= | Create Dictionary
-| | Given Add '4' worker threads and '2' rxqueues in 3-node single-link circular topology
+| | Given Add worker threads and rxqueues to all DUTs | 4
| | And Add PCI devices to all DUTs
| | And Add no multi seg to all DUTs
| | And Apply startup configuration on all VPP DUTs
@@ -639,7 +639,7 @@
| | ${threshold}= | Set Variable | ${min_rate}
| | ${dut1_vm_refs}= | Create Dictionary
| | ${dut2_vm_refs}= | Create Dictionary
-| | Given Add '4' worker threads and '2' rxqueues in 3-node single-link circular topology
+| | Given Add worker threads and rxqueues to all DUTs | 4
| | And Add PCI devices to all DUTs
| | And Add no multi seg to all DUTs
| | And Apply startup configuration on all VPP DUTs
diff --git a/tests/vpp/perf/vm_vhost/10ge2p1x520-ethip4-ip4base-eth-2vhostvr256-1vm-cfsrr1-ndrpdrdisc.robot b/tests/vpp/perf/vm_vhost/10ge2p1x520-ethip4-ip4base-eth-2vhostvr256-1vm-cfsrr1-ndrpdrdisc.robot
index bf8bc80e7a..47fa40f069 100644
--- a/tests/vpp/perf/vm_vhost/10ge2p1x520-ethip4-ip4base-eth-2vhostvr256-1vm-cfsrr1-ndrpdrdisc.robot
+++ b/tests/vpp/perf/vm_vhost/10ge2p1x520-ethip4-ip4base-eth-2vhostvr256-1vm-cfsrr1-ndrpdrdisc.robot
@@ -29,6 +29,8 @@
| ... | dut1_node=${dut1} | dut1_vm_refs=${dut1_vm_refs}
| ... | dut2_node=${dut2} | dut2_vm_refs=${dut2_vm_refs}
| ...
+| Test Template | Local template
+| ...
| Documentation | *RFC2544: Packet throughput IP4 test cases with vhost*
| ...
| ... | *[Top] Network Topologies:* TG-DUT1-DUT2-TG 3-node circular topology
@@ -72,8 +74,9 @@
| ${traffic_profile}= | trex-sl-3n-ethip4-ip4src253
*** Keywords ***
-| Discover NDR or PDR for IPv4 forwarding with VM
-| | [Arguments] | ${wt} | ${rxq} | ${framesize} | ${min_rate} | ${search_type}
+| Local template
+| | [Arguments] | ${phy_cores} | ${framesize} | ${search_type} | ${rxq}=${None}
+| | ... | ${min_rate}=${10000}
| | ...
| | [Documentation]
| | ... | [Cfg] DUT runs IP4 routing config with required number of threads,\
@@ -103,7 +106,7 @@
| | ${dut2_vm_refs}= | Create Dictionary
| | Set Test Variable | ${dut1_vm_refs}
| | Set Test Variable | ${dut2_vm_refs}
-| | Given Add '${wt}' worker threads and '${rxq}' rxqueues in 3-node single-link circular topology
+| | Given Add worker threads and rxqueues to all DUTs | ${phy_cores} | ${rxq}
| | And Add PCI devices to all DUTs
| | And Run Keyword If | ${get_framesize} < ${1522} | Add no multi seg to all DUTs
| | And Apply startup configuration on all VPP DUTs
@@ -130,223 +133,73 @@
*** Test Cases ***
| tc01-64B-1t1c-ethip4-ip4base-eth-2vhostvr256-1vm-cfsrr1-ndrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 routing config with 1 phy core,\
-| | ... | 1 receive queue per NIC port.
-| | ... | [Ver] Find NDR for 64 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 10kpps.
-| | ...
| | [Tags] | 64B | 1C | NDRDISC
-| | ...
-| | [Template] | Discover NDR or PDR for IPv4 forwarding with VM
-| | wt=1 | rxq=1 | framesize=${64} | min_rate=${10000} | search_type=NDR
+| | phy_cores=${1} | framesize=${64} | search_type=NDR
| tc02-64B-1t1c-ethip4-ip4base-eth-2vhostvr256-1vm-cfsrr1-pdrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 routing config with 1 phy core,\
-| | ... | 1 receive queue per NIC port.
-| | ... | [Ver] Find PDR for 64 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 10kpps, LT=0.5%.
-| | ...
| | [Tags] | 64B | 1C | PDRDISC | SKIP_PATCH
-| | ...
-| | [Template] | Discover NDR or PDR for IPv4 forwarding with VM
-| | wt=1 | rxq=1 | framesize=${64} | min_rate=${10000} | search_type=PDR
+| | phy_cores=${1} | framesize=${64} | search_type=PDR
| tc03-1518B-1t1c--ethip4-ip4base-eth-2vhostvr256-1vm-cfsrr1-ndrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 routing config with 1 phy core,\
-| | ... | 1 receive queue per NIC port.
-| | ... | [Ver] Find NDR for 1518 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 10kpps.
-| | ...
| | [Tags] | 1518B | 1C | NDRDISC
-| | ...
-| | [Template] | Discover NDR or PDR for IPv4 forwarding with VM
-| | wt=1 | rxq=1 | framesize=${1518} | min_rate=${10000} | search_type=NDR
+| | phy_cores=${1} | framesize=${1518} | search_type=NDR
| tc04-1518B-1t1c-ethip4-ip4base-eth-2vhostvr256-1vm-cfsrr1-pdrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 routing config with 1 phy core,\
-| | ... | 1 receive queue per NIC port.
-| | ... | [Ver] Find PDR for 1518 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 10kpps, LT=0.5%.
-| | ...
| | [Tags] | 1518B | 1C | PDRDISC | SKIP_PATCH
-| | ...
-| | [Template] | Discover NDR or PDR for IPv4 forwarding with VM
-| | wt=1 | rxq=1 | framesize=${1518} | min_rate=${10000} | search_type=PDR
+| | phy_cores=${1} | framesize=${1518} | search_type=PDR
| tc05-IMIX-1t1c-ethip4-ip4base-eth-2vhostvr256-1vm-cfsrr1-ndrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 routing config with 1 phy core,\
-| | ... | 1 receive queue per NIC port.
-| | ... | [Ver] Find NDR for IMIX_v4_1 framesize using binary search start at\
-| | ... | 10GE linerate, step 10kpps.
-| | ... | IMIX_v4_1 = (28x64B; 16x570B; 4x1518B)
-| | ...
| | [Tags] | IMIX | 1C | NDRDISC
-| | ...
-| | [Template] | Discover NDR or PDR for IPv4 forwarding with VM
-| | wt=1 | rxq=1 | framesize=IMIX_v4_1 | min_rate=${10000} | search_type=NDR
+| | phy_cores=${1} | framesize=IMIX_v4_1 | search_type=NDR
| tc06-IMIX-1t1c-ethip4-ip4base-eth-2vhostvr256-1vm-cfsrr1-pdrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 routing config with 1 phy core,\
-| | ... | 1 receive queue per NIC port.
-| | ... | [Ver] Find PDR for IMIX_v4_1 framesize using binary search start at\
-| | ... | 10GE linerate, step 10kpps, LT=0.5%.
-| | ... | IMIX_v4_1 = (28x64B; 16x570B; 4x1518B)
-| | ...
| | [Tags] | IMIX | 1C | PDRDISC | SKIP_PATCH
-| | ...
-| | [Template] | Discover NDR or PDR for IPv4 forwarding with VM
-| | wt=1 | rxq=1 | framesize=IMIX_v4_1 | min_rate=${10000} | search_type=PDR
+| | phy_cores=${1} | framesize=IMIX_v4_1 | search_type=PDR
| tc07-64B-2t2c-ethip4-ip4base-eth-2vhostvr256-1vm-cfsrr1-ndrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 routing config with 2 phy cores,\
-| | ... | 1 receive queue per NIC port.
-| | ... | [Ver] Find NDR for 64 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 10kpps.
-| | ...
| | [Tags] | 64B | 2C | NDRDISC
-| | ...
-| | [Template] | Discover NDR or PDR for IPv4 forwarding with VM
-| | wt=2 | rxq=1 | framesize=${64} | min_rate=${10000} | search_type=NDR
+| | phy_cores=${2} | framesize=${64} | search_type=NDR
| tc08-64B-2t2c-ethip4-ip4base-eth-2vhostvr256-1vm-cfsrr1-pdrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 routing config with 2 phy cores,\
-| | ... | 1 receive queue per NIC port.
-| | ... | [Ver] Find PDR for 64 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 10kpps, LT=0.5%.
-| | ...
| | [Tags] | 64B | 2C | PDRDISC | SKIP_PATCH
-| | ...
-| | [Template] | Discover NDR or PDR for IPv4 forwarding with VM
-| | wt=2 | rxq=1 | framesize=${64} | min_rate=${10000} | search_type=PDR
+| | phy_cores=${2} | framesize=${64} | search_type=PDR
| tc09-1518B-2t2c-ethip4-ip4base-eth-2vhostvr256-1vm-cfsrr1-ndrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 routing config with 2 phy cores,\
-| | ... | 1 receive queue per NIC port.
-| | ... | [Ver] Find NDR for 1518 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 10kpps.
-| | ...
| | [Tags] | 1518B | 2C | NDRDISC | SKIP_PATCH
-| | ...
-| | [Template] | Discover NDR or PDR for IPv4 forwarding with VM
-| | wt=2 | rxq=1 | framesize=${1518} | min_rate=${10000} | search_type=NDR
+| | phy_cores=${2} | framesize=${1518} | search_type=NDR
| tc10-1518B-2t2c-ethip4-ip4base-eth-2vhostvr256-1vm-cfsrr1-pdrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 routing config with 2 phy cores,\
-| | ... | 1 receive queue per NIC port.
-| | ... | [Ver] Find PDR for 1518 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 10kpps, LT=0.5%.
-| | ...
| | [Tags] | 1518B | 2C | PDRDISC | SKIP_PATCH
-| | ...
-| | [Template] | Discover NDR or PDR for IPv4 forwarding with VM
-| | wt=2 | rxq=1 | framesize=${1518} | min_rate=${10000} | search_type=PDR
+| | phy_cores=${2} | framesize=${1518} | search_type=PDR
| tc11-IMIX-2t2c-ethip4-ip4base-eth-2vhostvr256-1vm-cfsrr1-ndrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 routing config with 2 phy cores,\
-| | ... | 1 receive queue per NIC port.
-| | ... | [Ver] Find NDR for IMIX_v4_1 framesize using binary search start at\
-| | ... | 10GE linerate, step 10kpps.
-| | ... | IMIX_v4_1 = (28x64B; 16x570B; 4x1518B)
-| | ...
| | [Tags] | IMIX | 2C | NDRDISC | SKIP_PATCH
-| | ...
-| | [Template] | Discover NDR or PDR for IPv4 forwarding with VM
-| | wt=2 | rxq=1 | framesize=IMIX_v4_1 | min_rate=${10000} | search_type=NDR
+| | phy_cores=${2} | framesize=IMIX_v4_1 | search_type=NDR
| tc12-IMIX-2t2c-ethip4-ip4base-eth-2vhostvr256-1vm-cfsrr1-pdrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 routing config with 2 phy cores,\
-| | ... | 1 receive queue per NIC port.
-| | ... | [Ver] Find PDR for IMIX_v4_1 framesize using binary search start at\
-| | ... | 10GE linerate, step 10kpps.
-| | ... | IMIX_v4_1 = (28x64B; 16x570B; 4x1518B)
-| | ...
| | [Tags] | IMIX | 2C | PDRDISC | SKIP_PATCH
-| | ...
-| | [Template] | Discover NDR or PDR for IPv4 forwarding with VM
-| | wt=2 | rxq=1 | framesize=IMIX_v4_1 | min_rate=${10000} | search_type=PDR
+| | phy_cores=${2} | framesize=IMIX_v4_1 | search_type=PDR
| tc13-64B-4t4c-ethip4-ip4base-eth-2vhostvr256-1vm-cfsrr1-ndrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 routing config with 4 phy cores,\
-| | ... | 2 receive queues per NIC port.
-| | ... | [Ver] Find NDR for 64 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 10kpps.
-| | ...
| | [Tags] | 64B | 4C | NDRDISC
-| | ...
-| | [Template] | Discover NDR or PDR for IPv4 forwarding with VM
-| | wt=4 | rxq=2 | framesize=${64} | min_rate=${10000} | search_type=NDR
+| | phy_cores=${4} | framesize=${64} | search_type=NDR
| tc14-64B-4t4c-ethip4-ip4base-eth-2vhostvr256-1vm-cfsrr1-pdrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 routing config with 4 phy cores,\
-| | ... | 2 receive queues per NIC port.
-| | ... | [Ver] Find PDR for 64 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 10kpps, LT=0.5%.
-| | ...
| | [Tags] | 64B | 4C | PDRDISC | SKIP_PATCH
-| | ...
-| | [Template] | Discover NDR or PDR for IPv4 forwarding with VM
-| | wt=4 | rxq=2 | framesize=${64} | min_rate=${10000} | search_type=PDR
+| | phy_cores=${4} | framesize=${64} | search_type=PDR
| tc15-1518B-4t4c-ethip4-ip4base-eth-2vhostvr256-1vm-cfsrr1-ndrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 routing config with 4 phy cores,\
-| | ... | 2 receive queues per NIC port.
-| | ... | [Ver] Find NDR for 1518 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 10kpps.
-| | ...
| | [Tags] | 1518B | 4C | NDRDISC | SKIP_PATCH
-| | ...
-| | [Template] | Discover NDR or PDR for IPv4 forwarding with VM
-| | wt=4 | rxq=2 | framesize=${1518} | min_rate=${10000} | search_type=NDR
+| | phy_cores=${4} | framesize=${1518} | search_type=NDR
| tc16-1518B-4t4c-ethip4-ip4base-eth-2vhostvr256-1vm-cfsrr1-pdrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 routing config with 4 phy cores,\
-| | ... | 2 receive queues per NIC port.
-| | ... | [Ver] Find PDR for 1518 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 10kpps, LT=0.5%.
-| | ...
| | [Tags] | 1518B | 4C | PDRDISC | SKIP_PATCH
-| | ...
-| | [Template] | Discover NDR or PDR for IPv4 forwarding with VM
-| | wt=4 | rxq=2 | framesize=${1518} | min_rate=${10000} | search_type=PDR
+| | phy_cores=${4} | framesize=${1518} | search_type=PDR
| tc17-IMIX-4t4c-ethip4-ip4base-eth-2vhostvr256-1vm-cfsrr1-ndrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 routing config with 4 phy cores,\
-| | ... | 2 receive queues per NIC port.
-| | ... | [Ver] Find NDR for IMIX_v4_1 framesize using binary search start at\
-| | ... | 10GE linerate, step 10kpps.
-| | ... | IMIX_v4_1 = (28x64B; 16x570B; 4x1518B)
-| | ...
| | [Tags] | IMIX | 4C | NDRDISC | SKIP_PATCH
-| | ...
-| | [Template] | Discover NDR or PDR for IPv4 forwarding with VM
-| | wt=4 | rxq=2 | framesize=IMIX_v4_1 | min_rate=${10000} | search_type=NDR
+| | phy_cores=${4} | framesize=IMIX_v4_1 | search_type=NDR
| tc18-IMIX-4t4c-ethip4-ip4base-eth-2vhostvr256-1vm-cfsrr1-pdrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 routing config with 4 phy cores,\
-| | ... | 2 receive queues per NIC port.
-| | ... | [Ver] Find PDR for IMIX_v4_1 framesize using binary search start at\
-| | ... | 10GE linerate, step 10kpps, LT=0.5%.
-| | ... | IMIX_v4_1 = (28x64B; 16x570B; 4x1518B)
-| | ...
| | [Tags] | IMIX | 4C | PDRDISC | SKIP_PATCH
-| | ...
-| | [Template] | Discover NDR or PDR for IPv4 forwarding with VM
-| | wt=4 | rxq=2 | framesize=IMIX_v4_1 | min_rate=${10000} | search_type=PDR
+| | phy_cores=${4} | framesize=IMIX_v4_1 | search_type=PDR
diff --git a/tests/vpp/perf/vm_vhost/10ge2p1x520-ethip4-ip4base-eth-2vhostvr256-1vm-mrr.robot b/tests/vpp/perf/vm_vhost/10ge2p1x520-ethip4-ip4base-eth-2vhostvr256-1vm-mrr.robot
index c8bff20643..92d31abe7a 100644
--- a/tests/vpp/perf/vm_vhost/10ge2p1x520-ethip4-ip4base-eth-2vhostvr256-1vm-mrr.robot
+++ b/tests/vpp/perf/vm_vhost/10ge2p1x520-ethip4-ip4base-eth-2vhostvr256-1vm-mrr.robot
@@ -27,6 +27,8 @@
| ... | dut1_node=${dut1} | dut1_vm_refs=${dut1_vm_refs}
| ... | dut2_node=${dut2} | dut2_vm_refs=${dut2_vm_refs}
| ...
+| Test Template | Local template
+| ...
| Documentation | *Raw results IPv4 test cases with vhost*
| ...
| ... | *[Top] Network Topologies:* TG-DUT1-DUT2-TG 3-node circular topology
@@ -62,16 +64,21 @@
| ${traffic_profile}= | trex-sl-3n-ethip4-ip4src253
*** Keywords ***
-| Check RR for eth-ip4base-eth-2vhostvr256-1vm
+| Local template
| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 routing config with ${wt} thread, ${wt} phy\
-| | ... | core, ${rxq} receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for ${framesize} frames using single\
+| | ... | [Cfg] DUT runs IPv4 routing config with.
+| | ... | Each DUT uses ${phy_cores} physical core(s) for worker threads.
+| | ... | [Ver] Measure MaxReceivedRate for ${framesize}B frames using single\
| | ... | trial throughput test.
| | ...
-| | [Arguments] | ${framesize} | ${wt} | ${rxq}
+| | ... | *Arguments:*
+| | ... | - framesize - Framesize in Bytes in integer or string (IMIX_v4_1).
+| | ... | Type: integer, string
+| | ... | - phy_cores - Number of physical cores. Type: integer
+| | ... | - rxq - Number of RX queues, default value: ${None}. Type: integer
+| | ...
+| | [Arguments] | ${framesize} | ${phy_cores} | ${rxq}=${None}
| | ...
-| | # Test Variables required for test and test teardown
| | Set Test Variable | ${framesize}
| | ${get_framesize}= | Get Frame Size | ${framesize}
| | ${max_rate}= | Calculate pps | ${s_limit} | ${get_framesize}
@@ -82,7 +89,7 @@
| | ${jumbo_frames}= | Set Variable If | ${get_framesize} < ${1522}
| | ... | ${False} | ${True}
| | ...
-| | Given Add '${wt}' worker threads and '${rxq}' rxqueues in 3-node single-link circular topology
+| | Given Add worker threads and rxqueues to all DUTs | ${phy_cores} | ${rxq}
| | And Add PCI devices to all DUTs
| | And Run Keyword If | ${get_framesize} < ${1522}
| | ... | Add no multi seg to all DUTs
@@ -102,148 +109,49 @@
*** Test Cases ***
| tc01-64B-1t1c-ethip4-ip4base-eth-2vhostvr256-1vm-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs IP4 routing config with 1 phy core,\
-| | ... | 1 receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 64B frames using single\
-| | ... | trial throughput test.
-| | ...
| | [Tags] | 64B | 1C
-| | ...
-| | [Template] | Check RR for eth-ip4base-eth-2vhostvr256-1vm
-| | framesize=${64} | wt=1 | rxq=1
+| | framesize=${64} | phy_cores=${1}
| tc02-1518B-1t1c-ethip4-ip4base-eth-2vhostvr256-1vm
-| | [Documentation]
-| | ... | [Cfg] DUT runs IP4 routing config with 1 phy core,\
-| | ... | 1 receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 1518B frames using single\
-| | ... | trial throughput test.
-| | ...
| | [Tags] | 1518B | 1C
-| | ...
-| | [Template] | Check RR for eth-ip4base-eth-2vhostvr256-1vm
-| | framesize=${1518} | wt=1 | rxq=1
+| | framesize=${1518} | phy_cores=${1}
| tc03-9000B-1t1c-ethip4-ip4base-eth-2vhostvr256-1vm
-| | [Documentation]
-| | ... | [Cfg] DUT runs IP4 routing config with 1 phy core,\
-| | ... | 1 receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 9000B frames using single\
-| | ... | trial throughput test.
-| | ...
| | [Tags] | 9000B | 1C
-| | ...
-| | [Template] | Check RR for eth-ip4base-eth-2vhostvr256-1vm
-| | framesize=${9000} | wt=1 | rxq=1
+| | framesize=${9000} | phy_cores=${1}
| tc04-IMIX-1t1c-ethip4-ip4base-eth-2vhostvr256-1vm-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs IP4 routing config with 1 phy core,\
-| | ... | 1 receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for IMIX_v4_1 frames using single\
-| | ... | trial throughput test.
-| | ... | IMIX_v4_1 = (28x64B; 16x570B; 4x1518B)
-| | ...
| | [Tags] | IMIX | 1C
-| | ...
-| | [Template] | Check RR for eth-ip4base-eth-2vhostvr256-1vm
-| | framesize=IMIX_v4_1 | wt=1 | rxq=1
+| | framesize=IMIX_v4_1 | phy_cores=${1}
| tc05-64B-2t2c-ethip4-ip4base-eth-2vhostvr256-1vm-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs IP4 routing config with 2 phy cores,\
-| | ... | 1 receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 64B frames using single\
-| | ... | trial throughput test.
-| | ...
| | [Tags] | 64B | 2C
-| | ...
-| | [Template] | Check RR for eth-ip4base-eth-2vhostvr256-1vm
-| | framesize=${64} | wt=2 | rxq=1
+| | framesize=${64} | phy_cores=${2}
| tc06-1518B-2t2c-ethip4-ip4base-eth-2vhostvr256-1vm-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs IP4 routing config with 2 phy cores,\
-| | ... | 1 receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 1518B frames using single\
-| | ... | trial throughput test.
-| | ...
| | [Tags] | 1518B | 2C
-| | ...
-| | [Template] | Check RR for eth-ip4base-eth-2vhostvr256-1vm
-| | framesize=${1518} | wt=2 | rxq=1
+| | framesize=${1518} | phy_cores=${2}
| tc07-9000B-2t2c-ethip4-ip4base-eth-2vhostvr256-1vm-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs IP4 routing config with 2 phy cores,\
-| | ... | 1 receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 9000B frames using single\
-| | ... | trial throughput test.
-| | ...
| | [Tags] | 9000B | 2C
-| | ...
-| | [Template] | Check RR for eth-ip4base-eth-2vhostvr256-1vm
-| | framesize=${9000} | wt=2 | rxq=1
+| | framesize=${9000} | phy_cores=${2}
| tc08-IMIX-2t2c-ethip4-ip4base-eth-2vhostvr256-1vm-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs IP4 routing config with 2 phy cores,\
-| | ... | 1 receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for IMIX_v4_1 frames using single\
-| | ... | trial throughput test.
-| | ... | IMIX_v4_1 = (28x64B; 16x570B; 4x1518B)
-| | ...
| | [Tags] | IMIX | 2C
-| | ...
-| | [Template] | Check RR for eth-ip4base-eth-2vhostvr256-1vm
-| | framesize=IMIX_v4_1 | wt=2 | rxq=1
+| | framesize=IMIX_v4_1 | phy_cores=${2}
| tc09-64B-4t4c-ethip4-ip4base-eth-2vhostvr256-1vm-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs IP4 routing config with 4 phy cores,\
-| | ... | 2 receive queues per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 64B frames using single\
-| | ... | trial throughput test.
-| | ...
| | [Tags] | 64B | 4C
-| | ...
-| | [Template] | Check RR for eth-ip4base-eth-2vhostvr256-1vm
-| | framesize=${64} | wt=4 | rxq=2
+| | framesize=${64} | phy_cores=${4}
| tc10-1518B-4t4c-ethip4-ip4base-eth-2vhostvr256-1vm-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs IP4 routing config with 4 phy cores,\
-| | ... | 2 receive queues per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 1518B frames using single\
-| | ... | trial throughput test.
-| | ...
| | [Tags] | 1518B | 4C
-| | ...
-| | [Template] | Check RR for eth-ip4base-eth-2vhostvr256-1vm
-| | framesize=${1518} | wt=4 | rxq=2
+| | framesize=${1518} | phy_cores=${4}
| tc11-9000B-4t4c-ethip4-ip4base-eth-2vhostvr256-1vm-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs IP4 routing config with 4 phy cores,\
-| | ... | 2 receive queues per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 9000B frames using single\
-| | ... | trial throughput test.
-| | ...
| | [Tags] | 9000B | 4C
-| | ...
-| | [Template] | Check RR for eth-ip4base-eth-2vhostvr256-1vm
-| | framesize=${9000} | wt=4 | rxq=2
+| | framesize=${9000} | phy_cores=${4}
| tc12-IMIX-4t4c-ethip4-ip4base-eth-2vhostvr256-1vm-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs IP4 routing config with 4 phy cores,\
-| | ... | 2 receive queues per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for IMIX_v4_1 frames using single\
-| | ... | trial throughput test.
-| | ... | IMIX_v4_1 = (28x64B; 16x570B; 4x1518B)
-| | ...
| | [Tags] | IMIX | 4C
-| | ...
-| | [Template] | Check RR for eth-ip4base-eth-2vhostvr256-1vm
-| | framesize=IMIX_v4_1 | wt=4 | rxq=2
+| | framesize=IMIX_v4_1 | phy_cores=${4}
diff --git a/tests/vpp/perf/vm_vhost/10ge2p1x520-ethip4-ip4base-eth-2vhostvr256-1vm-ndrpdrdisc.robot b/tests/vpp/perf/vm_vhost/10ge2p1x520-ethip4-ip4base-eth-2vhostvr256-1vm-ndrpdrdisc.robot
index 3e02e56624..86c1fd8132 100644
--- a/tests/vpp/perf/vm_vhost/10ge2p1x520-ethip4-ip4base-eth-2vhostvr256-1vm-ndrpdrdisc.robot
+++ b/tests/vpp/perf/vm_vhost/10ge2p1x520-ethip4-ip4base-eth-2vhostvr256-1vm-ndrpdrdisc.robot
@@ -28,6 +28,8 @@
| ... | dut1_node=${dut1} | dut1_vm_refs=${dut1_vm_refs}
| ... | dut2_node=${dut2} | dut2_vm_refs=${dut2_vm_refs}
| ...
+| Test Template | Local template
+| ...
| Documentation | *RFC2544: Packet throughput IP4 test cases with vhost*
| ...
| ... | *[Top] Network Topologies:* TG-DUT1-DUT2-TG 3-node circular topology
@@ -70,22 +72,9 @@
| ${traffic_profile} | trex-sl-3n-ethip4-ip4src253
*** Keywords ***
-| Discover NDR or PDR for IPv4 forwarding with VM
-| | [Arguments] | ${wt} | ${rxq} | ${framesize} | ${min_rate} | ${search_type}
-| | ...
-| | [Documentation]
-| | ... | [Cfg] DUT runs IP4 routing config with required number of threads,\
-| | ... | phy cores and receive queues per NIC port.
-| | ... | [Ver] Find NDR or PDR for defined frame size using binary search\
-| | ... | start at 10GE linerate with specified step.
-| | ...
-| | ... | *Arguments:*
-| | ... | - wt - Number of worker threads to be used. Type: integer
-| | ... | - rxq - Number of Rx queues to be used. Type: integer
-| | ... | - framesize - L2 Frame Size [B]. Type: integer
-| | ... | - min_rate - Lower limit of search [pps]. Type: float
-| | ... | - search_type - Type of the search - non drop rate (NDR) or partial
-| | ... | drop rare (PDR). Type: string
+| Local template
+| | [Arguments] | ${phy_cores} | ${framesize} | ${search_type} | ${rxq}=${None}
+| | ... | ${min_rate}=${10000}
| | ...
| | Set Test Variable | ${framesize}
| | Set Test Variable | ${min_rate}
@@ -100,7 +89,7 @@
| | ${dut2_vm_refs}= | Create Dictionary
| | Set Test Variable | ${dut1_vm_refs}
| | Set Test Variable | ${dut2_vm_refs}
-| | Given Add '${wt}' worker threads and '${rxq}' rxqueues in 3-node single-link circular topology
+| | Given Add worker threads and rxqueues to all DUTs | ${phy_cores} | ${rxq}
| | And Add PCI devices to all DUTs
| | And Run Keyword If | ${get_framesize} < ${1522} | Add no multi seg to all DUTs
| | And Apply startup configuration on all VPP DUTs
@@ -126,223 +115,73 @@
*** Test Cases ***
| tc01-64B-1t1c-ethip4-ip4base-eth-2vhostvr256-1vm-ndrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs IP4 routing config with 1 phy core,\
-| | ... | 1 receive queue per NIC port.
-| | ... | [Ver] Find NDR for 64 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 10kpps.
-| | ...
| | [Tags] | 64B | 1C | NDRDISC
-| | ...
-| | [Template] | Discover NDR or PDR for IPv4 forwarding with VM
-| | wt=1 | rxq=1 | framesize=${64} | min_rate=${10000} | search_type=NDR
+| | phy_cores=${1} | framesize=${64} | search_type=NDR
| tc02-64B-1t1c-ethip4-ip4base-eth-2vhostvr256-1vm-pdrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs IP4 routing config with 1 phy core,\
-| | ... | 1 receive queue per NIC port.
-| | ... | [Ver] Find PDR for 64 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 10kpps, LT=0.5%.
-| | ...
| | [Tags] | 64B | 1C | PDRDISC | SKIP_PATCH
-| | ...
-| | [Template] | Discover NDR or PDR for IPv4 forwarding with VM
-| | wt=1 | rxq=1 | framesize=${64} | min_rate=${10000} | search_type=PDR
+| | phy_cores=${1} | framesize=${64} | search_type=PDR
| tc03-1518B-1t1c-ethip4-ip4base-eth-2vhostvr256-1vm-ndrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs IP4 routing config with 1 phy core,\
-| | ... | 1 receive queue per NIC port.
-| | ... | [Ver] Find NDR for 1518 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 10kpps.
-| | ...
| | [Tags] | 1518B | 1C | NDRDISC
-| | ...
-| | [Template] | Discover NDR or PDR for IPv4 forwarding with VM
-| | wt=1 | rxq=1 | framesize=${1518} | min_rate=${10000} | search_type=NDR
+| | phy_cores=${1} | framesize=${1518} | search_type=NDR
| tc04-1518B-1t1c-ethip4-ip4base-eth-2vhostvr256-1vm-pdrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs IP4 routing config with 1 phy core,\
-| | ... | 1 receive queue per NIC port.
-| | ... | [Ver] Find PDR for 1518 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 10kpps, LT=0.5%.
-| | ...
| | [Tags] | 1518B | 1C | PDRDISC | SKIP_PATCH
-| | ...
-| | [Template] | Discover NDR or PDR for IPv4 forwarding with VM
-| | wt=1 | rxq=1 | framesize=${1518} | min_rate=${10000} | search_type=PDR
+| | phy_cores=${1} | framesize=${1518} | search_type=PDR
| tc05-IMIX-1t1c-ethip4-ip4base-eth-2vhostvr256-1vm-ndrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs IP4 routing config with 1 phy core,\
-| | ... | 1 receive queue per NIC port.
-| | ... | [Ver] Find NDR for IMIX_v4_1 framesize using binary search start at\
-| | ... | 10GE linerate, step 10kpps.
-| | ... | IMIX_v4_1 = (28x64B; 16x570B; 4x1518B)
-| | ...
| | [Tags] | IMIX | 1C | NDRDISC
-| | ...
-| | [Template] | Discover NDR or PDR for IPv4 forwarding with VM
-| | wt=1 | rxq=1 | framesize=IMIX_v4_1 | min_rate=${10000} | search_type=NDR
+| | phy_cores=${1} | framesize=IMIX_v4_1 | search_type=NDR
| tc06-IMIX-1t1c-ethip4-ip4base-eth-2vhostvr256-1vm-pdrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs IP4 routing config with 1 phy core,\
-| | ... | 1 receive queue per NIC port.
-| | ... | [Ver] Find PDR for IMIX_v4_1 framesize using binary search start at\
-| | ... | 10GE linerate, step 10kpps, LT=0.5%.
-| | ... | IMIX_v4_1 = (28x64B; 16x570B; 4x1518B)
-| | ...
| | [Tags] | IMIX | 1C | PDRDISC | SKIP_PATCH
-| | ...
-| | [Template] | Discover NDR or PDR for IPv4 forwarding with VM
-| | wt=1 | rxq=1 | framesize=IMIX_v4_1 | min_rate=${10000} | search_type=PDR
+| | phy_cores=${1} | framesize=IMIX_v4_1 | search_type=PDR
| tc07-64B-2t2c-ethip4-ip4base-eth-2vhostvr256-1vm-ndrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs IP4 routing config with 2 phy cores,\
-| | ... | 1 receive queue per NIC port.
-| | ... | [Ver] Find NDR for 64 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 10kpps.
-| | ...
| | [Tags] | 64B | 2C | NDRDISC
-| | ...
-| | [Template] | Discover NDR or PDR for IPv4 forwarding with VM
-| | wt=2 | rxq=1 | framesize=${64} | min_rate=${10000} | search_type=NDR
+| | phy_cores=${2} | framesize=${64} | search_type=NDR
| tc08-64B-2t2c-ethip4-ip4base-eth-2vhostvr256-1vm-pdrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs IP4 routing config with 2 phy cores,\
-| | ... | 1 receive queue per NIC port.
-| | ... | [Ver] Find PDR for 64 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 10kpps, LT=0.5%.
-| | ...
| | [Tags] | 64B | 2C | PDRDISC | SKIP_PATCH
-| | ...
-| | [Template] | Discover NDR or PDR for IPv4 forwarding with VM
-| | wt=2 | rxq=1 | framesize=${64} | min_rate=${10000} | search_type=PDR
+| | phy_cores=${2} | framesize=${64} | search_type=PDR
| tc09-1518B-2t2c-ethip4-ip4base-eth-2vhostvr256-1vm-ndrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs IP4 routing config with 2 phy cores,\
-| | ... | 1 receive queue per NIC port.
-| | ... | [Ver] Find NDR for 1518 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 10kpps.
-| | ...
| | [Tags] | 1518B | 2C | NDRDISC | SKIP_PATCH
-| | ...
-| | [Template] | Discover NDR or PDR for IPv4 forwarding with VM
-| | wt=2 | rxq=1 | framesize=${1518} | min_rate=${10000} | search_type=NDR
+| | phy_cores=${2} | framesize=${1518} | search_type=NDR
| tc10-1518B-2t2c-ethip4-ip4base-eth-2vhostvr256-1vm-pdrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs IP4 routing config with 2 phy cores,\
-| | ... | 1 receive queue per NIC port.
-| | ... | [Ver] Find PDR for 1518 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 10kpps, LT=0.5%.
-| | ...
| | [Tags] | 1518B | 2C | PDRDISC | SKIP_PATCH
-| | ...
-| | [Template] | Discover NDR or PDR for IPv4 forwarding with VM
-| | wt=2 | rxq=1 | framesize=${1518} | min_rate=${10000} | search_type=PDR
+| | phy_cores=${2} | framesize=${1518} | search_type=PDR
| tc11-IMIX-2t2c-ethip4-ip4base-eth-2vhostvr256-1vm-ndrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs IP4 routing config with 2 phy cores,\
-| | ... | 1 receive queue per NIC port.
-| | ... | [Ver] Find NDR for IMIX_v4_1 framesize using binary search start at\
-| | ... | 10GE linerate, step 10kpps.
-| | ... | IMIX_v4_1 = (28x64B; 16x570B; 4x1518B)
-| | ...
| | [Tags] | IMIX | 2C | NDRDISC | SKIP_PATCH
-| | ...
-| | [Template] | Discover NDR or PDR for IPv4 forwarding with VM
-| | wt=2 | rxq=1 | framesize=IMIX_v4_1 | min_rate=${10000} | search_type=NDR
+| | phy_cores=${2} | framesize=IMIX_v4_1 | search_type=NDR
| tc12-IMIX-2t2c-ethip4-ip4base-eth-2vhostvr256-1vm-pdrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs IP4 routing config with 2 phy cores,\
-| | ... | 1 receive queue per NIC port.
-| | ... | [Ver] Find PDR for IMIX_v4_1 framesize using binary search start at\
-| | ... | 10GE linerate, step 10kpps.
-| | ... | IMIX_v4_1 = (28x64B; 16x570B; 4x1518B)
-| | ...
| | [Tags] | IMIX | 2C | PDRDISC | SKIP_PATCH
-| | ...
-| | [Template] | Discover NDR or PDR for IPv4 forwarding with VM
-| | wt=2 | rxq=1 | framesize=IMIX_v4_1 | min_rate=${10000} | search_type=PDR
+| | phy_cores=${2} | framesize=IMIX_v4_1 | search_type=PDR
| tc13-64B-4t4c-ethip4-ip4base-eth-2vhostvr256-1vm-ndrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs IP4 routing config with 4 phy cores,\
-| | ... | 2 receive queues per NIC port.
-| | ... | [Ver] Find NDR for 64 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 10kpps.
-| | ...
| | [Tags] | 64B | 4C | NDRDISC
-| | ...
-| | [Template] | Discover NDR or PDR for IPv4 forwarding with VM
-| | wt=4 | rxq=2 | framesize=${64} | min_rate=${10000} | search_type=NDR
+| | phy_cores=${4} | framesize=${64} | search_type=NDR
| tc14-64B-4t4c-ethip4-ip4base-eth-2vhostvr256-1vm-pdrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs IP4 routing config with 4 phy cores,\
-| | ... | 2 receive queues per NIC port.
-| | ... | [Ver] Find PDR for 64 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 10kpps, LT=0.5%.
-| | ...
| | [Tags] | 64B | 4C | PDRDISC | SKIP_PATCH
-| | ...
-| | [Template] | Discover NDR or PDR for IPv4 forwarding with VM
-| | wt=4 | rxq=2 | framesize=${64} | min_rate=${10000} | search_type=PDR
+| | phy_cores=${4} | framesize=${64} | search_type=PDR
| tc15-1518B-4t4c-ethip4-ip4base-eth-2vhostvr256-1vm-ndrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs IP4 routing config with 4 phy cores,\
-| | ... | 2 receive queues per NIC port.
-| | ... | [Ver] Find NDR for 1518 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 10kpps.
-| | ...
| | [Tags] | 1518B | 4C | NDRDISC | SKIP_PATCH
-| | ...
-| | [Template] | Discover NDR or PDR for IPv4 forwarding with VM
-| | wt=4 | rxq=2 | framesize=${1518} | min_rate=${10000} | search_type=NDR
+| | phy_cores=${4} | framesize=${1518} | search_type=NDR
| tc16-1518B-4t4c-ethip4-ip4base-eth-2vhostvr256-1vm-pdrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs IP4 routing config with 4 phy cores,\
-| | ... | 2 receive queues per NIC port.
-| | ... | [Ver] Find PDR for 1518 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 10kpps, LT=0.5%.
-| | ...
| | [Tags] | 1518B | 4C | PDRDISC | SKIP_PATCH
-| | ...
-| | [Template] | Discover NDR or PDR for IPv4 forwarding with VM
-| | wt=4 | rxq=2 | framesize=${1518} | min_rate=${10000} | search_type=PDR
+| | phy_cores=${4} | framesize=${1518} | search_type=PDR
| tc17-IMIX-4t4c-ethip4-ip4base-eth-2vhostvr256-1vm-ndrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs IP4 routing config with 4 phy cores,\
-| | ... | 2 receive queues per NIC port.
-| | ... | [Ver] Find NDR for IMIX_v4_1 framesize using binary search start at\
-| | ... | 10GE linerate, step 10kpps.
-| | ... | IMIX_v4_1 = (28x64B; 16x570B; 4x1518B)
-| | ...
| | [Tags] | IMIX | 4C | NDRDISC | SKIP_PATCH
-| | ...
-| | [Template] | Discover NDR or PDR for IPv4 forwarding with VM
-| | wt=4 | rxq=2 | framesize=IMIX_v4_1 | min_rate=${10000} | search_type=NDR
+| | phy_cores=${4} | framesize=IMIX_v4_1 | search_type=NDR
| tc18-IMIX-4t4c-ethip4-ip4base-eth-2vhostvr256-1vm-pdrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs IP4 routing config with 4 phy cores,\
-| | ... | 2 receive queues per NIC port.
-| | ... | [Ver] Find PDR for IMIX_v4_1 framesize using binary search start at\
-| | ... | 10GE linerate, step 10kpps, LT=0.5%.
-| | ... | IMIX_v4_1 = (28x64B; 16x570B; 4x1518B)
-| | ...
| | [Tags] | IMIX | 4C | PDRDISC | SKIP_PATCH
-| | ...
-| | [Template] | Discover NDR or PDR for IPv4 forwarding with VM
-| | wt=4 | rxq=2 | framesize=IMIX_v4_1 | min_rate=${10000} | search_type=PDR
+| | phy_cores=${4} | framesize=IMIX_v4_1 | search_type=PDR
diff --git a/tests/vpp/perf/vm_vhost/10ge2p1x520-ethip4-ip4base-eth-4vhostvr1024-2vm-mrr.robot b/tests/vpp/perf/vm_vhost/10ge2p1x520-ethip4-ip4base-eth-4vhostvr1024-2vm-mrr.robot
index 24a22ffd68..95455d022f 100644
--- a/tests/vpp/perf/vm_vhost/10ge2p1x520-ethip4-ip4base-eth-4vhostvr1024-2vm-mrr.robot
+++ b/tests/vpp/perf/vm_vhost/10ge2p1x520-ethip4-ip4base-eth-4vhostvr1024-2vm-mrr.robot
@@ -27,6 +27,8 @@
| ... | dut1_node=${dut1} | dut1_vm_refs=${dut1_vm_refs}
| ... | dut2_node=${dut2} | dut2_vm_refs=${dut2_vm_refs}
| ...
+| Test Template | Local template
+| ...
| Documentation | *Raw results IPv4 test cases with vhost*
| ...
| ... | *[Top] Network Topologies:* TG-DUT1-DUT2-TG 3-node circular topology
@@ -66,16 +68,21 @@
| ${traffic_profile}= | trex-sl-3n-ethip4-ip4src253
*** Keywords ***
-| Check RR for ethip4-ip4base-eth-4vhostvr1024-2vm
+| Local template
| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 routing config with ${wt} thread, ${wt} phy\
-| | ... | core, ${rxq} receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for ${framesize} frames using single\
+| | ... | [Cfg] DUT runs IPv4 routing config.
+| | ... | Each DUT uses ${phy_cores} physical core(s) for worker threads.
+| | ... | [Ver] Measure MaxReceivedRate for ${framesize}B frames using single\
| | ... | trial throughput test.
| | ...
-| | [Arguments] | ${framesize} | ${wt} | ${rxq}
+| | ... | *Arguments:*
+| | ... | - framesize - Framesize in Bytes in integer or string (IMIX_v4_1).
+| | ... | Type: integer, string
+| | ... | - phy_cores - Number of physical cores. Type: integer
+| | ... | - rxq - Number of RX queues, default value: ${None}. Type: integer
+| | ...
+| | [Arguments] | ${framesize} | ${phy_cores} | ${rxq}=${None}
| | ...
-| | # Test Variables required for test and test teardown
| | Set Test Variable | ${framesize}
| | ${get_framesize}= | Get Frame Size | ${framesize}
| | ${max_rate}= | Calculate pps | ${s_limit} | ${framesize}
@@ -87,7 +94,7 @@
| | ... | ${False} | ${True}
| | Set Test Variable | ${jumbo_frames}
| | ...
-| | Given Add '${wt}' worker threads and '${rxq}' rxqueues in 3-node single-link circular topology
+| | Given Add worker threads and rxqueues to all DUTs | ${phy_cores} | ${rxq}
| | And Add PCI devices to all DUTs
| | And Run Keyword If | ${get_framesize} < ${1522}
| | ... | Add no multi seg to all DUTs
@@ -99,148 +106,49 @@
*** Test Cases ***
| tc01-64B-1t1c-ethip4-ip4base-eth-4vhostvr1024-2vm-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 routing config with 1 phy\
-| | ... | core, 1 receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 64B frames using single\
-| | ... | trial throughput test.
-| | ...
| | [Tags] | 64B | 1C
-| | ...
-| | [Template] | Check RR for ethip4-ip4base-eth-4vhostvr1024-2vm
-| | framesize=${64} | wt=1 | rxq=1
+| | framesize=${64} | phy_cores=${1}
| tc02-1518B-1t1c-ethip4-ip4base-eth-4vhostvr1024-2vm-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 routing config with 1 phy\
-| | ... | core, 1 receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 1518B frames using single\
-| | ... | trial throughput test.
-| | ...
| | [Tags] | 1518B | 1C
-| | ...
-| | [Template] | Check RR for ethip4-ip4base-eth-4vhostvr1024-2vm
-| | framesize=${1518} | wt=1 | rxq=1
+| | framesize=${1518} | phy_cores=${1}
| tc03-9000B-1t1c-ethip4-ip4base-eth-4vhostvr1024-2vm-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 routing config with 1 phy\
-| | ... | core, 1 receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 9000B frames using single\
-| | ... | trial throughput test.
-| | ...
| | [Tags] | 9000B | 1C
-| | ...
-| | [Template] | Check RR for ethip4-ip4base-eth-4vhostvr1024-2vm
-| | framesize=${9000} | wt=1 | rxq=1
+| | framesize=${9000} | phy_cores=${1}
| tc04-IMIX-1t1c-ethip4-ip4base-eth-4vhostvr1024-2vm-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 routing config with 1 phy\
-| | ... | core, 1 receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for IMIX_v4_1 frames using single\
-| | ... | trial throughput test.
-| | ... | IMIX_v4_1 = (28x64B; 16x570B; 4x1518B)
-| | ...
| | [Tags] | IMIX | 1C
-| | ...
-| | [Template] | Check RR for ethip4-ip4base-eth-4vhostvr1024-2vm
-| | framesize=IMIX_v4_1 | wt=1 | rxq=1
+| | framesize=IMIX_v4_1 | phy_cores=${1}
| tc05-64B-2t2c-ethip4-ip4base-eth-4vhostvr1024-2vm-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 routing config with 2 phy\
-| | ... | cores, 1 receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 64B frames using single\
-| | ... | trial throughput test.
-| | ...
| | [Tags] | 64B | 2C
-| | ...
-| | [Template] | Check RR for ethip4-ip4base-eth-4vhostvr1024-2vm
-| | framesize=${64} | wt=2 | rxq=1
+| | framesize=${64} | phy_cores=${2}
| tc06-1518B-2t2c-ethip4-ip4base-eth-4vhostvr1024-2vm-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 routing config with 2 phy\
-| | ... | cores, 1 receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 1518B frames using single\
-| | ... | trial throughput test.
-| | ...
| | [Tags] | 1518B | 2C
-| | ...
-| | [Template] | Check RR for ethip4-ip4base-eth-4vhostvr1024-2vm
-| | framesize=${1518} | wt=2 | rxq=1
+| | framesize=${1518} | phy_cores=${2}
| tc07-9000B-2t2c-ethip4-ip4base-eth-4vhostvr1024-2vm-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 routing config with 2 phy\
-| | ... | cores, 1 receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 9000B frames using single\
-| | ... | trial throughput test.
-| | ...
| | [Tags] | 9000B | 2C
-| | ...
-| | [Template] | Check RR for ethip4-ip4base-eth-4vhostvr1024-2vm
-| | framesize=${9000} | wt=2 | rxq=1
+| | framesize=${9000} | phy_cores=${2}
| tc08-IMIX-2t2c-ethip4-ip4base-eth-4vhostvr1024-2vm-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 routing config with 2 phy\
-| | ... | cores, 1 receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for IMIX_v4_1 frames using single\
-| | ... | trial throughput test.
-| | ... | IMIX_v4_1 = (28x64B; 16x570B; 4x1518B)
-| | ...
| | [Tags] | IMIX | 2C
-| | ...
-| | [Template] | Check RR for ethip4-ip4base-eth-4vhostvr1024-2vm
-| | framesize=IMIX_v4_1 | wt=2 | rxq=1
+| | framesize=IMIX_v4_1 | phy_cores=${2}
| tc09-64B-4t4c-ethip4-ip4base-eth-4vhostvr1024-2vm-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 routing config with 4 phy\
-| | ... | cores, 2 receive queues per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 64B frames using single\
-| | ... | trial throughput test.
-| | ...
| | [Tags] | 64B | 4C
-| | ...
-| | [Template] | Check RR for ethip4-ip4base-eth-4vhostvr1024-2vm
-| | framesize=${64} | wt=4 | rxq=2
+| | framesize=${64} | phy_cores=${4}
| tc10-1518B-4t4c-ethip4-ip4base-eth-4vhostvr1024-2vm-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 routing config with 4 phy\
-| | ... | cores, 2 receive queues per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 1518B frames using single\
-| | ... | trial throughput test.
-| | ...
| | [Tags] | 1518B | 4C
-| | ...
-| | [Template] | Check RR for ethip4-ip4base-eth-4vhostvr1024-2vm
-| | framesize=${1518} | wt=4 | rxq=2
+| | framesize=${1518} | phy_cores=${4}
| tc11-9000B-4t4c-ethip4-ip4base-eth-4vhostvr1024-2vm-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 routing config with 4 phy\
-| | ... | cores, 2 receive queues per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 9000B frames using single\
-| | ... | trial throughput test.
-| | ...
| | [Tags] | 9000B | 4C
-| | ...
-| | [Template] | Check RR for ethip4-ip4base-eth-4vhostvr1024-2vm
-| | framesize=${9000} | wt=4 | rxq=2
+| | framesize=${9000} | phy_cores=${4}
| tc12-IMIX-4t4c-ethip4-ip4base-eth-4vhostvr1024-2vm-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 routing config with 4 phy\
-| | ... | cores, 2 receive queues per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for IMIX_v4_1 frames using single\
-| | ... | trial throughput test.
-| | ... | IMIX_v4_1 = (28x64B; 16x570B; 4x1518B)
-| | ...
| | [Tags] | IMIX | 4C
-| | ...
-| | [Template] | Check RR for ethip4-ip4base-eth-4vhostvr1024-2vm
-| | framesize=IMIX_v4_1 | wt=4 | rxq=2
+| | framesize=IMIX_v4_1 | phy_cores=${4}
diff --git a/tests/vpp/perf/vm_vhost/10ge2p1x520-ethip4-ip4base-eth-4vhostvr1024-2vm-ndrpdrdisc.robot b/tests/vpp/perf/vm_vhost/10ge2p1x520-ethip4-ip4base-eth-4vhostvr1024-2vm-ndrpdrdisc.robot
index 9c210badd0..3b9959f439 100644
--- a/tests/vpp/perf/vm_vhost/10ge2p1x520-ethip4-ip4base-eth-4vhostvr1024-2vm-ndrpdrdisc.robot
+++ b/tests/vpp/perf/vm_vhost/10ge2p1x520-ethip4-ip4base-eth-4vhostvr1024-2vm-ndrpdrdisc.robot
@@ -28,6 +28,8 @@
| ... | dut1_node=${dut1} | dut1_vm_refs=${dut1_vm_refs}
| ... | dut2_node=${dut2} | dut2_vm_refs=${dut2_vm_refs}
| ...
+| Test Template | Local template
+| ...
| Documentation | *RFC2544: Pkt throughput IPv4 test cases with vhost*
| ...
| ... | *[Top] Network Topologies:* TG-DUT1-DUT2-TG 3-node circular topology
@@ -67,16 +69,10 @@
| ${traffic_profile}= | trex-sl-3n-ethip4-ip4src253
*** Keywords ***
-| Discover NDR or PDR for ethip4-ip4base-eth-4vhostvr1024-2vm
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 routing config with ${wt} thread, ${wt} phy\
-| | ... | core, ${rxq} receive queue per NIC port.
-| | ... | [Ver] Find NDR for ${framesize} frames using binary search start at
-| | ... | 10GE linerate, step 10kpps.
-| | ...
-| | [Arguments] | ${wt} | ${rxq} | ${framesize} | ${min_rate} | ${search_type}
+| Local template
+| | [Arguments] | ${phy_cores} | ${framesize} | ${search_type} | ${rxq}=${None}
+| | ... | ${min_rate}=${10000}
| | ...
-| | # Test Variables required for test and test teardown
| | Set Test Variable | ${framesize}
| | Set Test Variable | ${min_rate}
| | ${get_framesize}= | Get Frame Size | ${framesize}
@@ -92,7 +88,7 @@
| | ... | ${False} | ${True}
| | Set Test Variable | ${jumbo_frames}
| | ...
-| | Given Add '${wt}' worker threads and '${rxq}' rxqueues in 3-node single-link circular topology
+| | Given Add worker threads and rxqueues to all DUTs | ${phy_cores} | ${rxq}
| | And Add PCI devices to all DUTs
| | And Run Keyword If | ${get_framesize} < ${1522}
| | ... | Add no multi seg to all DUTs
@@ -111,223 +107,73 @@
*** Test Cases ***
| tc01-64B-1t1c-ethip4-ip4base-eth-4vhostvr1024-2vm-ndrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 routing config with 1 phy core, \
-| | ... | 1 receive queue per NIC port.
-| | ... | [Ver] Find NDR for 64 Byte frames \
-| | ... | using binary search start at 10GE linerate, step 10kpps.
-| | ...
| | [Tags] | 64B | 1C | NDRDISC
-| | ...
-| | [Template] | Discover NDR or PDR for ethip4-ip4base-eth-4vhostvr1024-2vm
-| | wt=1 | rxq=1 | framesize=${64} | min_rate=${10000} | search_type=NDR
+| | phy_cores=${1} | framesize=${64} | search_type=NDR
| tc02-64B-1t1c-ethip4-ip4base-eth-4vhostvr1024-2vm-pdrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 routing config with 1 phy core, \
-| | ... | 1 receive queue per NIC port.
-| | ... | [Ver] Find PDR for 64 Byte frames \
-| | ... | using binary search start at 10GE linerate, step 10kpps, LT=0.5%.
-| | ...
| | [Tags] | 64B | 1C | PDRDISC | SKIP_PATCH
-| | ...
-| | [Template] | Discover NDR or PDR for ethip4-ip4base-eth-4vhostvr1024-2vm
-| | wt=1 | rxq=1 | framesize=${64} | min_rate=${10000} | search_type=PDR
+| | phy_cores=${1} | framesize=${64} | search_type=PDR
| tc03-1518B-1t1c-ethip4-ip4base-eth-4vhostvr1024-2vm-ndrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 routing config with 1 phy core, \
-| | ... | 1 receive queue per NIC port.
-| | ... | [Ver] Find NDR for 1518 Byte frames \
-| | ... | using binary search start at 10GE linerate, step 10kpps.
-| | ...
| | [Tags] | 1518B | 1C | NDRDISC
-| | ...
-| | [Template] | Discover NDR or PDR for ethip4-ip4base-eth-4vhostvr1024-2vm
-| | wt=1 | rxq=1 | framesize=${1518} | min_rate=${10000} | search_type=NDR
+| | phy_cores=${1} | framesize=${1518} | search_type=NDR
| tc04-1518B-1t1c-ethip4-ip4base-eth-4vhostvr1024-2vm-pdrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 routing config with 1 phy core, \
-| | ... | 1 receive queue per NIC port.
-| | ... | [Ver] Find PDR for 1518 Byte frames \
-| | ... | using binary search start at 10GE linerate, step 10kpps, LT=0.5%.
-| | ...
| | [Tags] | 1518B | 1C | PDRDISC | SKIP_PATCH
-| | ...
-| | [Template] | Discover NDR or PDR for ethip4-ip4base-eth-4vhostvr1024-2vm
-| | wt=1 | rxq=1 | framesize=${1518} | min_rate=${10000} | search_type=PDR
+| | phy_cores=${1} | framesize=${1518} | search_type=PDR
| tc05-IMIX-1t1c-ethip4-ip4base-eth-4vhostvr1024-2vm-ndrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 routing config with 1 phy core, \
-| | ... | 1 receive queue per NIC port.
-| | ... | [Ver] Find NDR for IMIX_v4_1 frame \
-| | ... | size using binary search start at 10GE linerate, step 10kpps.
-| | ... | IMIX_v4_1 = (28x64B;16x570B;4x1518B)
-| | ...
| | [Tags] | IMIX | 1C | NDRDISC
-| | ...
-| | [Template] | Discover NDR or PDR for ethip4-ip4base-eth-4vhostvr1024-2vm
-| | wt=1 | rxq=1 | framesize=IMIX_v4_1 | min_rate=${10000} | search_type=NDR
+| | phy_cores=${1} | framesize=IMIX_v4_1 | search_type=NDR
| tc06-IMIX-1t1c-ethip4-ip4base-eth-4vhostvr1024-2vm-pdrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 routing config with 1 phy core, \
-| | ... | 1 receive queue per NIC port.
-| | ... | [Ver] Find PDR for IMIX_v4_1 frame \
-| | ... | size using binary search start at 10GE linerate, step 10kpps, LT=0.5%.
-| | ... | IMIX_v4_1 = (28x64B;16x570B;4x1518B)
-| | ...
| | [Tags] | IMIX | 1C | PDRDISC | SKIP_PATCH
-| | ...
-| | [Template] | Discover NDR or PDR for ethip4-ip4base-eth-4vhostvr1024-2vm
-| | wt=1 | rxq=1 | framesize=IMIX_v4_1 | min_rate=${10000} | search_type=PDR
+| | phy_cores=${1} | framesize=IMIX_v4_1 | search_type=PDR
| tc07-64B-2t2c-ethip4-ip4base-eth-4vhostvr1024-2vm-ndrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 routing config with 2 phy cores, \
-| | ... | 1 receive queue per NIC port.
-| | ... | [Ver] Find NDR for 64 Byte frames \
-| | ... | using binary search start at 10GE linerate, step 10kpps.
-| | ...
| | [Tags] | 64B | 2C | NDRDISC
-| | ...
-| | [Template] | Discover NDR or PDR for ethip4-ip4base-eth-4vhostvr1024-2vm
-| | wt=2 | rxq=1 | framesize=${64} | min_rate=${10000} | search_type=NDR
+| | phy_cores=${2} | framesize=${64} | search_type=NDR
| tc08-64B-2t2c-ethip4-ip4base-eth-4vhostvr1024-2vm-pdrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 routing config with 2 phy cores, \
-| | ... | 1 receive queue per NIC port.
-| | ... | [Ver] Find PDR for 64 Byte frames \
-| | ... | using binary search start at 10GE linerate, step 10kpps, LT=0.5%.
-| | ...
| | [Tags] | 64B | 2C | PDRDISC | SKIP_PATCH
-| | ...
-| | [Template] | Discover NDR or PDR for ethip4-ip4base-eth-4vhostvr1024-2vm
-| | wt=2 | rxq=1 | framesize=${64} | min_rate=${10000} | search_type=PDR
+| | phy_cores=${2} | framesize=${64} | search_type=PDR
| tc09-1518B-2t2c-ethip4-ip4base-eth-4vhostvr1024-2vm-ndrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 routing config with 2 phy cores, \
-| | ... | 1 receive queue per NIC port.
-| | ... | [Ver] Find NDR for 1518 Byte frames \
-| | ... | using binary search start at 10GE linerate, step 10kpps.
-| | ...
| | [Tags] | 1518B | 2C | NDRDISC | SKIP_PATCH
-| | ...
-| | [Template] | Discover NDR or PDR for ethip4-ip4base-eth-4vhostvr1024-2vm
-| | wt=2 | rxq=1 | framesize=${1518} | min_rate=${10000} | search_type=NDR
+| | phy_cores=${2} | framesize=${1518} | search_type=NDR
| tc10-1518B-2t2c-ethip4-ip4base-eth-4vhostvr1024-2vm-pdrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 routing config with 2 phy cores, \
-| | ... | 1 receive queue per NIC port.
-| | ... | [Ver] Find PDR for 1518 Byte frames \
-| | ... | using binary search start at 10GE linerate, step 10kpps, LT=0.5%.
-| | ...
| | [Tags] | 1518B | 2C | PDRDISC | SKIP_PATCH
-| | ...
-| | [Template] | Discover NDR or PDR for ethip4-ip4base-eth-4vhostvr1024-2vm
-| | wt=2 | rxq=1 | framesize=${1518} | min_rate=${10000} | search_type=PDR
+| | phy_cores=${2} | framesize=${1518} | search_type=PDR
| tc11-IMIX-2t2c-ethip4-ip4base-eth-4vhostvr1024-2vm-ndrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 routing config with 2 phy cores, \
-| | ... | 1 receive queue per NIC port.
-| | ... | [Ver] Find NDR for IMIX_v4_1 frame \
-| | ... | size using binary search start at 10GE linerate, step 10kpps.
-| | ... | IMIX_v4_1 = (28x64B;16x570B;4x1518B)
-| | ...
| | [Tags] | IMIX | 2C | NDRDISC | SKIP_PATCH
-| | ...
-| | [Template] | Discover NDR or PDR for ethip4-ip4base-eth-4vhostvr1024-2vm
-| | wt=2 | rxq=1 | framesize=IMIX_v4_1 | min_rate=${10000} | search_type=NDR
+| | phy_cores=${2} | framesize=IMIX_v4_1 | search_type=NDR
| tc12-IMIX-2t2c-ethip4-ip4base-eth-4vhostvr1024-2vm-pdrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 routing config with 2 phy cores, \
-| | ... | 1 receive queue per NIC port.
-| | ... | [Ver] Find PDR for IMIX_v4_1 frame \
-| | ... | size using binary search start at 10GE linerate, step 10kpps, LT=0.5%.
-| | ... | IMIX_v4_1 = (28x64B;16x570B;4x1518B)
-| | ...
| | [Tags] | IMIX | 2C | PDRDISC | SKIP_PATCH
-| | ...
-| | [Template] | Discover NDR or PDR for ethip4-ip4base-eth-4vhostvr1024-2vm
-| | wt=2 | rxq=1 | framesize=IMIX_v4_1 | min_rate=${10000} | search_type=PDR
+| | phy_cores=${2} | framesize=IMIX_v4_1 | search_type=PDR
| tc13-64B-4t4c-ethip4-ip4base-eth-4vhostvr1024-2vm-ndrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 routing config with 4 phy cores, \
-| | ... | 2 receive queues per NIC port.
-| | ... | [Ver] Find NDR for 64 Byte frames \
-| | ... | using binary search start at 10GE linerate, step 10kpps.
-| | ...
| | [Tags] | 64B | 4C | NDRDISC
-| | ...
-| | [Template] | Discover NDR or PDR for ethip4-ip4base-eth-4vhostvr1024-2vm
-| | wt=4 | rxq=2 | framesize=${64} | min_rate=${10000} | search_type=NDR
+| | phy_cores=${4} | framesize=${64} | search_type=NDR
| tc14-64B-4t4c-ethip4-ip4base-eth-4vhostvr1024-2vm-pdrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 routing config with 4 phy cores, \
-| | ... | 2 receive queues per NIC port.
-| | ... | [Ver] Find PDR for 64 Byte frames \
-| | ... | using binary search start at 10GE linerate, step 10kpps, LT=0.5%.
-| | ...
| | [Tags] | 64B | 4C | PDRDISC | SKIP_PATCH
-| | ...
-| | [Template] | Discover NDR or PDR for ethip4-ip4base-eth-4vhostvr1024-2vm
-| | wt=4 | rxq=2 | framesize=${64} | min_rate=${10000} | search_type=PDR
+| | phy_cores=${4} | framesize=${64} | search_type=PDR
| tc15-1518B-4t4c-ethip4-ip4base-eth-4vhostvr1024-2vm-ndrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 routing config with 4 phy cores, \
-| | ... | 2 receive queues per NIC port.
-| | ... | [Ver] Find NDR for 1518 Byte frames \
-| | ... | using binary search start at 10GE linerate, step 10kpps.
-| | ...
| | [Tags] | 1518B | 4C | NDRDISC | SKIP_PATCH
-| | ...
-| | [Template] | Discover NDR or PDR for ethip4-ip4base-eth-4vhostvr1024-2vm
-| | wt=4 | rxq=2 | framesize=${1518} | min_rate=${10000} | search_type=NDR
+| | phy_cores=${4} | framesize=${1518} | search_type=NDR
| tc16-1518B-4t4c-ethip4-ip4base-eth-4vhostvr1024-2vm-pdrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 routing config with 4 phy cores, \
-| | ... | 2 receive queues per NIC port.
-| | ... | [Ver] Find PDR for 1518 Byte frames \
-| | ... | using binary search start at 10GE linerate, step 10kpps, LT=0.5%.
-| | ...
| | [Tags] | 1518B | 4C | PDRDISC | SKIP_PATCH
-| | ...
-| | [Template] | Discover NDR or PDR for ethip4-ip4base-eth-4vhostvr1024-2vm
-| | wt=4 | rxq=2 | framesize=${1518} | min_rate=${10000} | search_type=PDR
+| | phy_cores=${4} | framesize=${1518} | search_type=PDR
| tc17-IMIX-4t4c-ethip4-ip4base-eth-4vhostvr1024-2vm-ndrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 routing config with 4 phy cores, \
-| | ... | 2 receive queues per NIC port.
-| | ... | [Ver] Find NDR for IMIX_v4_1 frame \
-| | ... | size using binary search start at 10GE linerate, step 10kpps.
-| | ... | IMIX_v4_1 = (28x64B;16x570B;4x1518B)
-| | ...
| | [Tags] | IMIX | 4C | NDRDISC | SKIP_PATCH
-| | ...
-| | [Template] | Discover NDR or PDR for ethip4-ip4base-eth-4vhostvr1024-2vm
-| | wt=4 | rxq=2 | framesize=IMIX_v4_1 | min_rate=${10000} | search_type=NDR
+| | phy_cores=${4} | framesize=IMIX_v4_1 | search_type=NDR
| tc18-IMIX-4t4c-ethip4-ip4base-eth-4vhostvr1024-2vm-pdrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 routing config with 4 phy cores, \
-| | ... | 2 receive queues per NIC port.
-| | ... | [Ver] Find PDR for IMIX_v4_1 frame \
-| | ... | size using binary search start at 10GE linerate, step 10kpps, LT=0.5%.
-| | ... | IMIX_v4_1 = (28x64B;16x570B;4x1518B)
-| | ...
| | [Tags] | IMIX | 4C | PDRDISC | SKIP_PATCH
-| | ...
-| | [Template] | Discover NDR or PDR for ethip4-ip4base-eth-4vhostvr1024-2vm
-| | wt=4 | rxq=2 | framesize=IMIX_v4_1 | min_rate=${10000} | search_type=PDR
+| | phy_cores=${4} | framesize=IMIX_v4_1 | search_type=PDR
diff --git a/tests/vpp/perf/vm_vhost/10ge2p1x520-ethip4vxlan-l2bdbasemaclrn-eth-2vhostvr1024-1vm-mrr.robot b/tests/vpp/perf/vm_vhost/10ge2p1x520-ethip4vxlan-l2bdbasemaclrn-eth-2vhostvr1024-1vm-mrr.robot
index 50ebc956cb..ddf22b6cc3 100644
--- a/tests/vpp/perf/vm_vhost/10ge2p1x520-ethip4vxlan-l2bdbasemaclrn-eth-2vhostvr1024-1vm-mrr.robot
+++ b/tests/vpp/perf/vm_vhost/10ge2p1x520-ethip4vxlan-l2bdbasemaclrn-eth-2vhostvr1024-1vm-mrr.robot
@@ -28,6 +28,8 @@
| ... | dut1_node=${dut1} | dut1_vm_refs=${dut1_vm_refs}
| ... | dut2_node=${dut2} | dut2_vm_refs=${dut2_vm_refs}
| ...
+| Test Template | Local template
+| ...
| Documentation | *Raw results L2BD test cases with VXLANoIPv4
| ... | and vhost*
| ...
@@ -66,16 +68,21 @@
| ${traffic_profile}= | trex-sl-3n-ethip4-ip4src254
*** Keywords ***
-| Check RR for ethip4vxlan-l2bdbasemaclrn-eth-2vhostvr1024-1vm
+| Local template
| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with ${wt} thread, ${wt} phy\
-| | ... | core, ${rxq} receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for ${framesize} frames using single\
+| | ... | [Cfg] DUT runs L2BD switching config.
+| | ... | Each DUT uses ${phy_cores} physical core(s) for worker threads.
+| | ... | [Ver] Measure MaxReceivedRate for ${framesize}B frames using single\
| | ... | trial throughput test.
| | ...
-| | [Arguments] | ${framesize} | ${wt} | ${rxq}
+| | ... | *Arguments:*
+| | ... | - framesize - Framesize in Bytes in integer or string (IMIX_v4_1).
+| | ... | Type: integer, string
+| | ... | - phy_cores - Number of physical cores. Type: integer
+| | ... | - rxq - Number of RX queues, default value: ${None}. Type: integer
+| | ...
+| | [Arguments] | ${framesize} | ${phy_cores} | ${rxq}=${None}
| | ...
-| | # Test Variables required for test and test teardown
| | Set Test Variable | ${framesize}
| | ${get_framesize}= | Get Frame Size | ${framesize}
| | ${max_rate}= | Calculate pps | ${s_limit}
@@ -87,7 +94,7 @@
| | ${jumbo_frames}= | Set Variable If | ${get_framesize} < ${1522}
| | ... | ${False} | ${True}
| | ...
-| | Given Add '${wt}' worker threads and '${rxq}' rxqueues in 3-node single-link circular topology
+| | Given Add worker threads and rxqueues to all DUTs | ${phy_cores} | ${rxq}
| | And Add PCI devices to all DUTs
| | And Run Keyword If | ${get_framesize} < ${1522}
| | ... | Add no multi seg to all DUTs
@@ -107,148 +114,49 @@
*** Test Cases ***
| tc01-64B-1t1c-ethip4vxlan-l2bdbasemaclrn-eth-2vhostvr1024-1vm-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with 1 phy\
-| | ... | core, 1 receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 64B frames using single\
-| | ... | trial throughput test.
-| | ...
| | [Tags] | 64B | 1C
-| | ...
-| | [Template] | Check RR for ethip4vxlan-l2bdbasemaclrn-eth-2vhostvr1024-1vm
-| | framesize=${64} | wt=1 | rxq=1
+| | framesize=${64} | phy_cores=${1}
| tc02-1518B-1t1c-ethip4vxlan-l2bdbasemaclrn-eth-2vhostvr1024-1vm-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with 1 phy\
-| | ... | core, 1 receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 1518B frames using single\
-| | ... | trial throughput test.
-| | ...
| | [Tags] | 1518B | 1C
-| | ...
-| | [Template] | Check RR for ethip4vxlan-l2bdbasemaclrn-eth-2vhostvr1024-1vm
-| | framesize=${1518} | wt=1 | rxq=1
+| | framesize=${1518} | phy_cores=${1}
| tc03-9000B-1t1c-ethip4vxlan-l2bdbasemaclrn-eth-2vhostvr1024-1vm-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with 1 phy\
-| | ... | core, 1 receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 9000B frames using single\
-| | ... | trial throughput test.
-| | ...
| | [Tags] | 9000B | 1C
-| | ...
-| | [Template] | Check RR for ethip4vxlan-l2bdbasemaclrn-eth-2vhostvr1024-1vm
-| | framesize=${9000} | wt=1 | rxq=1
+| | framesize=${9000} | phy_cores=${1}
| tc04-IMIX-1t1c-ethip4vxlan-l2bdbasemaclrn-eth-2vhostvr1024-1vm-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with 1 phy\
-| | ... | core, 1 receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for IMIX_v4_1 frames using single\
-| | ... | trial throughput test.
-| | ... | IMIX_v4_1 = (28x64B; 16x570B; 4x1518B)
-| | ...
| | [Tags] | IMIX | 1C
-| | ...
-| | [Template] | Check RR for ethip4vxlan-l2bdbasemaclrn-eth-2vhostvr1024-1vm
-| | framesize=IMIX_v4_1 | wt=1 | rxq=1
+| | framesize=IMIX_v4_1 | phy_cores=${1}
| tc05-64B-2t2c-ethip4vxlan-l2bdbasemaclrn-eth-2vhostvr1024-1vm-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with 2 phy\
-| | ... | cores, 1 receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 64B frames using single\
-| | ... | trial throughput test.
-| | ...
| | [Tags] | 64B | 2C
-| | ...
-| | [Template] | Check RR for ethip4vxlan-l2bdbasemaclrn-eth-2vhostvr1024-1vm
-| | framesize=${64} | wt=2 | rxq=1
+| | framesize=${64} | phy_cores=${2}
| tc06-1518B-2t2c-ethip4vxlan-l2bdbasemaclrn-eth-2vhostvr1024-1vm-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with 2 phy\
-| | ... | cores, 1 receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 1518B frames using single\
-| | ... | trial throughput test.
-| | ...
| | [Tags] | 1518B | 2C
-| | ...
-| | [Template] | Check RR for ethip4vxlan-l2bdbasemaclrn-eth-2vhostvr1024-1vm
-| | framesize=${1518} | wt=2 | rxq=1
+| | framesize=${1518} | phy_cores=${2}
| tc07-9000B-2t2c-ethip4vxlan-l2bdbasemaclrn-eth-2vhostvr1024-1vm-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with 2 phy\
-| | ... | cores, 1 receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 9000B frames using single\
-| | ... | trial throughput test.
-| | ...
| | [Tags] | 9000B | 2C
-| | ...
-| | [Template] | Check RR for ethip4vxlan-l2bdbasemaclrn-eth-2vhostvr1024-1vm
-| | framesize=${9000} | wt=2 | rxq=1
+| | framesize=${9000} | phy_cores=${2}
| tc08-IMIX-2t2c-ethip4vxlan-l2bdbasemaclrn-eth-2vhostvr1024-1vm-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with 2 phy\
-| | ... | cores, 1 receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for IMIX_v4_1 frames using single\
-| | ... | trial throughput test.
-| | ... | IMIX_v4_1 = (28x64B; 16x570B; 4x1518B)
-| | ...
| | [Tags] | IMIX | 2C
-| | ...
-| | [Template] | Check RR for ethip4vxlan-l2bdbasemaclrn-eth-2vhostvr1024-1vm
-| | framesize=IMIX_v4_1 | wt=2 | rxq=1
+| | framesize=IMIX_v4_1 | phy_cores=${2}
| tc09-64B-4t4c-ethip4vxlan-l2bdbasemaclrn-eth-2vhostvr1024-1vm-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with 4 phy\
-| | ... | cores, 2 receive queues per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 64B frames using single\
-| | ... | trial throughput test.
-| | ...
| | [Tags] | 64B | 4C
-| | ...
-| | [Template] | Check RR for ethip4vxlan-l2bdbasemaclrn-eth-2vhostvr1024-1vm
-| | framesize=${64} | wt=4 | rxq=2
+| | framesize=${64} | phy_cores=${4}
| tc10-1518B-4t4c-ethip4vxlan-l2bdbasemaclrn-eth-2vhostvr1024-1vm-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with 4 phy\
-| | ... | cores, 2 receive queues per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 1518B frames using single\
-| | ... | trial throughput test.
-| | ...
| | [Tags] | 1518B | 4C
-| | ...
-| | [Template] | Check RR for ethip4vxlan-l2bdbasemaclrn-eth-2vhostvr1024-1vm
-| | framesize=${1518} | wt=4 | rxq=2
+| | framesize=${1518} | phy_cores=${4}
| tc11-9000B-4t4c-ethip4vxlan-l2bdbasemaclrn-eth-2vhostvr1024-1vm-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with 4 phy\
-| | ... | cores, 2 receive queues per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 9000B frames using single\
-| | ... | trial throughput test.
-| | ...
| | [Tags] | 9000B | 4C
-| | ...
-| | [Template] | Check RR for ethip4vxlan-l2bdbasemaclrn-eth-2vhostvr1024-1vm
-| | framesize=${9000} | wt=4 | rxq=2
+| | framesize=${9000} | phy_cores=${4}
| tc12-IMIX-4t4c-ethip4vxlan-l2bdbasemaclrn-eth-2vhostvr1024-1vm-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with 4 phy\
-| | ... | cores, 2 receive queues per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for IMIX_v4_1 frames using single\
-| | ... | trial throughput test.
-| | ... | IMIX_v4_1 = (28x64B; 16x570B; 4x1518B)
-| | ...
| | [Tags] | IMIX | 4C
-| | ...
-| | [Template] | Check RR for ethip4vxlan-l2bdbasemaclrn-eth-2vhostvr1024-1vm
-| | framesize=IMIX_v4_1 | wt=4 | rxq=2
+| | framesize=IMIX_v4_1 | phy_cores=${4}
diff --git a/tests/vpp/perf/vm_vhost/10ge2p1x520-ethip4vxlan-l2bdbasemaclrn-eth-2vhostvr1024-1vm-ndrpdrdisc.robot b/tests/vpp/perf/vm_vhost/10ge2p1x520-ethip4vxlan-l2bdbasemaclrn-eth-2vhostvr1024-1vm-ndrpdrdisc.robot
index 0976e69f11..8ede0cf687 100644
--- a/tests/vpp/perf/vm_vhost/10ge2p1x520-ethip4vxlan-l2bdbasemaclrn-eth-2vhostvr1024-1vm-ndrpdrdisc.robot
+++ b/tests/vpp/perf/vm_vhost/10ge2p1x520-ethip4vxlan-l2bdbasemaclrn-eth-2vhostvr1024-1vm-ndrpdrdisc.robot
@@ -89,7 +89,7 @@
| | ${threshold}= | Set Variable | ${min_rate}
| | ${dut1_vm_refs}= | Create Dictionary
| | ${dut2_vm_refs}= | Create Dictionary
-| | Given Add '1' worker threads and '1' rxqueues in 3-node single-link circular topology
+| | Given Add worker threads and rxqueues to all DUTs | 1
| | And Add PCI devices to all DUTs
| | And Add no multi seg to all DUTs
| | And Apply startup configuration on all VPP DUTs
@@ -122,7 +122,7 @@
| | ${threshold}= | Set Variable | ${min_rate}
| | ${dut1_vm_refs}= | Create Dictionary
| | ${dut2_vm_refs}= | Create Dictionary
-| | Given Add '1' worker threads and '1' rxqueues in 3-node single-link circular topology
+| | Given Add worker threads and rxqueues to all DUTs | 1
| | And Add PCI devices to all DUTs
| | And Add no multi seg to all DUTs
| | And Apply startup configuration on all VPP DUTs
@@ -156,7 +156,7 @@
| | ${threshold}= | Set Variable | ${min_rate}
| | ${dut1_vm_refs}= | Create Dictionary
| | ${dut2_vm_refs}= | Create Dictionary
-| | Given Add '1' worker threads and '1' rxqueues in 3-node single-link circular topology
+| | Given Add worker threads and rxqueues to all DUTs | 1
| | And Add PCI devices to all DUTs
| | And Apply startup configuration on all VPP DUTs
| | When Initialize L2 bridge domains with Vhost-User and VXLANoIPv4 in 3-node circular topology
@@ -188,7 +188,7 @@
| | ${threshold}= | Set Variable | ${min_rate}
| | ${dut1_vm_refs}= | Create Dictionary
| | ${dut2_vm_refs}= | Create Dictionary
-| | Given Add '1' worker threads and '1' rxqueues in 3-node single-link circular topology
+| | Given Add worker threads and rxqueues to all DUTs | 1
| | And Add PCI devices to all DUTs
| | And Apply startup configuration on all VPP DUTs
| | When Initialize L2 bridge domains with Vhost-User and VXLANoIPv4 in 3-node circular topology
@@ -223,7 +223,7 @@
| | ${threshold}= | Set Variable | ${min_rate}
| | ${dut1_vm_refs}= | Create Dictionary
| | ${dut2_vm_refs}= | Create Dictionary
-| | Given Add '1' worker threads and '1' rxqueues in 3-node single-link circular topology
+| | Given Add worker threads and rxqueues to all DUTs | 1
| | And Add PCI devices to all DUTs
| | And Apply startup configuration on all VPP DUTs
| | When Initialize L2 bridge domains with Vhost-User and VXLANoIPv4 in 3-node circular topology
@@ -257,7 +257,7 @@
| | ${threshold}= | Set Variable | ${min_rate}
| | ${dut1_vm_refs}= | Create Dictionary
| | ${dut2_vm_refs}= | Create Dictionary
-| | Given Add '1' worker threads and '1' rxqueues in 3-node single-link circular topology
+| | Given Add worker threads and rxqueues to all DUTs | 1
| | And Add PCI devices to all DUTs
| | And Apply startup configuration on all VPP DUTs
| | When Initialize L2 bridge domains with Vhost-User and VXLANoIPv4 in 3-node circular topology
@@ -290,7 +290,7 @@
| | ${threshold}= | Set Variable | ${min_rate}
| | ${dut1_vm_refs}= | Create Dictionary
| | ${dut2_vm_refs}= | Create Dictionary
-| | Given Add '2' worker threads and '1' rxqueues in 3-node single-link circular topology
+| | Given Add worker threads and rxqueues to all DUTs | 2
| | And Add PCI devices to all DUTs
| | And Add no multi seg to all DUTs
| | And Apply startup configuration on all VPP DUTs
@@ -323,7 +323,7 @@
| | ${threshold}= | Set Variable | ${min_rate}
| | ${dut1_vm_refs}= | Create Dictionary
| | ${dut2_vm_refs}= | Create Dictionary
-| | Given Add '2' worker threads and '1' rxqueues in 3-node single-link circular topology
+| | Given Add worker threads and rxqueues to all DUTs | 2
| | And Add PCI devices to all DUTs
| | And Add no multi seg to all DUTs
| | And Apply startup configuration on all VPP DUTs
@@ -357,7 +357,7 @@
| | ${threshold}= | Set Variable | ${min_rate}
| | ${dut1_vm_refs}= | Create Dictionary
| | ${dut2_vm_refs}= | Create Dictionary
-| | Given Add '2' worker threads and '1' rxqueues in 3-node single-link circular topology
+| | Given Add worker threads and rxqueues to all DUTs | 2
| | And Add PCI devices to all DUTs
| | And Apply startup configuration on all VPP DUTs
| | When Initialize L2 bridge domains with Vhost-User and VXLANoIPv4 in 3-node circular topology
@@ -389,7 +389,7 @@
| | ${threshold}= | Set Variable | ${min_rate}
| | ${dut1_vm_refs}= | Create Dictionary
| | ${dut2_vm_refs}= | Create Dictionary
-| | Given Add '2' worker threads and '1' rxqueues in 3-node single-link circular topology
+| | Given Add worker threads and rxqueues to all DUTs | 2
| | And Add PCI devices to all DUTs
| | And Apply startup configuration on all VPP DUTs
| | When Initialize L2 bridge domains with Vhost-User and VXLANoIPv4 in 3-node circular topology
@@ -424,7 +424,7 @@
| | ${threshold}= | Set Variable | ${min_rate}
| | ${dut1_vm_refs}= | Create Dictionary
| | ${dut2_vm_refs}= | Create Dictionary
-| | Given Add '2' worker threads and '1' rxqueues in 3-node single-link circular topology
+| | Given Add worker threads and rxqueues to all DUTs | 2
| | And Add PCI devices to all DUTs
| | And Apply startup configuration on all VPP DUTs
| | When Initialize L2 bridge domains with Vhost-User and VXLANoIPv4 in 3-node circular topology
@@ -458,7 +458,7 @@
| | ${threshold}= | Set Variable | ${min_rate}
| | ${dut1_vm_refs}= | Create Dictionary
| | ${dut2_vm_refs}= | Create Dictionary
-| | Given Add '2' worker threads and '1' rxqueues in 3-node single-link circular topology
+| | Given Add worker threads and rxqueues to all DUTs | 2
| | And Add PCI devices to all DUTs
| | And Apply startup configuration on all VPP DUTs
| | When Initialize L2 bridge domains with Vhost-User and VXLANoIPv4 in 3-node circular topology
@@ -491,7 +491,7 @@
| | ${threshold}= | Set Variable | ${min_rate}
| | ${dut1_vm_refs}= | Create Dictionary
| | ${dut2_vm_refs}= | Create Dictionary
-| | Given Add '4' worker threads and '2' rxqueues in 3-node single-link circular topology
+| | Given Add worker threads and rxqueues to all DUTs | 4
| | And Add PCI devices to all DUTs
| | And Add no multi seg to all DUTs
| | And Apply startup configuration on all VPP DUTs
@@ -524,7 +524,7 @@
| | ${threshold}= | Set Variable | ${min_rate}
| | ${dut1_vm_refs}= | Create Dictionary
| | ${dut2_vm_refs}= | Create Dictionary
-| | Given Add '4' worker threads and '2' rxqueues in 3-node single-link circular topology
+| | Given Add worker threads and rxqueues to all DUTs | 4
| | And Add PCI devices to all DUTs
| | And Add no multi seg to all DUTs
| | And Apply startup configuration on all VPP DUTs
@@ -558,7 +558,7 @@
| | ${threshold}= | Set Variable | ${min_rate}
| | ${dut1_vm_refs}= | Create Dictionary
| | ${dut2_vm_refs}= | Create Dictionary
-| | Given Add '4' worker threads and '2' rxqueues in 3-node single-link circular topology
+| | Given Add worker threads and rxqueues to all DUTs | 4
| | And Add PCI devices to all DUTs
| | And Apply startup configuration on all VPP DUTs
| | When Initialize L2 bridge domains with Vhost-User and VXLANoIPv4 in 3-node circular topology
@@ -590,7 +590,7 @@
| | ${threshold}= | Set Variable | ${min_rate}
| | ${dut1_vm_refs}= | Create Dictionary
| | ${dut2_vm_refs}= | Create Dictionary
-| | Given Add '4' worker threads and '2' rxqueues in 3-node single-link circular topology
+| | Given Add worker threads and rxqueues to all DUTs | 4
| | And Add PCI devices to all DUTs
| | And Apply startup configuration on all VPP DUTs
| | When Initialize L2 bridge domains with Vhost-User and VXLANoIPv4 in 3-node circular topology
@@ -625,7 +625,7 @@
| | ${threshold}= | Set Variable | ${min_rate}
| | ${dut1_vm_refs}= | Create Dictionary
| | ${dut2_vm_refs}= | Create Dictionary
-| | Given Add '4' worker threads and '2' rxqueues in 3-node single-link circular topology
+| | Given Add worker threads and rxqueues to all DUTs | 4
| | And Add PCI devices to all DUTs
| | And Apply startup configuration on all VPP DUTs
| | When Initialize L2 bridge domains with Vhost-User and VXLANoIPv4 in 3-node circular topology
@@ -659,7 +659,7 @@
| | ${threshold}= | Set Variable | ${min_rate}
| | ${dut1_vm_refs}= | Create Dictionary
| | ${dut2_vm_refs}= | Create Dictionary
-| | Given Add '4' worker threads and '2' rxqueues in 3-node single-link circular topology
+| | Given Add worker threads and rxqueues to all DUTs | 4
| | And Add PCI devices to all DUTs
| | And Apply startup configuration on all VPP DUTs
| | When Initialize L2 bridge domains with Vhost-User and VXLANoIPv4 in 3-node circular topology
diff --git a/tests/vpp/perf/vm_vhost/10ge2p1x710-1lbdpdk-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-mrr.robot b/tests/vpp/perf/vm_vhost/10ge2p1x710-1lbdpdk-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-mrr.robot
index 1a6af04e33..2e46ee0976 100644
--- a/tests/vpp/perf/vm_vhost/10ge2p1x710-1lbdpdk-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-mrr.robot
+++ b/tests/vpp/perf/vm_vhost/10ge2p1x710-1lbdpdk-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-mrr.robot
@@ -28,6 +28,8 @@
| ... | dut1_node=${dut1} | dut1_vm_refs=${dut1_vm_refs}
| ... | dut2_node=${dut2} | dut2_vm_refs=${dut2_vm_refs}
| ...
+| Test Template | Local template
+| ...
| Documentation | *Raw results L2BD test cases with vhost and dpdk link bonding*
| ...
| ... | *[Top] Network Topologies:* TG-DUT1-DUT2-TG 3-node circular topology
@@ -71,16 +73,21 @@
| ${traffic_profile}= | trex-sl-3n-ethip4-ip4src254
*** Keywords ***
-| Check RR for 1lbdpdk-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm
+| Local template
| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with ${wt} thread, ${wt} phy\
-| | ... | core, ${rxq} receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for ${framesize} frames using single\
+| | ... | [Cfg] DUT runs L2BD switching config.
+| | ... | Each DUT uses ${phy_cores} physical core(s) for worker threads.
+| | ... | [Ver] Measure MaxReceivedRate for ${framesize}B frames using single\
| | ... | trial throughput test.
| | ...
-| | [Arguments] | ${framesize} | ${wt} | ${rxq}
+| | ... | *Arguments:*
+| | ... | - framesize - Framesize in Bytes in integer or string (IMIX_v4_1).
+| | ... | Type: integer, string
+| | ... | - phy_cores - Number of physical cores. Type: integer
+| | ... | - rxq - Number of RX queues, default value: ${None}. Type: integer
+| | ...
+| | [Arguments] | ${framesize} | ${phy_cores} | ${rxq}=${None}
| | ...
-| | # Test Variables required for test and test teardown
| | Set Test Variable | ${framesize}
| | ${get_framesize}= | Get Frame Size | ${framesize}
| | ${max_rate}= | Calculate pps | ${s_limit}
@@ -92,7 +99,7 @@
| | ${jumbo_frames}= | Set Variable If
| | ... | ${get_framesize + ${vlan_overhead}} < ${1522} | ${False} | ${True}
| | ...
-| | Given Add '${wt}' worker threads and '${rxq}' rxqueues in 3-node single-link circular topology
+| | Given Add worker threads and rxqueues to all DUTs | ${phy_cores} | ${rxq}
| | And Add PCI devices to all DUTs
| | And Add VLAN Strip Offload switch off between DUTs in 3-node single link topology
| | And Add DPDK bonded Ethernet interfaces to DUTs in 3-node single link topology
@@ -116,148 +123,49 @@
*** Test Cases ***
| tc01-64B-1t1c-1lbdpdk-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with 1 phy\
-| | ... | core, 1 receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 64B frames using single\
-| | ... | trial throughput test.
-| | ...
| | [Tags] | 64B | 1C
-| | ...
-| | [Template] | Check RR for 1lbdpdk-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm
-| | framesize=${64} | wt=1 | rxq=1
+| | framesize=${64} | phy_cores=${1}
| tc02-1518B-1t1c-1lbdpdk-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with 1 phy\
-| | ... | core, 1 receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 1518B frames using single\
-| | ... | trial throughput test.
-| | ...
| | [Tags] | 1518B | 1C
-| | ...
-| | [Template] | Check RR for 1lbdpdk-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm
-| | framesize=${1518} | wt=1 | rxq=1
+| | framesize=${1518} | phy_cores=${1}
| tc03-9000B-1t1c-1lbdpdk-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with 1 phy\
-| | ... | core, 1 receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 9000B frames using single\
-| | ... | trial throughput test.
-| | ...
| | [Tags] | 9000B | 1C
-| | ...
-| | [Template] | Check RR for 1lbdpdk-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm
-| | framesize=${9000} | wt=1 | rxq=1
+| | framesize=${9000} | phy_cores=${1}
| tc04-IMIX-1t1c-1lbdpdk-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with 1 phy\
-| | ... | core, 1 receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for IMIX_v4_1 frames using single\
-| | ... | trial throughput test.
-| | ... | IMIX_v4_1 = (28x64B; 16x570B; 4x1518B)
-| | ...
| | [Tags] | IMIX | 1C
-| | ...
-| | [Template] | Check RR for 1lbdpdk-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm
-| | framesize=IMIX_v4_1 | wt=1 | rxq=1
+| | framesize=IMIX_v4_1 | phy_cores=${1}
| tc05-64B-2t2c-1lbdpdk-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with 2 phy\
-| | ... | cores, 1 receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 64B frames using single\
-| | ... | trial throughput test.
-| | ...
| | [Tags] | 64B | 2C
-| | ...
-| | [Template] | Check RR for 1lbdpdk-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm
-| | framesize=${64} | wt=2 | rxq=1
+| | framesize=${64} | phy_cores=${2}
| tc06-1518B-2t2c-1lbdpdk-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with 2 phy\
-| | ... | cores, 1 receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 1518B frames using single\
-| | ... | trial throughput test.
-| | ...
| | [Tags] | 1518B | 2C
-| | ...
-| | [Template] | Check RR for 1lbdpdk-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm
-| | framesize=${1518} | wt=2 | rxq=1
+| | framesize=${1518} | phy_cores=${2}
| tc07-9000B-2t2c-1lbdpdk-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with 2 phy\
-| | ... | cores, 1 receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 9000B frames using single\
-| | ... | trial throughput test.
-| | ...
| | [Tags] | 9000B | 2C
-| | ...
-| | [Template] | Check RR for 1lbdpdk-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm
-| | framesize=${9000} | wt=2 | rxq=1
+| | framesize=${9000} | phy_cores=${2}
| tc08-IMIX-2t2c-1lbdpdk-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with 2 phy\
-| | ... | cores, 1 receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for IMIX_v4_1 frames using single\
-| | ... | trial throughput test.
-| | ... | IMIX_v4_1 = (28x64B; 16x570B; 4x1518B)
-| | ...
| | [Tags] | IMIX | 2C
-| | ...
-| | [Template] | Check RR for 1lbdpdk-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm
-| | framesize=IMIX_v4_1 | wt=2 | rxq=1
+| | framesize=IMIX_v4_1 | phy_cores=${2}
| tc09-64B-4t4c-1lbdpdk-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with 4 phy\
-| | ... | cores, 2 receive queues per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 64B frames using single\
-| | ... | trial throughput test.
-| | ...
| | [Tags] | 64B | 4C
-| | ...
-| | [Template] | Check RR for 1lbdpdk-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm
-| | framesize=${64} | wt=4 | rxq=2
+| | framesize=${64} | phy_cores=${4}
| tc10-1518B-4t4c-1lbdpdk-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with 4 phy\
-| | ... | cores, 2 receive queues per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 1518B frames using single\
-| | ... | trial throughput test.
-| | ...
| | [Tags] | 1518B | 4C
-| | ...
-| | [Template] | Check RR for 1lbdpdk-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm
-| | framesize=${1518} | wt=4 | rxq=2
+| | framesize=${1518} | phy_cores=${4}
| tc11-9000B-4t4c-1lbdpdk-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with 4 phy\
-| | ... | cores, 2 receive queues per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 9000B frames using single\
-| | ... | trial throughput test.
-| | ...
| | [Tags] | 9000B | 4C
-| | ...
-| | [Template] | Check RR for 1lbdpdk-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm
-| | framesize=${9000} | wt=4 | rxq=2
+| | framesize=${9000} | phy_cores=${4}
| tc12-IMIX-4t4c-1lbdpdk-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with 4 phy\
-| | ... | cores, 2 receive queues per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for IMIX_v4_1 frames using single\
-| | ... | trial throughput test.
-| | ... | IMIX_v4_1 = (28x64B; 16x570B; 4x1518B)
-| | ...
| | [Tags] | IMIX | 4C
-| | ...
-| | [Template] | Check RR for 1lbdpdk-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm
-| | framesize=IMIX_v4_1 | wt=4 | rxq=2
+| | framesize=IMIX_v4_1 | phy_cores=${4}
diff --git a/tests/vpp/perf/vm_vhost/10ge2p1x710-1lbdpdk-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-ndrpdrdisc.robot b/tests/vpp/perf/vm_vhost/10ge2p1x710-1lbdpdk-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-ndrpdrdisc.robot
index 0a826c11cf..eba40b9017 100644
--- a/tests/vpp/perf/vm_vhost/10ge2p1x710-1lbdpdk-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-ndrpdrdisc.robot
+++ b/tests/vpp/perf/vm_vhost/10ge2p1x710-1lbdpdk-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-ndrpdrdisc.robot
@@ -29,6 +29,8 @@
| ... | dut1_node=${dut1} | dut1_vm_refs=${dut1_vm_refs}
| ... | dut2_node=${dut2} | dut2_vm_refs=${dut2_vm_refs}
| ...
+| Test Template | Local template
+| ...
| Documentation | *RFC2544: Packet throughput L2BD test cases with vhost and
| ... | dpdk link bonding*
| ...
@@ -79,16 +81,10 @@
| ${traffic_profile}= | trex-sl-3n-ethip4-ip4src254
*** Keywords ***
-| Discover NDR or PDR for 1lbdpdk-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with ${wt} thread, ${wt} phy\
-| | ... | core, ${rxq} receive queue per NIC port.
-| | ... | [Ver] Discover NDR or PDR for ${framesize} frames using xxx\
-| | ... | trial throughput test.
-| | ...
-| | [Arguments] | ${wt} | ${rxq} | ${framesize} | ${min_rate} | ${search_type}
+| Local template
+| | [Arguments] | ${phy_cores} | ${framesize} | ${search_type} | ${rxq}=${None}
+| | ... | ${min_rate}=${10000}
| | ...
-| | # Test Variables required for test and test teardown
| | Set Test Variable | ${framesize}
| | Set Test Variable | ${min_rate}
| | ${get_framesize}= | Get Frame Size | ${framesize}
@@ -104,7 +100,7 @@
| | ${jumbo_frames}= | Set Variable If
| | ... | ${get_framesize + ${vlan_overhead}} < ${1522} | ${False} | ${True}
| | ...
-| | Given Add '${wt}' worker threads and '${rxq}' rxqueues in 3-node single-link circular topology
+| | Given Add worker threads and rxqueues to all DUTs | ${phy_cores} | ${rxq}
| | And Add PCI devices to all DUTs
| | And Add VLAN Strip Offload switch off between DUTs in 3-node single link topology
| | And Add DPDK bonded Ethernet interfaces to DUTs in 3-node single link topology
@@ -135,295 +131,97 @@
*** Test Cases ***
| tc01-64B-1t1c-1lbdpdk-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-ndrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with 1 phy core,\
-| | ... | 1 receive queue per NIC port.
-| | ... | [Ver] Find NDR for 64 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 10kpps.
-| | ...
| | [Tags] | 64B | 1C | NDRDISC
-| | ...
-| | [Template] | Discover NDR or PDR for 1lbdpdk-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm
-| | wt=1 | rxq=1 | framesize=${64} | min_rate=${10000} | search_type=NDR
+| | phy_cores=${1} | framesize=${64} | search_type=NDR
| tc02-64B-1t1c-1lbdpdk-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-pdrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with 1 phy core,\
-| | ... | 1 receive queue per NIC port.
-| | ... | [Ver] Find PDR for 64 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 10kpps, LT=0.5%.
-| | ...
| | [Tags] | 64B | 1C | PDRDISC | SKIP_PATCH
-| | ...
-| | [Template] | Discover NDR or PDR for 1lbdpdk-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm
-| | wt=1 | rxq=1 | framesize=${64} | min_rate=${10000} | search_type=PDR
+| | phy_cores=${1} | framesize=${64} | search_type=PDR
| tc03-1518B-1t1c-1lbdpdk-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-ndrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with 1 phy core,\
-| | ... | 1 receive queue per NIC port.
-| | ... | [Ver] Find NDR for 1518 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 10kpps.
-| | ...
| | [Tags] | 1518B | 1C | NDRDISC
-| | ...
-| | [Template] | Discover NDR or PDR for 1lbdpdk-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm
-| | wt=1 | rxq=1 | framesize=${1518} | min_rate=${10000} | search_type=NDR
+| | phy_cores=${1} | framesize=${1518} | search_type=NDR
| tc04-1518B-1t1c-1lbdpdk-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-pdrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with 1 phy core,\
-| | ... | 1 receive queue per NIC port.
-| | ... | [Ver] Find PDR for 1518 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 10kpps, LT=0.5%.
-| | ...
| | [Tags] | 1518B | 1C | PDRDISC | SKIP_PATCH
-| | ...
-| | [Template] | Discover NDR or PDR for 1lbdpdk-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm
-| | wt=1 | rxq=1 | framesize=${1518} | min_rate=${10000} | search_type=PDR
+| | phy_cores=${1} | framesize=${1518} | search_type=PDR
| tc05-9000B-1t1c-1lbdpdk-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-ndrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with 1 phy core,\
-| | ... | 1 receive queue per NIC port.
-| | ... | [Ver] Find NDR for 9000 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 10kpps.
-| | ...
| | [Tags] | 9000B | 1C | NDRDISC
-| | ...
-| | [Template] | Discover NDR or PDR for 1lbdpdk-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm
-| | wt=1 | rxq=1 | framesize=${9000} | min_rate=${10000} | search_type=NDR
+| | phy_cores=${1} | framesize=${9000} | search_type=NDR
| tc06-9000B-1t1c-1lbdpdk-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-pdrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with 1 phy core,\
-| | ... | 1 receive queue per NIC port.
-| | ... | [Ver] Find PDR for 9000 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 10kpps, LT=0.5%.
-| | ...
| | [Tags] | 9000B | 1C | PDRDISC | SKIP_PATCH
-| | ...
-| | [Template] | Discover NDR or PDR for 1lbdpdk-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm
-| | wt=1 | rxq=1 | framesize=${9000} | min_rate=${10000} | search_type=PDR
+| | phy_cores=${1} | framesize=${9000} | search_type=PDR
| tc07-IMIX-1t1c-1lbdpdk-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-ndrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with 1 phy core,\
-| | ... | 1 receive queue per NIC port.
-| | ... | [Ver] Find NDR for IMIX_v4_1 framesize using binary search start at\
-| | ... | 10GE linerate, step 10kpps.
-| | ... | IMIX_v4_1 = (28x64B; 16x570B; 4x1518B)
-| | ...
| | [Tags] | IMIX | 1C | NDRDISC
-| | ...
-| | [Template] | Discover NDR or PDR for 1lbdpdk-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm
-| | wt=1 | rxq=1 | framesize=IMIX_v4_1 | min_rate=${10000} | search_type=NDR
+| | phy_cores=${1} | framesize=IMIX_v4_1 | search_type=NDR
| tc08-IMIX-1t1c-1lbdpdk-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-pdrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with 1 phy core,\
-| | ... | 1 receive queue per NIC port.
-| | ... | [Ver] Find PDR for IMIX_v4_1 framesize using binary search start at\
-| | ... | 10GE linerate, step 10kpps, LT=0.5%.
-| | ... | IMIX_v4_1 = (28x64B; 16x570B; 4x1518B)
-| | ...
| | [Tags] | IMIX | 1C | PDRDISC | SKIP_PATCH
-| | ...
-| | [Template] | Discover NDR or PDR for 1lbdpdk-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm
-| | wt=1 | rxq=1 | framesize=IMIX_v4_1 | min_rate=${10000} | search_type=PDR
+| | phy_cores=${1} | framesize=IMIX_v4_1 | search_type=PDR
| tc09-64B-2t2c-1lbdpdk-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-ndrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with 2 phy cores,\
-| | ... | 1 receive queue per NIC port.
-| | ... | [Ver] Find NDR for 64 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 10kpps.
-| | ...
| | [Tags] | 64B | 2C | NDRDISC
-| | ...
-| | [Template] | Discover NDR or PDR for 1lbdpdk-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm
-| | wt=2 | rxq=1 | framesize=${64} | min_rate=${10000} | search_type=NDR
+| | phy_cores=${2} | framesize=${64} | search_type=NDR
| tc10-64B-2t2c-1lbdpdk-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-pdrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with 2 phy cores,\
-| | ... | 1 receive queue per NIC port.
-| | ... | [Ver] Find PDR for 64 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 10kpps, LT=0.5%.
-| | ...
| | [Tags] | 64B | 2C | PDRDISC | SKIP_PATCH
-| | ...
-| | [Template] | Discover NDR or PDR for 1lbdpdk-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm
-| | wt=2 | rxq=1 | framesize=${64} | min_rate=${10000} | search_type=PDR
+| | phy_cores=${2} | framesize=${64} | search_type=PDR
| tc11-1518B-2t2c-1lbdpdk-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-ndrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with 2 phy cores,\
-| | ... | 1 receive queue per NIC port.
-| | ... | [Ver] Find NDR for 1518 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 10kpps.
-| | ...
| | [Tags] | 1518B | 2C | NDRDISC | SKIP_PATCH
-| | ...
-| | [Template] | Discover NDR or PDR for 1lbdpdk-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm
-| | wt=2 | rxq=1 | framesize=${1518} | min_rate=${10000} | search_type=NDR
+| | phy_cores=${2} | framesize=${1518} | search_type=NDR
| tc12-1518B-2t2c-1lbdpdk-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-pdrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with 2 phy cores,\
-| | ... | 1 receive queue per NIC port.
-| | ... | [Ver] Find PDR for 1518 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 10kpps, LT=0.5%.
-| | ...
| | [Tags] | 1518B | 2C | PDRDISC | SKIP_PATCH
-| | ...
-| | [Template] | Discover NDR or PDR for 1lbdpdk-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm
-| | wt=2 | rxq=1 | framesize=${1518} | min_rate=${10000} | search_type=PDR
+| | phy_cores=${2} | framesize=${1518} | search_type=PDR
| tc13-9000B-2t2c-1lbdpdk-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-ndrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with 2 phy cores,\
-| | ... | 1 receive queue per NIC port.
-| | ... | [Ver] Find NDR for 9000 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 10kpps.
-| | ...
| | [Tags] | 9000B | 2C | NDRDISC | SKIP_PATCH
-| | ...
-| | [Template] | Discover NDR or PDR for 1lbdpdk-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm
-| | wt=2 | rxq=1 | framesize=${9000} | min_rate=${10000} | search_type=NDR
+| | phy_cores=${2} | framesize=${9000} | search_type=NDR
| tc14-9000B-2t2c-1lbdpdk-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-pdrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with 2 phy cores,\
-| | ... | 1 receive queue per NIC port.
-| | ... | [Ver] Find PDR for 9000 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 10kpps, LT=0.5%.
-| | ...
| | [Tags] | 9000B | 2C | PDRDISC | SKIP_PATCH
-| | ...
-| | [Template] | Discover NDR or PDR for 1lbdpdk-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm
-| | wt=2 | rxq=1 | framesize=${9000} | min_rate=${10000} | search_type=PDR
+| | phy_cores=${2} | framesize=${9000} | search_type=PDR
| tc15-IMIX-2t2c-1lbdpdk-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-ndrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with 2 phy cores,\
-| | ... | 1 receive queue per NIC port.
-| | ... | [Ver] Find NDR for IMIX_v4_1 framesize using binary search start at\
-| | ... | 10GE linerate, step 10kpps.
-| | ... | IMIX_v4_1 = (28x64B; 16x570B; 4x1518B)
-| | ...
| | [Tags] | IMIX | 2C | NDRDISC | SKIP_PATCH
-| | ...
-| | [Template] | Discover NDR or PDR for 1lbdpdk-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm
-| | wt=2 | rxq=1 | framesize=IMIX_v4_1 | min_rate=${10000} | search_type=NDR
+| | phy_cores=${2} | framesize=IMIX_v4_1 | search_type=NDR
| tc16-IMIX-2t2c-1lbdpdk-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-pdrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with 2 phy cores,\
-| | ... | 1 receive queue per NIC port.
-| | ... | [Ver] Find PDR for IMIX_v4_1 framesize using binary search start at\
-| | ... | 10GE linerate, step 10kpps.
-| | ... | IMIX_v4_1 = (28x64B; 16x570B; 4x1518B)
-| | ...
| | [Tags] | IMIX | 2C | PDRDISC | SKIP_PATCH
-| | ...
-| | [Template] | Discover NDR or PDR for 1lbdpdk-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm
-| | wt=2 | rxq=1 | framesize=IMIX_v4_1 | min_rate=${10000} | search_type=PDR
+| | phy_cores=${2} | framesize=IMIX_v4_1 | search_type=PDR
| tc17-64B-4t4c-1lbdpdk-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-ndrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with 4 phy cores,\
-| | ... | 2 receive queues per NIC port.
-| | ... | [Ver] Find NDR for 64 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 10kpps.
-| | ...
| | [Tags] | 64B | 4C | NDRDISC
-| | ...
-| | [Template] | Discover NDR or PDR for 1lbdpdk-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm
-| | wt=4 | rxq=2 | framesize=${64} | min_rate=${10000} | search_type=NDR
+| | phy_cores=${4} | framesize=${64} | search_type=NDR
| tc18-64B-4t4c-1lbdpdk-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-pdrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with 4 phy cores,\
-| | ... | 2 receive queues per NIC port.
-| | ... | [Ver] Find PDR for 64 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 10kpps, LT=0.5%.
-| | ...
| | [Tags] | 64B | 4C | PDRDISC | SKIP_PATCH
-| | ...
-| | [Template] | Discover NDR or PDR for 1lbdpdk-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm
-| | wt=4 | rxq=2 | framesize=${64} | min_rate=${10000} | search_type=PDR
+| | phy_cores=${4} | framesize=${64} | search_type=PDR
| tc19-1518B-4t4c-1lbdpdk-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-ndrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with 4 phy cores,\
-| | ... | 2 receive queues per NIC port.
-| | ... | [Ver] Find NDR for 1518 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 10kpps.
-| | ...
| | [Tags] | 1518B | 4C | NDRDISC | SKIP_PATCH
-| | ...
-| | [Template] | Discover NDR or PDR for 1lbdpdk-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm
-| | wt=4 | rxq=2 | framesize=${1518} | min_rate=${10000} | search_type=NDR
+| | phy_cores=${4} | framesize=${1518} | search_type=NDR
| tc20-1518B-4t4c-1lbdpdk-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-pdrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with 4 phy cores,\
-| | ... | 2 receive queues per NIC port.
-| | ... | [Ver] Find PDR for 1518 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 10kpps, LT=0.5%.
-| | ...
| | [Tags] | 1518B | 4C | PDRDISC | SKIP_PATCH
-| | ...
-| | [Template] | Discover NDR or PDR for 1lbdpdk-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm
-| | wt=4 | rxq=2 | framesize=${1518} | min_rate=${10000} | search_type=PDR
+| | phy_cores=${4} | framesize=${1518} | search_type=PDR
| tc21-9000B-4t4c-1lbdpdk-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-ndrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with 4 phy cores,\
-| | ... | 2 receive queues per NIC port.
-| | ... | [Ver] Find NDR for 9000 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 10kpps.
-| | ...
| | [Tags] | 9000B | 4C | NDRDISC | SKIP_PATCH
-| | ...
-| | [Template] | Discover NDR or PDR for 1lbdpdk-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm
-| | wt=4 | rxq=2 | framesize=${9000} | min_rate=${10000} | search_type=NDR
+| | phy_cores=${4} | framesize=${9000} | search_type=NDR
| tc22-9000B-4t4c-1lbdpdk-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-pdrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with 4 phy cores,\
-| | ... | 2 receive queues per NIC port.
-| | ... | [Ver] Find PDR for 9000 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 10kpps, LT=0.5%.
-| | ...
| | [Tags] | 9000B | 4C | PDRDISC | SKIP_PATCH
-| | ...
-| | [Template] | Discover NDR or PDR for 1lbdpdk-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm
-| | wt=4 | rxq=2 | framesize=${9000} | min_rate=${10000} | search_type=PDR
+| | phy_cores=${4} | framesize=${9000} | search_type=PDR
| tc23-IMIX-4t4c-1lbdpdk-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-ndrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with 4 phy cores,\
-| | ... | 2 receive queues per NIC port.
-| | ... | [Ver] Find NDR for IMIX_v4_1 framesize using binary search start at\
-| | ... | 10GE linerate, step 10kpps.
-| | ... | IMIX_v4_1 = (28x64B; 16x570B; 4x1518B)
-| | ...
| | [Tags] | IMIX | 4C | NDRDISC | SKIP_PATCH
-| | ...
-| | [Template] | Discover NDR or PDR for 1lbdpdk-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm
-| | wt=4 | rxq=2 | framesize=IMIX_v4_1 | min_rate=${10000} | search_type=NDR
+| | phy_cores=${4} | framesize=IMIX_v4_1 | search_type=NDR
| tc24-IMIX-4t4c-1lbdpdk-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-pdrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with 4 phy cores,\
-| | ... | 2 receive queues per NIC port.
-| | ... | [Ver] Find PDR for IMIX_v4_1 framesize using binary search start at\
-| | ... | 10GE linerate, step 10kpps, LT=0.5%.
-| | ... | IMIX_v4_1 = (28x64B; 16x570B; 4x1518B)
-| | ...
| | [Tags] | IMIX | 4C | PDRDISC | SKIP_PATCH
-| | ...
-| | [Template] | Discover NDR or PDR for 1lbdpdk-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm
-| | wt=4 | rxq=2 | framesize=IMIX_v4_1 | min_rate=${10000} | search_type=PDR
+| | phy_cores=${4} | framesize=IMIX_v4_1 | search_type=PDR
diff --git a/tests/vpp/perf/vm_vhost/10ge2p1x710-1lbdpdk-dot1q-l2xcbase-eth-2vhostvr1024-1vm-mrr.robot b/tests/vpp/perf/vm_vhost/10ge2p1x710-1lbdpdk-dot1q-l2xcbase-eth-2vhostvr1024-1vm-mrr.robot
index 71f0b295f0..832e9e274a 100644
--- a/tests/vpp/perf/vm_vhost/10ge2p1x710-1lbdpdk-dot1q-l2xcbase-eth-2vhostvr1024-1vm-mrr.robot
+++ b/tests/vpp/perf/vm_vhost/10ge2p1x710-1lbdpdk-dot1q-l2xcbase-eth-2vhostvr1024-1vm-mrr.robot
@@ -28,6 +28,8 @@
| ... | dut1_node=${dut1} | dut1_vm_refs=${dut1_vm_refs}
| ... | dut2_node=${dut2} | dut2_vm_refs=${dut2_vm_refs}
| ...
+| Test Template | Local template
+| ...
| Documentation | *Raw results L2XC test cases with vhost and dpdk link bonding*
| ...
| ... | *[Top] Network Topologies:* TG-DUT1-DUT2-TG 3-node circular topology
@@ -69,16 +71,21 @@
| ${traffic_profile}= | trex-sl-3n-ethip4-ip4src254
*** Keywords ***
-| Check RR for 1lbdpdk-dot1q-l2xcbase-eth-2vhostvr1024-1vm
+| Local template
| | [Documentation]
-| | ... | [Cfg] DUT runs L2XC switching config with ${wt} thread, ${wt} phy\
-| | ... | core, ${rxq} receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for ${framesize} frames using single\
+| | ... | [Cfg] DUT runs L2XC switching config.
+| | ... | Each DUT uses ${phy_cores} physical core(s) for worker threads.
+| | ... | [Ver] Measure MaxReceivedRate for ${framesize}B frames using single\
| | ... | trial throughput test.
| | ...
-| | [Arguments] | ${framesize} | ${wt} | ${rxq}
+| | ... | *Arguments:*
+| | ... | - framesize - Framesize in Bytes in integer or string (IMIX_v4_1).
+| | ... | Type: integer, string
+| | ... | - phy_cores - Number of physical cores. Type: integer
+| | ... | - rxq - Number of RX queues, default value: ${None}. Type: integer
+| | ...
+| | [Arguments] | ${framesize} | ${phy_cores} | ${rxq}=${None}
| | ...
-| | # Test Variables required for test and test teardown
| | Set Test Variable | ${framesize}
| | ${get_framesize}= | Get Frame Size | ${framesize}
| | ${max_rate}= | Calculate pps | ${s_limit}
@@ -90,7 +97,7 @@
| | ${jumbo_frames}= | Set Variable If
| | ... | ${get_framesize + ${vlan_overhead}} < ${1522} | ${False} | ${True}
| | ...
-| | Given Add '${wt}' worker threads and '${rxq}' rxqueues in 3-node single-link circular topology
+| | Given Add worker threads and rxqueues to all DUTs | ${phy_cores} | ${rxq}
| | And Add PCI devices to all DUTs
| | And Add VLAN Strip Offload switch off between DUTs in 3-node single link topology
| | And Add DPDK bonded Ethernet interfaces to DUTs in 3-node single link topology
@@ -113,148 +120,49 @@
*** Test Cases ***
| tc01-64B-1t1c-1lbdpdk-dot1q-l2xcbase-eth-2vhostvr1024-1vm-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2XC switching config with 1 phy\
-| | ... | core, 1 receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 64B frames using single\
-| | ... | trial throughput test.
-| | ...
| | [Tags] | 64B | 1C
-| | ...
-| | [Template] | Check RR for 1lbdpdk-dot1q-l2xcbase-eth-2vhostvr1024-1vm
-| | framesize=${64} | wt=1 | rxq=1
+| | framesize=${64} | phy_cores=${1}
| tc02-1518B-1t1c-1lbdpdk-dot1q-l2xcbase-eth-2vhostvr1024-1vm-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2XC switching config with 1 phy\
-| | ... | core, 1 receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 1518B frames using single\
-| | ... | trial throughput test.
-| | ...
| | [Tags] | 1518B | 1C
-| | ...
-| | [Template] | Check RR for 1lbdpdk-dot1q-l2xcbase-eth-2vhostvr1024-1vm
-| | framesize=${1518} | wt=1 | rxq=1
+| | framesize=${1518} | phy_cores=${1}
| tc03-9000B-1t1c-1lbdpdk-dot1q-l2xcbase-eth-2vhostvr1024-1vm-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2XC switching config with 1 phy\
-| | ... | core, 1 receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 9000B frames using single\
-| | ... | trial throughput test.
-| | ...
| | [Tags] | 9000B | 1C
-| | ...
-| | [Template] | Check RR for 1lbdpdk-dot1q-l2xcbase-eth-2vhostvr1024-1vm
-| | framesize=${9000} | wt=1 | rxq=1
+| | framesize=${9000} | phy_cores=${1}
| tc04-IMIX-1t1c-1lbdpdk-dot1q-l2xcbase-eth-2vhostvr1024-1vm-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2XC switching config with 1 phy\
-| | ... | core, 1 receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for IMIX_v4_1 frames using single\
-| | ... | trial throughput test.
-| | ... | IMIX_v4_1 = (28x64B; 16x570B; 4x1518B)
-| | ...
| | [Tags] | IMIX | 1C
-| | ...
-| | [Template] | Check RR for 1lbdpdk-dot1q-l2xcbase-eth-2vhostvr1024-1vm
-| | framesize=IMIX_v4_1 | wt=1 | rxq=1
+| | framesize=IMIX_v4_1 | phy_cores=${1}
| tc05-64B-2t2c-1lbdpdk-dot1q-l2xcbase-eth-2vhostvr1024-1vm-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2XC switching config with 2 phy\
-| | ... | cores, 1 receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 64B frames using single\
-| | ... | trial throughput test.
-| | ...
| | [Tags] | 64B | 2C
-| | ...
-| | [Template] | Check RR for 1lbdpdk-dot1q-l2xcbase-eth-2vhostvr1024-1vm
-| | framesize=${64} | wt=2 | rxq=1
+| | framesize=${64} | phy_cores=${2}
| tc06-1518B-2t2c-1lbdpdk-dot1q-l2xcbase-eth-2vhostvr1024-1vm-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2XC switching config with 2 phy\
-| | ... | cores, 1 receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 1518B frames using single\
-| | ... | trial throughput test.
-| | ...
| | [Tags] | 1518B | 2C
-| | ...
-| | [Template] | Check RR for 1lbdpdk-dot1q-l2xcbase-eth-2vhostvr1024-1vm
-| | framesize=${1518} | wt=2 | rxq=1
+| | framesize=${1518} | phy_cores=${2}
| tc07-9000B-2t2c-1lbdpdk-dot1q-l2xcbase-eth-2vhostvr1024-1vm-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2XC switching config with 2 phy\
-| | ... | cores, 1 receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 9000B frames using single\
-| | ... | trial throughput test.
-| | ...
| | [Tags] | 9000B | 2C
-| | ...
-| | [Template] | Check RR for 1lbdpdk-dot1q-l2xcbase-eth-2vhostvr1024-1vm
-| | framesize=${9000} | wt=2 | rxq=1
+| | framesize=${9000} | phy_cores=${2}
| tc08-IMIX-2t2c-1lbdpdk-dot1q-l2xcbase-eth-2vhostvr1024-1vm-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2XC switching config with 2 phy\
-| | ... | cores, 1 receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for IMIX_v4_1 frames using single\
-| | ... | trial throughput test.
-| | ... | IMIX_v4_1 = (28x64B; 16x570B; 4x1518B)
-| | ...
| | [Tags] | IMIX | 2C
-| | ...
-| | [Template] | Check RR for 1lbdpdk-dot1q-l2xcbase-eth-2vhostvr1024-1vm
-| | framesize=IMIX_v4_1 | wt=2 | rxq=1
+| | framesize=IMIX_v4_1 | phy_cores=${2}
| tc09-64B-4t4c-1lbdpdk-dot1q-l2xcbase-eth-2vhostvr1024-1vm-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2XC switching config with 4 phy\
-| | ... | cores, 2 receive queues per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 64B frames using single\
-| | ... | trial throughput test.
-| | ...
| | [Tags] | 64B | 4C
-| | ...
-| | [Template] | Check RR for 1lbdpdk-dot1q-l2xcbase-eth-2vhostvr1024-1vm
-| | framesize=${64} | wt=4 | rxq=2
+| | framesize=${64} | phy_cores=${4}
| tc10-1518B-4t4c-1lbdpdk-dot1q-l2xcbase-eth-2vhostvr1024-1vm-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2XC switching config with 4 phy\
-| | ... | cores, 2 receive queues per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 1518B frames using single\
-| | ... | trial throughput test.
-| | ...
| | [Tags] | 1518B | 4C
-| | ...
-| | [Template] | Check RR for 1lbdpdk-dot1q-l2xcbase-eth-2vhostvr1024-1vm
-| | framesize=${1518} | wt=4 | rxq=2
+| | framesize=${1518} | phy_cores=${4}
| tc11-9000B-4t4c-1lbdpdk-dot1q-l2xcbase-eth-2vhostvr1024-1vm-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2XC switching config with 4 phy\
-| | ... | cores, 2 receive queues per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 9000B frames using single\
-| | ... | trial throughput test.
-| | ...
| | [Tags] | 9000B | 4C
-| | ...
-| | [Template] | Check RR for 1lbdpdk-dot1q-l2xcbase-eth-2vhostvr1024-1vm
-| | framesize=${9000} | wt=4 | rxq=2
+| | framesize=${9000} | phy_cores=${4}
| tc12-IMIX-4t4c-1lbdpdk-dot1q-l2xcbase-eth-2vhostvr1024-1vm-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2XC switching config with 4 phy\
-| | ... | cores, 2 receive queues per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for IMIX_v4_1 frames using single\
-| | ... | trial throughput test.
-| | ... | IMIX_v4_1 = (28x64B; 16x570B; 4x1518B)
-| | ...
| | [Tags] | IMIX | 4C
-| | ...
-| | [Template] | Check RR for 1lbdpdk-dot1q-l2xcbase-eth-2vhostvr1024-1vm
-| | framesize=IMIX_v4_1 | wt=4 | rxq=2
+| | framesize=IMIX_v4_1 | phy_cores=${4}
diff --git a/tests/vpp/perf/vm_vhost/10ge2p1x710-1lbdpdk-dot1q-l2xcbase-eth-2vhostvr1024-1vm-ndrpdrdisc.robot b/tests/vpp/perf/vm_vhost/10ge2p1x710-1lbdpdk-dot1q-l2xcbase-eth-2vhostvr1024-1vm-ndrpdrdisc.robot
index 85ed75e7d6..1ea5dd55e0 100644
--- a/tests/vpp/perf/vm_vhost/10ge2p1x710-1lbdpdk-dot1q-l2xcbase-eth-2vhostvr1024-1vm-ndrpdrdisc.robot
+++ b/tests/vpp/perf/vm_vhost/10ge2p1x710-1lbdpdk-dot1q-l2xcbase-eth-2vhostvr1024-1vm-ndrpdrdisc.robot
@@ -29,6 +29,8 @@
| ... | dut1_node=${dut1} | dut1_vm_refs=${dut1_vm_refs}
| ... | dut2_node=${dut2} | dut2_vm_refs=${dut2_vm_refs}
| ...
+| Test Template | Local template
+| ...
| Documentation | *RFC2544: Packet throughput L2XC test cases with vhost and
| ... | dpdk link bonding*
| ...
@@ -79,16 +81,10 @@
| ${traffic_profile}= | trex-sl-3n-ethip4-ip4src254
*** Keywords ***
-| Discover NDR or PDR for 1lbdpdk-dot1q-l2xcbase-eth-2vhostvr1024-1vm
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2XC switching config with ${wt} thread, ${wt} phy\
-| | ... | core, ${rxq} receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for ${framesize} frames using single\
-| | ... | trial throughput test.
-| | ...
-| | [Arguments] | ${wt} | ${rxq} | ${framesize} | ${min_rate} | ${search_type}
+| Local template
+| | [Arguments] | ${phy_cores} | ${framesize} | ${search_type} | ${rxq}=${None}
+| | ... | ${min_rate}=${10000}
| | ...
-| | # Test Variables required for test and test teardown
| | Set Test Variable | ${framesize}
| | Set Test Variable | ${min_rate}
| | ${get_framesize}= | Get Frame Size | ${framesize}
@@ -104,7 +100,7 @@
| | ${jumbo_frames}= | Set Variable If
| | ... | ${get_framesize + ${vlan_overhead}} < ${1522} | ${False} | ${True}
| | ...
-| | Given Add '${wt}' worker threads and '${rxq}' rxqueues in 3-node single-link circular topology
+| | Given Add worker threads and rxqueues to all DUTs | ${phy_cores} | ${rxq}
| | And Add PCI devices to all DUTs
| | And Add VLAN Strip Offload switch off between DUTs in 3-node single link topology
| | And Add DPDK bonded Ethernet interfaces to DUTs in 3-node single link topology
@@ -134,295 +130,97 @@
*** Test Cases ***
| tc01-64B-1t1c-1lbdpdk-dot1q-l2xcbase-eth-2vhostvr1024-1vm-ndrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2XC switching config with 1 phy core,\
-| | ... | 1 receive queue per NIC port.
-| | ... | [Ver] Find NDR for 64 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 10kpps.
-| | ...
| | [Tags] | 64B | 1C | NDRDISC
-| | ...
-| | [Template] | Discover NDR or PDR for 1lbdpdk-dot1q-l2xcbase-eth-2vhostvr1024-1vm
-| | wt=1 | rxq=1 | framesize=${64} | min_rate=${10000} | search_type=NDR
+| | phy_cores=${1} | framesize=${64} | search_type=NDR
| tc02-64B-1t1c-1lbdpdk-dot1q-l2xcbase-eth-2vhostvr1024-1vm-pdrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2XC switching config with 1 phy core,\
-| | ... | 1 receive queue per NIC port.
-| | ... | [Ver] Find PDR for 64 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 10kpps, LT=0.5%.
-| | ...
| | [Tags] | 64B | 1C | PDRDISC | SKIP_PATCH
-| | ...
-| | [Template] | Discover NDR or PDR for 1lbdpdk-dot1q-l2xcbase-eth-2vhostvr1024-1vm
-| | wt=1 | rxq=1 | framesize=${64} | min_rate=${10000} | search_type=PDR
+| | phy_cores=${1} | framesize=${64} | search_type=PDR
| tc03-1518B-1t1c-1lbdpdk-dot1q-l2xcbase-eth-2vhostvr1024-1vm-ndrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2XC switching config with 1 phy core,\
-| | ... | 1 receive queue per NIC port.
-| | ... | [Ver] Find NDR for 1518 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 10kpps.
-| | ...
| | [Tags] | 1518B | 1C | NDRDISC
-| | ...
-| | [Template] | Discover NDR or PDR for 1lbdpdk-dot1q-l2xcbase-eth-2vhostvr1024-1vm
-| | wt=1 | rxq=1 | framesize=${1518} | min_rate=${10000} | search_type=NDR
+| | phy_cores=${1} | framesize=${1518} | search_type=NDR
| tc04-1518B-1t1c-1lbdpdk-dot1q-l2xcbase-eth-2vhostvr1024-1vm-pdrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2XC switching config with 1 phy core,\
-| | ... | 1 receive queue per NIC port.
-| | ... | [Ver] Find PDR for 1518 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 10kpps, LT=0.5%.
-| | ...
| | [Tags] | 1518B | 1C | PDRDISC | SKIP_PATCH
-| | ...
-| | [Template] | Discover NDR or PDR for 1lbdpdk-dot1q-l2xcbase-eth-2vhostvr1024-1vm
-| | wt=1 | rxq=1 | framesize=${1518} | min_rate=${10000} | search_type=PDR
+| | phy_cores=${1} | framesize=${1518} | search_type=PDR
| tc05-9000B-1t1c-1lbdpdk-dot1q-l2xcbase-eth-2vhostvr1024-1vm-ndrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2XC switching config with 1 phy core,\
-| | ... | 1 receive queue per NIC port.
-| | ... | [Ver] Find NDR for 9000 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 10kpps.
-| | ...
| | [Tags] | 9000B | 1C | NDRDISC
-| | ...
-| | [Template] | Discover NDR or PDR for 1lbdpdk-dot1q-l2xcbase-eth-2vhostvr1024-1vm
-| | wt=1 | rxq=1 | framesize=${9000} | min_rate=${10000} | search_type=NDR
+| | phy_cores=${1} | framesize=${9000} | search_type=NDR
| tc06-9000B-1t1c-1lbdpdk-dot1q-l2xcbase-eth-2vhostvr1024-1vm-pdrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2XC switching config with 1 phy core,\
-| | ... | 1 receive queue per NIC port.
-| | ... | [Ver] Find PDR for 9000 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 10kpps, LT=0.5%.
-| | ...
| | [Tags] | 9000B | 1C | PDRDISC | SKIP_PATCH
-| | ...
-| | [Template] | Discover NDR or PDR for 1lbdpdk-dot1q-l2xcbase-eth-2vhostvr1024-1vm
-| | wt=1 | rxq=1 | framesize=${9000} | min_rate=${10000} | search_type=PDR
+| | phy_cores=${1} | framesize=${9000} | search_type=PDR
| tc07-IMIX-1t1c-1lbdpdk-dot1q-l2xcbase-eth-2vhostvr1024-1vm-ndrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2XC switching config with 1 phy core,\
-| | ... | 1 receive queue per NIC port.
-| | ... | [Ver] Find NDR for IMIX_v4_1 framesize using binary search start at\
-| | ... | 10GE linerate, step 10kpps.
-| | ... | IMIX_v4_1 = (28x64B; 16x570B; 4x1518B)
-| | ...
| | [Tags] | IMIX | 1C | NDRDISC
-| | ...
-| | [Template] | Discover NDR or PDR for 1lbdpdk-dot1q-l2xcbase-eth-2vhostvr1024-1vm
-| | wt=1 | rxq=1 | framesize=IMIX_v4_1 | min_rate=${10000} | search_type=NDR
+| | phy_cores=${1} | framesize=IMIX_v4_1 | search_type=NDR
| tc08-IMIX-1t1c-1lbdpdk-dot1q-l2xcbase-eth-2vhostvr1024-1vm-pdrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2XC switching config with 1 phy core,\
-| | ... | 1 receive queue per NIC port.
-| | ... | [Ver] Find PDR for IMIX_v4_1 framesize using binary search start at\
-| | ... | 10GE linerate, step 10kpps, LT=0.5%.
-| | ... | IMIX_v4_1 = (28x64B; 16x570B; 4x1518B)
-| | ...
| | [Tags] | IMIX | 1C | PDRDISC | SKIP_PATCH
-| | ...
-| | [Template] | Discover NDR or PDR for 1lbdpdk-dot1q-l2xcbase-eth-2vhostvr1024-1vm
-| | wt=1 | rxq=1 | framesize=IMIX_v4_1 | min_rate=${10000} | search_type=PDR
+| | phy_cores=${1} | framesize=IMIX_v4_1 | search_type=PDR
| tc09-64B-2t2c-1lbdpdk-dot1q-l2xcbase-eth-2vhostvr1024-1vm-ndrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2XC switching config with 2 phy cores,\
-| | ... | 1 receive queue per NIC port.
-| | ... | [Ver] Find NDR for 64 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 10kpps.
-| | ...
| | [Tags] | 64B | 2C | NDRDISC
-| | ...
-| | [Template] | Discover NDR or PDR for 1lbdpdk-dot1q-l2xcbase-eth-2vhostvr1024-1vm
-| | wt=2 | rxq=1 | framesize=${64} | min_rate=${10000} | search_type=NDR
+| | phy_cores=${2} | framesize=${64} | search_type=NDR
| tc10-64B-2t2c-1lbdpdk-dot1q-l2xcbase-eth-2vhostvr1024-1vm-pdrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2XC switching config with 2 phy cores,\
-| | ... | 1 receive queue per NIC port.
-| | ... | [Ver] Find PDR for 64 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 10kpps, LT=0.5%.
-| | ...
| | [Tags] | 64B | 2C | PDRDISC | SKIP_PATCH
-| | ...
-| | [Template] | Discover NDR or PDR for 1lbdpdk-dot1q-l2xcbase-eth-2vhostvr1024-1vm
-| | wt=2 | rxq=1 | framesize=${64} | min_rate=${10000} | search_type=PDR
+| | phy_cores=${2} | framesize=${64} | search_type=PDR
| tc11-1518B-2t2c-1lbdpdk-dot1q-l2xcbase-eth-2vhostvr1024-1vm-ndrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2XC switching config with 2 phy cores,\
-| | ... | 1 receive queue per NIC port.
-| | ... | [Ver] Find NDR for 1518 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 10kpps.
-| | ...
| | [Tags] | 1518B | 2C | NDRDISC | SKIP_PATCH
-| | ...
-| | [Template] | Discover NDR or PDR for 1lbdpdk-dot1q-l2xcbase-eth-2vhostvr1024-1vm
-| | wt=2 | rxq=1 | framesize=${1518} | min_rate=${10000} | search_type=NDR
+| | phy_cores=${2} | framesize=${1518} | search_type=NDR
| tc12-1518B-2t2c-1lbdpdk-dot1q-l2xcbase-eth-2vhostvr1024-1vm-pdrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2XC switching config with 2 phy cores,\
-| | ... | 1 receive queue per NIC port.
-| | ... | [Ver] Find PDR for 1518 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 10kpps, LT=0.5%.
-| | ...
| | [Tags] | 1518B | 2C | PDRDISC | SKIP_PATCH
-| | ...
-| | [Template] | Discover NDR or PDR for 1lbdpdk-dot1q-l2xcbase-eth-2vhostvr1024-1vm
-| | wt=2 | rxq=1 | framesize=${1518} | min_rate=${10000} | search_type=PDR
+| | phy_cores=${2} | framesize=${1518} | search_type=PDR
| tc13-9000B-2t2c-1lbdpdk-dot1q-l2xcbase-eth-2vhostvr1024-1vm-ndrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2XC switching config with 2 phy cores,\
-| | ... | 1 receive queue per NIC port.
-| | ... | [Ver] Find NDR for 9000 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 10kpps.
-| | ...
| | [Tags] | 9000B | 2C | NDRDISC | SKIP_PATCH
-| | ...
-| | [Template] | Discover NDR or PDR for 1lbdpdk-dot1q-l2xcbase-eth-2vhostvr1024-1vm
-| | wt=2 | rxq=1 | framesize=${9000} | min_rate=${10000} | search_type=NDR
+| | phy_cores=${2} | framesize=${9000} | search_type=NDR
| tc14-9000B-2t2c-1lbdpdk-dot1q-l2xcbase-eth-2vhostvr1024-1vm-pdrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2XC switching config with 2 phy cores,\
-| | ... | 1 receive queue per NIC port.
-| | ... | [Ver] Find PDR for 9000 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 10kpps, LT=0.5%.
-| | ...
| | [Tags] | 9000B | 2C | PDRDISC | SKIP_PATCH
-| | ...
-| | [Template] | Discover NDR or PDR for 1lbdpdk-dot1q-l2xcbase-eth-2vhostvr1024-1vm
-| | wt=2 | rxq=1 | framesize=${9000} | min_rate=${10000} | search_type=PDR
+| | phy_cores=${2} | framesize=${9000} | search_type=PDR
| tc15-IMIX-2t2c-1lbdpdk-dot1q-l2xcbase-eth-2vhostvr1024-1vm-ndrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2XC switching config with 2 phy cores,\
-| | ... | 1 receive queue per NIC port.
-| | ... | [Ver] Find NDR for IMIX_v4_1 framesize using binary search start at\
-| | ... | 10GE linerate, step 10kpps.
-| | ... | IMIX_v4_1 = (28x64B; 16x570B; 4x1518B)
-| | ...
| | [Tags] | IMIX | 2C | NDRDISC | SKIP_PATCH
-| | ...
-| | [Template] | Discover NDR or PDR for 1lbdpdk-dot1q-l2xcbase-eth-2vhostvr1024-1vm
-| | wt=2 | rxq=1 | framesize=IMIX_v4_1 | min_rate=${10000} | search_type=NDR
+| | phy_cores=${2} | framesize=IMIX_v4_1 | search_type=NDR
| tc16-IMIX-2t2c-1lbdpdk-dot1q-l2xcbase-eth-2vhostvr1024-1vm-pdrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2XC switching config with 2 phy cores,\
-| | ... | 1 receive queue per NIC port.
-| | ... | [Ver] Find PDR for IMIX_v4_1 framesize using binary search start at\
-| | ... | 10GE linerate, step 10kpps.
-| | ... | IMIX_v4_1 = (28x64B; 16x570B; 4x1518B)
-| | ...
| | [Tags] | IMIX | 2C | PDRDISC | SKIP_PATCH
-| | ...
-| | [Template] | Discover NDR or PDR for 1lbdpdk-dot1q-l2xcbase-eth-2vhostvr1024-1vm
-| | wt=2 | rxq=1 | framesize=IMIX_v4_1 | min_rate=${10000} | search_type=PDR
+| | phy_cores=${2} | framesize=IMIX_v4_1 | search_type=PDR
| tc17-64B-4t4c-1lbdpdk-dot1q-l2xcbase-eth-2vhostvr1024-1vm-ndrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2XC switching config with 4 phy cores,\
-| | ... | 2 receive queues per NIC port.
-| | ... | [Ver] Find NDR for 64 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 10kpps.
-| | ...
| | [Tags] | 64B | 4C | NDRDISC
-| | ...
-| | [Template] | Discover NDR or PDR for 1lbdpdk-dot1q-l2xcbase-eth-2vhostvr1024-1vm
-| | wt=4 | rxq=2 | framesize=${64} | min_rate=${10000} | search_type=NDR
+| | phy_cores=${4} | framesize=${64} | search_type=NDR
| tc18-64B-4t4c-1lbdpdk-dot1q-l2xcbase-eth-2vhostvr1024-1vm-pdrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2XC switching config with 4 phy cores,\
-| | ... | 2 receive queues per NIC port.
-| | ... | [Ver] Find PDR for 64 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 10kpps, LT=0.5%.
-| | ...
| | [Tags] | 64B | 4C | PDRDISC | SKIP_PATCH
-| | ...
-| | [Template] | Discover NDR or PDR for 1lbdpdk-dot1q-l2xcbase-eth-2vhostvr1024-1vm
-| | wt=4 | rxq=2 | framesize=${64} | min_rate=${10000} | search_type=PDR
+| | phy_cores=${4} | framesize=${64} | search_type=PDR
| tc19-1518B-4t4c-1lbdpdk-dot1q-l2xcbase-eth-2vhostvr1024-1vm-ndrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2XC switching config with 4 phy cores,\
-| | ... | 2 receive queues per NIC port.
-| | ... | [Ver] Find NDR for 1518 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 10kpps.
-| | ...
| | [Tags] | 1518B | 4C | NDRDISC | SKIP_PATCH
-| | ...
-| | [Template] | Discover NDR or PDR for 1lbdpdk-dot1q-l2xcbase-eth-2vhostvr1024-1vm
-| | wt=4 | rxq=2 | framesize=${1518} | min_rate=${10000} | search_type=NDR
+| | phy_cores=${4} | framesize=${1518} | search_type=NDR
| tc20-1518B-4t4c-1lbdpdk-dot1q-l2xcbase-eth-2vhostvr1024-1vm-pdrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2XC switching config with 4 phy cores,\
-| | ... | 2 receive queues per NIC port.
-| | ... | [Ver] Find PDR for 1518 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 10kpps, LT=0.5%.
-| | ...
| | [Tags] | 1518B | 4C | PDRDISC | SKIP_PATCH
-| | ...
-| | [Template] | Discover NDR or PDR for 1lbdpdk-dot1q-l2xcbase-eth-2vhostvr1024-1vm
-| | wt=4 | rxq=2 | framesize=${1518} | min_rate=${10000} | search_type=PDR
+| | phy_cores=${4} | framesize=${1518} | search_type=PDR
| tc21-9000B-4t4c-1lbdpdk-dot1q-l2xcbase-eth-2vhostvr1024-1vm-ndrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2XC switching config with 4 phy cores,\
-| | ... | 2 receive queues per NIC port.
-| | ... | [Ver] Find NDR for 9000 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 10kpps.
-| | ...
| | [Tags] | 9000B | 4C | NDRDISC | SKIP_PATCH
-| | ...
-| | [Template] | Discover NDR or PDR for 1lbdpdk-dot1q-l2xcbase-eth-2vhostvr1024-1vm
-| | wt=4 | rxq=2 | framesize=${9000} | min_rate=${10000} | search_type=NDR
+| | phy_cores=${4} | framesize=${9000} | search_type=NDR
| tc22-9000B-4t4c-1lbdpdk-dot1q-l2xcbase-eth-2vhostvr1024-1vm-pdrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2XC switching config with 4 phy cores,\
-| | ... | 2 receive queues per NIC port.
-| | ... | [Ver] Find PDR for 9000 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 10kpps, LT=0.5%.
-| | ...
| | [Tags] | 9000B | 4C | PDRDISC | SKIP_PATCH
-| | ...
-| | [Template] | Discover NDR or PDR for 1lbdpdk-dot1q-l2xcbase-eth-2vhostvr1024-1vm
-| | wt=4 | rxq=2 | framesize=${9000} | min_rate=${10000} | search_type=PDR
+| | phy_cores=${4} | framesize=${9000} | search_type=PDR
| tc23-IMIX-4t4c-1lbdpdk-dot1q-l2xcbase-eth-2vhostvr1024-1vm-ndrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2XC switching config with 4 phy cores,\
-| | ... | 2 receive queues per NIC port.
-| | ... | [Ver] Find NDR for IMIX_v4_1 framesize using binary search start at\
-| | ... | 10GE linerate, step 10kpps.
-| | ... | IMIX_v4_1 = (28x64B; 16x570B; 4x1518B)
-| | ...
| | [Tags] | IMIX | 4C | NDRDISC | SKIP_PATCH
-| | ...
-| | [Template] | Discover NDR or PDR for 1lbdpdk-dot1q-l2xcbase-eth-2vhostvr1024-1vm
-| | wt=4 | rxq=2 | framesize=IMIX_v4_1 | min_rate=${10000} | search_type=NDR
+| | phy_cores=${4} | framesize=IMIX_v4_1 | search_type=NDR
| tc24-IMIX-4t4c-1lbdpdk-dot1q-l2xcbase-eth-2vhostvr1024-1vm-pdrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2XC switching config with 4 phy cores,\
-| | ... | 2 receive queues per NIC port.
-| | ... | [Ver] Find PDR for IMIX_v4_1 framesize using binary search start at\
-| | ... | 10GE linerate, step 10kpps, LT=0.5%.
-| | ... | IMIX_v4_1 = (28x64B; 16x570B; 4x1518B)
-| | ...
| | [Tags] | IMIX | 4C | PDRDISC | SKIP_PATCH
-| | ...
-| | [Template] | Discover NDR or PDR for 1lbdpdk-dot1q-l2xcbase-eth-2vhostvr1024-1vm
-| | wt=4 | rxq=2 | framesize=IMIX_v4_1 | min_rate=${10000} | search_type=PDR
+| | phy_cores=${4} | framesize=IMIX_v4_1 | search_type=PDR
diff --git a/tests/vpp/perf/vm_vhost/10ge2p1x710-1lbvpplacp-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-mrr.robot b/tests/vpp/perf/vm_vhost/10ge2p1x710-1lbvpplacp-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-mrr.robot
index 4f205d00a5..c712df4d73 100644
--- a/tests/vpp/perf/vm_vhost/10ge2p1x710-1lbvpplacp-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-mrr.robot
+++ b/tests/vpp/perf/vm_vhost/10ge2p1x710-1lbvpplacp-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-mrr.robot
@@ -32,6 +32,8 @@
| ... | dut1_node=${dut1} | dut1_vm_refs=${dut1_vm_refs}
| ... | dut2_node=${dut2} | dut2_vm_refs=${dut2_vm_refs}
| ...
+| Test Template | Local template
+| ...
| Documentation | *Raw results L2BD test cases with vhost and vpp link bonding*
| ...
| ... | *[Top] Network Topologies:* TG-DUT1-DUT2-TG 3-node circular topology
@@ -74,16 +76,21 @@
| ${traffic_profile}= | trex-sl-3n-ethip4-ip4src254
*** Keywords ***
-| Check RR for 1lbvpp-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm
+| Local template
| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with ${wt} thread, ${wt} phy\
-| | ... | core, ${rxq} receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for ${framesize} frames using single\
+| | ... | [Cfg] DUT runs L2BD switching config.
+| | ... | Each DUT uses ${phy_cores} physical core(s) for worker threads.
+| | ... | [Ver] Measure MaxReceivedRate for ${framesize}B frames using single\
| | ... | trial throughput test.
| | ...
-| | [Arguments] | ${framesize} | ${wt} | ${rxq}
+| | ... | *Arguments:*
+| | ... | - framesize - Framesize in Bytes in integer or string (IMIX_v4_1).
+| | ... | Type: integer, string
+| | ... | - phy_cores - Number of physical cores. Type: integer
+| | ... | - rxq - Number of RX queues, default value: ${None}. Type: integer
+| | ...
+| | [Arguments] | ${framesize} | ${phy_cores} | ${rxq}=${None}
| | ...
-| | # Test Variables required for test and test teardown
| | Set Test Variable | ${framesize}
| | ${get_framesize}= | Get Frame Size | ${framesize}
| | ${max_rate}= | Calculate pps | ${s_limit}
@@ -95,7 +102,7 @@
| | ${jumbo_frames}= | Set Variable If
| | ... | ${get_framesize + ${vlan_overhead}} < ${1522} | ${False} | ${True}
| | ...
-| | Given Add '${wt}' worker threads and '${rxq}' rxqueues in 3-node single-link circular topology
+| | Given Add worker threads and rxqueues to all DUTs | ${phy_cores} | ${rxq}
| | And Add PCI devices to all DUTs
| | And Add VLAN Strip Offload switch off between DUTs in 3-node single link topology
| | And Run Keyword If | ${get_framesize + ${vlan_overhead}} < ${1522}
@@ -118,148 +125,49 @@
*** Test Cases ***
| tc01-64B-1t1c-1lbvpplacp-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with 1 phy\
-| | ... | core, 1 receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 64B frames using single\
-| | ... | trial throughput test.
-| | ...
| | [Tags] | 64B | 1C
-| | ...
-| | [Template] | Check RR for 1lbvpp-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm
-| | framesize=${64} | wt=1 | rxq=1
+| | framesize=${64} | phy_cores=${1}
| tc02-1518B-1t1c-1lbvpplacp-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with 1 phy\
-| | ... | core, 1 receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 1518B frames using single\
-| | ... | trial throughput test.
-| | ...
| | [Tags] | 1518B | 1C
-| | ...
-| | [Template] | Check RR for 1lbvpp-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm
-| | framesize=${1518} | wt=1 | rxq=1
+| | framesize=${1518} | phy_cores=${1}
| tc03-9000B-1t1c-1lbvpplacp-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with 1 phy\
-| | ... | core, 1 receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 9000B frames using single\
-| | ... | trial throughput test.
-| | ...
| | [Tags] | 9000B | 1C
-| | ...
-| | [Template] | Check RR for 1lbvpp-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm
-| | framesize=${9000} | wt=1 | rxq=1
+| | framesize=${9000} | phy_cores=${1}
| tc04-IMIX-1t1c-1lbvpplacp-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with 1 phy\
-| | ... | core, 1 receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for IMIX_v4_1 frames using single\
-| | ... | trial throughput test.
-| | ... | IMIX_v4_1 = (28x64B; 16x570B; 4x1518B)
-| | ...
| | [Tags] | IMIX | 1C
-| | ...
-| | [Template] | Check RR for 1lbvpp-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm
-| | framesize=IMIX_v4_1 | wt=1 | rxq=1
+| | framesize=IMIX_v4_1 | phy_cores=${1}
| tc05-64B-2t2c-1lbvpplacp-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with 2 phy\
-| | ... | cores, 1 receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 64B frames using single\
-| | ... | trial throughput test.
-| | ...
| | [Tags] | 64B | 2C
-| | ...
-| | [Template] | Check RR for 1lbvpp-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm
-| | framesize=${64} | wt=2 | rxq=1
+| | framesize=${64} | phy_cores=${2}
| tc06-1518B-2t2c-1lbvpplacp-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with 2 phy\
-| | ... | cores, 1 receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 1518B frames using single\
-| | ... | trial throughput test.
-| | ...
| | [Tags] | 1518B | 2C
-| | ...
-| | [Template] | Check RR for 1lbvpp-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm
-| | framesize=${1518} | wt=2 | rxq=1
+| | framesize=${1518} | phy_cores=${2}
| tc07-9000B-2t2c-1lbvpplacp-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with 2 phy\
-| | ... | cores, 1 receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 9000B frames using single\
-| | ... | trial throughput test.
-| | ...
| | [Tags] | 9000B | 2C
-| | ...
-| | [Template] | Check RR for 1lbvpp-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm
-| | framesize=${9000} | wt=2 | rxq=1
+| | framesize=${9000} | phy_cores=${2}
| tc08-IMIX-2t2c-1lbvpplacp-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with 2 phy\
-| | ... | cores, 1 receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for IMIX_v4_1 frames using single\
-| | ... | trial throughput test.
-| | ... | IMIX_v4_1 = (28x64B; 16x570B; 4x1518B)
-| | ...
| | [Tags] | IMIX | 2C
-| | ...
-| | [Template] | Check RR for 1lbvpp-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm
-| | framesize=IMIX_v4_1 | wt=2 | rxq=1
+| | framesize=IMIX_v4_1 | phy_cores=${2}
| tc09-64B-4t4c-1lbvpplacp-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with 4 phy\
-| | ... | cores, 2 receive queues per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 64B frames using single\
-| | ... | trial throughput test.
-| | ...
| | [Tags] | 64B | 4C
-| | ...
-| | [Template] | Check RR for 1lbvpp-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm
-| | framesize=${64} | wt=4 | rxq=2
+| | framesize=${64} | phy_cores=${4}
| tc10-1518B-4t4c-1lbvpplacp-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with 4 phy\
-| | ... | cores, 2 receive queues per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 1518B frames using single\
-| | ... | trial throughput test.
-| | ...
| | [Tags] | 1518B | 4C
-| | ...
-| | [Template] | Check RR for 1lbvpp-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm
-| | framesize=${1518} | wt=4 | rxq=2
+| | framesize=${1518} | phy_cores=${4}
| tc11-9000B-4t4c-1lbvpplacp-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with 4 phy\
-| | ... | cores, 2 receive queues per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 9000B frames using single\
-| | ... | trial throughput test.
-| | ...
| | [Tags] | 9000B | 4C
-| | ...
-| | [Template] | Check RR for 1lbvpp-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm
-| | framesize=${9000} | wt=4 | rxq=2
+| | framesize=${9000} | phy_cores=${4}
| tc12-IMIX-4t4c-1lbvpplacp-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with 4 phy\
-| | ... | cores, 2 receive queues per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for IMIX_v4_1 frames using single\
-| | ... | trial throughput test.
-| | ... | IMIX_v4_1 = (28x64B; 16x570B; 4x1518B)
-| | ...
| | [Tags] | IMIX | 4C
-| | ...
-| | [Template] | Check RR for 1lbvpp-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm
-| | framesize=IMIX_v4_1 | wt=4 | rxq=2
+| | framesize=IMIX_v4_1 | phy_cores=${4}
diff --git a/tests/vpp/perf/vm_vhost/10ge2p1x710-1lbvpplacp-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-ndrpdrdisc.robot b/tests/vpp/perf/vm_vhost/10ge2p1x710-1lbvpplacp-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-ndrpdrdisc.robot
index 527ec6f3e9..ba1a74eb0e 100644
--- a/tests/vpp/perf/vm_vhost/10ge2p1x710-1lbvpplacp-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-ndrpdrdisc.robot
+++ b/tests/vpp/perf/vm_vhost/10ge2p1x710-1lbvpplacp-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-ndrpdrdisc.robot
@@ -32,6 +32,8 @@
| ... | dut1_node=${dut1} | dut1_vm_refs=${dut1_vm_refs}
| ... | dut2_node=${dut2} | dut2_vm_refs=${dut2_vm_refs}
| ...
+| Test Template | Local template
+| ...
| Documentation | *RFC2544: Packet throughput L2BD test cases with vhost and
| ... | vpp link bonding*
| ...
@@ -81,16 +83,10 @@
| ${traffic_profile}= | trex-sl-3n-ethip4-ip4src254
*** Keywords ***
-| Discover NDR or PDR for 1lbvpp-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with ${wt} thread, ${wt} phy\
-| | ... | core, ${rxq} receive queue per NIC port.
-| | ... | [Ver] Discover NDR or PDR for ${framesize} frames using xxx\
-| | ... | trial throughput test.
-| | ...
-| | [Arguments] | ${wt} | ${rxq} | ${framesize} | ${min_rate} | ${search_type}
+| Local template
+| | [Arguments] | ${phy_cores} | ${framesize} | ${search_type} | ${rxq}=${None}
+| | ... | ${min_rate}=${10000}
| | ...
-| | # Test Variables required for test and test teardown
| | Set Test Variable | ${framesize}
| | Set Test Variable | ${min_rate}
| | ${get_framesize}= | Get Frame Size | ${framesize}
@@ -106,7 +102,7 @@
| | ${jumbo_frames}= | Set Variable If
| | ... | ${get_framesize + ${vlan_overhead}} < ${1522} | ${False} | ${True}
| | ...
-| | Given Add '${wt}' worker threads and '${rxq}' rxqueues in 3-node single-link circular topology
+| | Given Add worker threads and rxqueues to all DUTs | ${phy_cores} | ${rxq}
| | And Add PCI devices to all DUTs
| | And Add VLAN Strip Offload switch off between DUTs in 3-node single link topology
| | And Run Keyword If | ${get_framesize + ${vlan_overhead}} < ${1522}
@@ -136,295 +132,97 @@
*** Test Cases ***
| tc01-64B-1t1c-1lbvpplacp-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-ndrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with 1 phy core,\
-| | ... | 1 receive queue per NIC port.
-| | ... | [Ver] Find NDR for 64 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 10kpps.
-| | ...
| | [Tags] | 64B | 1C | NDRDISC
-| | ...
-| | [Template] | Discover NDR or PDR for 1lbvpp-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm
-| | wt=1 | rxq=1 | framesize=${64} | min_rate=${10000} | search_type=NDR
+| | phy_cores=${1} | framesize=${64} | search_type=NDR
| tc02-64B-1t1c-1lbvpplacp-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-pdrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with 1 phy core,\
-| | ... | 1 receive queue per NIC port.
-| | ... | [Ver] Find PDR for 64 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 10kpps, LT=0.5%.
-| | ...
| | [Tags] | 64B | 1C | PDRDISC | SKIP_PATCH
-| | ...
-| | [Template] | Discover NDR or PDR for 1lbvpp-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm
-| | wt=1 | rxq=1 | framesize=${64} | min_rate=${10000} | search_type=PDR
+| | phy_cores=${1} | framesize=${64} | search_type=PDR
| tc03-1518B-1t1c-1lbvpplacp-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-ndrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with 1 phy core,\
-| | ... | 1 receive queue per NIC port.
-| | ... | [Ver] Find NDR for 1518 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 10kpps.
-| | ...
| | [Tags] | 1518B | 1C | NDRDISC
-| | ...
-| | [Template] | Discover NDR or PDR for 1lbvpp-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm
-| | wt=1 | rxq=1 | framesize=${1518} | min_rate=${10000} | search_type=NDR
+| | phy_cores=${1} | framesize=${1518} | search_type=NDR
| tc04-1518B-1t1c-1lbvpplacp-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-pdrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with 1 phy core,\
-| | ... | 1 receive queue per NIC port.
-| | ... | [Ver] Find PDR for 1518 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 10kpps, LT=0.5%.
-| | ...
| | [Tags] | 1518B | 1C | PDRDISC | SKIP_PATCH
-| | ...
-| | [Template] | Discover NDR or PDR for 1lbvpp-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm
-| | wt=1 | rxq=1 | framesize=${1518} | min_rate=${10000} | search_type=PDR
+| | phy_cores=${1} | framesize=${1518} | search_type=PDR
| tc05-9000B-1t1c-1lbvpplacp-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-ndrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with 1 phy core,\
-| | ... | 1 receive queue per NIC port.
-| | ... | [Ver] Find NDR for 9000 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 10kpps.
-| | ...
| | [Tags] | 9000B | 1C | NDRDISC
-| | ...
-| | [Template] | Discover NDR or PDR for 1lbvpp-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm
-| | wt=1 | rxq=1 | framesize=${9000} | min_rate=${10000} | search_type=NDR
+| | phy_cores=${1} | framesize=${9000} | search_type=NDR
| tc06-9000B-1t1c-1lbvpplacp-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-pdrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with 1 phy core,\
-| | ... | 1 receive queue per NIC port.
-| | ... | [Ver] Find PDR for 9000 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 10kpps, LT=0.5%.
-| | ...
| | [Tags] | 9000B | 1C | PDRDISC | SKIP_PATCH
-| | ...
-| | [Template] | Discover NDR or PDR for 1lbvpp-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm
-| | wt=1 | rxq=1 | framesize=${9000} | min_rate=${10000} | search_type=PDR
+| | phy_cores=${1} | framesize=${9000} | search_type=PDR
| tc07-IMIX-1t1c-1lbvpplacp-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-ndrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with 1 phy core,\
-| | ... | 1 receive queue per NIC port.
-| | ... | [Ver] Find NDR for IMIX_v4_1 framesize using binary search start at\
-| | ... | 10GE linerate, step 10kpps.
-| | ... | IMIX_v4_1 = (28x64B; 16x570B; 4x1518B)
-| | ...
| | [Tags] | IMIX | 1C | NDRDISC
-| | ...
-| | [Template] | Discover NDR or PDR for 1lbvpp-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm
-| | wt=1 | rxq=1 | framesize=IMIX_v4_1 | min_rate=${10000} | search_type=NDR
+| | phy_cores=${1} | framesize=IMIX_v4_1 | search_type=NDR
| tc08-IMIX-1t1c-1lbvpplacp-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-pdrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with 1 phy core,\
-| | ... | 1 receive queue per NIC port.
-| | ... | [Ver] Find PDR for IMIX_v4_1 framesize using binary search start at\
-| | ... | 10GE linerate, step 10kpps, LT=0.5%.
-| | ... | IMIX_v4_1 = (28x64B; 16x570B; 4x1518B)
-| | ...
| | [Tags] | IMIX | 1C | PDRDISC | SKIP_PATCH
-| | ...
-| | [Template] | Discover NDR or PDR for 1lbvpp-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm
-| | wt=1 | rxq=1 | framesize=IMIX_v4_1 | min_rate=${10000} | search_type=PDR
+| | phy_cores=${1} | framesize=IMIX_v4_1 | search_type=PDR
| tc09-64B-2t2c-1lbvpplacp-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-ndrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with 2 phy cores,\
-| | ... | 1 receive queue per NIC port.
-| | ... | [Ver] Find NDR for 64 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 10kpps.
-| | ...
| | [Tags] | 64B | 2C | NDRDISC
-| | ...
-| | [Template] | Discover NDR or PDR for 1lbvpp-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm
-| | wt=2 | rxq=1 | framesize=${64} | min_rate=${10000} | search_type=NDR
+| | phy_cores=${2} | framesize=${64} | search_type=NDR
| tc10-64B-2t2c-1lbvpplacp-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-pdrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with 2 phy cores,\
-| | ... | 1 receive queue per NIC port.
-| | ... | [Ver] Find PDR for 64 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 10kpps, LT=0.5%.
-| | ...
| | [Tags] | 64B | 2C | PDRDISC | SKIP_PATCH
-| | ...
-| | [Template] | Discover NDR or PDR for 1lbvpp-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm
-| | wt=2 | rxq=1 | framesize=${64} | min_rate=${10000} | search_type=PDR
+| | phy_cores=${2} | framesize=${64} | search_type=PDR
| tc11-1518B-2t2c-1lbvpplacp-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-ndrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with 2 phy cores,\
-| | ... | 1 receive queue per NIC port.
-| | ... | [Ver] Find NDR for 1518 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 10kpps.
-| | ...
| | [Tags] | 1518B | 2C | NDRDISC | SKIP_PATCH
-| | ...
-| | [Template] | Discover NDR or PDR for 1lbvpp-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm
-| | wt=2 | rxq=1 | framesize=${1518} | min_rate=${10000} | search_type=NDR
+| | phy_cores=${2} | framesize=${1518} | search_type=NDR
| tc12-1518B-2t2c-1lbvpplacp-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-pdrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with 2 phy cores,\
-| | ... | 1 receive queue per NIC port.
-| | ... | [Ver] Find PDR for 1518 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 10kpps, LT=0.5%.
-| | ...
| | [Tags] | 1518B | 2C | PDRDISC | SKIP_PATCH
-| | ...
-| | [Template] | Discover NDR or PDR for 1lbvpp-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm
-| | wt=2 | rxq=1 | framesize=${1518} | min_rate=${10000} | search_type=PDR
+| | phy_cores=${2} | framesize=${1518} | search_type=PDR
| tc13-9000B-2t2c-1lbvpplacp-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-ndrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with 2 phy cores,\
-| | ... | 1 receive queue per NIC port.
-| | ... | [Ver] Find NDR for 9000 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 10kpps.
-| | ...
| | [Tags] | 9000B | 2C | NDRDISC | SKIP_PATCH
-| | ...
-| | [Template] | Discover NDR or PDR for 1lbvpp-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm
-| | wt=2 | rxq=1 | framesize=${9000} | min_rate=${10000} | search_type=NDR
+| | phy_cores=${2} | framesize=${9000} | search_type=NDR
| tc14-9000B-2t2c-1lbvpplacp-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-pdrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with 2 phy cores,\
-| | ... | 1 receive queue per NIC port.
-| | ... | [Ver] Find PDR for 9000 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 10kpps, LT=0.5%.
-| | ...
| | [Tags] | 9000B | 2C | PDRDISC | SKIP_PATCH
-| | ...
-| | [Template] | Discover NDR or PDR for 1lbvpp-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm
-| | wt=2 | rxq=1 | framesize=${9000} | min_rate=${10000} | search_type=PDR
+| | phy_cores=${2} | framesize=${9000} | search_type=PDR
| tc15-IMIX-2t2c-1lbvpplacp-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-ndrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with 2 phy cores,\
-| | ... | 1 receive queue per NIC port.
-| | ... | [Ver] Find NDR for IMIX_v4_1 framesize using binary search start at\
-| | ... | 10GE linerate, step 10kpps.
-| | ... | IMIX_v4_1 = (28x64B; 16x570B; 4x1518B)
-| | ...
| | [Tags] | IMIX | 2C | NDRDISC | SKIP_PATCH
-| | ...
-| | [Template] | Discover NDR or PDR for 1lbvpp-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm
-| | wt=2 | rxq=1 | framesize=IMIX_v4_1 | min_rate=${10000} | search_type=NDR
+| | phy_cores=${2} | framesize=IMIX_v4_1 | search_type=NDR
| tc16-IMIX-2t2c-1lbvpplacp-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-pdrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with 2 phy cores,\
-| | ... | 1 receive queue per NIC port.
-| | ... | [Ver] Find PDR for IMIX_v4_1 framesize using binary search start at\
-| | ... | 10GE linerate, step 10kpps.
-| | ... | IMIX_v4_1 = (28x64B; 16x570B; 4x1518B)
-| | ...
| | [Tags] | IMIX | 2C | PDRDISC | SKIP_PATCH
-| | ...
-| | [Template] | Discover NDR or PDR for 1lbvpp-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm
-| | wt=2 | rxq=1 | framesize=IMIX_v4_1 | min_rate=${10000} | search_type=PDR
+| | phy_cores=${2} | framesize=IMIX_v4_1 | search_type=PDR
| tc17-64B-4t4c-1lbvpplacp-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-ndrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with 4 phy cores,\
-| | ... | 2 receive queues per NIC port.
-| | ... | [Ver] Find NDR for 64 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 10kpps.
-| | ...
| | [Tags] | 64B | 4C | NDRDISC
-| | ...
-| | [Template] | Discover NDR or PDR for 1lbvpp-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm
-| | wt=4 | rxq=2 | framesize=${64} | min_rate=${10000} | search_type=NDR
+| | phy_cores=${4} | framesize=${64} | search_type=NDR
| tc18-64B-4t4c-1lbvpplacp-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-pdrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with 4 phy cores,\
-| | ... | 2 receive queues per NIC port.
-| | ... | [Ver] Find PDR for 64 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 10kpps, LT=0.5%.
-| | ...
| | [Tags] | 64B | 4C | PDRDISC | SKIP_PATCH
-| | ...
-| | [Template] | Discover NDR or PDR for 1lbvpp-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm
-| | wt=4 | rxq=2 | framesize=${64} | min_rate=${10000} | search_type=PDR
+| | phy_cores=${4} | framesize=${64} | search_type=PDR
| tc19-1518B-4t4c-1lbvpplacp-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-ndrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with 4 phy cores,\
-| | ... | 2 receive queues per NIC port.
-| | ... | [Ver] Find NDR for 1518 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 10kpps.
-| | ...
| | [Tags] | 1518B | 4C | NDRDISC | SKIP_PATCH
-| | ...
-| | [Template] | Discover NDR or PDR for 1lbvpp-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm
-| | wt=4 | rxq=2 | framesize=${1518} | min_rate=${10000} | search_type=NDR
+| | phy_cores=${4} | framesize=${1518} | search_type=NDR
| tc20-1518B-4t4c-1lbvpplacp-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-pdrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with 4 phy cores,\
-| | ... | 2 receive queues per NIC port.
-| | ... | [Ver] Find PDR for 1518 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 10kpps, LT=0.5%.
-| | ...
| | [Tags] | 1518B | 4C | PDRDISC | SKIP_PATCH
-| | ...
-| | [Template] | Discover NDR or PDR for 1lbvpp-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm
-| | wt=4 | rxq=2 | framesize=${1518} | min_rate=${10000} | search_type=PDR
+| | phy_cores=${4} | framesize=${1518} | search_type=PDR
| tc21-9000B-4t4c-1lbvpplacp-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-ndrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with 4 phy cores,\
-| | ... | 2 receive queues per NIC port.
-| | ... | [Ver] Find NDR for 9000 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 10kpps.
-| | ...
| | [Tags] | 9000B | 4C | NDRDISC | SKIP_PATCH
-| | ...
-| | [Template] | Discover NDR or PDR for 1lbvpp-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm
-| | wt=4 | rxq=2 | framesize=${9000} | min_rate=${10000} | search_type=NDR
+| | phy_cores=${4} | framesize=${9000} | search_type=NDR
| tc22-9000B-4t4c-1lbvpplacp-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-pdrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with 4 phy cores,\
-| | ... | 2 receive queues per NIC port.
-| | ... | [Ver] Find PDR for 9000 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 10kpps, LT=0.5%.
-| | ...
| | [Tags] | 9000B | 4C | PDRDISC | SKIP_PATCH
-| | ...
-| | [Template] | Discover NDR or PDR for 1lbvpp-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm
-| | wt=4 | rxq=2 | framesize=${9000} | min_rate=${10000} | search_type=PDR
+| | phy_cores=${4} | framesize=${9000} | search_type=PDR
| tc23-IMIX-4t4c-1lbvpplacp-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-ndrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with 4 phy cores,\
-| | ... | 2 receive queues per NIC port.
-| | ... | [Ver] Find NDR for IMIX_v4_1 framesize using binary search start at\
-| | ... | 10GE linerate, step 10kpps.
-| | ... | IMIX_v4_1 = (28x64B; 16x570B; 4x1518B)
-| | ...
| | [Tags] | IMIX | 4C | NDRDISC | SKIP_PATCH
-| | ...
-| | [Template] | Discover NDR or PDR for 1lbvpp-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm
-| | wt=4 | rxq=2 | framesize=IMIX_v4_1 | min_rate=${10000} | search_type=NDR
+| | phy_cores=${4} | framesize=IMIX_v4_1 | search_type=NDR
| tc24-IMIX-4t4c-1lbvpplacp-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-pdrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with 4 phy cores,\
-| | ... | 2 receive queues per NIC port.
-| | ... | [Ver] Find PDR for IMIX_v4_1 framesize using binary search start at\
-| | ... | 10GE linerate, step 10kpps, LT=0.5%.
-| | ... | IMIX_v4_1 = (28x64B; 16x570B; 4x1518B)
-| | ...
| | [Tags] | IMIX | 4C | PDRDISC | SKIP_PATCH
-| | ...
-| | [Template] | Discover NDR or PDR for 1lbvpp-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm
-| | wt=4 | rxq=2 | framesize=IMIX_v4_1 | min_rate=${10000} | search_type=PDR
+| | phy_cores=${4} | framesize=IMIX_v4_1 | search_type=PDR
diff --git a/tests/vpp/perf/vm_vhost/10ge2p1x710-1lbvpplacp-dot1q-l2xcbase-eth-2vhostvr1024-1vm-mrr.robot b/tests/vpp/perf/vm_vhost/10ge2p1x710-1lbvpplacp-dot1q-l2xcbase-eth-2vhostvr1024-1vm-mrr.robot
index d13b01015d..eac5a35a2f 100644
--- a/tests/vpp/perf/vm_vhost/10ge2p1x710-1lbvpplacp-dot1q-l2xcbase-eth-2vhostvr1024-1vm-mrr.robot
+++ b/tests/vpp/perf/vm_vhost/10ge2p1x710-1lbvpplacp-dot1q-l2xcbase-eth-2vhostvr1024-1vm-mrr.robot
@@ -31,6 +31,8 @@
| ... | dut1_node=${dut1} | dut1_vm_refs=${dut1_vm_refs}
| ... | dut2_node=${dut2} | dut2_vm_refs=${dut2_vm_refs}
| ...
+| Test Template | Local template
+| ...
| Documentation | *Raw results L2XC test cases with vhost and vpp link bonding*
| ...
| ... | *[Top] Network Topologies:* TG-DUT1-DUT2-TG 3-node circular topology
@@ -71,16 +73,21 @@
| ${traffic_profile}= | trex-sl-3n-ethip4-ip4src254
*** Keywords ***
-| Check RR for 1lbvpp-dot1q-l2xcbase-eth-2vhostvr1024-1vm
+| Local template
| | [Documentation]
-| | ... | [Cfg] DUT runs L2XC switching config with ${wt} thread, ${wt} phy\
-| | ... | core, ${rxq} receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for ${framesize} frames using single\
+| | ... | [Cfg] DUT runs L2XC switching config.
+| | ... | Each DUT uses ${phy_cores} physical core(s) for worker threads.
+| | ... | [Ver] Measure MaxReceivedRate for ${framesize}B frames using single\
| | ... | trial throughput test.
| | ...
-| | [Arguments] | ${framesize} | ${wt} | ${rxq}
+| | ... | *Arguments:*
+| | ... | - framesize - Framesize in Bytes in integer or string (IMIX_v4_1).
+| | ... | Type: integer, string
+| | ... | - phy_cores - Number of physical cores. Type: integer
+| | ... | - rxq - Number of RX queues, default value: ${None}. Type: integer
+| | ...
+| | [Arguments] | ${framesize} | ${phy_cores} | ${rxq}=${None}
| | ...
-| | # Test Variables required for test and test teardown
| | Set Test Variable | ${framesize}
| | ${get_framesize}= | Get Frame Size | ${framesize}
| | ${max_rate}= | Calculate pps | ${s_limit}
@@ -92,7 +99,7 @@
| | ${jumbo_frames}= | Set Variable If
| | ... | ${get_framesize + ${vlan_overhead}} < ${1522} | ${False} | ${True}
| | ...
-| | Given Add '${wt}' worker threads and '${rxq}' rxqueues in 3-node single-link circular topology
+| | Given Add worker threads and rxqueues to all DUTs | ${phy_cores} | ${rxq}
| | And Add PCI devices to all DUTs
| | And Add VLAN Strip Offload switch off between DUTs in 3-node single link topology
| | And Run Keyword If | ${get_framesize + ${vlan_overhead}} < ${1522}
@@ -115,148 +122,49 @@
*** Test Cases ***
| tc01-64B-1t1c-1lbvpplacp-dot1q-l2xcbase-eth-2vhostvr1024-1vm-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2XC switching config with 1 phy\
-| | ... | core, 1 receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 64B frames using single\
-| | ... | trial throughput test.
-| | ...
| | [Tags] | 64B | 1C
-| | ...
-| | [Template] | Check RR for 1lbvpp-dot1q-l2xcbase-eth-2vhostvr1024-1vm
-| | framesize=${64} | wt=1 | rxq=1
+| | framesize=${64} | phy_cores=${1}
| tc02-1518B-1t1c-1lbvpplacp-dot1q-l2xcbase-eth-2vhostvr1024-1vm-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2XC switching config with 1 phy\
-| | ... | core, 1 receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 1518B frames using single\
-| | ... | trial throughput test.
-| | ...
| | [Tags] | 1518B | 1C
-| | ...
-| | [Template] | Check RR for 1lbvpp-dot1q-l2xcbase-eth-2vhostvr1024-1vm
-| | framesize=${1518} | wt=1 | rxq=1
+| | framesize=${1518} | phy_cores=${1}
| tc03-9000B-1t1c-1lbvpplacp-dot1q-l2xcbase-eth-2vhostvr1024-1vm-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2XC switching config with 1 phy\
-| | ... | core, 1 receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 9000B frames using single\
-| | ... | trial throughput test.
-| | ...
| | [Tags] | 9000B | 1C
-| | ...
-| | [Template] | Check RR for 1lbvpp-dot1q-l2xcbase-eth-2vhostvr1024-1vm
-| | framesize=${9000} | wt=1 | rxq=1
+| | framesize=${9000} | phy_cores=${1}
| tc04-IMIX-1t1c-1lbvpplacp-dot1q-l2xcbase-eth-2vhostvr1024-1vm-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2XC switching config with 1 phy\
-| | ... | core, 1 receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for IMIX_v4_1 frames using single\
-| | ... | trial throughput test.
-| | ... | IMIX_v4_1 = (28x64B; 16x570B; 4x1518B)
-| | ...
| | [Tags] | IMIX | 1C
-| | ...
-| | [Template] | Check RR for 1lbvpp-dot1q-l2xcbase-eth-2vhostvr1024-1vm
-| | framesize=IMIX_v4_1 | wt=1 | rxq=1
+| | framesize=IMIX_v4_1 | phy_cores=${1}
| tc05-64B-2t2c-1lbvpplacp-dot1q-l2xcbase-eth-2vhostvr1024-1vm-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2XC switching config with 2 phy\
-| | ... | cores, 1 receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 64B frames using single\
-| | ... | trial throughput test.
-| | ...
| | [Tags] | 64B | 2C
-| | ...
-| | [Template] | Check RR for 1lbvpp-dot1q-l2xcbase-eth-2vhostvr1024-1vm
-| | framesize=${64} | wt=2 | rxq=1
+| | framesize=${64} | phy_cores=${2}
| tc06-1518B-2t2c-1lbvpplacp-dot1q-l2xcbase-eth-2vhostvr1024-1vm-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2XC switching config with 2 phy\
-| | ... | cores, 1 receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 1518B frames using single\
-| | ... | trial throughput test.
-| | ...
| | [Tags] | 1518B | 2C
-| | ...
-| | [Template] | Check RR for 1lbvpp-dot1q-l2xcbase-eth-2vhostvr1024-1vm
-| | framesize=${1518} | wt=2 | rxq=1
+| | framesize=${1518} | phy_cores=${2}
| tc07-9000B-2t2c-1lbvpplacp-dot1q-l2xcbase-eth-2vhostvr1024-1vm-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2XC switching config with 2 phy\
-| | ... | cores, 1 receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 9000B frames using single\
-| | ... | trial throughput test.
-| | ...
| | [Tags] | 9000B | 2C
-| | ...
-| | [Template] | Check RR for 1lbvpp-dot1q-l2xcbase-eth-2vhostvr1024-1vm
-| | framesize=${9000} | wt=2 | rxq=1
+| | framesize=${9000} | phy_cores=${2}
| tc08-IMIX-2t2c-1lbvpplacp-dot1q-l2xcbase-eth-2vhostvr1024-1vm-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2XC switching config with 2 phy\
-| | ... | cores, 1 receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for IMIX_v4_1 frames using single\
-| | ... | trial throughput test.
-| | ... | IMIX_v4_1 = (28x64B; 16x570B; 4x1518B)
-| | ...
| | [Tags] | IMIX | 2C
-| | ...
-| | [Template] | Check RR for 1lbvpp-dot1q-l2xcbase-eth-2vhostvr1024-1vm
-| | framesize=IMIX_v4_1 | wt=2 | rxq=1
+| | framesize=IMIX_v4_1 | phy_cores=${2}
| tc09-64B-4t4c-1lbvpplacp-dot1q-l2xcbase-eth-2vhostvr1024-1vm-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2XC switching config with 4 phy\
-| | ... | cores, 2 receive queues per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 64B frames using single\
-| | ... | trial throughput test.
-| | ...
| | [Tags] | 64B | 4C
-| | ...
-| | [Template] | Check RR for 1lbvpp-dot1q-l2xcbase-eth-2vhostvr1024-1vm
-| | framesize=${64} | wt=4 | rxq=2
+| | framesize=${64} | phy_cores=${4}
| tc10-1518B-4t4c-1lbvpplacp-dot1q-l2xcbase-eth-2vhostvr1024-1vm-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2XC switching config with 4 phy\
-| | ... | cores, 2 receive queues per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 1518B frames using single\
-| | ... | trial throughput test.
-| | ...
| | [Tags] | 1518B | 4C
-| | ...
-| | [Template] | Check RR for 1lbvpp-dot1q-l2xcbase-eth-2vhostvr1024-1vm
-| | framesize=${1518} | wt=4 | rxq=2
+| | framesize=${1518} | phy_cores=${4}
| tc11-9000B-4t4c-1lbvpplacp-dot1q-l2xcbase-eth-2vhostvr1024-1vm-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2XC switching config with 4 phy\
-| | ... | cores, 2 receive queues per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 9000B frames using single\
-| | ... | trial throughput test.
-| | ...
| | [Tags] | 9000B | 4C
-| | ...
-| | [Template] | Check RR for 1lbvpp-dot1q-l2xcbase-eth-2vhostvr1024-1vm
-| | framesize=${9000} | wt=4 | rxq=2
+| | framesize=${9000} | phy_cores=${4}
| tc12-IMIX-4t4c-1lbvpplacp-dot1q-l2xcbase-eth-2vhostvr1024-1vm-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2XC switching config with 4 phy\
-| | ... | cores, 2 receive queues per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for IMIX_v4_1 frames using single\
-| | ... | trial throughput test.
-| | ... | IMIX_v4_1 = (28x64B; 16x570B; 4x1518B)
-| | ...
| | [Tags] | IMIX | 4C
-| | ...
-| | [Template] | Check RR for 1lbvpp-dot1q-l2xcbase-eth-2vhostvr1024-1vm
-| | framesize=IMIX_v4_1 | wt=4 | rxq=2
+| | framesize=IMIX_v4_1 | phy_cores=${4}
diff --git a/tests/vpp/perf/vm_vhost/10ge2p1x710-1lbvpplacp-dot1q-l2xcbase-eth-2vhostvr1024-1vm-ndrpdrdisc.robot b/tests/vpp/perf/vm_vhost/10ge2p1x710-1lbvpplacp-dot1q-l2xcbase-eth-2vhostvr1024-1vm-ndrpdrdisc.robot
index 67d92170cd..c2e9bd9583 100644
--- a/tests/vpp/perf/vm_vhost/10ge2p1x710-1lbvpplacp-dot1q-l2xcbase-eth-2vhostvr1024-1vm-ndrpdrdisc.robot
+++ b/tests/vpp/perf/vm_vhost/10ge2p1x710-1lbvpplacp-dot1q-l2xcbase-eth-2vhostvr1024-1vm-ndrpdrdisc.robot
@@ -32,6 +32,8 @@
| ... | dut1_node=${dut1} | dut1_vm_refs=${dut1_vm_refs}
| ... | dut2_node=${dut2} | dut2_vm_refs=${dut2_vm_refs}
| ...
+| Test Template | Local template
+| ...
| Documentation | *RFC2544: Packet throughput L2XC test cases with vhost and
| ... | vpp link bonding*
| ...
@@ -81,16 +83,10 @@
| ${traffic_profile}= | trex-sl-3n-ethip4-ip4src254
*** Keywords ***
-| Discover NDR or PDR for 1lbvpp-dot1q-l2xcbase-eth-2vhostvr1024-1vm
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2XC switching config with ${wt} thread, ${wt} phy\
-| | ... | core, ${rxq} receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for ${framesize} frames using single\
-| | ... | trial throughput test.
-| | ...
-| | [Arguments] | ${wt} | ${rxq} | ${framesize} | ${min_rate} | ${search_type}
+| Local template
+| | [Arguments] | ${phy_cores} | ${framesize} | ${search_type} | ${rxq}=${None}
+| | ... | ${min_rate}=${10000}
| | ...
-| | # Test Variables required for test and test teardown
| | Set Test Variable | ${framesize}
| | Set Test Variable | ${min_rate}
| | ${get_framesize}= | Get Frame Size | ${framesize}
@@ -106,7 +102,7 @@
| | ${jumbo_frames}= | Set Variable If
| | ... | ${get_framesize + ${vlan_overhead}} < ${1522} | ${False} | ${True}
| | ...
-| | Given Add '${wt}' worker threads and '${rxq}' rxqueues in 3-node single-link circular topology
+| | Given Add worker threads and rxqueues to all DUTs | ${phy_cores} | ${rxq}
| | And Add PCI devices to all DUTs
| | And Add VLAN Strip Offload switch off between DUTs in 3-node single link topology
| | And Run Keyword If | ${get_framesize + ${vlan_overhead}} < ${1522}
@@ -136,295 +132,97 @@
*** Test Cases ***
| tc01-64B-1t1c-1lbvpplacp-dot1q-l2xcbase-eth-2vhostvr1024-1vm-ndrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2XC switching config with 1 phy core,\
-| | ... | 1 receive queue per NIC port.
-| | ... | [Ver] Find NDR for 64 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 10kpps.
-| | ...
| | [Tags] | 64B | 1C | NDRDISC | TEST
-| | ...
-| | [Template] | Discover NDR or PDR for 1lbvpp-dot1q-l2xcbase-eth-2vhostvr1024-1vm
-| | wt=1 | rxq=1 | framesize=${64} | min_rate=${10000} | search_type=NDR
+| | phy_cores=${1} | framesize=${64} | search_type=NDR
| tc02-64B-1t1c-1lbvpplacp-dot1q-l2xcbase-eth-2vhostvr1024-1vm-pdrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2XC switching config with 1 phy core,\
-| | ... | 1 receive queue per NIC port.
-| | ... | [Ver] Find PDR for 64 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 10kpps, LT=0.5%.
-| | ...
| | [Tags] | 64B | 1C | PDRDISC | SKIP_PATCH
-| | ...
-| | [Template] | Discover NDR or PDR for 1lbvpp-dot1q-l2xcbase-eth-2vhostvr1024-1vm
-| | wt=1 | rxq=1 | framesize=${64} | min_rate=${10000} | search_type=PDR
+| | phy_cores=${1} | framesize=${64} | search_type=PDR
| tc03-1518B-1t1c-1lbvpplacp-dot1q-l2xcbase-eth-2vhostvr1024-1vm-ndrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2XC switching config with 1 phy core,\
-| | ... | 1 receive queue per NIC port.
-| | ... | [Ver] Find NDR for 1518 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 10kpps.
-| | ...
| | [Tags] | 1518B | 1C | NDRDISC
-| | ...
-| | [Template] | Discover NDR or PDR for 1lbvpp-dot1q-l2xcbase-eth-2vhostvr1024-1vm
-| | wt=1 | rxq=1 | framesize=${1518} | min_rate=${10000} | search_type=NDR
+| | phy_cores=${1} | framesize=${1518} | search_type=NDR
| tc04-1518B-1t1c-1lbvpplacp-dot1q-l2xcbase-eth-2vhostvr1024-1vm-pdrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2XC switching config with 1 phy core,\
-| | ... | 1 receive queue per NIC port.
-| | ... | [Ver] Find PDR for 1518 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 10kpps, LT=0.5%.
-| | ...
| | [Tags] | 1518B | 1C | PDRDISC | SKIP_PATCH
-| | ...
-| | [Template] | Discover NDR or PDR for 1lbvpp-dot1q-l2xcbase-eth-2vhostvr1024-1vm
-| | wt=1 | rxq=1 | framesize=${1518} | min_rate=${10000} | search_type=PDR
+| | phy_cores=${1} | framesize=${1518} | search_type=PDR
| tc05-9000B-1t1c-1lbvpplacp-dot1q-l2xcbase-eth-2vhostvr1024-1vm-ndrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2XC switching config with 1 phy core,\
-| | ... | 1 receive queue per NIC port.
-| | ... | [Ver] Find NDR for 9000 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 10kpps.
-| | ...
| | [Tags] | 9000B | 1C | NDRDISC
-| | ...
-| | [Template] | Discover NDR or PDR for 1lbvpp-dot1q-l2xcbase-eth-2vhostvr1024-1vm
-| | wt=1 | rxq=1 | framesize=${9000} | min_rate=${10000} | search_type=NDR
+| | phy_cores=${1} | framesize=${9000} | search_type=NDR
| tc06-9000B-1t1c-1lbvpplacp-dot1q-l2xcbase-eth-2vhostvr1024-1vm-pdrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2XC switching config with 1 phy core,\
-| | ... | 1 receive queue per NIC port.
-| | ... | [Ver] Find PDR for 9000 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 10kpps, LT=0.5%.
-| | ...
| | [Tags] | 9000B | 1C | PDRDISC | SKIP_PATCH
-| | ...
-| | [Template] | Discover NDR or PDR for 1lbvpp-dot1q-l2xcbase-eth-2vhostvr1024-1vm
-| | wt=1 | rxq=1 | framesize=${9000} | min_rate=${10000} | search_type=PDR
+| | phy_cores=${1} | framesize=${9000} | search_type=PDR
| tc07-IMIX-1t1c-1lbvpplacp-dot1q-l2xcbase-eth-2vhostvr1024-1vm-ndrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2XC switching config with 1 phy core,\
-| | ... | 1 receive queue per NIC port.
-| | ... | [Ver] Find NDR for IMIX_v4_1 framesize using binary search start at\
-| | ... | 10GE linerate, step 10kpps.
-| | ... | IMIX_v4_1 = (28x64B; 16x570B; 4x1518B)
-| | ...
| | [Tags] | IMIX | 1C | NDRDISC
-| | ...
-| | [Template] | Discover NDR or PDR for 1lbvpp-dot1q-l2xcbase-eth-2vhostvr1024-1vm
-| | wt=1 | rxq=1 | framesize=IMIX_v4_1 | min_rate=${10000} | search_type=NDR
+| | phy_cores=${1} | framesize=IMIX_v4_1 | search_type=NDR
| tc08-IMIX-1t1c-1lbvpplacp-dot1q-l2xcbase-eth-2vhostvr1024-1vm-pdrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2XC switching config with 1 phy core,\
-| | ... | 1 receive queue per NIC port.
-| | ... | [Ver] Find PDR for IMIX_v4_1 framesize using binary search start at\
-| | ... | 10GE linerate, step 10kpps, LT=0.5%.
-| | ... | IMIX_v4_1 = (28x64B; 16x570B; 4x1518B)
-| | ...
| | [Tags] | IMIX | 1C | PDRDISC | SKIP_PATCH
-| | ...
-| | [Template] | Discover NDR or PDR for 1lbvpp-dot1q-l2xcbase-eth-2vhostvr1024-1vm
-| | wt=1 | rxq=1 | framesize=IMIX_v4_1 | min_rate=${10000} | search_type=PDR
+| | phy_cores=${1} | framesize=IMIX_v4_1 | search_type=PDR
| tc09-64B-2t2c-1lbvpplacp-dot1q-l2xcbase-eth-2vhostvr1024-1vm-ndrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2XC switching config with 2 phy cores,\
-| | ... | 1 receive queue per NIC port.
-| | ... | [Ver] Find NDR for 64 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 10kpps.
-| | ...
| | [Tags] | 64B | 2C | NDRDISC
-| | ...
-| | [Template] | Discover NDR or PDR for 1lbvpp-dot1q-l2xcbase-eth-2vhostvr1024-1vm
-| | wt=2 | rxq=1 | framesize=${64} | min_rate=${10000} | search_type=NDR
+| | phy_cores=${2} | framesize=${64} | search_type=NDR
| tc10-64B-2t2c-1lbvpplacp-dot1q-l2xcbase-eth-2vhostvr1024-1vm-pdrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2XC switching config with 2 phy cores,\
-| | ... | 1 receive queue per NIC port.
-| | ... | [Ver] Find PDR for 64 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 10kpps, LT=0.5%.
-| | ...
| | [Tags] | 64B | 2C | PDRDISC | SKIP_PATCH
-| | ...
-| | [Template] | Discover NDR or PDR for 1lbvpp-dot1q-l2xcbase-eth-2vhostvr1024-1vm
-| | wt=2 | rxq=1 | framesize=${64} | min_rate=${10000} | search_type=PDR
+| | phy_cores=${2} | framesize=${64} | search_type=PDR
| tc11-1518B-2t2c-1lbvpplacp-dot1q-l2xcbase-eth-2vhostvr1024-1vm-ndrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2XC switching config with 2 phy cores,\
-| | ... | 1 receive queue per NIC port.
-| | ... | [Ver] Find NDR for 1518 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 10kpps.
-| | ...
| | [Tags] | 1518B | 2C | NDRDISC | SKIP_PATCH
-| | ...
-| | [Template] | Discover NDR or PDR for 1lbvpp-dot1q-l2xcbase-eth-2vhostvr1024-1vm
-| | wt=2 | rxq=1 | framesize=${1518} | min_rate=${10000} | search_type=NDR
+| | phy_cores=${2} | framesize=${1518} | search_type=NDR
| tc12-1518B-2t2c-1lbvpplacp-dot1q-l2xcbase-eth-2vhostvr1024-1vm-pdrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2XC switching config with 2 phy cores,\
-| | ... | 1 receive queue per NIC port.
-| | ... | [Ver] Find PDR for 1518 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 10kpps, LT=0.5%.
-| | ...
| | [Tags] | 1518B | 2C | PDRDISC | SKIP_PATCH
-| | ...
-| | [Template] | Discover NDR or PDR for 1lbvpp-dot1q-l2xcbase-eth-2vhostvr1024-1vm
-| | wt=2 | rxq=1 | framesize=${1518} | min_rate=${10000} | search_type=PDR
+| | phy_cores=${2} | framesize=${1518} | search_type=PDR
| tc13-9000B-2t2c-1lbvpplacp-dot1q-l2xcbase-eth-2vhostvr1024-1vm-ndrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2XC switching config with 2 phy cores,\
-| | ... | 1 receive queue per NIC port.
-| | ... | [Ver] Find NDR for 9000 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 10kpps.
-| | ...
| | [Tags] | 9000B | 2C | NDRDISC | SKIP_PATCH
-| | ...
-| | [Template] | Discover NDR or PDR for 1lbvpp-dot1q-l2xcbase-eth-2vhostvr1024-1vm
-| | wt=2 | rxq=1 | framesize=${9000} | min_rate=${10000} | search_type=NDR
+| | phy_cores=${2} | framesize=${9000} | search_type=NDR
| tc14-9000B-2t2c-1lbvpplacp-dot1q-l2xcbase-eth-2vhostvr1024-1vm-pdrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2XC switching config with 2 phy cores,\
-| | ... | 1 receive queue per NIC port.
-| | ... | [Ver] Find PDR for 9000 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 10kpps, LT=0.5%.
-| | ...
| | [Tags] | 9000B | 2C | PDRDISC | SKIP_PATCH
-| | ...
-| | [Template] | Discover NDR or PDR for 1lbvpp-dot1q-l2xcbase-eth-2vhostvr1024-1vm
-| | wt=2 | rxq=1 | framesize=${9000} | min_rate=${10000} | search_type=PDR
+| | phy_cores=${2} | framesize=${9000} | search_type=PDR
| tc15-IMIX-2t2c-1lbvpplacp-dot1q-l2xcbase-eth-2vhostvr1024-1vm-ndrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2XC switching config with 2 phy cores,\
-| | ... | 1 receive queue per NIC port.
-| | ... | [Ver] Find NDR for IMIX_v4_1 framesize using binary search start at\
-| | ... | 10GE linerate, step 10kpps.
-| | ... | IMIX_v4_1 = (28x64B; 16x570B; 4x1518B)
-| | ...
| | [Tags] | IMIX | 2C | NDRDISC | SKIP_PATCH
-| | ...
-| | [Template] | Discover NDR or PDR for 1lbvpp-dot1q-l2xcbase-eth-2vhostvr1024-1vm
-| | wt=2 | rxq=1 | framesize=IMIX_v4_1 | min_rate=${10000} | search_type=NDR
+| | phy_cores=${2} | framesize=IMIX_v4_1 | search_type=NDR
| tc16-IMIX-2t2c-1lbvpplacp-dot1q-l2xcbase-eth-2vhostvr1024-1vm-pdrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2XC switching config with 2 phy cores,\
-| | ... | 1 receive queue per NIC port.
-| | ... | [Ver] Find PDR for IMIX_v4_1 framesize using binary search start at\
-| | ... | 10GE linerate, step 10kpps.
-| | ... | IMIX_v4_1 = (28x64B; 16x570B; 4x1518B)
-| | ...
| | [Tags] | IMIX | 2C | PDRDISC | SKIP_PATCH
-| | ...
-| | [Template] | Discover NDR or PDR for 1lbvpp-dot1q-l2xcbase-eth-2vhostvr1024-1vm
-| | wt=2 | rxq=1 | framesize=IMIX_v4_1 | min_rate=${10000} | search_type=PDR
+| | phy_cores=${2} | framesize=IMIX_v4_1 | search_type=PDR
| tc17-64B-4t4c-1lbvpplacp-dot1q-l2xcbase-eth-2vhostvr1024-1vm-ndrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2XC switching config with 4 phy cores,\
-| | ... | 2 receive queues per NIC port.
-| | ... | [Ver] Find NDR for 64 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 10kpps.
-| | ...
| | [Tags] | 64B | 4C | NDRDISC
-| | ...
-| | [Template] | Discover NDR or PDR for 1lbvpp-dot1q-l2xcbase-eth-2vhostvr1024-1vm
-| | wt=4 | rxq=2 | framesize=${64} | min_rate=${10000} | search_type=NDR
+| | phy_cores=${4} | framesize=${64} | search_type=NDR
| tc18-64B-4t4c-1lbvpplacp-dot1q-l2xcbase-eth-2vhostvr1024-1vm-pdrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2XC switching config with 4 phy cores,\
-| | ... | 2 receive queues per NIC port.
-| | ... | [Ver] Find PDR for 64 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 10kpps, LT=0.5%.
-| | ...
| | [Tags] | 64B | 4C | PDRDISC | SKIP_PATCH
-| | ...
-| | [Template] | Discover NDR or PDR for 1lbvpp-dot1q-l2xcbase-eth-2vhostvr1024-1vm
-| | wt=4 | rxq=2 | framesize=${64} | min_rate=${10000} | search_type=PDR
+| | phy_cores=${4} | framesize=${64} | search_type=PDR
| tc19-1518B-4t4c-1lbvpplacp-dot1q-l2xcbase-eth-2vhostvr1024-1vm-ndrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2XC switching config with 4 phy cores,\
-| | ... | 2 receive queues per NIC port.
-| | ... | [Ver] Find NDR for 1518 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 10kpps.
-| | ...
| | [Tags] | 1518B | 4C | NDRDISC | SKIP_PATCH
-| | ...
-| | [Template] | Discover NDR or PDR for 1lbvpp-dot1q-l2xcbase-eth-2vhostvr1024-1vm
-| | wt=4 | rxq=2 | framesize=${1518} | min_rate=${10000} | search_type=NDR
+| | phy_cores=${4} | framesize=${1518} | search_type=NDR
| tc20-1518B-4t4c-1lbvpplacp-dot1q-l2xcbase-eth-2vhostvr1024-1vm-pdrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2XC switching config with 4 phy cores,\
-| | ... | 2 receive queues per NIC port.
-| | ... | [Ver] Find PDR for 1518 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 10kpps, LT=0.5%.
-| | ...
| | [Tags] | 1518B | 4C | PDRDISC | SKIP_PATCH
-| | ...
-| | [Template] | Discover NDR or PDR for 1lbvpp-dot1q-l2xcbase-eth-2vhostvr1024-1vm
-| | wt=4 | rxq=2 | framesize=${1518} | min_rate=${10000} | search_type=PDR
+| | phy_cores=${4} | framesize=${1518} | search_type=PDR
| tc21-9000B-4t4c-1lbvpplacp-dot1q-l2xcbase-eth-2vhostvr1024-1vm-ndrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2XC switching config with 4 phy cores,\
-| | ... | 2 receive queues per NIC port.
-| | ... | [Ver] Find NDR for 9000 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 10kpps.
-| | ...
| | [Tags] | 9000B | 4C | NDRDISC | SKIP_PATCH
-| | ...
-| | [Template] | Discover NDR or PDR for 1lbvpp-dot1q-l2xcbase-eth-2vhostvr1024-1vm
-| | wt=4 | rxq=2 | framesize=${9000} | min_rate=${10000} | search_type=NDR
+| | phy_cores=${4} | framesize=${9000} | search_type=NDR
| tc22-9000B-4t4c-1lbvpplacp-dot1q-l2xcbase-eth-2vhostvr1024-1vm-pdrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2XC switching config with 4 phy cores,\
-| | ... | 2 receive queues per NIC port.
-| | ... | [Ver] Find PDR for 9000 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 10kpps, LT=0.5%.
-| | ...
| | [Tags] | 9000B | 4C | PDRDISC | SKIP_PATCH
-| | ...
-| | [Template] | Discover NDR or PDR for 1lbvpp-dot1q-l2xcbase-eth-2vhostvr1024-1vm
-| | wt=4 | rxq=2 | framesize=${9000} | min_rate=${10000} | search_type=PDR
+| | phy_cores=${4} | framesize=${9000} | search_type=PDR
| tc23-IMIX-4t4c-1lbvpplacp-dot1q-l2xcbase-eth-2vhostvr1024-1vm-ndrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2XC switching config with 4 phy cores,\
-| | ... | 2 receive queues per NIC port.
-| | ... | [Ver] Find NDR for IMIX_v4_1 framesize using binary search start at\
-| | ... | 10GE linerate, step 10kpps.
-| | ... | IMIX_v4_1 = (28x64B; 16x570B; 4x1518B)
-| | ...
| | [Tags] | IMIX | 4C | NDRDISC | SKIP_PATCH
-| | ...
-| | [Template] | Discover NDR or PDR for 1lbvpp-dot1q-l2xcbase-eth-2vhostvr1024-1vm
-| | wt=4 | rxq=2 | framesize=IMIX_v4_1 | min_rate=${10000} | search_type=NDR
+| | phy_cores=${4} | framesize=IMIX_v4_1 | search_type=NDR
| tc24-IMIX-4t4c-1lbvpplacp-dot1q-l2xcbase-eth-2vhostvr1024-1vm-pdrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2XC switching config with 4 phy cores,\
-| | ... | 2 receive queues per NIC port.
-| | ... | [Ver] Find PDR for IMIX_v4_1 framesize using binary search start at\
-| | ... | 10GE linerate, step 10kpps, LT=0.5%.
-| | ... | IMIX_v4_1 = (28x64B; 16x570B; 4x1518B)
-| | ...
| | [Tags] | IMIX | 4C | PDRDISC | SKIP_PATCH
-| | ...
-| | [Template] | Discover NDR or PDR for 1lbvpp-dot1q-l2xcbase-eth-2vhostvr1024-1vm
-| | wt=4 | rxq=2 | framesize=IMIX_v4_1 | min_rate=${10000} | search_type=PDR
+| | phy_cores=${4} | framesize=IMIX_v4_1 | search_type=PDR
diff --git a/tests/vpp/perf/vm_vhost/10ge2p1x710-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-mrr.robot b/tests/vpp/perf/vm_vhost/10ge2p1x710-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-mrr.robot
index 5f9ca6979f..8c795fa76d 100644
--- a/tests/vpp/perf/vm_vhost/10ge2p1x710-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-mrr.robot
+++ b/tests/vpp/perf/vm_vhost/10ge2p1x710-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-mrr.robot
@@ -28,6 +28,8 @@
| ... | dut1_node=${dut1} | dut1_vm_refs=${dut1_vm_refs}
| ... | dut2_node=${dut2} | dut2_vm_refs=${dut2_vm_refs}
| ...
+| Test Template | Local template
+| ...
| Documentation | *Raw results L2BD test cases with vhost*
| ...
| ... | *[Top] Network Topologies:* TG-DUT1-DUT2-TG 3-node circular topology
@@ -65,16 +67,21 @@
| ${traffic_profile}= | trex-sl-3n-ethip4-ip4src254
*** Keywords ***
-| Check RR for dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm
+| Local template
| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with ${wt} thread, ${wt} phy\
-| | ... | core, ${rxq} receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for ${framesize} frames using single\
+| | ... | [Cfg] DUT runs L2BD switching config.
+| | ... | Each DUT uses ${phy_cores} physical core(s) for worker threads.
+| | ... | [Ver] Measure MaxReceivedRate for ${framesize}B frames using single\
| | ... | trial throughput test.
| | ...
-| | [Arguments] | ${framesize} | ${wt} | ${rxq}
+| | ... | *Arguments:*
+| | ... | - framesize - Framesize in Bytes in integer or string (IMIX_v4_1).
+| | ... | Type: integer, string
+| | ... | - phy_cores - Number of physical cores. Type: integer
+| | ... | - rxq - Number of RX queues, default value: ${None}. Type: integer
+| | ...
+| | [Arguments] | ${framesize} | ${phy_cores} | ${rxq}=${None}
| | ...
-| | # Test Variables required for test and test teardown
| | Set Test Variable | ${framesize}
| | ${get_framesize}= | Get Frame Size | ${framesize}
| | ${max_rate}= | Calculate pps | ${s_limit} | ${get_framesize}
@@ -85,7 +92,7 @@
| | ${jumbo_frames}= | Set Variable If | ${get_framesize} < ${1522}
| | ... | ${False} | ${True}
| | ...
-| | Given Add '${wt}' worker threads and '${rxq}' rxqueues in 3-node single-link circular topology
+| | Given Add worker threads and rxqueues to all DUTs | ${phy_cores} | ${rxq}
| | And Add PCI devices to all DUTs
| | And Run Keyword If | ${get_framesize} < ${1522}
| | ... | Add no multi seg to all DUTs
@@ -106,148 +113,49 @@
*** Test Cases ***
| tc01-64B-1t1c-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with 1 phy\
-| | ... | core, 1 receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 64B frames using single\
-| | ... | trial throughput test.
-| | ...
| | [Tags] | 64B | 1C
-| | ...
-| | [Template] | Check RR for dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm
-| | framesize=${64} | wt=1 | rxq=1
+| | framesize=${64} | phy_cores=${1}
| tc02-1518B-1t1c-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with 1 phy\
-| | ... | core, 1 receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 1518B frames using single\
-| | ... | trial throughput test.
-| | ...
| | [Tags] | 1518B | 1C
-| | ...
-| | [Template] | Check RR for dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm
-| | framesize=${1518} | wt=1 | rxq=1
+| | framesize=${1518} | phy_cores=${1}
| tc03-9000B-1t1c-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with 1 phy\
-| | ... | core, 1 receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 9000B frames using single\
-| | ... | trial throughput test.
-| | ...
| | [Tags] | 9000B | 1C
-| | ...
-| | [Template] | Check RR for dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm
-| | framesize=${9000} | wt=1 | rxq=1
+| | framesize=${9000} | phy_cores=${1}
| tc04-IMIX-1t1c-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with 1 phy\
-| | ... | core, 1 receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for IMIX_v4_1 frames using single\
-| | ... | trial throughput test.
-| | ... | IMIX_v4_1 = (28x64B; 16x570B; 4x1518B)
-| | ...
| | [Tags] | IMIX | 1C
-| | ...
-| | [Template] | Check RR for dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm
-| | framesize=IMIX_v4_1 | wt=1 | rxq=1
+| | framesize=IMIX_v4_1 | phy_cores=${1}
| tc05-64B-2t2c-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with 2 phy\
-| | ... | cores, 1 receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 64B frames using single\
-| | ... | trial throughput test.
-| | ...
| | [Tags] | 64B | 2C
-| | ...
-| | [Template] | Check RR for dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm
-| | framesize=${64} | wt=2 | rxq=1
+| | framesize=${64} | phy_cores=${2}
| tc06-1518B-2t2c-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with 2 phy\
-| | ... | cores, 1 receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 1518B frames using single\
-| | ... | trial throughput test.
-| | ...
| | [Tags] | 1518B | 2C
-| | ...
-| | [Template] | Check RR for dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm
-| | framesize=${1518} | wt=2 | rxq=1
+| | framesize=${1518} | phy_cores=${2}
| tc07-9000B-2t2c-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with 2 phy\
-| | ... | cores, 1 receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 9000B frames using single\
-| | ... | trial throughput test.
-| | ...
| | [Tags] | 9000B | 2C
-| | ...
-| | [Template] | Check RR for dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm
-| | framesize=${9000} | wt=2 | rxq=1
+| | framesize=${9000} | phy_cores=${2}
| tc08-IMIX-2t2c-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with 2 phy\
-| | ... | cores, 1 receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for IMIX_v4_1 frames using single\
-| | ... | trial throughput test.
-| | ... | IMIX_v4_1 = (28x64B; 16x570B; 4x1518B)
-| | ...
| | [Tags] | IMIX | 2C
-| | ...
-| | [Template] | Check RR for dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm
-| | framesize=IMIX_v4_1 | wt=2 | rxq=1
+| | framesize=IMIX_v4_1 | phy_cores=${2}
| tc09-64B-4t4c-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with 4 phy\
-| | ... | cores, 2 receive queues per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 64B frames using single\
-| | ... | trial throughput test.
-| | ...
| | [Tags] | 64B | 4C
-| | ...
-| | [Template] | Check RR for dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm
-| | framesize=${64} | wt=4 | rxq=2
+| | framesize=${64} | phy_cores=${4}
| tc10-1518B-4t4c-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with 4 phy\
-| | ... | cores, 2 receive queues per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 1518B frames using single\
-| | ... | trial throughput test.
-| | ...
| | [Tags] | 1518B | 4C
-| | ...
-| | [Template] | Check RR for dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm
-| | framesize=${1518} | wt=4 | rxq=2
+| | framesize=${1518} | phy_cores=${4}
| tc11-9000B-4t4c-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with 4 phy\
-| | ... | cores, 2 receive queues per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 9000B frames using single\
-| | ... | trial throughput test.
-| | ...
| | [Tags] | 9000B | 4C
-| | ...
-| | [Template] | Check RR for dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm
-| | framesize=${9000} | wt=4 | rxq=2
+| | framesize=${9000} | phy_cores=${4}
| tc12-IMIX-4t4c-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with 4 phy\
-| | ... | cores, 2 receive queues per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for IMIX_v4_1 frames using single\
-| | ... | trial throughput test.
-| | ... | IMIX_v4_1 = (28x64B; 16x570B; 4x1518B)
-| | ...
| | [Tags] | IMIX | 4C
-| | ...
-| | [Template] | Check RR for dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm
-| | framesize=IMIX_v4_1 | wt=4 | rxq=2
+| | framesize=IMIX_v4_1 | phy_cores=${4}
diff --git a/tests/vpp/perf/vm_vhost/10ge2p1x710-dot1q-l2xcbase-eth-2vhostvr1024-1vm-mrr.robot b/tests/vpp/perf/vm_vhost/10ge2p1x710-dot1q-l2xcbase-eth-2vhostvr1024-1vm-mrr.robot
index dad126c76e..da3dc137bb 100644
--- a/tests/vpp/perf/vm_vhost/10ge2p1x710-dot1q-l2xcbase-eth-2vhostvr1024-1vm-mrr.robot
+++ b/tests/vpp/perf/vm_vhost/10ge2p1x710-dot1q-l2xcbase-eth-2vhostvr1024-1vm-mrr.robot
@@ -27,6 +27,8 @@
| ... | dut1_node=${dut1} | dut1_vm_refs=${dut1_vm_refs}
| ... | dut2_node=${dut2} | dut2_vm_refs=${dut2_vm_refs}
| ...
+| Test Template | Local template
+| ...
| Documentation | *Raw results L2XC test cases with vhost*
| ...
| ... | *[Top] Network Topologies:* TG-DUT1-DUT2-TG 3-node circular topology
@@ -62,16 +64,21 @@
| ${traffic_profile}= | trex-sl-3n-ethip4-ip4src254
*** Keywords ***
-| Check RR for dot1q-l2xcbase-eth-2vhostvr1024-1vm
+| Local template
| | [Documentation]
-| | ... | [Cfg] DUT runs L2XC switching config with ${wt} thread, ${wt} phy\
-| | ... | core, ${rxq} receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for ${framesize} frames using single\
+| | ... | [Cfg] DUT runs L2XC switching config.
+| | ... | Each DUT uses ${phy_cores} physical core(s) for worker threads.
+| | ... | [Ver] Measure MaxReceivedRate for ${framesize}B frames using single\
| | ... | trial throughput test.
| | ...
-| | [Arguments] | ${framesize} | ${wt} | ${rxq}
+| | ... | *Arguments:*
+| | ... | - framesize - Framesize in Bytes in integer or string (IMIX_v4_1).
+| | ... | Type: integer, string
+| | ... | - phy_cores - Number of physical cores. Type: integer
+| | ... | - rxq - Number of RX queues, default value: ${None}. Type: integer
+| | ...
+| | [Arguments] | ${framesize} | ${phy_cores} | ${rxq}=${None}
| | ...
-| | # Test Variables required for test and test teardown
| | Set Test Variable | ${framesize}
| | ${get_framesize}= | Get Frame Size | ${framesize}
| | ${max_rate}= | Calculate pps | ${s_limit} | ${get_framesize}
@@ -82,7 +89,7 @@
| | ${jumbo_frames}= | Set Variable If | ${get_framesize} < ${1522}
| | ... | ${False} | ${True}
| | ...
-| | Given Add '${wt}' worker threads and '${rxq}' rxqueues in 3-node single-link circular topology
+| | Given Add worker threads and rxqueues to all DUTs | ${phy_cores} | ${rxq}
| | And Add PCI devices to all DUTs
| | And Run Keyword If | ${get_framesize} < ${1522}
| | ... | Add no multi seg to all DUTs
@@ -102,148 +109,49 @@
*** Test Cases ***
| tc01-64B-1t1c-dot1q-l2xcbase-eth-2vhostvr1024-1vm-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2XC switching config with 1 phy\
-| | ... | core, 1 receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 64B frames using single\
-| | ... | trial throughput test.
-| | ...
| | [Tags] | 64B | 1C
-| | ...
-| | [Template] | Check RR for dot1q-l2xcbase-eth-2vhostvr1024-1vm
-| | framesize=${64} | wt=1 | rxq=1
+| | framesize=${64} | phy_cores=${1}
| tc02-1518B-1t1c-dot1q-l2xcbase-eth-2vhostvr1024-1vm-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2XC switching config with 1 phy\
-| | ... | core, 1 receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 1518B frames using single\
-| | ... | trial throughput test.
-| | ...
| | [Tags] | 1518B | 1C
-| | ...
-| | [Template] | Check RR for dot1q-l2xcbase-eth-2vhostvr1024-1vm
-| | framesize=${1518} | wt=1 | rxq=1
+| | framesize=${1518} | phy_cores=${1}
| tc03-9000B-1t1c-dot1q-l2xcbase-eth-2vhostvr1024-1vm-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2XC switching config with 1 phy\
-| | ... | core, 1 receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 9000B frames using single\
-| | ... | trial throughput test.
-| | ...
| | [Tags] | 9000B | 1C
-| | ...
-| | [Template] | Check RR for dot1q-l2xcbase-eth-2vhostvr1024-1vm
-| | framesize=${9000} | wt=1 | rxq=1
+| | framesize=${9000} | phy_cores=${1}
| tc04-IMIX-1t1c-dot1q-l2xcbase-eth-2vhostvr1024-1vm-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2XC switching config with 1 phy\
-| | ... | core, 1 receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for IMIX_v4_1 frames using single\
-| | ... | trial throughput test.
-| | ... | IMIX_v4_1 = (28x64B; 16x570B; 4x1518B)
-| | ...
| | [Tags] | IMIX | 1C
-| | ...
-| | [Template] | Check RR for dot1q-l2xcbase-eth-2vhostvr1024-1vm
-| | framesize=IMIX_v4_1 | wt=1 | rxq=1
+| | framesize=IMIX_v4_1 | phy_cores=${1}
| tc05-64B-2t2c-dot1q-l2xcbase-eth-2vhostvr1024-1vm-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2XC switching config with 2 phy\
-| | ... | cores, 1 receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 64B frames using single\
-| | ... | trial throughput test.
-| | ...
| | [Tags] | 64B | 2C
-| | ...
-| | [Template] | Check RR for dot1q-l2xcbase-eth-2vhostvr1024-1vm
-| | framesize=${64} | wt=2 | rxq=1
+| | framesize=${64} | phy_cores=${2}
| tc06-1518B-2t2c-dot1q-l2xcbase-eth-2vhostvr1024-1vm-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2XC switching config with 2 phy\
-| | ... | cores, 1 receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 1518B frames using single\
-| | ... | trial throughput test.
-| | ...
| | [Tags] | 1518B | 2C
-| | ...
-| | [Template] | Check RR for dot1q-l2xcbase-eth-2vhostvr1024-1vm
-| | framesize=${1518} | wt=2 | rxq=1
+| | framesize=${1518} | phy_cores=${2}
| tc07-9000B-2t2c-dot1q-l2xcbase-eth-2vhostvr1024-1vm-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2XC switching config with 2 phy\
-| | ... | cores, 1 receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 9000B frames using single\
-| | ... | trial throughput test.
-| | ...
| | [Tags] | 9000B | 2C
-| | ...
-| | [Template] | Check RR for dot1q-l2xcbase-eth-2vhostvr1024-1vm
-| | framesize=${9000} | wt=2 | rxq=1
+| | framesize=${9000} | phy_cores=${2}
| tc08-IMIX-2t2c-dot1q-l2xcbase-eth-2vhostvr1024-1vm-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2XC switching config with 2 phy\
-| | ... | cores, 1 receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for IMIX_v4_1 frames using single\
-| | ... | trial throughput test.
-| | ... | IMIX_v4_1 = (28x64B; 16x570B; 4x1518B)
-| | ...
| | [Tags] | IMIX | 2C
-| | ...
-| | [Template] | Check RR for dot1q-l2xcbase-eth-2vhostvr1024-1vm
-| | framesize=IMIX_v4_1 | wt=2 | rxq=1
+| | framesize=IMIX_v4_1 | phy_cores=${2}
| tc09-64B-4t4c-dot1q-l2xcbase-eth-2vhostvr1024-1vm-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2XC switching config with 4 phy\
-| | ... | cores, 2 receive queues per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 64B frames using single\
-| | ... | trial throughput test.
-| | ...
| | [Tags] | 64B | 4C
-| | ...
-| | [Template] | Check RR for dot1q-l2xcbase-eth-2vhostvr1024-1vm
-| | framesize=${64} | wt=4 | rxq=2
+| | framesize=${64} | phy_cores=${4}
| tc10-1518B-4t4c-dot1q-l2xcbase-eth-2vhostvr1024-1vm-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2XC switching config with 4 phy\
-| | ... | cores, 2 receive queues per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 1518B frames using single\
-| | ... | trial throughput test.
-| | ...
| | [Tags] | 1518B | 4C
-| | ...
-| | [Template] | Check RR for dot1q-l2xcbase-eth-2vhostvr1024-1vm
-| | framesize=${1518} | wt=4 | rxq=2
+| | framesize=${1518} | phy_cores=${4}
| tc11-9000B-4t4c-dot1q-l2xcbase-eth-2vhostvr1024-1vm-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2XC switching config with 4 phy\
-| | ... | cores, 2 receive queues per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 9000B frames using single\
-| | ... | trial throughput test.
-| | ...
| | [Tags] | 9000B | 4C
-| | ...
-| | [Template] | Check RR for dot1q-l2xcbase-eth-2vhostvr1024-1vm
-| | framesize=${9000} | wt=4 | rxq=2
+| | framesize=${9000} | phy_cores=${4}
| tc12-IMIX-4t4c-dot1q-l2xcbase-eth-2vhostvr1024-1vm-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2XC switching config with 4 phy\
-| | ... | cores, 2 receive queues per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for IMIX_v4_1 frames using single\
-| | ... | trial throughput test.
-| | ... | IMIX_v4_1 = (28x64B; 16x570B; 4x1518B)
-| | ...
| | [Tags] | IMIX | 4C
-| | ...
-| | [Template] | Check RR for dot1q-l2xcbase-eth-2vhostvr1024-1vm
-| | framesize=IMIX_v4_1 | wt=4 | rxq=2
+| | framesize=IMIX_v4_1 | phy_cores=${4}
diff --git a/tests/vpp/perf/vm_vhost/10ge2p1x710-eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-ndrpdrdisc.robot b/tests/vpp/perf/vm_vhost/10ge2p1x710-eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-ndrpdrdisc.robot
index f9605a335d..baab00384c 100644
--- a/tests/vpp/perf/vm_vhost/10ge2p1x710-eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-ndrpdrdisc.robot
+++ b/tests/vpp/perf/vm_vhost/10ge2p1x710-eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-ndrpdrdisc.robot
@@ -84,7 +84,7 @@
| | ${threshold}= | Set Variable | ${min_rate}
| | ${dut1_vm_refs}= | Create Dictionary
| | ${dut2_vm_refs}= | Create Dictionary
-| | Given Add '1' worker threads and '1' rxqueues in 3-node single-link circular topology
+| | Given Add worker threads and rxqueues to all DUTs | 1
| | And Add PCI devices to all DUTs
| | And Add no multi seg to all DUTs
| | And Apply startup configuration on all VPP DUTs
@@ -116,7 +116,7 @@
| | ${threshold}= | Set Variable | ${min_rate}
| | ${dut1_vm_refs}= | Create Dictionary
| | ${dut2_vm_refs}= | Create Dictionary
-| | Given Add '1' worker threads and '1' rxqueues in 3-node single-link circular topology
+| | Given Add worker threads and rxqueues to all DUTs | 1
| | And Add PCI devices to all DUTs
| | And Add no multi seg to all DUTs
| | And Apply startup configuration on all VPP DUTs
@@ -149,7 +149,7 @@
| | ${threshold}= | Set Variable | ${min_rate}
| | ${dut1_vm_refs}= | Create Dictionary
| | ${dut2_vm_refs}= | Create Dictionary
-| | Given Add '1' worker threads and '1' rxqueues in 3-node single-link circular topology
+| | Given Add worker threads and rxqueues to all DUTs | 1
| | And Add PCI devices to all DUTs
| | And Add no multi seg to all DUTs
| | And Apply startup configuration on all VPP DUTs
@@ -181,7 +181,7 @@
| | ${threshold}= | Set Variable | ${min_rate}
| | ${dut1_vm_refs}= | Create Dictionary
| | ${dut2_vm_refs}= | Create Dictionary
-| | Given Add '1' worker threads and '1' rxqueues in 3-node single-link circular topology
+| | Given Add worker threads and rxqueues to all DUTs | 1
| | And Add PCI devices to all DUTs
| | And Add no multi seg to all DUTs
| | And Apply startup configuration on all VPP DUTs
@@ -215,7 +215,7 @@
| | ${threshold}= | Set Variable | ${min_rate}
| | ${dut1_vm_refs}= | Create Dictionary
| | ${dut2_vm_refs}= | Create Dictionary
-| | Given Add '1' worker threads and '1' rxqueues in 3-node single-link circular topology
+| | Given Add worker threads and rxqueues to all DUTs | 1
| | And Add PCI devices to all DUTs
| | And Add no multi seg to all DUTs
| | And Apply startup configuration on all VPP DUTs
@@ -248,7 +248,7 @@
| | ${threshold}= | Set Variable | ${min_rate}
| | ${dut1_vm_refs}= | Create Dictionary
| | ${dut2_vm_refs}= | Create Dictionary
-| | Given Add '1' worker threads and '1' rxqueues in 3-node single-link circular topology
+| | Given Add worker threads and rxqueues to all DUTs | 1
| | And Add PCI devices to all DUTs
| | And Apply startup configuration on all VPP DUTs
| | When Initialize L2 bridge domains with Vhost-User in 3-node circular topology
@@ -280,7 +280,7 @@
| | ${threshold}= | Set Variable | ${min_rate}
| | ${dut1_vm_refs}= | Create Dictionary
| | ${dut2_vm_refs}= | Create Dictionary
-| | Given Add '2' worker threads and '1' rxqueues in 3-node single-link circular topology
+| | Given Add worker threads and rxqueues to all DUTs | 2
| | And Add PCI devices to all DUTs
| | And Add no multi seg to all DUTs
| | And Apply startup configuration on all VPP DUTs
@@ -312,7 +312,7 @@
| | ${threshold}= | Set Variable | ${min_rate}
| | ${dut1_vm_refs}= | Create Dictionary
| | ${dut2_vm_refs}= | Create Dictionary
-| | Given Add '2' worker threads and '1' rxqueues in 3-node single-link circular topology
+| | Given Add worker threads and rxqueues to all DUTs | 2
| | And Add PCI devices to all DUTs
| | And Add no multi seg to all DUTs
| | And Apply startup configuration on all VPP DUTs
@@ -345,7 +345,7 @@
| | ${threshold}= | Set Variable | ${min_rate}
| | ${dut1_vm_refs}= | Create Dictionary
| | ${dut2_vm_refs}= | Create Dictionary
-| | Given Add '2' worker threads and '1' rxqueues in 3-node single-link circular topology
+| | Given Add worker threads and rxqueues to all DUTs | 2
| | And Add PCI devices to all DUTs
| | And Add no multi seg to all DUTs
| | And Apply startup configuration on all VPP DUTs
@@ -377,7 +377,7 @@
| | ${threshold}= | Set Variable | ${min_rate}
| | ${dut1_vm_refs}= | Create Dictionary
| | ${dut2_vm_refs}= | Create Dictionary
-| | Given Add '2' worker threads and '1' rxqueues in 3-node single-link circular topology
+| | Given Add worker threads and rxqueues to all DUTs | 2
| | And Add PCI devices to all DUTs
| | And Add no multi seg to all DUTs
| | And Apply startup configuration on all VPP DUTs
@@ -411,7 +411,7 @@
| | ${threshold}= | Set Variable | ${min_rate}
| | ${dut1_vm_refs}= | Create Dictionary
| | ${dut2_vm_refs}= | Create Dictionary
-| | Given Add '2' worker threads and '1' rxqueues in 3-node single-link circular topology
+| | Given Add worker threads and rxqueues to all DUTs | 2
| | And Add PCI devices to all DUTs
| | And Add no multi seg to all DUTs
| | And Apply startup configuration on all VPP DUTs
@@ -444,7 +444,7 @@
| | ${threshold}= | Set Variable | ${min_rate}
| | ${dut1_vm_refs}= | Create Dictionary
| | ${dut2_vm_refs}= | Create Dictionary
-| | Given Add '2' worker threads and '1' rxqueues in 3-node single-link circular topology
+| | Given Add worker threads and rxqueues to all DUTs | 2
| | And Add PCI devices to all DUTs
| | And Add no multi seg to all DUTs
| | And Apply startup configuration on all VPP DUTs
@@ -477,7 +477,7 @@
| | ${threshold}= | Set Variable | ${min_rate}
| | ${dut1_vm_refs}= | Create Dictionary
| | ${dut2_vm_refs}= | Create Dictionary
-| | Given Add '4' worker threads and '2' rxqueues in 3-node single-link circular topology
+| | Given Add worker threads and rxqueues to all DUTs | 4
| | And Add PCI devices to all DUTs
| | And Add no multi seg to all DUTs
| | And Apply startup configuration on all VPP DUTs
@@ -509,7 +509,7 @@
| | ${threshold}= | Set Variable | ${min_rate}
| | ${dut1_vm_refs}= | Create Dictionary
| | ${dut2_vm_refs}= | Create Dictionary
-| | Given Add '4' worker threads and '2' rxqueues in 3-node single-link circular topology
+| | Given Add worker threads and rxqueues to all DUTs | 4
| | And Add PCI devices to all DUTs
| | And Add no multi seg to all DUTs
| | And Apply startup configuration on all VPP DUTs
@@ -542,7 +542,7 @@
| | ${threshold}= | Set Variable | ${min_rate}
| | ${dut1_vm_refs}= | Create Dictionary
| | ${dut2_vm_refs}= | Create Dictionary
-| | Given Add '4' worker threads and '2' rxqueues in 3-node single-link circular topology
+| | Given Add worker threads and rxqueues to all DUTs | 4
| | And Add PCI devices to all DUTs
| | And Add no multi seg to all DUTs
| | And Apply startup configuration on all VPP DUTs
@@ -574,7 +574,7 @@
| | ${threshold}= | Set Variable | ${min_rate}
| | ${dut1_vm_refs}= | Create Dictionary
| | ${dut2_vm_refs}= | Create Dictionary
-| | Given Add '4' worker threads and '2' rxqueues in 3-node single-link circular topology
+| | Given Add worker threads and rxqueues to all DUTs | 4
| | And Add PCI devices to all DUTs
| | And Add no multi seg to all DUTs
| | And Apply startup configuration on all VPP DUTs
@@ -608,7 +608,7 @@
| | ${threshold}= | Set Variable | ${min_rate}
| | ${dut1_vm_refs}= | Create Dictionary
| | ${dut2_vm_refs}= | Create Dictionary
-| | Given Add '4' worker threads and '2' rxqueues in 3-node single-link circular topology
+| | Given Add worker threads and rxqueues to all DUTs | 4
| | And Add PCI devices to all DUTs
| | And Add no multi seg to all DUTs
| | And Apply startup configuration on all VPP DUTs
@@ -641,7 +641,7 @@
| | ${threshold}= | Set Variable | ${min_rate}
| | ${dut1_vm_refs}= | Create Dictionary
| | ${dut2_vm_refs}= | Create Dictionary
-| | Given Add '4' worker threads and '2' rxqueues in 3-node single-link circular topology
+| | Given Add worker threads and rxqueues to all DUTs | 4
| | And Add PCI devices to all DUTs
| | And Add no multi seg to all DUTs
| | And Apply startup configuration on all VPP DUTs
diff --git a/tests/vpp/perf/vm_vhost/10ge2p1x710-eth-l2bdbasemaclrn-eth-2vhostvr256-1vm-mrr.robot b/tests/vpp/perf/vm_vhost/10ge2p1x710-eth-l2bdbasemaclrn-eth-2vhostvr256-1vm-mrr.robot
index 02eb8e5e97..b8332bb58d 100644
--- a/tests/vpp/perf/vm_vhost/10ge2p1x710-eth-l2bdbasemaclrn-eth-2vhostvr256-1vm-mrr.robot
+++ b/tests/vpp/perf/vm_vhost/10ge2p1x710-eth-l2bdbasemaclrn-eth-2vhostvr256-1vm-mrr.robot
@@ -27,6 +27,8 @@
| ... | dut1_node=${dut1} | dut1_vm_refs=${dut1_vm_refs}
| ... | dut2_node=${dut2} | dut2_vm_refs=${dut2_vm_refs}
| ...
+| Test Template | Local template
+| ...
| Documentation | *Raw results L2BD test cases with vhost*
| ...
| ... | *[Top] Network Topologies:* TG-DUT1-DUT2-TG 3-node circular topology
@@ -62,16 +64,21 @@
| ${traffic_profile}= | trex-sl-3n-ethip4-ip4src254
*** Keywords ***
-| Check RR for eth-l2bdbasemaclrn-eth-2vhostvr256-1vm
+| Local template
| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 routing config with ${wt} thread, ${wt} phy\
-| | ... | core, ${rxq} receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for ${framesize} frames using single\
+| | ... | [Cfg] DUT runs IPv4 routing config.
+| | ... | Each DUT uses ${phy_cores} physical core(s) for worker threads.
+| | ... | [Ver] Measure MaxReceivedRate for ${framesize}B frames using single\
| | ... | trial throughput test.
| | ...
-| | [Arguments] | ${framesize} | ${wt} | ${rxq}
+| | ... | *Arguments:*
+| | ... | - framesize - Framesize in Bytes in integer or string (IMIX_v4_1).
+| | ... | Type: integer, string
+| | ... | - phy_cores - Number of physical cores. Type: integer
+| | ... | - rxq - Number of RX queues, default value: ${None}. Type: integer
+| | ...
+| | [Arguments] | ${framesize} | ${phy_cores} | ${rxq}=${None}
| | ...
-| | # Test Variables required for test and test teardown
| | Set Test Variable | ${framesize}
| | ${get_framesize}= | Get Frame Size | ${framesize}
| | ${max_rate}= | Calculate pps | ${s_limit} | ${get_framesize}
@@ -82,7 +89,7 @@
| | ${jumbo_frames}= | Set Variable If | ${get_framesize} < ${1522}
| | ... | ${False} | ${True}
| | ...
-| | Given Add '${wt}' worker threads and '${rxq}' rxqueues in 3-node single-link circular topology
+| | Given Add worker threads and rxqueues to all DUTs | ${phy_cores} | ${rxq}
| | And Add PCI devices to all DUTs
| | And Run Keyword If | ${get_framesize} < ${1522}
| | ... | Add no multi seg to all DUTs
@@ -102,148 +109,49 @@
*** Test Cases ***
| tc01-64B-1t1c-eth-l2bdbasemaclrn-eth-2vhostvr256-1vm-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with 1 phy core,\
-| | ... | 1 receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 64B frames using single\
-| | ... | trial throughput test.
-| | ...
| | [Tags] | 64B | 1C
-| | ...
-| | [Template] | Check RR for eth-l2bdbasemaclrn-eth-2vhostvr256-1vm
-| | framesize=${64} | wt=1 | rxq=1
+| | framesize=${64} | phy_cores=${1}
| tc02-1518B-1t1c-eth-l2bdbasemaclrn-eth-2vhostvr256-1vm
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with 1 phy core,\
-| | ... | 1 receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 1518B frames using single\
-| | ... | trial throughput test.
-| | ...
| | [Tags] | 1518B | 1C
-| | ...
-| | [Template] | Check RR for eth-l2bdbasemaclrn-eth-2vhostvr256-1vm
-| | framesize=${1518} | wt=1 | rxq=1
+| | framesize=${1518} | phy_cores=${1}
| tc03-9000B-1t1c-eth-l2bdbasemaclrn-eth-2vhostvr256-1vm
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with 1 phy core,\
-| | ... | 1 receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 9000B frames using single\
-| | ... | trial throughput test.
-| | ...
| | [Tags] | 9000B | 1C
-| | ...
-| | [Template] | Check RR for eth-l2bdbasemaclrn-eth-2vhostvr256-1vm
-| | framesize=${9000} | wt=1 | rxq=1
+| | framesize=${9000} | phy_cores=${1}
| tc04-IMIX-1t1c-eth-l2bdbasemaclrn-eth-2vhostvr256-1vm-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with 1 phy core,\
-| | ... | 1 receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for IMIX_v4_1 frames using single\
-| | ... | trial throughput test.
-| | ... | IMIX_v4_1 = (28x64B; 16x570B; 4x1518B)
-| | ...
| | [Tags] | IMIX | 1C
-| | ...
-| | [Template] | Check RR for eth-l2bdbasemaclrn-eth-2vhostvr256-1vm
-| | framesize=IMIX_v4_1 | wt=1 | rxq=1
+| | framesize=IMIX_v4_1 | phy_cores=${1}
| tc05-64B-2t2c-eth-l2bdbasemaclrn-eth-2vhostvr256-1vm-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with 2 phy cores,\
-| | ... | 1 receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 64B frames using single\
-| | ... | trial throughput test.
-| | ...
| | [Tags] | 64B | 2C
-| | ...
-| | [Template] | Check RR for eth-l2bdbasemaclrn-eth-2vhostvr256-1vm
-| | framesize=${64} | wt=2 | rxq=1
+| | framesize=${64} | phy_cores=${2}
| tc06-1518B-2t2c-eth-l2bdbasemaclrn-eth-2vhostvr256-1vm-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with 2 phy cores,\
-| | ... | 1 receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 1518B frames using single\
-| | ... | trial throughput test.
-| | ...
| | [Tags] | 1518B | 2C
-| | ...
-| | [Template] | Check RR for eth-l2bdbasemaclrn-eth-2vhostvr256-1vm
-| | framesize=${1518} | wt=2 | rxq=1
+| | framesize=${1518} | phy_cores=${2}
| tc07-9000B-2t2c-eth-l2bdbasemaclrn-eth-2vhostvr256-1vm-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with 2 phy cores,\
-| | ... | 1 receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 9000B frames using single\
-| | ... | trial throughput test.
-| | ...
| | [Tags] | 9000B | 2C
-| | ...
-| | [Template] | Check RR for eth-l2bdbasemaclrn-eth-2vhostvr256-1vm
-| | framesize=${9000} | wt=2 | rxq=1
+| | framesize=${9000} | phy_cores=${2}
| tc08-IMIX-2t2c-eth-l2bdbasemaclrn-eth-2vhostvr256-1vm-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with 2 phy cores,\
-| | ... | 1 receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for IMIX_v4_1 frames using single\
-| | ... | trial throughput test.
-| | ... | IMIX_v4_1 = (28x64B; 16x570B; 4x1518B)
-| | ...
| | [Tags] | IMIX | 2C
-| | ...
-| | [Template] | Check RR for eth-l2bdbasemaclrn-eth-2vhostvr256-1vm
-| | framesize=IMIX_v4_1 | wt=2 | rxq=1
+| | framesize=IMIX_v4_1 | phy_cores=${2}
| tc09-64B-4t4c-eth-l2bdbasemaclrn-eth-2vhostvr256-1vm-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with 4 phy cores,\
-| | ... | 2 receive queues per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 64B frames using single\
-| | ... | trial throughput test.
-| | ...
| | [Tags] | 64B | 4C
-| | ...
-| | [Template] | Check RR for eth-l2bdbasemaclrn-eth-2vhostvr256-1vm
-| | framesize=${64} | wt=4 | rxq=2
+| | framesize=${64} | phy_cores=${4}
| tc10-1518B-4t4c-eth-l2bdbasemaclrn-eth-2vhostvr256-1vm-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with 4 phy cores,\
-| | ... | 2 receive queues per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 1518B frames using single\
-| | ... | trial throughput test.
-| | ...
| | [Tags] | 1518B | 4C
-| | ...
-| | [Template] | Check RR for eth-l2bdbasemaclrn-eth-2vhostvr256-1vm
-| | framesize=${1518} | wt=4 | rxq=2
+| | framesize=${1518} | phy_cores=${4}
| tc11-9000B-4t4c-eth-l2bdbasemaclrn-eth-2vhostvr256-1vm-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with 4 phy cores,\
-| | ... | 2 receive queues per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 9000B frames using single\
-| | ... | trial throughput test.
-| | ...
| | [Tags] | 9000B | 4C
-| | ...
-| | [Template] | Check RR for eth-l2bdbasemaclrn-eth-2vhostvr256-1vm
-| | framesize=${9000} | wt=4 | rxq=2
+| | framesize=${9000} | phy_cores=${4}
| tc12-IMIX-4t4c-eth-l2bdbasemaclrn-eth-2vhostvr256-1vm-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with 4 phy cores,\
-| | ... | 2 receive queues per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for IMIX_v4_1 frames using single\
-| | ... | trial throughput test.
-| | ... | IMIX_v4_1 = (28x64B; 16x570B; 4x1518B)
-| | ...
| | [Tags] | IMIX | 4C
-| | ...
-| | [Template] | Check RR for eth-l2bdbasemaclrn-eth-2vhostvr256-1vm
-| | framesize=IMIX_v4_1 | wt=4 | rxq=2
+| | framesize=IMIX_v4_1 | phy_cores=${4}
diff --git a/tests/vpp/perf/vm_vhost/10ge2p1x710-eth-l2bdbasemaclrn-eth-4vhostvr1024-2vm-mrr.robot b/tests/vpp/perf/vm_vhost/10ge2p1x710-eth-l2bdbasemaclrn-eth-4vhostvr1024-2vm-mrr.robot
index 891eb9ba9a..d6c867d9d2 100644
--- a/tests/vpp/perf/vm_vhost/10ge2p1x710-eth-l2bdbasemaclrn-eth-4vhostvr1024-2vm-mrr.robot
+++ b/tests/vpp/perf/vm_vhost/10ge2p1x710-eth-l2bdbasemaclrn-eth-4vhostvr1024-2vm-mrr.robot
@@ -27,6 +27,8 @@
| ... | dut1_node=${dut1} | dut1_vm_refs=${dut1_vm_refs}
| ... | dut2_node=${dut2} | dut2_vm_refs=${dut2_vm_refs}
| ...
+| Test Template | Local template
+| ...
| Documentation | *Raw results L2BD test cases with vhost*
| ...
| ... | *[Top] Network Topologies:* TG-DUT1-DUT2-TG 3-node circular topology
@@ -60,16 +62,21 @@
| ${traffic_profile}= | trex-sl-3n-ethip4-ip4src254
*** Keywords ***
-| Check RR for eth-l2bdbasemaclrn-eth-4vhostvr1024-2vm
+| Local template
| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with ${wt} thread, ${wt} phy\
-| | ... | core, ${rxq} receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for ${framesize} frames using single\
+| | ... | [Cfg] DUT runs L2BD switching config.
+| | ... | Each DUT uses ${phy_cores} physical core(s) for worker threads.
+| | ... | [Ver] Measure MaxReceivedRate for ${framesize}B frames using single\
| | ... | trial throughput test.
| | ...
-| | [Arguments] | ${framesize} | ${wt} | ${rxq}
+| | ... | *Arguments:*
+| | ... | - framesize - Framesize in Bytes in integer or string (IMIX_v4_1).
+| | ... | Type: integer, string
+| | ... | - phy_cores - Number of physical cores. Type: integer
+| | ... | - rxq - Number of RX queues, default value: ${None}. Type: integer
+| | ...
+| | [Arguments] | ${framesize} | ${phy_cores} | ${rxq}=${None}
| | ...
-| | # Test Variables required for test and test teardown
| | Set Test Variable | ${framesize}
| | ${get_framesize}= | Get Frame Size | ${framesize}
| | ${max_rate}= | Calculate pps | ${s_limit} | ${get_framesize}
@@ -81,7 +88,7 @@
| | ... | ${False} | ${True}
| | Set Test Variable | ${jumbo_frames}
| | ...
-| | Given Add '${wt}' worker threads and '${rxq}' rxqueues in 3-node single-link circular topology
+| | Given Add worker threads and rxqueues to all DUTs | ${phy_cores} | ${rxq}
| | And Add PCI devices to all DUTs
| | And Run Keyword If | ${get_framesize} < ${1522}
| | ... | Add no multi seg to all DUTs
@@ -93,148 +100,49 @@
*** Test Cases ***
| tc01-64B-1t1c-eth-l2bdbasemaclrn-eth-4vhostvr1024-2vm-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with 1 phy\
-| | ... | core, 1 receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 64B frames using single\
-| | ... | trial throughput test.
-| | ...
| | [Tags] | 64B | 1C
-| | ...
-| | [Template] | Check RR for eth-l2bdbasemaclrn-eth-4vhostvr1024-2vm
-| | framesize=${64} | wt=1 | rxq=1
+| | framesize=${64} | phy_cores=${1}
| tc02-1518B-1t1c-eth-l2bdbasemaclrn-eth-4vhostvr1024-2vm-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with 1 phy\
-| | ... | core, 1 receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 1518B frames using single\
-| | ... | trial throughput test.
-| | ...
| | [Tags] | 1518B | 1C
-| | ...
-| | [Template] | Check RR for eth-l2bdbasemaclrn-eth-4vhostvr1024-2vm
-| | framesize=${1518} | wt=1 | rxq=1
+| | framesize=${1518} | phy_cores=${1}
| tc03-9000B-1t1c-eth-l2bdbasemaclrn-eth-4vhostvr1024-2vm-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with 1 phy\
-| | ... | core, 1 receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 9000B frames using single\
-| | ... | trial throughput test.
-| | ...
| | [Tags] | 9000B | 1C
-| | ...
-| | [Template] | Check RR for eth-l2bdbasemaclrn-eth-4vhostvr1024-2vm
-| | framesize=${9000} | wt=1 | rxq=1
+| | framesize=${9000} | phy_cores=${1}
| tc04-IMIX-1t1c-eth-l2bdbasemaclrn-eth-4vhostvr1024-2vm-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with 1 phy\
-| | ... | core, 1 receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for IMIX_v4_1 frames using single\
-| | ... | trial throughput test.
-| | ... | IMIX_v4_1 = (28x64B; 16x570B; 4x1518B)
-| | ...
| | [Tags] | IMIX | 1C
-| | ...
-| | [Template] | Check RR for eth-l2bdbasemaclrn-eth-4vhostvr1024-2vm
-| | framesize=IMIX_v4_1 | wt=1 | rxq=1
+| | framesize=IMIX_v4_1 | phy_cores=${1}
| tc05-64B-2t2c-eth-l2bdbasemaclrn-eth-4vhostvr1024-2vm-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with 2 phy\
-| | ... | cores, 1 receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 64B frames using single\
-| | ... | trial throughput test.
-| | ...
| | [Tags] | 64B | 2C
-| | ...
-| | [Template] | Check RR for eth-l2bdbasemaclrn-eth-4vhostvr1024-2vm
-| | framesize=${64} | wt=2 | rxq=1
+| | framesize=${64} | phy_cores=${2}
| tc06-1518B-2t2c-eth-l2bdbasemaclrn-eth-4vhostvr1024-2vm-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with 2 phy\
-| | ... | cores, 1 receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 1518B frames using single\
-| | ... | trial throughput test.
-| | ...
| | [Tags] | 1518B | 2C
-| | ...
-| | [Template] | Check RR for eth-l2bdbasemaclrn-eth-4vhostvr1024-2vm
-| | framesize=${1518} | wt=2 | rxq=1
+| | framesize=${1518} | phy_cores=${2}
| tc07-9000B-2t2c-eth-l2bdbasemaclrn-eth-4vhostvr1024-2vm-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with 2 phy\
-| | ... | cores, 1 receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 9000B frames using single\
-| | ... | trial throughput test.
-| | ...
| | [Tags] | 9000B | 2C
-| | ...
-| | [Template] | Check RR for eth-l2bdbasemaclrn-eth-4vhostvr1024-2vm
-| | framesize=${9000} | wt=2 | rxq=1
+| | framesize=${9000} | phy_cores=${2}
| tc08-IMIX-2t2c-eth-l2bdbasemaclrn-eth-4vhostvr1024-2vm-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with 2 phy\
-| | ... | cores, 1 receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for IMIX_v4_1 frames using single\
-| | ... | trial throughput test.
-| | ... | IMIX_v4_1 = (28x64B; 16x570B; 4x1518B)
-| | ...
| | [Tags] | IMIX | 2C
-| | ...
-| | [Template] | Check RR for eth-l2bdbasemaclrn-eth-4vhostvr1024-2vm
-| | framesize=IMIX_v4_1 | wt=2 | rxq=1
+| | framesize=IMIX_v4_1 | phy_cores=${2}
| tc09-64B-4t4c-eth-l2bdbasemaclrn-eth-4vhostvr1024-2vm-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with 4 phy\
-| | ... | cores, 2 receive queues per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 64B frames using single\
-| | ... | trial throughput test.
-| | ...
| | [Tags] | 64B | 4C
-| | ...
-| | [Template] | Check RR for eth-l2bdbasemaclrn-eth-4vhostvr1024-2vm
-| | framesize=${64} | wt=4 | rxq=2
+| | framesize=${64} | phy_cores=${4}
| tc10-1518B-4t4c-eth-l2bdbasemaclrn-eth-4vhostvr1024-2vm-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with 4 phy\
-| | ... | cores, 2 receive queues per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 1518B frames using single\
-| | ... | trial throughput test.
-| | ...
| | [Tags] | 1518B | 4C
-| | ...
-| | [Template] | Check RR for eth-l2bdbasemaclrn-eth-4vhostvr1024-2vm
-| | framesize=${1518} | wt=4 | rxq=2
+| | framesize=${1518} | phy_cores=${4}
| tc11-9000B-4t4c-eth-l2bdbasemaclrn-eth-4vhostvr1024-2vm-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with 4 phy\
-| | ... | cores, 2 receive queues per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 9000B frames using single\
-| | ... | trial throughput test.
-| | ...
| | [Tags] | 9000B | 4C
-| | ...
-| | [Template] | Check RR for eth-l2bdbasemaclrn-eth-4vhostvr1024-2vm
-| | framesize=${9000} | wt=4 | rxq=2
+| | framesize=${9000} | phy_cores=${4}
| tc12-IMIX-4t4c-eth-l2bdbasemaclrn-eth-4vhostvr1024-2vm-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with 4 phy\
-| | ... | cores, 2 receive queues per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for IMIX_v4_1 frames using single\
-| | ... | trial throughput test.
-| | ... | IMIX_v4_1 = (28x64B; 16x570B; 4x1518B)
-| | ...
| | [Tags] | IMIX | 4C
-| | ...
-| | [Template] | Check RR for eth-l2bdbasemaclrn-eth-4vhostvr1024-2vm
-| | framesize=IMIX_v4_1 | wt=4 | rxq=2
+| | framesize=IMIX_v4_1 | phy_cores=${4}
diff --git a/tests/vpp/perf/vm_vhost/10ge2p1x710-eth-l2xcbase-eth-2vhostvr1024-1vm-mrr.robot b/tests/vpp/perf/vm_vhost/10ge2p1x710-eth-l2xcbase-eth-2vhostvr1024-1vm-mrr.robot
index 9fa57ca686..2768a44d2f 100644
--- a/tests/vpp/perf/vm_vhost/10ge2p1x710-eth-l2xcbase-eth-2vhostvr1024-1vm-mrr.robot
+++ b/tests/vpp/perf/vm_vhost/10ge2p1x710-eth-l2xcbase-eth-2vhostvr1024-1vm-mrr.robot
@@ -27,6 +27,8 @@
| ... | dut1_node=${dut1} | dut1_vm_refs=${dut1_vm_refs}
| ... | dut2_node=${dut2} | dut2_vm_refs=${dut2_vm_refs}
| ...
+| Test Template | Local template
+| ...
| Documentation | *Raw results L2XC test cases with vhost*
| ...
| ... | *[Top] Network Topologies:* TG-DUT1-DUT2-TG 3-node circular topology
@@ -59,16 +61,21 @@
| ${traffic_profile}= | trex-sl-3n-ethip4-ip4src254
*** Keywords ***
-| Check RR for eth-l2xcbase-eth-2vhostvr1024-1vm
+| Local template
| | [Documentation]
-| | ... | [Cfg] DUT runs L2XC switching config with ${wt} thread, ${wt} phy\
-| | ... | core, ${rxq} receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for ${framesize} frames using single\
+| | ... | [Cfg] DUT runs L2XC switching config.
+| | ... | Each DUT uses ${phy_cores} physical core(s) for worker threads.
+| | ... | [Ver] Measure MaxReceivedRate for ${framesize}B frames using single\
| | ... | trial throughput test.
| | ...
-| | [Arguments] | ${framesize} | ${wt} | ${rxq}
+| | ... | *Arguments:*
+| | ... | - framesize - Framesize in Bytes in integer or string (IMIX_v4_1).
+| | ... | Type: integer, string
+| | ... | - phy_cores - Number of physical cores. Type: integer
+| | ... | - rxq - Number of RX queues, default value: ${None}. Type: integer
+| | ...
+| | [Arguments] | ${framesize} | ${phy_cores} | ${rxq}=${None}
| | ...
-| | # Test Variables required for test and test teardown
| | Set Test Variable | ${framesize}
| | ${get_framesize}= | Get Frame Size | ${framesize}
| | ${max_rate}= | Calculate pps | ${s_limit} | ${get_framesize}
@@ -79,7 +86,7 @@
| | ${jumbo_frames}= | Set Variable If | ${get_framesize} < ${1522}
| | ... | ${False} | ${True}
| | ...
-| | Given Add '${wt}' worker threads and '${rxq}' rxqueues in 3-node single-link circular topology
+| | Given Add worker threads and rxqueues to all DUTs | ${phy_cores} | ${rxq}
| | And Add PCI devices to all DUTs
| | And Run Keyword If | ${get_framesize} < ${1522}
| | ... | Add no multi seg to all DUTs
@@ -99,148 +106,49 @@
*** Test Cases ***
| tc01-64B-1t1c-eth-l2xcbase-eth-2vhostvr1024-1vm-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2XC switching config with 1 phy\
-| | ... | core, 1 receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 64B frames using single\
-| | ... | trial throughput test.
-| | ...
| | [Tags] | 64B | 1C
-| | ...
-| | [Template] | Check RR for eth-l2xcbase-eth-2vhostvr1024-1vm
-| | framesize=${64} | wt=1 | rxq=1
+| | framesize=${64} | phy_cores=${1}
| tc02-1518B-1t1c-eth-l2xcbase-eth-2vhostvr1024-1vm-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2XC switching config with 1 phy\
-| | ... | core, 1 receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 1518B frames using single\
-| | ... | trial throughput test.
-| | ...
| | [Tags] | 1518B | 1C
-| | ...
-| | [Template] | Check RR for eth-l2xcbase-eth-2vhostvr1024-1vm
-| | framesize=${1518} | wt=1 | rxq=1
+| | framesize=${1518} | phy_cores=${1}
| tc03-9000B-1t1c-eth-l2xcbase-eth-2vhostvr1024-1vm-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2XC switching config with 1 phy\
-| | ... | core, 1 receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 9000B frames using single\
-| | ... | trial throughput test.
-| | ...
| | [Tags] | 9000B | 1C
-| | ...
-| | [Template] | Check RR for eth-l2xcbase-eth-2vhostvr1024-1vm
-| | framesize=${9000} | wt=1 | rxq=1
+| | framesize=${9000} | phy_cores=${1}
| tc04-IMIX-1t1c-eth-l2xcbase-eth-2vhostvr1024-1vm-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2XC switching config with 1 phy\
-| | ... | core, 1 receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for IMIX_v4_1 frames using single\
-| | ... | trial throughput test.
-| | ... | IMIX_v4_1 = (28x64B; 16x570B; 4x1518B)
-| | ...
| | [Tags] | IMIX | 1C
-| | ...
-| | [Template] | Check RR for eth-l2xcbase-eth-2vhostvr1024-1vm
-| | framesize=IMIX_v4_1 | wt=1 | rxq=1
+| | framesize=IMIX_v4_1 | phy_cores=${1}
| tc05-64B-2t2c-eth-l2xcbase-eth-2vhostvr1024-1vm-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2XC switching config with 2 phy\
-| | ... | cores, 1 receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 64B frames using single\
-| | ... | trial throughput test.
-| | ...
| | [Tags] | 64B | 2C
-| | ...
-| | [Template] | Check RR for eth-l2xcbase-eth-2vhostvr1024-1vm
-| | framesize=${64} | wt=2 | rxq=1
+| | framesize=${64} | phy_cores=${2}
| tc06-1518B-2t2c-eth-l2xcbase-eth-2vhostvr1024-1vm-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2XC switching config with 2 phy\
-| | ... | cores, 1 receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 1518B frames using single\
-| | ... | trial throughput test.
-| | ...
| | [Tags] | 1518B | 2C
-| | ...
-| | [Template] | Check RR for eth-l2xcbase-eth-2vhostvr1024-1vm
-| | framesize=${1518} | wt=2 | rxq=1
+| | framesize=${1518} | phy_cores=${2}
| tc07-9000B-2t2c-eth-l2xcbase-eth-2vhostvr1024-1vm-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2XC switching config with 2 phy\
-| | ... | cores, 1 receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 9000B frames using single\
-| | ... | trial throughput test.
-| | ...
| | [Tags] | 9000B | 2C
-| | ...
-| | [Template] | Check RR for eth-l2xcbase-eth-2vhostvr1024-1vm
-| | framesize=${9000} | wt=2 | rxq=1
+| | framesize=${9000} | phy_cores=${2}
| tc08-IMIX-2t2c-eth-l2xcbase-eth-2vhostvr1024-1vm-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2XC switching config with 2 phy\
-| | ... | cores, 1 receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for IMIX_v4_1 frames using single\
-| | ... | trial throughput test.
-| | ... | IMIX_v4_1 = (28x64B; 16x570B; 4x1518B)
-| | ...
| | [Tags] | IMIX | 2C
-| | ...
-| | [Template] | Check RR for eth-l2xcbase-eth-2vhostvr1024-1vm
-| | framesize=IMIX_v4_1 | wt=2 | rxq=1
+| | framesize=IMIX_v4_1 | phy_cores=${2}
| tc09-64B-4t4c-eth-l2xcbase-eth-2vhostvr1024-1vm-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2XC switching config with 4 phy\
-| | ... | cores, 2 receive queues per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 64B frames using single\
-| | ... | trial throughput test.
-| | ...
| | [Tags] | 64B | 4C
-| | ...
-| | [Template] | Check RR for eth-l2xcbase-eth-2vhostvr1024-1vm
-| | framesize=${64} | wt=4 | rxq=2
+| | framesize=${64} | phy_cores=${4}
| tc10-1518B-4t4c-eth-l2xcbase-eth-2vhostvr1024-1vm-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2XC switching config with 4 phy\
-| | ... | cores, 2 receive queues per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 1518B frames using single\
-| | ... | trial throughput test.
-| | ...
| | [Tags] | 1518B | 4C
-| | ...
-| | [Template] | Check RR for eth-l2xcbase-eth-2vhostvr1024-1vm
-| | framesize=${1518} | wt=4 | rxq=2
+| | framesize=${1518} | phy_cores=${4}
| tc11-9000B-4t4c-eth-l2xcbase-eth-2vhostvr1024-1vm-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2XC switching config with 4 phy\
-| | ... | cores, 2 receive queues per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 9000B frames using single\
-| | ... | trial throughput test.
-| | ...
| | [Tags] | 9000B | 4C
-| | ...
-| | [Template] | Check RR for eth-l2xcbase-eth-2vhostvr1024-1vm
-| | framesize=${9000} | wt=4 | rxq=2
+| | framesize=${9000} | phy_cores=${4}
| tc12-IMIX-4t4c-eth-l2xcbase-eth-2vhostvr1024-1vm-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2XC switching config with 4 phy\
-| | ... | cores, 2 receive queues per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for IMIX_v4_1 frames using single\
-| | ... | trial throughput test.
-| | ... | IMIX_v4_1 = (28x64B; 16x570B; 4x1518B)
-| | ...
| | [Tags] | IMIX | 4C
-| | ...
-| | [Template] | Check RR for eth-l2xcbase-eth-2vhostvr1024-1vm
-| | framesize=IMIX_v4_1 | wt=4 | rxq=2
+| | framesize=IMIX_v4_1 | phy_cores=${4}
diff --git a/tests/vpp/perf/vm_vhost/10ge2p1x710-eth-l2xcbase-eth-2vhostvr256-1vm-mrr.robot b/tests/vpp/perf/vm_vhost/10ge2p1x710-eth-l2xcbase-eth-2vhostvr256-1vm-mrr.robot
index 14950a2e34..e3c852e511 100644
--- a/tests/vpp/perf/vm_vhost/10ge2p1x710-eth-l2xcbase-eth-2vhostvr256-1vm-mrr.robot
+++ b/tests/vpp/perf/vm_vhost/10ge2p1x710-eth-l2xcbase-eth-2vhostvr256-1vm-mrr.robot
@@ -27,6 +27,8 @@
| ... | dut1_node=${dut1} | dut1_vm_refs=${dut1_vm_refs}
| ... | dut2_node=${dut2} | dut2_vm_refs=${dut2_vm_refs}
| ...
+| Test Template | Local template
+| ...
| Documentation | *Raw results L2XC test cases with vhost*
| ...
| ... | *[Top] Network Topologies:* TG-DUT1-DUT2-TG 3-node circular topology
@@ -59,16 +61,21 @@
| ${traffic_profile}= | trex-sl-3n-ethip4-ip4src254
*** Keywords ***
-| Check RR for eth-l2xcbase-eth-2vhostvr256-1vm
+| Local template
| | [Documentation]
-| | ... | [Cfg] DUT runs L2XC switching config with ${wt} thread, ${wt} phy\
-| | ... | core, ${rxq} receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for ${framesize} frames using single\
+| | ... | [Cfg] DUT runs L2XC switching config.
+| | ... | Each DUT uses ${phy_cores} physical core(s) for worker threads.
+| | ... | [Ver] Measure MaxReceivedRate for ${framesize}B frames using single\
| | ... | trial throughput test.
| | ...
-| | [Arguments] | ${framesize} | ${wt} | ${rxq}
+| | ... | *Arguments:*
+| | ... | - framesize - Framesize in Bytes in integer or string (IMIX_v4_1).
+| | ... | Type: integer, string
+| | ... | - phy_cores - Number of physical cores. Type: integer
+| | ... | - rxq - Number of RX queues, default value: ${None}. Type: integer
+| | ...
+| | [Arguments] | ${framesize} | ${phy_cores} | ${rxq}=${None}
| | ...
-| | # Test Variables required for test and test teardown
| | Set Test Variable | ${framesize}
| | ${get_framesize}= | Get Frame Size | ${framesize}
| | ${max_rate}= | Calculate pps | ${s_limit} | ${get_framesize}
@@ -79,7 +86,7 @@
| | ${jumbo_frames}= | Set Variable If | ${get_framesize} < ${1522}
| | ... | ${False} | ${True}
| | ...
-| | Given Add '${wt}' worker threads and '${rxq}' rxqueues in 3-node single-link circular topology
+| | Given Add worker threads and rxqueues to all DUTs | ${phy_cores} | ${rxq}
| | And Add PCI devices to all DUTs
| | And Run Keyword If | ${get_framesize} < ${1522}
| | ... | Add no multi seg to all DUTs
@@ -99,148 +106,49 @@
*** Test Cases ***
| tc01-64B-1t1c-eth-l2xcbase-eth-2vhostvr256-1vm-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2XC switching config with 1 phy\
-| | ... | core, 1 receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 64B frames using single\
-| | ... | trial throughput test.
-| | ...
| | [Tags] | 64B | 1C
-| | ...
-| | [Template] | Check RR for eth-l2xcbase-eth-2vhostvr256-1vm
-| | framesize=${64} | wt=1 | rxq=1
+| | framesize=${64} | phy_cores=${1}
| tc02-1518B-1t1c-eth-l2xcbase-eth-2vhostvr256-1vm-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2XC switching config with 1 phy\
-| | ... | core, 1 receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 1518B frames using single\
-| | ... | trial throughput test.
-| | ...
| | [Tags] | 1518B | 1C
-| | ...
-| | [Template] | Check RR for eth-l2xcbase-eth-2vhostvr256-1vm
-| | framesize=${1518} | wt=1 | rxq=1
+| | framesize=${1518} | phy_cores=${1}
| tc03-9000B-1t1c-eth-l2xcbase-eth-2vhostvr256-1vm-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2XC switching config with 1 phy\
-| | ... | core, 1 receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 9000B frames using single\
-| | ... | trial throughput test.
-| | ...
| | [Tags] | 9000B | 1C
-| | ...
-| | [Template] | Check RR for eth-l2xcbase-eth-2vhostvr256-1vm
-| | framesize=${9000} | wt=1 | rxq=1
+| | framesize=${9000} | phy_cores=${1}
| tc04-IMIX-1t1c-eth-l2xcbase-eth-2vhostvr256-1vm-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2XC switching config with 1 phy\
-| | ... | core, 1 receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for IMIX_v4_1 frames using single\
-| | ... | trial throughput test.
-| | ... | IMIX_v4_1 = (28x64B; 16x570B; 4x1518B)
-| | ...
| | [Tags] | IMIX | 1C
-| | ...
-| | [Template] | Check RR for eth-l2xcbase-eth-2vhostvr256-1vm
-| | framesize=IMIX_v4_1 | wt=1 | rxq=1
+| | framesize=IMIX_v4_1 | phy_cores=${1}
| tc05-64B-2t2c-eth-l2xcbase-eth-2vhostvr256-1vm-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2XC switching config with 2 phy\
-| | ... | cores, 1 receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 64B frames using single\
-| | ... | trial throughput test.
-| | ...
| | [Tags] | 64B | 2C
-| | ...
-| | [Template] | Check RR for eth-l2xcbase-eth-2vhostvr256-1vm
-| | framesize=${64} | wt=2 | rxq=1
+| | framesize=${64} | phy_cores=${2}
| tc06-1518B-2t2c-eth-l2xcbase-eth-2vhostvr256-1vm-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2XC switching config with 2 phy\
-| | ... | cores, 1 receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 1518B frames using single\
-| | ... | trial throughput test.
-| | ...
| | [Tags] | 1518B | 2C
-| | ...
-| | [Template] | Check RR for eth-l2xcbase-eth-2vhostvr256-1vm
-| | framesize=${1518} | wt=2 | rxq=1
+| | framesize=${1518} | phy_cores=${2}
| tc07-9000B-2t2c-eth-l2xcbase-eth-2vhostvr256-1vm-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2XC switching config with 2 phy\
-| | ... | cores, 1 receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 9000B frames using single\
-| | ... | trial throughput test.
-| | ...
| | [Tags] | 9000B | 2C
-| | ...
-| | [Template] | Check RR for eth-l2xcbase-eth-2vhostvr256-1vm
-| | framesize=${9000} | wt=2 | rxq=1
+| | framesize=${9000} | phy_cores=${2}
| tc08-IMIX-2t2c-eth-l2xcbase-eth-2vhostvr256-1vm-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2XC switching config with 2 phy\
-| | ... | cores, 1 receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for IMIX_v4_1 frames using single\
-| | ... | trial throughput test.
-| | ... | IMIX_v4_1 = (28x64B; 16x570B; 4x1518B)
-| | ...
| | [Tags] | IMIX | 2C
-| | ...
-| | [Template] | Check RR for eth-l2xcbase-eth-2vhostvr256-1vm
-| | framesize=IMIX_v4_1 | wt=2 | rxq=1
+| | framesize=IMIX_v4_1 | phy_cores=${2}
| tc09-64B-4t4c-eth-l2xcbase-eth-2vhostvr256-1vm-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2XC switching config with 4 phy\
-| | ... | cores, 2 receive queues per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 64B frames using single\
-| | ... | trial throughput test.
-| | ...
| | [Tags] | 64B | 4C
-| | ...
-| | [Template] | Check RR for eth-l2xcbase-eth-2vhostvr256-1vm
-| | framesize=${64} | wt=4 | rxq=2
+| | framesize=${64} | phy_cores=${4}
| tc10-1518B-4t4c-eth-l2xcbase-eth-2vhostvr256-1vm-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2XC switching config with 4 phy\
-| | ... | cores, 2 receive queues per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 1518B frames using single\
-| | ... | trial throughput test.
-| | ...
| | [Tags] | 1518B | 4C
-| | ...
-| | [Template] | Check RR for eth-l2xcbase-eth-2vhostvr256-1vm
-| | framesize=${1518} | wt=4 | rxq=2
+| | framesize=${1518} | phy_cores=${4}
| tc11-9000B-4t4c-eth-l2xcbase-eth-2vhostvr256-1vm-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2XC switching config with 4 phy\
-| | ... | cores, 2 receive queues per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 9000B frames using single\
-| | ... | trial throughput test.
-| | ...
| | [Tags] | 9000B | 4C
-| | ...
-| | [Template] | Check RR for eth-l2xcbase-eth-2vhostvr256-1vm
-| | framesize=${9000} | wt=4 | rxq=2
+| | framesize=${9000} | phy_cores=${4}
| tc12-IMIX-4t4c-eth-l2xcbase-eth-2vhostvr256-1vm-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2XC switching config with 4 phy\
-| | ... | cores, 2 receive queues per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for IMIX_v4_1 frames using single\
-| | ... | trial throughput test.
-| | ... | IMIX_v4_1 = (28x64B; 16x570B; 4x1518B)
-| | ...
| | [Tags] | IMIX | 4C
-| | ...
-| | [Template] | Check RR for eth-l2xcbase-eth-2vhostvr256-1vm
-| | framesize=IMIX_v4_1 | wt=4 | rxq=2
+| | framesize=IMIX_v4_1 | phy_cores=${4}
diff --git a/tests/vpp/perf/vm_vhost/10ge2p1x710-eth-l2xcbase-eth-4vhostvr1024-2vm-mrr.robot b/tests/vpp/perf/vm_vhost/10ge2p1x710-eth-l2xcbase-eth-4vhostvr1024-2vm-mrr.robot
index 0a9a335505..37ab60e039 100644
--- a/tests/vpp/perf/vm_vhost/10ge2p1x710-eth-l2xcbase-eth-4vhostvr1024-2vm-mrr.robot
+++ b/tests/vpp/perf/vm_vhost/10ge2p1x710-eth-l2xcbase-eth-4vhostvr1024-2vm-mrr.robot
@@ -27,6 +27,8 @@
| ... | dut1_node=${dut1} | dut1_vm_refs=${dut1_vm_refs}
| ... | dut2_node=${dut2} | dut2_vm_refs=${dut2_vm_refs}
| ...
+| Test Template | Local template
+| ...
| Documentation | *Raw results L2XC test cases with vhost*
| ...
| ... | *[Top] Network Topologies:* TG-DUT1-DUT2-TG 3-node circular topology
@@ -60,16 +62,21 @@
| ${traffic_profile}= | trex-sl-3n-ethip4-ip4src254
*** Keywords ***
-| Check RR for eth-l2xcbase-eth-4vhostvr1024-2vm-ndrdisc
+| Local template
| | [Documentation]
-| | ... | [Cfg] DUT runs L2XC switching config with ${wt} thread, ${wt} phy\
-| | ... | core, ${rxq} receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for ${framesize} frames using single\
+| | ... | [Cfg] DUT runs L2XC switching config.
+| | ... | Each DUT uses ${phy_cores} physical core(s) for worker threads.
+| | ... | [Ver] Measure MaxReceivedRate for ${framesize}B frames using single\
| | ... | trial throughput test.
| | ...
-| | [Arguments] | ${framesize} | ${wt} | ${rxq}
+| | ... | *Arguments:*
+| | ... | - framesize - Framesize in Bytes in integer or string (IMIX_v4_1).
+| | ... | Type: integer, string
+| | ... | - phy_cores - Number of physical cores. Type: integer
+| | ... | - rxq - Number of RX queues, default value: ${None}. Type: integer
+| | ...
+| | [Arguments] | ${framesize} | ${phy_cores} | ${rxq}=${None}
| | ...
-| | # Test Variables required for test and test teardown
| | Set Test Variable | ${framesize}
| | ${get_framesize}= | Get Frame Size | ${framesize}
| | ${max_rate}= | Calculate pps | ${s_limit} | ${get_framesize}
@@ -81,7 +88,7 @@
| | ... | ${False} | ${True}
| | Set Test Variable | ${jumbo_frames}
| | ...
-| | Given Add '${wt}' worker threads and '${rxq}' rxqueues in 3-node single-link circular topology
+| | Given Add worker threads and rxqueues to all DUTs | ${phy_cores} | ${rxq}
| | And Add PCI devices to all DUTs
| | And Run Keyword If | ${get_framesize} < ${1522}
| | ... | Add no multi seg to all DUTs
@@ -93,148 +100,49 @@
*** Test Cases ***
| tc01-64B-1t1c-eth-l2xcbase-eth-4vhostvr1024-2vm-ndrdisc-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2XC switching config with 1 phy\
-| | ... | core, 1 receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 64B frames using single\
-| | ... | trial throughput test.
-| | ...
| | [Tags] | 64B | 1C
-| | ...
-| | [Template] | Check RR for eth-l2xcbase-eth-4vhostvr1024-2vm-ndrdisc
-| | framesize=${64} | wt=1 | rxq=1
+| | framesize=${64} | phy_cores=${1}
| tc02-1518B-1t1c-eth-l2xcbase-eth-4vhostvr1024-2vm-ndrdisc-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2XC switching config with 1 phy\
-| | ... | core, 1 receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 1518B frames using single\
-| | ... | trial throughput test.
-| | ...
| | [Tags] | 1518B | 1C
-| | ...
-| | [Template] | Check RR for eth-l2xcbase-eth-4vhostvr1024-2vm-ndrdisc
-| | framesize=${1518} | wt=1 | rxq=1
+| | framesize=${1518} | phy_cores=${1}
| tc03-9000B-1t1c-eth-l2xcbase-eth-4vhostvr1024-2vm-ndrdisc-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2XC switching config with 1 phy\
-| | ... | core, 1 receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 9000B frames using single\
-| | ... | trial throughput test.
-| | ...
| | [Tags] | 9000B | 1C
-| | ...
-| | [Template] | Check RR for eth-l2xcbase-eth-4vhostvr1024-2vm-ndrdisc
-| | framesize=${9000} | wt=1 | rxq=1
+| | framesize=${9000} | phy_cores=${1}
| tc04-IMIX-1t1c-eth-l2xcbase-eth-4vhostvr1024-2vm-ndrdisc-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2XC switching config with 1 phy\
-| | ... | core, 1 receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for IMIX_v4_1 frames using single\
-| | ... | trial throughput test.
-| | ... | IMIX_v4_1 = (28x64B; 16x570B; 4x1518B)
-| | ...
| | [Tags] | IMIX | 1C
-| | ...
-| | [Template] | Check RR for eth-l2xcbase-eth-4vhostvr1024-2vm-ndrdisc
-| | framesize=IMIX_v4_1 | wt=1 | rxq=1
+| | framesize=IMIX_v4_1 | phy_cores=${1}
| tc05-64B-2t2c-eth-l2xcbase-eth-4vhostvr1024-2vm-ndrdisc-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2XC switching config with 2 phy\
-| | ... | cores, 1 receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 64B frames using single\
-| | ... | trial throughput test.
-| | ...
| | [Tags] | 64B | 2C
-| | ...
-| | [Template] | Check RR for eth-l2xcbase-eth-4vhostvr1024-2vm-ndrdisc
-| | framesize=${64} | wt=2 | rxq=1
+| | framesize=${64} | phy_cores=${2}
| tc06-1518B-2t2c-eth-l2xcbase-eth-4vhostvr1024-2vm-ndrdisc-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2XC switching config with 2 phy\
-| | ... | cores, 1 receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 1518B frames using single\
-| | ... | trial throughput test.
-| | ...
| | [Tags] | 1518B | 2C
-| | ...
-| | [Template] | Check RR for eth-l2xcbase-eth-4vhostvr1024-2vm-ndrdisc
-| | framesize=${1518} | wt=2 | rxq=1
+| | framesize=${1518} | phy_cores=${2}
| tc07-9000B-2t2c-eth-l2xcbase-eth-4vhostvr1024-2vm-ndrdisc-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2XC switching config with 2 phy\
-| | ... | cores, 1 receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 9000B frames using single\
-| | ... | trial throughput test.
-| | ...
| | [Tags] | 9000B | 2C
-| | ...
-| | [Template] | Check RR for eth-l2xcbase-eth-4vhostvr1024-2vm-ndrdisc
-| | framesize=${9000} | wt=2 | rxq=1
+| | framesize=${9000} | phy_cores=${2}
| tc08-IMIX-2t2c-eth-l2xcbase-eth-4vhostvr1024-2vm-ndrdisc-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2XC switching config with 2 phy\
-| | ... | cores, 1 receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for IMIX_v4_1 frames using single\
-| | ... | trial throughput test.
-| | ... | IMIX_v4_1 = (28x64B; 16x570B; 4x1518B)
-| | ...
| | [Tags] | IMIX | 2C
-| | ...
-| | [Template] | Check RR for eth-l2xcbase-eth-4vhostvr1024-2vm-ndrdisc
-| | framesize=IMIX_v4_1 | wt=2 | rxq=1
+| | framesize=IMIX_v4_1 | phy_cores=${2}
| tc09-64B-4t4c-eth-l2xcbase-eth-4vhostvr1024-2vm-ndrdisc-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2XC switching config with 4 phy\
-| | ... | cores, 2 receive queues per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 64B frames using single\
-| | ... | trial throughput test.
-| | ...
| | [Tags] | 64B | 4C
-| | ...
-| | [Template] | Check RR for eth-l2xcbase-eth-4vhostvr1024-2vm-ndrdisc
-| | framesize=${64} | wt=4 | rxq=2
+| | framesize=${64} | phy_cores=${4}
| tc10-1518B-4t4c-eth-l2xcbase-eth-4vhostvr1024-2vm-ndrdisc-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2XC switching config with 4 phy\
-| | ... | cores, 2 receive queues per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 1518B frames using single\
-| | ... | trial throughput test.
-| | ...
| | [Tags] | 1518B | 4C
-| | ...
-| | [Template] | Check RR for eth-l2xcbase-eth-4vhostvr1024-2vm-ndrdisc
-| | framesize=${1518} | wt=4 | rxq=2
+| | framesize=${1518} | phy_cores=${4}
| tc11-9000B-4t4c-eth-l2xcbase-eth-4vhostvr1024-2vm-ndrdisc-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2XC switching config with 4 phy\
-| | ... | cores, 2 receive queues per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 9000B frames using single\
-| | ... | trial throughput test.
-| | ...
| | [Tags] | 9000B | 4C
-| | ...
-| | [Template] | Check RR for eth-l2xcbase-eth-4vhostvr1024-2vm-ndrdisc
-| | framesize=${9000} | wt=4 | rxq=2
+| | framesize=${9000} | phy_cores=${4}
| tc12-IMIX-4t4c-eth-l2xcbase-eth-4vhostvr1024-2vm-ndrdisc-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2XC switching config with 4 phy\
-| | ... | cores, 2 receive queues per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for IMIX_v4_1 frames using single\
-| | ... | trial throughput test.
-| | ... | IMIX_v4_1 = (28x64B; 16x570B; 4x1518B)
-| | ...
| | [Tags] | IMIX | 4C
-| | ...
-| | [Template] | Check RR for eth-l2xcbase-eth-4vhostvr1024-2vm-ndrdisc
-| | framesize=IMIX_v4_1 | wt=4 | rxq=2
+| | framesize=IMIX_v4_1 | phy_cores=${4}
diff --git a/tests/vpp/perf/vm_vhost/10ge2p1x710-ethip4-ip4base-eth-2vhostvr1024-1vm-mrr.robot b/tests/vpp/perf/vm_vhost/10ge2p1x710-ethip4-ip4base-eth-2vhostvr1024-1vm-mrr.robot
index 7b59a100ef..5129b9a5f1 100644
--- a/tests/vpp/perf/vm_vhost/10ge2p1x710-ethip4-ip4base-eth-2vhostvr1024-1vm-mrr.robot
+++ b/tests/vpp/perf/vm_vhost/10ge2p1x710-ethip4-ip4base-eth-2vhostvr1024-1vm-mrr.robot
@@ -27,6 +27,8 @@
| ... | dut1_node=${dut1} | dut1_vm_refs=${dut1_vm_refs}
| ... | dut2_node=${dut2} | dut2_vm_refs=${dut2_vm_refs}
| ...
+| Test Template | Local template
+| ...
| Documentation | *Raw results IPv4 test cases with vhost*
| ...
| ... | *[Top] Network Topologies:* TG-DUT1-DUT2-TG 3-node circular topology
@@ -62,16 +64,21 @@
| ${traffic_profile} | trex-sl-3n-ethip4-ip4src253
*** Keywords ***
-| Check RR for ethip4-ip4base-eth-2vhostvr1024-1vm
+| Local template
| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 routing config with ${wt} thread, ${wt} phy\
-| | ... | core, ${rxq} receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for ${framesize} frames using single\
+| | ... | [Cfg] DUT runs IPv4 routing config.
+| | ... | Each DUT uses ${phy_cores} physical core(s) for worker threads.
+| | ... | [Ver] Measure MaxReceivedRate for ${framesize}B frames using single\
| | ... | trial throughput test.
| | ...
-| | [Arguments] | ${framesize} | ${wt} | ${rxq}
+| | ... | *Arguments:*
+| | ... | - framesize - Framesize in Bytes in integer or string (IMIX_v4_1).
+| | ... | Type: integer, string
+| | ... | - phy_cores - Number of physical cores. Type: integer
+| | ... | - rxq - Number of RX queues, default value: ${None}. Type: integer
+| | ...
+| | [Arguments] | ${framesize} | ${phy_cores} | ${rxq}=${None}
| | ...
-| | # Test Variables required for test and test teardown
| | Set Test Variable | ${framesize}
| | ${get_framesize}= | Get Frame Size | ${framesize}
| | ${max_rate}= | Calculate pps | ${s_limit} | ${framesize}
@@ -82,7 +89,7 @@
| | ${jumbo_frames}= | Set Variable If | ${get_framesize} < ${1522}
| | ... | ${False} | ${True}
| | ...
-| | Given Add '${wt}' worker threads and '${rxq}' rxqueues in 3-node single-link circular topology
+| | Given Add worker threads and rxqueues to all DUTs | ${phy_cores} | ${rxq}
| | And Add PCI devices to all DUTs
| | And Run Keyword If | ${get_framesize} < ${1522}
| | ... | Add no multi seg to all DUTs
@@ -102,148 +109,49 @@
*** Test Cases ***
| tc01-64B-1t1c-ethip4-ip4base-eth-2vhostvr1024-1vm-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 routing config with 1 phy\
-| | ... | core, 1 receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 64B frames using single\
-| | ... | trial throughput test.
-| | ...
| | [Tags] | 64B | 1C
-| | ...
-| | [Template] | Check RR for ethip4-ip4base-eth-2vhostvr1024-1vm
-| | framesize=${64} | wt=1 | rxq=1
+| | framesize=${64} | phy_cores=${1}
| tc02-1518B-1t1c-ethip4-ip4base-eth-2vhostvr1024-1vm-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 routing config with 1 phy\
-| | ... | core, 1 receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 1518B frames using single\
-| | ... | trial throughput test.
-| | ...
| | [Tags] | 1518B | 1C
-| | ...
-| | [Template] | Check RR for ethip4-ip4base-eth-2vhostvr1024-1vm
-| | framesize=${1518} | wt=1 | rxq=1
+| | framesize=${1518} | phy_cores=${1}
| tc03-9000B-1t1c-ethip4-ip4base-eth-2vhostvr1024-1vm-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 routing config with 1 phy\
-| | ... | core, 1 receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 9000B frames using single\
-| | ... | trial throughput test.
-| | ...
| | [Tags] | 9000B | 1C
-| | ...
-| | [Template] | Check RR for ethip4-ip4base-eth-2vhostvr1024-1vm
-| | framesize=${9000} | wt=1 | rxq=1
+| | framesize=${9000} | phy_cores=${1}
| tc04-IMIX-1t1c-ethip4-ip4base-eth-2vhostvr1024-1vm-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 routing config with 1 phy\
-| | ... | core, 1 receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for IMIX_v4_1 frames using single\
-| | ... | trial throughput test.
-| | ... | IMIX_v4_1 = (28x64B; 16x570B; 4x1518B)
-| | ...
| | [Tags] | IMIX | 1C
-| | ...
-| | [Template] | Check RR for ethip4-ip4base-eth-2vhostvr1024-1vm
-| | framesize=IMIX_v4_1 | wt=1 | rxq=1
+| | framesize=IMIX_v4_1 | phy_cores=${1}
| tc05-64B-2t2c-ethip4-ip4base-eth-2vhostvr1024-1vm-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 routing config with 2 phy\
-| | ... | cores, 1 receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 64B frames using single\
-| | ... | trial throughput test.
-| | ...
| | [Tags] | 64B | 2C
-| | ...
-| | [Template] | Check RR for ethip4-ip4base-eth-2vhostvr1024-1vm
-| | framesize=${64} | wt=2 | rxq=1
+| | framesize=${64} | phy_cores=${2}
| tc06-1518B-2t2c-ethip4-ip4base-eth-2vhostvr1024-1vm-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 routing config with 2 phy\
-| | ... | cores, 1 receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 1518B frames using single\
-| | ... | trial throughput test.
-| | ...
| | [Tags] | 1518B | 2C
-| | ...
-| | [Template] | Check RR for ethip4-ip4base-eth-2vhostvr1024-1vm
-| | framesize=${1518} | wt=2 | rxq=1
+| | framesize=${1518} | phy_cores=${2}
| tc07-9000B-2t2c-ethip4-ip4base-eth-2vhostvr1024-1vm-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 routing config with 2 phy\
-| | ... | cores, 1 receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 9000B frames using single\
-| | ... | trial throughput test.
-| | ...
| | [Tags] | 9000B | 2C
-| | ...
-| | [Template] | Check RR for ethip4-ip4base-eth-2vhostvr1024-1vm
-| | framesize=${9000} | wt=2 | rxq=1
+| | framesize=${9000} | phy_cores=${2}
| tc08-IMIX-2t2c-ethip4-ip4base-eth-2vhostvr1024-1vm-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 routing config with 2 phy\
-| | ... | cores, 1 receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for IMIX_v4_1 frames using single\
-| | ... | trial throughput test.
-| | ... | IMIX_v4_1 = (28x64B; 16x570B; 4x1518B)
-| | ...
| | [Tags] | IMIX | 2C
-| | ...
-| | [Template] | Check RR for ethip4-ip4base-eth-2vhostvr1024-1vm
-| | framesize=IMIX_v4_1 | wt=2 | rxq=1
+| | framesize=IMIX_v4_1 | phy_cores=${2}
| tc09-64B-4t4c-ethip4-ip4base-eth-2vhostvr1024-1vm-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 routing config with 4 phy\
-| | ... | cores, 2 receive queues per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 64B frames using single\
-| | ... | trial throughput test.
-| | ...
| | [Tags] | 64B | 4C
-| | ...
-| | [Template] | Check RR for ethip4-ip4base-eth-2vhostvr1024-1vm
-| | framesize=${64} | wt=4 | rxq=2
+| | framesize=${64} | phy_cores=${4}
| tc10-1518B-4t4c-ethip4-ip4base-eth-2vhostvr1024-1vm-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 routing config with 4 phy\
-| | ... | cores, 2 receive queues per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 1518B frames using single\
-| | ... | trial throughput test.
-| | ...
| | [Tags] | 1518B | 4C
-| | ...
-| | [Template] | Check RR for ethip4-ip4base-eth-2vhostvr1024-1vm
-| | framesize=${1518} | wt=4 | rxq=2
+| | framesize=${1518} | phy_cores=${4}
| tc11-9000B-4t4c-ethip4-ip4base-eth-2vhostvr1024-1vm-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 routing config with 4 phy\
-| | ... | cores, 2 receive queues per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 9000B frames using single\
-| | ... | trial throughput test.
-| | ...
| | [Tags] | 9000B | 4C
-| | ...
-| | [Template] | Check RR for ethip4-ip4base-eth-2vhostvr1024-1vm
-| | framesize=${9000} | wt=4 | rxq=2
+| | framesize=${9000} | phy_cores=${4}
| tc12-IMIX-4t4c-ethip4-ip4base-eth-2vhostvr1024-1vm-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 routing config with 4 phy\
-| | ... | cores, 2 receive queues per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for IMIX_v4_1 frames using single\
-| | ... | trial throughput test.
-| | ... | IMIX_v4_1 = (28x64B; 16x570B; 4x1518B)
-| | ...
| | [Tags] | IMIX | 4C
-| | ...
-| | [Template] | Check RR for ethip4-ip4base-eth-2vhostvr1024-1vm
-| | framesize=IMIX_v4_1 | wt=4 | rxq=2
+| | framesize=IMIX_v4_1 | phy_cores=${4}
diff --git a/tests/vpp/perf/vm_vhost/10ge2p1x710-ethip4-ip4base-eth-2vhostvr256-1vm-mrr.robot b/tests/vpp/perf/vm_vhost/10ge2p1x710-ethip4-ip4base-eth-2vhostvr256-1vm-mrr.robot
index 66d609e39e..594a110ee6 100644
--- a/tests/vpp/perf/vm_vhost/10ge2p1x710-ethip4-ip4base-eth-2vhostvr256-1vm-mrr.robot
+++ b/tests/vpp/perf/vm_vhost/10ge2p1x710-ethip4-ip4base-eth-2vhostvr256-1vm-mrr.robot
@@ -27,6 +27,8 @@
| ... | dut1_node=${dut1} | dut1_vm_refs=${dut1_vm_refs}
| ... | dut2_node=${dut2} | dut2_vm_refs=${dut2_vm_refs}
| ...
+| Test Template | Local template
+| ...
| Documentation | *Raw results IPv4 test cases with vhost*
| ...
| ... | *[Top] Network Topologies:* TG-DUT1-DUT2-TG 3-node circular topology
@@ -62,16 +64,21 @@
| ${traffic_profile}= | trex-sl-3n-ethip4-ip4src253
*** Keywords ***
-| Check RR for eth-ip4base-eth-2vhostvr256-1vm
+| Local template
| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 routing config with ${wt} thread, ${wt} phy\
-| | ... | core, ${rxq} receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for ${framesize} frames using single\
+| | ... | [Cfg] DUT runs IPv4 routing config.
+| | ... | Each DUT uses ${phy_cores} physical core(s) for worker threads.
+| | ... | [Ver] Measure MaxReceivedRate for ${framesize}B frames using single\
| | ... | trial throughput test.
| | ...
-| | [Arguments] | ${framesize} | ${wt} | ${rxq}
+| | ... | *Arguments:*
+| | ... | - framesize - Framesize in Bytes in integer or string (IMIX_v4_1).
+| | ... | Type: integer, string
+| | ... | - phy_cores - Number of physical cores. Type: integer
+| | ... | - rxq - Number of RX queues, default value: ${None}. Type: integer
+| | ...
+| | [Arguments] | ${framesize} | ${phy_cores} | ${rxq}=${None}
| | ...
-| | # Test Variables required for test and test teardown
| | Set Test Variable | ${framesize}
| | ${get_framesize}= | Get Frame Size | ${framesize}
| | ${max_rate}= | Calculate pps | ${s_limit} | ${get_framesize}
@@ -82,7 +89,7 @@
| | ${jumbo_frames}= | Set Variable If | ${get_framesize} < ${1522}
| | ... | ${False} | ${True}
| | ...
-| | Given Add '${wt}' worker threads and '${rxq}' rxqueues in 3-node single-link circular topology
+| | Given Add worker threads and rxqueues to all DUTs | ${phy_cores} | ${rxq}
| | And Add PCI devices to all DUTs
| | And Run Keyword If | ${get_framesize} < ${1522}
| | ... | Add no multi seg to all DUTs
@@ -102,148 +109,49 @@
*** Test Cases ***
| tc01-64B-1t1c-ethip4-ip4base-eth-2vhostvr256-1vm-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs IP4 routing config with 1 phy core,\
-| | ... | 1 receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 64B frames using single\
-| | ... | trial throughput test.
-| | ...
| | [Tags] | 64B | 1C
-| | ...
-| | [Template] | Check RR for eth-ip4base-eth-2vhostvr256-1vm
-| | framesize=${64} | wt=1 | rxq=1
+| | framesize=${64} | phy_cores=${1}
| tc02-1518B-1t1c-ethip4-ip4base-eth-2vhostvr256-1vm
-| | [Documentation]
-| | ... | [Cfg] DUT runs IP4 routing config with 1 phy core,\
-| | ... | 1 receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 1518B frames using single\
-| | ... | trial throughput test.
-| | ...
| | [Tags] | 1518B | 1C
-| | ...
-| | [Template] | Check RR for eth-ip4base-eth-2vhostvr256-1vm
-| | framesize=${1518} | wt=1 | rxq=1
+| | framesize=${1518} | phy_cores=${1}
| tc03-9000B-1t1c-ethip4-ip4base-eth-2vhostvr256-1vm
-| | [Documentation]
-| | ... | [Cfg] DUT runs IP4 routing config with 1 phy core,\
-| | ... | 1 receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 9000B frames using single\
-| | ... | trial throughput test.
-| | ...
| | [Tags] | 9000B | 1C
-| | ...
-| | [Template] | Check RR for eth-ip4base-eth-2vhostvr256-1vm
-| | framesize=${9000} | wt=1 | rxq=1
+| | framesize=${9000} | phy_cores=${1}
| tc04-IMIX-1t1c-ethip4-ip4base-eth-2vhostvr256-1vm-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs IP4 routing config with 1 phy core,\
-| | ... | 1 receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for IMIX_v4_1 frames using single\
-| | ... | trial throughput test.
-| | ... | IMIX_v4_1 = (28x64B; 16x570B; 4x1518B)
-| | ...
| | [Tags] | IMIX | 1C
-| | ...
-| | [Template] | Check RR for eth-ip4base-eth-2vhostvr256-1vm
-| | framesize=IMIX_v4_1 | wt=1 | rxq=1
+| | framesize=IMIX_v4_1 | phy_cores=${1}
| tc05-64B-2t2c-ethip4-ip4base-eth-2vhostvr256-1vm-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs IP4 routing config with 2 phy cores,\
-| | ... | 1 receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 64B frames using single\
-| | ... | trial throughput test.
-| | ...
| | [Tags] | 64B | 2C
-| | ...
-| | [Template] | Check RR for eth-ip4base-eth-2vhostvr256-1vm
-| | framesize=${64} | wt=2 | rxq=1
+| | framesize=${64} | phy_cores=${2}
| tc06-1518B-2t2c-ethip4-ip4base-eth-2vhostvr256-1vm-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs IP4 routing config with 2 phy cores,\
-| | ... | 1 receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 1518B frames using single\
-| | ... | trial throughput test.
-| | ...
| | [Tags] | 1518B | 2C
-| | ...
-| | [Template] | Check RR for eth-ip4base-eth-2vhostvr256-1vm
-| | framesize=${1518} | wt=2 | rxq=1
+| | framesize=${1518} | phy_cores=${2}
| tc07-9000B-2t2c-ethip4-ip4base-eth-2vhostvr256-1vm-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs IP4 routing config with 2 phy cores,\
-| | ... | 1 receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 9000B frames using single\
-| | ... | trial throughput test.
-| | ...
| | [Tags] | 9000B | 2C
-| | ...
-| | [Template] | Check RR for eth-ip4base-eth-2vhostvr256-1vm
-| | framesize=${9000} | wt=2 | rxq=1
+| | framesize=${9000} | phy_cores=${2}
| tc08-IMIX-2t2c-ethip4-ip4base-eth-2vhostvr256-1vm-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs IP4 routing config with 2 phy cores,\
-| | ... | 1 receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for IMIX_v4_1 frames using single\
-| | ... | trial throughput test.
-| | ... | IMIX_v4_1 = (28x64B; 16x570B; 4x1518B)
-| | ...
| | [Tags] | IMIX | 2C
-| | ...
-| | [Template] | Check RR for eth-ip4base-eth-2vhostvr256-1vm
-| | framesize=IMIX_v4_1 | wt=2 | rxq=1
+| | framesize=IMIX_v4_1 | phy_cores=${2}
| tc09-64B-4t4c-ethip4-ip4base-eth-2vhostvr256-1vm-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs IP4 routing config with 4 phy cores,\
-| | ... | 2 receive queues per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 64B frames using single\
-| | ... | trial throughput test.
-| | ...
| | [Tags] | 64B | 4C
-| | ...
-| | [Template] | Check RR for eth-ip4base-eth-2vhostvr256-1vm
-| | framesize=${64} | wt=4 | rxq=2
+| | framesize=${64} | phy_cores=${4}
| tc10-1518B-4t4c-ethip4-ip4base-eth-2vhostvr256-1vm-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs IP4 routing config with 4 phy cores,\
-| | ... | 2 receive queues per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 1518B frames using single\
-| | ... | trial throughput test.
-| | ...
| | [Tags] | 1518B | 4C
-| | ...
-| | [Template] | Check RR for eth-ip4base-eth-2vhostvr256-1vm
-| | framesize=${1518} | wt=4 | rxq=2
+| | framesize=${1518} | phy_cores=${4}
| tc11-9000B-4t4c-ethip4-ip4base-eth-2vhostvr256-1vm-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs IP4 routing config with 4 phy cores,\
-| | ... | 2 receive queues per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 9000B frames using single\
-| | ... | trial throughput test.
-| | ...
| | [Tags] | 9000B | 4C
-| | ...
-| | [Template] | Check RR for eth-ip4base-eth-2vhostvr256-1vm
-| | framesize=${9000} | wt=4 | rxq=2
+| | framesize=${9000} | phy_cores=${4}
| tc12-IMIX-4t4c-ethip4-ip4base-eth-2vhostvr256-1vm-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs IP4 routing config with 4 phy cores,\
-| | ... | 2 receive queues per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for IMIX_v4_1 frames using single\
-| | ... | trial throughput test.
-| | ... | IMIX_v4_1 = (28x64B; 16x570B; 4x1518B)
-| | ...
| | [Tags] | IMIX | 4C
-| | ...
-| | [Template] | Check RR for eth-ip4base-eth-2vhostvr256-1vm
-| | framesize=IMIX_v4_1 | wt=4 | rxq=2
+| | framesize=IMIX_v4_1 | phy_cores=${4}
diff --git a/tests/vpp/perf/vm_vhost/10ge2p1x710-ethip4-ip4base-eth-4vhostvr1024-2vm-mrr.robot b/tests/vpp/perf/vm_vhost/10ge2p1x710-ethip4-ip4base-eth-4vhostvr1024-2vm-mrr.robot
index d473a76ca1..d67e1f4af0 100644
--- a/tests/vpp/perf/vm_vhost/10ge2p1x710-ethip4-ip4base-eth-4vhostvr1024-2vm-mrr.robot
+++ b/tests/vpp/perf/vm_vhost/10ge2p1x710-ethip4-ip4base-eth-4vhostvr1024-2vm-mrr.robot
@@ -27,6 +27,8 @@
| ... | dut1_node=${dut1} | dut1_vm_refs=${dut1_vm_refs}
| ... | dut2_node=${dut2} | dut2_vm_refs=${dut2_vm_refs}
| ...
+| Test Template | Local template
+| ...
| Documentation | *Raw results IPv4 test cases with vhost*
| ...
| ... | *[Top] Network Topologies:* TG-DUT1-DUT2-TG 3-node circular topology
@@ -66,16 +68,21 @@
| ${traffic_profile}= | trex-sl-3n-ethip4-ip4src253
*** Keywords ***
-| Check RR for ethip4-ip4base-eth-4vhostvr1024-2vm
+| Local template
| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 routing config with ${wt} thread, ${wt} phy\
-| | ... | core, ${rxq} receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for ${framesize} frames using single\
+| | ... | [Cfg] DUT runs IPv4 routing config.
+| | ... | Each DUT uses ${phy_cores} physical core(s) for worker threads.
+| | ... | [Ver] Measure MaxReceivedRate for ${framesize}B frames using single\
| | ... | trial throughput test.
| | ...
-| | [Arguments] | ${framesize} | ${wt} | ${rxq}
+| | ... | *Arguments:*
+| | ... | - framesize - Framesize in Bytes in integer or string (IMIX_v4_1).
+| | ... | Type: integer, string
+| | ... | - phy_cores - Number of physical cores. Type: integer
+| | ... | - rxq - Number of RX queues, default value: ${None}. Type: integer
+| | ...
+| | [Arguments] | ${framesize} | ${phy_cores} | ${rxq}=${None}
| | ...
-| | # Test Variables required for test and test teardown
| | Set Test Variable | ${framesize}
| | ${get_framesize}= | Get Frame Size | ${framesize}
| | ${max_rate}= | Calculate pps | ${s_limit} | ${framesize}
@@ -87,7 +94,7 @@
| | ... | ${False} | ${True}
| | Set Test Variable | ${jumbo_frames}
| | ...
-| | Given Add '${wt}' worker threads and '${rxq}' rxqueues in 3-node single-link circular topology
+| | Given Add worker threads and rxqueues to all DUTs | ${phy_cores} | ${rxq}
| | And Add PCI devices to all DUTs
| | And Run Keyword If | ${get_framesize} < ${1522}
| | ... | Add no multi seg to all DUTs
@@ -99,148 +106,49 @@
*** Test Cases ***
| tc01-64B-1t1c-ethip4-ip4base-eth-4vhostvr1024-2vm-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 routing config with 1 phy\
-| | ... | core, 1 receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 64B frames using single\
-| | ... | trial throughput test.
-| | ...
| | [Tags] | 64B | 1C
-| | ...
-| | [Template] | Check RR for ethip4-ip4base-eth-4vhostvr1024-2vm
-| | framesize=${64} | wt=1 | rxq=1
+| | framesize=${64} | phy_cores=${1}
| tc02-1518B-1t1c-ethip4-ip4base-eth-4vhostvr1024-2vm-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 routing config with 1 phy\
-| | ... | core, 1 receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 1518B frames using single\
-| | ... | trial throughput test.
-| | ...
| | [Tags] | 1518B | 1C
-| | ...
-| | [Template] | Check RR for ethip4-ip4base-eth-4vhostvr1024-2vm
-| | framesize=${1518} | wt=1 | rxq=1
+| | framesize=${1518} | phy_cores=${1}
| tc03-9000B-1t1c-ethip4-ip4base-eth-4vhostvr1024-2vm-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 routing config with 1 phy\
-| | ... | core, 1 receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 9000B frames using single\
-| | ... | trial throughput test.
-| | ...
| | [Tags] | 9000B | 1C
-| | ...
-| | [Template] | Check RR for ethip4-ip4base-eth-4vhostvr1024-2vm
-| | framesize=${9000} | wt=1 | rxq=1
+| | framesize=${9000} | phy_cores=${1}
| tc04-IMIX-1t1c-ethip4-ip4base-eth-4vhostvr1024-2vm-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 routing config with 1 phy\
-| | ... | core, 1 receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for IMIX_v4_1 frames using single\
-| | ... | trial throughput test.
-| | ... | IMIX_v4_1 = (28x64B; 16x570B; 4x1518B)
-| | ...
| | [Tags] | IMIX | 1C
-| | ...
-| | [Template] | Check RR for ethip4-ip4base-eth-4vhostvr1024-2vm
-| | framesize=IMIX_v4_1 | wt=1 | rxq=1
+| | framesize=IMIX_v4_1 | phy_cores=${1}
| tc05-64B-2t2c-ethip4-ip4base-eth-4vhostvr1024-2vm-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 routing config with 2 phy\
-| | ... | cores, 1 receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 64B frames using single\
-| | ... | trial throughput test.
-| | ...
| | [Tags] | 64B | 2C
-| | ...
-| | [Template] | Check RR for ethip4-ip4base-eth-4vhostvr1024-2vm
-| | framesize=${64} | wt=2 | rxq=1
+| | framesize=${64} | phy_cores=${2}
| tc06-1518B-2t2c-ethip4-ip4base-eth-4vhostvr1024-2vm-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 routing config with 2 phy\
-| | ... | cores, 1 receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 1518B frames using single\
-| | ... | trial throughput test.
-| | ...
| | [Tags] | 1518B | 2C
-| | ...
-| | [Template] | Check RR for ethip4-ip4base-eth-4vhostvr1024-2vm
-| | framesize=${1518} | wt=2 | rxq=1
+| | framesize=${1518} | phy_cores=${2}
| tc07-9000B-2t2c-ethip4-ip4base-eth-4vhostvr1024-2vm-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 routing config with 2 phy\
-| | ... | cores, 1 receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 9000B frames using single\
-| | ... | trial throughput test.
-| | ...
| | [Tags] | 9000B | 2C
-| | ...
-| | [Template] | Check RR for ethip4-ip4base-eth-4vhostvr1024-2vm
-| | framesize=${9000} | wt=2 | rxq=1
+| | framesize=${9000} | phy_cores=${2}
| tc08-IMIX-2t2c-ethip4-ip4base-eth-4vhostvr1024-2vm-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 routing config with 2 phy\
-| | ... | cores, 1 receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for IMIX_v4_1 frames using single\
-| | ... | trial throughput test.
-| | ... | IMIX_v4_1 = (28x64B; 16x570B; 4x1518B)
-| | ...
| | [Tags] | IMIX | 2C
-| | ...
-| | [Template] | Check RR for ethip4-ip4base-eth-4vhostvr1024-2vm
-| | framesize=IMIX_v4_1 | wt=2 | rxq=1
+| | framesize=IMIX_v4_1 | phy_cores=${2}
| tc09-64B-4t4c-ethip4-ip4base-eth-4vhostvr1024-2vm-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 routing config with 4 phy\
-| | ... | cores, 2 receive queues per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 64B frames using single\
-| | ... | trial throughput test.
-| | ...
| | [Tags] | 64B | 4C
-| | ...
-| | [Template] | Check RR for ethip4-ip4base-eth-4vhostvr1024-2vm
-| | framesize=${64} | wt=4 | rxq=2
+| | framesize=${64} | phy_cores=${4}
| tc10-1518B-4t4c-ethip4-ip4base-eth-4vhostvr1024-2vm-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 routing config with 4 phy\
-| | ... | cores, 2 receive queues per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 1518B frames using single\
-| | ... | trial throughput test.
-| | ...
| | [Tags] | 1518B | 4C
-| | ...
-| | [Template] | Check RR for ethip4-ip4base-eth-4vhostvr1024-2vm
-| | framesize=${1518} | wt=4 | rxq=2
+| | framesize=${1518} | phy_cores=${4}
| tc11-9000B-4t4c-ethip4-ip4base-eth-4vhostvr1024-2vm-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 routing config with 4 phy\
-| | ... | cores, 2 receive queues per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 9000B frames using single\
-| | ... | trial throughput test.
-| | ...
| | [Tags] | 9000B | 4C
-| | ...
-| | [Template] | Check RR for ethip4-ip4base-eth-4vhostvr1024-2vm
-| | framesize=${9000} | wt=4 | rxq=2
+| | framesize=${9000} | phy_cores=${4}
| tc12-IMIX-4t4c-ethip4-ip4base-eth-4vhostvr1024-2vm-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 routing config with 4 phy\
-| | ... | cores, 2 receive queues per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for IMIX_v4_1 frames using single\
-| | ... | trial throughput test.
-| | ... | IMIX_v4_1 = (28x64B; 16x570B; 4x1518B)
-| | ...
| | [Tags] | IMIX | 4C
-| | ...
-| | [Template] | Check RR for ethip4-ip4base-eth-4vhostvr1024-2vm
-| | framesize=IMIX_v4_1 | wt=4 | rxq=2
+| | framesize=IMIX_v4_1 | phy_cores=${4}
diff --git a/tests/vpp/perf/vm_vhost/10ge2p1x710-ethip4vxlan-l2bdbasemaclrn-eth-2vhostvr1024-1vm-mrr.robot b/tests/vpp/perf/vm_vhost/10ge2p1x710-ethip4vxlan-l2bdbasemaclrn-eth-2vhostvr1024-1vm-mrr.robot
index 826b54c4e4..e4480b49e0 100644
--- a/tests/vpp/perf/vm_vhost/10ge2p1x710-ethip4vxlan-l2bdbasemaclrn-eth-2vhostvr1024-1vm-mrr.robot
+++ b/tests/vpp/perf/vm_vhost/10ge2p1x710-ethip4vxlan-l2bdbasemaclrn-eth-2vhostvr1024-1vm-mrr.robot
@@ -28,6 +28,8 @@
| ... | dut1_node=${dut1} | dut1_vm_refs=${dut1_vm_refs}
| ... | dut2_node=${dut2} | dut2_vm_refs=${dut2_vm_refs}
| ...
+| Test Template | Local template
+| ...
| Documentation | *Raw results L2BD test cases with VXLANoIPv4
| ... | and vhost*
| ...
@@ -66,16 +68,21 @@
| ${traffic_profile}= | trex-sl-3n-ethip4-ip4src254
*** Keywords ***
-| Check RR for ethip4vxlan-l2bdbasemaclrn-eth-2vhostvr1024-1vm
+| Local template
| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with ${wt} thread, ${wt} phy\
-| | ... | core, ${rxq} receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for ${framesize} frames using single\
+| | ... | [Cfg] DUT runs L2BD switching config.
+| | ... | Each DUT uses ${phy_cores} physical core(s) for worker threads.
+| | ... | [Ver] Measure MaxReceivedRate for ${framesize}B frames using single\
| | ... | trial throughput test.
| | ...
-| | [Arguments] | ${framesize} | ${wt} | ${rxq}
+| | ... | *Arguments:*
+| | ... | - framesize - Framesize in Bytes in integer or string (IMIX_v4_1).
+| | ... | Type: integer, string
+| | ... | - phy_cores - Number of physical cores. Type: integer
+| | ... | - rxq - Number of RX queues, default value: ${None}. Type: integer
+| | ...
+| | [Arguments] | ${framesize} | ${phy_cores} | ${rxq}=${None}
| | ...
-| | # Test Variables required for test and test teardown
| | Set Test Variable | ${framesize}
| | ${get_framesize}= | Get Frame Size | ${framesize}
| | ${max_rate}= | Calculate pps | ${s_limit}
@@ -87,7 +94,7 @@
| | ${jumbo_frames}= | Set Variable If | ${get_framesize} < ${1522}
| | ... | ${False} | ${True}
| | ...
-| | Given Add '${wt}' worker threads and '${rxq}' rxqueues in 3-node single-link circular topology
+| | Given Add worker threads and rxqueues to all DUTs | ${phy_cores} | ${rxq}
| | And Add PCI devices to all DUTs
| | And Run Keyword If | ${get_framesize} < ${1522}
| | ... | Add no multi seg to all DUTs
@@ -107,148 +114,49 @@
*** Test Cases ***
| tc01-64B-1t1c-ethip4vxlan-l2bdbasemaclrn-eth-2vhostvr1024-1vm-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with 1 phy\
-| | ... | core, 1 receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 64B frames using single\
-| | ... | trial throughput test.
-| | ...
| | [Tags] | 64B | 1C
-| | ...
-| | [Template] | Check RR for ethip4vxlan-l2bdbasemaclrn-eth-2vhostvr1024-1vm
-| | framesize=${64} | wt=1 | rxq=1
+| | framesize=${64} | phy_cores=${1}
| tc02-1518B-1t1c-ethip4vxlan-l2bdbasemaclrn-eth-2vhostvr1024-1vm-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with 1 phy\
-| | ... | core, 1 receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 1518B frames using single\
-| | ... | trial throughput test.
-| | ...
| | [Tags] | 1518B | 1C
-| | ...
-| | [Template] | Check RR for ethip4vxlan-l2bdbasemaclrn-eth-2vhostvr1024-1vm
-| | framesize=${1518} | wt=1 | rxq=1
+| | framesize=${1518} | phy_cores=${1}
| tc03-9000B-1t1c-ethip4vxlan-l2bdbasemaclrn-eth-2vhostvr1024-1vm-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with 1 phy\
-| | ... | core, 1 receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 9000B frames using single\
-| | ... | trial throughput test.
-| | ...
| | [Tags] | 9000B | 1C
-| | ...
-| | [Template] | Check RR for ethip4vxlan-l2bdbasemaclrn-eth-2vhostvr1024-1vm
-| | framesize=${9000} | wt=1 | rxq=1
+| | framesize=${9000} | phy_cores=${1}
| tc04-IMIX-1t1c-ethip4vxlan-l2bdbasemaclrn-eth-2vhostvr1024-1vm-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with 1 phy\
-| | ... | core, 1 receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for IMIX_v4_1 frames using single\
-| | ... | trial throughput test.
-| | ... | IMIX_v4_1 = (28x64B; 16x570B; 4x1518B)
-| | ...
| | [Tags] | IMIX | 1C
-| | ...
-| | [Template] | Check RR for ethip4vxlan-l2bdbasemaclrn-eth-2vhostvr1024-1vm
-| | framesize=IMIX_v4_1 | wt=1 | rxq=1
+| | framesize=IMIX_v4_1 | phy_cores=${1}
| tc05-64B-2t2c-ethip4vxlan-l2bdbasemaclrn-eth-2vhostvr1024-1vm-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with 2 phy\
-| | ... | cores, 1 receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 64B frames using single\
-| | ... | trial throughput test.
-| | ...
| | [Tags] | 64B | 2C
-| | ...
-| | [Template] | Check RR for ethip4vxlan-l2bdbasemaclrn-eth-2vhostvr1024-1vm
-| | framesize=${64} | wt=2 | rxq=1
+| | framesize=${64} | phy_cores=${2}
| tc06-1518B-2t2c-ethip4vxlan-l2bdbasemaclrn-eth-2vhostvr1024-1vm-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with 2 phy\
-| | ... | cores, 1 receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 1518B frames using single\
-| | ... | trial throughput test.
-| | ...
| | [Tags] | 1518B | 2C
-| | ...
-| | [Template] | Check RR for ethip4vxlan-l2bdbasemaclrn-eth-2vhostvr1024-1vm
-| | framesize=${1518} | wt=2 | rxq=1
+| | framesize=${1518} | phy_cores=${2}
| tc07-9000B-2t2c-ethip4vxlan-l2bdbasemaclrn-eth-2vhostvr1024-1vm-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with 2 phy\
-| | ... | cores, 1 receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 9000B frames using single\
-| | ... | trial throughput test.
-| | ...
| | [Tags] | 9000B | 2C
-| | ...
-| | [Template] | Check RR for ethip4vxlan-l2bdbasemaclrn-eth-2vhostvr1024-1vm
-| | framesize=${9000} | wt=2 | rxq=1
+| | framesize=${9000} | phy_cores=${2}
| tc08-IMIX-2t2c-ethip4vxlan-l2bdbasemaclrn-eth-2vhostvr1024-1vm-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with 2 phy\
-| | ... | cores, 1 receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for IMIX_v4_1 frames using single\
-| | ... | trial throughput test.
-| | ... | IMIX_v4_1 = (28x64B; 16x570B; 4x1518B)
-| | ...
| | [Tags] | IMIX | 2C
-| | ...
-| | [Template] | Check RR for ethip4vxlan-l2bdbasemaclrn-eth-2vhostvr1024-1vm
-| | framesize=IMIX_v4_1 | wt=2 | rxq=1
+| | framesize=IMIX_v4_1 | phy_cores=${2}
| tc09-64B-4t4c-ethip4vxlan-l2bdbasemaclrn-eth-2vhostvr1024-1vm-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with 4 phy\
-| | ... | cores, 2 receive queues per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 64B frames using single\
-| | ... | trial throughput test.
-| | ...
| | [Tags] | 64B | 4C
-| | ...
-| | [Template] | Check RR for ethip4vxlan-l2bdbasemaclrn-eth-2vhostvr1024-1vm
-| | framesize=${64} | wt=4 | rxq=2
+| | framesize=${64} | phy_cores=${4}
| tc10-1518B-4t4c-ethip4vxlan-l2bdbasemaclrn-eth-2vhostvr1024-1vm-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with 4 phy\
-| | ... | cores, 2 receive queues per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 1518B frames using single\
-| | ... | trial throughput test.
-| | ...
| | [Tags] | 1518B | 4C
-| | ...
-| | [Template] | Check RR for ethip4vxlan-l2bdbasemaclrn-eth-2vhostvr1024-1vm
-| | framesize=${1518} | wt=4 | rxq=2
+| | framesize=${1518} | phy_cores=${4}
| tc11-9000B-4t4c-ethip4vxlan-l2bdbasemaclrn-eth-2vhostvr1024-1vm-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with 4 phy\
-| | ... | cores, 2 receive queues per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 9000B frames using single\
-| | ... | trial throughput test.
-| | ...
| | [Tags] | 9000B | 4C
-| | ...
-| | [Template] | Check RR for ethip4vxlan-l2bdbasemaclrn-eth-2vhostvr1024-1vm
-| | framesize=${9000} | wt=4 | rxq=2
+| | framesize=${9000} | phy_cores=${4}
| tc12-IMIX-4t4c-ethip4vxlan-l2bdbasemaclrn-eth-2vhostvr1024-1vm-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with 4 phy\
-| | ... | cores, 2 receive queues per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for IMIX_v4_1 frames using single\
-| | ... | trial throughput test.
-| | ... | IMIX_v4_1 = (28x64B; 16x570B; 4x1518B)
-| | ...
| | [Tags] | IMIX | 4C
-| | ...
-| | [Template] | Check RR for ethip4vxlan-l2bdbasemaclrn-eth-2vhostvr1024-1vm
-| | framesize=IMIX_v4_1 | wt=4 | rxq=2
+| | framesize=IMIX_v4_1 | phy_cores=${4}
diff --git a/tests/vpp/perf/vm_vhost/40ge2p1x710-eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-mrr.robot b/tests/vpp/perf/vm_vhost/40ge2p1x710-eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-mrr.robot
index 09475f1972..26a6c7d775 100644
--- a/tests/vpp/perf/vm_vhost/40ge2p1x710-eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-mrr.robot
+++ b/tests/vpp/perf/vm_vhost/40ge2p1x710-eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-mrr.robot
@@ -27,6 +27,8 @@
| ... | dut1_node=${dut1} | dut1_vm_refs=${dut1_vm_refs}
| ... | dut2_node=${dut2} | dut2_vm_refs=${dut2_vm_refs}
| ...
+| Test Template | Local template
+| ...
| Documentation | *Raw results L2BD test cases with vhost*
| ...
| ... | *[Top] Network Topologies:* TG-DUT1-DUT2-TG 3-node circular topology
@@ -61,16 +63,21 @@
| ${traffic_profile}= | trex-sl-3n-ethip4-ip4src254
*** Keywords ***
-| Check RR for eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm
+| Local template
| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with ${wt} thread, ${wt} phy\
-| | ... | core, ${rxq} receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for ${framesize} frames using single\
+| | ... | [Cfg] DUT runs L2BD switching config.
+| | ... | Each DUT uses ${phy_cores} physical core(s) for worker threads.
+| | ... | [Ver] Measure MaxReceivedRate for ${framesize}B frames using single\
| | ... | trial throughput test.
| | ...
-| | [Arguments] | ${framesize} | ${wt} | ${rxq}
+| | ... | *Arguments:*
+| | ... | - framesize - Framesize in Bytes in integer or string (IMIX_v4_1).
+| | ... | Type: integer, string
+| | ... | - phy_cores - Number of physical cores. Type: integer
+| | ... | - rxq - Number of RX queues, default value: ${None}. Type: integer
+| | ...
+| | [Arguments] | ${framesize} | ${phy_cores} | ${rxq}=${None}
| | ...
-| | # Test Variables required for test and test teardown
| | Set Test Variable | ${framesize}
| | ${get_framesize}= | Get Frame Size | ${framesize}
| | ${max_rate}= | Calculate pps | ${s_limit} | ${get_framesize}
@@ -81,7 +88,7 @@
| | ${jumbo_frames}= | Set Variable If | ${get_framesize} < ${1522}
| | ... | ${False} | ${True}
| | ...
-| | Given Add '${wt}' worker threads and '${rxq}' rxqueues in 3-node single-link circular topology
+| | Given Add worker threads and rxqueues to all DUTs | ${phy_cores} | ${rxq}
| | And Add PCI devices to all DUTs
| | And Run Keyword If | ${get_framesize} < ${1522}
| | ... | Add no multi seg to all DUTs
@@ -101,148 +108,49 @@
*** Test Cases ***
| tc01-64B-1t1c-eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with 1 phy\
-| | ... | core, 1 receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 64B frames using single\
-| | ... | trial throughput test.
-| | ...
| | [Tags] | 64B | 1C
-| | ...
-| | [Template] | Check RR for eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm
-| | framesize=${64} | wt=1 | rxq=1
+| | framesize=${64} | phy_cores=${1}
| tc02-1518B-1t1c-eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with 1 phy\
-| | ... | core, 1 receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 1518B frames using single\
-| | ... | trial throughput test.
-| | ...
| | [Tags] | 1518B | 1C
-| | ...
-| | [Template] | Check RR for eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm
-| | framesize=${1518} | wt=1 | rxq=1
+| | framesize=${1518} | phy_cores=${1}
| tc03-9000B-1t1c-eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with 1 phy\
-| | ... | core, 1 receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 9000B frames using single\
-| | ... | trial throughput test.
-| | ...
| | [Tags] | 9000B | 1C
-| | ...
-| | [Template] | Check RR for eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm
-| | framesize=${9000} | wt=1 | rxq=1
+| | framesize=${9000} | phy_cores=${1}
| tc04-IMIX-1t1c-eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with 1 phy\
-| | ... | core, 1 receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for IMIX_v4_1 frames using single\
-| | ... | trial throughput test.
-| | ... | IMIX_v4_1 = (28x64B; 16x570B; 4x1518B)
-| | ...
| | [Tags] | IMIX | 1C
-| | ...
-| | [Template] | Check RR for eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm
-| | framesize=IMIX_v4_1 | wt=1 | rxq=1
+| | framesize=IMIX_v4_1 | phy_cores=${1}
| tc05-64B-2t2c-eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with 2 phy\
-| | ... | cores, 1 receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 64B frames using single\
-| | ... | trial throughput test.
-| | ...
| | [Tags] | 64B | 2C
-| | ...
-| | [Template] | Check RR for eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm
-| | framesize=${64} | wt=2 | rxq=1
+| | framesize=${64} | phy_cores=${2}
| tc06-1518B-2t2c-eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with 2 phy\
-| | ... | cores, 1 receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 1518B frames using single\
-| | ... | trial throughput test.
-| | ...
| | [Tags] | 1518B | 2C
-| | ...
-| | [Template] | Check RR for eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm
-| | framesize=${1518} | wt=2 | rxq=1
+| | framesize=${1518} | phy_cores=${2}
| tc07-9000B-2t2c-eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with 2 phy\
-| | ... | cores, 1 receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 9000B frames using single\
-| | ... | trial throughput test.
-| | ...
| | [Tags] | 9000B | 2C
-| | ...
-| | [Template] | Check RR for eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm
-| | framesize=${9000} | wt=2 | rxq=1
+| | framesize=${9000} | phy_cores=${2}
| tc08-IMIX-2t2c-eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with 2 phy\
-| | ... | cores, 1 receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for IMIX_v4_1 frames using single\
-| | ... | trial throughput test.
-| | ... | IMIX_v4_1 = (28x64B; 16x570B; 4x1518B)
-| | ...
| | [Tags] | IMIX | 2C
-| | ...
-| | [Template] | Check RR for eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm
-| | framesize=IMIX_v4_1 | wt=2 | rxq=1
+| | framesize=IMIX_v4_1 | phy_cores=${2}
| tc09-64B-4t4c-eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with 4 phy\
-| | ... | cores, 2 receive queues per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 64B frames using single\
-| | ... | trial throughput test.
-| | ...
| | [Tags] | 64B | 4C
-| | ...
-| | [Template] | Check RR for eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm
-| | framesize=${64} | wt=4 | rxq=2
+| | framesize=${64} | phy_cores=${4}
| tc10-1518B-4t4c-eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with 4 phy\
-| | ... | cores, 2 receive queues per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 1518B frames using single\
-| | ... | trial throughput test.
-| | ...
| | [Tags] | 1518B | 4C
-| | ...
-| | [Template] | Check RR for eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm
-| | framesize=${1518} | wt=4 | rxq=2
+| | framesize=${1518} | phy_cores=${4}
| tc11-9000B-4t4c-eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with 4 phy\
-| | ... | cores, 2 receive queues per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 9000B frames using single\
-| | ... | trial throughput test.
-| | ...
| | [Tags] | 9000B | 4C
-| | ...
-| | [Template] | Check RR for eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm
-| | framesize=${9000} | wt=4 | rxq=2
+| | framesize=${9000} | phy_cores=${4}
| tc12-IMIX-4t4c-eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with 4 phy\
-| | ... | cores, 2 receive queues per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for IMIX_v4_1 frames using single\
-| | ... | trial throughput test.
-| | ... | IMIX_v4_1 = (28x64B; 16x570B; 4x1518B)
-| | ...
| | [Tags] | IMIX | 4C
-| | ...
-| | [Template] | Check RR for eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm
-| | framesize=IMIX_v4_1 | wt=4 | rxq=2
+| | framesize=IMIX_v4_1 | phy_cores=${4}
diff --git a/tests/vpp/perf/vm_vhost/40ge2p1xl710-eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-mrr.robot b/tests/vpp/perf/vm_vhost/40ge2p1xl710-eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-mrr.robot
index 1ce7a37593..68aaf9c749 100644
--- a/tests/vpp/perf/vm_vhost/40ge2p1xl710-eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-mrr.robot
+++ b/tests/vpp/perf/vm_vhost/40ge2p1xl710-eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-mrr.robot
@@ -27,6 +27,8 @@
| ... | dut1_node=${dut1} | dut1_vm_refs=${dut1_vm_refs}
| ... | dut2_node=${dut2} | dut2_vm_refs=${dut2_vm_refs}
| ...
+| Test Template | Local template
+| ...
| Documentation | *Raw results L2BD test cases with vhost*
| ...
| ... | *[Top] Network Topologies:* TG-DUT1-DUT2-TG 3-node circular topology
@@ -63,16 +65,21 @@
| ${traffic_profile}= | trex-sl-3n-ethip4-ip4src254
*** Keywords ***
-| Check RR for eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm
+| Local template
| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with ${wt} thread, ${wt} phy\
-| | ... | core, ${rxq} receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for ${framesize} frames using single\
+| | ... | [Cfg] DUT runs L2BD switching config.
+| | ... | Each DUT uses ${phy_cores} physical core(s) for worker threads.
+| | ... | [Ver] Measure MaxReceivedRate for ${framesize}B frames using single\
| | ... | trial throughput test.
| | ...
-| | [Arguments] | ${framesize} | ${wt} | ${rxq}
+| | ... | *Arguments:*
+| | ... | - framesize - Framesize in Bytes in integer or string (IMIX_v4_1).
+| | ... | Type: integer, string
+| | ... | - phy_cores - Number of physical cores. Type: integer
+| | ... | - rxq - Number of RX queues, default value: ${None}. Type: integer
+| | ...
+| | [Arguments] | ${framesize} | ${phy_cores} | ${rxq}=${None}
| | ...
-| | # Test Variables required for test and test teardown
| | Set Test Variable | ${framesize}
| | ${get_framesize}= | Get Frame Size | ${framesize}
| | ${max_rate}= | Calculate pps | ${s_24.5G} | ${get_framesize}
@@ -85,7 +92,7 @@
| | ${jumbo_frames}= | Set Variable If | ${get_framesize} < ${1522}
| | ... | ${False} | ${True}
| | ...
-| | Given Add '${wt}' worker threads and '${rxq}' rxqueues in 3-node single-link circular topology
+| | Given Add worker threads and rxqueues to all DUTs | ${phy_cores} | ${rxq}
| | And Add PCI devices to all DUTs
| | And Run Keyword If | ${get_framesize} < ${1522}
| | ... | Add no multi seg to all DUTs
@@ -105,148 +112,49 @@
*** Test Cases ***
| tc01-64B-1t1c-eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with 1 phy\
-| | ... | core, 1 receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 64B frames using single\
-| | ... | trial throughput test.
-| | ...
| | [Tags] | 64B | 1C
-| | ...
-| | [Template] | Check RR for eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm
-| | framesize=${64} | wt=1 | rxq=1
+| | framesize=${64} | phy_cores=${1}
| tc02-1518B-1t1c-eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with 1 phy\
-| | ... | core, 1 receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 1518B frames using single\
-| | ... | trial throughput test.
-| | ...
| | [Tags] | 1518B | 1C
-| | ...
-| | [Template] | Check RR for eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm
-| | framesize=${1518} | wt=1 | rxq=1
+| | framesize=${1518} | phy_cores=${1}
| tc03-9000B-1t1c-eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with 1 phy\
-| | ... | core, 1 receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 9000B frames using single\
-| | ... | trial throughput test.
-| | ...
| | [Tags] | 9000B | 1C
-| | ...
-| | [Template] | Check RR for eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm
-| | framesize=${9000} | wt=1 | rxq=1
+| | framesize=${9000} | phy_cores=${1}
| tc04-IMIX-1t1c-eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with 1 phy\
-| | ... | core, 1 receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for IMIX_v4_1 frames using single\
-| | ... | trial throughput test.
-| | ... | IMIX_v4_1 = (28x64B; 16x570B; 4x1518B)
-| | ...
| | [Tags] | IMIX | 1C
-| | ...
-| | [Template] | Check RR for eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm
-| | framesize=IMIX_v4_1 | wt=1 | rxq=1
+| | framesize=IMIX_v4_1 | phy_cores=${1}
| tc05-64B-2t2c-eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with 2 phy\
-| | ... | cores, 1 receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 64B frames using single\
-| | ... | trial throughput test.
-| | ...
| | [Tags] | 64B | 2C
-| | ...
-| | [Template] | Check RR for eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm
-| | framesize=${64} | wt=2 | rxq=1
+| | framesize=${64} | phy_cores=${2}
| tc06-1518B-2t2c-eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with 2 phy\
-| | ... | cores, 1 receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 1518B frames using single\
-| | ... | trial throughput test.
-| | ...
| | [Tags] | 1518B | 2C
-| | ...
-| | [Template] | Check RR for eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm
-| | framesize=${1518} | wt=2 | rxq=1
+| | framesize=${1518} | phy_cores=${2}
| tc07-9000B-2t2c-eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with 2 phy\
-| | ... | cores, 1 receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 9000B frames using single\
-| | ... | trial throughput test.
-| | ...
| | [Tags] | 9000B | 2C
-| | ...
-| | [Template] | Check RR for eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm
-| | framesize=${9000} | wt=2 | rxq=1
+| | framesize=${9000} | phy_cores=${2}
| tc08-IMIX-2t2c-eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with 2 phy\
-| | ... | cores, 1 receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for IMIX_v4_1 frames using single\
-| | ... | trial throughput test.
-| | ... | IMIX_v4_1 = (28x64B; 16x570B; 4x1518B)
-| | ...
| | [Tags] | IMIX | 2C
-| | ...
-| | [Template] | Check RR for eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm
-| | framesize=IMIX_v4_1 | wt=2 | rxq=1
+| | framesize=IMIX_v4_1 | phy_cores=${2}
| tc09-64B-4t4c-eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with 4 phy\
-| | ... | cores, 2 receive queues per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 64B frames using single\
-| | ... | trial throughput test.
-| | ...
| | [Tags] | 64B | 4C
-| | ...
-| | [Template] | Check RR for eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm
-| | framesize=${64} | wt=4 | rxq=2
+| | framesize=${64} | phy_cores=${4}
| tc10-1518B-4t4c-eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with 4 phy\
-| | ... | cores, 2 receive queues per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 1518B frames using single\
-| | ... | trial throughput test.
-| | ...
| | [Tags] | 1518B | 4C
-| | ...
-| | [Template] | Check RR for eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm
-| | framesize=${1518} | wt=4 | rxq=2
+| | framesize=${1518} | phy_cores=${4}
| tc11-9000B-4t4c-eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with 4 phy\
-| | ... | cores, 2 receive queues per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 9000B frames using single\
-| | ... | trial throughput test.
-| | ...
| | [Tags] | 9000B | 4C
-| | ...
-| | [Template] | Check RR for eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm
-| | framesize=${9000} | wt=4 | rxq=2
+| | framesize=${9000} | phy_cores=${4}
| tc12-IMIX-4t4c-eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with 4 phy\
-| | ... | cores, 2 receive queues per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for IMIX_v4_1 frames using single\
-| | ... | trial throughput test.
-| | ... | IMIX_v4_1 = (28x64B; 16x570B; 4x1518B)
-| | ...
| | [Tags] | IMIX | 4C
-| | ...
-| | [Template] | Check RR for eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm
-| | framesize=IMIX_v4_1 | wt=4 | rxq=2
+| | framesize=IMIX_v4_1 | phy_cores=${4}
diff --git a/tests/vpp/perf/vm_vhost/40ge2p1xl710-eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-ndrpdrdisc.robot b/tests/vpp/perf/vm_vhost/40ge2p1xl710-eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-ndrpdrdisc.robot
index c0bd81d7e1..96ad6c5e86 100644
--- a/tests/vpp/perf/vm_vhost/40ge2p1xl710-eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-ndrpdrdisc.robot
+++ b/tests/vpp/perf/vm_vhost/40ge2p1xl710-eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-ndrpdrdisc.robot
@@ -86,7 +86,7 @@
| | ${threshold}= | Set Variable | ${min_rate}
| | ${dut1_vm_refs}= | Create Dictionary
| | ${dut2_vm_refs}= | Create Dictionary
-| | Given Add '1' worker threads and '1' rxqueues in 3-node single-link circular topology
+| | Given Add worker threads and rxqueues to all DUTs | 1
| | And Add PCI devices to all DUTs
| | And Add no multi seg to all DUTs
| | And Apply startup configuration on all VPP DUTs
@@ -118,7 +118,7 @@
| | ${threshold}= | Set Variable | ${min_rate}
| | ${dut1_vm_refs}= | Create Dictionary
| | ${dut2_vm_refs}= | Create Dictionary
-| | Given Add '1' worker threads and '1' rxqueues in 3-node single-link circular topology
+| | Given Add worker threads and rxqueues to all DUTs | 1
| | And Add PCI devices to all DUTs
| | And Add no multi seg to all DUTs
| | And Apply startup configuration on all VPP DUTs
@@ -151,7 +151,7 @@
| | ${threshold}= | Set Variable | ${min_rate}
| | ${dut1_vm_refs}= | Create Dictionary
| | ${dut2_vm_refs}= | Create Dictionary
-| | Given Add '1' worker threads and '1' rxqueues in 3-node single-link circular topology
+| | Given Add worker threads and rxqueues to all DUTs | 1
| | And Add PCI devices to all DUTs
| | And Add no multi seg to all DUTs
| | And Apply startup configuration on all VPP DUTs
@@ -183,7 +183,7 @@
| | ${threshold}= | Set Variable | ${min_rate}
| | ${dut1_vm_refs}= | Create Dictionary
| | ${dut2_vm_refs}= | Create Dictionary
-| | Given Add '1' worker threads and '1' rxqueues in 3-node single-link circular topology
+| | Given Add worker threads and rxqueues to all DUTs | 1
| | And Add PCI devices to all DUTs
| | And Add no multi seg to all DUTs
| | And Apply startup configuration on all VPP DUTs
@@ -217,7 +217,7 @@
| | ${threshold}= | Set Variable | ${min_rate}
| | ${dut1_vm_refs}= | Create Dictionary
| | ${dut2_vm_refs}= | Create Dictionary
-| | Given Add '1' worker threads and '1' rxqueues in 3-node single-link circular topology
+| | Given Add worker threads and rxqueues to all DUTs | 1
| | And Add PCI devices to all DUTs
| | And Add no multi seg to all DUTs
| | And Apply startup configuration on all VPP DUTs
@@ -250,7 +250,7 @@
| | ${threshold}= | Set Variable | ${min_rate}
| | ${dut1_vm_refs}= | Create Dictionary
| | ${dut2_vm_refs}= | Create Dictionary
-| | Given Add '1' worker threads and '1' rxqueues in 3-node single-link circular topology
+| | Given Add worker threads and rxqueues to all DUTs | 1
| | And Add PCI devices to all DUTs
| | And Apply startup configuration on all VPP DUTs
| | When Initialize L2 bridge domains with Vhost-User in 3-node circular topology
@@ -282,7 +282,7 @@
| | ${threshold}= | Set Variable | ${min_rate}
| | ${dut1_vm_refs}= | Create Dictionary
| | ${dut2_vm_refs}= | Create Dictionary
-| | Given Add '2' worker threads and '1' rxqueues in 3-node single-link circular topology
+| | Given Add worker threads and rxqueues to all DUTs | 2
| | And Add PCI devices to all DUTs
| | And Add no multi seg to all DUTs
| | And Apply startup configuration on all VPP DUTs
@@ -314,7 +314,7 @@
| | ${threshold}= | Set Variable | ${min_rate}
| | ${dut1_vm_refs}= | Create Dictionary
| | ${dut2_vm_refs}= | Create Dictionary
-| | Given Add '2' worker threads and '1' rxqueues in 3-node single-link circular topology
+| | Given Add worker threads and rxqueues to all DUTs | 2
| | And Add PCI devices to all DUTs
| | And Add no multi seg to all DUTs
| | And Apply startup configuration on all VPP DUTs
@@ -347,7 +347,7 @@
| | ${threshold}= | Set Variable | ${min_rate}
| | ${dut1_vm_refs}= | Create Dictionary
| | ${dut2_vm_refs}= | Create Dictionary
-| | Given Add '2' worker threads and '1' rxqueues in 3-node single-link circular topology
+| | Given Add worker threads and rxqueues to all DUTs | 2
| | And Add PCI devices to all DUTs
| | And Add no multi seg to all DUTs
| | And Apply startup configuration on all VPP DUTs
@@ -379,7 +379,7 @@
| | ${threshold}= | Set Variable | ${min_rate}
| | ${dut1_vm_refs}= | Create Dictionary
| | ${dut2_vm_refs}= | Create Dictionary
-| | Given Add '2' worker threads and '1' rxqueues in 3-node single-link circular topology
+| | Given Add worker threads and rxqueues to all DUTs | 2
| | And Add PCI devices to all DUTs
| | And Add no multi seg to all DUTs
| | And Apply startup configuration on all VPP DUTs
@@ -413,7 +413,7 @@
| | ${threshold}= | Set Variable | ${min_rate}
| | ${dut1_vm_refs}= | Create Dictionary
| | ${dut2_vm_refs}= | Create Dictionary
-| | Given Add '2' worker threads and '1' rxqueues in 3-node single-link circular topology
+| | Given Add worker threads and rxqueues to all DUTs | 2
| | And Add PCI devices to all DUTs
| | And Add no multi seg to all DUTs
| | And Apply startup configuration on all VPP DUTs
@@ -446,7 +446,7 @@
| | ${threshold}= | Set Variable | ${min_rate}
| | ${dut1_vm_refs}= | Create Dictionary
| | ${dut2_vm_refs}= | Create Dictionary
-| | Given Add '2' worker threads and '1' rxqueues in 3-node single-link circular topology
+| | Given Add worker threads and rxqueues to all DUTs | 2
| | And Add PCI devices to all DUTs
| | And Add no multi seg to all DUTs
| | And Apply startup configuration on all VPP DUTs
@@ -479,7 +479,7 @@
| | ${threshold}= | Set Variable | ${min_rate}
| | ${dut1_vm_refs}= | Create Dictionary
| | ${dut2_vm_refs}= | Create Dictionary
-| | Given Add '4' worker threads and '2' rxqueues in 3-node single-link circular topology
+| | Given Add worker threads and rxqueues to all DUTs | 4
| | And Add PCI devices to all DUTs
| | And Add no multi seg to all DUTs
| | And Apply startup configuration on all VPP DUTs
@@ -511,7 +511,7 @@
| | ${threshold}= | Set Variable | ${min_rate}
| | ${dut1_vm_refs}= | Create Dictionary
| | ${dut2_vm_refs}= | Create Dictionary
-| | Given Add '4' worker threads and '2' rxqueues in 3-node single-link circular topology
+| | Given Add worker threads and rxqueues to all DUTs | 4
| | And Add PCI devices to all DUTs
| | And Add no multi seg to all DUTs
| | And Apply startup configuration on all VPP DUTs
@@ -544,7 +544,7 @@
| | ${threshold}= | Set Variable | ${min_rate}
| | ${dut1_vm_refs}= | Create Dictionary
| | ${dut2_vm_refs}= | Create Dictionary
-| | Given Add '4' worker threads and '2' rxqueues in 3-node single-link circular topology
+| | Given Add worker threads and rxqueues to all DUTs | 4
| | And Add PCI devices to all DUTs
| | And Add no multi seg to all DUTs
| | And Apply startup configuration on all VPP DUTs
@@ -576,7 +576,7 @@
| | ${threshold}= | Set Variable | ${min_rate}
| | ${dut1_vm_refs}= | Create Dictionary
| | ${dut2_vm_refs}= | Create Dictionary
-| | Given Add '4' worker threads and '2' rxqueues in 3-node single-link circular topology
+| | Given Add worker threads and rxqueues to all DUTs | 4
| | And Add PCI devices to all DUTs
| | And Add no multi seg to all DUTs
| | And Apply startup configuration on all VPP DUTs
@@ -610,7 +610,7 @@
| | ${threshold}= | Set Variable | ${min_rate}
| | ${dut1_vm_refs}= | Create Dictionary
| | ${dut2_vm_refs}= | Create Dictionary
-| | Given Add '4' worker threads and '2' rxqueues in 3-node single-link circular topology
+| | Given Add worker threads and rxqueues to all DUTs | 4
| | And Add PCI devices to all DUTs
| | And Add no multi seg to all DUTs
| | And Apply startup configuration on all VPP DUTs
@@ -643,7 +643,7 @@
| | ${threshold}= | Set Variable | ${min_rate}
| | ${dut1_vm_refs}= | Create Dictionary
| | ${dut2_vm_refs}= | Create Dictionary
-| | Given Add '4' worker threads and '2' rxqueues in 3-node single-link circular topology
+| | Given Add worker threads and rxqueues to all DUTs | 4
| | And Add PCI devices to all DUTs
| | And Add no multi seg to all DUTs
| | And Apply startup configuration on all VPP DUTs
diff --git a/tests/vpp/perf/vm_vhost/40ge2p1xl710-eth-l2bdbasemaclrn-eth-4vhostvr1024-2vm-mrr.robot b/tests/vpp/perf/vm_vhost/40ge2p1xl710-eth-l2bdbasemaclrn-eth-4vhostvr1024-2vm-mrr.robot
index 3b2007ff52..c65e4f9ffe 100644
--- a/tests/vpp/perf/vm_vhost/40ge2p1xl710-eth-l2bdbasemaclrn-eth-4vhostvr1024-2vm-mrr.robot
+++ b/tests/vpp/perf/vm_vhost/40ge2p1xl710-eth-l2bdbasemaclrn-eth-4vhostvr1024-2vm-mrr.robot
@@ -27,6 +27,8 @@
| ... | dut1_node=${dut1} | dut1_vm_refs=${dut1_vm_refs}
| ... | dut2_node=${dut2} | dut2_vm_refs=${dut2_vm_refs}
| ...
+| Test Template | Local template
+| ...
| Documentation | *Raw results L2BD test cases with vhost*
| ...
| ... | *[Top] Network Topologies:* TG-DUT1-DUT2-TG 3-node circular topology
@@ -62,16 +64,21 @@
| ${traffic_profile}= | trex-sl-3n-ethip4-ip4src254
*** Keywords ***
-| Check RR for eth-l2bdbasemaclrn-eth-4vhostvr1024-2vm
+| Local template
| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with ${wt} thread, ${wt} phy\
-| | ... | core, ${rxq} receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for ${framesize} frames using single\
+| | ... | [Cfg] DUT runs L2BD switching config.
+| | ... | Each DUT uses ${phy_cores} physical core(s) for worker threads.
+| | ... | [Ver] Measure MaxReceivedRate for ${framesize}B frames using single\
| | ... | trial throughput test.
| | ...
-| | [Arguments] | ${framesize} | ${wt} | ${rxq}
+| | ... | *Arguments:*
+| | ... | - framesize - Framesize in Bytes in integer or string (IMIX_v4_1).
+| | ... | Type: integer, string
+| | ... | - phy_cores - Number of physical cores. Type: integer
+| | ... | - rxq - Number of RX queues, default value: ${None}. Type: integer
+| | ...
+| | [Arguments] | ${framesize} | ${phy_cores} | ${rxq}=${None}
| | ...
-| | # Test Variables required for test and test teardown
| | Set Test Variable | ${framesize}
| | ${get_framesize}= | Get Frame Size | ${framesize}
| | ${max_rate}= | Calculate pps | ${s_24.5G} | ${get_framesize}
@@ -85,7 +92,7 @@
| | ... | ${False} | ${True}
| | Set Test Variable | ${jumbo_frames}
| | ...
-| | Given Add '${wt}' worker threads and '${rxq}' rxqueues in 3-node single-link circular topology
+| | Given Add worker threads and rxqueues to all DUTs | ${phy_cores} | ${rxq}
| | And Add PCI devices to all DUTs
| | And Run Keyword If | ${get_framesize} < ${1522}
| | ... | Add no multi seg to all DUTs
@@ -97,148 +104,49 @@
*** Test Cases ***
| tc01-64B-1t1c-eth-l2bdbasemaclrn-eth-4vhostvr1024-2vm-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with 1 phy\
-| | ... | core, 1 receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 64B frames using single\
-| | ... | trial throughput test.
-| | ...
| | [Tags] | 64B | 1C
-| | ...
-| | [Template] | Check RR for eth-l2bdbasemaclrn-eth-4vhostvr1024-2vm
-| | framesize=${64} | wt=1 | rxq=1
+| | framesize=${64} | phy_cores=${1}
| tc02-1518B-1t1c-eth-l2bdbasemaclrn-eth-4vhostvr1024-2vm-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with 1 phy\
-| | ... | core, 1 receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 1518B frames using single\
-| | ... | trial throughput test.
-| | ...
| | [Tags] | 1518B | 1C
-| | ...
-| | [Template] | Check RR for eth-l2bdbasemaclrn-eth-4vhostvr1024-2vm
-| | framesize=${1518} | wt=1 | rxq=1
+| | framesize=${1518} | phy_cores=${1}
| tc03-9000B-1t1c-eth-l2bdbasemaclrn-eth-4vhostvr1024-2vm-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with 1 phy\
-| | ... | core, 1 receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 9000B frames using single\
-| | ... | trial throughput test.
-| | ...
| | [Tags] | 9000B | 1C
-| | ...
-| | [Template] | Check RR for eth-l2bdbasemaclrn-eth-4vhostvr1024-2vm
-| | framesize=${9000} | wt=1 | rxq=1
+| | framesize=${9000} | phy_cores=${1}
| tc04-IMIX-1t1c-eth-l2bdbasemaclrn-eth-4vhostvr1024-2vm-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with 1 phy\
-| | ... | core, 1 receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for IMIX_v4_1 frames using single\
-| | ... | trial throughput test.
-| | ... | IMIX_v4_1 = (28x64B; 16x570B; 4x1518B)
-| | ...
| | [Tags] | IMIX | 1C
-| | ...
-| | [Template] | Check RR for eth-l2bdbasemaclrn-eth-4vhostvr1024-2vm
-| | framesize=IMIX_v4_1 | wt=1 | rxq=1
+| | framesize=IMIX_v4_1 | phy_cores=${1}
| tc05-64B-2t2c-eth-l2bdbasemaclrn-eth-4vhostvr1024-2vm-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with 2 phy\
-| | ... | cores, 1 receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 64B frames using single\
-| | ... | trial throughput test.
-| | ...
| | [Tags] | 64B | 2C
-| | ...
-| | [Template] | Check RR for eth-l2bdbasemaclrn-eth-4vhostvr1024-2vm
-| | framesize=${64} | wt=2 | rxq=1
+| | framesize=${64} | phy_cores=${2}
| tc06-1518B-2t2c-eth-l2bdbasemaclrn-eth-4vhostvr1024-2vm-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with 2 phy\
-| | ... | cores, 1 receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 1518B frames using single\
-| | ... | trial throughput test.
-| | ...
| | [Tags] | 1518B | 2C
-| | ...
-| | [Template] | Check RR for eth-l2bdbasemaclrn-eth-4vhostvr1024-2vm
-| | framesize=${1518} | wt=2 | rxq=1
+| | framesize=${1518} | phy_cores=${2}
| tc07-9000B-2t2c-eth-l2bdbasemaclrn-eth-4vhostvr1024-2vm-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with 2 phy\
-| | ... | cores, 1 receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 9000B frames using single\
-| | ... | trial throughput test.
-| | ...
| | [Tags] | 9000B | 2C
-| | ...
-| | [Template] | Check RR for eth-l2bdbasemaclrn-eth-4vhostvr1024-2vm
-| | framesize=${9000} | wt=2 | rxq=1
+| | framesize=${9000} | phy_cores=${2}
| tc08-IMIX-2t2c-eth-l2bdbasemaclrn-eth-4vhostvr1024-2vm-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with 2 phy\
-| | ... | cores, 1 receive queue per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for IMIX_v4_1 frames using single\
-| | ... | trial throughput test.
-| | ... | IMIX_v4_1 = (28x64B; 16x570B; 4x1518B)
-| | ...
| | [Tags] | IMIX | 2C
-| | ...
-| | [Template] | Check RR for eth-l2bdbasemaclrn-eth-4vhostvr1024-2vm
-| | framesize=IMIX_v4_1 | wt=2 | rxq=1
+| | framesize=IMIX_v4_1 | phy_cores=${2}
| tc09-64B-4t4c-eth-l2bdbasemaclrn-eth-4vhostvr1024-2vm-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with 4 phy\
-| | ... | cores, 2 receive queues per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 64B frames using single\
-| | ... | trial throughput test.
-| | ...
| | [Tags] | 64B | 4C
-| | ...
-| | [Template] | Check RR for eth-l2bdbasemaclrn-eth-4vhostvr1024-2vm
-| | framesize=${64} | wt=4 | rxq=2
+| | framesize=${64} | phy_cores=${4}
| tc10-1518B-4t4c-eth-l2bdbasemaclrn-eth-4vhostvr1024-2vm-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with 4 phy\
-| | ... | cores, 2 receive queues per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 1518B frames using single\
-| | ... | trial throughput test.
-| | ...
| | [Tags] | 1518B | 4C
-| | ...
-| | [Template] | Check RR for eth-l2bdbasemaclrn-eth-4vhostvr1024-2vm
-| | framesize=${1518} | wt=4 | rxq=2
+| | framesize=${1518} | phy_cores=${4}
| tc11-9000B-4t4c-eth-l2bdbasemaclrn-eth-4vhostvr1024-2vm-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with 4 phy\
-| | ... | cores, 2 receive queues per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for 9000B frames using single\
-| | ... | trial throughput test.
-| | ...
| | [Tags] | 9000B | 4C
-| | ...
-| | [Template] | Check RR for eth-l2bdbasemaclrn-eth-4vhostvr1024-2vm
-| | framesize=${9000} | wt=4 | rxq=2
+| | framesize=${9000} | phy_cores=${4}
| tc12-IMIX-4t4c-eth-l2bdbasemaclrn-eth-4vhostvr1024-2vm-mrr
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with 4 phy\
-| | ... | cores, 2 receive queues per NIC port.
-| | ... | [Ver] Measure MaxReceivedRate for IMIX_v4_1 frames using single\
-| | ... | trial throughput test.
-| | ... | IMIX_v4_1 = (28x64B; 16x570B; 4x1518B)
-| | ...
| | [Tags] | IMIX | 4C
-| | ...
-| | [Template] | Check RR for eth-l2bdbasemaclrn-eth-4vhostvr1024-2vm
-| | framesize=IMIX_v4_1 | wt=4 | rxq=2
+| | framesize=IMIX_v4_1 | phy_cores=${4}
diff --git a/tests/vpp/perf/vm_vhost/40ge2p1xl710-eth-l2bdbasemaclrn-eth-4vhostvr1024-2vm-ndrpdrdisc.robot b/tests/vpp/perf/vm_vhost/40ge2p1xl710-eth-l2bdbasemaclrn-eth-4vhostvr1024-2vm-ndrpdrdisc.robot
index d201c9f049..1b350e5fcd 100644
--- a/tests/vpp/perf/vm_vhost/40ge2p1xl710-eth-l2bdbasemaclrn-eth-4vhostvr1024-2vm-ndrpdrdisc.robot
+++ b/tests/vpp/perf/vm_vhost/40ge2p1xl710-eth-l2bdbasemaclrn-eth-4vhostvr1024-2vm-ndrpdrdisc.robot
@@ -28,6 +28,8 @@
| ... | dut1_node=${dut1} | dut1_vm_refs=${dut1_vm_refs}
| ... | dut2_node=${dut2} | dut2_vm_refs=${dut2_vm_refs}
| ...
+| Test Template | Local template
+| ...
| Documentation | *RFC2544: Packet throughput L2BD test cases with vhost*
| ...
| ... | *[Top] Network Topologies:* TG-DUT1-DUT2-TG 3-node circular topology
@@ -69,16 +71,10 @@
| ${traffic_profile}= | trex-sl-3n-ethip4-ip4src254
*** Keywords ***
-| Discover NDR or PDR for eth-l2bdbasemaclrn-eth-4vhostvr1024-2vm
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with ${wt} thread, ${wt} phy\
-| | ... | core, ${rxq} receive queue per NIC port.
-| | ... | [Ver] Find NDR for ${framesize} frames using binary search start at
-| | ... | 40GE linerate, step 10kpps.
-| | ...
-| | [Arguments] | ${wt} | ${rxq} | ${framesize} | ${min_rate} | ${search_type}
+| Local template
+| | [Arguments] | ${phy_cores} | ${framesize} | ${search_type} | ${rxq}=${None}
+| | ... | ${min_rate}=${10000}
| | ...
-| | # Test Variables required for test and test teardown
| | Set Test Variable | ${framesize}
| | Set Test Variable | ${min_rate}
| | ${get_framesize}= | Get Frame Size | ${framesize}
@@ -96,7 +92,7 @@
| | ... | ${False} | ${True}
| | Set Test Variable | ${jumbo_frames}
| | ...
-| | Given Add '${wt}' worker threads and '${rxq}' rxqueues in 3-node single-link circular topology
+| | Given Add worker threads and rxqueues to all DUTs | ${phy_cores} | ${rxq}
| | And Add PCI devices to all DUTs
| | And Run Keyword If | ${get_framesize} < ${1522}
| | ... | Add no multi seg to all DUTs
@@ -115,223 +111,73 @@
*** Test Cases ***
| tc01-64B-1t1c-eth-l2bdbasemaclrn-eth-4vhostvr1024-2vm-ndrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with 1 phy core, \
-| | ... | 1 receive queue per NIC port.
-| | ... | [Ver] Find NDR for 64 Byte frames \
-| | ... | using binary search start at 40GE linerate, step 10kpps.
-| | ...
| | [Tags] | 64B | 1C | NDRDISC
-| | ...
-| | [Template] | Discover NDR or PDR for eth-l2bdbasemaclrn-eth-4vhostvr1024-2vm
-| | wt=1 | rxq=1 | framesize=${64} | min_rate=${10000} | search_type=NDR
+| | phy_cores=${1} | framesize=${64} | search_type=NDR
| tc02-64B-1t1c-eth-l2bdbasemaclrn-eth-4vhostvr1024-2vm-pdrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with 1 phy core, \
-| | ... | 1 receive queue per NIC port.
-| | ... | [Ver] Find PDR for 64 Byte frames \
-| | ... | using binary search start at 40GE linerate, step 10kpps, LT=0.5%.
-| | ...
| | [Tags] | 64B | 1C | PDRDISC | SKIP_PATCH
-| | ...
-| | [Template] | Discover NDR or PDR for eth-l2bdbasemaclrn-eth-4vhostvr1024-2vm
-| | wt=1 | rxq=1 | framesize=${64} | min_rate=${10000} | search_type=PDR
+| | phy_cores=${1} | framesize=${64} | search_type=PDR
| tc03-1518B-1t1c-eth-l2bdbasemaclrn-eth-4vhostvr1024-2vm-ndrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with 1 phy core, \
-| | ... | 1 receive queue per NIC port.
-| | ... | [Ver] Find NDR for 1518 Byte frames \
-| | ... | using binary search start at 40GE linerate, step 10kpps.
-| | ...
| | [Tags] | 1518B | 1C | NDRDISC
-| | ...
-| | [Template] | Discover NDR or PDR for eth-l2bdbasemaclrn-eth-4vhostvr1024-2vm
-| | wt=1 | rxq=1 | framesize=${1518} | min_rate=${10000} | search_type=NDR
+| | phy_cores=${1} | framesize=${1518} | search_type=NDR
| tc04-1518B-1t1c-eth-l2bdbasemaclrn-eth-4vhostvr1024-2vm-pdrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with 1 phy core, \
-| | ... | 1 receive queue per NIC port.
-| | ... | [Ver] Find PDR for 1518 Byte frames \
-| | ... | using binary search start at 40GE linerate, step 10kpps, LT=0.5%.
-| | ...
| | [Tags] | 1518B | 1C | PDRDISC | SKIP_PATCH
-| | ...
-| | [Template] | Discover NDR or PDR for eth-l2bdbasemaclrn-eth-4vhostvr1024-2vm
-| | wt=1 | rxq=1 | framesize=${1518} | min_rate=${10000} | search_type=PDR
+| | phy_cores=${1} | framesize=${1518} | search_type=PDR
| tc05-IMIX-1t1c-eth-l2bdbasemaclrn-eth-4vhostvr1024-2vm-ndrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with 1 phy core, \
-| | ... | 1 receive queue per NIC port.
-| | ... | [Ver] Find NDR for IMIX_v4_1 frame \
-| | ... | size using binary search start at 40GE linerate, step 10kpps.
-| | ... | IMIX_v4_1 = (28x64B;16x570B;4x1518B)
-| | ...
| | [Tags] | IMIX | 1C | NDRDISC
-| | ...
-| | [Template] | Discover NDR or PDR for eth-l2bdbasemaclrn-eth-4vhostvr1024-2vm
-| | wt=1 | rxq=1 | framesize=IMIX_v4_1 | min_rate=${10000} | search_type=NDR
+| | phy_cores=${1} | framesize=IMIX_v4_1 | search_type=NDR
| tc06-IMIX-1t1c-eth-l2bdbasemaclrn-eth-4vhostvr1024-2vm-pdrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with 1 phy core, \
-| | ... | 1 receive queue per NIC port.
-| | ... | [Ver] Find PDR for IMIX_v4_1 frame \
-| | ... | size using binary search start at 40GE linerate, step 10kpps, LT=0.5%.
-| | ... | IMIX_v4_1 = (28x64B;16x570B;4x1518B)
-| | ...
| | [Tags] | IMIX | 1C | PDRDISC | SKIP_PATCH
-| | ...
-| | [Template] | Discover NDR or PDR for eth-l2bdbasemaclrn-eth-4vhostvr1024-2vm
-| | wt=1 | rxq=1 | framesize=IMIX_v4_1 | min_rate=${10000} | search_type=PDR
+| | phy_cores=${1} | framesize=IMIX_v4_1 | search_type=PDR
| tc07-64B-2t2c-eth-l2bdbasemaclrn-eth-4vhostvr1024-2vm-ndrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with 2 phy cores, \
-| | ... | 1 receive queue per NIC port.
-| | ... | [Ver] Find NDR for 64 Byte frames \
-| | ... | using binary search start at 40GE linerate, step 10kpps.
-| | ...
| | [Tags] | 64B | 2C | NDRDISC
-| | ...
-| | [Template] | Discover NDR or PDR for eth-l2bdbasemaclrn-eth-4vhostvr1024-2vm
-| | wt=2 | rxq=1 | framesize=${64} | min_rate=${10000} | search_type=NDR
+| | phy_cores=${2} | framesize=${64} | search_type=NDR
| tc08-64B-2t2c-eth-l2bdbasemaclrn-eth-4vhostvr1024-2vm-pdrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with 2 phy cores, \
-| | ... | 1 receive queue per NIC port.
-| | ... | [Ver] Find PDR for 64 Byte frames \
-| | ... | using binary search start at 40GE linerate, step 10kpps, LT=0.5%.
-| | ...
| | [Tags] | 64B | 2C | PDRDISC | SKIP_PATCH
-| | ...
-| | [Template] | Discover NDR or PDR for eth-l2bdbasemaclrn-eth-4vhostvr1024-2vm
-| | wt=2 | rxq=1 | framesize=${64} | min_rate=${10000} | search_type=PDR
+| | phy_cores=${2} | framesize=${64} | search_type=PDR
| tc09-1518B-2t2c-eth-l2bdbasemaclrn-eth-4vhostvr1024-2vm-ndrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with 2 phy cores, \
-| | ... | 1 receive queue per NIC port.
-| | ... | [Ver] Find NDR for 1518 Byte frames \
-| | ... | using binary search start at 40GE linerate, step 10kpps.
-| | ...
| | [Tags] | 1518B | 2C | NDRDISC | SKIP_PATCH
-| | ...
-| | [Template] | Discover NDR or PDR for eth-l2bdbasemaclrn-eth-4vhostvr1024-2vm
-| | wt=2 | rxq=1 | framesize=${1518} | min_rate=${10000} | search_type=NDR
+| | phy_cores=${2} | framesize=${1518} | search_type=NDR
| tc10-1518B-2t2c-eth-l2bdbasemaclrn-eth-4vhostvr1024-2vm-pdrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with 2 phy cores, \
-| | ... | 1 receive queue per NIC port.
-| | ... | [Ver] Find PDR for 1518 Byte frames \
-| | ... | using binary search start at 40GE linerate, step 10kpps, LT=0.5%.
-| | ...
| | [Tags] | 1518B | 2C | PDRDISC | SKIP_PATCH
-| | ...
-| | [Template] | Discover NDR or PDR for eth-l2bdbasemaclrn-eth-4vhostvr1024-2vm
-| | wt=2 | rxq=1 | framesize=${1518} | min_rate=${10000} | search_type=PDR
+| | phy_cores=${2} | framesize=${1518} | search_type=PDR
| tc11-IMIX-2t2c-eth-l2bdbasemaclrn-eth-4vhostvr1024-2vm-ndrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with 2 phy cores, \
-| | ... | 1 receive queue per NIC port.
-| | ... | [Ver] Find NDR for IMIX_v4_1 frame \
-| | ... | size using binary search start at 40GE linerate, step 10kpps.
-| | ... | IMIX_v4_1 = (28x64B;16x570B;4x1518B)
-| | ...
| | [Tags] | IMIX | 2C | NDRDISC | SKIP_PATCH
-| | ...
-| | [Template] | Discover NDR or PDR for eth-l2bdbasemaclrn-eth-4vhostvr1024-2vm
-| | wt=2 | rxq=1 | framesize=IMIX_v4_1 | min_rate=${10000} | search_type=NDR
+| | phy_cores=${2} | framesize=IMIX_v4_1 | search_type=NDR
| tc12-IMIX-2t2c-eth-l2bdbasemaclrn-eth-4vhostvr1024-2vm-pdrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with 2 phy cores, \
-| | ... | 1 receive queue per NIC port.
-| | ... | [Ver] Find PDR for IMIX_v4_1 frame \
-| | ... | size using binary search start at 40GE linerate, step 10kpps, LT=0.5%.
-| | ... | IMIX_v4_1 = (28x64B;16x570B;4x1518B)
-| | ...
| | [Tags] | IMIX | 2C | PDRDISC | SKIP_PATCH
-| | ...
-| | [Template] | Discover NDR or PDR for eth-l2bdbasemaclrn-eth-4vhostvr1024-2vm
-| | wt=2 | rxq=1 | framesize=IMIX_v4_1 | min_rate=${10000} | search_type=PDR
+| | phy_cores=${2} | framesize=IMIX_v4_1 | search_type=PDR
| tc13-64B-4t4c-eth-l2bdbasemaclrn-eth-4vhostvr1024-2vm-ndrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with 4 phy cores, \
-| | ... | 2 receive queues per NIC port.
-| | ... | [Ver] Find NDR for 64 Byte frames \
-| | ... | using binary search start at 40GE linerate, step 10kpps.
-| | ...
| | [Tags] | 64B | 4C | NDRDISC
-| | ...
-| | [Template] | Discover NDR or PDR for eth-l2bdbasemaclrn-eth-4vhostvr1024-2vm
-| | wt=4 | rxq=2 | framesize=${64} | min_rate=${10000} | search_type=NDR
+| | phy_cores=${4} | framesize=${64} | search_type=NDR
| tc14-64B-4t4c-eth-l2bdbasemaclrn-eth-4vhostvr1024-2vm-pdrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with 4 phy cores, \
-| | ... | 2 receive queues per NIC port.
-| | ... | [Ver] Find PDR for 64 Byte frames \
-| | ... | using binary search start at 40GE linerate, step 10kpps, LT=0.5%.
-| | ...
| | [Tags] | 64B | 4C | PDRDISC | SKIP_PATCH
-| | ...
-| | [Template] | Discover NDR or PDR for eth-l2bdbasemaclrn-eth-4vhostvr1024-2vm
-| | wt=4 | rxq=2 | framesize=${64} | min_rate=${10000} | search_type=PDR
+| | phy_cores=${4} | framesize=${64} | search_type=PDR
| tc15-1518B-4t4c-eth-l2bdbasemaclrn-eth-4vhostvr1024-2vm-ndrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with 4 phy cores, \
-| | ... | 2 receive queues per NIC port.
-| | ... | [Ver] Find NDR for 1518 Byte frames \
-| | ... | using binary search start at 40GE linerate, step 10kpps.
-| | ...
| | [Tags] | 1518B | 4C | NDRDISC | SKIP_PATCH
-| | ...
-| | [Template] | Discover NDR or PDR for eth-l2bdbasemaclrn-eth-4vhostvr1024-2vm
-| | wt=4 | rxq=2 | framesize=${1518} | min_rate=${10000} | search_type=NDR
+| | phy_cores=${4} | framesize=${1518} | search_type=NDR
| tc16-1518B-4t4c-eth-l2bdbasemaclrn-eth-4vhostvr1024-2vm-pdrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with 4 phy cores, \
-| | ... | 2 receive queues per NIC port.
-| | ... | [Ver] Find PDR for 1518 Byte frames \
-| | ... | using binary search start at 40GE linerate, step 10kpps, LT=0.5%.
-| | ...
| | [Tags] | 1518B | 4C | PDRDISC | SKIP_PATCH
-| | ...
-| | [Template] | Discover NDR or PDR for eth-l2bdbasemaclrn-eth-4vhostvr1024-2vm
-| | wt=4 | rxq=2 | framesize=${1518} | min_rate=${10000} | search_type=PDR
+| | phy_cores=${4} | framesize=${1518} | search_type=PDR
| tc17-IMIX-4t4c-eth-l2bdbasemaclrn-eth-4vhostvr1024-2vm-ndrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with 4 phy cores, \
-| | ... | 2 receive queues per NIC port.
-| | ... | [Ver] Find NDR for IMIX_v4_1 frame \
-| | ... | size using binary search start at 40GE linerate, step 10kpps.
-| | ... | IMIX_v4_1 = (28x64B;16x570B;4x1518B)
-| | ...
| | [Tags] | IMIX | 4C | NDRDISC | SKIP_PATCH
-| | ...
-| | [Template] | Discover NDR or PDR for eth-l2bdbasemaclrn-eth-4vhostvr1024-2vm
-| | wt=4 | rxq=2 | framesize=IMIX_v4_1 | min_rate=${10000} | search_type=NDR
+| | phy_cores=${4} | framesize=IMIX_v4_1 | search_type=NDR
| tc18-IMIX-4t4c-eth-l2bdbasemaclrn-eth-4vhostvr1024-2vm-pdrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config with 4 phy cores, \
-| | ... | 2 receive queues per NIC port.
-| | ... | [Ver] Find PDR for IMIX_v4_1 frame \
-| | ... | size using binary search start at 40GE linerate, step 10kpps, LT=0.5%.
-| | ... | IMIX_v4_1 = (28x64B;16x570B;4x1518B)
-| | ...
| | [Tags] | IMIX | 4C | PDRDISC | SKIP_PATCH
-| | ...
-| | [Template] | Discover NDR or PDR for eth-l2bdbasemaclrn-eth-4vhostvr1024-2vm
-| | wt=4 | rxq=2 | framesize=IMIX_v4_1 | min_rate=${10000} | search_type=PDR
+| | phy_cores=${4} | framesize=IMIX_v4_1 | search_type=PDR
diff --git a/tests/vpp/perf/vm_vhost/40ge2p1xl710-eth-l2xcbase-eth-4vhostvr1024-2vm-ndrpdrdisc.robot b/tests/vpp/perf/vm_vhost/40ge2p1xl710-eth-l2xcbase-eth-4vhostvr1024-2vm-ndrpdrdisc.robot
index 7fdfe84862..f1f7877fde 100644
--- a/tests/vpp/perf/vm_vhost/40ge2p1xl710-eth-l2xcbase-eth-4vhostvr1024-2vm-ndrpdrdisc.robot
+++ b/tests/vpp/perf/vm_vhost/40ge2p1xl710-eth-l2xcbase-eth-4vhostvr1024-2vm-ndrpdrdisc.robot
@@ -28,6 +28,8 @@
| ... | dut1_node=${dut1} | dut1_vm_refs=${dut1_vm_refs}
| ... | dut2_node=${dut2} | dut2_vm_refs=${dut2_vm_refs}
| ...
+| Test Template | Local template
+| ...
| Documentation | *RFC2544: Packet throughput L2XC test cases with vhost*
| ...
| ... | *[Top] Network Topologies:* TG-DUT1-DUT2-TG 3-node circular topology
@@ -69,16 +71,10 @@
| ${traffic_profile}= | trex-sl-3n-ethip4-ip4src254
*** Keywords ***
-| Discover NDR or PDR for eth-l2xcbase-eth-4vhostvr1024-2vm
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2XC switching config with ${wt} thread, ${wt} phy\
-| | ... | core, ${rxq} receive queue per NIC port.
-| | ... | [Ver] Find NDR for ${framesize} frames using binary search start at
-| | ... | 40GE linerate, step 10kpps.
-| | ...
-| | [Arguments] | ${wt} | ${rxq} | ${framesize} | ${min_rate} | ${search_type}
+| Local template
+| | [Arguments] | ${phy_cores} | ${framesize} | ${search_type} | ${rxq}=${None}
+| | ... | ${min_rate}=${10000}
| | ...
-| | # Test Variables required for test and test teardown
| | Set Test Variable | ${framesize}
| | Set Test Variable | ${min_rate}
| | ${get_framesize}= | Get Frame Size | ${framesize}
@@ -96,7 +92,7 @@
| | ... | ${False} | ${True}
| | Set Test Variable | ${jumbo_frames}
| | ...
-| | Given Add '${wt}' worker threads and '${rxq}' rxqueues in 3-node single-link circular topology
+| | Given Add worker threads and rxqueues to all DUTs | ${phy_cores} | ${rxq}
| | And Add PCI devices to all DUTs
| | And Run Keyword If | ${get_framesize} < ${1522}
| | ... | Add no multi seg to all DUTs
@@ -115,223 +111,73 @@
*** Test Cases ***
| tc01-64B-1t1c-eth-l2xcbase-eth-4vhostvr1024-2vm-ndrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2XC switching config with 1 phy core, \
-| | ... | 1 receive queue per NIC port.
-| | ... | [Ver] Find NDR for 64 Byte frames \
-| | ... | using binary search start at 40GE linerate, step 10kpps.
-| | ...
| | [Tags] | 64B | 1C | NDRDISC
-| | ...
-| | [Template] | Discover NDR or PDR for eth-l2xcbase-eth-4vhostvr1024-2vm
-| | wt=1 | rxq=1 | framesize=${64} | min_rate=${10000} | search_type=NDR
+| | phy_cores=${1} | framesize=${64} | search_type=NDR
| tc02-64B-1t1c-eth-l2xcbase-eth-4vhostvr1024-2vm-pdrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2XC switching config with 1 phy core, \
-| | ... | 1 receive queue per NIC port.
-| | ... | [Ver] Find PDR for 64 Byte frames \
-| | ... | using binary search start at 40GE linerate, step 10kpps, LT=0.5%.
-| | ...
| | [Tags] | 64B | 1C | PDRDISC | SKIP_PATCH
-| | ...
-| | [Template] | Discover NDR or PDR for eth-l2xcbase-eth-4vhostvr1024-2vm
-| | wt=1 | rxq=1 | framesize=${64} | min_rate=${10000} | search_type=PDR
+| | phy_cores=${1} | framesize=${64} | search_type=PDR
| tc03-1518B-1t1c-eth-l2xcbase-eth-4vhostvr1024-2vm-ndrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2XC switching config with 1 phy core, \
-| | ... | 1 receive queue per NIC port.
-| | ... | [Ver] Find NDR for 1518 Byte frames \
-| | ... | using binary search start at 40GE linerate, step 10kpps.
-| | ...
| | [Tags] | 1518B | 1C | NDRDISC
-| | ...
-| | [Template] | Discover NDR or PDR for eth-l2xcbase-eth-4vhostvr1024-2vm
-| | wt=1 | rxq=1 | framesize=${1518} | min_rate=${10000} | search_type=NDR
+| | phy_cores=${1} | framesize=${1518} | search_type=NDR
| tc04-1518B-1t1c-eth-l2xcbase-eth-4vhostvr1024-2vm-pdrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2XC switching config with 1 phy core, \
-| | ... | 1 receive queue per NIC port.
-| | ... | [Ver] Find PDR for 1518 Byte frames \
-| | ... | using binary search start at 40GE linerate, step 10kpps, LT=0.5%.
-| | ...
| | [Tags] | 1518B | 1C | PDRDISC | SKIP_PATCH
-| | ...
-| | [Template] | Discover NDR or PDR for eth-l2xcbase-eth-4vhostvr1024-2vm
-| | wt=1 | rxq=1 | framesize=${1518} | min_rate=${10000} | search_type=PDR
+| | phy_cores=${1} | framesize=${1518} | search_type=PDR
| tc05-IMIX-1t1c-eth-l2xcbase-eth-4vhostvr1024-2vm-ndrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2XC switching config with 1 phy core, \
-| | ... | 1 receive queue per NIC port.
-| | ... | [Ver] Find NDR for IMIX_v4_1 frame \
-| | ... | size using binary search start at 40GE linerate, step 10kpps.
-| | ... | IMIX_v4_1 = (28x64B;16x570B;4x1518B)
-| | ...
| | [Tags] | IMIX | 1C | NDRDISC
-| | ...
-| | [Template] | Discover NDR or PDR for eth-l2xcbase-eth-4vhostvr1024-2vm
-| | wt=1 | rxq=1 | framesize=IMIX_v4_1 | min_rate=${10000} | search_type=NDR
+| | phy_cores=${1} | framesize=IMIX_v4_1 | search_type=NDR
| tc06-IMIX-1t1c-eth-l2xcbase-eth-4vhostvr1024-2vm-pdrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2XC switching config with 1 phy core, \
-| | ... | 1 receive queue per NIC port.
-| | ... | [Ver] Find PDR for IMIX_v4_1 frame \
-| | ... | size using binary search start at 40GE linerate, step 10kpps, LT=0.5%.
-| | ... | IMIX_v4_1 = (28x64B;16x570B;4x1518B)
-| | ...
| | [Tags] | IMIX | 1C | PDRDISC | SKIP_PATCH
-| | ...
-| | [Template] | Discover NDR or PDR for eth-l2xcbase-eth-4vhostvr1024-2vm
-| | wt=1 | rxq=1 | framesize=IMIX_v4_1 | min_rate=${10000} | search_type=PDR
+| | phy_cores=${1} | framesize=IMIX_v4_1 | search_type=PDR
| tc07-64B-2t2c-eth-l2xcbase-eth-4vhostvr1024-2vm-ndrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2XC switching config with 2 phy cores, \
-| | ... | 1 receive queue per NIC port.
-| | ... | [Ver] Find NDR for 64 Byte frames \
-| | ... | using binary search start at 40GE linerate, step 10kpps.
-| | ...
| | [Tags] | 64B | 2C | NDRDISC
-| | ...
-| | [Template] | Discover NDR or PDR for eth-l2xcbase-eth-4vhostvr1024-2vm
-| | wt=2 | rxq=1 | framesize=${64} | min_rate=${10000} | search_type=NDR
+| | phy_cores=${2} | framesize=${64} | search_type=NDR
| tc08-64B-2t2c-eth-l2xcbase-eth-4vhostvr1024-2vm-pdrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2XC switching config with 2 phy cores, \
-| | ... | 1 receive queue per NIC port.
-| | ... | [Ver] Find PDR for 64 Byte frames \
-| | ... | using binary search start at 40GE linerate, step 10kpps, LT=0.5%.
-| | ...
| | [Tags] | 64B | 2C | PDRDISC | SKIP_PATCH
-| | ...
-| | [Template] | Discover NDR or PDR for eth-l2xcbase-eth-4vhostvr1024-2vm
-| | wt=2 | rxq=1 | framesize=${64} | min_rate=${10000} | search_type=PDR
+| | phy_cores=${2} | framesize=${64} | search_type=PDR
| tc09-1518B-2t2c-eth-l2xcbase-eth-4vhostvr1024-2vm-ndrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2XC switching config with 2 phy cores, \
-| | ... | 1 receive queue per NIC port.
-| | ... | [Ver] Find NDR for 1518 Byte frames \
-| | ... | using binary search start at 40GE linerate, step 10kpps.
-| | ...
| | [Tags] | 1518B | 2C | NDRDISC | SKIP_PATCH
-| | ...
-| | [Template] | Discover NDR or PDR for eth-l2xcbase-eth-4vhostvr1024-2vm
-| | wt=2 | rxq=1 | framesize=${1518} | min_rate=${10000} | search_type=NDR
+| | phy_cores=${2} | framesize=${1518} | search_type=NDR
| tc10-1518B-2t2c-eth-l2xcbase-eth-4vhostvr1024-2vm-pdrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2XC switching config with 2 phy cores, \
-| | ... | 1 receive queue per NIC port.
-| | ... | [Ver] Find PDR for 1518 Byte frames \
-| | ... | using binary search start at 40GE linerate, step 10kpps, LT=0.5%.
-| | ...
| | [Tags] | 1518B | 2C | PDRDISC | SKIP_PATCH
-| | ...
-| | [Template] | Discover NDR or PDR for eth-l2xcbase-eth-4vhostvr1024-2vm
-| | wt=2 | rxq=1 | framesize=${1518} | min_rate=${10000} | search_type=PDR
+| | phy_cores=${2} | framesize=${1518} | search_type=PDR
| tc11-IMIX-2t2c-eth-l2xcbase-eth-4vhostvr1024-2vm-ndrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2XC switching config with 2 phy cores, \
-| | ... | 1 receive queue per NIC port.
-| | ... | [Ver] Find NDR for IMIX_v4_1 frame \
-| | ... | size using binary search start at 40GE linerate, step 10kpps.
-| | ... | IMIX_v4_1 = (28x64B;16x570B;4x1518B)
-| | ...
| | [Tags] | IMIX | 2C | NDRDISC | SKIP_PATCH
-| | ...
-| | [Template] | Discover NDR or PDR for eth-l2xcbase-eth-4vhostvr1024-2vm
-| | wt=2 | rxq=1 | framesize=IMIX_v4_1 | min_rate=${10000} | search_type=NDR
+| | phy_cores=${2} | framesize=IMIX_v4_1 | search_type=NDR
| tc12-IMIX-2t2c-eth-l2xcbase-eth-4vhostvr1024-2vm-pdrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2XC switching config with 2 phy cores, \
-| | ... | 1 receive queue per NIC port.
-| | ... | [Ver] Find PDR for IMIX_v4_1 frame \
-| | ... | size using binary search start at 40GE linerate, step 10kpps, LT=0.5%.
-| | ... | IMIX_v4_1 = (28x64B;16x570B;4x1518B)
-| | ...
| | [Tags] | IMIX | 2C | PDRDISC | SKIP_PATCH
-| | ...
-| | [Template] | Discover NDR or PDR for eth-l2xcbase-eth-4vhostvr1024-2vm
-| | wt=2 | rxq=1 | framesize=IMIX_v4_1 | min_rate=${10000} | search_type=PDR
+| | phy_cores=${2} | framesize=IMIX_v4_1 | search_type=PDR
| tc13-64B-4t4c-eth-l2xcbase-eth-4vhostvr1024-2vm-ndrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2XC switching config with 4 phy cores, \
-| | ... | 2 receive queues per NIC port.
-| | ... | [Ver] Find NDR for 64 Byte frames \
-| | ... | using binary search start at 40GE linerate, step 10kpps.
-| | ...
| | [Tags] | 64B | 4C | NDRDISC
-| | ...
-| | [Template] | Discover NDR or PDR for eth-l2xcbase-eth-4vhostvr1024-2vm
-| | wt=4 | rxq=2 | framesize=${64} | min_rate=${10000} | search_type=NDR
+| | phy_cores=${4} | framesize=${64} | search_type=NDR
| tc14-64B-4t4c-eth-l2xcbase-eth-4vhostvr1024-2vm-pdrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2XC switching config with 4 phy cores, \
-| | ... | 2 receive queues per NIC port.
-| | ... | [Ver] Find PDR for 64 Byte frames \
-| | ... | using binary search start at 40GE linerate, step 10kpps, LT=0.5%.
-| | ...
| | [Tags] | 64B | 4C | PDRDISC | SKIP_PATCH
-| | ...
-| | [Template] | Discover NDR or PDR for eth-l2xcbase-eth-4vhostvr1024-2vm
-| | wt=4 | rxq=2 | framesize=${64} | min_rate=${10000} | search_type=PDR
+| | phy_cores=${4} | framesize=${64} | search_type=PDR
| tc15-1518B-4t4c-eth-l2xcbase-eth-4vhostvr1024-2vm-ndrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2XC switching config with 4 phy cores, \
-| | ... | 2 receive queues per NIC port.
-| | ... | [Ver] Find NDR for 1518 Byte frames \
-| | ... | using binary search start at 40GE linerate, step 10kpps.
-| | ...
| | [Tags] | 1518B | 4C | NDRDISC | SKIP_PATCH
-| | ...
-| | [Template] | Discover NDR or PDR for eth-l2xcbase-eth-4vhostvr1024-2vm
-| | wt=4 | rxq=2 | framesize=${1518} | min_rate=${10000} | search_type=NDR
+| | phy_cores=${4} | framesize=${1518} | search_type=NDR
| tc16-1518B-4t4c-eth-l2xcbase-eth-4vhostvr1024-2vm-pdrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2XC switching config with 4 phy cores, \
-| | ... | 2 receive queues per NIC port.
-| | ... | [Ver] Find PDR for 1518 Byte frames \
-| | ... | using binary search start at 40GE linerate, step 10kpps, LT=0.5%.
-| | ...
| | [Tags] | 1518B | 4C | PDRDISC | SKIP_PATCH
-| | ...
-| | [Template] | Discover NDR or PDR for eth-l2xcbase-eth-4vhostvr1024-2vm
-| | wt=4 | rxq=2 | framesize=${1518} | min_rate=${10000} | search_type=PDR
+| | phy_cores=${4} | framesize=${1518} | search_type=PDR
| tc17-IMIX-4t4c-eth-l2xcbase-eth-4vhostvr1024-2vm-ndrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2XC switching config with 4 phy cores, \
-| | ... | 2 receive queues per NIC port.
-| | ... | [Ver] Find NDR for IMIX_v4_1 frame \
-| | ... | size using binary search start at 40GE linerate, step 10kpps.
-| | ... | IMIX_v4_1 = (28x64B;16x570B;4x1518B)
-| | ...
| | [Tags] | IMIX | 4C | NDRDISC | SKIP_PATCH
-| | ...
-| | [Template] | Discover NDR or PDR for eth-l2xcbase-eth-4vhostvr1024-2vm
-| | wt=4 | rxq=2 | framesize=IMIX_v4_1 | min_rate=${10000} | search_type=NDR
+| | phy_cores=${4} | framesize=IMIX_v4_1 | search_type=NDR
| tc18-IMIX-4t4c-eth-l2xcbase-eth-4vhostvr1024-2vm-pdrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2XC switching config with 4 phy cores, \
-| | ... | 2 receive queues per NIC port.
-| | ... | [Ver] Find PDR for IMIX_v4_1 frame \
-| | ... | size using binary search start at 40GE linerate, step 10kpps, LT=0.5%.
-| | ... | IMIX_v4_1 = (28x64B;16x570B;4x1518B)
-| | ...
| | [Tags] | IMIX | 4C | PDRDISC | SKIP_PATCH
-| | ...
-| | [Template] | Discover NDR or PDR for eth-l2xcbase-eth-4vhostvr1024-2vm
-| | wt=4 | rxq=2 | framesize=IMIX_v4_1 | min_rate=${10000} | search_type=PDR
+| | phy_cores=${4} | framesize=IMIX_v4_1 | search_type=PDR
diff --git a/tests/vpp/perf/vm_vhost/40ge2p1xl710-ethip4-ip4base-eth-4vhostvr1024-2vm-ndrpdrdisc.robot b/tests/vpp/perf/vm_vhost/40ge2p1xl710-ethip4-ip4base-eth-4vhostvr1024-2vm-ndrpdrdisc.robot
index eac77fb479..26abb87c6f 100644
--- a/tests/vpp/perf/vm_vhost/40ge2p1xl710-ethip4-ip4base-eth-4vhostvr1024-2vm-ndrpdrdisc.robot
+++ b/tests/vpp/perf/vm_vhost/40ge2p1xl710-ethip4-ip4base-eth-4vhostvr1024-2vm-ndrpdrdisc.robot
@@ -28,6 +28,8 @@
| ... | dut1_node=${dut1} | dut1_vm_refs=${dut1_vm_refs}
| ... | dut2_node=${dut2} | dut2_vm_refs=${dut2_vm_refs}
| ...
+| Test Template | Local template
+| ...
| Documentation | *RFC2544: Packet throughput IP14 test cases with vhost*
| ...
| ... | *[Top] Network Topologies:* TG-DUT1-DUT2-TG 3-node circular topology
@@ -69,16 +71,10 @@
| ${traffic_profile}= | trex-sl-3n-ethip4-ip4src253
*** Keywords ***
-| Discover NDR or PDR for ethip4-ip4base-eth-4vhostvr1024-2vm
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 routing config with ${wt} thread, ${wt} phy\
-| | ... | core, ${rxq} receive queue per NIC port.
-| | ... | [Ver] Find NDR for ${framesize} frames using binary search start at
-| | ... | 40GE linerate, step 10kpps.
-| | ...
-| | [Arguments] | ${wt} | ${rxq} | ${framesize} | ${min_rate} | ${search_type}
+| Local template
+| | [Arguments] | ${phy_cores} | ${framesize} | ${search_type} | ${rxq}=${None}
+| | ... | ${min_rate}=${10000}
| | ...
-| | # Test Variables required for test and test teardown
| | Set Test Variable | ${framesize}
| | Set Test Variable | ${min_rate}
| | ${get_framesize}= | Get Frame Size | ${framesize}
@@ -96,7 +92,7 @@
| | ... | ${False} | ${True}
| | Set Test Variable | ${jumbo_frames}
| | ...
-| | Given Add '${wt}' worker threads and '${rxq}' rxqueues in 3-node single-link circular topology
+| | Given Add worker threads and rxqueues to all DUTs | ${phy_cores} | ${rxq}
| | And Add PCI devices to all DUTs
| | And Run Keyword If | ${get_framesize} < ${1522}
| | ... | Add no multi seg to all DUTs
@@ -115,223 +111,73 @@
*** Test Cases ***
| tc01-64B-1t1c-ethip4-ip4base-eth-4vhostvr1024-2vm-ndrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 routing config with 1 phy core, \
-| | ... | 1 receive queue per NIC port.
-| | ... | [Ver] Find NDR for 64 Byte frames \
-| | ... | using binary search start at 40GE linerate, step 10kpps.
-| | ...
| | [Tags] | 64B | 1C | NDRDISC
-| | ...
-| | [Template] | Discover NDR or PDR for ethip4-ip4base-eth-4vhostvr1024-2vm
-| | wt=1 | rxq=1 | framesize=${64} | min_rate=${10000} | search_type=NDR
+| | phy_cores=${1} | framesize=${64} | search_type=NDR
| tc02-64B-1t1c-ethip4-ip4base-eth-4vhostvr1024-2vm-pdrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 routing config with 1 phy core, \
-| | ... | 1 receive queue per NIC port.
-| | ... | [Ver] Find PDR for 64 Byte frames \
-| | ... | using binary search start at 40GE linerate, step 10kpps, LT=0.5%.
-| | ...
| | [Tags] | 64B | 1C | PDRDISC | SKIP_PATCH
-| | ...
-| | [Template] | Discover NDR or PDR for ethip4-ip4base-eth-4vhostvr1024-2vm
-| | wt=1 | rxq=1 | framesize=${64} | min_rate=${10000} | search_type=PDR
+| | phy_cores=${1} | framesize=${64} | search_type=PDR
| tc03-1518B-1t1c-ethip4-ip4base-eth-4vhostvr1024-2vm-ndrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 routing config with 1 phy core, \
-| | ... | 1 receive queue per NIC port.
-| | ... | [Ver] Find NDR for 1518 Byte frames \
-| | ... | using binary search start at 40GE linerate, step 10kpps.
-| | ...
| | [Tags] | 1518B | 1C | NDRDISC
-| | ...
-| | [Template] | Discover NDR or PDR for ethip4-ip4base-eth-4vhostvr1024-2vm
-| | wt=1 | rxq=1 | framesize=${1518} | min_rate=${10000} | search_type=NDR
+| | phy_cores=${1} | framesize=${1518} | search_type=NDR
| tc04-1518B-1t1c-ethip4-ip4base-eth-4vhostvr1024-2vm-pdrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 routing config with 1 phy core, \
-| | ... | 1 receive queue per NIC port.
-| | ... | [Ver] Find PDR for 1518 Byte frames \
-| | ... | using binary search start at 40GE linerate, step 10kpps, LT=0.5%.
-| | ...
| | [Tags] | 1518B | 1C | PDRDISC | SKIP_PATCH
-| | ...
-| | [Template] | Discover NDR or PDR for ethip4-ip4base-eth-4vhostvr1024-2vm
-| | wt=1 | rxq=1 | framesize=${1518} | min_rate=${10000} | search_type=PDR
+| | phy_cores=${1} | framesize=${1518} | search_type=PDR
| tc05-IMIX-1t1c-ethip4-ip4base-eth-4vhostvr1024-2vm-ndrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 routing config with 1 phy core, \
-| | ... | 1 receive queue per NIC port.
-| | ... | [Ver] Find NDR for IMIX_v4_1 frame \
-| | ... | size using binary search start at 40GE linerate, step 10kpps.
-| | ... | IMIX_v4_1 = (28x64B;16x570B;4x1518B)
-| | ...
| | [Tags] | IMIX | 1C | NDRDISC
-| | ...
-| | [Template] | Discover NDR or PDR for ethip4-ip4base-eth-4vhostvr1024-2vm
-| | wt=1 | rxq=1 | framesize=IMIX_v4_1 | min_rate=${10000} | search_type=NDR
+| | phy_cores=${1} | framesize=IMIX_v4_1 | search_type=NDR
| tc06-IMIX-1t1c-ethip4-ip4base-eth-4vhostvr1024-2vm-pdrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 routing config with 1 phy core, \
-| | ... | 1 receive queue per NIC port.
-| | ... | [Ver] Find PDR for IMIX_v4_1 frame \
-| | ... | size using binary search start at 40GE linerate, step 10kpps, LT=0.5%.
-| | ... | IMIX_v4_1 = (28x64B;16x570B;4x1518B)
-| | ...
| | [Tags] | IMIX | 1C | PDRDISC | SKIP_PATCH
-| | ...
-| | [Template] | Discover NDR or PDR for ethip4-ip4base-eth-4vhostvr1024-2vm
-| | wt=1 | rxq=1 | framesize=IMIX_v4_1 | min_rate=${10000} | search_type=PDR
+| | phy_cores=${1} | framesize=IMIX_v4_1 | search_type=PDR
| tc07-64B-2t2c-ethip4-ip4base-eth-4vhostvr1024-2vm-ndrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 routing config with 2 phy cores, \
-| | ... | 1 receive queue per NIC port.
-| | ... | [Ver] Find NDR for 64 Byte frames \
-| | ... | using binary search start at 40GE linerate, step 10kpps.
-| | ...
| | [Tags] | 64B | 2C | NDRDISC
-| | ...
-| | [Template] | Discover NDR or PDR for ethip4-ip4base-eth-4vhostvr1024-2vm
-| | wt=2 | rxq=1 | framesize=${64} | min_rate=${10000} | search_type=NDR
+| | phy_cores=${2} | framesize=${64} | search_type=NDR
| tc08-64B-2t2c-ethip4-ip4base-eth-4vhostvr1024-2vm-pdrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 routing config with 2 phy cores, \
-| | ... | 1 receive queue per NIC port.
-| | ... | [Ver] Find PDR for 64 Byte frames \
-| | ... | using binary search start at 40GE linerate, step 10kpps, LT=0.5%.
-| | ...
| | [Tags] | 64B | 2C | PDRDISC | SKIP_PATCH
-| | ...
-| | [Template] | Discover NDR or PDR for ethip4-ip4base-eth-4vhostvr1024-2vm
-| | wt=2 | rxq=1 | framesize=${64} | min_rate=${10000} | search_type=PDR
+| | phy_cores=${2} | framesize=${64} | search_type=PDR
| tc09-1518B-2t2c-ethip4-ip4base-eth-4vhostvr1024-2vm-ndrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 routing config with 2 phy cores, \
-| | ... | 1 receive queue per NIC port.
-| | ... | [Ver] Find NDR for 1518 Byte frames \
-| | ... | using binary search start at 40GE linerate, step 10kpps.
-| | ...
| | [Tags] | 1518B | 2C | NDRDISC | SKIP_PATCH
-| | ...
-| | [Template] | Discover NDR or PDR for ethip4-ip4base-eth-4vhostvr1024-2vm
-| | wt=2 | rxq=1 | framesize=${1518} | min_rate=${10000} | search_type=NDR
+| | phy_cores=${2} | framesize=${1518} | search_type=NDR
| tc10-1518B-2t2c-ethip4-ip4base-eth-4vhostvr1024-2vm-pdrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 routing config with 2 phy cores, \
-| | ... | 1 receive queue per NIC port.
-| | ... | [Ver] Find PDR for 1518 Byte frames \
-| | ... | using binary search start at 40GE linerate, step 10kpps, LT=0.5%.
-| | ...
| | [Tags] | 1518B | 2C | PDRDISC | SKIP_PATCH
-| | ...
-| | [Template] | Discover NDR or PDR for ethip4-ip4base-eth-4vhostvr1024-2vm
-| | wt=2 | rxq=1 | framesize=${1518} | min_rate=${10000} | search_type=PDR
+| | phy_cores=${2} | framesize=${1518} | search_type=PDR
| tc11-IMIX-2t2c-ethip4-ip4base-eth-4vhostvr1024-2vm-ndrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 routing config with 2 phy cores, \
-| | ... | 1 receive queue per NIC port.
-| | ... | [Ver] Find NDR for IMIX_v4_1 frame \
-| | ... | size using binary search start at 40GE linerate, step 10kpps.
-| | ... | IMIX_v4_1 = (28x64B;16x570B;4x1518B)
-| | ...
| | [Tags] | IMIX | 2C | NDRDISC | SKIP_PATCH
-| | ...
-| | [Template] | Discover NDR or PDR for ethip4-ip4base-eth-4vhostvr1024-2vm
-| | wt=2 | rxq=1 | framesize=IMIX_v4_1 | min_rate=${10000} | search_type=NDR
+| | phy_cores=${2} | framesize=IMIX_v4_1 | search_type=NDR
| tc12-IMIX-2t2c-ethip4-ip4base-eth-4vhostvr1024-2vm-pdrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 routing config with 2 phy cores, \
-| | ... | 1 receive queue per NIC port.
-| | ... | [Ver] Find PDR for IMIX_v4_1 frame \
-| | ... | size using binary search start at 40GE linerate, step 10kpps, LT=0.5%.
-| | ... | IMIX_v4_1 = (28x64B;16x570B;4x1518B)
-| | ...
| | [Tags] | IMIX | 2C | PDRDISC | SKIP_PATCH
-| | ...
-| | [Template] | Discover NDR or PDR for ethip4-ip4base-eth-4vhostvr1024-2vm
-| | wt=2 | rxq=1 | framesize=IMIX_v4_1 | min_rate=${10000} | search_type=PDR
+| | phy_cores=${2} | framesize=IMIX_v4_1 | search_type=PDR
| tc13-64B-4t4c-ethip4-ip4base-eth-4vhostvr1024-2vm-ndrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 routing config with 4 phy cores, \
-| | ... | 2 receive queues per NIC port.
-| | ... | [Ver] Find NDR for 64 Byte frames \
-| | ... | using binary search start at 40GE linerate, step 10kpps.
-| | ...
| | [Tags] | 64B | 4C | NDRDISC
-| | ...
-| | [Template] | Discover NDR or PDR for ethip4-ip4base-eth-4vhostvr1024-2vm
-| | wt=4 | rxq=2 | framesize=${64} | min_rate=${10000} | search_type=NDR
+| | phy_cores=${4} | framesize=${64} | search_type=NDR
| tc14-64B-4t4c-ethip4-ip4base-eth-4vhostvr1024-2vm-pdrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 routing config with 4 phy cores, \
-| | ... | 2 receive queues per NIC port.
-| | ... | [Ver] Find PDR for 64 Byte frames \
-| | ... | using binary search start at 40GE linerate, step 10kpps, LT=0.5%.
-| | ...
| | [Tags] | 64B | 4C | PDRDISC | SKIP_PATCH
-| | ...
-| | [Template] | Discover NDR or PDR for ethip4-ip4base-eth-4vhostvr1024-2vm
-| | wt=4 | rxq=2 | framesize=${64} | min_rate=${10000} | search_type=PDR
+| | phy_cores=${4} | framesize=${64} | search_type=PDR
| tc15-1518B-4t4c-ethip4-ip4base-eth-4vhostvr1024-2vm-ndrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 routing config with 4 phy cores, \
-| | ... | 2 receive queues per NIC port.
-| | ... | [Ver] Find NDR for 1518 Byte frames \
-| | ... | using binary search start at 40GE linerate, step 10kpps.
-| | ...
| | [Tags] | 1518B | 4C | NDRDISC | SKIP_PATCH
-| | ...
-| | [Template] | Discover NDR or PDR for ethip4-ip4base-eth-4vhostvr1024-2vm
-| | wt=4 | rxq=2 | framesize=${1518} | min_rate=${10000} | search_type=NDR
+| | phy_cores=${4} | framesize=${1518} | search_type=NDR
| tc16-1518B-4t4c-ethip4-ip4base-eth-4vhostvr1024-2vm-pdrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 routing config with 4 phy cores, \
-| | ... | 2 receive queues per NIC port.
-| | ... | [Ver] Find PDR for 1518 Byte frames \
-| | ... | using binary search start at 40GE linerate, step 10kpps, LT=0.5%.
-| | ...
| | [Tags] | 1518B | 4C | PDRDISC | SKIP_PATCH
-| | ...
-| | [Template] | Discover NDR or PDR for ethip4-ip4base-eth-4vhostvr1024-2vm
-| | wt=4 | rxq=2 | framesize=${1518} | min_rate=${10000} | search_type=PDR
+| | phy_cores=${4} | framesize=${1518} | search_type=PDR
| tc17-IMIX-4t4c-ethip4-ip4base-eth-4vhostvr1024-2vm-ndrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 routing config with 4 phy cores, \
-| | ... | 2 receive queues per NIC port.
-| | ... | [Ver] Find NDR for IMIX_v4_1 frame \
-| | ... | size using binary search start at 40GE linerate, step 10kpps.
-| | ... | IMIX_v4_1 = (28x64B;16x570B;4x1518B)
-| | ...
| | [Tags] | IMIX | 4C | NDRDISC | SKIP_PATCH
-| | ...
-| | [Template] | Discover NDR or PDR for ethip4-ip4base-eth-4vhostvr1024-2vm
-| | wt=4 | rxq=2 | framesize=IMIX_v4_1 | min_rate=${10000} | search_type=NDR
+| | phy_cores=${4} | framesize=IMIX_v4_1 | search_type=NDR
| tc18-IMIX-4t4c-ethip4-ip4base-eth-4vhostvr1024-2vm-pdrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 routing config with 4 phy cores, \
-| | ... | 2 receive queues per NIC port.
-| | ... | [Ver] Find PDR for IMIX_v4_1 frame \
-| | ... | size using binary search start at 40GE linerate, step 10kpps, LT=0.5%.
-| | ... | IMIX_v4_1 = (28x64B;16x570B;4x1518B)
-| | ...
| | [Tags] | IMIX | 4C | PDRDISC | SKIP_PATCH
-| | ...
-| | [Template] | Discover NDR or PDR for ethip4-ip4base-eth-4vhostvr1024-2vm
-| | wt=4 | rxq=2 | framesize=IMIX_v4_1 | min_rate=${10000} | search_type=PDR
+| | phy_cores=${4} | framesize=IMIX_v4_1 | search_type=PDR
diff --git a/tests/vpp/perf/vts/10ge2p1x520-ethip4vxlan-l2bdbasemaclrn-eth-iacldstbase-2vhostvr1024-1vm-ndrpdrdisc.robot b/tests/vpp/perf/vts/10ge2p1x520-ethip4vxlan-l2bdbasemaclrn-eth-iacldstbase-2vhostvr1024-1vm-ndrpdrdisc.robot
index 0fcfd94779..fec0419206 100644
--- a/tests/vpp/perf/vts/10ge2p1x520-ethip4vxlan-l2bdbasemaclrn-eth-iacldstbase-2vhostvr1024-1vm-ndrpdrdisc.robot
+++ b/tests/vpp/perf/vts/10ge2p1x520-ethip4vxlan-l2bdbasemaclrn-eth-iacldstbase-2vhostvr1024-1vm-ndrpdrdisc.robot
@@ -29,6 +29,8 @@
| ... | ${min_rate}pps | ${framesize} | ${traffic_profile}
| ... | dut1_node=${dut1} | dut1_vm_refs=${dut1_vm_refs}
| ...
+| Test Template | Local template
+| ...
| Documentation | *RFC2544: Packet throughput L2BD test cases with VXLANoIPv4
| ... | and vhost*
| ...
@@ -107,9 +109,7 @@
*** Keywords ***
-| Discover NDR or PDR for IPv4 forwarding with VHOST/VXLAN and ACL
-| | [Arguments] | ${num_of_threads} | ${rxq} | ${pkt_framesize} | ${search_type}
-| | ... | ${acl_type}=${EMPTY}
+| Local template
| | [Documentation]
| | ... | [Cfg] DUT runs L2BD switching config with 1 phy core,\
| | ... | 1 receive queue per NIC port.
@@ -117,19 +117,22 @@
| | ... | linerate, step 10kpps.
| | ...
| | ... | *Arguments:*
-| | ... | - num_of_threads - Number of worker threads to be used. Type: integer
+| | ... | - phy_cores - Number of worker threads to be used. Type: integer
| | ... | - rxq - Number of Rx queues to be used. Type: integer
| | ... | - pkt_framesize - L2 Frame Size [B]. Type: integer
| | ... | - search_type - Type of the search - non drop rate (NDR) or partial
| | ... | drop rare (PDR). Type: string
| | ...
+| | [Arguments] | ${phy_cores} | ${pkt_framesize} | ${search_type}
+| | ... | ${acl_type}=${EMPTY} | ${rxq}=${None}
+| | ...
| | ${binary_min}= | Set Variable | ${min_rate}
| | ${threshold}= | Set Variable | ${min_rate}
| | ${max_pkt_size}= | Set Variable If | '${pkt_framesize}' == 'IMIX_v4_1' |
| | ... | ${1500 + ${vxlan_overhead}} | ${pkt_framesize + ${vxlan_overhead}}
| | ${max_rate}= | Calculate pps | ${s_limit} | ${max_pkt_size}
| | ${binary_max}= | Set Variable | ${max_rate}
-| | Given Add '${num_of_threads}' worker threads and '${rxq}' rxqueues in 3-node single-link circular topology
+| | Given Add worker threads and rxqueues to all DUTs | ${phy_cores} | ${rxq}
| | Add PCI devices to all DUTs
| | And Run Keyword If | ${max_pkt_size} < ${1522}
| | ... | Add no multi seg to all DUTs
@@ -168,162 +171,114 @@
| | ... | ${perf_pdr_loss_acceptance} | ${perf_pdr_loss_acceptance_type}
*** Test Cases ***
-| tc01-64B-1t1c-ethip4vxlan-l2bdbasemaclrn-eth-2vhost-1vm-ndrdisc
+| tc01-64B-2c-ethip4vxlan-l2bdbasemaclrn-eth-2vhost-1vm-ndrdisc
| | [Tags] | 64B | 2C | NDRDISC
-| | ...
-| | [Template] | Discover NDR or PDR for IPv4 forwarding with VHOST/VXLAN and ACL
-| | num_of_threads=2 | rxq=2 | pkt_framesize=${64} | search_type=NDR
+| | ${phy_cores}=${2} | pkt_framesize=${64} | search_type=NDR
-| tc02-64B-1t1c-ethip4vxlan-l2bdbasemaclrn-eth-2vhost-1vm-pdrdisc
+| tc02-64B-2c-ethip4vxlan-l2bdbasemaclrn-eth-2vhost-1vm-pdrdisc
| | [Tags] | 64B | 2C | PDRDISC
-| | ...
-| | [Template] | Discover NDR or PDR for IPv4 forwarding with VHOST/VXLAN and ACL
-| | num_of_threads=2 | rxq=2 | pkt_framesize=${64} | search_type=PDR
+| | ${phy_cores}=${2} | pkt_framesize=${64} | search_type=PDR
-| tc03-150B-1t1c-ethip4vxlan-l2bdbasemaclrn-eth-2vhost-1vm-ndrdisc
+| tc03-150B-2c-ethip4vxlan-l2bdbasemaclrn-eth-2vhost-1vm-ndrdisc
| | [Tags] | 150B | 2C | NDRDISC
-| | ...
-| | [Template] | Discover NDR or PDR for IPv4 forwarding with VHOST/VXLAN and ACL
-| | num_of_threads=2 | rxq=2 | pkt_framesize=${150} | search_type=NDR
+| | ${phy_cores}=${2} | pkt_framesize=${150} | search_type=NDR
-| tc04-150B-1t1c-ethip4vxlan-l2bdbasemaclrn-eth-2vhost-1vm-pdrdisc
+| tc04-150B-2c-ethip4vxlan-l2bdbasemaclrn-eth-2vhost-1vm-pdrdisc
| | [Tags] | 150B | 2C | PDRDISC
-| | ...
-| | [Template] | Discover NDR or PDR for IPv4 forwarding with VHOST/VXLAN and ACL
-| | num_of_threads=2 | rxq=2 | pkt_framesize=${150} | search_type=PDR
+| | ${phy_cores}=${2} | pkt_framesize=${150} | search_type=PDR
-| tc05-200B-1t1c-ethip4vxlan-l2bdbasemaclrn-eth-2vhost-1vm-ndrdisc
+| tc05-200B-2c-ethip4vxlan-l2bdbasemaclrn-eth-2vhost-1vm-ndrdisc
| | [Tags] | 200B | 2C | NDRDISC
-| | ...
-| | [Template] | Discover NDR or PDR for IPv4 forwarding with VHOST/VXLAN and ACL
-| | num_of_threads=2 | rxq=2 | pkt_framesize=${200} | search_type=NDR
+| | ${phy_cores}=${2} | pkt_framesize=${200} | search_type=NDR
-| tc06-200B-1t1c-ethip4vxlan-l2bdbasemaclrn-eth-2vhost-1vm-pdrdisc
+| tc06-200B-2c-ethip4vxlan-l2bdbasemaclrn-eth-2vhost-1vm-pdrdisc
| | [Tags] | 200B | 2C | PDRDISC
-| | ...
-| | [Template] | Discover NDR or PDR for IPv4 forwarding with VHOST/VXLAN and ACL
-| | num_of_threads=2 | rxq=2 | pkt_framesize=${200} | search_type=PDR
+| | ${phy_cores}=${2} | pkt_framesize=${200} | search_type=PDR
-| tc07-IMIX-1t1c-ethip4vxlan-l2bdbasemaclrn-eth-2vhost-1vm-ndrdisc
+| tc07-IMIX-2c-ethip4vxlan-l2bdbasemaclrn-eth-2vhost-1vm-ndrdisc
| | [Tags] | IMIX | 2C | NDRDISC
-| | ...
-| | [Template] | Discover NDR or PDR for IPv4 forwarding with VHOST/VXLAN and ACL
-| | num_of_threads=2 | rxq=2 | pkt_framesize=IMIX_v4_1 | search_type=NDR
+| | ${phy_cores}=${2} | pkt_framesize=IMIX_v4_1 | search_type=NDR
-| tc08-IMIX-1t1c-ethip4vxlan-l2bdbasemaclrn-eth-2vhost-1vm-pdrdisc
+| tc08-IMIX-2c-ethip4vxlan-l2bdbasemaclrn-eth-2vhost-1vm-pdrdisc
| | [Tags] | IMIX | 2C | PDRDISC
-| | ...
-| | [Template] | Discover NDR or PDR for IPv4 forwarding with VHOST/VXLAN and ACL
-| | num_of_threads=2 | rxq=2 | pkt_framesize=IMIX_v4_1 | search_type=PDR
+| | ${phy_cores}=${2} | pkt_framesize=IMIX_v4_1 | search_type=PDR
-| tc09-64B-1t1c-ethip4vxlan-l2bdbasemaclrn-eth-2vhost-1vm-acl-ndrdisc
+| tc09-64B-2c-ethip4vxlan-l2bdbasemaclrn-eth-2vhost-1vm-acl-ndrdisc
| | [Tags] | 64B | 2C | NDRDISC | ACL_PERMIT
-| | ...
-| | [Template] | Discover NDR or PDR for IPv4 forwarding with VHOST/VXLAN and ACL
-| | num_of_threads=2 | rxq=2 | pkt_framesize=${64} | search_type=NDR
+| | ${phy_cores}=${2} | pkt_framesize=${64} | search_type=NDR
| | ... | acl_type=permit
-| tc10-64B-1t1c-ethip4vxlan-l2bdbasemaclrn-eth-2vhost-1vm-acl-pdrdisc
+| tc10-64B-2c-ethip4vxlan-l2bdbasemaclrn-eth-2vhost-1vm-acl-pdrdisc
| | [Tags] | 64B | 2C | PDRDISC | ACL_PERMIT
-| | ...
-| | [Template] | Discover NDR or PDR for IPv4 forwarding with VHOST/VXLAN and ACL
-| | num_of_threads=2 | rxq=2 | pkt_framesize=${64} | search_type=PDR
+| | ${phy_cores}=${2} | pkt_framesize=${64} | search_type=PDR
| | ... | acl_type=permit
-| tc11-150B-1t1c-ethip4vxlan-l2bdbasemaclrn-eth-2vhost-1vm-acl-ndrdisc
+| tc11-150B-2c-ethip4vxlan-l2bdbasemaclrn-eth-2vhost-1vm-acl-ndrdisc
| | [Tags] | 150B | 2C | NDRDISC | ACL_PERMIT
-| | ...
-| | [Template] | Discover NDR or PDR for IPv4 forwarding with VHOST/VXLAN and ACL
-| | num_of_threads=2 | rxq=2 | pkt_framesize=${150} | search_type=NDR
+| | ${phy_cores}=${2} | pkt_framesize=${150} | search_type=NDR
| | ... | acl_type=permit
-| tc12-150B-1t1c-ethip4vxlan-l2bdbasemaclrn-eth-2vhost-1vm-acl-pdrdisc
+| tc12-150B-2c-ethip4vxlan-l2bdbasemaclrn-eth-2vhost-1vm-acl-pdrdisc
| | [Tags] | 150B | 2C | PDRDISC | ACL_PERMIT
-| | ...
-| | [Template] | Discover NDR or PDR for IPv4 forwarding with VHOST/VXLAN and ACL
-| | num_of_threads=2 | rxq=2 | pkt_framesize=${150} | search_type=PDR
+| | ${phy_cores}=${2} | pkt_framesize=${150} | search_type=PDR
| | ... | acl_type=permit
-| tc13-200B-1t1c-ethip4vxlan-l2bdbasemaclrn-eth-2vhost-1vm-acl-ndrdisc
+| tc13-200B-2c-ethip4vxlan-l2bdbasemaclrn-eth-2vhost-1vm-acl-ndrdisc
| | [Tags] | 200B | 2C | NDRDISC | ACL_PERMIT
-| | ...
-| | [Template] | Discover NDR or PDR for IPv4 forwarding with VHOST/VXLAN and ACL
-| | num_of_threads=2 | rxq=2 | pkt_framesize=${200} | search_type=NDR
+| | ${phy_cores}=${2} | pkt_framesize=${200} | search_type=NDR
| | ... | acl_type=permit
-| tc14-200B-1t1c-ethip4vxlan-l2bdbasemaclrn-eth-2vhost-1vm-acl-pdrdisc
+| tc14-200B-2c-ethip4vxlan-l2bdbasemaclrn-eth-2vhost-1vm-acl-pdrdisc
| | [Tags] | 200B | 2C | PDRDISC | ACL_PERMIT
-| | ...
-| | [Template] | Discover NDR or PDR for IPv4 forwarding with VHOST/VXLAN and ACL
-| | num_of_threads=2 | rxq=2 | pkt_framesize=${200} | search_type=PDR
+| | ${phy_cores}=${2} | pkt_framesize=${200} | search_type=PDR
| | ... | acl_type=permit
-| tc15-IMIX-1t1c-ethip4vxlan-l2bdbasemaclrn-eth-2vhost-1vm-acl-ndrdisc
+| tc15-IMIX-2c-ethip4vxlan-l2bdbasemaclrn-eth-2vhost-1vm-acl-ndrdisc
| | [Tags] | IMIX | 2C | NDRDISC | ACL_PERMIT
-| | ...
-| | [Template] | Discover NDR or PDR for IPv4 forwarding with VHOST/VXLAN and ACL
-| | num_of_threads=2 | rxq=2 | pkt_framesize=IMIX_v4_1 | search_type=NDR
+| | ${phy_cores}=${2} | pkt_framesize=IMIX_v4_1 | search_type=NDR
| | ... | acl_type=permit
-| tc16-IMIX-1t1c-ethip4vxlan-l2bdbasemaclrn-eth-2vhost-1vm-acl-pdrdisc
+| tc16-IMIX-2c-ethip4vxlan-l2bdbasemaclrn-eth-2vhost-1vm-acl-pdrdisc
| | [Tags] | IMIX | 2C | PDRDISC | ACL_PERMIT
-| | ...
-| | [Template] | Discover NDR or PDR for IPv4 forwarding with VHOST/VXLAN and ACL
-| | num_of_threads=2 | rxq=2 | pkt_framesize=IMIX_v4_1 | search_type=PDR
+| | ${phy_cores}=${2} | pkt_framesize=IMIX_v4_1 | search_type=PDR
| | ... | acl_type=permit
-| tc17-64B-1t1c-ethip4vxlan-l2bdbasemaclrn-eth-2vhost-1vm-aclreflect-ndrdisc
+| tc17-64B-2c-ethip4vxlan-l2bdbasemaclrn-eth-2vhost-1vm-aclreflect-ndrdisc
| | [Tags] | 64B | 2C | NDRDISC | ACL_PERMIT_REFLECT
-| | ...
-| | [Template] | Discover NDR or PDR for IPv4 forwarding with VHOST/VXLAN and ACL
-| | num_of_threads=2 | rxq=2 | pkt_framesize=${64} | search_type=NDR
+| | ${phy_cores}=${2} | pkt_framesize=${64} | search_type=NDR
| | ... | acl_type=permit+reflect
-| tc18-64B-1t1c-ethip4vxlan-l2bdbasemaclrn-eth-2vhost-1vm-aclreflect-pdrdisc
+| tc18-64B-2c-ethip4vxlan-l2bdbasemaclrn-eth-2vhost-1vm-aclreflect-pdrdisc
| | [Tags] | 64B | 2C | PDRDISC | ACL_PERMIT_REFLECT
-| | ...
-| | [Template] | Discover NDR or PDR for IPv4 forwarding with VHOST/VXLAN and ACL
-| | num_of_threads=2 | rxq=2 | pkt_framesize=${64} | search_type=PDR
+| | ${phy_cores}=${2} | pkt_framesize=${64} | search_type=PDR
| | ... | acl_type=permit+reflect
-| tc19-150B-1t1c-ethip4vxlan-l2bdbasemaclrn-eth-2vhost-1vm-aclreflect-ndrdisc
+| tc19-150B-2c-ethip4vxlan-l2bdbasemaclrn-eth-2vhost-1vm-aclreflect-ndrdisc
| | [Tags] | 150B | 2C | NDRDISC | ACL_PERMIT_REFLECT
-| | ...
-| | [Template] | Discover NDR or PDR for IPv4 forwarding with VHOST/VXLAN and ACL
-| | num_of_threads=2 | rxq=2 | pkt_framesize=${150} | search_type=NDR
+| | ${phy_cores}=${2} | pkt_framesize=${150} | search_type=NDR
| | ... | acl_type=permit+reflect
-| tc20-150B-1t1c-ethip4vxlan-l2bdbasemaclrn-eth-2vhost-1vm-aclreflect-pdrdisc
+| tc20-150B-2c-ethip4vxlan-l2bdbasemaclrn-eth-2vhost-1vm-aclreflect-pdrdisc
| | [Tags] | 150B | 2C | PDRDISC | ACL_PERMIT_REFLECT
-| | ...
-| | [Template] | Discover NDR or PDR for IPv4 forwarding with VHOST/VXLAN and ACL
-| | num_of_threads=2 | rxq=2 | pkt_framesize=${150} | search_type=PDR
+| | ${phy_cores}=${2} | pkt_framesize=${150} | search_type=PDR
| | ... | acl_type=permit+reflect
-| tc21-200B-1t1c-ethip4vxlan-l2bdbasemaclrn-eth-2vhost-1vm-aclreflect-ndrdisc
+| tc21-200B-2c-ethip4vxlan-l2bdbasemaclrn-eth-2vhost-1vm-aclreflect-ndrdisc
| | [Tags] | 200B | 2C | NDRDISC | ACL_PERMIT_REFLECT
-| | ...
-| | [Template] | Discover NDR or PDR for IPv4 forwarding with VHOST/VXLAN and ACL
-| | num_of_threads=2 | rxq=2 | pkt_framesize=${200} | search_type=NDR
+| | ${phy_cores}=${2} | pkt_framesize=${200} | search_type=NDR
| | ... | acl_type=permit+reflect
-| tc22-200B-1t1c-ethip4vxlan-l2bdbasemaclrn-eth-2vhost-1vm-aclreflect-pdrdisc
+| tc22-200B-2c-ethip4vxlan-l2bdbasemaclrn-eth-2vhost-1vm-aclreflect-pdrdisc
| | [Tags] | 200B | 2C | PDRDISC | ACL_PERMIT_REFLECT
-| | ...
-| | [Template] | Discover NDR or PDR for IPv4 forwarding with VHOST/VXLAN and ACL
-| | num_of_threads=2 | rxq=2 | pkt_framesize=${200} | search_type=PDR
+| | ${phy_cores}=${2} | pkt_framesize=${200} | search_type=PDR
| | ... | acl_type=permit+reflect
-| tc23-IMIX-1t1c-ethip4vxlan-l2bdbasemaclrn-eth-2vhost-1vm-aclreflect-ndrdisc
+| tc23-IMIX-2c-ethip4vxlan-l2bdbasemaclrn-eth-2vhost-1vm-aclreflect-ndrdisc
| | [Tags] | IMIX | 2C | NDRDISC | ACL_PERMIT_REFLECT
-| | ...
-| | [Template] | Discover NDR or PDR for IPv4 forwarding with VHOST/VXLAN and ACL
-| | num_of_threads=2 | rxq=2 | pkt_framesize=IMIX_v4_1 | search_type=NDR
+| | ${phy_cores}=${2} | pkt_framesize=IMIX_v4_1 | search_type=NDR
| | ... | acl_type=permit+reflect
-| tc24-IMIX-1t1c-ethip4vxlan-l2bdbasemaclrn-eth-2vhost-1vm-aclreflect-pdrdisc
+| tc24-IMIX-2c-ethip4vxlan-l2bdbasemaclrn-eth-2vhost-1vm-aclreflect-pdrdisc
| | [Tags] | IMIX | 2C | PDRDISC | ACL_PERMIT_REFLECT
-| | ...
-| | [Template] | Discover NDR or PDR for IPv4 forwarding with VHOST/VXLAN and ACL
-| | num_of_threads=2 | rxq=2 | pkt_framesize=IMIX_v4_1 | search_type=PDR
+| | ${phy_cores}=${2} | pkt_framesize=IMIX_v4_1 | search_type=PDR
| | ... | acl_type=permit+reflect