CSIT-672: SNAT44 multi-thread multi-core perf tests
[csit.git] / tests / vpp / perf / ip4 / 10ge2p1x520-ethip4udp-ip4scale4000-udpsrcscale15-nat44-ndrpdrdisc.robot
index cd7bf41..20d3fb4 100644 (file)
@@ -35,7 +35,7 @@
 | ...
 | ... | - NDR and PDR tests
 | ... | - 3-node topology, TG-DUT1-DUT2-TG, NAT44 is enabled between DUTs.
-| ... | - Cores / threads: 1t1c and 2t2c
+| ... | - Cores / threads: 1t1c, 2t2c, and 4t4c
 | ... | - Framesize: 64B, 1518B, IMIX
 | ... | - Packet: ETH / IP(src, dst) / UDP(src_port, dst_port) / payload
 | ... | - scale: src: 1 user, 10 users, 100 users, ..., 4000 up to the memory
 # Traffic profile:
 | ${traffic_profile} | trex-sl-3n-ethip4udp-4000u15p
 
-*** Test Cases ***
-| tc01-64B-1t1c-ethip4udp-ip4scale4000-udpsrcscale15-snat-ndrdisc
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 routing config with 1 thread, 1 phy core,\
-| | ... | 1 receive queue per NIC port. NAT44 is configured between DUTs -\
-| | ... | 4000 users and 15 ports (sessions) per user.
-| | ... | [Ver] Find NDR for 64 Byte frames using binary search start at 10GE\
-| | ... | linerate, step 100kpps.
+*** Keywords ***
+| Discover NDR or PDR for IPv4 routing with NAT44
 | | ...
-| | [Tags] | 64B | 1T1C | STHREAD | NDRDISC
+| | [Arguments] | ${wt} | ${rxq} | ${framesize} | ${min_rate} | ${search_type}
 | | ...
-| | ${framesize}= | Set Variable | ${64}
-| | ${min_rate}= | Set Variable | ${100000}
+| | Set Test Variable | ${framesize}
+| | Set Test Variable | ${min_rate}
 | | ${max_rate}= | Calculate pps | ${s_limit} | ${framesize}
 | | ${binary_min}= | Set Variable | ${min_rate}
 | | ${binary_max}= | Set Variable | ${max_rate}
 | | ${threshold}= | Set Variable | ${min_rate}
-| | Given Add '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 Add NAT to all DUTs
 | | And Apply startup configuration on all VPP DUTs
 | | When Initialize NAT44 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-ethip4udp-ip4scale4000-udpsrcscale15-snat-ndrdisc
+| | [Documentation]
+| | ... | [Cfg] DUT runs IPv4 routing config with 1 thread, 1 phy core,\
+| | ... | 1 receive queue per NIC port. NAT44 is configured between DUTs -\
+| | ... | 4000 users and 15 ports (sessions) per user.
+| | ... | [Ver] Find NDR for 64 Byte frames using binary search start at 10GE\
+| | ... | linerate, step 100kpps.
+| | ...
+| | [Tags] | 64B | 1T1C | STHREAD | NDRDISC
+| | ...
+| | [Template] | Discover NDR or PDR for IPv4 routing with NAT44
+| | wt=1 | rxq=1 | framesize=${64} | min_rate=${100000} | search_type=NDR
 
 | tc02-64B-1t1c-ethip4udp-ip4scale4000-udpsrcscale15-snat-pdrdisc
 | | [Documentation]
 | | ...
 | | [Tags] | 64B | 1T1C | STHREAD | PDRDISC | SKIP_PATCH
 | | ...
