aboutsummaryrefslogtreecommitdiffstats
path: root/tests/vpp/perf/container_memif
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 /tests/vpp/perf/container_memif
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>
Diffstat (limited to 'tests/vpp/perf/container_memif')
-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
15 files changed, 477 insertions, 1746 deletions
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}