aboutsummaryrefslogtreecommitdiffstats
path: root/tests/vpp/perf/ip4
diff options
context:
space:
mode:
Diffstat (limited to 'tests/vpp/perf/ip4')
-rw-r--r--tests/vpp/perf/ip4/10ge2p1x520-ethip4-ip4base-copwhtlistbase-ndrchk.robot207
-rw-r--r--tests/vpp/perf/ip4/10ge2p1x520-ethip4-ip4base-copwhtlistbase-ndrpdrdisc.robot482
-rw-r--r--tests/vpp/perf/ip4/10ge2p1x520-ethip4-ip4base-iacldstbase-ndrchk.robot253
-rw-r--r--tests/vpp/perf/ip4/10ge2p1x520-ethip4-ip4base-iacldstbase-ndrpdrdisc.robot585
-rw-r--r--tests/vpp/perf/ip4/10ge2p1x520-ethip4-ip4base-ipolicemarkbase-ndrchk.robot163
-rw-r--r--tests/vpp/perf/ip4/10ge2p1x520-ethip4-ip4base-ipolicemarkbase-ndrpdrdisc.robot401
-rw-r--r--tests/vpp/perf/ip4/10ge2p1x520-ethip4-ip4base-ndrchk.robot138
-rw-r--r--tests/vpp/perf/ip4/10ge2p1x520-ethip4-ip4base-ndrpdrdisc.robot392
-rw-r--r--tests/vpp/perf/ip4/10ge2p1x520-ethip4-ip4base-pdrchk.robot27
9 files changed, 577 insertions, 2071 deletions
diff --git a/tests/vpp/perf/ip4/10ge2p1x520-ethip4-ip4base-copwhtlistbase-ndrchk.robot b/tests/vpp/perf/ip4/10ge2p1x520-ethip4-ip4base-copwhtlistbase-ndrchk.robot
index b92c436e42..68ce215a9b 100644
--- a/tests/vpp/perf/ip4/10ge2p1x520-ethip4-ip4base-copwhtlistbase-ndrchk.robot
+++ b/tests/vpp/perf/ip4/10ge2p1x520-ethip4-ip4base-copwhtlistbase-ndrchk.robot
@@ -14,10 +14,6 @@
*** Settings ***
| Resource | resources/libraries/robot/performance/performance_setup.robot
| Library | resources.libraries.python.Cop
-| Library | resources.libraries.python.IPv4Setup.Dut | ${nodes['DUT1']}
-| ... | WITH NAME | dut1_v4
-| Library | resources.libraries.python.IPv4Setup.Dut | ${nodes['DUT2']}
-| ... | WITH NAME | dut2_v4
| ...
| Force Tags | 3_NODE_SINGLE_LINK_TOPO | PERFTEST | HW_ENV | NDRCHK
| ... | NIC_Intel-X520-DA2 | ETH | IP4FWD | FEATURE | COPWHLIST
@@ -54,21 +50,27 @@
# Traffic profile:
| ${traffic_profile} | trex-sl-3n-ethip4-ip4src253
-*** Test Cases ***
-| tc01-64B-1t1c-ethip4-ip4base-copwhtlistbase-ndrchk
+*** Keywords ***
+| Check NDR for ethip4-ip4base-copwhtlistbase
| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 routing and whitelist filters config with \
-| | ... | 1 thread, 1 phy core, 1 receive queue per NIC port. [Ver] Verify
-| | ... | ref-NDR for 64 Byte frames using single trial throughput test
-| | ... | at 2x 4.0mpps.
-| | [Tags] | 64B | 1T1C | STHREAD
-| | ${framesize}= | Set Variable | ${64}
-| | ${rate}= | Set Variable | 4.0mpps
-| | Given Add '1' worker threads and '1' rxqueues in 3-node single-link circular topology
+| | ... | [Cfg] DUT runs IPv4 routing config with ${wt} thread(s), ${wt}\
+| | ... | phy core(s), ${rxq} receive queue(s) per NIC port.
+| | ... | [Ver] Verify ref-NDR for ${framesize} frames using single trial\
+| | ... | throughput test at 2x ${rate}.
+| | ...
+| | [Arguments] | ${framesize} | ${rate} | ${wt} | ${rxq}
+| | ...
+| | # Test Variables required for test teardown
+| | Set Test Variable | ${framesize}
+| | Set Test Variable | ${rate}
+| | ${get_framesize}= | Get Frame Size | ${framesize}
+| | ...
+| | Given Add '${wt}' worker threads and '${rxq}' rxqueues in 3-node single-link circular topology
| | And Add PCI devices to DUTs in 3-node single link topology
-| | And Add no multi seg 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
-| | When Initialize IPv4 forwarding in 3-node circular topology
+| | And Initialize IPv4 forwarding in 3-node circular topology
| | And Add Fib Table | ${dut1} | 1
| | And Vpp Route Add | ${dut1} | 10.10.10.0 | 24 | vrf=1 | local=${TRUE}
| | And Add Fib Table | ${dut2} | 1
@@ -77,8 +79,20 @@
| | And COP Add whitelist Entry | ${dut2} | ${dut2_if2} | ip4 | 1
| | And COP interface enable or disable | ${dut1} | ${dut1_if1} | enable
| | And COP interface enable or disable | ${dut2} | ${dut2_if2} | enable
-| | Then Traffic should pass with no loss | ${perf_trial_duration} | ${rate}
-| | ... | ${framesize} | ${traffic_profile}
+| | Then Traffic should pass with no loss | ${perf_trial_duration}
+| | ... | ${rate} | ${framesize} | ${traffic_profile}
+
+*** Test Cases ***
+| tc01-64B-1t1c-ethip4-ip4base-copwhtlistbase-ndrchk
+| | [Documentation]
+| | ... | [Cfg] DUT runs IPv4 routing and whitelist filters config with \
+| | ... | 1 thread, 1 phy core, 1 receive queue per NIC port. [Ver] Verify
+| | ... | ref-NDR for 64 Byte frames using single trial throughput test
+| | ... | at 2x 4.0mpps.
+| | [Tags] | 64B | 1T1C | STHREAD
+| | ...
+| | [Template] | Check NDR for ethip4-ip4base-copwhtlistbase
+| | framesize=${64} | rate=4.0mpps | wt=1 | rxq=1
| tc02-1518B-1t1c-ethip4-ip4base-copwhtlistbase-ndrchk
| | [Documentation]
@@ -87,23 +101,9 @@
| | ... | ref-NDR for 1518 Byte frames using single trial throughput test
| | ... | at 2x 812743pps.
| | [Tags] | 1518B | 1T1C | STHREAD
-| | ${framesize}= | Set Variable | ${1518}
-| | ${rate}= | Set Variable | 812743pps
-| | Given Add '1' worker threads and '1' rxqueues in 3-node single-link circular topology
-| | And Add PCI devices to DUTs in 3-node single link topology
-| | And Add no multi seg to all DUTs
-| | And Apply startup configuration on all VPP DUTs
-| | When Initialize IPv4 forwarding in 3-node circular topology
-| | And Add Fib Table | ${dut1} | 1
-| | And Vpp Route Add | ${dut1} | 10.10.10.0 | 24 | vrf=1 | local=${TRUE}
-| | And Add Fib Table | ${dut2} | 1
-| | And Vpp Route Add | ${dut2} | 20.20.20.0 | 24 | vrf=1 | local=${TRUE}
-| | And COP Add whitelist Entry | ${dut1} | ${dut1_if1} | ip4 | 1
-| | And COP Add whitelist Entry | ${dut2} | ${dut2_if2} | ip4 | 1
-| | And COP interface enable or disable | ${dut1} | ${dut1_if1} | enable
-| | And COP interface enable or disable | ${dut2} | ${dut2_if2} | enable
-| | Then Traffic should pass with no loss | ${perf_trial_duration} | ${rate}
-| | ... | ${framesize} | ${traffic_profile}
+| | ...
+| | [Template] | Check NDR for ethip4-ip4base-copwhtlistbase
+| | framesize=${1518} | rate=812743pps | wt=1 | rxq=1
| tc03-9000B-1t1c-ethip4-ip4base-copwhtlistbase-ndrchk
| | [Documentation]
@@ -112,22 +112,9 @@
| | ... | ref-NDR for 9000 Byte frames using single trial throughput test
| | ... | at 2x 138580pps.
| | [Tags] | 9000B | 1T1C | STHREAD
-| | ${framesize}= | Set Variable | ${9000}
-| | ${rate}= | Set Variable | 138580pps
-| | Given Add '1' worker threads and '1' rxqueues in 3-node single-link circular topology
-| | And Add PCI devices to DUTs in 3-node single link topology
-| | And Apply startup configuration on all VPP DUTs
-| | When Initialize IPv4 forwarding in 3-node circular topology
-| | And Add Fib Table | ${dut1} | 1
-| | And Vpp Route Add | ${dut1} | 10.10.10.0 | 24 | vrf=1 | local=${TRUE}
-| | And Add Fib Table | ${dut2} | 1
-| | And Vpp Route Add | ${dut2} | 20.20.20.0 | 24 | vrf=1 | local=${TRUE}
-| | And COP Add whitelist Entry | ${dut1} | ${dut1_if1} | ip4 | 1
-| | And COP Add whitelist Entry | ${dut2} | ${dut2_if2} | ip4 | 1
-| | And COP interface enable or disable | ${dut1} | ${dut1_if1} | enable
-| | And COP interface enable or disable | ${dut2} | ${dut2_if2} | enable
-| | Then Traffic should pass with no loss | ${perf_trial_duration} | ${rate}
-| | ... | ${framesize} | ${traffic_profile}
+| | ...
+| | [Template] | Check NDR for ethip4-ip4base-copwhtlistbase
+| | framesize=${9000} | rate=138580pps | wt=1 | rxq=1
| tc04-64B-2t2c-ethip4-ip4base-copwhtlistbase-ndrchk
| | [Documentation]
@@ -136,23 +123,9 @@
| | ... | ref-NDR for 64 Byte frames using single trial throughput test
| | ... | at 2x 7.2mpps.
| | [Tags] | 64B | 2T2C | MTHREAD
-| | ${framesize}= | Set Variable | ${64}
-| | ${rate}= | Set Variable | 7.2mpps
-| | Given Add '2' worker threads and '1' rxqueues in 3-node single-link circular topology
-| | And Add PCI devices to DUTs in 3-node single link topology
-| | And Add no multi seg to all DUTs
-| | And Apply startup configuration on all VPP DUTs
-| | When Initialize IPv4 forwarding in 3-node circular topology
-| | And Add Fib Table | ${dut1} | 1
-| | And Vpp Route Add | ${dut1} | 10.10.10.0 | 24 | vrf=1 | local=${TRUE}
-| | And Add Fib Table | ${dut2} | 1
-| | And Vpp Route Add | ${dut2} | 20.20.20.0 | 24 | vrf=1 | local=${TRUE}
-| | And COP Add whitelist Entry | ${dut1} | ${dut1_if1} | ip4 | 1
-| | And COP Add whitelist Entry | ${dut2} | ${dut2_if2} | ip4 | 1
-| | And COP interface enable or disable | ${dut1} | ${dut1_if1} | enable
-| | And COP interface enable or disable | ${dut2} | ${dut2_if2} | enable
-| | Then Traffic should pass with no loss | ${perf_trial_duration} | ${rate}
-| | ... | ${framesize} | ${traffic_profile}
+| | ...
+| | [Template] | Check NDR for ethip4-ip4base-copwhtlistbase
+| | framesize=${64} | rate=7.2mpps | wt=2 | rxq=1
| tc05-1518B-2t2c-ethip4-ip4base-copwhtlistbase-ndrchk
| | [Documentation]
@@ -161,23 +134,9 @@
| | ... | ref-NDR for 1518 Byte frames using single trial throughput test
| | ... | at 2x 812743pps.
| | [Tags] | 1518B | 2T2C | MTHREAD
-| | ${framesize}= | Set Variable | ${1518}
-| | ${rate}= | Set Variable | 812743pps
-| | Given Add '2' worker threads and '1' rxqueues in 3-node single-link circular topology
-| | And Add PCI devices to DUTs in 3-node single link topology
-| | And Add no multi seg to all DUTs
-| | And Apply startup configuration on all VPP DUTs
-| | When Initialize IPv4 forwarding in 3-node circular topology
-| | And Add Fib Table | ${dut1} | 1
-| | And Vpp Route Add | ${dut1} | 10.10.10.0 | 24 | vrf=1 | local=${TRUE}
-| | And Add Fib Table | ${dut2} | 1
-| | And Vpp Route Add | ${dut2} | 20.20.20.0 | 24 | vrf=1 | local=${TRUE}
-| | And COP Add whitelist Entry | ${dut1} | ${dut1_if1} | ip4 | 1
-| | And COP Add whitelist Entry | ${dut2} | ${dut2_if2} | ip4 | 1
-| | And COP interface enable or disable | ${dut1} | ${dut1_if1} | enable
-| | And COP interface enable or disable | ${dut2} | ${dut2_if2} | enable
-| | Then Traffic should pass with no loss | ${perf_trial_duration} | ${rate}
-| | ... | ${framesize} | ${traffic_profile}
+| | ...
+| | [Template] | Check NDR for ethip4-ip4base-copwhtlistbase
+| | framesize=${1518} | rate=812743pps | wt=2 | rxq=1
| tc06-9000B-2t2c-ethip4-ip4base-copwhtlistbase-ndrchk
| | [Documentation]
@@ -186,22 +145,9 @@
| | ... | ref-NDR for 9000 Byte frames using single trial throughput test
| | ... | at 2x 138580pps.
| | [Tags] | 9000B | 2T2C | MTHREAD
-| | ${framesize}= | Set Variable | ${9000}
-| | ${rate}= | Set Variable | 138580pps
-| | Given Add '2' worker threads and '1' rxqueues in 3-node single-link circular topology
-| | And Add PCI devices to DUTs in 3-node single link topology
-| | And Apply startup configuration on all VPP DUTs
-| | When Initialize IPv4 forwarding in 3-node circular topology
-| | And Add Fib Table | ${dut1} | 1
-| | And Vpp Route Add | ${dut1} | 10.10.10.0 | 24 | vrf=1 | local=${TRUE}
-| | And Add Fib Table | ${dut2} | 1
-| | And Vpp Route Add | ${dut2} | 20.20.20.0 | 24 | vrf=1 | local=${TRUE}
-| | And COP Add whitelist Entry | ${dut1} | ${dut1_if1} | ip4 | 1
-| | And COP Add whitelist Entry | ${dut2} | ${dut2_if2} | ip4 | 1
-| | And COP interface enable or disable | ${dut1} | ${dut1_if1} | enable
-| | And COP interface enable or disable | ${dut2} | ${dut2_if2} | enable
-| | Then Traffic should pass with no loss | ${perf_trial_duration} | ${rate}
-| | ... | ${framesize} | ${traffic_profile}
+| | ...
+| | [Template] | Check NDR for ethip4-ip4base-copwhtlistbase
+| | framesize=${9000} | rate=138580pps | wt=2 | rxq=1
| tc07-64B-4t4c-ethip4-ip4base-copwhtlistbase-ndrchk
| | [Documentation]
@@ -210,23 +156,9 @@
| | ... | ref-NDR for 64 Byte frames using single trial throughput test
| | ... | at 2x 10.4mpps.
| | [Tags] | 64B | 4T4C | MTHREAD
-| | ${framesize}= | Set Variable | ${64}
-| | ${rate}= | Set Variable | 10.4mpps
-| | Given Add '4' worker threads and '2' rxqueues in 3-node single-link circular topology
-| | And Add PCI devices to DUTs in 3-node single link topology
-| | And Add no multi seg to all DUTs
-| | And Apply startup configuration on all VPP DUTs
-| | When Initialize IPv4 forwarding in 3-node circular topology
-| | And Add Fib Table | ${dut1} | 1
-| | And Vpp Route Add | ${dut1} | 10.10.10.0 | 24 | vrf=1 | local=${TRUE}
-| | And Add Fib Table | ${dut2} | 1
-| | And Vpp Route Add | ${dut2} | 20.20.20.0 | 24 | vrf=1 | local=${TRUE}
-| | And COP Add whitelist Entry | ${dut1} | ${dut1_if1} | ip4 | 1
-| | And COP Add whitelist Entry | ${dut2} | ${dut2_if2} | ip4 | 1
-| | And COP interface enable or disable | ${dut1} | ${dut1_if1} | enable
-| | And COP interface enable or disable | ${dut2} | ${dut2_if2} | enable
-| | Then Traffic should pass with no loss | ${perf_trial_duration} | ${rate}
-| | ... | ${framesize} | ${traffic_profile}
+| | ...
+| | [Template] | Check NDR for ethip4-ip4base-copwhtlistbase
+| | framesize=${64} | rate=10.4mpps | wt=4 | rxq=2
| tc08-1518B-4t4c-ethip4-ip4base-copwhtlistbase-ndrchk
| | [Documentation]
@@ -235,23 +167,9 @@
| | ... | ref-NDR for 1518 Byte frames using single trial throughput test
| | ... | at 2x 812743pps.
| | [Tags] | 1518B | 4T4C | MTHREAD
-| | ${framesize}= | Set Variable | ${1518}
-| | ${rate}= | Set Variable | 812743pps
-| | Given Add '4' worker threads and '2' rxqueues in 3-node single-link circular topology
-| | And Add PCI devices to DUTs in 3-node single link topology
-| | And Add no multi seg to all DUTs
-| | And Apply startup configuration on all VPP DUTs
-| | When Initialize IPv4 forwarding in 3-node circular topology
-| | And Add Fib Table | ${dut1} | 1
-| | And Vpp Route Add | ${dut1} | 10.10.10.0 | 24 | vrf=1 | local=${TRUE}
-| | And Add Fib Table | ${dut2} | 1
-| | And Vpp Route Add | ${dut2} | 20.20.20.0 | 24 | vrf=1 | local=${TRUE}
-| | And COP Add whitelist Entry | ${dut1} | ${dut1_if1} | ip4 | 1
-| | And COP Add whitelist Entry | ${dut2} | ${dut2_if2} | ip4 | 1
-| | And COP interface enable or disable | ${dut1} | ${dut1_if1} | enable
-| | And COP interface enable or disable | ${dut2} | ${dut2_if2} | enable
-| | Then Traffic should pass with no loss | ${perf_trial_duration} | ${rate}
-| | ... | ${framesize} | ${traffic_profile}
+| | ...
+| | [Template] | Check NDR for ethip4-ip4base-copwhtlistbase
+| | framesize=${1518} | rate=812743pps | wt=4 | rxq=2
| tc09-9000B-4t4c-ethip4-ip4base-copwhtlistbase-ndrchk
| | [Documentation]
@@ -260,19 +178,6 @@
| | ... | ref-NDR for 9000 Byte frames using single trial throughput test
| | ... | at 2x 138580pps.
| | [Tags] | 9000B | 4T4C | MTHREAD
-| | ${framesize}= | Set Variable | ${9000}
-| | ${rate}= | Set Variable | 138580pps
-| | Given Add '4' worker threads and '2' rxqueues in 3-node single-link circular topology
-| | And Add PCI devices to DUTs in 3-node single link topology
-| | And Apply startup configuration on all VPP DUTs
-| | When Initialize IPv4 forwarding in 3-node circular topology
-| | And Add Fib Table | ${dut1} | 1
-| | And Vpp Route Add | ${dut1} | 10.10.10.0 | 24 | vrf=1 | local=${TRUE}
-| | And Add Fib Table | ${dut2} | 1
-| | And Vpp Route Add | ${dut2} | 20.20.20.0 | 24 | vrf=1 | local=${TRUE}
-| | And COP Add whitelist Entry | ${dut1} | ${dut1_if1} | ip4 | 1
-| | And COP Add whitelist Entry | ${dut2} | ${dut2_if2} | ip4 | 1
-| | And COP interface enable or disable | ${dut1} | ${dut1_if1} | enable
-| | And COP interface enable or disable | ${dut2} | ${dut2_if2} | enable
-| | Then Traffic should pass with no loss | ${perf_trial_duration} | ${rate}
-| | ... | ${framesize} | ${traffic_profile}
+| | ...
+| | [Template] | Check NDR for ethip4-ip4base-copwhtlistbase
+| | framesize=${9000} | rate=138580pps | wt=4 | rxq=2
diff --git a/tests/vpp/perf/ip4/10ge2p1x520-ethip4-ip4base-copwhtlistbase-ndrpdrdisc.robot b/tests/vpp/perf/ip4/10ge2p1x520-ethip4-ip4base-copwhtlistbase-ndrpdrdisc.robot
index 5b5e7abedb..7f72008ab3 100644
--- a/tests/vpp/perf/ip4/10ge2p1x520-ethip4-ip4base-copwhtlistbase-ndrpdrdisc.robot
+++ b/tests/vpp/perf/ip4/10ge2p1x520-ethip4-ip4base-copwhtlistbase-ndrpdrdisc.robot
@@ -14,10 +14,6 @@
*** Settings ***
| Resource | resources/libraries/robot/performance/performance_setup.robot
| Library | resources.libraries.python.Cop
-| Library | resources.libraries.python.IPv4Setup.Dut | ${nodes['DUT1']}
-| ... | WITH NAME | dut1_v4
-| Library | resources.libraries.python.IPv4Setup.Dut | ${nodes['DUT2']}
-| ... | WITH NAME | dut2_v4
| ...
| Force Tags | 3_NODE_SINGLE_LINK_TOPO | PERFTEST | HW_ENV | NDRPDRDISC
| ... | NIC_Intel-X520-DA2 | ETH | IP4FWD | FEATURE | COPWHLIST
@@ -60,23 +56,27 @@
# Traffic profile:
| ${traffic_profile} | trex-sl-3n-ethip4-ip4src253
-*** Test Cases ***
-| tc01-64B-1t1c-ethip4-ip4base-copwhtlistbase-ndrdisc
+*** Keywords ***
+| Discover NDR or PDR for ethip4-ip4base-copwhtlistbase
| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 routing and whitelist filters config with \
-| | ... | 1 thread, 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 | 1T1C | STHREAD | NDRDISC
-| | ${framesize}= | Set Variable | ${64}
-| | ${min_rate}= | Set Variable | ${50000}
-| | ${max_rate}= | Calculate pps | ${s_limit} | ${framesize}
+| | ... | [Cfg] DUT runs IPv4 routing config with ${wt} thread(s), ${wt}\
+| | ... | phy core(s), ${rxq} receive queue(s) per NIC port.
+| | ... | [Ver] Find NDR or PDR for ${framesize} frames using binary search\
+| | ... | start at 10GE linerate.
+| | ...
+| | [Arguments] | ${wt} | ${rxq} | ${framesize} | ${min_rate} | ${search_type}
+| | ...
+| | Set Test Variable | ${framesize}
+| | Set Test Variable | ${min_rate}
+| | ${get_framesize}= | Get Frame Size | ${framesize}
+| | ${max_rate}= | Calculate pps | ${s_limit} | ${get_framesize}
| | ${binary_min}= | Set Variable | ${min_rate}
| | ${binary_max}= | Set Variable | ${max_rate}
| | ${threshold}= | Set Variable | ${min_rate}
-| | Given Add '1' worker threads and '1' rxqueues in 3-node single-link circular topology
+| | Given Add '${wt}' worker threads and '${rxq}' rxqueues in 3-node single-link circular topology
| | And Add PCI devices to DUTs in 3-node single link topology
-| | And Add no multi seg 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
| | When Initialize IPv4 forwarding in 3-node circular topology
| | And Add Fib Table | ${dut1} | 1
@@ -87,9 +87,27 @@
| | And COP Add whitelist Entry | ${dut2} | ${dut2_if2} | ip4 | 1
| | And COP interface enable or disable | ${dut1} | ${dut1_if1} | enable
| | And COP interface enable or disable | ${dut2} | ${dut2_if2} | enable
-| | Then Find NDR using binary search and pps | ${framesize} | ${binary_min}
-| | ... | ${binary_max} | ${traffic_profile}
+| | Then Run Keyword If | '${search_type}' == 'NDR'
+| | ... | Find NDR using binary search and pps
+| | ... | ${framesize} | ${binary_min} | ${binary_max} | ${traffic_profile}
| | ... | ${min_rate} | ${max_rate} | ${threshold}
+| | ... | ELSE IF | '${search_type}' == 'PDR'
+| | ... | Find PDR using binary search and pps
+| | ... | ${framesize} | ${binary_min} | ${binary_max} | ${traffic_profile}
+| | ... | ${min_rate} | ${max_rate} | ${threshold}
+| | ... | ${perf_pdr_loss_acceptance} | ${perf_pdr_loss_acceptance_type}
+
+*** Test Cases ***
+| tc01-64B-1t1c-ethip4-ip4base-copwhtlistbase-ndrdisc
+| | [Documentation]
+| | ... | [Cfg] DUT runs IPv4 routing and whitelist filters config with \
+| | ... | 1 thread, 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 | 1T1C | STHREAD | NDRDISC
+| | ...
+| | [Template] | Discover NDR or PDR for ethip4-ip4base-copwhtlistbase
+| | wt=1 | rxq=1 | framesize=${64} | min_rate=${50000} | search_type=NDR
| tc02-64B-1t1c-ethip4-ip4base-copwhtlistbase-pdrdisc
| | [Documentation]
@@ -98,29 +116,9 @@
| | ... | for 64 Byte frames using binary search start at 10GE linerate,
| | ... | step 50kpps, LT=0.5%.
| | [Tags] | 64B | 1T1C | STHREAD | PDRDISC | SKIP_PATCH
-| | ${framesize}= | Set Variable | ${64}
-| | ${min_rate}= | Set Variable | ${50000}
-| | ${max_rate}= | Calculate pps | ${s_limit} | ${framesize}
-| | ${binary_min}= | Set Variable | ${min_rate}
-| | ${binary_max}= | Set Variable | ${max_rate}
-| | ${threshold}= | Set Variable | ${min_rate}
-| | Given Add '1' worker threads and '1' rxqueues in 3-node single-link circular topology
-| | And Add PCI devices to DUTs in 3-node single link topology
-| | And Add no multi seg to all DUTs
-| | And Apply startup configuration on all VPP DUTs
-| | When Initialize IPv4 forwarding in 3-node circular topology
-| | And Add Fib Table | ${dut1} | 1
-| | And Vpp Route Add | ${dut1} | 10.10.10.0 | 24 | vrf=1 | local=${TRUE}
-| | And Add Fib Table | ${dut2} | 1
-| | And Vpp Route Add | ${dut2} | 20.20.20.0 | 24 | vrf=1 | local=${TRUE}
-| | And COP Add whitelist Entry | ${dut1} | ${dut1_if1} | ip4 | 1
-| | And COP Add whitelist Entry | ${dut2} | ${dut2_if2} | ip4 | 1
-| | And COP interface enable or disable | ${dut1} | ${dut1_if1} | enable
-| | And COP interface enable or disable | ${dut2} | ${dut2_if2} | enable
-| | Then Find PDR using binary search and pps | ${framesize} | ${binary_min}
-| | ... | ${binary_max} | ${traffic_profile}
-| | ... | ${min_rate} | ${max_rate} | ${threshold}
-| | ... | ${perf_pdr_loss_acceptance} | ${perf_pdr_loss_acceptance_type}
+| | ...
+| | [Template] | Discover NDR or PDR for ethip4-ip4base-copwhtlistbase
+| | wt=1 | rxq=1 | framesize=${64} | min_rate=${50000} | search_type=PDR
| tc03-1518B-1t1c-ethip4-ip4base-copwhtlistbase-ndrdisc
| | [Documentation]
@@ -129,28 +127,9 @@
| | ... | for 1518 Byte frames using binary search start at 10GE linerate,
| | ... | step 50kpps.
| | [Tags] | 1518B | 1T1C | STHREAD | NDRDISC
-| | ${framesize}= | Set Variable | ${1518}
-| | ${min_rate}= | Set Variable | ${50000}
-| | ${max_rate}= | Calculate pps | ${s_limit} | ${framesize}
-| | ${binary_min}= | Set Variable | ${min_rate}
-| | ${binary_max}= | Set Variable | ${max_rate}
-| | ${threshold}= | Set Variable | ${min_rate}
-| | Given Add '1' worker threads and '1' rxqueues in 3-node single-link circular topology
-| | And Add PCI devices to DUTs in 3-node single link topology
-| | And Add no multi seg to all DUTs
-| | And Apply startup configuration on all VPP DUTs
-| | When Initialize IPv4 forwarding in 3-node circular topology
-| | And Add Fib Table | ${dut1} | 1
-| | And Vpp Route Add | ${dut1} | 10.10.10.0 | 24 | vrf=1 | local=${TRUE}
-| | And Add Fib Table | ${dut2} | 1
-| | And Vpp Route Add | ${dut2} | 20.20.20.0 | 24 | vrf=1 | local=${TRUE}
-| | And COP Add whitelist Entry | ${dut1} | ${dut1_if1} | ip4 | 1
-| | And COP Add whitelist Entry | ${dut2} | ${dut2_if2} | ip4 | 1
-| | And COP interface enable or disable | ${dut1} | ${dut1_if1} | enable
-| | And COP interface enable or disable | ${dut2} | ${dut2_if2} | enable
-| | Then Find NDR using binary search and pps | ${framesize} | ${binary_min}
-| | ... | ${binary_max} | ${traffic_profile}
-| | ... | ${min_rate} | ${max_rate} | ${threshold}
+| | ...
+| | [Template] | Discover NDR or PDR for ethip4-ip4base-copwhtlistbase
+| | wt=1 | rxq=1 | framesize=${1518} | min_rate=${50000} | search_type=NDR
| tc04-1518B-1t1c-ethip4-ip4base-copwhtlistbase-pdrdisc
| | [Documentation]
@@ -159,29 +138,9 @@
| | ... | for 1518 Byte frames using binary search start at 10GE linerate,
| | ... | step 50kpps, LT=0.5%.
| | [Tags] | 1518B | 1T1C | STHREAD | PDRDISC | SKIP_PATCH
-| | ${framesize}= | Set Variable | ${1518}
-| | ${min_rate}= | Set Variable | ${50000}
-| | ${max_rate}= | Calculate pps | ${s_limit} | ${framesize}
-| | ${binary_min}= | Set Variable | ${min_rate}
-| | ${binary_max}= | Set Variable | ${max_rate}
-| | ${threshold}= | Set Variable | ${min_rate}
-| | Given Add '1' worker threads and '1' rxqueues in 3-node single-link circular topology
-| | And Add PCI devices to DUTs in 3-node single link topology
-| | And Add no multi seg to all DUTs
-| | And Apply startup configuration on all VPP DUTs
-| | When Initialize IPv4 forwarding in 3-node circular topology
-| | And Add Fib Table | ${dut1} | 1
-| | And Vpp Route Add | ${dut1} | 10.10.10.0 | 24 | vrf=1 | local=${TRUE}
-| | And Add Fib Table | ${dut2} | 1
-| | And Vpp Route Add | ${dut2} | 20.20.20.0 | 24 | vrf=1 | local=${TRUE}
-| | And COP Add whitelist Entry | ${dut1} | ${dut1_if1} | ip4 | 1
-| | And COP Add whitelist Entry | ${dut2} | ${dut2_if2} | ip4 | 1
-| | And COP interface enable or disable | ${dut1} | ${dut1_if1} | enable
-| | And COP interface enable or disable | ${dut2} | ${dut2_if2} | enable
-| | Then Find PDR using binary search and pps | ${framesize} | ${binary_min}
-| | ... | ${binary_max} | ${traffic_profile}
-| | ... | ${min_rate} | ${max_rate} | ${threshold}
-| | ... | ${perf_pdr_loss_acceptance} | ${perf_pdr_loss_acceptance_type}
+| | ...
+| | [Template] | Discover NDR or PDR for ethip4-ip4base-copwhtlistbase
+| | wt=1 | rxq=1 | framesize=${1518} | min_rate=${50000} | search_type=PDR
| tc05-9000B-1t1c-ethip4-ip4base-copwhtlistbase-ndrdisc
| | [Documentation]
@@ -190,27 +149,9 @@
| | ... | for 9000 Byte frames using binary search start at 10GE linerate,
| | ... | step 10kpps.
| | [Tags] | 9000B | 1T1C | STHREAD | NDRDISC
-| | ${framesize}= | Set Variable | ${9000}
-| | ${min_rate}= | Set Variable | ${10000}
-| | ${max_rate}= | Calculate pps | ${s_limit} | ${framesize}
-| | ${binary_min}= | Set Variable | ${min_rate}
-| | ${binary_max}= | Set Variable | ${max_rate}
-| | ${threshold}= | Set Variable | ${min_rate}
-| | Given Add '1' worker threads and '1' rxqueues in 3-node single-link circular topology
-| | And Add PCI devices to DUTs in 3-node single link topology
-| | And Apply startup configuration on all VPP DUTs
-| | When Initialize IPv4 forwarding in 3-node circular topology
-| | And Add Fib Table | ${dut1} | 1
-| | And Vpp Route Add | ${dut1} | 10.10.10.0 | 24 | vrf=1 | local=${TRUE}
-| | And Add Fib Table | ${dut2} | 1
-| | And Vpp Route Add | ${dut2} | 20.20.20.0 | 24 | vrf=1 | local=${TRUE}
-| | And COP Add whitelist Entry | ${dut1} | ${dut1_if1} | ip4 | 1
-| | And COP Add whitelist Entry | ${dut2} | ${dut2_if2} | ip4 | 1
-| | And COP interface enable or disable | ${dut1} | ${dut1_if1} | enable
-| | And COP interface enable or disable | ${dut2} | ${dut2_if2} | enable
-| | Then Find NDR using binary search and pps | ${framesize} | ${binary_min}
-| | ... | ${binary_max} | ${traffic_profile}
-| | ... | ${min_rate} | ${max_rate} | ${threshold}
+| | ...
+| | [Template] | Discover NDR or PDR for ethip4-ip4base-copwhtlistbase
+| | wt=1 | rxq=1 | framesize=${9000} | min_rate=${10000} | search_type=NDR
| tc06-9000B-1t1c-ethip4-ip4base-copwhtlistbase-pdrdisc
| | [Documentation]
@@ -219,28 +160,9 @@
| | ... | for 9000 Byte frames using binary search start at 10GE linerate,
| | ... | step 10kpps, LT=0.5%.
| | [Tags] | 9000B | 1T1C | STHREAD | PDRDISC | SKIP_PATCH
-| | ${framesize}= | Set Variable | ${9000}
-| | ${min_rate}= | Set Variable | ${10000}
-| | ${max_rate}= | Calculate pps | ${s_limit} | ${framesize}
-| | ${binary_min}= | Set Variable | ${min_rate}
-| | ${binary_max}= | Set Variable | ${max_rate}
-| | ${threshold}= | Set Variable | ${min_rate}
-| | Given Add '1' worker threads and '1' rxqueues in 3-node single-link circular topology
-| | And Add PCI devices to DUTs in 3-node single link topology
-| | And Apply startup configuration on all VPP DUTs
-| | When Initialize IPv4 forwarding in 3-node circular topology
-| | And Add Fib Table | ${dut1} | 1
-| | And Vpp Route Add | ${dut1} | 10.10.10.0 | 24 | vrf=1 | local=${TRUE}
-| | And Add Fib Table | ${dut2} | 1
-| | And Vpp Route Add | ${dut2} | 20.20.20.0 | 24 | vrf=1 | local=${TRUE}
-| | And COP Add whitelist Entry | ${dut1} | ${dut1_if1} | ip4 | 1
-| | And COP Add whitelist Entry | ${dut2} | ${dut2_if2} | ip4 | 1
-| | And COP interface enable or disable | ${dut1} | ${dut1_if1} | enable
-| | And COP interface enable or disable | ${dut2} | ${dut2_if2} | enable
-| | Then Find PDR using binary search and pps | ${framesize} | ${binary_min}
-| | ... | ${binary_max} | ${traffic_profile}
-| | ... | ${min_rate} | ${max_rate} | ${threshold}
-| | ... | ${perf_pdr_loss_acceptance} | ${perf_pdr_loss_acceptance_type}
+| | ...
+| | [Template] | Discover NDR or PDR for ethip4-ip4base-copwhtlistbase
+| | wt=1 | rxq=1 | framesize=${9000} | min_rate=${10000} | search_type=PDR
| tc07-64B-2t2c-ethip4-ip4base-copwhtlistbase-ndrdisc
| | [Documentation]
@@ -249,28 +171,9 @@
| | ... | for 64 Byte frames using binary search start at 10GE linerate,
| | ... | step 50kpps.
| | [Tags] | 64B | 2T2C | MTHREAD | NDRDISC
-| | ${framesize}= | Set Variable | ${64}
-| | ${min_rate}= | Set Variable | ${50000}
-| | ${max_rate}= | Calculate pps | ${s_limit} | ${framesize}
-| | ${binary_min}= | Set Variable | ${min_rate}
-| | ${binary_max}= | Set Variable | ${max_rate}
-| | ${threshold}= | Set Variable | ${min_rate}
-| | Given Add '2' worker threads and '1' rxqueues in 3-node single-link circular topology
-| | And Add PCI devices to DUTs in 3-node single link topology
-| | And Add no multi seg to all DUTs
-| | And Apply startup configuration on all VPP DUTs
-| | When Initialize IPv4 forwarding in 3-node circular topology
-| | And Add Fib Table | ${dut1} | 1
-| | And Vpp Route Add | ${dut1} | 10.10.10.0 | 24 | vrf=1 | local=${TRUE}
-| | And Add Fib Table | ${dut2} | 1
-| | And Vpp Route Add | ${dut2} | 20.20.20.0 | 24 | vrf=1 | local=${TRUE}
-| | And COP Add whitelist Entry | ${dut1} | ${dut1_if1} | ip4 | 1
-| | And COP Add whitelist Entry | ${dut2} | ${dut2_if2} | ip4 | 1
-| | And COP interface enable or disable | ${dut1} | ${dut1_if1} | enable
-| | And COP interface enable or disable | ${dut2} | ${dut2_if2} | enable
-| | Then Find NDR using binary search and pps | ${framesize} | ${binary_min}
-| | ... | ${binary_max} | ${traffic_profile}
-| | ... | ${min_rate} | ${max_rate} | ${threshold}
+| | ...
+| | [Template] | Discover NDR or PDR for ethip4-ip4base-copwhtlistbase
+| | wt=2 | rxq=1 | framesize=${64} | min_rate=${50000} | search_type=NDR
| tc08-64B-2t2c-ethip4-ip4base-copwhtlistbase-pdrdisc
| | [Documentation]
@@ -279,29 +182,9 @@
| | ... | for 64 Byte frames using binary search start at 10GE linerate,
| | ... | step 50kpps, LT=0.5%.
| | [Tags] | 64B | 2T2C | MTHREAD | PDRDISC | SKIP_PATCH
-| | ${framesize}= | Set Variable | ${64}
-| | ${min_rate}= | Set Variable | ${50000}
-| | ${max_rate}= | Calculate pps | ${s_limit} | ${framesize}
-| | ${binary_min}= | Set Variable | ${min_rate}
-| | ${binary_max}= | Set Variable | ${max_rate}
-| | ${threshold}= | Set Variable | ${min_rate}
-| | Given Add '2' worker threads and '1' rxqueues in 3-node single-link circular topology
-| | And Add PCI devices to DUTs in 3-node single link topology
-| | And Add no multi seg to all DUTs
-| | And Apply startup configuration on all VPP DUTs
-| | When Initialize IPv4 forwarding in 3-node circular topology
-| | And Add Fib Table | ${dut1} | 1
-| | And Vpp Route Add | ${dut1} | 10.10.10.0 | 24 | vrf=1 | local=${TRUE}
-| | And Add Fib Table | ${dut2} | 1
-| | And Vpp Route Add | ${dut2} | 20.20.20.0 | 24 | vrf=1 | local=${TRUE}
-| | And COP Add whitelist Entry | ${dut1} | ${dut1_if1} | ip4 | 1
-| | And COP Add whitelist Entry | ${dut2} | ${dut2_if2} | ip4 | 1
-| | And COP interface enable or disable | ${dut1} | ${dut1_if1} | enable
-| | And COP interface enable or disable | ${dut2} | ${dut2_if2} | enable
-| | Then Find PDR using binary search and pps | ${framesize} | ${binary_min}
-| | ... | ${binary_max} | ${traffic_profile}
-| | ... | ${min_rate} | ${max_rate} | ${threshold}
-| | ... | ${perf_pdr_loss_acceptance} | ${perf_pdr_loss_acceptance_type}
+| | ...
+| | [Template] | Discover NDR or PDR for ethip4-ip4base-copwhtlistbase
+| | wt=2 | rxq=1 | framesize=${64} | min_rate=${50000} | search_type=PDR
| tc09-1518B-2t2c-ethip4-ip4base-copwhtlistbase-ndrdisc
| | [Documentation]
@@ -310,28 +193,9 @@
| | ... | for 1518 Byte frames using binary search start at 10GE linerate,
| | ... | step 50kpps.
| | [Tags] | 1518B | 2T2C | MTHREAD | NDRDISC | SKIP_PATCH
-| | ${framesize}= | Set Variable | ${1518}
-| | ${min_rate}= | Set Variable | ${50000}
-| | ${max_rate}= | Calculate pps | ${s_limit} | ${framesize}
-| | ${binary_min}= | Set Variable | ${min_rate}
-| | ${binary_max}= | Set Variable | ${max_rate}
-| | ${threshold}= | Set Variable | ${min_rate}
-| | Given Add '2' worker threads and '1' rxqueues in 3-node single-link circular topology
-| | And Add PCI devices to DUTs in 3-node single link topology
-| | And Add no multi seg to all DUTs
-| | And Apply startup configuration on all VPP DUTs
-| | When Initialize IPv4 forwarding in 3-node circular topology
-| | And Add Fib Table | ${dut1} | 1
-| | And Vpp Route Add | ${dut1} | 10.10.10.0 | 24 | vrf=1 | local=${TRUE}
-| | And Add Fib Table | ${dut2} | 1
-| | And Vpp Route Add | ${dut2} | 20.20.20.0 | 24 | vrf=1 | local=${TRUE}
-| | And COP Add whitelist Entry | ${dut1} | ${dut1_if1} | ip4 | 1
-| | And COP Add whitelist Entry | ${dut2} | ${dut2_if2} | ip4 | 1
-| | And COP interface enable or disable | ${dut1} | ${dut1_if1} | enable
-| | And COP interface enable or disable | ${dut2} | ${dut2_if2} | enable
-| | Then Find NDR using binary search and pps | ${framesize} | ${binary_min}
-| | ... | ${binary_max} | ${traffic_profile}
-| | ... | ${min_rate} | ${max_rate} | ${threshold}
+| | ...
+| | [Template] | Discover NDR or PDR for ethip4-ip4base-copwhtlistbase
+| | wt=2 | rxq=1 | framesize=${1518} | min_rate=${50000} | search_type=NDR
| tc10-1518B-2t2c-ethip4-ip4base-copwhtlistbase-pdrdisc
| | [Documentation]
@@ -340,29 +204,9 @@
| | ... | for 1518 Byte frames using binary search start at 10GE linerate,
| | ... | step 50kpps, LT=0.5%.
| | [Tags] | 1518B | 2T2C | MTHREAD | PDRDISC | SKIP_PATCH
-| | ${framesize}= | Set Variable | ${1518}
-| | ${min_rate}= | Set Variable | ${50000}
-| | ${max_rate}= | Calculate pps | ${s_limit} | ${framesize}
-| | ${binary_min}= | Set Variable | ${min_rate}
-| | ${binary_max}= | Set Variable | ${max_rate}
-| | ${threshold}= | Set Variable | ${min_rate}
-| | Given Add '2' worker threads and '1' rxqueues in 3-node single-link circular topology
-| | And Add PCI devices to DUTs in 3-node single link topology
-| | And Add no multi seg to all DUTs
-| | And Apply startup configuration on all VPP DUTs
-| | When Initialize IPv4 forwarding in 3-node circular topology
-| | And Add Fib Table | ${dut1} | 1
-| | And Vpp Route Add | ${dut1} | 10.10.10.0 | 24 | vrf=1 | local=${TRUE}
-| | And Add Fib Table | ${dut2} | 1
-| | And Vpp Route Add | ${dut2} | 20.20.20.0 | 24 | vrf=1 | local=${TRUE}
-| | And COP Add whitelist Entry | ${dut1} | ${dut1_if1} | ip4 | 1
-| | And COP Add whitelist Entry | ${dut2} | ${dut2_if2} | ip4 | 1
-| | And COP interface enable or disable | ${dut1} | ${dut1_if1} | enable
-| | And COP interface enable or disable | ${dut2} | ${dut2_if2} | enable
-| | Then Find PDR using binary search and pps | ${framesize} | ${binary_min}
-| | ... | ${binary_max} | ${traffic_profile}
-| | ... | ${min_rate} | ${max_rate} | ${threshold}
-| | ... | ${perf_pdr_loss_acceptance} | ${perf_pdr_loss_acceptance_type}
+| | ...
+| | [Template] | Discover NDR or PDR for ethip4-ip4base-copwhtlistbase
+| | wt=2 | rxq=1 | framesize=${1518} | min_rate=${50000} | search_type=PDR
| tc11-9000B-2t2c-ethip4-ip4base-copwhtlistbase-ndrdisc
| | [Documentation]
@@ -371,27 +215,9 @@
| | ... | for 9000 Byte frames using binary search start at 10GE linerate,
| | ... | step 10kpps.
| | [Tags] | 9000B | 2T2C | MTHREAD | NDRDISC | SKIP_PATCH
-| | ${framesize}= | Set Variable | ${9000}
-| | ${min_rate}= | Set Variable | ${10000}
-| | ${max_rate}= | Calculate pps | ${s_limit} | ${framesize}
-| | ${binary_min}= | Set Variable | ${min_rate}
-| | ${binary_max}= | Set Variable | ${max_rate}
-| | ${threshold}= | Set Variable | ${min_rate}
-| | Given Add '2' worker threads and '1' rxqueues in 3-node single-link circular topology
-| | And Add PCI devices to DUTs in 3-node single link topology
-| | And Apply startup configuration on all VPP DUTs
-| | When Initialize IPv4 forwarding in 3-node circular topology
-| | And Add Fib Table | ${dut1} | 1
-| | And Vpp Route Add | ${dut1} | 10.10.10.0 | 24 | vrf=1 | local=${TRUE}
-| | And Add Fib Table | ${dut2} | 1
-| | And Vpp Route Add | ${dut2} | 20.20.20.0 | 24 | vrf=1 | local=${TRUE}
-| | And COP Add whitelist Entry | ${dut1} | ${dut1_if1} | ip4 | 1
-| | And COP Add whitelist Entry | ${dut2} | ${dut2_if2} | ip4 | 1
-| | And COP interface enable or disable | ${dut1} | ${dut1_if1} | enable
-| | And COP interface enable or disable | ${dut2} | ${dut2_if2} | enable
-| | Then Find NDR using binary search and pps | ${framesize} | ${binary_min}
-| | ... | ${binary_max} | ${traffic_profile}
-| | ... | ${min_rate} | ${max_rate} | ${threshold}
+| | ...
+| | [Template] | Discover NDR or PDR for ethip4-ip4base-copwhtlistbase
+| | wt=2 | rxq=1 | framesize=${9000} | min_rate=${10000} | search_type=NDR
| tc12-9000B-2t2c-ethip4-ip4base-copwhtlistbase-pdrdisc
| | [Documentation]
@@ -400,28 +226,9 @@
| | ... | for 9000 Byte frames using binary search start at 10GE linerate,
| | ... | step 10kpps, LT=0.5%.
| | [Tags] | 9000B | 2T2C | MTHREAD | PDRDISC | SKIP_PATCH
-| | ${framesize}= | Set Variable | ${9000}
-| | ${min_rate}= | Set Variable | ${10000}
-| | ${max_rate}= | Calculate pps | ${s_limit} | ${framesize}
-| | ${binary_min}= | Set Variable | ${min_rate}
-| | ${binary_max}= | Set Variable | ${max_rate}
-| | ${threshold}= | Set Variable | ${min_rate}
-| | Given Add '2' worker threads and '1' rxqueues in 3-node single-link circular topology
-| | And Add PCI devices to DUTs in 3-node single link topology
-| | And Apply startup configuration on all VPP DUTs
-| | When Initialize IPv4 forwarding in 3-node circular topology
-| | And Add Fib Table | ${dut1} | 1
-| | And Vpp Route Add | ${dut1} | 10.10.10.0 | 24 | vrf=1 | local=${TRUE}
-| | And Add Fib Table | ${dut2} | 1
-| | And Vpp Route Add | ${dut2} | 20.20.20.0 | 24 | vrf=1 | local=${TRUE}
-| | And COP Add whitelist Entry | ${dut1} | ${dut1_if1} | ip4 | 1
-| | And COP Add whitelist Entry | ${dut2} | ${dut2_if2} | ip4 | 1
-| | And COP interface enable or disable | ${dut1} | ${dut1_if1} | enable
-| | And COP interface enable or disable | ${dut2} | ${dut2_if2} | enable
-| | Then Find PDR using binary search and pps | ${framesize} | ${binary_min}
-| | ... | ${binary_max} | ${traffic_profile}
-| | ... | ${min_rate} | ${max_rate} | ${threshold}
-| | ... | ${perf_pdr_loss_acceptance} | ${perf_pdr_loss_acceptance_type}
+| | ...
+| | [Template] | Discover NDR or PDR for ethip4-ip4base-copwhtlistbase
+| | wt=2 | rxq=1 | framesize=${9000} | min_rate=${10000} | search_type=PDR
| tc13-64B-4t4c-ethip4-ip4base-copwhtlistbase-ndrdisc
| | [Documentation]
@@ -430,28 +237,9 @@
| | ... | for 64 Byte frames using binary search start at 10GE linerate,
| | ... | step 50kpps.
| | [Tags] | 64B | 4T4C | MTHREAD | NDRDISC
-| | ${framesize}= | Set Variable | ${64}
-| | ${min_rate}= | Set Variable | ${50000}
-| | ${max_rate}= | Calculate pps | ${s_limit} | ${framesize}
-| | ${binary_min}= | Set Variable | ${min_rate}
-| | ${binary_max}= | Set Variable | ${max_rate}
-| | ${threshold}= | Set Variable | ${min_rate}
-| | Given Add '4' worker threads and '2' rxqueues in 3-node single-link circular topology
-| | And Add PCI devices to DUTs in 3-node single link topology
-| | And Add no multi seg to all DUTs
-| | And Apply startup configuration on all VPP DUTs
-| | When Initialize IPv4 forwarding in 3-node circular topology
-| | And Add Fib Table | ${dut1} | 1
-| | And Vpp Route Add | ${dut1} | 10.10.10.0 | 24 | vrf=1 | local=${TRUE}
-| | And Add Fib Table | ${dut2} | 1
-| | And Vpp Route Add | ${dut2} | 20.20.20.0 | 24 | vrf=1 | local=${TRUE}
-| | And COP Add whitelist Entry | ${dut1} | ${dut1_if1} | ip4 | 1
-| | And COP Add whitelist Entry | ${dut2} | ${dut2_if2} | ip4 | 1
-| | And COP interface enable or disable | ${dut1} | ${dut1_if1} | enable
-| | And COP interface enable or disable | ${dut2} | ${dut2_if2} | enable
-| | Then Find NDR using binary search and pps | ${framesize} | ${binary_min}
-| | ... | ${binary_max} | ${traffic_profile}
-| | ... | ${min_rate} | ${max_rate} | ${threshold}
+| | ...
+| | [Template] | Discover NDR or PDR for ethip4-ip4base-copwhtlistbase
+| | wt=4 | rxq=2 | framesize=${64} | min_rate=${50000} | search_type=NDR
| tc14-64B-4t4c-ethip4-ip4base-copwhtlistbase-pdrdisc
| | [Documentation]
@@ -460,29 +248,9 @@
| | ... | for 64 Byte frames using binary search start at 10GE linerate,
| | ... | step 50kpps, LT=0.5%.
| | [Tags] | 64B | 4T4C | MTHREAD | PDRDISC | SKIP_PATCH
-| | ${framesize}= | Set Variable | ${64}
-| | ${min_rate}= | Set Variable | ${50000}
-| | ${max_rate}= | Calculate pps | ${s_limit} | ${framesize}
-| | ${binary_min}= | Set Variable | ${min_rate}
-| | ${binary_max}= | Set Variable | ${max_rate}
-| | ${threshold}= | Set Variable | ${min_rate}
-| | Given Add '4' worker threads and '2' rxqueues in 3-node single-link circular topology
-| | And Add PCI devices to DUTs in 3-node single link topology
-| | And Add no multi seg to all DUTs
-| | And Apply startup configuration on all VPP DUTs
-| | When Initialize IPv4 forwarding in 3-node circular topology
-| | And Add Fib Table | ${dut1} | 1
-| | And Vpp Route Add | ${dut1} | 10.10.10.0 | 24 | vrf=1 | local=${TRUE}
-| | And Add Fib Table | ${dut2} | 1
-| | And Vpp Route Add | ${dut2} | 20.20.20.0 | 24 | vrf=1 | local=${TRUE}
-| | And COP Add whitelist Entry | ${dut1} | ${dut1_if1} | ip4 | 1
-| | And COP Add whitelist Entry | ${dut2} | ${dut2_if2} | ip4 | 1
-| | And COP interface enable or disable | ${dut1} | ${dut1_if1} | enable
-| | And COP interface enable or disable | ${dut2} | ${dut2_if2} | enable
-| | Then Find PDR using binary search and pps | ${framesize} | ${binary_min}
-| | ... | ${binary_max} | ${traffic_profile}
-| | ... | ${min_rate} | ${max_rate} | ${threshold}
-| | ... | ${perf_pdr_loss_acceptance} | ${perf_pdr_loss_acceptance_type}
+| | ...
+| | [Template] | Discover NDR or PDR for ethip4-ip4base-copwhtlistbase
+| | wt=4 | rxq=2 | framesize=${64} | min_rate=${50000} | search_type=PDR
| tc15-1518B-4t4c-ethip4-ip4base-copwhtlistbase-ndrdisc
| | [Documentation]
@@ -491,28 +259,9 @@
| | ... | for 1518 Byte frames using binary search start at 10GE linerate,
| | ... | step 50kpps.
| | [Tags] | 1518B | 4T4C | MTHREAD | NDRDISC | SKIP_PATCH
-| | ${framesize}= | Set Variable | ${1518}
-| | ${min_rate}= | Set Variable | ${50000}
-| | ${max_rate}= | Calculate pps | ${s_limit} | ${framesize}
-| | ${binary_min}= | Set Variable | ${min_rate}
-| | ${binary_max}= | Set Variable | ${max_rate}
-| | ${threshold}= | Set Variable | ${min_rate}
-| | Given Add '4' worker threads and '2' rxqueues in 3-node single-link circular topology
-| | And Add PCI devices to DUTs in 3-node single link topology
-| | And Add no multi seg to all DUTs
-| | And Apply startup configuration on all VPP DUTs
-| | When Initialize IPv4 forwarding in 3-node circular topology
-| | And Add Fib Table | ${dut1} | 1
-| | And Vpp Route Add | ${dut1} | 10.10.10.0 | 24 | vrf=1 | local=${TRUE}
-| | And Add Fib Table | ${dut2} | 1
-| | And Vpp Route Add | ${dut2} | 20.20.20.0 | 24 | vrf=1 | local=${TRUE}
-| | And COP Add whitelist Entry | ${dut1} | ${dut1_if1} | ip4 | 1
-| | And COP Add whitelist Entry | ${dut2} | ${dut2_if2} | ip4 | 1
-| | And COP interface enable or disable | ${dut1} | ${dut1_if1} | enable
-| | And COP interface enable or disable | ${dut2} | ${dut2_if2} | enable
-| | Then Find NDR using binary search and pps | ${framesize} | ${binary_min}
-| | ... | ${binary_max} | ${traffic_profile}
-| | ... | ${min_rate} | ${max_rate} | ${threshold}
+| | ...
+| | [Template] | Discover NDR or PDR for ethip4-ip4base-copwhtlistbase
+| | wt=4 | rxq=2 | framesize=${1518} | min_rate=${50000} | search_type=NDR
| tc16-1518B-4t4c-ethip4-ip4base-copwhtlistbase-pdrdisc
| | [Documentation]
@@ -521,29 +270,9 @@
| | ... | for 1518 Byte frames using binary search start at 10GE linerate,
| | ... | step 50kpps, LT=0.5%.
| | [Tags] | 1518B | 4T4C | MTHREAD | PDRDISC | SKIP_PATCH
-| | ${framesize}= | Set Variable | ${1518}
-| | ${min_rate}= | Set Variable | ${50000}
-| | ${max_rate}= | Calculate pps | ${s_limit} | ${framesize}
-| | ${binary_min}= | Set Variable | ${min_rate}
-| | ${binary_max}= | Set Variable | ${max_rate}
-| | ${threshold}= | Set Variable | ${min_rate}
-| | Given Add '4' worker threads and '2' rxqueues in 3-node single-link circular topology
-| | And Add PCI devices to DUTs in 3-node single link topology
-| | And Add no multi seg to all DUTs
-| | And Apply startup configuration on all VPP DUTs
-| | When Initialize IPv4 forwarding in 3-node circular topology
-| | And Add Fib Table | ${dut1} | 1
-| | And Vpp Route Add | ${dut1} | 10.10.10.0 | 24 | vrf=1 | local=${TRUE}
-| | And Add Fib Table | ${dut2} | 1
-| | And Vpp Route Add | ${dut2} | 20.20.20.0 | 24 | vrf=1 | local=${TRUE}
-| | And COP Add whitelist Entry | ${dut1} | ${dut1_if1} | ip4 | 1
-| | And COP Add whitelist Entry | ${dut2} | ${dut2_if2} | ip4 | 1
-| | And COP interface enable or disable | ${dut1} | ${dut1_if1} | enable
-| | And COP interface enable or disable | ${dut2} | ${dut2_if2} | enable
-| | Then Find PDR using binary search and pps | ${framesize} | ${binary_min}
-| | ... | ${binary_max} | ${traffic_profile}
-| | ... | ${min_rate} | ${max_rate} | ${threshold}
-| | ... | ${perf_pdr_loss_acceptance} | ${perf_pdr_loss_acceptance_type}
+| | ...
+| | [Template] | Discover NDR or PDR for ethip4-ip4base-copwhtlistbase
+| | wt=4 | rxq=2 | framesize=${1518} | min_rate=${50000} | search_type=PDR
| tc17-9000B-4t4c-ethip4-ip4base-copwhtlistbase-ndrdisc
| | [Documentation]
@@ -552,27 +281,9 @@
| | ... | for 9000 Byte frames using binary search start at 10GE linerate,
| | ... | step 10kpps.
| | [Tags] | 9000B | 4T4C | MTHREAD | NDRDISC | SKIP_PATCH
-| | ${framesize}= | Set Variable | ${9000}
-| | ${min_rate}= | Set Variable | ${10000}
-| | ${max_rate}= | Calculate pps | ${s_limit} | ${framesize}
-| | ${binary_min}= | Set Variable | ${min_rate}
-| | ${binary_max}= | Set Variable | ${max_rate}
-| | ${threshold}= | Set Variable | ${min_rate}
-| | Given Add '4' worker threads and '2' rxqueues in 3-node single-link circular topology
-| | And Add PCI devices to DUTs in 3-node single link topology
-| | And Apply startup configuration on all VPP DUTs
-| | When Initialize IPv4 forwarding in 3-node circular topology
-| | And Add Fib Table | ${dut1} | 1
-| | And Vpp Route Add | ${dut1} | 10.10.10.0 | 24 | vrf=1 | local=${TRUE}
-| | And Add Fib Table | ${dut2} | 1
-| | And Vpp Route Add | ${dut2} | 20.20.20.0 | 24 | vrf=1 | local=${TRUE}
-| | And COP Add whitelist Entry | ${dut1} | ${dut1_if1} | ip4 | 1
-| | And COP Add whitelist Entry | ${dut2} | ${dut2_if2} | ip4 | 1
-| | And COP interface enable or disable | ${dut1} | ${dut1_if1} | enable
-| | And COP interface enable or disable | ${dut2} | ${dut2_if2} | enable
-| | Then Find NDR using binary search and pps | ${framesize} | ${binary_min}
-| | ... | ${binary_max} | ${traffic_profile}
-| | ... | ${min_rate} | ${max_rate} | ${threshold}
+| | ...
+| | [Template] | Discover NDR or PDR for ethip4-ip4base-copwhtlistbase
+| | wt=4 | rxq=2 | framesize=${9000} | min_rate=${10000} | search_type=NDR
| tc18-9000B-4t4c-ethip4-ip4base-copwhtlistbase-pdrdisc
| | [Documentation]
@@ -581,25 +292,6 @@
| | ... | for 9000 Byte frames using binary search start at 10GE linerate,
| | ... | step 10kpps, LT=0.5%.
| | [Tags] | 9000B | 4T4C | MTHREAD | PDRDISC | SKIP_PATCH
-| | ${framesize}= | Set Variable | ${9000}
-| | ${min_rate}= | Set Variable | ${10000}
-| | ${max_rate}= | Calculate pps | ${s_limit} | ${framesize}
-| | ${binary_min}= | Set Variable | ${min_rate}
-| | ${binary_max}= | Set Variable | ${max_rate}
-| | ${threshold}= | Set Variable | ${min_rate}
-| | Given Add '4' worker threads and '2' rxqueues in 3-node single-link circular topology
-| | And Add PCI devices to DUTs in 3-node single link topology
-| | And Apply startup configuration on all VPP DUTs
-| | When Initialize IPv4 forwarding in 3-node circular topology
-| | And Add Fib Table | ${dut1} | 1
-| | And Vpp Route Add | ${dut1} | 10.10.10.0 | 24 | vrf=1 | local=${TRUE}
-| | And Add Fib Table | ${dut2} | 1
-| | And Vpp Route Add | ${dut2} | 20.20.20.0 | 24 | vrf=1 | local=${TRUE}
-| | And COP Add whitelist Entry | ${dut1} | ${dut1_if1} | ip4 | 1
-| | And COP Add whitelist Entry | ${dut2} | ${dut2_if2} | ip4 | 1
-| | And COP interface enable or disable | ${dut1} | ${dut1_if1} | enable
-| | And COP interface enable or disable | ${dut2} | ${dut2_if2} | enable
-| | Then Find PDR using binary search and pps | ${framesize} | ${binary_min}
-| | ... | ${binary_max} | ${traffic_profile}
-| | ... | ${min_rate} | ${max_rate} | ${threshold}
-| | ... | ${perf_pdr_loss_acceptance} | ${perf_pdr_loss_acceptance_type}
+| | ...
+| | [Template] | Discover NDR or PDR for ethip4-ip4base-copwhtlistbase
+| | wt=4 | rxq=2 | framesize=${9000} | min_rate=${10000} | search_type=PDR
diff --git a/tests/vpp/perf/ip4/10ge2p1x520-ethip4-ip4base-iacldstbase-ndrchk.robot b/tests/vpp/perf/ip4/10ge2p1x520-ethip4-ip4base-iacldstbase-ndrchk.robot
index 3fc4c52e97..d061928f36 100644
--- a/tests/vpp/perf/ip4/10ge2p1x520-ethip4-ip4base-iacldstbase-ndrchk.robot
+++ b/tests/vpp/perf/ip4/10ge2p1x520-ethip4-ip4base-iacldstbase-ndrchk.robot
@@ -13,10 +13,6 @@
*** Settings ***
| Resource | resources/libraries/robot/performance/performance_setup.robot
-| Library | resources.libraries.python.IPv4Setup.Dut | ${nodes['DUT1']}
-| ... | WITH NAME | dut1_v4
-| Library | resources.libraries.python.IPv4Setup.Dut | ${nodes['DUT2']}
-| ... | WITH NAME | dut2_v4
| ...
| Force Tags | 3_NODE_SINGLE_LINK_TOPO | PERFTEST | HW_ENV | NDRCHK
| ... | NIC_Intel-X520-DA2 | ETH | IP4FWD | FEATURE | IACLDST
@@ -53,19 +49,25 @@
# Traffic profile:
| ${traffic_profile} | trex-sl-3n-ethip4-ip4src253
-*** Test Cases ***
-| tc01-64B-1t1c-ethip4-ip4base-iacldstbase-ndrchk
+*** Keywords ***
+| Check NDR for ethip4-ip4base-iacldstbase
| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 routing and whitelist filters config with \
-| | ... | 1 thread, 1 phy core, 1 receive queue per NIC port. [Ver] Verify
-| | ... | ref-NDR for 64 Byte frames using single trial throughput test
-| | ... | at 2x 3.6mpps.
-| | [Tags] | 64B | 1T1C | STHREAD
-| | ${framesize}= | Set Variable | ${64}
-| | ${rate}= | Set Variable | 3.6mpps
-| | Given Add '1' worker threads and '1' rxqueues in 3-node single-link circular topology
+| | ... | [Cfg] DUT runs IPv4 routing config with ${wt} thread(s), ${wt}\
+| | ... | phy core(s), ${rxq} receive queue(s) per NIC port.
+| | ... | [Ver] Verify ref-NDR for ${framesize} frames using single trial\
+| | ... | throughput test at 2x ${rate}.
+| | ...
+| | [Arguments] | ${framesize} | ${rate} | ${wt} | ${rxq}
+| | ...
+| | # Test Variables required for test teardown
+| | Set Test Variable | ${framesize}
+| | Set Test Variable | ${rate}
+| | ${get_framesize}= | Get Frame Size | ${framesize}
+| | ...
+| | Given Add '${wt}' worker threads and '${rxq}' rxqueues in 3-node single-link circular topology
| | And Add PCI devices to DUTs in 3-node single link topology
-| | And Add no multi seg 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
| | When Initialize IPv4 forwarding in 3-node circular topology
| | ${table_idx} | ${skip_n} | ${match_n}= | And Vpp Creates Classify Table L3
@@ -82,8 +84,20 @@
| | ... | ip4 | dst | 10.10.10.2
| | And Vpp Enable Input Acl Interface
| | ... | ${dut2} | ${dut2_if2} | ip4 | ${table_idx}
-| | Then Traffic should pass with no loss | ${perf_trial_duration} | ${rate}
-| | ... | ${framesize} | ${traffic_profile}
+| | Then Traffic should pass with no loss | ${perf_trial_duration}
+| | ... | ${rate} | ${framesize} | ${traffic_profile}
+
+*** Test Cases ***
+| tc01-64B-1t1c-ethip4-ip4base-iacldstbase-ndrchk
+| | [Documentation]
+| | ... | [Cfg] DUT runs IPv4 routing and whitelist filters config with \
+| | ... | 1 thread, 1 phy core, 1 receive queue per NIC port. [Ver] Verify
+| | ... | ref-NDR for 64 Byte frames using single trial throughput test
+| | ... | at 2x 3.6mpps.
+| | [Tags] | 64B | 1T1C | STHREAD
+| | ...
+| | [Template] | Check NDR for ethip4-ip4base-iacldstbase
+| | framesize=${64} | rate=3.6mpps | wt=1 | rxq=1
| tc02-1518B-1t1c-ethip4-ip4base-iacldstbase-ndrchk
| | [Documentation]
@@ -92,29 +106,9 @@
| | ... | ref-NDR for 1518 Byte frames using single trial throughput test
| | ... | at 2x 812743pps.
| | [Tags] | 1518B | 1T1C | STHREAD
-| | ${framesize}= | Set Variable | ${1518}
-| | ${rate}= | Set Variable | 812743pps
-| | Given Add '1' worker threads and '1' rxqueues in 3-node single-link circular topology
-| | And Add PCI devices to DUTs in 3-node single link topology
-| | And Add no multi seg to all DUTs
-| | And Apply startup configuration on all VPP DUTs
-| | When Initialize IPv4 forwarding in 3-node circular topology
-| | ${table_idx} | ${skip_n} | ${match_n}= | And Vpp Creates Classify Table L3
-| | ... | ${dut1} | ip4 | dst
-| | And Vpp Configures Classify Session L3
-| | ... | ${dut1} | permit | ${table_idx} | ${skip_n} | ${match_n}
-| | ... | ip4 | dst | 20.20.20.2
-| | And Vpp Enable Input Acl Interface
-| | ... | ${dut1} | ${dut1_if1} | ip4 | ${table_idx}
-| | ${table_idx} | ${skip_n} | ${match_n}= | And Vpp Creates Classify Table L3
-| | ... | ${dut2} | ip4 | dst
-| | And Vpp Configures Classify Session L3
-| | ... | ${dut2} | permit | ${table_idx} | ${skip_n} | ${match_n}
-| | ... | ip4 | dst | 10.10.10.2
-| | And Vpp Enable Input Acl Interface
-| | ... | ${dut2} | ${dut2_if2} | ip4 | ${table_idx}
-| | Then Traffic should pass with no loss | ${perf_trial_duration} | ${rate}
-| | ... | ${framesize} | ${traffic_profile}
+| | ...
+| | [Template] | Check NDR for ethip4-ip4base-iacldstbase
+| | framesize=${1518} | rate=812743pps | wt=1 | rxq=1
| tc03-9000B-1t1c-ethip4-ip4base-iacldstbase-ndrchk
| | [Documentation]
@@ -123,28 +117,9 @@
| | ... | ref-NDR for 9000 Byte frames using single trial throughput test
| | ... | at 2x 138580pps.
| | [Tags] | 9000B | 1T1C | STHREAD
-| | ${framesize}= | Set Variable | ${9000}
-| | ${rate}= | Set Variable | 138580pps
-| | Given Add '1' worker threads and '1' rxqueues in 3-node single-link circular topology
-| | And Add PCI devices to DUTs in 3-node single link topology
-| | And Apply startup configuration on all VPP DUTs
-| | When Initialize IPv4 forwarding in 3-node circular topology
-| | ${table_idx} | ${skip_n} | ${match_n}= | And Vpp Creates Classify Table L3
-| | ... | ${dut1} | ip4 | dst
-| | And Vpp Configures Classify Session L3
-| | ... | ${dut1} | permit | ${table_idx} | ${skip_n} | ${match_n}
-| | ... | ip4 | dst | 20.20.20.2
-| | And Vpp Enable Input Acl Interface
-| | ... | ${dut1} | ${dut1_if1} | ip4 | ${table_idx}
-| | ${table_idx} | ${skip_n} | ${match_n}= | And Vpp Creates Classify Table L3
-| | ... | ${dut2} | ip4 | dst
-| | And Vpp Configures Classify Session L3
-| | ... | ${dut2} | permit | ${table_idx} | ${skip_n} | ${match_n}
-| | ... | ip4 | dst | 10.10.10.2
-| | And Vpp Enable Input Acl Interface
-| | ... | ${dut2} | ${dut2_if2} | ip4 | ${table_idx}
-| | Then Traffic should pass with no loss | ${perf_trial_duration} | ${rate}
-| | ... | ${framesize} | ${traffic_profile}
+| | ...
+| | [Template] | Check NDR for ethip4-ip4base-iacldstbase
+| | framesize=${9000} | rate=138580pps | wt=1 | rxq=1
| tc04-64B-2t2c-ethip4-ip4base-iacldstbase-ndrchk
| | [Documentation]
@@ -153,29 +128,9 @@
| | ... | ref-NDR for 64 Byte frames using single trial throughput test
| | ... | at 2x 6.3mpps.
| | [Tags] | 64B | 2T2C | MTHREAD
-| | ${framesize}= | Set Variable | ${64}
-| | ${rate}= | Set Variable | 6.3mpps
-| | Given Add '2' worker threads and '1' rxqueues in 3-node single-link circular topology
-| | And Add PCI devices to DUTs in 3-node single link topology
-| | And Add no multi seg to all DUTs
-| | And Apply startup configuration on all VPP DUTs
-| | When Initialize IPv4 forwarding in 3-node circular topology
-| | ${table_idx} | ${skip_n} | ${match_n}= | And Vpp Creates Classify Table L3
-| | ... | ${dut1} | ip4 | dst
-| | And Vpp Configures Classify Session L3
-| | ... | ${dut1} | permit | ${table_idx} | ${skip_n} | ${match_n}
-| | ... | ip4 | dst | 20.20.20.2
-| | And Vpp Enable Input Acl Interface
-| | ... | ${dut1} | ${dut1_if1} | ip4 | ${table_idx}
-| | ${table_idx} | ${skip_n} | ${match_n}= | And Vpp Creates Classify Table L3
-| | ... | ${dut2} | ip4 | dst
-| | And Vpp Configures Classify Session L3
-| | ... | ${dut2} | permit | ${table_idx} | ${skip_n} | ${match_n}
-| | ... | ip4 | dst | 10.10.10.2
-| | And Vpp Enable Input Acl Interface
-| | ... | ${dut2} | ${dut2_if2} | ip4 | ${table_idx}
-| | Then Traffic should pass with no loss | ${perf_trial_duration} | ${rate}
-| | ... | ${framesize} | ${traffic_profile}
+| | ...
+| | [Template] | Check NDR for ethip4-ip4base-iacldstbase
+| | framesize=${64} | rate=6.3mpps | wt=2 | rxq=1
| tc05-1518B-2t2c-ethip4-ip4base-iacldstbase-ndrchk
| | [Documentation]
@@ -184,29 +139,9 @@
| | ... | ref-NDR for 1518 Byte frames using single trial throughput test
| | ... | at 2x 812743pps.
| | [Tags] | 1518B | 2T2C | MTHREAD
-| | ${framesize}= | Set Variable | ${1518}
-| | ${rate}= | Set Variable | 812743pps
-| | Given Add '2' worker threads and '1' rxqueues in 3-node single-link circular topology
-| | And Add PCI devices to DUTs in 3-node single link topology
-| | And Add no multi seg to all DUTs
-| | And Apply startup configuration on all VPP DUTs
-| | When Initialize IPv4 forwarding in 3-node circular topology
-| | ${table_idx} | ${skip_n} | ${match_n}= | And Vpp Creates Classify Table L3
-| | ... | ${dut1} | ip4 | dst
-| | And Vpp Configures Classify Session L3
-| | ... | ${dut1} | permit | ${table_idx} | ${skip_n} | ${match_n}
-| | ... | ip4 | dst | 20.20.20.2
-| | And Vpp Enable Input Acl Interface
-| | ... | ${dut1} | ${dut1_if1} | ip4 | ${table_idx}
-| | ${table_idx} | ${skip_n} | ${match_n}= | And Vpp Creates Classify Table L3
-| | ... | ${dut2} | ip4 | dst
-| | And Vpp Configures Classify Session L3
-| | ... | ${dut2} | permit | ${table_idx} | ${skip_n} | ${match_n}
-| | ... | ip4 | dst | 10.10.10.2
-| | And Vpp Enable Input Acl Interface
-| | ... | ${dut2} | ${dut2_if2} | ip4 | ${table_idx}
-| | Then Traffic should pass with no loss | ${perf_trial_duration} | ${rate}
-| | ... | ${framesize} | ${traffic_profile}
+| | ...
+| | [Template] | Check NDR for ethip4-ip4base-iacldstbase
+| | framesize=${1518} | rate=812743pps | wt=2 | rxq=1
| tc06-9000B-2t2c-ethip4-ip4base-iacldstbase-ndrchk
| | [Documentation]
@@ -215,28 +150,9 @@
| | ... | ref-NDR for 9000 Byte frames using single trial throughput test
| | ... | at 2x 138580pps.
| | [Tags] | 9000B | 2T2C | MTHREAD
-| | ${framesize}= | Set Variable | ${9000}
-| | ${rate}= | Set Variable | 138580pps
-| | Given Add '2' worker threads and '1' rxqueues in 3-node single-link circular topology
-| | And Add PCI devices to DUTs in 3-node single link topology
-| | And Apply startup configuration on all VPP DUTs
-| | When Initialize IPv4 forwarding in 3-node circular topology
-| | ${table_idx} | ${skip_n} | ${match_n}= | And Vpp Creates Classify Table L3
-| | ... | ${dut1} | ip4 | dst
-| | And Vpp Configures Classify Session L3
-| | ... | ${dut1} | permit | ${table_idx} | ${skip_n} | ${match_n}
-| | ... | ip4 | dst | 20.20.20.2
-| | And Vpp Enable Input Acl Interface
-| | ... | ${dut1} | ${dut1_if1} | ip4 | ${table_idx}
-| | ${table_idx} | ${skip_n} | ${match_n}= | And Vpp Creates Classify Table L3
-| | ... | ${dut2} | ip4 | dst
-| | And Vpp Configures Classify Session L3
-| | ... | ${dut2} | permit | ${table_idx} | ${skip_n} | ${match_n}
-| | ... | ip4 | dst | 10.10.10.2
-| | And Vpp Enable Input Acl Interface
-| | ... | ${dut2} | ${dut2_if2} | ip4 | ${table_idx}
-| | Then Traffic should pass with no loss | ${perf_trial_duration} | ${rate}
-| | ... | ${framesize} | ${traffic_profile}
+| | ...
+| | [Template] | Check NDR for ethip4-ip4base-iacldstbase
+| | framesize=${9000} | rate=138580pps | wt=2 | rxq=1
| tc07-64B-4t4c-ethip4-ip4base-iacldstbase-ndrchk
| | [Documentation]
@@ -245,29 +161,9 @@
| | ... | ref-NDR for 64 Byte frames using single trial throughput test
| | ... | at 2x 9.7mpps.
| | [Tags] | 64B | 4T4C | MTHREAD
-| | ${framesize}= | Set Variable | ${64}
-| | ${rate}= | Set Variable | 9.7mpps
-| | Given Add '4' worker threads and '2' rxqueues in 3-node single-link circular topology
-| | And Add PCI devices to DUTs in 3-node single link topology
-| | And Add no multi seg to all DUTs
-| | And Apply startup configuration on all VPP DUTs
-| | And Initialize IPv4 forwarding in 3-node circular topology
-| | ${table_idx} | ${skip_n} | ${match_n}= | And Vpp Creates Classify Table L3
-| | ... | ${dut1} | ip4 | dst
-| | And Vpp Configures Classify Session L3
-| | ... | ${dut1} | permit | ${table_idx} | ${skip_n} | ${match_n}
-| | ... | ip4 | dst | 20.20.20.2
-| | And Vpp Enable Input Acl Interface
-| | ... | ${dut1} | ${dut1_if1} | ip4 | ${table_idx}
-| | ${table_idx} | ${skip_n} | ${match_n}= | And Vpp Creates Classify Table L3
-| | ... | ${dut2} | ip4 | dst
-| | And Vpp Configures Classify Session L3
-| | ... | ${dut2} | permit | ${table_idx} | ${skip_n} | ${match_n}
-| | ... | ip4 | dst | 10.10.10.2
-| | And Vpp Enable Input Acl Interface
-| | ... | ${dut2} | ${dut2_if2} | ip4 | ${table_idx}
-| | Then Traffic should pass with no loss | ${perf_trial_duration} | ${rate}
-| | ... | ${framesize} | ${traffic_profile}
+| | ...
+| | [Template] | Check NDR for ethip4-ip4base-iacldstbase
+| | framesize=${64} | rate=9.7mpps | wt=4 | rxq=2
| tc08-1518B-4t4c-ethip4-ip4base-iacldstbase-ndrchk
| | [Documentation]
@@ -276,29 +172,9 @@
| | ... | ref-NDR for 1518 Byte frames using single trial throughput test
| | ... | at 2x 812743pps.
| | [Tags] | 1518B | 4T4C | MTHREAD
-| | ${framesize}= | Set Variable | ${1518}
-| | ${rate}= | Set Variable | 812743pps
-| | Given Add '4' worker threads and '2' rxqueues in 3-node single-link circular topology
-| | And Add PCI devices to DUTs in 3-node single link topology
-| | And Add no multi seg to all DUTs
-| | And Apply startup configuration on all VPP DUTs
-| | When Initialize IPv4 forwarding in 3-node circular topology
-| | ${table_idx} | ${skip_n} | ${match_n}= | And Vpp Creates Classify Table L3
-| | ... | ${dut1} | ip4 | dst
-| | And Vpp Configures Classify Session L3
-| | ... | ${dut1} | permit | ${table_idx} | ${skip_n} | ${match_n}
-| | ... | ip4 | dst | 20.20.20.2
-| | And Vpp Enable Input Acl Interface
-| | ... | ${dut1} | ${dut1_if1} | ip4 | ${table_idx}
-| | ${table_idx} | ${skip_n} | ${match_n}= | And Vpp Creates Classify Table L3
-| | ... | ${dut2} | ip4 | dst
-| | And Vpp Configures Classify Session L3
-| | ... | ${dut2} | permit | ${table_idx} | ${skip_n} | ${match_n}
-| | ... | ip4 | dst | 10.10.10.2
-| | And Vpp Enable Input Acl Interface
-| | ... | ${dut2} | ${dut2_if2} | ip4 | ${table_idx}
-| | Then Traffic should pass with no loss | ${perf_trial_duration} | ${rate}
-| | ... | ${framesize} | ${traffic_profile}
+| | ...
+| | [Template] | Check NDR for ethip4-ip4base-iacldstbase
+| | framesize=${1518} | rate=812743pps | wt=4 | rxq=2
| tc09-9000B-4t4c-ethip4-ip4base-iacldstbase-ndrchk
| | [Documentation]
@@ -307,25 +183,6 @@
| | ... | ref-NDR for 9000 Byte frames using single trial throughput test
| | ... | at 2x 138580pps.
| | [Tags] | 9000B | 4T4C | MTHREAD
-| | ${framesize}= | Set Variable | ${9000}
-| | ${rate}= | Set Variable | 138580pps
-| | Given Add '4' worker threads and '2' rxqueues in 3-node single-link circular topology
-| | And Add PCI devices to DUTs in 3-node single link topology
-| | And Apply startup configuration on all VPP DUTs
-| | When Initialize IPv4 forwarding in 3-node circular topology
-| | ${table_idx} | ${skip_n} | ${match_n}= | And Vpp Creates Classify Table L3
-| | ... | ${dut1} | ip4 | dst
-| | And Vpp Configures Classify Session L3
-| | ... | ${dut1} | permit | ${table_idx} | ${skip_n} | ${match_n}
-| | ... | ip4 | dst | 20.20.20.2
-| | And Vpp Enable Input Acl Interface
-| | ... | ${dut1} | ${dut1_if1} | ip4 | ${table_idx}
-| | ${table_idx} | ${skip_n} | ${match_n}= | And Vpp Creates Classify Table L3
-| | ... | ${dut2} | ip4 | dst
-| | And Vpp Configures Classify Session L3
-| | ... | ${dut2} | permit | ${table_idx} | ${skip_n} | ${match_n}
-| | ... | ip4 | dst | 10.10.10.2
-| | And Vpp Enable Input Acl Interface
-| | ... | ${dut2} | ${dut2_if2} | ip4 | ${table_idx}
-| | Then Traffic should pass with no loss | ${perf_trial_duration} | ${rate}
-| | ... | ${framesize} | ${traffic_profile}
+| | ...
+| | [Template] | Check NDR for ethip4-ip4base-iacldstbase
+| | framesize=${9000} | rate=138580pps | wt=4 | rxq=2
diff --git a/tests/vpp/perf/ip4/10ge2p1x520-ethip4-ip4base-iacldstbase-ndrpdrdisc.robot b/tests/vpp/perf/ip4/10ge2p1x520-ethip4-ip4base-iacldstbase-ndrpdrdisc.robot
index 881c6f68b6..dab6a29cb6 100644
--- a/tests/vpp/perf/ip4/10ge2p1x520-ethip4-ip4base-iacldstbase-ndrpdrdisc.robot
+++ b/tests/vpp/perf/ip4/10ge2p1x520-ethip4-ip4base-iacldstbase-ndrpdrdisc.robot
@@ -13,10 +13,6 @@
*** Settings ***
| Resource | resources/libraries/robot/performance/performance_setup.robot
-| Library | resources.libraries.python.IPv4Setup.Dut | ${nodes['DUT1']}
-| ... | WITH NAME | dut1_v4
-| Library | resources.libraries.python.IPv4Setup.Dut | ${nodes['DUT2']}
-| ... | WITH NAME | dut2_v4
| ...
| Force Tags | 3_NODE_SINGLE_LINK_TOPO | PERFTEST | HW_ENV | NDRPDRDISC
| ... | NIC_Intel-X520-DA2 | ETH | IP4FWD | FEATURE | IACLDST
@@ -59,23 +55,27 @@
# Traffic profile:
| ${traffic_profile} | trex-sl-3n-ethip4-ip4src253
-*** Test Cases ***
-| tc01-64B-1t1c-ethip4-ip4base-iacldstbase-ndrdisc
+*** Keywords ***
+| Discover NDR or PDR for ethip4-ip4base-iacldstbase
| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 routing and whitelist filters config with \
-| | ... | 1 thread, 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 | 1T1C | STHREAD | NDRDISC
-| | ${framesize}= | Set Variable | ${64}
-| | ${min_rate}= | Set Variable | ${50000}
-| | ${max_rate}= | Calculate pps | ${s_limit} | ${framesize}
+| | ... | [Cfg] DUT runs IPv4 routing config with ${wt} thread(s), ${wt}\
+| | ... | phy core(s), ${rxq} receive queue(s) per NIC port.
+| | ... | [Ver] Find NDR or PDR for ${framesize} frames using binary search\
+| | ... | start at 10GE linerate.
+| | ...
+| | [Arguments] | ${wt} | ${rxq} | ${framesize} | ${min_rate} | ${search_type}
+| | ...
+| | Set Test Variable | ${framesize}
+| | Set Test Variable | ${min_rate}
+| | ${get_framesize}= | Get Frame Size | ${framesize}
+| | ${max_rate}= | Calculate pps | ${s_limit} | ${get_framesize}
| | ${binary_min}= | Set Variable | ${min_rate}
| | ${binary_max}= | Set Variable | ${max_rate}
| | ${threshold}= | Set Variable | ${min_rate}
-| | Given Add '1' worker threads and '1' rxqueues in 3-node single-link circular topology
+| | Given Add '${wt}' worker threads and '${rxq}' rxqueues in 3-node single-link circular topology
| | And Add PCI devices to DUTs in 3-node single link topology
-| | And Add no multi seg 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
| | When Initialize IPv4 forwarding in 3-node circular topology
| | ${table_idx} | ${skip_n} | ${match_n}= | And Vpp Creates Classify Table L3
@@ -92,9 +92,27 @@
| | ... | ip4 | dst | 10.10.10.2
| | And Vpp Enable Input Acl Interface
| | ... | ${dut2} | ${dut2_if2} | ip4 | ${table_idx}
-| | Then Find NDR using binary search and pps | ${framesize} | ${binary_min}
-| | ... | ${binary_max} | ${traffic_profile}
+| | Then Run Keyword If | '${search_type}' == 'NDR'
+| | ... | Find NDR using binary search and pps
+| | ... | ${framesize} | ${binary_min} | ${binary_max} | ${traffic_profile}
| | ... | ${min_rate} | ${max_rate} | ${threshold}
+| | ... | ELSE IF | '${search_type}' == 'PDR'
+| | ... | Find PDR using binary search and pps
+| | ... | ${framesize} | ${binary_min} | ${binary_max} | ${traffic_profile}
+| | ... | ${min_rate} | ${max_rate} | ${threshold}
+| | ... | ${perf_pdr_loss_acceptance} | ${perf_pdr_loss_acceptance_type}
+
+*** Test Cases ***
+| tc01-64B-1t1c-ethip4-ip4base-iacldstbase-ndrdisc
+| | [Documentation]
+| | ... | [Cfg] DUT runs IPv4 routing and whitelist filters config with \
+| | ... | 1 thread, 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 | 1T1C | STHREAD | NDRDISC
+| | ...
+| | [Template] | Discover NDR or PDR for ethip4-ip4base-iacldstbase
+| | wt=1 | rxq=1 | framesize=${64} | min_rate=${50000} | search_type=NDR
| tc02-64B-1t1c-ethip4-ip4base-iacldstbase-pdrdisc
| | [Documentation]
@@ -103,35 +121,9 @@
| | ... | for 64 Byte frames using binary search start at 10GE linerate,
| | ... | step 50kpps, LT=0.5%.
| | [Tags] | 64B | 1T1C | STHREAD | PDRDISC | SKIP_PATCH
-| | ${framesize}= | Set Variable | ${64}
-| | ${min_rate}= | Set Variable | ${50000}
-| | ${max_rate}= | Calculate pps | ${s_limit} | ${framesize}
-| | ${binary_min}= | Set Variable | ${min_rate}
-| | ${binary_max}= | Set Variable | ${max_rate}
-| | ${threshold}= | Set Variable | ${min_rate}
-| | Given Add '1' worker threads and '1' rxqueues in 3-node single-link circular topology
-| | And Add PCI devices to DUTs in 3-node single link topology
-| | And Add no multi seg to all DUTs
-| | And Apply startup configuration on all VPP DUTs
-| | When Initialize IPv4 forwarding in 3-node circular topology
-| | ${table_idx} | ${skip_n} | ${match_n}= | And Vpp Creates Classify Table L3
-| | ... | ${dut1} | ip4 | dst
-| | And Vpp Configures Classify Session L3
-| | ... | ${dut1} | permit | ${table_idx} | ${skip_n} | ${match_n}
-| | ... | ip4 | dst | 20.20.20.2
-| | And Vpp Enable Input Acl Interface
-| | ... | ${dut1} | ${dut1_if1} | ip4 | ${table_idx}
-| | ${table_idx} | ${skip_n} | ${match_n}= | And Vpp Creates Classify Table L3
-| | ... | ${dut2} | ip4 | dst
-| | And Vpp Configures Classify Session L3
-| | ... | ${dut2} | permit | ${table_idx} | ${skip_n} | ${match_n}
-| | ... | ip4 | dst | 10.10.10.2
-| | And Vpp Enable Input Acl Interface
-| | ... | ${dut2} | ${dut2_if2} | ip4 | ${table_idx}
-| | Then Find PDR using binary search and pps | ${framesize} | ${binary_min}
-| | ... | ${binary_max} | ${traffic_profile}
-| | ... | ${min_rate} | ${max_rate} | ${threshold}
-| | ... | ${perf_pdr_loss_acceptance} | ${perf_pdr_loss_acceptance_type}
+| | ...
+| | [Template] | Discover NDR or PDR for ethip4-ip4base-iacldstbase
+| | wt=1 | rxq=1 | framesize=${64} | min_rate=${50000} | search_type=PDR
| tc03-1518B-1t1c-ethip4-ip4base-iacldstbase-ndrdisc
| | [Documentation]
@@ -140,34 +132,9 @@
| | ... | for 1518 Byte frames using binary search start at 10GE linerate,
| | ... | step 50kpps.
| | [Tags] | 1518B | 1T1C | STHREAD | NDRDISC
-| | ${framesize}= | Set Variable | ${1518}
-| | ${min_rate}= | Set Variable | ${50000}
-| | ${max_rate}= | Calculate pps | ${s_limit} | ${framesize}
-| | ${binary_min}= | Set Variable | ${min_rate}
-| | ${binary_max}= | Set Variable | ${max_rate}
-| | ${threshold}= | Set Variable | ${min_rate}
-| | Given Add '1' worker threads and '1' rxqueues in 3-node single-link circular topology
-| | And Add PCI devices to DUTs in 3-node single link topology
-| | And Add no multi seg to all DUTs
-| | And Apply startup configuration on all VPP DUTs
-| | When Initialize IPv4 forwarding in 3-node circular topology
-| | ${table_idx} | ${skip_n} | ${match_n}= | And Vpp Creates Classify Table L3
-| | ... | ${dut1} | ip4 | dst
-| | And Vpp Configures Classify Session L3
-| | ... | ${dut1} | permit | ${table_idx} | ${skip_n} | ${match_n}
-| | ... | ip4 | dst | 20.20.20.2
-| | And Vpp Enable Input Acl Interface
-| | ... | ${dut1} | ${dut1_if1} | ip4 | ${table_idx}
-| | ${table_idx} | ${skip_n} | ${match_n}= | And Vpp Creates Classify Table L3
-| | ... | ${dut2} | ip4 | dst
-| | And Vpp Configures Classify Session L3
-| | ... | ${dut2} | permit | ${table_idx} | ${skip_n} | ${match_n}
-| | ... | ip4 | dst | 10.10.10.2
-| | And Vpp Enable Input Acl Interface
-| | ... | ${dut2} | ${dut2_if2} | ip4 | ${table_idx}
-| | Then Find NDR using binary search and pps | ${framesize} | ${binary_min}
-| | ... | ${binary_max} | ${traffic_profile}
-| | ... | ${min_rate} | ${max_rate} | ${threshold}
+| | ...
+| | [Template] | Discover NDR or PDR for ethip4-ip4base-iacldstbase
+| | wt=1 | rxq=1 | framesize=${1518} | min_rate=${50000} | search_type=NDR
| tc04-1518B-1t1c-ethip4-ip4base-iacldstbase-pdrdisc
| | [Documentation]
@@ -176,35 +143,9 @@
| | ... | for 1518 Byte frames using binary search start at 10GE linerate,
| | ... | step 50kpps, LT=0.5%.
| | [Tags] | 1518B | 1T1C | STHREAD | PDRDISC | SKIP_PATCH
-| | ${framesize}= | Set Variable | ${1518}
-| | ${min_rate}= | Set Variable | ${50000}
-| | ${max_rate}= | Calculate pps | ${s_limit} | ${framesize}
-| | ${binary_min}= | Set Variable | ${min_rate}
-| | ${binary_max}= | Set Variable | ${max_rate}
-| | ${threshold}= | Set Variable | ${min_rate}
-| | Given Add '1' worker threads and '1' rxqueues in 3-node single-link circular topology
-| | And Add PCI devices to DUTs in 3-node single link topology
-| | And Add no multi seg to all DUTs
-| | And Apply startup configuration on all VPP DUTs
-| | When Initialize IPv4 forwarding in 3-node circular topology
-| | ${table_idx} | ${skip_n} | ${match_n}= | And Vpp Creates Classify Table L3
-| | ... | ${dut1} | ip4 | dst
-| | And Vpp Configures Classify Session L3
-| | ... | ${dut1} | permit | ${table_idx} | ${skip_n} | ${match_n}
-| | ... | ip4 | dst | 20.20.20.2
-| | And Vpp Enable Input Acl Interface
-| | ... | ${dut1} | ${dut1_if1} | ip4 | ${table_idx}
-| | ${table_idx} | ${skip_n} | ${match_n}= | And Vpp Creates Classify Table L3
-| | ... | ${dut2} | ip4 | dst
-| | And Vpp Configures Classify Session L3
-| | ... | ${dut2} | permit | ${table_idx} | ${skip_n} | ${match_n}
-| | ... | ip4 | dst | 10.10.10.2
-| | And Vpp Enable Input Acl Interface
-| | ... | ${dut2} | ${dut2_if2} | ip4 | ${table_idx}
-| | Then Find PDR using binary search and pps | ${framesize} | ${binary_min}
-| | ... | ${binary_max} | ${traffic_profile}
-| | ... | ${min_rate} | ${max_rate} | ${threshold}
-| | ... | ${perf_pdr_loss_acceptance} | ${perf_pdr_loss_acceptance_type}
+| | ...
+| | [Template] | Discover NDR or PDR for ethip4-ip4base-iacldstbase
+| | wt=1 | rxq=1 | framesize=${1518} | min_rate=${50000} | search_type=PDR
| tc05-9000B-1t1c-ethip4-ip4base-iacldstbase-ndrdisc
| | [Documentation]
@@ -213,33 +154,9 @@
| | ... | for 9000 Byte frames using binary search start at 10GE linerate,
| | ... | step 10kpps.
| | [Tags] | 9000B | 1T1C | STHREAD | NDRDISC
-| | ${framesize}= | Set Variable | ${9000}
-| | ${min_rate}= | Set Variable | ${10000}
-| | ${max_rate}= | Calculate pps | ${s_limit} | ${framesize}
-| | ${binary_min}= | Set Variable | ${min_rate}
-| | ${binary_max}= | Set Variable | ${max_rate}
-| | ${threshold}= | Set Variable | ${min_rate}
-| | Given Add '1' worker threads and '1' rxqueues in 3-node single-link circular topology
-| | And Add PCI devices to DUTs in 3-node single link topology
-| | And Apply startup configuration on all VPP DUTs
-| | When Initialize IPv4 forwarding in 3-node circular topology
-| | ${table_idx} | ${skip_n} | ${match_n}= | And Vpp Creates Classify Table L3
-| | ... | ${dut1} | ip4 | dst
-| | And Vpp Configures Classify Session L3
-| | ... | ${dut1} | permit | ${table_idx} | ${skip_n} | ${match_n}
-| | ... | ip4 | dst | 20.20.20.2
-| | And Vpp Enable Input Acl Interface
-| | ... | ${dut1} | ${dut1_if1} | ip4 | ${table_idx}
-| | ${table_idx} | ${skip_n} | ${match_n}= | And Vpp Creates Classify Table L3
-| | ... | ${dut2} | ip4 | dst
-| | And Vpp Configures Classify Session L3
-| | ... | ${dut2} | permit | ${table_idx} | ${skip_n} | ${match_n}
-| | ... | ip4 | dst | 10.10.10.2
-| | And Vpp Enable Input Acl Interface
-| | ... | ${dut2} | ${dut2_if2} | ip4 | ${table_idx}
-| | Then Find NDR using binary search and pps | ${framesize} | ${binary_min}
-| | ... | ${binary_max} | ${traffic_profile}
-| | ... | ${min_rate} | ${max_rate} | ${threshold}
+| | ...
+| | [Template] | Discover NDR or PDR for ethip4-ip4base-iacldstbase
+| | wt=1 | rxq=1 | framesize=${9000} | min_rate=${10000} | search_type=NDR
| tc06-9000B-1t1c-ethip4-ip4base-iacldstbase-pdrdisc
| | [Documentation]
@@ -248,34 +165,9 @@
| | ... | for 9000 Byte frames using binary search start at 10GE linerate,
| | ... | step 10kpps, LT=0.5%.
| | [Tags] | 9000B | 1T1C | STHREAD | PDRDISC | SKIP_PATCH
-| | ${framesize}= | Set Variable | ${9000}
-| | ${min_rate}= | Set Variable | ${10000}
-| | ${max_rate}= | Calculate pps | ${s_limit} | ${framesize}
-| | ${binary_min}= | Set Variable | ${min_rate}
-| | ${binary_max}= | Set Variable | ${max_rate}
-| | ${threshold}= | Set Variable | ${min_rate}
-| | Given Add '1' worker threads and '1' rxqueues in 3-node single-link circular topology
-| | And Add PCI devices to DUTs in 3-node single link topology
-| | And Apply startup configuration on all VPP DUTs
-| | When Initialize IPv4 forwarding in 3-node circular topology
-| | ${table_idx} | ${skip_n} | ${match_n}= | And Vpp Creates Classify Table L3
-| | ... | ${dut1} | ip4 | dst
-| | And Vpp Configures Classify Session L3
-| | ... | ${dut1} | permit | ${table_idx} | ${skip_n} | ${match_n}
-| | ... | ip4 | dst | 20.20.20.2
-| | And Vpp Enable Input Acl Interface
-| | ... | ${dut1} | ${dut1_if1} | ip4 | ${table_idx}
-| | ${table_idx} | ${skip_n} | ${match_n}= | And Vpp Creates Classify Table L3
-| | ... | ${dut2} | ip4 | dst
-| | And Vpp Configures Classify Session L3
-| | ... | ${dut2} | permit | ${table_idx} | ${skip_n} | ${match_n}
-| | ... | ip4 | dst | 10.10.10.2
-| | And Vpp Enable Input Acl Interface
-| | ... | ${dut2} | ${dut2_if2} | ip4 | ${table_idx}
-| | Then Find PDR using binary search and pps | ${framesize} | ${binary_min}
-| | ... | ${binary_max} | ${traffic_profile}
-| | ... | ${min_rate} | ${max_rate} | ${threshold}
-| | ... | ${perf_pdr_loss_acceptance} | ${perf_pdr_loss_acceptance_type}
+| | ...
+| | [Template] | Discover NDR or PDR for ethip4-ip4base-iacldstbase
+| | wt=1 | rxq=1 | framesize=${9000} | min_rate=${10000} | search_type=PDR
| tc07-64B-2t2c-ethip4-ip4base-iacldstbase-ndrdisc
| | [Documentation]
@@ -284,34 +176,9 @@
| | ... | for 64 Byte frames using binary search start at 10GE linerate,
| | ... | step 50kpps.
| | [Tags] | 64B | 2T2C | MTHREAD | NDRDISC
-| | ${framesize}= | Set Variable | ${64}
-| | ${min_rate}= | Set Variable | ${50000}
-| | ${max_rate}= | Calculate pps | ${s_limit} | ${framesize}
-| | ${binary_min}= | Set Variable | ${min_rate}
-| | ${binary_max}= | Set Variable | ${max_rate}
-| | ${threshold}= | Set Variable | ${min_rate}
-| | Given Add '2' worker threads and '1' rxqueues in 3-node single-link circular topology
-| | And Add PCI devices to DUTs in 3-node single link topology
-| | And Add no multi seg to all DUTs
-| | And Apply startup configuration on all VPP DUTs
-| | When Initialize IPv4 forwarding in 3-node circular topology
-| | ${table_idx} | ${skip_n} | ${match_n}= | And Vpp Creates Classify Table L3
-| | ... | ${dut1} | ip4 | dst
-| | And Vpp Configures Classify Session L3
-| | ... | ${dut1} | permit | ${table_idx} | ${skip_n} | ${match_n}
-| | ... | ip4 | dst | 20.20.20.2
-| | And Vpp Enable Input Acl Interface
-| | ... | ${dut1} | ${dut1_if1} | ip4 | ${table_idx}
-| | ${table_idx} | ${skip_n} | ${match_n}= | And Vpp Creates Classify Table L3
-| | ... | ${dut2} | ip4 | dst
-| | And Vpp Configures Classify Session L3
-| | ... | ${dut2} | permit | ${table_idx} | ${skip_n} | ${match_n}
-| | ... | ip4 | dst | 10.10.10.2
-| | And Vpp Enable Input Acl Interface
-| | ... | ${dut2} | ${dut2_if2} | ip4 | ${table_idx}
-| | Then Find NDR using binary search and pps | ${framesize} | ${binary_min}
-| | ... | ${binary_max} | ${traffic_profile}
-| | ... | ${min_rate} | ${max_rate} | ${threshold}
+| | ...
+| | [Template] | Discover NDR or PDR for ethip4-ip4base-iacldstbase
+| | wt=2 | rxq=1 | framesize=${64} | min_rate=${50000} | search_type=NDR
| tc08-64B-2t2c-ethip4-ip4base-iacldstbase-pdrdisc
| | [Documentation]
@@ -320,35 +187,9 @@
| | ... | for 64 Byte frames using binary search start at 10GE linerate,
| | ... | step 50kpps, LT=0.5%.
| | [Tags] | 64B | 2T2C | MTHREAD | PDRDISC | SKIP_PATCH
-| | ${framesize}= | Set Variable | ${64}
-| | ${min_rate}= | Set Variable | ${50000}
-| | ${max_rate}= | Calculate pps | ${s_limit} | ${framesize}
-| | ${binary_min}= | Set Variable | ${min_rate}
-| | ${binary_max}= | Set Variable | ${max_rate}
-| | ${threshold}= | Set Variable | ${min_rate}
-| | Given Add '2' worker threads and '1' rxqueues in 3-node single-link circular topology
-| | And Add PCI devices to DUTs in 3-node single link topology
-| | And Add no multi seg to all DUTs
-| | And Apply startup configuration on all VPP DUTs
-| | When Initialize IPv4 forwarding in 3-node circular topology
-| | ${table_idx} | ${skip_n} | ${match_n}= | And Vpp Creates Classify Table L3
-| | ... | ${dut1} | ip4 | dst
-| | And Vpp Configures Classify Session L3
-| | ... | ${dut1} | permit | ${table_idx} | ${skip_n} | ${match_n}
-| | ... | ip4 | dst | 20.20.20.2
-| | And Vpp Enable Input Acl Interface
-| | ... | ${dut1} | ${dut1_if1} | ip4 | ${table_idx}
-| | ${table_idx} | ${skip_n} | ${match_n}= | And Vpp Creates Classify Table L3
-| | ... | ${dut2} | ip4 | dst
-| | And Vpp Configures Classify Session L3
-| | ... | ${dut2} | permit | ${table_idx} | ${skip_n} | ${match_n}
-| | ... | ip4 | dst | 10.10.10.2
-| | And Vpp Enable Input Acl Interface
-| | ... | ${dut2} | ${dut2_if2} | ip4 | ${table_idx}
-| | Then Find PDR using binary search and pps | ${framesize} | ${binary_min}
-| | ... | ${binary_max} | ${traffic_profile}
-| | ... | ${min_rate} | ${max_rate} | ${threshold}
-| | ... | ${perf_pdr_loss_acceptance} | ${perf_pdr_loss_acceptance_type}
+| | ...
+| | [Template] | Discover NDR or PDR for ethip4-ip4base-iacldstbase
+| | wt=2 | rxq=1 | framesize=${64} | min_rate=${50000} | search_type=PDR
| tc09-1518B-2t2c-ethip4-ip4base-iacldstbase-ndrdisc
| | [Documentation]
@@ -357,34 +198,9 @@
| | ... | for 1518 Byte frames using binary search start at 10GE linerate,
| | ... | step 50kpps.
| | [Tags] | 1518B | 2T2C | MTHREAD | NDRDISC | SKIP_PATCH
-| | ${framesize}= | Set Variable | ${1518}
-| | ${min_rate}= | Set Variable | ${50000}
-| | ${max_rate}= | Calculate pps | ${s_limit} | ${framesize}
-| | ${binary_min}= | Set Variable | ${min_rate}
-| | ${binary_max}= | Set Variable | ${max_rate}
-| | ${threshold}= | Set Variable | ${min_rate}
-| | Given Add '2' worker threads and '1' rxqueues in 3-node single-link circular topology
-| | And Add PCI devices to DUTs in 3-node single link topology
-| | And Add no multi seg to all DUTs
-| | And Apply startup configuration on all VPP DUTs
-| | When Initialize IPv4 forwarding in 3-node circular topology
-| | ${table_idx} | ${skip_n} | ${match_n}= | And Vpp Creates Classify Table L3
-| | ... | ${dut1} | ip4 | dst
-| | And Vpp Configures Classify Session L3
-| | ... | ${dut1} | permit | ${table_idx} | ${skip_n} | ${match_n}
-| | ... | ip4 | dst | 20.20.20.2
-| | And Vpp Enable Input Acl Interface
-| | ... | ${dut1} | ${dut1_if1} | ip4 | ${table_idx}
-| | ${table_idx} | ${skip_n} | ${match_n}= | And Vpp Creates Classify Table L3
-| | ... | ${dut2} | ip4 | dst
-| | And Vpp Configures Classify Session L3
-| | ... | ${dut2} | permit | ${table_idx} | ${skip_n} | ${match_n}
-| | ... | ip4 | dst | 10.10.10.2
-| | And Vpp Enable Input Acl Interface
-| | ... | ${dut2} | ${dut2_if2} | ip4 | ${table_idx}
-| | Then Find NDR using binary search and pps | ${framesize} | ${binary_min}
-| | ... | ${binary_max} | ${traffic_profile}
-| | ... | ${min_rate} | ${max_rate} | ${threshold}
+| | ...
+| | [Template] | Discover NDR or PDR for ethip4-ip4base-iacldstbase
+| | wt=2 | rxq=1 | framesize=${1518} | min_rate=${50000} | search_type=NDR
| tc10-1518B-2t2c-ethip4-ip4base-iacldstbase-pdrdisc
| | [Documentation]
@@ -393,35 +209,9 @@
| | ... | for 1518 Byte frames using binary search start at 10GE linerate,
| | ... | step 50kpps, LT=0.5%.
| | [Tags] | 1518B | 2T2C | MTHREAD | PDRDISC | SKIP_PATCH
-| | ${framesize}= | Set Variable | ${1518}
-| | ${min_rate}= | Set Variable | ${50000}
-| | ${max_rate}= | Calculate pps | ${s_limit} | ${framesize}
-| | ${binary_min}= | Set Variable | ${min_rate}
-| | ${binary_max}= | Set Variable | ${max_rate}
-| | ${threshold}= | Set Variable | ${min_rate}
-| | Given Add '2' worker threads and '1' rxqueues in 3-node single-link circular topology
-| | And Add PCI devices to DUTs in 3-node single link topology
-| | And Add no multi seg to all DUTs
-| | And Apply startup configuration on all VPP DUTs
-| | When Initialize IPv4 forwarding in 3-node circular topology
-| | ${table_idx} | ${skip_n} | ${match_n}= | And Vpp Creates Classify Table L3
-| | ... | ${dut1} | ip4 | dst
-| | And Vpp Configures Classify Session L3
-| | ... | ${dut1} | permit | ${table_idx} | ${skip_n} | ${match_n}
-| | ... | ip4 | dst | 20.20.20.2
-| | And Vpp Enable Input Acl Interface
-| | ... | ${dut1} | ${dut1_if1} | ip4 | ${table_idx}
-| | ${table_idx} | ${skip_n} | ${match_n}= | And Vpp Creates Classify Table L3
-| | ... | ${dut2} | ip4 | dst
-| | And Vpp Configures Classify Session L3
-| | ... | ${dut2} | permit | ${table_idx} | ${skip_n} | ${match_n}
-| | ... | ip4 | dst | 10.10.10.2
-| | And Vpp Enable Input Acl Interface
-| | ... | ${dut2} | ${dut2_if2} | ip4 | ${table_idx}
-| | Then Find PDR using binary search and pps | ${framesize} | ${binary_min}
-| | ... | ${binary_max} | ${traffic_profile}
-| | ... | ${min_rate} | ${max_rate} | ${threshold}
-| | ... | ${perf_pdr_loss_acceptance} | ${perf_pdr_loss_acceptance_type}
+| | ...
+| | [Template] | Discover NDR or PDR for ethip4-ip4base-iacldstbase
+| | wt=2 | rxq=1 | framesize=${1518} | min_rate=${50000} | search_type=PDR
| tc11-9000B-2t2c-ethip4-ip4base-iacldstbase-ndrdisc
| | [Documentation]
@@ -430,33 +220,9 @@
| | ... | for 9000 Byte frames using binary search start at 10GE linerate,
| | ... | step 10kpps.
| | [Tags] | 9000B | 2T2C | MTHREAD | NDRDISC | SKIP_PATCH
-| | ${framesize}= | Set Variable | ${9000}
-| | ${min_rate}= | Set Variable | ${10000}
-| | ${max_rate}= | Calculate pps | ${s_limit} | ${framesize}
-| | ${binary_min}= | Set Variable | ${min_rate}
-| | ${binary_max}= | Set Variable | ${max_rate}
-| | ${threshold}= | Set Variable | ${min_rate}
-| | Given Add '2' worker threads and '1' rxqueues in 3-node single-link circular topology
-| | And Add PCI devices to DUTs in 3-node single link topology
-| | And Apply startup configuration on all VPP DUTs
-| | When Initialize IPv4 forwarding in 3-node circular topology
-| | ${table_idx} | ${skip_n} | ${match_n}= | And Vpp Creates Classify Table L3
-| | ... | ${dut1} | ip4 | dst
-| | And Vpp Configures Classify Session L3
-| | ... | ${dut1} | permit | ${table_idx} | ${skip_n} | ${match_n}
-| | ... | ip4 | dst | 20.20.20.2
-| | And Vpp Enable Input Acl Interface
-| | ... | ${dut1} | ${dut1_if1} | ip4 | ${table_idx}
-| | ${table_idx} | ${skip_n} | ${match_n}= | And Vpp Creates Classify Table L3
-| | ... | ${dut2} | ip4 | dst
-| | And Vpp Configures Classify Session L3
-| | ... | ${dut2} | permit | ${table_idx} | ${skip_n} | ${match_n}
-| | ... | ip4 | dst | 10.10.10.2
-| | And Vpp Enable Input Acl Interface
-| | ... | ${dut2} | ${dut2_if2} | ip4 | ${table_idx}
-| | Then Find NDR using binary search and pps | ${framesize} | ${binary_min}
-| | ... | ${binary_max} | ${traffic_profile}
-| | ... | ${min_rate} | ${max_rate} | ${threshold}
+| | ...
+| | [Template] | Discover NDR or PDR for ethip4-ip4base-iacldstbase
+| | wt=2 | rxq=1 | framesize=${9000} | min_rate=${10000} | search_type=NDR
| tc12-9000B-2t2c-ethip4-ip4base-iacldstbase-pdrdisc
| | [Documentation]
@@ -465,34 +231,9 @@
| | ... | for 9000 Byte frames using binary search start at 10GE linerate,
| | ... | step 10kpps, LT=0.5%.
| | [Tags] | 9000B | 2T2C | MTHREAD | PDRDISC | SKIP_PATCH
-| | ${framesize}= | Set Variable | ${9000}
-| | ${min_rate}= | Set Variable | ${10000}
-| | ${max_rate}= | Calculate pps | ${s_limit} | ${framesize}
-| | ${binary_min}= | Set Variable | ${min_rate}
-| | ${binary_max}= | Set Variable | ${max_rate}
-| | ${threshold}= | Set Variable | ${min_rate}
-| | Given Add '2' worker threads and '1' rxqueues in 3-node single-link circular topology
-| | And Add PCI devices to DUTs in 3-node single link topology
-| | And Apply startup configuration on all VPP DUTs
-| | When Initialize IPv4 forwarding in 3-node circular topology
-| | ${table_idx} | ${skip_n} | ${match_n}= | And Vpp Creates Classify Table L3
-| | ... | ${dut1} | ip4 | dst
-| | And Vpp Configures Classify Session L3
-| | ... | ${dut1} | permit | ${table_idx} | ${skip_n} | ${match_n}
-| | ... | ip4 | dst | 20.20.20.2
-| | And Vpp Enable Input Acl Interface
-| | ... | ${dut1} | ${dut1_if1} | ip4 | ${table_idx}
-| | ${table_idx} | ${skip_n} | ${match_n}= | And Vpp Creates Classify Table L3
-| | ... | ${dut2} | ip4 | dst
-| | And Vpp Configures Classify Session L3
-| | ... | ${dut2} | permit | ${table_idx} | ${skip_n} | ${match_n}
-| | ... | ip4 | dst | 10.10.10.2
-| | And Vpp Enable Input Acl Interface
-| | ... | ${dut2} | ${dut2_if2} | ip4 | ${table_idx}
-| | Then Find PDR using binary search and pps | ${framesize} | ${binary_min}
-| | ... | ${binary_max} | ${traffic_profile}
-| | ... | ${min_rate} | ${max_rate} | ${threshold}
-| | ... | ${perf_pdr_loss_acceptance} | ${perf_pdr_loss_acceptance_type}
+| | ...
+| | [Template] | Discover NDR or PDR for ethip4-ip4base-iacldstbase
+| | wt=2 | rxq=1 | framesize=${9000} | min_rate=${10000} | search_type=PDR
| tc13-64B-4t4c-ethip4-ip4base-iacldstbase-ndrdisc
| | [Documentation]
@@ -501,34 +242,9 @@
| | ... | for 64 Byte frames using binary search start at 10GE linerate,
| | ... | step 50kpps.
| | [Tags] | 64B | 4T4C | MTHREAD | NDRDISC
-| | ${framesize}= | Set Variable | ${64}
-| | ${min_rate}= | Set Variable | ${50000}
-| | ${max_rate}= | Calculate pps | ${s_limit} | ${framesize}
-| | ${binary_min}= | Set Variable | ${min_rate}
-| | ${binary_max}= | Set Variable | ${max_rate}
-| | ${threshold}= | Set Variable | ${min_rate}
-| | Given Add '4' worker threads and '2' rxqueues in 3-node single-link circular topology
-| | And Add PCI devices to DUTs in 3-node single link topology
-| | And Add no multi seg to all DUTs
-| | And Apply startup configuration on all VPP DUTs
-| | When Initialize IPv4 forwarding in 3-node circular topology
-| | ${table_idx} | ${skip_n} | ${match_n}= | And Vpp Creates Classify Table L3
-| | ... | ${dut1} | ip4 | dst
-| | And Vpp Configures Classify Session L3
-| | ... | ${dut1} | permit | ${table_idx} | ${skip_n} | ${match_n}
-| | ... | ip4 | dst | 20.20.20.2
-| | And Vpp Enable Input Acl Interface
-| | ... | ${dut1} | ${dut1_if1} | ip4 | ${table_idx}
-| | ${table_idx} | ${skip_n} | ${match_n}= | And Vpp Creates Classify Table L3
-| | ... | ${dut2} | ip4 | dst
-| | And Vpp Configures Classify Session L3
-| | ... | ${dut2} | permit | ${table_idx} | ${skip_n} | ${match_n}
-| | ... | ip4 | dst | 10.10.10.2
-| | And Vpp Enable Input Acl Interface
-| | ... | ${dut2} | ${dut2_if2} | ip4 | ${table_idx}
-| | Then Find NDR using binary search and pps | ${framesize} | ${binary_min}
-| | ... | ${binary_max} | ${traffic_profile}
-| | ... | ${min_rate} | ${max_rate} | ${threshold}
+| | ...
+| | [Template] | Discover NDR or PDR for ethip4-ip4base-iacldstbase
+| | wt=4 | rxq=2 | framesize=${64} | min_rate=${50000} | search_type=NDR
| tc14-64B-4t4c-ethip4-ip4base-iacldstbase-pdrdisc
| | [Documentation]
@@ -537,35 +253,9 @@
| | ... | for 64 Byte frames using binary search start at 10GE linerate,
| | ... | step 50kpps, LT=0.5%.
| | [Tags] | 64B | 4T4C | MTHREAD | PDRDISC | SKIP_PATCH
-| | ${framesize}= | Set Variable | ${64}
-| | ${min_rate}= | Set Variable | ${50000}
-| | ${max_rate}= | Calculate pps | ${s_limit} | ${framesize}
-| | ${binary_min}= | Set Variable | ${min_rate}
-| | ${binary_max}= | Set Variable | ${max_rate}
-| | ${threshold}= | Set Variable | ${min_rate}
-| | Given Add '4' worker threads and '2' rxqueues in 3-node single-link circular topology
-| | And Add PCI devices to DUTs in 3-node single link topology
-| | And Add no multi seg to all DUTs
-| | And Apply startup configuration on all VPP DUTs
-| | When Initialize IPv4 forwarding in 3-node circular topology
-| | ${table_idx} | ${skip_n} | ${match_n}= | And Vpp Creates Classify Table L3
-| | ... | ${dut1} | ip4 | dst
-| | And Vpp Configures Classify Session L3
-| | ... | ${dut1} | permit | ${table_idx} | ${skip_n} | ${match_n}
-| | ... | ip4 | dst | 20.20.20.2
-| | And Vpp Enable Input Acl Interface
-| | ... | ${dut1} | ${dut1_if1} | ip4 | ${table_idx}
-| | ${table_idx} | ${skip_n} | ${match_n}= | And Vpp Creates Classify Table L3
-| | ... | ${dut2} | ip4 | dst
-| | And Vpp Configures Classify Session L3
-| | ... | ${dut2} | permit | ${table_idx} | ${skip_n} | ${match_n}
-| | ... | ip4 | dst | 10.10.10.2
-| | And Vpp Enable Input Acl Interface
-| | ... | ${dut2} | ${dut2_if2} | ip4 | ${table_idx}
-| | Then Find PDR using binary search and pps | ${framesize} | ${binary_min}
-| | ... | ${binary_max} | ${traffic_profile}
-| | ... | ${min_rate} | ${max_rate} | ${threshold}
-| | ... | ${perf_pdr_loss_acceptance} | ${perf_pdr_loss_acceptance_type}
+| | ...
+| | [Template] | Discover NDR or PDR for ethip4-ip4base-iacldstbase
+| | wt=4 | rxq=2 | framesize=${64} | min_rate=${50000} | search_type=PDR
| tc15-1518B-4t4c-ethip4-ip4base-iacldstbase-ndrdisc
| | [Documentation]
@@ -574,34 +264,9 @@
| | ... | for 1518 Byte frames using binary search start at 10GE linerate,
| | ... | step 50kpps.
| | [Tags] | 1518B | 4T4C | MTHREAD | NDRDISC | SKIP_PATCH
-| | ${framesize}= | Set Variable | ${1518}
-| | ${min_rate}= | Set Variable | ${50000}
-| | ${max_rate}= | Calculate pps | ${s_limit} | ${framesize}
-| | ${binary_min}= | Set Variable | ${min_rate}
-| | ${binary_max}= | Set Variable | ${max_rate}
-| | ${threshold}= | Set Variable | ${min_rate}
-| | Given Add '4' worker threads and '2' rxqueues in 3-node single-link circular topology
-| | And Add PCI devices to DUTs in 3-node single link topology
-| | And Add no multi seg to all DUTs
-| | And Apply startup configuration on all VPP DUTs
-| | When Initialize IPv4 forwarding in 3-node circular topology
-| | ${table_idx} | ${skip_n} | ${match_n}= | And Vpp Creates Classify Table L3
-| | ... | ${dut1} | ip4 | dst
-| | And Vpp Configures Classify Session L3
-| | ... | ${dut1} | permit | ${table_idx} | ${skip_n} | ${match_n}
-| | ... | ip4 | dst | 20.20.20.2
-| | And Vpp Enable Input Acl Interface
-| | ... | ${dut1} | ${dut1_if1} | ip4 | ${table_idx}
-| | ${table_idx} | ${skip_n} | ${match_n}= | And Vpp Creates Classify Table L3
-| | ... | ${dut2} | ip4 | dst
-| | And Vpp Configures Classify Session L3
-| | ... | ${dut2} | permit | ${table_idx} | ${skip_n} | ${match_n}
-| | ... | ip4 | dst | 10.10.10.2
-| | And Vpp Enable Input Acl Interface
-| | ... | ${dut2} | ${dut2_if2} | ip4 | ${table_idx}
-| | Then Find NDR using binary search and pps | ${framesize} | ${binary_min}
-| | ... | ${binary_max} | ${traffic_profile}
-| | ... | ${min_rate} | ${max_rate} | ${threshold}
+| | ...
+| | [Template] | Discover NDR or PDR for ethip4-ip4base-iacldstbase
+| | wt=4 | rxq=2 | framesize=${1518} | min_rate=${50000} | search_type=NDR
| tc16-1518B-4t4c-ethip4-ip4base-iacldstbase-pdrdisc
| | [Documentation]
@@ -610,35 +275,9 @@
| | ... | for 1518 Byte frames using binary search start at 10GE linerate,
| | ... | step 50kpps, LT=0.5%.
| | [Tags] | 1518B | 4T4C | MTHREAD | PDRDISC | SKIP_PATCH
-| | ${framesize}= | Set Variable | ${1518}
-| | ${min_rate}= | Set Variable | ${50000}
-| | ${max_rate}= | Calculate pps | ${s_limit} | ${framesize}
-| | ${binary_min}= | Set Variable | ${min_rate}
-| | ${binary_max}= | Set Variable | ${max_rate}
-| | ${threshold}= | Set Variable | ${min_rate}
-| | Given Add '4' worker threads and '2' rxqueues in 3-node single-link circular topology
-| | And Add PCI devices to DUTs in 3-node single link topology
-| | And Add no multi seg to all DUTs
-| | And Apply startup configuration on all VPP DUTs
-| | When Initialize IPv4 forwarding in 3-node circular topology
-| | ${table_idx} | ${skip_n} | ${match_n}= | And Vpp Creates Classify Table L3
-| | ... | ${dut1} | ip4 | dst
-| | And Vpp Configures Classify Session L3
-| | ... | ${dut1} | permit | ${table_idx} | ${skip_n} | ${match_n}
-| | ... | ip4 | dst | 20.20.20.2
-| | And Vpp Enable Input Acl Interface
-| | ... | ${dut1} | ${dut1_if1} | ip4 | ${table_idx}
-| | ${table_idx} | ${skip_n} | ${match_n}= | And Vpp Creates Classify Table L3
-| | ... | ${dut2} | ip4 | dst
-| | And Vpp Configures Classify Session L3
-| | ... | ${dut2} | permit | ${table_idx} | ${skip_n} | ${match_n}
-| | ... | ip4 | dst | 10.10.10.2
-| | And Vpp Enable Input Acl Interface
-| | ... | ${dut2} | ${dut2_if2} | ip4 | ${table_idx}
-| | Then Find PDR using binary search and pps | ${framesize} | ${binary_min}
-| | ... | ${binary_max} | ${traffic_profile}
-| | ... | ${min_rate} | ${max_rate} | ${threshold}
-| | ... | ${perf_pdr_loss_acceptance} | ${perf_pdr_loss_acceptance_type}
+| | ...
+| | [Template] | Discover NDR or PDR for ethip4-ip4base-iacldstbase
+| | wt=4 | rxq=2 | framesize=${1518} | min_rate=${50000} | search_type=PDR
| tc17-9000B-4t4c-ethip4-ip4base-iacldstbase-ndrdisc
| | [Documentation]
@@ -647,33 +286,9 @@
| | ... | for 9000 Byte frames using binary search start at 10GE linerate,
| | ... | step 10kpps.
| | [Tags] | 9000B | 4T4C | MTHREAD | NDRDISC | SKIP_PATCH
-| | ${framesize}= | Set Variable | ${9000}
-| | ${min_rate}= | Set Variable | ${10000}
-| | ${max_rate}= | Calculate pps | ${s_limit} | ${framesize}
-| | ${binary_min}= | Set Variable | ${min_rate}
-| | ${binary_max}= | Set Variable | ${max_rate}
-| | ${threshold}= | Set Variable | ${min_rate}
-| | Given Add '4' worker threads and '2' rxqueues in 3-node single-link circular topology
-| | And Add PCI devices to DUTs in 3-node single link topology
-| | And Apply startup configuration on all VPP DUTs
-| | When Initialize IPv4 forwarding in 3-node circular topology
-| | ${table_idx} | ${skip_n} | ${match_n}= | And Vpp Creates Classify Table L3
-| | ... | ${dut1} | ip4 | dst
-| | And Vpp Configures Classify Session L3
-| | ... | ${dut1} | permit | ${table_idx} | ${skip_n} | ${match_n}
-| | ... | ip4 | dst | 20.20.20.2
-| | And Vpp Enable Input Acl Interface
-| | ... | ${dut1} | ${dut1_if1} | ip4 | ${table_idx}
-| | ${table_idx} | ${skip_n} | ${match_n}= | And Vpp Creates Classify Table L3
-| | ... | ${dut2} | ip4 | dst
-| | And Vpp Configures Classify Session L3
-| | ... | ${dut2} | permit | ${table_idx} | ${skip_n} | ${match_n}
-| | ... | ip4 | dst | 10.10.10.2
-| | And Vpp Enable Input Acl Interface
-| | ... | ${dut2} | ${dut2_if2} | ip4 | ${table_idx}
-| | Then Find NDR using binary search and pps | ${framesize} | ${binary_min}
-| | ... | ${binary_max} | ${traffic_profile}
-| | ... | ${min_rate} | ${max_rate} | ${threshold}
+| | ...
+| | [Template] | Discover NDR or PDR for ethip4-ip4base-iacldstbase
+| | wt=4 | rxq=2 | framesize=${9000} | min_rate=${10000} | search_type=NDR
| tc18-9000B-4t4c-ethip4-ip4base-iacldstbase-pdrdisc
| | [Documentation]
@@ -682,31 +297,7 @@
| | ... | for 9000 Byte frames using binary search start at 10GE linerate,
| | ... | step 10kpps, LT=0.5%.
| | [Tags] | 9000B | 4T4C | MTHREAD | PDRDISC | SKIP_PATCH
-| | ${framesize}= | Set Variable | ${9000}
-| | ${min_rate}= | Set Variable | ${10000}
-| | ${max_rate}= | Calculate pps | ${s_limit} | ${framesize}
-| | ${binary_min}= | Set Variable | ${min_rate}
-| | ${binary_max}= | Set Variable | ${max_rate}
-| | ${threshold}= | Set Variable | ${min_rate}
-| | Given Add '4' worker threads and '2' rxqueues in 3-node single-link circular topology
-| | And Add PCI devices to DUTs in 3-node single link topology
-| | And Apply startup configuration on all VPP DUTs
-| | When Initialize IPv4 forwarding in 3-node circular topology
-| | ${table_idx} | ${skip_n} | ${match_n}= | And Vpp Creates Classify Table L3
-| | ... | ${dut1} | ip4 | dst
-| | And Vpp Configures Classify Session L3
-| | ... | ${dut1} | permit | ${table_idx} | ${skip_n} | ${match_n}
-| | ... | ip4 | dst | 20.20.20.2
-| | And Vpp Enable Input Acl Interface
-| | ... | ${dut1} | ${dut1_if1} | ip4 | ${table_idx}
-| | ${table_idx} | ${skip_n} | ${match_n}= | And Vpp Creates Classify Table L3
-| | ... | ${dut2} | ip4 | dst
-| | And Vpp Configures Classify Session L3
-| | ... | ${dut2} | permit | ${table_idx} | ${skip_n} | ${match_n}
-| | ... | ip4 | dst | 10.10.10.2
-| | And Vpp Enable Input Acl Interface
-| | ... | ${dut2} | ${dut2_if2} | ip4 | ${table_idx}
-| | Then Find PDR using binary search and pps | ${framesize} | ${binary_min}
-| | ... | ${binary_max} | ${traffic_profile}
-| | ... | ${min_rate} | ${max_rate} | ${threshold}
-| | ... | ${perf_pdr_loss_acceptance} | ${perf_pdr_loss_acceptance_type}
+| | ...
+| | [Template] | Discover NDR or PDR for ethip4-ip4base-iacldstbase
+| | wt=4 | rxq=2 | framesize=${9000} | min_rate=${10000} | search_type=PDR
+
diff --git a/tests/vpp/perf/ip4/10ge2p1x520-ethip4-ip4base-ipolicemarkbase-ndrchk.robot b/tests/vpp/perf/ip4/10ge2p1x520-ethip4-ip4base-ipolicemarkbase-ndrchk.robot
index 69c0f60cfc..df67cc7aeb 100644
--- a/tests/vpp/perf/ip4/10ge2p1x520-ethip4-ip4base-ipolicemarkbase-ndrchk.robot
+++ b/tests/vpp/perf/ip4/10ge2p1x520-ethip4-ip4base-ipolicemarkbase-ndrchk.robot
@@ -14,10 +14,6 @@
*** Settings ***
| Resource | resources/libraries/robot/performance/performance_setup.robot
| Library | resources.libraries.python.Policer
-| Library | resources.libraries.python.IPv4Setup.Dut | ${nodes['DUT1']}
-| ... | WITH NAME | dut1_v4
-| Library | resources.libraries.python.IPv4Setup.Dut | ${nodes['DUT2']}
-| ... | WITH NAME | dut2_v4
| ...
| Force Tags | 3_NODE_SINGLE_LINK_TOPO | PERFTEST | HW_ENV | NDRCHK
| ... | NIC_Intel-X520-DA2 | IP4FWD | BASE | DOT1Q
@@ -56,25 +52,43 @@
# Traffic profile:
| ${traffic_profile} | trex-sl-3n-ethip4-ip4src253
-*** Test Cases ***
-| tc01-64B-1t1c-ethip4-ip4base-ipolicemarkbase-ndrchk
+*** Keywords ***
+| Check NDR for ethip4-ip4base-ipolicemarkbase
| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 routing and policer config with 1 thread, 1 phy \
-| | ... | core, 1 receive queue per NIC port. [Ver] Verify ref-NDR for 64 \
-| | ... | Byte frames using single trial throughput test at 2x 3.6mpps.
-| | [Tags] | 64B | 1T1C | STHREAD
-| | ${framesize}= | Set Variable | ${64}
-| | ${rate}= | Set Variable | 3.6mpps
+| | ... | [Cfg] DUT runs IPv4 routing config with ${wt} thread(s), ${wt}\
+| | ... | phy core(s), ${rxq} receive queue(s) per NIC port.
+| | ... | [Ver] Verify ref-NDR for ${framesize} frames using single trial\
+| | ... | throughput test at 2x ${rate}.
+| | ...
+| | [Arguments] | ${framesize} | ${rate} | ${wt} | ${rxq}
+| | ...
+| | # Test Variables required for test teardown
+| | Set Test Variable | ${framesize}
+| | Set Test Variable | ${rate}
| | Set Test Variable | ${cb} | ${framesize}
| | Set Test Variable | ${eb} | ${framesize}
-| | Given Add '1' worker threads and '1' rxqueues in 3-node single-link circular topology
+| | ${get_framesize}= | Get Frame Size | ${framesize}
+| | ...
+| | Given Add '${wt}' worker threads and '${rxq}' rxqueues in 3-node single-link circular topology
| | And Add PCI devices to DUTs in 3-node single link topology
-| | And Add no multi seg 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 IPv4 forwarding in 3-node circular topology
| | And Initialize IPv4 policer 2r3c-'ca' in 3-node circular topology
-| | Then Traffic should pass with no loss | ${perf_trial_duration} | ${rate}
-| | ... | ${framesize} | ${traffic_profile}
+| | Then Traffic should pass with no loss | ${perf_trial_duration}
+| | ... | ${rate} | ${framesize} | ${traffic_profile}
+
+*** Test Cases ***
+| tc01-64B-1t1c-ethip4-ip4base-ipolicemarkbase-ndrchk
+| | [Documentation]
+| | ... | [Cfg] DUT runs IPv4 routing and policer config with 1 thread, 1 phy \
+| | ... | core, 1 receive queue per NIC port. [Ver] Verify ref-NDR for 64 \
+| | ... | Byte frames using single trial throughput test at 2x 3.6mpps.
+| | [Tags] | 64B | 1T1C | STHREAD
+| | ...
+| | [Template] | Check NDR for ethip4-ip4base-ipolicemarkbase
+| | framesize=${64} | rate=3.6mpps | wt=1 | rxq=1
| tc02-1518B-1t1c-ethip4-ip4base-ipolicemarkbase-ndrchk
| | [Documentation]
@@ -82,18 +96,9 @@
| | ... | core, 1 receive queue per NIC port. [Ver] Verify ref-NDR for 1518 \
| | ... | Byte frames using single trial throughput test at 2x 812743pps.
| | [Tags] | 1518B | 1T1C | STHREAD
-| | ${framesize}= | Set Variable | ${1518}
-| | ${rate}= | Set Variable | 812743pps
-| | Set Test Variable | ${cb} | ${framesize}
-| | Set Test Variable | ${eb} | ${framesize}
-| | Given Add '1' worker threads and '1' rxqueues in 3-node single-link circular topology
-| | And Add PCI devices to DUTs in 3-node single link topology
-| | And Add no multi seg to all DUTs
-| | And Apply startup configuration on all VPP DUTs
-| | When Initialize IPv4 forwarding in 3-node circular topology
-| | And Initialize IPv4 policer 2r3c-'ca' in 3-node circular topology
-| | Then Traffic should pass with no loss | ${perf_trial_duration} | ${rate}
-| | ... | ${framesize} | ${traffic_profile}
+| | ...
+| | [Template] | Check NDR for ethip4-ip4base-ipolicemarkbase
+| | framesize=${1518} | rate=812743pps | wt=1 | rxq=1
| tc03-9000B-1t1c-ethip4-ip4base-ipolicemarkbase-ndrchk
| | [Documentation]
@@ -101,17 +106,9 @@
| | ... | core, 1 receive queue per NIC port. [Ver] Verify ref-NDR for 9000 \
| | ... | Byte frames using single trial throughput test at 2x 138580pps.
| | [Tags] | 9000B | 1T1C | STHREAD
-| | ${framesize}= | Set Variable | ${9000}
-| | ${rate}= | Set Variable | 138580pps
-| | Set Test Variable | ${cb} | ${framesize}
-| | Set Test Variable | ${eb} | ${framesize}
-| | Given Add '1' worker threads and '1' rxqueues in 3-node single-link circular topology
-| | And Add PCI devices to DUTs in 3-node single link topology
-| | And Apply startup configuration on all VPP DUTs
-| | And Initialize IPv4 forwarding in 3-node circular topology
-| | And Initialize IPv4 policer 2r3c-'ca' in 3-node circular topology
-| | Then Traffic should pass with no loss | ${perf_trial_duration} | ${rate}
-| | ... | ${framesize} | ${traffic_profile}
+| | ...
+| | [Template] | Check NDR for ethip4-ip4base-ipolicemarkbase
+| | framesize=${9000} | rate=138580pps | wt=1 | rxq=1
| tc04-64B-2t2c-ethip4-ip4base-ipolicemarkbase-ndrchk
| | [Documentation]
@@ -119,18 +116,9 @@
| | ... | phy cores, 1 receive queue per NIC port. [Ver] Verify ref-NDR for \
| | ... | 64 Byte frames using single trial throughput test at 2x 6.2mpps.
| | [Tags] | 64B | 2T2C | MTHREAD
-| | ${framesize}= | Set Variable | ${64}
-| | ${rate}= | Set Variable | 6.2mpps
-| | Set Test Variable | ${cb} | ${framesize}
-| | Set Test Variable | ${eb} | ${framesize}
-| | Given Add '2' worker threads and '1' rxqueues in 3-node single-link circular topology
-| | And Add PCI devices to DUTs in 3-node single link topology
-| | And Add no multi seg to all DUTs
-| | And Apply startup configuration on all VPP DUTs
-| | And Initialize IPv4 forwarding in 3-node circular topology
-| | And Initialize IPv4 policer 2r3c-'ca' in 3-node circular topology
-| | Then Traffic should pass with no loss | ${perf_trial_duration} | ${rate}
-| | ... | ${framesize} | ${traffic_profile}
+| | ...
+| | [Template] | Check NDR for ethip4-ip4base-ipolicemarkbase
+| | framesize=${64} | rate=6.2mpps | wt=2 | rxq=1
| tc05-1518B-2t2c-ethip4-ip4base-ipolicemarkbase-ndrchk
| | [Documentation]
@@ -138,18 +126,9 @@
| | ... | phy cores, 1 receive queue per NIC port. [Ver] Verify ref-NDR for \
| | ... | 1518 Byte frames using single trial throughput test at 2x 812743pps.
| | [Tags] | 1518B | 2T2C | MTHREAD
-| | ${framesize}= | Set Variable | ${1518}
-| | ${rate}= | Set Variable | 812743pps
-| | Set Test Variable | ${cb} | ${framesize}
-| | Set Test Variable | ${eb} | ${framesize}
-| | Given Add '2' worker threads and '1' rxqueues in 3-node single-link circular topology
-| | And Add PCI devices to DUTs in 3-node single link topology
-| | And Add no multi seg to all DUTs
-| | And Apply startup configuration on all VPP DUTs
-| | And Initialize IPv4 forwarding in 3-node circular topology
-| | And Initialize IPv4 policer 2r3c-'ca' in 3-node circular topology
-| | Then Traffic should pass with no loss | ${perf_trial_duration} | ${rate}
-| | ... | ${framesize} | ${traffic_profile}
+| | ...
+| | [Template] | Check NDR for ethip4-ip4base-ipolicemarkbase
+| | framesize=${1518} | rate=812743pps | wt=2 | rxq=1
| tc06-9000B-2t2c-ethip4-ip4base-ipolicemarkbase-ndrchk
| | [Documentation]
@@ -157,17 +136,9 @@
| | ... | phy cores, 1 receive queue per NIC port. [Ver] Verify ref-NDR for \
| | ... | 9000 Byte frames using single trial throughput test at 2x 138580pps.
| | [Tags] | 9000B | 2T2C | MTHREAD
-| | ${framesize}= | Set Variable | ${9000}
-| | ${rate}= | Set Variable | 138580pps
-| | Set Test Variable | ${cb} | ${framesize}
-| | Set Test Variable | ${eb} | ${framesize}
-| | Given Add '2' worker threads and '1' rxqueues in 3-node single-link circular topology
-| | And Add PCI devices to DUTs in 3-node single link topology
-| | And Apply startup configuration on all VPP DUTs
-| | And Initialize IPv4 forwarding in 3-node circular topology
-| | And Initialize IPv4 policer 2r3c-'ca' in 3-node circular topology
-| | Then Traffic should pass with no loss | ${perf_trial_duration} | ${rate}
-| | ... | ${framesize} | ${traffic_profile}
+| | ...
+| | [Template] | Check NDR for ethip4-ip4base-ipolicemarkbase
+| | framesize=${9000} | rate=138580pps | wt=2 | rxq=1
| tc07-64B-4t4c-ethip4-ip4base-ipolicemarkbase-ndrchk
| | [Documentation]
@@ -175,18 +146,9 @@
| | ... | phy core, 2 receive queue per NIC port. [Ver] Verify ref-NDR for 64 \
| | ... | Byte frames using single trial throughput test at 2x 10.4mpps.
| | [Tags] | 64B | 4T4C | MTHREAD
-| | ${framesize}= | Set Variable | ${64}
-| | ${rate}= | Set Variable | 10.4mpps
-| | Set Test Variable | ${cb} | ${framesize}
-| | Set Test Variable | ${eb} | ${framesize}
-| | Given Add '4' worker threads and '2' rxqueues in 3-node single-link circular topology
-| | And Add PCI devices to DUTs in 3-node single link topology
-| | And Add no multi seg to all DUTs
-| | And Apply startup configuration on all VPP DUTs
-| | And Initialize IPv4 forwarding in 3-node circular topology
-| | And Initialize IPv4 policer 2r3c-'ca' in 3-node circular topology
-| | Then Traffic should pass with no loss | ${perf_trial_duration} | ${rate}
-| | ... | ${framesize} | ${traffic_profile}
+| | ...
+| | [Template] | Check NDR for ethip4-ip4base-ipolicemarkbase
+| | framesize=${64} | rate=10.4mpps | wt=4 | rxq=2
| tc08-1518B-4t4c-ethip4-ip4base-ipolicemarkbase-ndrchk
| | [Documentation]
@@ -194,18 +156,9 @@
| | ... | phy core, 2 receive queue per NIC port. [Ver] Verify ref-NDR for \
| | ... | 1518 Byte frames using single trial throughput test at 2x 812743pps.
| | [Tags] | 1518B | 4T4C | MTHREAD
-| | ${framesize}= | Set Variable | ${1518}
-| | ${rate}= | Set Variable | 812743pps
-| | Set Test Variable | ${cb} | ${framesize}
-| | Set Test Variable | ${eb} | ${framesize}
-| | Given Add '4' worker threads and '2' rxqueues in 3-node single-link circular topology
-| | And Add PCI devices to DUTs in 3-node single link topology
-| | And Add no multi seg to all DUTs
-| | And Apply startup configuration on all VPP DUTs
-| | And Initialize IPv4 forwarding in 3-node circular topology
-| | And Initialize IPv4 policer 2r3c-'ca' in 3-node circular topology
-| | Then Traffic should pass with no loss | ${perf_trial_duration} | ${rate}
-| | ... | ${framesize} | ${traffic_profile}
+| | ...
+| | [Template] | Check NDR for ethip4-ip4base-ipolicemarkbase
+| | framesize=${1518} | rate=812743pps | wt=4 | rxq=2
| tc09-9000B-4t4c-ethip4-ip4base-ipolicemarkbase-ndrchk
| | [Documentation]
@@ -213,14 +166,6 @@
| | ... | phy core, 2 receive queue per NIC port. [Ver] Verify ref-NDR for \
| | ... | 9000 Byte frames using single trial throughput test at 2x 138580pps.
| | [Tags] | 9000B | 4T4C | MTHREAD
-| | ${framesize}= | Set Variable | ${9000}
-| | ${rate}= | Set Variable | 138580pps
-| | Set Test Variable | ${cb} | ${framesize}
-| | Set Test Variable | ${eb} | ${framesize}
-| | Given Add '4' worker threads and '2' rxqueues in 3-node single-link circular topology
-| | And Add PCI devices to DUTs in 3-node single link topology
-| | And Apply startup configuration on all VPP DUTs
-| | And Initialize IPv4 forwarding in 3-node circular topology
-| | And Initialize IPv4 policer 2r3c-'ca' in 3-node circular topology
-| | Then Traffic should pass with no loss | ${perf_trial_duration} | ${rate}
-| | ... | ${framesize} | ${traffic_profile}
+| | ...
+| | [Template] | Check NDR for ethip4-ip4base-ipolicemarkbase
+| | framesize=${9000} | rate=138580pps | wt=4 | rxq=2
diff --git a/tests/vpp/perf/ip4/10ge2p1x520-ethip4-ip4base-ipolicemarkbase-ndrpdrdisc.robot b/tests/vpp/perf/ip4/10ge2p1x520-ethip4-ip4base-ipolicemarkbase-ndrpdrdisc.robot
index aacb16fb2a..63c186c376 100644
--- a/tests/vpp/perf/ip4/10ge2p1x520-ethip4-ip4base-ipolicemarkbase-ndrpdrdisc.robot
+++ b/tests/vpp/perf/ip4/10ge2p1x520-ethip4-ip4base-ipolicemarkbase-ndrpdrdisc.robot
@@ -14,10 +14,6 @@
*** Settings ***
| Resource | resources/libraries/robot/performance/performance_setup.robot
| Library | resources.libraries.python.Policer
-| Library | resources.libraries.python.IPv4Setup.Dut | ${nodes['DUT1']}
-| ... | WITH NAME | dut1_v4
-| Library | resources.libraries.python.IPv4Setup.Dut | ${nodes['DUT2']}
-| ... | WITH NAME | dut2_v4
| ...
| Force Tags | 3_NODE_SINGLE_LINK_TOPO | PERFTEST | HW_ENV | NDRPDRDISC
| ... | NIC_Intel-X520-DA2 | IP4FWD | BASE | DOT1Q
@@ -62,31 +58,53 @@
# Traffic profile:
| ${traffic_profile} | trex-sl-3n-ethip4-ip4src253
-*** Test Cases ***
-| tc01-64B-1t1c-ethip4-ip4base-ipolicemarkbase-ndrdisc
+*** Keywords ***
+| Discover NDR or PDR for ethip4-ip4base-ipolicemarkbase
| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 routing and policer config with 1 thread, 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 | 1T1C | STHREAD | NDRDISC
-| | ${framesize}= | Set Variable | ${64}
-| | ${min_rate}= | Set Variable | ${50000}
-| | ${max_rate}= | Calculate pps | ${s_limit} | ${framesize}
+| | ... | [Cfg] DUT runs IPv4 routing config with ${wt} thread(s), ${wt}\
+| | ... | phy core(s), ${rxq} receive queue(s) per NIC port.
+| | ... | [Ver] Find NDR or PDR for ${framesize} frames using binary search\
+| | ... | start at 10GE linerate.
+| | ...
+| | [Arguments] | ${wt} | ${rxq} | ${framesize} | ${min_rate} | ${search_type}
+| | ...
+| | Set Test Variable | ${framesize}
+| | Set Test Variable | ${min_rate}
+| | Set Test Variable | ${cb} | ${framesize}
+| | Set Test Variable | ${eb} | ${framesize}
+| | ${get_framesize}= | Get Frame Size | ${framesize}
+| | ${max_rate}= | Calculate pps | ${s_limit} | ${get_framesize}
| | ${binary_min}= | Set Variable | ${min_rate}
| | ${binary_max}= | Set Variable | ${max_rate}
| | ${threshold}= | Set Variable | ${min_rate}
-| | Set Test Variable | ${cb} | ${framesize}
-| | Set Test Variable | ${eb} | ${framesize}
-| | Given Add '1' worker threads and '1' rxqueues in 3-node single-link circular topology
+| | Given Add '${wt}' worker threads and '${rxq}' rxqueues in 3-node single-link circular topology
| | And Add PCI devices to DUTs in 3-node single link topology
-| | And Add no multi seg 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
| | When Initialize IPv4 forwarding in 3-node circular topology
| | And Initialize IPv4 policer 2r3c-'ca' in 3-node circular topology
-| | Then Find NDR using binary search and pps | ${framesize} | ${binary_min}
-| | ... | ${binary_max} | ${traffic_profile}
+| | Then Run Keyword If | '${search_type}' == 'NDR'
+| | ... | Find NDR using binary search and pps
+| | ... | ${framesize} | ${binary_min} | ${binary_max} | ${traffic_profile}
+| | ... | ${min_rate} | ${max_rate} | ${threshold}
+| | ... | ELSE IF | '${search_type}' == 'PDR'
+| | ... | Find PDR using binary search and pps
+| | ... | ${framesize} | ${binary_min} | ${binary_max} | ${traffic_profile}
| | ... | ${min_rate} | ${max_rate} | ${threshold}
+| | ... | ${perf_pdr_loss_acceptance} | ${perf_pdr_loss_acceptance_type}
+
+*** Test Cases ***
+| tc01-64B-1t1c-ethip4-ip4base-ipolicemarkbase-ndrdisc
+| | [Documentation]
+| | ... | [Cfg] DUT runs IPv4 routing and policer config with 1 thread, 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 | 1T1C | STHREAD | NDRDISC
+| | ...
+| | [Template] | Discover NDR or PDR for ethip4-ip4base-ipolicemarkbase
+| | wt=1 | rxq=1 | framesize=${64} | min_rate=${50000} | search_type=NDR
| tc02-64B-1t1c-ethip4-ip4base-ipolicemarkbase-pdrdisc
| | [Documentation]
@@ -95,24 +113,9 @@
| | ... | Byte frames using binary search start at 10GE linerate, step \
| | ... | 50kpps, LT=0.5%.
| | [Tags] | 64B | 1T1C | STHREAD | PDRDISC | SKIP_PATCH
-| | ${framesize}= | Set Variable | ${64}
-| | ${min_rate}= | Set Variable | ${50000}
-| | ${max_rate}= | Calculate pps | ${s_limit} | ${framesize}
-| | ${binary_min}= | Set Variable | ${min_rate}
-| | ${binary_max}= | Set Variable | ${max_rate}
-| | ${threshold}= | Set Variable | ${min_rate}
-| | Set Test Variable | ${cb} | ${framesize}
-| | Set Test Variable | ${eb} | ${framesize}
-| | Given Add '1' worker threads and '1' rxqueues in 3-node single-link circular topology
-| | And Add PCI devices to DUTs in 3-node single link topology
-| | And Add no multi seg to all DUTs
-| | And Apply startup configuration on all VPP DUTs
-| | When Initialize IPv4 forwarding in 3-node circular topology
-| | And Initialize IPv4 policer 2r3c-'ca' in 3-node circular topology
-| | Then Find PDR using binary search and pps | ${framesize} | ${binary_min}
-| | ... | ${binary_max} | ${traffic_profile}
-| | ... | ${min_rate} | ${max_rate} | ${threshold}
-| | ... | ${perf_pdr_loss_acceptance} | ${perf_pdr_loss_acceptance_type}
+| | ...
+| | [Template] | Discover NDR or PDR for ethip4-ip4base-ipolicemarkbase
+| | wt=1 | rxq=1 | framesize=${64} | min_rate=${50000} | search_type=PDR
| tc03-1518B-1t1c-ethip4-ip4base-ipolicemarkbase-ndrdisc
| | [Documentation]
@@ -121,23 +124,9 @@
| | ... | Byte frames using binary search start at 10GE linerate, step \
| | ... | 50kpps.
| | [Tags] | 1518B | 1T1C | STHREAD | NDRDISC
-| | ${framesize}= | Set Variable | ${1518}
-| | ${min_rate}= | Set Variable | ${50000}
-| | ${max_rate}= | Calculate pps | ${s_limit} | ${framesize}
-| | ${binary_min}= | Set Variable | ${min_rate}
-| | ${binary_max}= | Set Variable | ${max_rate}
-| | ${threshold}= | Set Variable | ${min_rate}
-| | Set Test Variable | ${cb} | ${framesize}
-| | Set Test Variable | ${eb} | ${framesize}
-| | Given Add '1' worker threads and '1' rxqueues in 3-node single-link circular topology
-| | And Add PCI devices to DUTs in 3-node single link topology
-| | And Add no multi seg to all DUTs
-| | And Apply startup configuration on all VPP DUTs
-| | When Initialize IPv4 forwarding in 3-node circular topology
-| | And Initialize IPv4 policer 2r3c-'ca' in 3-node circular topology
-| | Then Find NDR using binary search and pps | ${framesize} | ${binary_min}
-| | ... | ${binary_max} | ${traffic_profile}
-| | ... | ${min_rate} | ${max_rate} | ${threshold}
+| | ...
+| | [Template] | Discover NDR or PDR for ethip4-ip4base-ipolicemarkbase
+| | wt=1 | rxq=1 | framesize=${1518} | min_rate=${50000} | search_type=NDR
| tc04-1518B-1t1c-ethip4-ip4base-ipolicemarkbase-pdrdisc
| | [Documentation]
@@ -146,24 +135,9 @@
| | ... | Byte frames using binary search start at 10GE linerate, step \
| | ... | 50kpps, LT=0.5%.
| | [Tags] | 1518B | 1T1C | STHREAD | PDRDISC | SKIP_PATCH
-| | ${framesize}= | Set Variable | ${1518}
-| | ${min_rate}= | Set Variable | ${50000}
-| | ${max_rate}= | Calculate pps | ${s_limit} | ${framesize}
-| | ${binary_min}= | Set Variable | ${min_rate}
-| | ${binary_max}= | Set Variable | ${max_rate}
-| | ${threshold}= | Set Variable | ${min_rate}
-| | Set Test Variable | ${cb} | ${framesize}
-| | Set Test Variable | ${eb} | ${framesize}
-| | Given Add '1' worker threads and '1' rxqueues in 3-node single-link circular topology
-| | And Add PCI devices to DUTs in 3-node single link topology
-| | And Add no multi seg to all DUTs
-| | And Apply startup configuration on all VPP DUTs
-| | When Initialize IPv4 forwarding in 3-node circular topology
-| | And Initialize IPv4 policer 2r3c-'ca' in 3-node circular topology
-| | Then Find PDR using binary search and pps | ${framesize} | ${binary_min}
-| | ... | ${binary_max} | ${traffic_profile}
-| | ... | ${min_rate} | ${max_rate} | ${threshold}
-| | ... | ${perf_pdr_loss_acceptance} | ${perf_pdr_loss_acceptance_type}
+| | ...
+| | [Template] | Discover NDR or PDR for ethip4-ip4base-ipolicemarkbase
+| | wt=1 | rxq=1 | framesize=${1518} | min_rate=${50000} | search_type=PDR
| tc05-9000B-1t1c-ethip4-ip4base-ipolicemarkbase-ndrdisc
| | [Documentation]
@@ -172,22 +146,9 @@
| | ... | Byte frames using binary search start at 10GE linerate, step \
| | ... | 10kpps.
| | [Tags] | 9000B | 1T1C | STHREAD | NDRDISC
-| | ${framesize}= | Set Variable | ${9000}
-| | ${min_rate}= | Set Variable | ${10000}
-| | ${max_rate}= | Calculate pps | ${s_limit} | ${framesize}
-| | ${binary_min}= | Set Variable | ${min_rate}
-| | ${binary_max}= | Set Variable | ${max_rate}
-| | ${threshold}= | Set Variable | ${min_rate}
-| | Set Test Variable | ${cb} | ${framesize}
-| | Set Test Variable | ${eb} | ${framesize}
-| | Given Add '1' worker threads and '1' rxqueues in 3-node single-link circular topology
-| | And Add PCI devices to DUTs in 3-node single link topology
-| | And Apply startup configuration on all VPP DUTs
-| | When Initialize IPv4 forwarding in 3-node circular topology
-| | And Initialize IPv4 policer 2r3c-'ca' in 3-node circular topology
-| | Then Find NDR using binary search and pps | ${framesize} | ${binary_min}
-| | ... | ${binary_max} | ${traffic_profile}
-| | ... | ${min_rate} | ${max_rate} | ${threshold}
+| | ...
+| | [Template] | Discover NDR or PDR for ethip4-ip4base-ipolicemarkbase
+| | wt=1 | rxq=1 | framesize=${9000} | min_rate=${10000} | search_type=NDR
| tc06-9000B-1t1c-ethip4-ip4base-ipolicemarkbase-pdrdisc
| | [Documentation]
@@ -196,23 +157,9 @@
| | ... | Byte frames using binary search start at 10GE linerate, step 10kpps, \
| | ... | LT=0.5%.
| | [Tags] | 9000B | 1T1C | STHREAD | PDRDISC | SKIP_PATCH
-| | ${framesize}= | Set Variable | ${9000}
-| | ${min_rate}= | Set Variable | ${10000}
-| | ${max_rate}= | Calculate pps | ${s_limit} | ${framesize}
-| | ${binary_min}= | Set Variable | ${min_rate}
-| | ${binary_max}= | Set Variable | ${max_rate}
-| | ${threshold}= | Set Variable | ${min_rate}
-| | Set Test Variable | ${cb} | ${framesize}
-| | Set Test Variable | ${eb} | ${framesize}
-| | Given Add '1' worker threads and '1' rxqueues in 3-node single-link circular topology
-| | And Add PCI devices to DUTs in 3-node single link topology
-| | And Apply startup configuration on all VPP DUTs
-| | When Initialize IPv4 forwarding in 3-node circular topology
-| | And Initialize IPv4 policer 2r3c-'ca' in 3-node circular topology
-| | Then Find PDR using binary search and pps | ${framesize} | ${binary_min}
-| | ... | ${binary_max} | ${traffic_profile}
-| | ... | ${min_rate} | ${max_rate} | ${threshold}
-| | ... | ${perf_pdr_loss_acceptance} | ${perf_pdr_loss_acceptance_type}
+| | ...
+| | [Template] | Discover NDR or PDR for ethip4-ip4base-ipolicemarkbase
+| | wt=1 | rxq=1 | framesize=${9000} | min_rate=${10000} | search_type=PDR
| tc07-64B-2t2c-ethip4-ip4base-ipolicemarkbase-ndrdisc
| | [Documentation]
@@ -221,23 +168,9 @@
| | ... | Byte frames using binary search start at 10GE linerate, step \
| | ... | 50kpps.
| | [Tags] | 64B | 2T2C | MTHREAD | NDRDISC
-| | ${framesize}= | Set Variable | ${64}
-| | ${min_rate}= | Set Variable | ${50000}
-| | ${max_rate}= | Calculate pps | ${s_limit} | ${framesize}
-| | ${binary_min}= | Set Variable | ${min_rate}
-| | ${binary_max}= | Set Variable | ${max_rate}
-| | ${threshold}= | Set Variable | ${min_rate}
-| | Set Test Variable | ${cb} | ${framesize}
-| | Set Test Variable | ${eb} | ${framesize}
-| | Given Add '2' worker threads and '1' rxqueues in 3-node single-link circular topology
-| | And Add PCI devices to DUTs in 3-node single link topology
-| | And Add no multi seg to all DUTs
-| | And Apply startup configuration on all VPP DUTs
-| | When Initialize IPv4 forwarding in 3-node circular topology
-| | And Initialize IPv4 policer 2r3c-'ca' in 3-node circular topology
-| | Then Find NDR using binary search and pps | ${framesize} | ${binary_min}
-| | ... | ${binary_max} | ${traffic_profile}
-| | ... | ${min_rate} | ${max_rate} | ${threshold}
+| | ...
+| | [Template] | Discover NDR or PDR for ethip4-ip4base-ipolicemarkbase
+| | wt=2 | rxq=1 | framesize=${64} | min_rate=${50000} | search_type=NDR
| tc08-64B-2t2c-ethip4-ip4base-ipolicemarkbase-pdrdisc
| | [Documentation]
@@ -246,24 +179,9 @@
| | ... | Byte frames using binary search start at 10GE linerate, step \
| | ... | 50kpps, LT=0.5%.
| | [Tags] | 64B | 2T2C | MTHREAD | PDRDISC | SKIP_PATCH
-| | ${framesize}= | Set Variable | ${64}
-| | ${min_rate}= | Set Variable | ${50000}
-| | ${max_rate}= | Calculate pps | ${s_limit} | ${framesize}
-| | ${binary_min}= | Set Variable | ${min_rate}
-| | ${binary_max}= | Set Variable | ${max_rate}
-| | ${threshold}= | Set Variable | ${min_rate}
-| | Set Test Variable | ${cb} | ${framesize}
-| | Set Test Variable | ${eb} | ${framesize}
-| | Given Add '2' worker threads and '1' rxqueues in 3-node single-link circular topology
-| | And Add PCI devices to DUTs in 3-node single link topology
-| | And Add no multi seg to all DUTs
-| | And Apply startup configuration on all VPP DUTs
-| | When Initialize IPv4 forwarding in 3-node circular topology
-| | And Initialize IPv4 policer 2r3c-'ca' in 3-node circular topology
-| | Then Find PDR using binary search and pps | ${framesize} | ${binary_min}
-| | ... | ${binary_max} | ${traffic_profile}
-| | ... | ${min_rate} | ${max_rate} | ${threshold}
-| | ... | ${perf_pdr_loss_acceptance} | ${perf_pdr_loss_acceptance_type}
+| | ...
+| | [Template] | Discover NDR or PDR for ethip4-ip4base-ipolicemarkbase
+| | wt=2 | rxq=1 | framesize=${64} | min_rate=${50000} | search_type=PDR
| tc09-1518B-2t2c-ethip4-ip4base-ipolicemarkbase-ndrdisc
| | [Documentation]
@@ -272,23 +190,9 @@
| | ... | Byte frames using binary search start at 10GE linerate, step \
| | ... | 50kpps.
| | [Tags] | 1518B | 2T2C | MTHREAD | NDRDISC | SKIP_PATCH
-| | ${framesize}= | Set Variable | ${1518}
-| | ${min_rate}= | Set Variable | ${50000}
-| | ${max_rate}= | Calculate pps | ${s_limit} | ${framesize}
-| | ${binary_min}= | Set Variable | ${min_rate}
-| | ${binary_max}= | Set Variable | ${max_rate}
-| | ${threshold}= | Set Variable | ${min_rate}
-| | Set Test Variable | ${cb} | ${framesize}
-| | Set Test Variable | ${eb} | ${framesize}
-| | Given Add '2' worker threads and '1' rxqueues in 3-node single-link circular topology
-| | And Add PCI devices to DUTs in 3-node single link topology
-| | And Add no multi seg to all DUTs
-| | And Apply startup configuration on all VPP DUTs
-| | When Initialize IPv4 forwarding in 3-node circular topology
-| | And Initialize IPv4 policer 2r3c-'ca' in 3-node circular topology
-| | Then Find NDR using binary search and pps | ${framesize} | ${binary_min}
-| | ... | ${binary_max} | ${traffic_profile}
-| | ... | ${min_rate} | ${max_rate} | ${threshold}
+| | ...
+| | [Template] | Discover NDR or PDR for ethip4-ip4base-ipolicemarkbase
+| | wt=2 | rxq=1 | framesize=${1518} | min_rate=${50000} | search_type=NDR
| tc10-1518B-2t2c-ethip4-ip4base-ipolicemarkbase-pdrdisc
| | [Documentation]
@@ -297,24 +201,9 @@
| | ... | Byte frames using binary search start at 10GE linerate, step \
| | ... | 50kpps, LT=0.5%.
| | [Tags] | 1518B | 2T2C | MTHREAD | PDRDISC | SKIP_PATCH
-| | ${framesize}= | Set Variable | ${1518}
-| | ${min_rate}= | Set Variable | ${50000}
-| | ${max_rate}= | Calculate pps | ${s_limit} | ${framesize}
-| | ${binary_min}= | Set Variable | ${min_rate}
-| | ${binary_max}= | Set Variable | ${max_rate}
-| | ${threshold}= | Set Variable | ${min_rate}
-| | Set Test Variable | ${cb} | ${framesize}
-| | Set Test Variable | ${eb} | ${framesize}
-| | Given Add '2' worker threads and '1' rxqueues in 3-node single-link circular topology
-| | And Add PCI devices to DUTs in 3-node single link topology
-| | And Add no multi seg to all DUTs
-| | And Apply startup configuration on all VPP DUTs
-| | When Initialize IPv4 forwarding in 3-node circular topology
-| | And Initialize IPv4 policer 2r3c-'ca' in 3-node circular topology
-| | Then Find PDR using binary search and pps | ${framesize} | ${binary_min}
-| | ... | ${binary_max} | ${traffic_profile}
-| | ... | ${min_rate} | ${max_rate} | ${threshold}
-| | ... | ${perf_pdr_loss_acceptance} | ${perf_pdr_loss_acceptance_type}
+| | ...
+| | [Template] | Discover NDR or PDR for ethip4-ip4base-ipolicemarkbase
+| | wt=2 | rxq=1 | framesize=${1518} | min_rate=${50000} | search_type=PDR
| tc11-9000B-2t2c-ethip4-ip4base-ipolicemarkbase-ndrdisc
| | [Documentation]
@@ -323,22 +212,9 @@
| | ... | Byte frames using binary search start at 10GE linerate, step \
| | ... | 10kpps.
| | [Tags] | 9000B | 2T2C | MTHREAD | NDRDISC | SKIP_PATCH
-| | ${framesize}= | Set Variable | ${9000}
-| | ${min_rate}= | Set Variable | ${10000}
-| | ${max_rate}= | Calculate pps | ${s_limit} | ${framesize}
-| | ${binary_min}= | Set Variable | ${min_rate}
-| | ${binary_max}= | Set Variable | ${max_rate}
-| | ${threshold}= | Set Variable | ${min_rate}
-| | Set Test Variable | ${cb} | ${framesize}
-| | Set Test Variable | ${eb} | ${framesize}
-| | Given Add '2' worker threads and '1' rxqueues in 3-node single-link circular topology
-| | And Add PCI devices to DUTs in 3-node single link topology
-| | And Apply startup configuration on all VPP DUTs
-| | When Initialize IPv4 forwarding in 3-node circular topology
-| | And Initialize IPv4 policer 2r3c-'ca' in 3-node circular topology
-| | Then Find NDR using binary search and pps | ${framesize} | ${binary_min}
-| | ... | ${binary_max} | ${traffic_profile}
-| | ... | ${min_rate} | ${max_rate} | ${threshold}
+| | ...
+| | [Template] | Discover NDR or PDR for ethip4-ip4base-ipolicemarkbase
+| | wt=2 | rxq=1 | framesize=${9000} | min_rate=${10000} | search_type=NDR
| tc12-9000B-2t2c-ethip4-ip4base-ipolicemarkbase-pdrdisc
| | [Documentation]
@@ -347,23 +223,9 @@
| | ... | Byte frames using binary search start at 10GE linerate, step 10kpps, \
| | ... | LT=0.5%.
| | [Tags] | 9000B | 2T2C | MTHREAD | PDRDISC | SKIP_PATCH
-| | ${framesize}= | Set Variable | ${9000}
-| | ${min_rate}= | Set Variable | ${10000}
-| | ${max_rate}= | Calculate pps | ${s_limit} | ${framesize}
-| | ${binary_min}= | Set Variable | ${min_rate}
-| | ${binary_max}= | Set Variable | ${max_rate}
-| | ${threshold}= | Set Variable | ${min_rate}
-| | Set Test Variable | ${cb} | ${framesize}
-| | Set Test Variable | ${eb} | ${framesize}
-| | Given Add '2' worker threads and '1' rxqueues in 3-node single-link circular topology
-| | And Add PCI devices to DUTs in 3-node single link topology
-| | And Apply startup configuration on all VPP DUTs
-| | When Initialize IPv4 forwarding in 3-node circular topology
-| | And Initialize IPv4 policer 2r3c-'ca' in 3-node circular topology
-| | Then Find PDR using binary search and pps | ${framesize} | ${binary_min}
-| | ... | ${binary_max} | ${traffic_profile}
-| | ... | ${min_rate} | ${max_rate} | ${threshold}
-| | ... | ${perf_pdr_loss_acceptance} | ${perf_pdr_loss_acceptance_type}
+| | ...
+| | [Template] | Discover NDR or PDR for ethip4-ip4base-ipolicemarkbase
+| | wt=2 | rxq=1 | framesize=${9000} | min_rate=${10000} | search_type=PDR
| tc13-64B-4t4c-ethip4-ip4base-ipolicemarkbase-ndrdisc
| | [Documentation]
@@ -372,23 +234,9 @@
| | ... | Byte frames using binary search start at 10GE linerate, step \
| | ... | 50kpps.
| | [Tags] | 64B | 4T4C | MTHREAD | NDRDISC
-| | ${framesize}= | Set Variable | ${64}
-| | ${min_rate}= | Set Variable | ${50000}
-| | ${max_rate}= | Calculate pps | ${s_limit} | ${framesize}
-| | ${binary_min}= | Set Variable | ${min_rate}
-| | ${binary_max}= | Set Variable | ${max_rate}
-| | ${threshold}= | Set Variable | ${min_rate}
-| | Set Test Variable | ${cb} | ${framesize}
-| | Set Test Variable | ${eb} | ${framesize}
-| | Given Add '4' worker threads and '2' rxqueues in 3-node single-link circular topology
-| | And Add PCI devices to DUTs in 3-node single link topology
-| | And Add no multi seg to all DUTs
-| | And Apply startup configuration on all VPP DUTs
-| | When Initialize IPv4 forwarding in 3-node circular topology
-| | And Initialize IPv4 policer 2r3c-'ca' in 3-node circular topology
-| | Then Find NDR using binary search and pps | ${framesize} | ${binary_min}
-| | ... | ${binary_max} | ${traffic_profile}
-| | ... | ${min_rate} | ${max_rate} | ${threshold}
+| | ...
+| | [Template] | Discover NDR or PDR for ethip4-ip4base-ipolicemarkbase
+| | wt=4 | rxq=2 | framesize=${64} | min_rate=${50000} | search_type=NDR
| tc14-64B-4t4c-ethip4-ip4base-ipolicemarkbase-pdrdisc
| | [Documentation]
@@ -397,24 +245,9 @@
| | ... | Byte frames using binary search start at 10GE linerate, step \
| | ... | 50kpps, LT=0.5%.
| | [Tags] | 64B | 4T4C | MTHREAD | PDRDISC | SKIP_PATCH
-| | ${framesize}= | Set Variable | ${64}
-| | ${min_rate}= | Set Variable | ${50000}
-| | ${max_rate}= | Calculate pps | ${s_limit} | ${framesize}
-| | ${binary_min}= | Set Variable | ${min_rate}
-| | ${binary_max}= | Set Variable | ${max_rate}
-| | ${threshold}= | Set Variable | ${min_rate}
-| | Set Test Variable | ${cb} | ${framesize}
-| | Set Test Variable | ${eb} | ${framesize}
-| | Given Add '4' worker threads and '2' rxqueues in 3-node single-link circular topology
-| | And Add PCI devices to DUTs in 3-node single link topology
-| | And Add no multi seg to all DUTs
-| | And Apply startup configuration on all VPP DUTs
-| | When Initialize IPv4 forwarding in 3-node circular topology
-| | And Initialize IPv4 policer 2r3c-'ca' in 3-node circular topology
-| | Then Find PDR using binary search and pps | ${framesize} | ${binary_min}
-| | ... | ${binary_max} | ${traffic_profile}
-| | ... | ${min_rate} | ${max_rate} | ${threshold}
-| | ... | ${perf_pdr_loss_acceptance} | ${perf_pdr_loss_acceptance_type}
+| | ...
+| | [Template] | Discover NDR or PDR for ethip4-ip4base-ipolicemarkbase
+| | wt=4 | rxq=2 | framesize=${64} | min_rate=${50000} | search_type=PDR
| tc15-1518B-4t4c-ethip4-ip4base-ipolicemarkbase-ndrdisc
| | [Documentation]
@@ -423,23 +256,9 @@
| | ... | Byte frames using binary search start at 10GE linerate, step \
| | ... | 50kpps.
| | [Tags] | 1518B | 4T4C | MTHREAD | NDRDISC | SKIP_PATCH
-| | ${framesize}= | Set Variable | ${1518}
-| | ${min_rate}= | Set Variable | ${50000}
-| | ${max_rate}= | Calculate pps | ${s_limit} | ${framesize}
-| | ${binary_min}= | Set Variable | ${min_rate}
-| | ${binary_max}= | Set Variable | ${max_rate}
-| | ${threshold}= | Set Variable | ${min_rate}
-| | Set Test Variable | ${cb} | ${framesize}
-| | Set Test Variable | ${eb} | ${framesize}
-| | Given Add '4' worker threads and '2' rxqueues in 3-node single-link circular topology
-| | And Add PCI devices to DUTs in 3-node single link topology
-| | And Add no multi seg to all DUTs
-| | And Apply startup configuration on all VPP DUTs
-| | When Initialize IPv4 forwarding in 3-node circular topology
-| | And Initialize IPv4 policer 2r3c-'ca' in 3-node circular topology
-| | Then Find NDR using binary search and pps | ${framesize} | ${binary_min}
-| | ... | ${binary_max} | ${traffic_profile}
-| | ... | ${min_rate} | ${max_rate} | ${threshold}
+| | ...
+| | [Template] | Discover NDR or PDR for ethip4-ip4base-ipolicemarkbase
+| | wt=4 | rxq=2 | framesize=${1518} | min_rate=${50000} | search_type=NDR
| tc16-1518B-4t4c-ethip4-ip4base-ipolicemarkbase-pdrdisc
| | [Documentation]
@@ -448,24 +267,9 @@
| | ... | Byte frames using binary search start at 10GE linerate, step \
| | ... | 50kpps, LT=0.5%.
| | [Tags] | 1518B | 4T4C | MTHREAD | PDRDISC | SKIP_PATCH
-| | ${framesize}= | Set Variable | ${1518}
-| | ${min_rate}= | Set Variable | ${50000}
-| | ${max_rate}= | Calculate pps | ${s_limit} | ${framesize}
-| | ${binary_min}= | Set Variable | ${min_rate}
-| | ${binary_max}= | Set Variable | ${max_rate}
-| | ${threshold}= | Set Variable | ${min_rate}
-| | Set Test Variable | ${cb} | ${framesize}
-| | Set Test Variable | ${eb} | ${framesize}
-| | Given Add '4' worker threads and '2' rxqueues in 3-node single-link circular topology
-| | And Add PCI devices to DUTs in 3-node single link topology
-| | And Add no multi seg to all DUTs
-| | And Apply startup configuration on all VPP DUTs
-| | When Initialize IPv4 forwarding in 3-node circular topology
-| | And Initialize IPv4 policer 2r3c-'ca' in 3-node circular topology
-| | Then Find PDR using binary search and pps | ${framesize} | ${binary_min}
-| | ... | ${binary_max} | ${traffic_profile}
-| | ... | ${min_rate} | ${max_rate} | ${threshold}
-| | ... | ${perf_pdr_loss_acceptance} | ${perf_pdr_loss_acceptance_type}
+| | ...
+| | [Template] | Discover NDR or PDR for ethip4-ip4base-ipolicemarkbase
+| | wt=4 | rxq=2 | framesize=${1518} | min_rate=${50000} | search_type=PDR
| tc17-9000B-4t4c-ethip4-ip4base-ipolicemarkbase-ndrdisc
| | [Documentation]
@@ -474,22 +278,9 @@
| | ... | Byte frames using binary search start at 10GE linerate, step \
| | ... | 10kpps.
| | [Tags] | 9000B | 4T4C | MTHREAD | NDRDISC | SKIP_PATCH
-| | ${framesize}= | Set Variable | ${9000}
-| | ${min_rate}= | Set Variable | ${10000}
-| | ${max_rate}= | Calculate pps | ${s_limit} | ${framesize}
-| | ${binary_min}= | Set Variable | ${min_rate}
-| | ${binary_max}= | Set Variable | ${max_rate}
-| | ${threshold}= | Set Variable | ${min_rate}
-| | Set Test Variable | ${cb} | ${framesize}
-| | Set Test Variable | ${eb} | ${framesize}
-| | Given Add '4' worker threads and '2' rxqueues in 3-node single-link circular topology
-| | And Add PCI devices to DUTs in 3-node single link topology
-| | And Apply startup configuration on all VPP DUTs
-| | When Initialize IPv4 forwarding in 3-node circular topology
-| | And Initialize IPv4 policer 2r3c-'ca' in 3-node circular topology
-| | Then Find NDR using binary search and pps | ${framesize} | ${binary_min}
-| | ... | ${binary_max} | ${traffic_profile}
-| | ... | ${min_rate} | ${max_rate} | ${threshold}
+| | ...
+| | [Template] | Discover NDR or PDR for ethip4-ip4base-ipolicemarkbase
+| | wt=4 | rxq=2 | framesize=${9000} | min_rate=${10000} | search_type=NDR
| tc18-9000B-4t4c-ethip4-ip4base-ipolicemarkbase-pdrdisc
| | [Documentation]
@@ -498,20 +289,6 @@
| | ... | Byte frames using binary search start at 10GE linerate, step 10kpps, \
| | ... | LT=0.5%.
| | [Tags] | 9000B | 4T4C | MTHREAD | PDRDISC | SKIP_PATCH
-| | ${framesize}= | Set Variable | ${9000}
-| | ${min_rate}= | Set Variable | ${10000}
-| | ${max_rate}= | Calculate pps | ${s_limit} | ${framesize}
-| | ${binary_min}= | Set Variable | ${min_rate}
-| | ${binary_max}= | Set Variable | ${max_rate}
-| | ${threshold}= | Set Variable | ${min_rate}
-| | Set Test Variable | ${cb} | ${framesize}
-| | Set Test Variable | ${eb} | ${framesize}
-| | Given Add '4' worker threads and '2' rxqueues in 3-node single-link circular topology
-| | And Add PCI devices to DUTs in 3-node single link topology
-| | And Apply startup configuration on all VPP DUTs
-| | When Initialize IPv4 forwarding in 3-node circular topology
-| | And Initialize IPv4 policer 2r3c-'ca' in 3-node circular topology
-| | Then Find PDR using binary search and pps | ${framesize} | ${binary_min}
-| | ... | ${binary_max} | ${traffic_profile}
-| | ... | ${min_rate} | ${max_rate} | ${threshold}
-| | ... | ${perf_pdr_loss_acceptance} | ${perf_pdr_loss_acceptance_type}
+| | ...
+| | [Template] | Discover NDR or PDR for ethip4-ip4base-ipolicemarkbase
+| | wt=4 | rxq=2 | framesize=${9000} | min_rate=${10000} | search_type=PDR
diff --git a/tests/vpp/perf/ip4/10ge2p1x520-ethip4-ip4base-ndrchk.robot b/tests/vpp/perf/ip4/10ge2p1x520-ethip4-ip4base-ndrchk.robot
index 61ee13cc3f..0bccc2920e 100644
--- a/tests/vpp/perf/ip4/10ge2p1x520-ethip4-ip4base-ndrchk.robot
+++ b/tests/vpp/perf/ip4/10ge2p1x520-ethip4-ip4base-ndrchk.robot
@@ -13,13 +13,6 @@
*** Settings ***
| Resource | resources/libraries/robot/performance/performance_setup.robot
-| Library | resources.libraries.python.topology.Topology
-| Library | resources.libraries.python.NodePath
-| Library | resources.libraries.python.InterfaceUtil
-| Library | resources.libraries.python.IPv4Setup.Dut | ${nodes['DUT1']}
-| ... | WITH NAME | dut1_v4
-| Library | resources.libraries.python.IPv4Setup.Dut | ${nodes['DUT2']}
-| ... | WITH NAME | dut2_v4
| ...
| Force Tags | 3_NODE_SINGLE_LINK_TOPO | PERFTEST | HW_ENV | NDRCHK
| ... | NIC_Intel-X520-DA2 | ETH | IP4FWD | BASE | IP4BASE
@@ -55,6 +48,30 @@
# Traffic profile:
| ${traffic_profile} | trex-sl-3n-ethip4-ip4src253
+*** Keywords ***
+| Check NDR for ethip4-ip4base
+| | [Documentation]
+| | ... | [Cfg] DUT runs IPv4 routing config with ${wt} thread(s), ${wt}\
+| | ... | phy core(s), ${rxq} receive queue(s) per NIC port.
+| | ... | [Ver] Verify ref-NDR for ${framesize} frames using single trial\
+| | ... | throughput test at 2x ${rate}.
+| | ...
+| | [Arguments] | ${framesize} | ${rate} | ${wt} | ${rxq}
+| | ...
+| | # Test Variables required for test teardown
+| | Set Test Variable | ${framesize}
+| | Set Test Variable | ${rate}
+| | ${get_framesize}= | Get Frame Size | ${framesize}
+| | ...
+| | Given Add '${wt}' worker threads and '${rxq}' rxqueues in 3-node single-link circular topology
+| | And Add PCI devices to DUTs in 3-node single link topology
+| | And Run Keyword If | ${get_framesize} < ${1522}
+| | ... | Add no multi seg to all DUTs
+| | And Apply startup configuration on all VPP DUTs
+| | And Initialize IPv4 forwarding in 3-node circular topology
+| | Then Traffic should pass with no loss | ${perf_trial_duration}
+| | ... | ${rate} | ${framesize} | ${traffic_profile}
+
*** Test Cases ***
| tc01-64B-1t1c-ethip4-ip4base-ndrchk
| | [Documentation]
@@ -62,15 +79,9 @@
| | ... | 1 receive queue per NIC port. [Ver] Verify ref-NDR for 64 Byte
| | ... | frames using single trial throughput test at 2x 4.6mpps.
| | [Tags] | 64B | 1T1C | STHREAD
-| | ${framesize}= | Set Variable | ${64}
-| | ${rate}= | Set Variable | 4.6mpps
-| | Given Add '1' worker threads and '1' rxqueues in 3-node single-link circular topology
-| | And Add PCI devices to DUTs in 3-node single link topology
-| | And Add no multi seg to all DUTs
-| | And Apply startup configuration on all VPP DUTs
-| | And Initialize IPv4 forwarding in 3-node circular topology
-| | Then Traffic should pass with no loss | ${perf_trial_duration} | ${rate}
-| | ... | ${framesize} | ${traffic_profile}
+| | ...
+| | [Template] | Check NDR for ethip4-ip4base
+| | framesize=${64} | rate=4.6mpps | wt=1 | rxq=1
| tc02-1518B-1t1c-ethip4-ip4base-ndrchk
| | [Documentation]
@@ -78,15 +89,9 @@
| | ... | 1 receive queue per NIC port. [Ver] Verify ref-NDR for 1518 Byte
| | ... | frames using single trial throughput test at 2x 812743pps.
| | [Tags] | 1518B | 1T1C | STHREAD
-| | ${framesize}= | Set Variable | ${1518}
-| | ${rate}= | Set Variable | 812743pps
-| | Given Add '1' worker threads and '1' rxqueues in 3-node single-link circular topology
-| | And Add PCI devices to DUTs in 3-node single link topology
-| | And Add no multi seg to all DUTs
-| | And Apply startup configuration on all VPP DUTs
-| | And Initialize IPv4 forwarding in 3-node circular topology
-| | Then Traffic should pass with no loss | ${perf_trial_duration} | ${rate}
-| | ... | ${framesize} | ${traffic_profile}
+| | ...
+| | [Template] | Check NDR for ethip4-ip4base
+| | framesize=${1518} | rate=812743pps | wt=1 | rxq=1
| tc03-9000B-1t1c-ethip4-ip4base-ndrchk
| | [Documentation]
@@ -94,14 +99,9 @@
| | ... | 1 receive queue per NIC port. [Ver] Verify ref-NDR for 9000 Byte
| | ... | frames using single trial throughput test at 2x 138580pps.
| | [Tags] | 9000B | 1T1C | STHREAD
-| | ${framesize}= | Set Variable | ${9000}
-| | ${rate}= | Set Variable | 138580pps
-| | Given Add '1' worker threads and '1' rxqueues in 3-node single-link circular topology
-| | And Add PCI devices to DUTs in 3-node single link topology
-| | And Apply startup configuration on all VPP DUTs
-| | And Initialize IPv4 forwarding in 3-node circular topology
-| | Then Traffic should pass with no loss | ${perf_trial_duration} | ${rate}
-| | ... | ${framesize} | ${traffic_profile}
+| | ...
+| | [Template] | Check NDR for ethip4-ip4base
+| | framesize=${9000} | rate=138580pps | wt=1 | rxq=1
| tc04-64B-2t2c-ethip4-ip4base-ndrchk
| | [Documentation]
@@ -109,15 +109,9 @@
| | ... | 1 receive queue per NIC port. [Ver] Verify ref-NDR for 64 Byte
| | ... | frames using single trial throughput test at 2x 9.4mpps.
| | [Tags] | 64B | 2T2C | MTHREAD
-| | ${framesize}= | Set Variable | ${64}
-| | ${rate}= | Set Variable | 9.4mpps
-| | Given Add '2' worker threads and '1' rxqueues in 3-node single-link circular topology
-| | And Add PCI devices to DUTs in 3-node single link topology
-| | And Add no multi seg to all DUTs
-| | And Apply startup configuration on all VPP DUTs
-| | And Initialize IPv4 forwarding in 3-node circular topology
-| | Then Traffic should pass with no loss | ${perf_trial_duration} | ${rate}
-| | ... | ${framesize} | ${traffic_profile}
+| | ...
+| | [Template] | Check NDR for ethip4-ip4base
+| | framesize=${64} | rate=9.4mpps | wt=2 | rxq=1
| tc05-1518B-2t2c-ethip4-ip4base-ndrchk
| | [Documentation]
@@ -125,15 +119,9 @@
| | ... | 1 receive queue per NIC port. [Ver] Verify ref-NDR for 1518 Byte
| | ... | frames using single trial throughput test at 2x 812743pps.
| | [Tags] | 1518B | 2T2C | MTHREAD
-| | ${framesize}= | Set Variable | ${1518}
-| | ${rate}= | Set Variable | 812743pps
-| | Given Add '2' worker threads and '1' rxqueues in 3-node single-link circular topology
-| | And Add PCI devices to DUTs in 3-node single link topology
-| | And Add no multi seg to all DUTs
-| | And Apply startup configuration on all VPP DUTs
-| | And Initialize IPv4 forwarding in 3-node circular topology
-| | Then Traffic should pass with no loss | ${perf_trial_duration} | ${rate}
-| | ... | ${framesize} | ${traffic_profile}
+| | ...
+| | [Template] | Check NDR for ethip4-ip4base
+| | framesize=${1518} | rate=812743pps | wt=2 | rxq=1
| tc06-9000B-2t2c-ethip4-ip4base-ndrchk
| | [Documentation]
@@ -141,14 +129,9 @@
| | ... | 1 receive queue per NIC port. [Ver] Verify ref-NDR for 9000 Byte
| | ... | frames using single trial throughput test at 2x 138580pps.
| | [Tags] | 9000B | 2T2C | MTHREAD
-| | ${framesize}= | Set Variable | ${9000}
-| | ${rate}= | Set Variable | 138580pps
-| | Given Add '2' worker threads and '1' rxqueues in 3-node single-link circular topology
-| | And Add PCI devices to DUTs in 3-node single link topology
-| | And Apply startup configuration on all VPP DUTs
-| | And Initialize IPv4 forwarding in 3-node circular topology
-| | Then Traffic should pass with no loss | ${perf_trial_duration} | ${rate}
-| | ... | ${framesize} | ${traffic_profile}
+| | ...
+| | [Template] | Check NDR for ethip4-ip4base
+| | framesize=${9000} | rate=138580pps | wt=2 | rxq=1
| tc07-64B-4t4c-ethip4-ip4base-ndrchk
| | [Documentation]
@@ -156,15 +139,9 @@
| | ... | 2 receive queues per NIC port. [Ver] Verify ref-NDR for 64 Byte
| | ... | frames using single trial throughput test at 2x 10.4mpps.
| | [Tags] | 64B | 4T4C | MTHREAD
-| | ${framesize}= | Set Variable | ${64}
-| | ${rate}= | Set Variable | 10.4mpps
-| | Given Add '4' worker threads and '2' rxqueues in 3-node single-link circular topology
-| | And Add PCI devices to DUTs in 3-node single link topology
-| | And Add no multi seg to all DUTs
-| | And Apply startup configuration on all VPP DUTs
-| | And Initialize IPv4 forwarding in 3-node circular topology
-| | Then Traffic should pass with no loss | ${perf_trial_duration} | ${rate}
-| | ... | ${framesize} | ${traffic_profile}
+| | ...
+| | [Template] | Check NDR for ethip4-ip4base
+| | framesize=${64} | rate=10.4mpps | wt=4 | rxq=2
| tc08-1518B-4t4c-ethip4-ip4base-ndrchk
| | [Documentation]
@@ -172,27 +149,16 @@
| | ... | 2 receive queues per NIC port. [Ver] Verify ref-NDR for 1518 Byte
| | ... | frames using single trial throughput test at 2x 812743pps.
| | [Tags] | 1518B | 4T4C | MTHREAD
-| | ${framesize}= | Set Variable | ${1518}
-| | ${rate}= | Set Variable | 812743pps
-| | Given Add '4' worker threads and '2' rxqueues in 3-node single-link circular topology
-| | And Add PCI devices to DUTs in 3-node single link topology
-| | And Add no multi seg to all DUTs
-| | And Apply startup configuration on all VPP DUTs
-| | And Initialize IPv4 forwarding in 3-node circular topology
-| | Then Traffic should pass with no loss | ${perf_trial_duration} | ${rate}
-| | ... | ${framesize} | ${traffic_profile}
+| | ...
+| | [Template] | Check NDR for ethip4-ip4base
+| | framesize=${1518} | rate=812743pps | wt=4 | rxq=2
-| tc08-9000B-4t4c-ethip4-ip4base-ndrchk
+| tc09-9000B-4t4c-ethip4-ip4base-ndrchk
| | [Documentation]
| | ... | [Cfg] DUT runs IPv4 routing config with 4 threads, 4 phy cores, \
| | ... | 2 receive queues per NIC port. [Ver] Verify ref-NDR for 9000 Byte
| | ... | frames using single trial throughput test at 2x 138580pps.
| | [Tags] | 9000B | 4T4C | MTHREAD
-| | ${framesize}= | Set Variable | ${9000}
-| | ${rate}= | Set Variable | 138580pps
-| | Given Add '4' worker threads and '2' rxqueues in 3-node single-link circular topology
-| | And Add PCI devices to DUTs in 3-node single link topology
-| | And Apply startup configuration on all VPP DUTs
-| | And Initialize IPv4 forwarding in 3-node circular topology
-| | Then Traffic should pass with no loss | ${perf_trial_duration} | ${rate}
-| | ... | ${framesize} | ${traffic_profile}
+| | ...
+| | [Template] | Check NDR for ethip4-ip4base
+| | framesize=${9000} | rate=138580pps | wt=4 | rxq=2
diff --git a/tests/vpp/perf/ip4/10ge2p1x520-ethip4-ip4base-ndrpdrdisc.robot b/tests/vpp/perf/ip4/10ge2p1x520-ethip4-ip4base-ndrpdrdisc.robot
index fcc6a4394a..8c3d0925dc 100644
--- a/tests/vpp/perf/ip4/10ge2p1x520-ethip4-ip4base-ndrpdrdisc.robot
+++ b/tests/vpp/perf/ip4/10ge2p1x520-ethip4-ip4base-ndrpdrdisc.robot
@@ -13,13 +13,6 @@
*** Settings ***
| Resource | resources/libraries/robot/performance/performance_setup.robot
-| Library | resources.libraries.python.topology.Topology
-| Library | resources.libraries.python.NodePath
-| Library | resources.libraries.python.InterfaceUtil
-| Library | resources.libraries.python.IPv4Setup.Dut | ${nodes['DUT1']}
-| ... | WITH NAME | dut1_v4
-| Library | resources.libraries.python.IPv4Setup.Dut | ${nodes['DUT2']}
-| ... | WITH NAME | dut2_v4
| ...
| Force Tags | 3_NODE_SINGLE_LINK_TOPO | PERFTEST | HW_ENV | NDRPDRDISC
| ... | NIC_Intel-X520-DA2 | ETH | IP4FWD | BASE | IP4BASE
@@ -61,27 +54,49 @@
# Traffic profile:
| ${traffic_profile} | trex-sl-3n-ethip4-ip4src253
-*** Test Cases ***
-| tc01-64B-1t1c-ethip4-ip4base-ndrdisc
+*** Keywords ***
+| Discover NDR or PDR for ethip4-ip4base
| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 routing config with 1 thread, 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 | 1T1C | STHREAD | NDRDISC
-| | ${framesize}= | Set Variable | ${64}
-| | ${min_rate}= | Set Variable | ${50000}
-| | ${max_rate}= | Calculate pps | ${s_limit} | ${framesize}
+| | ... | [Cfg] DUT runs IPv4 routing config with ${wt} thread(s), ${wt}\
+| | ... | phy core(s), ${rxq} receive queue(s) per NIC port.
+| | ... | [Ver] Find NDR or PDR for ${framesize} frames using binary search\
+| | ... | start at 10GE linerate.
+| | ...
+| | [Arguments] | ${wt} | ${rxq} | ${framesize} | ${min_rate} | ${search_type}
+| | ...
+| | Set Test Variable | ${framesize}
+| | Set Test Variable | ${min_rate}
+| | ${get_framesize}= | Get Frame Size | ${framesize}
+| | ${max_rate}= | Calculate pps | ${s_limit} | ${get_framesize}
| | ${binary_min}= | Set Variable | ${min_rate}
| | ${binary_max}= | Set Variable | ${max_rate}
| | ${threshold}= | Set Variable | ${min_rate}
-| | Given Add '1' worker threads and '1' rxqueues in 3-node single-link circular topology
+| | Given Add '${wt}' worker threads and '${rxq}' rxqueues in 3-node single-link circular topology
| | And Add PCI devices to DUTs in 3-node single link topology
-| | And Add no multi seg 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 IPv4 forwarding in 3-node circular topology
-| | Then Find NDR using binary search and pps | ${framesize} | ${binary_min}
-| | ... | ${binary_max} | ${traffic_profile}
+| | Then Run Keyword If | '${search_type}' == 'NDR'
+| | ... | Find NDR using binary search and pps
+| | ... | ${framesize} | ${binary_min} | ${binary_max} | ${traffic_profile}
| | ... | ${min_rate} | ${max_rate} | ${threshold}
+| | ... | ELSE IF | '${search_type}' == 'PDR'
+| | ... | Find PDR using binary search and pps
+| | ... | ${framesize} | ${binary_min} | ${binary_max} | ${traffic_profile}
+| | ... | ${min_rate} | ${max_rate} | ${threshold}
+| | ... | ${perf_pdr_loss_acceptance} | ${perf_pdr_loss_acceptance_type}
+
+*** Test Cases ***
+| tc01-64B-1t1c-ethip4-ip4base-ndrdisc
+| | [Documentation]
+| | ... | [Cfg] DUT runs IPv4 routing config with 1 thread, 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 | 1T1C | STHREAD | NDRDISC
+| | ...
+| | [Template] | Discover NDR or PDR for ethip4-ip4base
+| | wt=1 | rxq=1 | framesize=${64} | min_rate=${50000} | search_type=NDR
| tc02-64B-1t1c-ethip4-ip4base-pdrdisc
| | [Documentation]
@@ -89,21 +104,9 @@
| | ... | 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 | 1T1C | STHREAD | PDRDISC | SKIP_PATCH
-| | ${framesize}= | Set Variable | ${64}
-| | ${min_rate}= | Set Variable | ${50000}
-| | ${max_rate}= | Calculate pps | ${s_limit} | ${framesize}
-| | ${binary_min}= | Set Variable | ${min_rate}
-| | ${binary_max}= | Set Variable | ${max_rate}
-| | ${threshold}= | Set Variable | ${min_rate}
-| | Given Add '1' worker threads and '1' rxqueues in 3-node single-link circular topology
-| | And Add PCI devices to DUTs in 3-node single link topology
-| | And Add no multi seg to all DUTs
-| | And Apply startup configuration on all VPP DUTs
-| | And Initialize IPv4 forwarding in 3-node circular topology
-| | Then Find PDR using binary search and pps | ${framesize} | ${binary_min}
-| | ... | ${binary_max} | ${traffic_profile}
-| | ... | ${min_rate} | ${max_rate} | ${threshold}
-| | ... | ${perf_pdr_loss_acceptance} | ${perf_pdr_loss_acceptance_type}
+| | ...
+| | [Template] | Discover NDR or PDR for ethip4-ip4base
+| | wt=1 | rxq=1 | framesize=${64} | min_rate=${50000} | search_type=PDR
| tc03-1518B-1t1c-ethip4-ip4base-ndrdisc
| | [Documentation]
@@ -111,20 +114,9 @@
| | ... | 1 receive queue per NIC port. [Ver] Find NDR for 1518 Byte frames
| | ... | using binary search start at 10GE linerate, step 50kpps.
| | [Tags] | 1518B | 1T1C | STHREAD | NDRDISC
-| | ${framesize}= | Set Variable | ${1518}
-| | ${min_rate}= | Set Variable | ${50000}
-| | ${max_rate}= | Calculate pps | ${s_limit} | ${framesize}
-| | ${binary_min}= | Set Variable | ${min_rate}
-| | ${binary_max}= | Set Variable | ${max_rate}
-| | ${threshold}= | Set Variable | ${min_rate}
-| | Given Add '1' worker threads and '1' rxqueues in 3-node single-link circular topology
-| | And Add PCI devices to DUTs in 3-node single link topology
-| | And Add no multi seg to all DUTs
-| | And Apply startup configuration on all VPP DUTs
-| | And Initialize IPv4 forwarding in 3-node circular topology
-| | Then Find NDR using binary search and pps | ${framesize} | ${binary_min}
-| | ... | ${binary_max} | ${traffic_profile}
-| | ... | ${min_rate} | ${max_rate} | ${threshold}
+| | ...
+| | [Template] | Discover NDR or PDR for ethip4-ip4base
+| | wt=1 | rxq=1 | framesize=${1518} | min_rate=${50000} | search_type=NDR
| tc04-1518B-1t1c-ethip4-ip4base-pdrdisc
| | [Documentation]
@@ -132,21 +124,9 @@
| | ... | 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 | 1T1C | STHREAD | PDRDISC | SKIP_PATCH
-| | ${framesize}= | Set Variable | ${1518}
-| | ${min_rate}= | Set Variable | ${50000}
-| | ${max_rate}= | Calculate pps | ${s_limit} | ${framesize}
-| | ${binary_min}= | Set Variable | ${min_rate}
-| | ${binary_max}= | Set Variable | ${max_rate}
-| | ${threshold}= | Set Variable | ${min_rate}
-| | Given Add '1' worker threads and '1' rxqueues in 3-node single-link circular topology
-| | And Add PCI devices to DUTs in 3-node single link topology
-| | And Add no multi seg to all DUTs
-| | And Apply startup configuration on all VPP DUTs
-| | And Initialize IPv4 forwarding in 3-node circular topology
-| | Then Find PDR using binary search and pps | ${framesize} | ${binary_min}
-| | ... | ${binary_max} | ${traffic_profile}
-| | ... | ${min_rate} | ${max_rate} | ${threshold}
-| | ... | ${perf_pdr_loss_acceptance} | ${perf_pdr_loss_acceptance_type}
+| | ...
+| | [Template] | Discover NDR or PDR for ethip4-ip4base
+| | wt=1 | rxq=1 | framesize=${1518} | min_rate=${50000} | search_type=PDR
| tc05-9000B-1t1c-ethip4-ip4base-ndrdisc
| | [Documentation]
@@ -154,19 +134,9 @@
| | ... | 1 receive queue per NIC port. [Ver] Find NDR for 9000 Byte frames
| | ... | using binary search start at 10GE linerate, step 10kpps.
| | [Tags] | 9000B | 1T1C | STHREAD | NDRDISC
-| | ${framesize}= | Set Variable | ${9000}
-| | ${min_rate}= | Set Variable | ${10000}
-| | ${max_rate}= | Calculate pps | ${s_limit} | ${framesize}
-| | ${binary_min}= | Set Variable | ${min_rate}
-| | ${binary_max}= | Set Variable | ${max_rate}
-| | ${threshold}= | Set Variable | ${min_rate}
-| | Given Add '1' worker threads and '1' rxqueues in 3-node single-link circular topology
-| | And Add PCI devices to DUTs in 3-node single link topology
-| | And Apply startup configuration on all VPP DUTs
-| | And Initialize IPv4 forwarding in 3-node circular topology
-| | Then Find NDR using binary search and pps | ${framesize} | ${binary_min}
-| | ... | ${binary_max} | ${traffic_profile}
-| | ... | ${min_rate} | ${max_rate} | ${threshold}
+| | ...
+| | [Template] | Discover NDR or PDR for ethip4-ip4base
+| | wt=1 | rxq=1 | framesize=${9000} | min_rate=${10000} | search_type=NDR
| tc06-9000B-1t1c-ethip4-ip4base-pdrdisc
| | [Documentation]
@@ -174,20 +144,9 @@
| | ... | 1 receive queue per NIC port. [Ver] Find PDR for 9000 Byte frames
| | ... | using binary search start at 10GE linerate, step 10kpps, LT=0.5%.
| | [Tags] | 9000B | 1T1C | STHREAD | PDRDISC | SKIP_PATCH
-| | ${framesize}= | Set Variable | ${9000}
-| | ${min_rate}= | Set Variable | ${10000}
-| | ${max_rate}= | Calculate pps | ${s_limit} | ${framesize}
-| | ${binary_min}= | Set Variable | ${min_rate}
-| | ${binary_max}= | Set Variable | ${max_rate}
-| | ${threshold}= | Set Variable | ${min_rate}
-| | Given Add '1' worker threads and '1' rxqueues in 3-node single-link circular topology
-| | And Add PCI devices to DUTs in 3-node single link topology
-| | And Apply startup configuration on all VPP DUTs
-| | And Initialize IPv4 forwarding in 3-node circular topology
-| | Then Find PDR using binary search and pps | ${framesize} | ${binary_min}
-| | ... | ${binary_max} | ${traffic_profile}
-| | ... | ${min_rate} | ${max_rate} | ${threshold}
-| | ... | ${perf_pdr_loss_acceptance} | ${perf_pdr_loss_acceptance_type}
+| | ...
+| | [Template] | Discover NDR or PDR for ethip4-ip4base
+| | wt=1 | rxq=1 | framesize=${9000} | min_rate=${10000} | search_type=PDR
| tc07-64B-2t2c-ethip4-ip4base-ndrdisc
| | [Documentation]
@@ -195,20 +154,9 @@
| | ... | 1 receive queue per NIC port. [Ver] Find NDR for 64 Byte frames
| | ... | using binary search start at 10GE linerate, step 50kpps.
| | [Tags] | 64B | 2T2C | MTHREAD | NDRDISC
-| | ${framesize}= | Set Variable | ${64}
-| | ${min_rate}= | Set Variable | ${50000}
-| | ${max_rate}= | Calculate pps | ${s_limit} | ${framesize}
-| | ${binary_min}= | Set Variable | ${min_rate}
-| | ${binary_max}= | Set Variable | ${max_rate}
-| | ${threshold}= | Set Variable | ${min_rate}
-| | Given Add '2' worker threads and '1' rxqueues in 3-node single-link circular topology
-| | And Add PCI devices to DUTs in 3-node single link topology
-| | And Add no multi seg to all DUTs
-| | And Apply startup configuration on all VPP DUTs
-| | And Initialize IPv4 forwarding in 3-node circular topology
-| | Then Find NDR using binary search and pps | ${framesize} | ${binary_min}
-| | ... | ${binary_max} | ${traffic_profile}
-| | ... | ${min_rate} | ${max_rate} | ${threshold}
+| | ...
+| | [Template] | Discover NDR or PDR for ethip4-ip4base
+| | wt=2 | rxq=1 | framesize=${64} | min_rate=${50000} | search_type=NDR
| tc08-64B-2t2c-ethip4-ip4base-pdrdisc
| | [Documentation]
@@ -216,21 +164,9 @@
| | ... | 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 | 2T2C | MTHREAD | PDRDISC | SKIP_PATCH
-| | ${framesize}= | Set Variable | ${64}
-| | ${min_rate}= | Set Variable | ${50000}
-| | ${max_rate}= | Calculate pps | ${s_limit} | ${framesize}
-| | ${binary_min}= | Set Variable | ${min_rate}
-| | ${binary_max}= | Set Variable | ${max_rate}
-| | ${threshold}= | Set Variable | ${min_rate}
-| | Given Add '2' worker threads and '1' rxqueues in 3-node single-link circular topology
-| | And Add PCI devices to DUTs in 3-node single link topology
-| | And Add no multi seg to all DUTs
-| | And Apply startup configuration on all VPP DUTs
-| | And Initialize IPv4 forwarding in 3-node circular topology
-| | Then Find PDR using binary search and pps | ${framesize} | ${binary_min}
-| | ... | ${binary_max} | ${traffic_profile}
-| | ... | ${min_rate} | ${max_rate} | ${threshold}
-| | ... | ${perf_pdr_loss_acceptance} | ${perf_pdr_loss_acceptance_type}
+| | ...
+| | [Template] | Discover NDR or PDR for ethip4-ip4base
+| | wt=2 | rxq=1 | framesize=${64} | min_rate=${50000} | search_type=PDR
| tc09-1518B-2t2c-ethip4-ip4base-ndrdisc
| | [Documentation]
@@ -238,20 +174,9 @@
| | ... | 1 receive queue per NIC port. [Ver] Find NDR for 1518 Byte frames
| | ... | using binary search start at 10GE linerate, step 50kpps.
| | [Tags] | 1518B | 2T2C | MTHREAD | NDRDISC | SKIP_PATCH
-| | ${framesize}= | Set Variable | ${1518}
-| | ${min_rate}= | Set Variable | ${50000}
-| | ${max_rate}= | Calculate pps | ${s_limit} | ${framesize}
-| | ${binary_min}= | Set Variable | ${min_rate}
-| | ${binary_max}= | Set Variable | ${max_rate}
-| | ${threshold}= | Set Variable | ${min_rate}
-| | Given Add '2' worker threads and '1' rxqueues in 3-node single-link circular topology
-| | And Add PCI devices to DUTs in 3-node single link topology
-| | And Add no multi seg to all DUTs
-| | And Apply startup configuration on all VPP DUTs
-| | And Initialize IPv4 forwarding in 3-node circular topology
-| | Then Find NDR using binary search and pps | ${framesize} | ${binary_min}
-| | ... | ${binary_max} | ${traffic_profile}
-| | ... | ${min_rate} | ${max_rate} | ${threshold}
+| | ...
+| | [Template] | Discover NDR or PDR for ethip4-ip4base
+| | wt=2 | rxq=1 | framesize=${1518} | min_rate=${50000} | search_type=NDR
| tc10-1518B-2t2c-ethip4-ip4base-pdrdisc
| | [Documentation]
@@ -259,21 +184,9 @@
| | ... | 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 | 2T2C | MTHREAD | PDRDISC | SKIP_PATCH
-| | ${framesize}= | Set Variable | ${1518}
-| | ${min_rate}= | Set Variable | ${50000}
-| | ${max_rate}= | Calculate pps | ${s_limit} | ${framesize}
-| | ${binary_min}= | Set Variable | ${min_rate}
-| | ${binary_max}= | Set Variable | ${max_rate}
-| | ${threshold}= | Set Variable | ${min_rate}
-| | Given Add '2' worker threads and '1' rxqueues in 3-node single-link circular topology
-| | And Add PCI devices to DUTs in 3-node single link topology
-| | And Add no multi seg to all DUTs
-| | And Apply startup configuration on all VPP DUTs
-| | And Initialize IPv4 forwarding in 3-node circular topology
-| | Then Find PDR using binary search and pps | ${framesize} | ${binary_min}
-| | ... | ${binary_max} | ${traffic_profile}
-| | ... | ${min_rate} | ${max_rate} | ${threshold}
-| | ... | ${perf_pdr_loss_acceptance} | ${perf_pdr_loss_acceptance_type}
+| | ...
+| | [Template] | Discover NDR or PDR for ethip4-ip4base
+| | wt=2 | rxq=1 | framesize=${1518} | min_rate=${50000} | search_type=PDR
| tc11-9000B-2t2c-ethip4-ip4base-ndrdisc
| | [Documentation]
@@ -281,19 +194,9 @@
| | ... | 1 receive queue per NIC port. [Ver] Find NDR for 9000 Byte frames
| | ... | using binary search start at 10GE linerate, step 10kpps.
| | [Tags] | 9000B | 2T2C | MTHREAD | NDRDISC | SKIP_PATCH
-| | ${framesize}= | Set Variable | ${9000}
-| | ${min_rate}= | Set Variable | ${10000}
-| | ${max_rate}= | Calculate pps | ${s_limit} | ${framesize}
-| | ${binary_min}= | Set Variable | ${min_rate}
-| | ${binary_max}= | Set Variable | ${max_rate}
-| | ${threshold}= | Set Variable | ${min_rate}
-| | Given Add '2' worker threads and '1' rxqueues in 3-node single-link circular topology
-| | And Add PCI devices to DUTs in 3-node single link topology
-| | And Apply startup configuration on all VPP DUTs
-| | And Initialize IPv4 forwarding in 3-node circular topology
-| | Then Find NDR using binary search and pps | ${framesize} | ${binary_min}
-| | ... | ${binary_max} | ${traffic_profile}
-| | ... | ${min_rate} | ${max_rate} | ${threshold}
+| | ...
+| | [Template] | Discover NDR or PDR for ethip4-ip4base
+| | wt=2 | rxq=1 | framesize=${9000} | min_rate=${10000} | search_type=NDR
| tc12-9000B-2t2c-ethip4-ip4base-pdrdisc
| | [Documentation]
@@ -301,20 +204,9 @@
| | ... | 1 receive queue per NIC port. [Ver] Find PDR for 9000 Byte frames
| | ... | using binary search start at 10GE linerate, step 10kpps, LT=0.5%.
| | [Tags] | 9000B | 2T2C | MTHREAD | PDRDISC | SKIP_PATCH
-| | ${framesize}= | Set Variable | ${9000}
-| | ${min_rate}= | Set Variable | ${10000}
-| | ${max_rate}= | Calculate pps | ${s_limit} | ${framesize}
-| | ${binary_min}= | Set Variable | ${min_rate}
-| | ${binary_max}= | Set Variable | ${max_rate}
-| | ${threshold}= | Set Variable | ${min_rate}
-| | Given Add '2' worker threads and '1' rxqueues in 3-node single-link circular topology
-| | And Add PCI devices to DUTs in 3-node single link topology
-| | And Apply startup configuration on all VPP DUTs
-| | And Initialize IPv4 forwarding in 3-node circular topology
-| | Then Find PDR using binary search and pps | ${framesize} | ${binary_min}
-| | ... | ${binary_max} | ${traffic_profile}
-| | ... | ${min_rate} | ${max_rate} | ${threshold}
-| | ... | ${perf_pdr_loss_acceptance} | ${perf_pdr_loss_acceptance_type}
+| | ...
+| | [Template] | Discover NDR or PDR for ethip4-ip4base
+| | wt=2 | rxq=1 | framesize=${9000} | min_rate=${10000} | search_type=PDR
| tc13-64B-4t4c-ethip4-ip4base-ndrdisc
| | [Documentation]
@@ -322,20 +214,9 @@
| | ... | 2 receive queues per NIC port. [Ver] Find NDR for 64 Byte frames
| | ... | using binary search start at 10GE linerate, step 50kpps.
| | [Tags] | 64B | 4T4C | MTHREAD | NDRDISC
-| | ${framesize}= | Set Variable | ${64}
-| | ${min_rate}= | Set Variable | ${50000}
-| | ${max_rate}= | Calculate pps | ${s_limit} | ${framesize}
-| | ${binary_min}= | Set Variable | ${min_rate}
-| | ${binary_max}= | Set Variable | ${max_rate}
-| | ${threshold}= | Set Variable | ${min_rate}
-| | Given Add '4' worker threads and '2' rxqueues in 3-node single-link circular topology
-| | And Add PCI devices to DUTs in 3-node single link topology
-| | And Add no multi seg to all DUTs
-| | And Apply startup configuration on all VPP DUTs
-| | And Initialize IPv4 forwarding in 3-node circular topology
-| | Then Find NDR using binary search and pps | ${framesize} | ${binary_min}
-| | ... | ${binary_max} | ${traffic_profile}
-| | ... | ${min_rate} | ${max_rate} | ${threshold}
+| | ...
+| | [Template] | Discover NDR or PDR for ethip4-ip4base
+| | wt=4 | rxq=2 | framesize=${64} | min_rate=${50000} | search_type=NDR
| tc14-64B-4t4c-ethip4-ip4base-pdrdisc
| | [Documentation]
@@ -343,21 +224,9 @@
| | ... | 2 receive queues per NIC port. [Ver] Find PDR for 64 Byte frames
| | ... | using binary search start at 10GE linerate, step 50kpps, LT=0.5%.
| | [Tags] | 64B | 4T4C | MTHREAD | PDRDISC | SKIP_PATCH
-| | ${framesize}= | Set Variable | ${64}
-| | ${min_rate}= | Set Variable | ${50000}
-| | ${max_rate}= | Calculate pps | ${s_limit} | ${framesize}
-| | ${binary_min}= | Set Variable | ${min_rate}
-| | ${binary_max}= | Set Variable | ${max_rate}
-| | ${threshold}= | Set Variable | ${min_rate}
-| | Given Add '4' worker threads and '2' rxqueues in 3-node single-link circular topology
-| | And Add PCI devices to DUTs in 3-node single link topology
-| | And Add no multi seg to all DUTs
-| | And Apply startup configuration on all VPP DUTs
-| | And Initialize IPv4 forwarding in 3-node circular topology
-| | Then Find PDR using binary search and pps | ${framesize} | ${binary_min}
-| | ... | ${binary_max} | ${traffic_profile}
-| | ... | ${min_rate} | ${max_rate} | ${threshold}
-| | ... | ${perf_pdr_loss_acceptance} | ${perf_pdr_loss_acceptance_type}
+| | ...
+| | [Template] | Discover NDR or PDR for ethip4-ip4base
+| | wt=4 | rxq=2 | framesize=${64} | min_rate=${50000} | search_type=PDR
| tc15-1518B-4t4c-ethip4-ip4base-ndrdisc
| | [Documentation]
@@ -365,20 +234,9 @@
| | ... | 2 receive queues per NIC port. [Ver] Find NDR for 1518 Byte frames
| | ... | using binary search start at 10GE linerate, step 50kpps.
| | [Tags] | 1518B | 4T4C | MTHREAD | NDRDISC | SKIP_PATCH
-| | ${framesize}= | Set Variable | ${1518}
-| | ${min_rate}= | Set Variable | ${50000}
-| | ${max_rate}= | Calculate pps | ${s_limit} | ${framesize}
-| | ${binary_min}= | Set Variable | ${min_rate}
-| | ${binary_max}= | Set Variable | ${max_rate}
-| | ${threshold}= | Set Variable | ${min_rate}
-| | Given Add '4' worker threads and '2' rxqueues in 3-node single-link circular topology
-| | And Add PCI devices to DUTs in 3-node single link topology
-| | And Add no multi seg to all DUTs
-| | And Apply startup configuration on all VPP DUTs
-| | And Initialize IPv4 forwarding in 3-node circular topology
-| | Then Find NDR using binary search and pps | ${framesize} | ${binary_min}
-| | ... | ${binary_max} | ${traffic_profile}
-| | ... | ${min_rate} | ${max_rate} | ${threshold}
+| | ...
+| | [Template] | Discover NDR or PDR for ethip4-ip4base
+| | wt=4 | rxq=2 | framesize=${1518} | min_rate=${50000} | search_type=NDR
| tc16-1518B-4t4c-ethip4-ip4base-pdrdisc
| | [Documentation]
@@ -386,21 +244,9 @@
| | ... | 2 receive queues per NIC port. [Ver] Find PDR for 1518 Byte frames
| | ... | using binary search start at 10GE linerate, step 50kpps, LT=0.5%.
| | [Tags] | 1518B | 4T4C | MTHREAD | PDRDISC | SKIP_PATCH
-| | ${framesize}= | Set Variable | ${1518}
-| | ${min_rate}= | Set Variable | ${50000}
-| | ${max_rate}= | Calculate pps | ${s_limit} | ${framesize}
-| | ${binary_min}= | Set Variable | ${min_rate}
-| | ${binary_max}= | Set Variable | ${max_rate}
-| | ${threshold}= | Set Variable | ${min_rate}
-| | Given Add '4' worker threads and '2' rxqueues in 3-node single-link circular topology
-| | And Add PCI devices to DUTs in 3-node single link topology
-| | And Add no multi seg to all DUTs
-| | And Apply startup configuration on all VPP DUTs
-| | And Initialize IPv4 forwarding in 3-node circular topology
-| | Then Find PDR using binary search and pps | ${framesize} | ${binary_min}
-| | ... | ${binary_max} | ${traffic_profile}
-| | ... | ${min_rate} | ${max_rate} | ${threshold}
-| | ... | ${perf_pdr_loss_acceptance} | ${perf_pdr_loss_acceptance_type}
+| | ...
+| | [Template] | Discover NDR or PDR for ethip4-ip4base
+| | wt=4 | rxq=2 | framesize=${1518} | min_rate=${50000} | search_type=PDR
| tc17-9000B-4t4c-ethip4-ip4base-ndrdisc
| | [Documentation]
@@ -408,19 +254,9 @@
| | ... | 2 receive queues per NIC port. [Ver] Find NDR for 9000 Byte frames
| | ... | using binary search start at 10GE linerate, step 10kpps.
| | [Tags] | 9000B | 4T4C | MTHREAD | NDRDISC | SKIP_PATCH
-| | ${framesize}= | Set Variable | ${9000}
-| | ${min_rate}= | Set Variable | ${10000}
-| | ${max_rate}= | Calculate pps | ${s_limit} | ${framesize}
-| | ${binary_min}= | Set Variable | ${min_rate}
-| | ${binary_max}= | Set Variable | ${max_rate}
-| | ${threshold}= | Set Variable | ${min_rate}
-| | Given Add '4' worker threads and '2' rxqueues in 3-node single-link circular topology
-| | And Add PCI devices to DUTs in 3-node single link topology
-| | And Apply startup configuration on all VPP DUTs
-| | And Initialize IPv4 forwarding in 3-node circular topology
-| | Then Find NDR using binary search and pps | ${framesize} | ${binary_min}
-| | ... | ${binary_max} | ${traffic_profile}
-| | ... | ${min_rate} | ${max_rate} | ${threshold}
+| | ...
+| | [Template] | Discover NDR or PDR for ethip4-ip4base
+| | wt=4 | rxq=2 | framesize=${9000} | min_rate=${10000} | search_type=NDR
| tc18-9000B-4t4c-ethip4-ip4base-pdrdisc
| | [Documentation]
@@ -428,62 +264,6 @@
| | ... | 2 receive queues per NIC port. [Ver] Find PDR for 9000 Byte frames
| | ... | using binary search start at 10GE linerate, step 10kpps, LT=0.5%.
| | [Tags] | 9000B | 4T4C | MTHREAD | PDRDISC | SKIP_PATCH
-| | ${framesize}= | Set Variable | ${9000}
-| | ${min_rate}= | Set Variable | ${10000}
-| | ${max_rate}= | Calculate pps | ${s_limit} | ${framesize}
-| | ${binary_min}= | Set Variable | ${min_rate}
-| | ${binary_max}= | Set Variable | ${max_rate}
-| | ${threshold}= | Set Variable | ${min_rate}
-| | Given Add '4' worker threads and '2' rxqueues in 3-node single-link circular topology
-| | And Add PCI devices to DUTs in 3-node single link topology
-| | And Apply startup configuration on all VPP DUTs
-| | And Initialize IPv4 forwarding in 3-node circular topology
-| | Then Find PDR using binary search and pps | ${framesize} | ${binary_min}
-| | ... | ${binary_max} | ${traffic_profile}
-| | ... | ${min_rate} | ${max_rate} | ${threshold}
-| | ... | ${perf_pdr_loss_acceptance} | ${perf_pdr_loss_acceptance_type}
-
-| tc19-IMIX-1t1c-ethip4-ip4base-ndrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 routing config with 1 thread, 1 phy core, \
-| | ... | 1 receive queue per NIC port. [Ver] Find NDR for IMIX_v4_1 frame size
-| | ... | using binary search start at 10GE linerate, step 50kpps.
-| | ... | IMIX_v4_1 = (28x64B;16x570B;4x1518B)
-| | [Tags] | 1T1C | STHREAD | NDRDISC
-| | ${framesize}= | Set Variable | IMIX_v4_1
-| | ${min_rate}= | Set Variable | ${50000}
-| | ${max_rate}= | Calculate pps | ${s_limit} | ${framesize}
-| | ${binary_min}= | Set Variable | ${min_rate}
-| | ${binary_max}= | Set Variable | ${max_rate}
-| | ${threshold}= | Set Variable | ${min_rate}
-| | Given Add '1' worker threads and '1' rxqueues in 3-node single-link circular topology
-| | And Add PCI devices to DUTs in 3-node single link topology
-| | And Add no multi seg to all DUTs
-| | And Apply startup configuration on all VPP DUTs
-| | And Initialize IPv4 forwarding in 3-node circular topology
-| | Then Find NDR using binary search and pps | ${framesize} | ${binary_min}
-| | ... | ${binary_max} | ${traffic_profile}
-| | ... | ${min_rate} | ${max_rate} | ${threshold}
-
-| tc20-IMIX-1t1c-ethip4-ip4base-pdrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 routing config with 1 thread, 1 phy core, \
-| | ... | 1 receive queue per NIC port. [Ver] Find PDR for IMIX_v4_1 frame size
-| | ... | using binary search start at 10GE linerate, step 50kpps, LT=0.5%.
-| | ... | IMIX_v4_1 = (28x64B;16x570B;4x1518B)
-| | [Tags] | 1T1C | STHREAD | PDRDISC | SKIP_PATCH
-| | ${framesize}= | Set Variable | IMIX_v4_1
-| | ${min_rate}= | Set Variable | ${50000}
-| | ${max_rate}= | Calculate pps | ${s_limit} | ${framesize}
-| | ${binary_min}= | Set Variable | ${min_rate}
-| | ${binary_max}= | Set Variable | ${max_rate}
-| | ${threshold}= | Set Variable | ${min_rate}
-| | Given Add '1' worker threads and '1' rxqueues in 3-node single-link circular topology
-| | And Add PCI devices to DUTs in 3-node single link topology
-| | And Add no multi seg to all DUTs
-| | And Apply startup configuration on all VPP DUTs
-| | And Initialize IPv4 forwarding in 3-node circular topology
-| | Then Find PDR using binary search and pps | ${framesize} | ${binary_min}
-| | ... | ${binary_max} | ${traffic_profile}
-| | ... | ${min_rate} | ${max_rate} | ${threshold}
-| | ... | ${perf_pdr_loss_acceptance} | ${perf_pdr_loss_acceptance_type}
+| | ...
+| | [Template] | Discover NDR or PDR for ethip4-ip4base
+| | wt=4 | rxq=2 | framesize=${9000} | min_rate=${10000} | search_type=PDR
diff --git a/tests/vpp/perf/ip4/10ge2p1x520-ethip4-ip4base-pdrchk.robot b/tests/vpp/perf/ip4/10ge2p1x520-ethip4-ip4base-pdrchk.robot
index b609c98b27..2ae729d41e 100644
--- a/tests/vpp/perf/ip4/10ge2p1x520-ethip4-ip4base-pdrchk.robot
+++ b/tests/vpp/perf/ip4/10ge2p1x520-ethip4-ip4base-pdrchk.robot
@@ -13,13 +13,6 @@
*** Settings ***
| Resource | resources/libraries/robot/performance/performance_setup.robot
-| Library | resources.libraries.python.topology.Topology
-| Library | resources.libraries.python.NodePath
-| Library | resources.libraries.python.InterfaceUtil
-| Library | resources.libraries.python.IPv4Setup.Dut | ${nodes['DUT1']}
-| ... | WITH NAME | dut1_v4
-| Library | resources.libraries.python.IPv4Setup.Dut | ${nodes['DUT2']}
-| ... | WITH NAME | dut2_v4
| ...
| Force Tags | 3_NODE_SINGLE_LINK_TOPO | PERFTEST | HW_ENV | PDRCHK
| ... | NIC_Intel-X520-DA2 | ETH | IP4FWD | BASE | IP4BASE
@@ -56,7 +49,7 @@
| ${traffic_profile} | trex-sl-3n-ethip4-ip4src253
*** Keywords ***
-| Check PDR for IPv4 routing
+| Check PDR for ethip4-ip4base
| | [Documentation]
| | ... | [Cfg] DUT runs IPv4 routing config with ${wt} thread(s), ${wt}\
| | ... | phy core(s), ${rxq} receive queue(s) per NIC port.
@@ -90,7 +83,7 @@
| | ...
| | [Tags] | 64B | 1T1C | STHREAD
| | ...
-| | [Template] | Check PDR for IPv4 routing
+| | [Template] | Check PDR for ethip4-ip4base
| | framesize=${64} | rate=4.7mpps | wt=1 | rxq=1
| tc02-1518B-1t1c-ethip4-ip4base-pdrchk
@@ -102,7 +95,7 @@
| | ...
| | [Tags] | 1518B | 1T1C | STHREAD
| | ...
-| | [Template] | Check PDR for IPv4 routing
+| | [Template] | Check PDR for ethip4-ip4base
| | framesize=${1518} | rate=400000pps | wt=1 | rxq=1
| tc03-9000B-1t1c-ethip4-ip4base-pdrchk
@@ -114,7 +107,7 @@
| | ...
| | [Tags] | 9000B | 1T1C | STHREAD
| | ...
-| | [Template] | Check PDR for IPv4 routing
+| | [Template] | Check PDR for ethip4-ip4base
| | framesize=${9000} | rate=60000pps | wt=1 | rxq=1
| tc04-64B-2t2c-ethip4-ip4base-pdrchk
@@ -126,7 +119,7 @@
| | ...
| | [Tags] | 64B | 2T2C | STHREAD
| | ...
-| | [Template] | Check PDR for IPv4 routing
+| | [Template] | Check PDR for ethip4-ip4base
| | framesize=${64} | rate=9.4mpps | wt=2 | rxq=1
| tc05-1518B-2t2c-ethip4-ip4base-pdrchk
@@ -138,7 +131,7 @@
| | ...
| | [Tags] | 1518B | 2T2C | MTHREAD
| | ...
-| | [Template] | Check PDR for IPv4 routing
+| | [Template] | Check PDR for ethip4-ip4base
| | framesize=${1518} | rate=400000pps | wt=2 | rxq=1
| tc06-9000B-2t2c-ethip4-ip4base-pdrchk
@@ -150,7 +143,7 @@
| | ...
| | [Tags] | 9000B | 2T2C | MTHREAD
| | ...
-| | [Template] | Check PDR for IPv4 routing
+| | [Template] | Check PDR for ethip4-ip4base
| | framesize=${9000} | rate=60000pps | wt=2 | rxq=1
| tc07-64B-4t4c-ethip4-ip4base-pdrchk
@@ -162,7 +155,7 @@
| | ...
| | [Tags] | 64B | 4T4C | MTHREAD
| | ...
-| | [Template] | Check PDR for IPv4 routing
+| | [Template] | Check PDR for ethip4-ip4base
| | framesize=${64} | rate=7.4mpps | wt=4 | rxq=2
| tc08-1518B-4t4c-ethip4-ip4base-pdrchk
@@ -174,7 +167,7 @@
| | ...
| | [Tags] | 1518B | 4T4C | MTHREAD
| | ...
-| | [Template] | Check PDR for IPv4 routing
+| | [Template] | Check PDR for ethip4-ip4base
| | framesize=${1518} | rate=400000pps | wt=4 | rxq=2
| tc08-9000B-4t4c-ethip4-ip4base-pdrchk
@@ -186,5 +179,5 @@
| | ...
| | [Tags] | 9000B | 4T4C | MTHREAD
| | ...
-| | [Template] | Check PDR for IPv4 routing
+| | [Template] | Check PDR for ethip4-ip4base
| | framesize=${9000} | rate=60000pps | wt=4 | rxq=2