-| | ${framesize}= | Set Variable | ${64}
-| | ${min_rate}= | Set Variable | ${100000}
-| | ${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 Add NAT to all DUTs
-| | And Apply startup configuration on all VPP DUTs
-| | When Initialize NAT44 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 IPv4 routing with NAT44
+| | wt=1 | rxq=1 | framesize=${64} | min_rate=${100000} | search_type=PDR
+
+| tc03-1518B-1t1c-ethip4udp-ip4scale4000-udpsrcscale15-snat-ndrdisc
+| | [Documentation]
+| | ... | [Cfg] DUT runs IPv4 routing config with 1 thread, 1 phy core,\
+| | ... | 1 receive queue per NIC port. NAT44 is configured between DUTs -\
+| | ... | 4000 users and 15 ports (sessions) per user.
+| | ... | [Ver] Find NDR for 1518 Byte frames using binary search start at 10GE\
+| | ... | linerate, step 100kpps.
+| | ...
+| | [Tags] | 1518B | 1T1C | STHREAD | NDRDISC
+| | ...
+| | [Template] | Discover NDR or PDR for IPv4 routing with NAT44
+| | wt=1 | rxq=1 | framesize=${1518} | min_rate=${100000} | search_type=NDR
+
+| tc04-1518B-1t1c-ethip4udp-ip4scale4000-udpsrcscale15-snat-pdrdisc
+| | [Documentation]
+| | ... | [Cfg] DUT runs IPv4 routing config with 1 thread, 1 phy core,\
+| | ... | 1 receive queue per NIC port. NAT44 is configured between DUTs -\
+| | ... | 4000 users and 15 ports (sessions) per user.
+| | ... | [Ver] Find PDR for 1518 Byte frames using binary search start at 10GE\
+| | ... | linerate, step 100kpps.
+| | ...
+| | [Tags] | 1518B | 1T1C | STHREAD | PDRDISC | SKIP_PATCH
+| | ...
+| | [Template] | Discover NDR or PDR for IPv4 routing with NAT44
+| | wt=1 | rxq=1 | framesize=${1518} | min_rate=${100000} | search_type=PDR
+
+| tc05-IMIX-1t1c-ethip4udp-ip4scale4000-udpsrcscale15-snat-ndrdisc
+| | [Documentation]
+| | ... | [Cfg] DUT runs IPv4 routing config with 1 thread, 1 phy core,\
+| | ... | 1 receive queue per NIC port. NAT44 is configured between DUTs -\
+| | ... | 4000 users and 15 ports (sessions) per user.
+| | ... | [Ver] Find NDR for IMIX frames using binary search start at 10GE\
+| | ... | linerate, step 100kpps.
+| | ...
+| | [Tags] | IMIX | 1T1C | STHREAD | NDRDISC
+| | ...
+| | [Template] | Discover NDR or PDR for IPv4 routing with NAT44
+| | wt=1 | rxq=1 | framesize=IMIX_v4_1 | min_rate=${100000} | search_type=NDR
+
+| tc06-IMIX-1t1c-ethip4udp-ip4scale4000-udpsrcscale15-snat-pdrdisc
+| | [Documentation]
+| | ... | [Cfg] DUT runs IPv4 routing config with 1 thread, 1 phy core,\
+| | ... | 1 receive queue per NIC port. NAT44 is configured between DUTs -\
+| | ... | 4000 users and 15 ports (sessions) per user.
+| | ... | [Ver] Find PDR for IMIX frames using binary search start at 10GE\
+| | ... | linerate, step 100kpps.
+| | ...
+| | [Tags] | IMIX | 1T1C | STHREAD | PDRDISC | SKIP_PATCH
+| | ...
+| | [Template] | Discover NDR or PDR for IPv4 routing with NAT44
+| | wt=1 | rxq=1 | framesize=IMIX_v4_1 | min_rate=${100000} | search_type=PDR
+
+| tc07-64B-2t2c-ethip4udp-ip4scale4000-udpsrcscale15-snat-ndrdisc
+| | [Documentation]
+| | ... | [Cfg] DUT runs IPv4 routing config with 2 threads, 2 phy cores,\
+| | ... | 1 receive queue per NIC port. NAT44 is configured between DUTs -\
+| | ... | 4000 users and 15 ports (sessions) per user.
+| | ... | [Ver] Find NDR for 64 Byte frames using binary search start at 10GE\
+| | ... | linerate, step 100kpps.
+| | ...
+| | [Tags] | 64B | 2T2C | MTHREAD | NDRDISC
+| | ...
+| | [Template] | Discover NDR or PDR for IPv4 routing with NAT44
+| | wt=2 | rxq=1 | framesize=${64} | min_rate=${100000} | search_type=NDR
+
+| tc08-64B-2t2c-ethip4udp-ip4scale4000-udpsrcscale15-snat-pdrdisc
+| | [Documentation]
+| | ... | [Cfg] DUT runs IPv4 routing config with 2 threads, 2 phy cores,\
+| | ... | 1 receive queue per NIC port. NAT44 is configured between DUTs -\
+| | ... | 4000 users and 15 ports (sessions) per user.
+| | ... | [Ver] Find PDR for 64 Byte frames using binary search start at 10GE\
+| | ... | linerate, step 100kpps.
+| | ...
+| | [Tags] | 64B | 2T2C | MTHREAD | PDRDISC | SKIP_PATCH
+| | ...
+| | [Template] | Discover NDR or PDR for IPv4 routing with NAT44
+| | wt=2 | rxq=1 | framesize=${64} | min_rate=${100000} | search_type=PDR
+
+| tc09-1518B-2t2c-ethip4udp-ip4scale4000-udpsrcscale15-snat-ndrdisc
+| | [Documentation]
+| | ... | [Cfg] DUT runs IPv4 routing config with 2 threads, 2 phy cores,\
+| | ... | 1 receive queue per NIC port. NAT44 is configured between DUTs -\
+| | ... | 4000 users and 15 ports (sessions) per user.
+| | ... | [Ver] Find NDR for 1518 Byte frames using binary search start at 10GE\
+| | ... | linerate, step 100kpps.
+| | ...
+| | [Tags] | 1518B | 2T2C | MTHREAD | NDRDISC
+| | ...
+| | [Template] | Discover NDR or PDR for IPv4 routing with NAT44
+| | wt=2 | rxq=1 | framesize=${1518} | min_rate=${100000} | search_type=NDR
+
+| tc10-1518B-2t2c-ethip4udp-ip4scale4000-udpsrcscale15-snat-pdrdisc
+| | [Documentation]
+| | ... | [Cfg] DUT runs IPv4 routing config with 2 threads, 2 phy cores,\
+| | ... | 1 receive queue per NIC port. NAT44 is configured between DUTs -\
+| | ... | 4000 users and 15 ports (sessions) per user.
+| | ... | [Ver] Find PDR for 1518 Byte frames using binary search start at 10GE\
+| | ... | linerate, step 100kpps.
+| | ...
+| | [Tags] | 1518B | 2T2C | MTHREAD | PDRDISC | SKIP_PATCH
+| | ...
+| | [Template] | Discover NDR or PDR for IPv4 routing with NAT44
+| | wt=2 | rxq=1 | framesize=${1518} | min_rate=${100000} | search_type=PDR
+
+| tc11-IMIX-2t2c-ethip4udp-ip4scale4000-udpsrcscale15-snat-ndrdisc
+| | [Documentation]
+| | ... | [Cfg] DUT runs IPv4 routing config with 2 threads, 2 phy cores,\
+| | ... | 1 receive queue per NIC port. NAT44 is configured between DUTs -\
+| | ... | 4000 users and 15 ports (sessions) per user.
+| | ... | [Ver] Find NDR for IMIX frames using binary search start at 10GE\
+| | ... | linerate, step 100kpps.
+| | ...
+| | [Tags] | IMIX | 2T2C | MTHREAD | NDRDISC
+| | ...
+| | [Template] | Discover NDR or PDR for IPv4 routing with NAT44
+| | wt=2 | rxq=1 | framesize=IMIX_v4_1 | min_rate=${100000} | search_type=NDR
+
+| tc12-IMIX-2t2c-ethip4udp-ip4scale4000-udpsrcscale15-snat-pdrdisc
+| | [Documentation]
+| | ... | [Cfg] DUT runs IPv4 routing config with 2 threads, 2 phy cores,\
+| | ... | 1 receive queue per NIC port. NAT44 is configured between DUTs -\
+| | ... | 4000 users and 15 ports (sessions) per user.
+| | ... | [Ver] Find PDR for IMIX frames using binary search start at 10GE\
+| | ... | linerate, step 100kpps.
+| | ...
+| | [Tags] | IMIX | 2T2C | MTHREAD | PDRDISC | SKIP_PATCH
+| | ...
+| | [Template] | Discover NDR or PDR for IPv4 routing with NAT44
+| | wt=2 | rxq=1 | framesize=IMIX_v4_1 | min_rate=${100000} | search_type=PDR
+
+| tc13-64B-4t4c-ethip4udp-ip4scale4000-udpsrcscale15-snat-ndrdisc
+| | [Documentation]
+| | ... | [Cfg] DUT runs IPv4 routing config with 4 threads, 4 phy cores,\
+| | ... | 2 receive queues per NIC port. NAT44 is configured between DUTs -\
+| | ... | 4000 users and 15 ports (sessions) per user.
+| | ... | [Ver] Find NDR for 64 Byte frames using binary search start at 10GE\
+| | ... | linerate, step 100kpps.
+| | ...
+| | [Tags] | 64B | 4T4C | MTHREAD | NDRDISC
+| | ...
+| | [Template] | Discover NDR or PDR for IPv4 routing with NAT44
+| | wt=4 | rxq=2 | framesize=${64} | min_rate=${100000} | search_type=NDR
+
+| tc14-64B-4t4c-ethip4udp-ip4scale4000-udpsrcscale15-snat-pdrdisc
+| | [Documentation]
+| | ... | [Cfg] DUT runs IPv4 routing config with 4 threads, 4 phy cores,\
+| | ... | 2 receive queues per NIC port. NAT44 is configured between DUTs -\
+| | ... | 4000 users and 15 ports (sessions) per user.
+| | ... | [Ver] Find PDR for 64 Byte frames using binary search start at 10GE\
+| | ... | linerate, step 100kpps.
+| | ...
+| | [Tags] | 64B | 4T4C | MTHREAD | PDRDISC | SKIP_PATCH
+| | ...
+| | [Template] | Discover NDR or PDR for IPv4 routing with NAT44
+| | wt=4 | rxq=2 | framesize=${64} | min_rate=${100000} | search_type=PDR
+
+| tc15-1518B-4t4c-ethip4udp-ip4scale4000-udpsrcscale15-snat-ndrdisc
+| | [Documentation]
+| | ... | [Cfg] DUT runs IPv4 routing config with 4 threads, 4 phy cores,\
+| | ... | 2 receive queues per NIC port. NAT44 is configured between DUTs -\
+| | ... | 4000 users and 15 ports (sessions) per user.
+| | ... | [Ver] Find NDR for 1518 Byte frames using binary search start at 10GE\
+| | ... | linerate, step 100kpps.
+| | ...
+| | [Tags] | 1518B | 4T4C | MTHREAD | NDRDISC
+| | ...
+| | [Template] | Discover NDR or PDR for IPv4 routing with NAT44
+| | wt=4 | rxq=2 | framesize=${1518} | min_rate=${100000} | search_type=NDR
+
+| tc16-1518B-4t4c-ethip4udp-ip4scale4000-udpsrcscale15-snat-pdrdisc
+| | [Documentation]
+| | ... | [Cfg] DUT runs IPv4 routing config with 4 threads, 4 phy cores,\
+| | ... | 2 receive queues per NIC port. NAT44 is configured between DUTs -\
+| | ... | 4000 users and 15 ports (sessions) per user.
+| | ... | [Ver] Find PDR for 1518 Byte frames using binary search start at 10GE\
+| | ... | linerate, step 100kpps.
+| | ...
+| | [Tags] | 1518B | 4T4C | MTHREAD | PDRDISC | SKIP_PATCH
+| | ...
+| | [Template] | Discover NDR or PDR for IPv4 routing with NAT44
+| | wt=4 | rxq=2 | framesize=${1518} | min_rate=${100000} | search_type=PDR
+
+| tc17-IMIX-4t4c-ethip4udp-ip4scale4000-udpsrcscale15-snat-ndrdisc
+| | [Documentation]
+| | ... | [Cfg] DUT runs IPv4 routing config with 4 threads, 4 phy cores,\
+| | ... | 2 receive queues per NIC port. NAT44 is configured between DUTs -\
+| | ... | 4000 users and 15 ports (sessions) per user.
+| | ... | [Ver] Find NDR for IMIX frames using binary search start at 10GE\
+| | ... | linerate, step 100kpps.
+| | ...
+| | [Tags] | IMIX | 4T4C | MTHREAD | NDRDISC
+| | ...
+| | [Template] | Discover NDR or PDR for IPv4 routing with NAT44
+| | wt=4 | rxq=2 | framesize=IMIX_v4_1 | min_rate=${100000} | search_type=NDR
+
+| tc18-IMIX-4t4c-ethip4udp-ip4scale4000-udpsrcscale15-snat-pdrdisc
+| | [Documentation]
+| | ... | [Cfg] DUT runs IPv4 routing config with 4 threads, 4 phy cores,\
+| | ... | 2 receive queues per NIC port. NAT44 is configured between DUTs -\
+| | ... | 4000 users and 15 ports (sessions) per user.
+| | ... | [Ver] Find PDR for IMIX frames using binary search start at 10GE\
+| | ... | linerate, step 100kpps.
+| | ...
+| | [Tags] | IMIX | 4T4C | MTHREAD | PDRDISC | SKIP_PATCH
+| | ...
+| | [Template] | Discover NDR or PDR for IPv4 routing with NAT44
+| | wt=4 | rxq=2 | framesize=IMIX_v4_1 | min_rate=${100000} | search_type=PDR