aboutsummaryrefslogtreecommitdiffstats
path: root/tests
diff options
context:
space:
mode:
authorVratko Polak <vrpolak@cisco.com>2021-02-05 11:46:40 +0100
committerVratko Polak <vrpolak@cisco.com>2021-02-05 11:46:40 +0100
commitb26fe6de7965f6621b54a80a938f82afe95aa585 (patch)
tree6e13303e62f1e5ae66dcdbf85f12996a1af91c69 /tests
parent0c02e000ae58474120246c484cf5458a76510288 (diff)
NAT44ed: Add pure throuhput bidir tests
+ With ramp-up, without reset, with session verification. + Uses the same profile as pps tests. + Ramp up duration is not specified, as duration is computed. + Timeout tracking with automated ramp-up. + Correct computation of next duration. + Checking both early and late sessions. + No loss measurement also acts as a ramp-up. + Return ReceiveRateMeasurement from send_traffic_on_tg_internal, as that is needed for detecting whether trial is ok as ramp up. - Udp needs quite low ramp-up rate after recent regression. - Max scale has higher rate (so failing) to avoid session timeouts. + Bump copyright year. Change-Id: I50c928659cd5b985b490a2e5fb69c5cd790600b0 Signed-off-by: Vratko Polak <vrpolak@cisco.com>
Diffstat (limited to 'tests')
-rw-r--r--tests/vpp/perf/ip4/2n1l-10ge2p1x710-ethip4tcp-nat44ed-h1024-p63-s64512-tput-ndrpdr.robot140
-rw-r--r--tests/vpp/perf/ip4/2n1l-10ge2p1x710-ethip4tcp-nat44ed-h16384-p63-s1032192-tput-ndrpdr.robot140
-rw-r--r--tests/vpp/perf/ip4/2n1l-10ge2p1x710-ethip4tcp-nat44ed-h262144-p63-s16515072-tput-ndrpdr.robot142
-rw-r--r--tests/vpp/perf/ip4/2n1l-10ge2p1x710-ethip4tcp-nat44ed-h4096-p63-s258048-tput-ndrpdr.robot140
-rw-r--r--tests/vpp/perf/ip4/2n1l-10ge2p1x710-ethip4tcp-nat44ed-h65536-p63-s4128768-tput-ndrpdr.robot142
-rw-r--r--tests/vpp/perf/ip4/2n1l-10ge2p1x710-ethip4udp-nat44ed-h1024-p63-s64512-tput-ndrpdr.robot140
-rw-r--r--tests/vpp/perf/ip4/2n1l-10ge2p1x710-ethip4udp-nat44ed-h16384-p63-s1032192-tput-ndrpdr.robot140
-rw-r--r--tests/vpp/perf/ip4/2n1l-10ge2p1x710-ethip4udp-nat44ed-h262144-p63-s16515072-tput-ndrpdr.robot143
-rw-r--r--tests/vpp/perf/ip4/2n1l-10ge2p1x710-ethip4udp-nat44ed-h4096-p63-s258048-tput-ndrpdr.robot140
-rw-r--r--tests/vpp/perf/ip4/2n1l-10ge2p1x710-ethip4udp-nat44ed-h65536-p63-s4128768-tput-ndrpdr.robot142
10 files changed, 1409 insertions, 0 deletions
diff --git a/tests/vpp/perf/ip4/2n1l-10ge2p1x710-ethip4tcp-nat44ed-h1024-p63-s64512-tput-ndrpdr.robot b/tests/vpp/perf/ip4/2n1l-10ge2p1x710-ethip4tcp-nat44ed-h1024-p63-s64512-tput-ndrpdr.robot
new file mode 100644
index 0000000000..e05b586a2c
--- /dev/null
+++ b/tests/vpp/perf/ip4/2n1l-10ge2p1x710-ethip4tcp-nat44ed-h1024-p63-s64512-tput-ndrpdr.robot
@@ -0,0 +1,140 @@
+# Copyright (c) 2021 Cisco and/or its affiliates.
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at:
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+*** Settings ***
+| Resource | resources/libraries/robot/shared/default.robot
+|
+| Force Tags | 2_NODE_SINGLE_LINK_TOPO | PERFTEST | HW_ENV | NDRPDR
+| ... | NIC_Intel-X710 | ETH | IP4FWD | NAT44 | TCP | TCP_TPUT | DRV_VFIO_PCI
+| ... | SCALE | HOSTS_1024 | RXQ_SIZE_0 | TXQ_SIZE_0
+| ... | ethip4tcp-nat44ed-h1024-p63-s64512-tput
+|
+| Suite Setup | Setup suite topology interfaces | performance
+| Suite Teardown | Tear down suite | performance
+| Test Setup | Setup test | performance
+| Test Teardown | Tear down test | performance | nat-ed
+|
+| Test Template | Local Template
+|
+| # TODO CSIT-1765: Unify suite Documentation.
+| Documentation | *TPUT on lightweight TCP transactions with NAT44ED*
+|
+| ... | *[Top] Network Topologies:* TG-DUT1-TG 2-node circular topology\
+| ... | with single links between nodes.
+| ... | *[Enc] Packet Encapsulations:* Eth-IPv4-TCP for IPv4 routing.
+| ... | *[Cfg] DUT configuration:* DUT1 is configured with IPv4\
+| ... | routing and two static IPv4 /24 route entries. DUT1 tested with\
+| ... | ${nic_name}.
+| ... | *[Ver] TG verification:* TG finds and reports throughput NDR (Non Drop\
+| ... | Rate) with zero packet loss tolerance and throughput PDR (Partial Drop\
+| ... | Rate) with non-zero packet loss tolerance (LT) expressed in percentage\
+| ... | of packets transmitted. NDR and PDR are discovered for different\
+| ... | Ethernet L2 frame sizes using MLRsearch library.\
+| ... | Test packets are generated by TG on links to DUTs. TG traffic profile\
+| ... | contains client and server ASTF programs, generating packets containing\
+| ... | Ethernet header, IPv4 header, TCP header and static payload.\
+| ... | MAC addresses are matching MAC addresses of the TG node interfaces.
+| ... | *[Ref] Applicable standard specifications:* RFC2544.
+
+*** Variables ***
+| @{plugins_to_enable}= | dpdk_plugin.so | nat_plugin.so
+| ${crypto_type}= | ${None}
+| ${nic_name}= | Intel-X710
+| ${nic_driver}= | vfio-pci
+| ${nic_rxq_size}= | 0
+| ${nic_txq_size}= | 0
+| ${nic_pfs}= | 2
+| ${nic_vfs}= | 0
+| ${osi_layer}= | L7
+| ${overhead}= | ${0}
+# IP settings
+| ${tg_if1_ip4}= | 10.0.0.2
+| ${tg_if1_mask}= | ${20}
+| ${tg_if2_ip4}= | 12.0.0.2
+| ${tg_if2_mask}= | ${20}
+| ${dut1_if1_ip4}= | 10.0.0.1
+| ${dut1_if1_mask}= | ${24}
+| ${dut1_if2_ip4}= | 12.0.0.1
+| ${dut1_if2_mask}= | ${24}
+| ${dest_net}= | 20.0.0.0
+| ${dest_mask}= | ${22}
+# NAT settings
+| ${nat_mode}= | endpoint-dependent
+| ${in_net}= | 192.168.0.0
+| ${in_mask}= | ${22}
+| ${out_net}= | 68.142.68.0
+| ${out_net_end}= | 68.142.68.0
+| ${out_mask}= | ${32}
+# Scale settings
+| ${n_hosts}= | ${1024}
+| ${n_ports}= | ${63}
+| ${n_sessions}= | ${${n_hosts} * ${n_ports}}
+| ${packets_per_transaction_and_direction}= | ${11}
+| ${transaction_scale}= | ${n_sessions}
+# Ramp-up settings
+| ${ramp_up_rate}= | ${70000}
+# Traffic profile
+| ${traffic_profile}= | trex-astf-ethip4tcp-${n_hosts}h-pps
+| ${transaction_type}= | tcp_pps
+| ${disable_latency}= | ${True}
+
+*** Keywords ***
+| Local Template
+| | [Documentation]
+| | ... | [Cfg] DUT runs NAT44 ${nat_mode} configuration.\
+| | ... | Each DUT uses ${phy_cores} physical core(s) for worker threads.
+| | ... | [Ver] Measure NDR and PDR values using MLRsearch algorithm.\
+| |
+| | ... | *Arguments:*
+| | ... | - frame_size - Framesize in Bytes in integer or string (IMIX_v4_1).
+| | ... | Type: integer, string
+| | ... | - phy_cores - Number of physical cores. Type: integer
+| | ... | - rxq - Number of RX queues, default value: ${None}. Type: integer
+| |
+| | [Arguments] | ${frame_size} | ${phy_cores} | ${rxq}=${None}
+| |
+| | Set Test Variable | \${frame_size}
+| | ${pre_stats}= | Create List
+| | ... | vpp-clear-stats | vpp-enable-packettrace | vpp-enable-elog
+| | ... | vpp-clear-runtime
+| | Set Test Variable | ${pre_stats}
+| | ${post_stats}= | Create List
+| | ... | vpp-show-stats | vpp-show-packettrace | vpp-show-elog
+| | ... | vpp-show-runtime
+| | Set Test Variable | ${post_stats}
+| |
+| | Given Set Max Rate And Jumbo
+| | And Add worker threads to all DUTs | ${phy_cores} | ${rxq}
+| | And Pre-initialize layer driver | ${nic_driver}
+| | And Apply startup configuration on all VPP DUTs
+| | When Initialize layer driver | ${nic_driver}
+| | And Initialize layer interface
+| | And Initialize IPv4 forwarding for NAT44 in circular topology
+| | And Initialize NAT44 endpoint-dependent mode in circular topology
+| | Then Send ramp-up traffic
+| | And Verify NAT44 TCP sessions number on DUT1 node
+| | And Find NDR and PDR intervals using optimized search
+| | And Verify NAT44 TCP sessions number on DUT1 node
+
+*** Test Cases ***
+| 64B-1c-ethip4tcp-nat44ed-h1024-p63-s64512-tput-ndrpdr
+| | [Tags] | 64B | 1C
+| | frame_size=${64} | phy_cores=${1}
+
+| 64B-2c-ethip4tcp-nat44ed-h1024-p63-s64512-tput-ndrpdr
+| | [Tags] | 64B | 2C
+| | frame_size=${64} | phy_cores=${2}
+
+| 64B-4c-ethip4tcp-nat44ed-h1024-p63-s64512-tput-ndrpdr
+| | [Tags] | 64B | 4C
+| | frame_size=${64} | phy_cores=${4}
diff --git a/tests/vpp/perf/ip4/2n1l-10ge2p1x710-ethip4tcp-nat44ed-h16384-p63-s1032192-tput-ndrpdr.robot b/tests/vpp/perf/ip4/2n1l-10ge2p1x710-ethip4tcp-nat44ed-h16384-p63-s1032192-tput-ndrpdr.robot
new file mode 100644
index 0000000000..3adaad1ad5
--- /dev/null
+++ b/tests/vpp/perf/ip4/2n1l-10ge2p1x710-ethip4tcp-nat44ed-h16384-p63-s1032192-tput-ndrpdr.robot
@@ -0,0 +1,140 @@
+# Copyright (c) 2021 Cisco and/or its affiliates.
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at:
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+*** Settings ***
+| Resource | resources/libraries/robot/shared/default.robot
+|
+| Force Tags | 2_NODE_SINGLE_LINK_TOPO | PERFTEST | HW_ENV | NDRPDR
+| ... | NIC_Intel-X710 | ETH | IP4FWD | NAT44 | TCP | TCP_TPUT | DRV_VFIO_PCI
+| ... | SCALE | HOSTS_16384 | RXQ_SIZE_0 | TXQ_SIZE_0
+| ... | ethip4tcp-nat44ed-h16384-p63-s1032192-tput
+|
+| Suite Setup | Setup suite topology interfaces | performance
+| Suite Teardown | Tear down suite | performance
+| Test Setup | Setup test | performance
+| Test Teardown | Tear down test | performance | nat-ed
+|
+| Test Template | Local Template
+|
+| # TODO CSIT-1765: Unify suite Documentation.
+| Documentation | *TPUT on lightweight TCP transactions with NAT44ED*
+|
+| ... | *[Top] Network Topologies:* TG-DUT1-TG 2-node circular topology\
+| ... | with single links between nodes.
+| ... | *[Enc] Packet Encapsulations:* Eth-IPv4-TCP for IPv4 routing.
+| ... | *[Cfg] DUT configuration:* DUT1 is configured with IPv4\
+| ... | routing and two static IPv4 /24 route entries. DUT1 tested with\
+| ... | ${nic_name}.
+| ... | *[Ver] TG verification:* TG finds and reports throughput NDR (Non Drop\
+| ... | Rate) with zero packet loss tolerance and throughput PDR (Partial Drop\
+| ... | Rate) with non-zero packet loss tolerance (LT) expressed in percentage\
+| ... | of packets transmitted. NDR and PDR are discovered for different\
+| ... | Ethernet L2 frame sizes using MLRsearch library.\
+| ... | Test packets are generated by TG on links to DUTs. TG traffic profile\
+| ... | contains client and server ASTF programs, generating packets containing\
+| ... | Ethernet header, IPv4 header, TCP header and static payload.\
+| ... | MAC addresses are matching MAC addresses of the TG node interfaces.
+| ... | *[Ref] Applicable standard specifications:* RFC2544.
+
+*** Variables ***
+| @{plugins_to_enable}= | dpdk_plugin.so | nat_plugin.so
+| ${crypto_type}= | ${None}
+| ${nic_name}= | Intel-X710
+| ${nic_driver}= | vfio-pci
+| ${nic_rxq_size}= | 0
+| ${nic_txq_size}= | 0
+| ${nic_pfs}= | 2
+| ${nic_vfs}= | 0
+| ${osi_layer}= | L7
+| ${overhead}= | ${0}
+# IP settings
+| ${tg_if1_ip4}= | 10.0.0.2
+| ${tg_if1_mask}= | ${20}
+| ${tg_if2_ip4}= | 12.0.0.2
+| ${tg_if2_mask}= | ${20}
+| ${dut1_if1_ip4}= | 10.0.0.1
+| ${dut1_if1_mask}= | ${24}
+| ${dut1_if2_ip4}= | 12.0.0.1
+| ${dut1_if2_mask}= | ${24}
+| ${dest_net}= | 20.0.0.0
+| ${dest_mask}= | ${18}
+# NAT settings
+| ${nat_mode}= | endpoint-dependent
+| ${in_net}= | 192.168.0.0
+| ${in_mask}= | ${18}
+| ${out_net}= | 68.142.68.0
+| ${out_net_end}= | 68.142.68.15
+| ${out_mask}= | ${28}
+# Scale settings
+| ${n_hosts}= | ${16384}
+| ${n_ports}= | ${63}
+| ${n_sessions}= | ${${n_hosts} * ${n_ports}}
+| ${packets_per_transaction_and_direction}= | ${11}
+| ${transaction_scale}= | ${n_sessions}
+# Ramp-up settings
+| ${ramp_up_rate}= | ${70000}
+# Traffic profile
+| ${traffic_profile}= | trex-astf-ethip4tcp-${n_hosts}h-pps
+| ${transaction_type}= | tcp_pps
+| ${disable_latency}= | ${True}
+
+*** Keywords ***
+| Local Template
+| | [Documentation]
+| | ... | [Cfg] DUT runs NAT44 ${nat_mode} configuration.\
+| | ... | Each DUT uses ${phy_cores} physical core(s) for worker threads.
+| | ... | [Ver] Measure NDR and PDR values using MLRsearch algorithm.\
+| |
+| | ... | *Arguments:*
+| | ... | - frame_size - Framesize in Bytes in integer or string (IMIX_v4_1).
+| | ... | Type: integer, string
+| | ... | - phy_cores - Number of physical cores. Type: integer
+| | ... | - rxq - Number of RX queues, default value: ${None}. Type: integer
+| |
+| | [Arguments] | ${frame_size} | ${phy_cores} | ${rxq}=${None}
+| |
+| | Set Test Variable | \${frame_size}
+| | ${pre_stats}= | Create List
+| | ... | vpp-clear-stats | vpp-enable-packettrace | vpp-enable-elog
+| | ... | vpp-clear-runtime
+| | Set Test Variable | ${pre_stats}
+| | ${post_stats}= | Create List
+| | ... | vpp-show-stats | vpp-show-packettrace | vpp-show-elog
+| | ... | vpp-show-runtime
+| | Set Test Variable | ${post_stats}
+| |
+| | Given Set Max Rate And Jumbo
+| | And Add worker threads to all DUTs | ${phy_cores} | ${rxq}
+| | And Pre-initialize layer driver | ${nic_driver}
+| | And Apply startup configuration on all VPP DUTs
+| | When Initialize layer driver | ${nic_driver}
+| | And Initialize layer interface
+| | And Initialize IPv4 forwarding for NAT44 in circular topology
+| | And Initialize NAT44 endpoint-dependent mode in circular topology
+| | Then Send ramp-up traffic
+| | And Verify NAT44 TCP sessions number on DUT1 node
+| | And Find NDR and PDR intervals using optimized search
+| | And Verify NAT44 TCP sessions number on DUT1 node
+
+*** Test Cases ***
+| 64B-1c-ethip4tcp-nat44ed-h16384-p63-s1032192-tput-ndrpdr
+| | [Tags] | 64B | 1C
+| | frame_size=${64} | phy_cores=${1}
+
+| 64B-2c-ethip4tcp-nat44ed-h16384-p63-s1032192-tput-ndrpdr
+| | [Tags] | 64B | 2C
+| | frame_size=${64} | phy_cores=${2}
+
+| 64B-4c-ethip4tcp-nat44ed-h16384-p63-s1032192-tput-ndrpdr
+| | [Tags] | 64B | 4C
+| | frame_size=${64} | phy_cores=${4}
diff --git a/tests/vpp/perf/ip4/2n1l-10ge2p1x710-ethip4tcp-nat44ed-h262144-p63-s16515072-tput-ndrpdr.robot b/tests/vpp/perf/ip4/2n1l-10ge2p1x710-ethip4tcp-nat44ed-h262144-p63-s16515072-tput-ndrpdr.robot
new file mode 100644
index 0000000000..9000521a8e
--- /dev/null
+++ b/tests/vpp/perf/ip4/2n1l-10ge2p1x710-ethip4tcp-nat44ed-h262144-p63-s16515072-tput-ndrpdr.robot
@@ -0,0 +1,142 @@
+# Copyright (c) 2021 Cisco and/or its affiliates.
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at:
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+*** Settings ***
+| Resource | resources/libraries/robot/shared/default.robot
+|
+| Force Tags | 2_NODE_SINGLE_LINK_TOPO | PERFTEST | HW_ENV | NDRPDR
+| ... | NIC_Intel-X710 | ETH | IP4FWD | NAT44 | TCP | TCP_TPUT | DRV_VFIO_PCI
+| ... | SCALE | HOSTS_262144 | RXQ_SIZE_0 | TXQ_SIZE_0
+| ... | ethip4tcp-nat44ed-h262144-p63-s16515072-tput
+|
+| Suite Setup | Setup suite topology interfaces | performance
+| Suite Teardown | Tear down suite | performance
+| Test Setup | Setup test | performance
+| Test Teardown | Tear down test | performance | nat-ed
+|
+| Test Template | Local Template
+|
+| # TODO CSIT-1765: Unify suite Documentation.
+| Documentation | *TPUT on lightweight TCP transactions with NAT44ED*
+|
+| ... | *[Top] Network Topologies:* TG-DUT1-TG 2-node circular topology\
+| ... | with single links between nodes.
+| ... | *[Enc] Packet Encapsulations:* Eth-IPv4-TCP for IPv4 routing.
+| ... | *[Cfg] DUT configuration:* DUT1 is configured with IPv4\
+| ... | routing and two static IPv4 /24 route entries. DUT1 tested with\
+| ... | ${nic_name}.
+| ... | *[Ver] TG verification:* TG finds and reports throughput NDR (Non Drop\
+| ... | Rate) with zero packet loss tolerance and throughput PDR (Partial Drop\
+| ... | Rate) with non-zero packet loss tolerance (LT) expressed in percentage\
+| ... | of packets transmitted. NDR and PDR are discovered for different\
+| ... | Ethernet L2 frame sizes using MLRsearch library.\
+| ... | Test packets are generated by TG on links to DUTs. TG traffic profile\
+| ... | contains client and server ASTF programs, generating packets containing\
+| ... | Ethernet header, IPv4 header, TCP header and static payload.\
+| ... | MAC addresses are matching MAC addresses of the TG node interfaces.
+| ... | *[Ref] Applicable standard specifications:* RFC2544.
+
+*** Variables ***
+| @{plugins_to_enable}= | dpdk_plugin.so | nat_plugin.so
+| ${crypto_type}= | ${None}
+| ${nic_name}= | Intel-X710
+| ${nic_driver}= | vfio-pci
+| ${nic_rxq_size}= | 0
+| ${nic_txq_size}= | 0
+| ${nic_pfs}= | 2
+| ${nic_vfs}= | 0
+| ${osi_layer}= | L7
+| ${overhead}= | ${0}
+# IP settings
+| ${tg_if1_ip4}= | 10.0.0.2
+| ${tg_if1_mask}= | ${20}
+| ${tg_if2_ip4}= | 12.0.0.2
+| ${tg_if2_mask}= | ${20}
+| ${dut1_if1_ip4}= | 10.0.0.1
+| ${dut1_if1_mask}= | ${24}
+| ${dut1_if2_ip4}= | 12.0.0.1
+| ${dut1_if2_mask}= | ${24}
+| ${dest_net}= | 20.16.0.0
+| ${dest_mask}= | ${14}
+# NAT settings
+| ${nat_mode}= | endpoint-dependent
+| ${in_net}= | 172.16.0.0
+| ${in_mask}= | ${14}
+| ${out_net}= | 68.142.68.0
+| ${out_net_end}= | 68.142.68.255
+| ${out_mask}= | ${24}
+# Scale settings
+| ${n_hosts}= | ${262144}
+| ${n_ports}= | ${63}
+| ${n_sessions}= | ${${n_hosts} * ${n_ports}}
+| ${packets_per_transaction_and_direction}= | ${11}
+| ${transaction_scale}= | ${n_sessions}
+# Main heap size multiplicator
+| ${heap_size_mult}= | ${7}
+# Ramp-up settings
+| ${ramp_up_rate}= | ${70000}
+# Traffic profile
+| ${traffic_profile}= | trex-astf-ethip4tcp-${n_hosts}h-pps
+| ${transaction_type}= | tcp_pps
+| ${disable_latency}= | ${True}
+
+*** Keywords ***
+| Local Template
+| | [Documentation]
+| | ... | [Cfg] DUT runs NAT44 ${nat_mode} configuration.\
+| | ... | Each DUT uses ${phy_cores} physical core(s) for worker threads.
+| | ... | [Ver] Measure NDR and PDR values using MLRsearch algorithm.\
+| |
+| | ... | *Arguments:*
+| | ... | - frame_size - Framesize in Bytes in integer or string (IMIX_v4_1).
+| | ... | Type: integer, string
+| | ... | - phy_cores - Number of physical cores. Type: integer
+| | ... | - rxq - Number of RX queues, default value: ${None}. Type: integer
+| |
+| | [Arguments] | ${frame_size} | ${phy_cores} | ${rxq}=${None}
+| |
+| | Set Test Variable | \${frame_size}
+| | ${pre_stats}= | Create List
+| | ... | vpp-clear-stats | vpp-enable-packettrace | vpp-enable-elog
+| | ... | vpp-clear-runtime
+| | Set Test Variable | ${pre_stats}
+| | ${post_stats}= | Create List
+| | ... | vpp-show-stats | vpp-show-packettrace | vpp-show-elog
+| | ... | vpp-show-runtime
+| | Set Test Variable | ${post_stats}
+| |
+| | Given Set Max Rate And Jumbo
+| | And Add worker threads to all DUTs | ${phy_cores} | ${rxq}
+| | And Pre-initialize layer driver | ${nic_driver}
+| | And Apply startup configuration on all VPP DUTs
+| | When Initialize layer driver | ${nic_driver}
+| | And Initialize layer interface
+| | And Initialize IPv4 forwarding for NAT44 in circular topology
+| | And Initialize NAT44 endpoint-dependent mode in circular topology
+| | Then Send ramp-up traffic
+| | And Verify NAT44 TCP sessions number on DUT1 node
+| | And Find NDR and PDR intervals using optimized search
+| | And Verify NAT44 TCP sessions number on DUT1 node
+
+*** Test Cases ***
+| 64B-1c-ethip4tcp-nat44ed-h262144-p63-s16515072-tput-ndrpdr
+| | [Tags] | 64B | 1C
+| | frame_size=${64} | phy_cores=${1}
+
+| 64B-2c-ethip4tcp-nat44ed-h262144-p63-s16515072-tput-ndrpdr
+| | [Tags] | 64B | 2C
+| | frame_size=${64} | phy_cores=${2}
+
+| 64B-4c-ethip4tcp-nat44ed-h262144-p63-s16515072-tput-ndrpdr
+| | [Tags] | 64B | 4C
+| | frame_size=${64} | phy_cores=${4}
diff --git a/tests/vpp/perf/ip4/2n1l-10ge2p1x710-ethip4tcp-nat44ed-h4096-p63-s258048-tput-ndrpdr.robot b/tests/vpp/perf/ip4/2n1l-10ge2p1x710-ethip4tcp-nat44ed-h4096-p63-s258048-tput-ndrpdr.robot
new file mode 100644
index 0000000000..93f76bda4a
--- /dev/null
+++ b/tests/vpp/perf/ip4/2n1l-10ge2p1x710-ethip4tcp-nat44ed-h4096-p63-s258048-tput-ndrpdr.robot
@@ -0,0 +1,140 @@
+# Copyright (c) 2021 Cisco and/or its affiliates.
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at:
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+*** Settings ***
+| Resource | resources/libraries/robot/shared/default.robot
+|
+| Force Tags | 2_NODE_SINGLE_LINK_TOPO | PERFTEST | HW_ENV | NDRPDR
+| ... | NIC_Intel-X710 | ETH | IP4FWD | NAT44 | TCP | TCP_TPUT | DRV_VFIO_PCI
+| ... | SCALE | HOSTS_4096 | RXQ_SIZE_0 | TXQ_SIZE_0
+| ... | ethip4tcp-nat44ed-h4096-p63-s258048-tput
+|
+| Suite Setup | Setup suite topology interfaces | performance
+| Suite Teardown | Tear down suite | performance
+| Test Setup | Setup test | performance
+| Test Teardown | Tear down test | performance | nat-ed
+|
+| Test Template | Local Template
+|
+| # TODO CSIT-1765: Unify suite Documentation.
+| Documentation | *TPUT on lightweight TCP transactions with NAT44ED*
+|
+| ... | *[Top] Network Topologies:* TG-DUT1-TG 2-node circular topology\
+| ... | with single links between nodes.
+| ... | *[Enc] Packet Encapsulations:* Eth-IPv4-TCP for IPv4 routing.
+| ... | *[Cfg] DUT configuration:* DUT1 is configured with IPv4\
+| ... | routing and two static IPv4 /24 route entries. DUT1 tested with\
+| ... | ${nic_name}.
+| ... | *[Ver] TG verification:* TG finds and reports throughput NDR (Non Drop\
+| ... | Rate) with zero packet loss tolerance and throughput PDR (Partial Drop\
+| ... | Rate) with non-zero packet loss tolerance (LT) expressed in percentage\
+| ... | of packets transmitted. NDR and PDR are discovered for different\
+| ... | Ethernet L2 frame sizes using MLRsearch library.\
+| ... | Test packets are generated by TG on links to DUTs. TG traffic profile\
+| ... | contains client and server ASTF programs, generating packets containing\
+| ... | Ethernet header, IPv4 header, TCP header and static payload.\
+| ... | MAC addresses are matching MAC addresses of the TG node interfaces.
+| ... | *[Ref] Applicable standard specifications:* RFC2544.
+
+*** Variables ***
+| @{plugins_to_enable}= | dpdk_plugin.so | nat_plugin.so
+| ${crypto_type}= | ${None}
+| ${nic_name}= | Intel-X710
+| ${nic_driver}= | vfio-pci
+| ${nic_rxq_size}= | 0
+| ${nic_txq_size}= | 0
+| ${nic_pfs}= | 2
+| ${nic_vfs}= | 0
+| ${osi_layer}= | L7
+| ${overhead}= | ${0}
+# IP settings
+| ${tg_if1_ip4}= | 10.0.0.2
+| ${tg_if1_mask}= | ${20}
+| ${tg_if2_ip4}= | 12.0.0.2
+| ${tg_if2_mask}= | ${20}
+| ${dut1_if1_ip4}= | 10.0.0.1
+| ${dut1_if1_mask}= | ${24}
+| ${dut1_if2_ip4}= | 12.0.0.1
+| ${dut1_if2_mask}= | ${24}
+| ${dest_net}= | 20.0.0.0
+| ${dest_mask}= | ${20}
+# NAT settings
+| ${nat_mode}= | endpoint-dependent
+| ${in_net}= | 192.168.0.0
+| ${in_mask}= | ${20}
+| ${out_net}= | 68.142.68.0
+| ${out_net_end}= | 68.142.68.3
+| ${out_mask}= | ${30}
+# Scale settings
+| ${n_hosts}= | ${4096}
+| ${n_ports}= | ${63}
+| ${n_sessions}= | ${${n_hosts} * ${n_ports}}
+| ${packets_per_transaction_and_direction}= | ${11}
+| ${transaction_scale}= | ${n_sessions}
+# Ramp-up settings
+| ${ramp_up_rate}= | ${70000}
+# Traffic profile
+| ${traffic_profile}= | trex-astf-ethip4tcp-${n_hosts}h-pps
+| ${transaction_type}= | tcp_pps
+| ${disable_latency}= | ${True}
+
+*** Keywords ***
+| Local Template
+| | [Documentation]
+| | ... | [Cfg] DUT runs NAT44 ${nat_mode} configuration.\
+| | ... | Each DUT uses ${phy_cores} physical core(s) for worker threads.
+| | ... | [Ver] Measure NDR and PDR values using MLRsearch algorithm.\
+| |
+| | ... | *Arguments:*
+| | ... | - frame_size - Framesize in Bytes in integer or string (IMIX_v4_1).
+| | ... | Type: integer, string
+| | ... | - phy_cores - Number of physical cores. Type: integer
+| | ... | - rxq - Number of RX queues, default value: ${None}. Type: integer
+| |
+| | [Arguments] | ${frame_size} | ${phy_cores} | ${rxq}=${None}
+| |
+| | Set Test Variable | \${frame_size}
+| | ${pre_stats}= | Create List
+| | ... | vpp-clear-stats | vpp-enable-packettrace | vpp-enable-elog
+| | ... | vpp-clear-runtime
+| | Set Test Variable | ${pre_stats}
+| | ${post_stats}= | Create List
+| | ... | vpp-show-stats | vpp-show-packettrace | vpp-show-elog
+| | ... | vpp-show-runtime
+| | Set Test Variable | ${post_stats}
+| |
+| | Given Set Max Rate And Jumbo
+| | And Add worker threads to all DUTs | ${phy_cores} | ${rxq}
+| | And Pre-initialize layer driver | ${nic_driver}
+| | And Apply startup configuration on all VPP DUTs
+| | When Initialize layer driver | ${nic_driver}
+| | And Initialize layer interface
+| | And Initialize IPv4 forwarding for NAT44 in circular topology
+| | And Initialize NAT44 endpoint-dependent mode in circular topology
+| | Then Send ramp-up traffic
+| | And Verify NAT44 TCP sessions number on DUT1 node
+| | And Find NDR and PDR intervals using optimized search
+| | And Verify NAT44 TCP sessions number on DUT1 node
+
+*** Test Cases ***
+| 64B-1c-ethip4tcp-nat44ed-h4096-p63-s258048-tput-ndrpdr
+| | [Tags] | 64B | 1C
+| | frame_size=${64} | phy_cores=${1}
+
+| 64B-2c-ethip4tcp-nat44ed-h4096-p63-s258048-tput-ndrpdr
+| | [Tags] | 64B | 2C
+| | frame_size=${64} | phy_cores=${2}
+
+| 64B-4c-ethip4tcp-nat44ed-h4096-p63-s258048-tput-ndrpdr
+| | [Tags] | 64B | 4C
+| | frame_size=${64} | phy_cores=${4}
diff --git a/tests/vpp/perf/ip4/2n1l-10ge2p1x710-ethip4tcp-nat44ed-h65536-p63-s4128768-tput-ndrpdr.robot b/tests/vpp/perf/ip4/2n1l-10ge2p1x710-ethip4tcp-nat44ed-h65536-p63-s4128768-tput-ndrpdr.robot
new file mode 100644
index 0000000000..c56568f050
--- /dev/null
+++ b/tests/vpp/perf/ip4/2n1l-10ge2p1x710-ethip4tcp-nat44ed-h65536-p63-s4128768-tput-ndrpdr.robot
@@ -0,0 +1,142 @@
+# Copyright (c) 2021 Cisco and/or its affiliates.
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at:
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+*** Settings ***
+| Resource | resources/libraries/robot/shared/default.robot
+|
+| Force Tags | 2_NODE_SINGLE_LINK_TOPO | PERFTEST | HW_ENV | NDRPDR
+| ... | NIC_Intel-X710 | ETH | IP4FWD | NAT44 | TCP | TCP_TPUT | DRV_VFIO_PCI
+| ... | SCALE | HOSTS_65536 | RXQ_SIZE_0 | TXQ_SIZE_0
+| ... | ethip4tcp-nat44ed-h65536-p63-s4128768-tput
+|
+| Suite Setup | Setup suite topology interfaces | performance
+| Suite Teardown | Tear down suite | performance
+| Test Setup | Setup test | performance
+| Test Teardown | Tear down test | performance | nat-ed
+|
+| Test Template | Local Template
+|
+| # TODO CSIT-1765: Unify suite Documentation.
+| Documentation | *TPUT on lightweight TCP transactions with NAT44ED*
+|
+| ... | *[Top] Network Topologies:* TG-DUT1-TG 2-node circular topology\
+| ... | with single links between nodes.
+| ... | *[Enc] Packet Encapsulations:* Eth-IPv4-TCP for IPv4 routing.
+| ... | *[Cfg] DUT configuration:* DUT1 is configured with IPv4\
+| ... | routing and two static IPv4 /24 route entries. DUT1 tested with\
+| ... | ${nic_name}.
+| ... | *[Ver] TG verification:* TG finds and reports throughput NDR (Non Drop\
+| ... | Rate) with zero packet loss tolerance and throughput PDR (Partial Drop\
+| ... | Rate) with non-zero packet loss tolerance (LT) expressed in percentage\
+| ... | of packets transmitted. NDR and PDR are discovered for different\
+| ... | Ethernet L2 frame sizes using MLRsearch library.\
+| ... | Test packets are generated by TG on links to DUTs. TG traffic profile\
+| ... | contains client and server ASTF programs, generating packets containing\
+| ... | Ethernet header, IPv4 header, TCP header and static payload.\
+| ... | MAC addresses are matching MAC addresses of the TG node interfaces.
+| ... | *[Ref] Applicable standard specifications:* RFC2544.
+
+*** Variables ***
+| @{plugins_to_enable}= | dpdk_plugin.so | nat_plugin.so
+| ${crypto_type}= | ${None}
+| ${nic_name}= | Intel-X710
+| ${nic_driver}= | vfio-pci
+| ${nic_rxq_size}= | 0
+| ${nic_txq_size}= | 0
+| ${nic_pfs}= | 2
+| ${nic_vfs}= | 0
+| ${osi_layer}= | L7
+| ${overhead}= | ${0}
+# IP settings
+| ${tg_if1_ip4}= | 10.0.0.2
+| ${tg_if1_mask}= | ${20}
+| ${tg_if2_ip4}= | 12.0.0.2
+| ${tg_if2_mask}= | ${20}
+| ${dut1_if1_ip4}= | 10.0.0.1
+| ${dut1_if1_mask}= | ${24}
+| ${dut1_if2_ip4}= | 12.0.0.1
+| ${dut1_if2_mask}= | ${24}
+| ${dest_net}= | 20.0.0.0
+| ${dest_mask}= | ${16}
+# NAT settings
+| ${nat_mode}= | endpoint-dependent
+| ${in_net}= | 192.168.0.0
+| ${in_mask}= | ${16}
+| ${out_net}= | 68.142.68.0
+| ${out_net_end}= | 68.142.68.63
+| ${out_mask}= | ${26}
+# Scale settings
+| ${n_hosts}= | ${65536}
+| ${n_ports}= | ${63}
+| ${n_sessions}= | ${${n_hosts} * ${n_ports}}
+| ${packets_per_transaction_and_direction}= | ${11}
+| ${transaction_scale}= | ${n_sessions}
+# Main heap size multiplicator
+| ${heap_size_mult}= | ${2}
+# Ramp-up settings
+| ${ramp_up_rate}= | ${70000}
+# Traffic profile
+| ${traffic_profile}= | trex-astf-ethip4tcp-${n_hosts}h-pps
+| ${transaction_type}= | tcp_pps
+| ${disable_latency}= | ${True}
+
+*** Keywords ***
+| Local Template
+| | [Documentation]
+| | ... | [Cfg] DUT runs NAT44 ${nat_mode} configuration.\
+| | ... | Each DUT uses ${phy_cores} physical core(s) for worker threads.
+| | ... | [Ver] Measure NDR and PDR values using MLRsearch algorithm.\
+| |
+| | ... | *Arguments:*
+| | ... | - frame_size - Framesize in Bytes in integer or string (IMIX_v4_1).
+| | ... | Type: integer, string
+| | ... | - phy_cores - Number of physical cores. Type: integer
+| | ... | - rxq - Number of RX queues, default value: ${None}. Type: integer
+| |
+| | [Arguments] | ${frame_size} | ${phy_cores} | ${rxq}=${None}
+| |
+| | Set Test Variable | \${frame_size}
+| | ${pre_stats}= | Create List
+| | ... | vpp-clear-stats | vpp-enable-packettrace | vpp-enable-elog
+| | ... | vpp-clear-runtime
+| | Set Test Variable | ${pre_stats}
+| | ${post_stats}= | Create List
+| | ... | vpp-show-stats | vpp-show-packettrace | vpp-show-elog
+| | ... | vpp-show-runtime
+| | Set Test Variable | ${post_stats}
+| |
+| | Given Set Max Rate And Jumbo
+| | And Add worker threads to all DUTs | ${phy_cores} | ${rxq}
+| | And Pre-initialize layer driver | ${nic_driver}
+| | And Apply startup configuration on all VPP DUTs
+| | When Initialize layer driver | ${nic_driver}
+| | And Initialize layer interface
+| | And Initialize IPv4 forwarding for NAT44 in circular topology
+| | And Initialize NAT44 endpoint-dependent mode in circular topology
+| | Then Send ramp-up traffic
+| | And Verify NAT44 TCP sessions number on DUT1 node
+| | And Find NDR and PDR intervals using optimized search
+| | And Verify NAT44 TCP sessions number on DUT1 node
+
+*** Test Cases ***
+| 64B-1c-ethip4tcp-nat44ed-h65536-p63-s4128768-tput-ndrpdr
+| | [Tags] | 64B | 1C
+| | frame_size=${64} | phy_cores=${1}
+
+| 64B-2c-ethip4tcp-nat44ed-h65536-p63-s4128768-tput-ndrpdr
+| | [Tags] | 64B | 2C
+| | frame_size=${64} | phy_cores=${2}
+
+| 64B-4c-ethip4tcp-nat44ed-h65536-p63-s4128768-tput-ndrpdr
+| | [Tags] | 64B | 4C
+| | frame_size=${64} | phy_cores=${4}
diff --git a/tests/vpp/perf/ip4/2n1l-10ge2p1x710-ethip4udp-nat44ed-h1024-p63-s64512-tput-ndrpdr.robot b/tests/vpp/perf/ip4/2n1l-10ge2p1x710-ethip4udp-nat44ed-h1024-p63-s64512-tput-ndrpdr.robot
new file mode 100644
index 0000000000..53f558f5eb
--- /dev/null
+++ b/tests/vpp/perf/ip4/2n1l-10ge2p1x710-ethip4udp-nat44ed-h1024-p63-s64512-tput-ndrpdr.robot
@@ -0,0 +1,140 @@
+# Copyright (c) 2021 Cisco and/or its affiliates.
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at:
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+*** Settings ***
+| Resource | resources/libraries/robot/shared/default.robot
+|
+| Force Tags | 2_NODE_SINGLE_LINK_TOPO | PERFTEST | HW_ENV | NDRPDR
+| ... | NIC_Intel-X710 | ETH | IP4FWD | NAT44 | UDP | UDP_TPUT | DRV_VFIO_PCI
+| ... | SCALE | HOSTS_1024 | RXQ_SIZE_0 | TXQ_SIZE_0
+| ... | ethip4udp-nat44ed-h1024-p63-s64512-tput
+|
+| Suite Setup | Setup suite topology interfaces | performance
+| Suite Teardown | Tear down suite | performance
+| Test Setup | Setup test | performance
+| Test Teardown | Tear down test | performance | nat-ed
+|
+| Test Template | Local Template
+|
+| # TODO CSIT-1765: Unify suite Documentation.
+| Documentation | *TPUT on lightweight UDP transactions with NAT44ED*
+|
+| ... | *[Top] Network Topologies:* TG-DUT1-TG 2-node circular topology\
+| ... | with single links between nodes.
+| ... | *[Enc] Packet Encapsulations:* Eth-IPv4-UDP for IPv4 routing.
+| ... | *[Cfg] DUT configuration:* DUT1 is configured with IPv4\
+| ... | routing and two static IPv4 /24 route entries. DUT1 tested with\
+| ... | ${nic_name}.
+| ... | *[Ver] TG verification:* TG finds and reports throughput NDR (Non Drop\
+| ... | Rate) with zero packet loss tolerance and throughput PDR (Partial Drop\
+| ... | Rate) with non-zero packet loss tolerance (LT) expressed in percentage\
+| ... | of packets transmitted. NDR and PDR are discovered for different\
+| ... | Ethernet L2 frame sizes using MLRsearch library.\
+| ... | Test packets are generated by TG on links to DUTs. TG traffic profile\
+| ... | contains client and server ASTF programs, generating packets containing\
+| ... | Ethernet header, IPv4 header, UDP header and static payload.\
+| ... | MAC addresses are matching MAC addresses of the TG node interfaces.
+| ... | *[Ref] Applicable standard specifications:* RFC2544.
+
+*** Variables ***
+| @{plugins_to_enable}= | dpdk_plugin.so | nat_plugin.so
+| ${crypto_type}= | ${None}
+| ${nic_name}= | Intel-X710
+| ${nic_driver}= | vfio-pci
+| ${nic_rxq_size}= | 0
+| ${nic_txq_size}= | 0
+| ${nic_pfs}= | 2
+| ${nic_vfs}= | 0
+| ${osi_layer}= | L7
+| ${overhead}= | ${0}
+# IP settings
+| ${tg_if1_ip4}= | 10.0.0.2
+| ${tg_if1_mask}= | ${20}
+| ${tg_if2_ip4}= | 12.0.0.2
+| ${tg_if2_mask}= | ${20}
+| ${dut1_if1_ip4}= | 10.0.0.1
+| ${dut1_if1_mask}= | ${24}
+| ${dut1_if2_ip4}= | 12.0.0.1
+| ${dut1_if2_mask}= | ${24}
+| ${dest_net}= | 20.0.0.0
+| ${dest_mask}= | ${22}
+# NAT settings
+| ${nat_mode}= | endpoint-dependent
+| ${in_net}= | 192.168.0.0
+| ${in_mask}= | ${22}
+| ${out_net}= | 68.142.68.0
+| ${out_net_end}= | 68.142.68.0
+| ${out_mask}= | ${32}
+# Scale settings
+| ${n_hosts}= | ${1024}
+| ${n_ports}= | ${63}
+| ${n_sessions}= | ${${n_hosts} * ${n_ports}}
+| ${transaction_scale}= | ${n_sessions}
+| ${packets_per_transaction_and_direction}= | ${33}
+# Ramp-up settings
+| ${ramp_up_rate}= | ${36000}
+# Traffic profile
+| ${traffic_profile}= | trex-astf-ethip4udp-${n_hosts}h-pps
+| ${transaction_type}= | udp_pps
+| ${disable_latency}= | ${True}
+
+*** Keywords ***
+| Local Template
+| | [Documentation]
+| | ... | [Cfg] DUT runs NAT44 ${nat_mode} configuration.\
+| | ... | Each DUT uses ${phy_cores} physical core(s) for worker threads.
+| | ... | [Ver] Measure NDR and PDR values using MLRsearch algorithm.\
+| |
+| | ... | *Arguments:*
+| | ... | - frame_size - Framesize in Bytes in integer or string (IMIX_v4_1).
+| | ... | Type: integer, string
+| | ... | - phy_cores - Number of physical cores. Type: integer
+| | ... | - rxq - Number of RX queues, default value: ${None}. Type: integer
+| |
+| | [Arguments] | ${frame_size} | ${phy_cores} | ${rxq}=${None}
+| |
+| | Set Test Variable | \${frame_size}
+| | ${pre_stats}= | Create List
+| | ... | vpp-clear-stats | vpp-enable-packettrace | vpp-enable-elog
+| | ... | vpp-clear-runtime
+| | Set Test Variable | ${pre_stats}
+| | ${post_stats}= | Create List
+| | ... | vpp-show-stats | vpp-show-packettrace | vpp-show-elog
+| | ... | vpp-show-runtime
+| | Set Test Variable | ${post_stats}
+| |
+| | Given Set Max Rate And Jumbo
+| | And Add worker threads to all DUTs | ${phy_cores} | ${rxq}
+| | And Pre-initialize layer driver | ${nic_driver}
+| | And Apply startup configuration on all VPP DUTs
+| | When Initialize layer driver | ${nic_driver}
+| | And Initialize layer interface
+| | And Initialize IPv4 forwarding for NAT44 in circular topology
+| | And Initialize NAT44 endpoint-dependent mode in circular topology
+| | Then Send ramp-up traffic
+| | And Verify NAT44 UDP sessions number on DUT1 node
+| | And Find NDR and PDR intervals using optimized search
+| | And Verify NAT44 UDP sessions number on DUT1 node
+
+*** Test Cases ***
+| 64B-1c-ethip4udp-nat44ed-h1024-p63-s64512-tput-ndrpdr
+| | [Tags] | 64B | 1C
+| | frame_size=${64} | phy_cores=${1}
+
+| 64B-2c-ethip4udp-nat44ed-h1024-p63-s64512-tput-ndrpdr
+| | [Tags] | 64B | 2C
+| | frame_size=${64} | phy_cores=${2}
+
+| 64B-4c-ethip4udp-nat44ed-h1024-p63-s64512-tput-ndrpdr
+| | [Tags] | 64B | 4C
+| | frame_size=${64} | phy_cores=${4}
diff --git a/tests/vpp/perf/ip4/2n1l-10ge2p1x710-ethip4udp-nat44ed-h16384-p63-s1032192-tput-ndrpdr.robot b/tests/vpp/perf/ip4/2n1l-10ge2p1x710-ethip4udp-nat44ed-h16384-p63-s1032192-tput-ndrpdr.robot
new file mode 100644
index 0000000000..cafeced064
--- /dev/null
+++ b/tests/vpp/perf/ip4/2n1l-10ge2p1x710-ethip4udp-nat44ed-h16384-p63-s1032192-tput-ndrpdr.robot
@@ -0,0 +1,140 @@
+# Copyright (c) 2021 Cisco and/or its affiliates.
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at:
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+*** Settings ***
+| Resource | resources/libraries/robot/shared/default.robot
+|
+| Force Tags | 2_NODE_SINGLE_LINK_TOPO | PERFTEST | HW_ENV | NDRPDR
+| ... | NIC_Intel-X710 | ETH | IP4FWD | NAT44 | UDP | UDP_TPUT | DRV_VFIO_PCI
+| ... | SCALE | HOSTS_16384 | RXQ_SIZE_0 | TXQ_SIZE_0
+| ... | ethip4udp-nat44ed-h16384-p63-s1032192-tput
+|
+| Suite Setup | Setup suite topology interfaces | performance
+| Suite Teardown | Tear down suite | performance
+| Test Setup | Setup test | performance
+| Test Teardown | Tear down test | performance | nat-ed
+|
+| Test Template | Local Template
+|
+| # TODO CSIT-1765: Unify suite Documentation.
+| Documentation | *TPUT on lightweight UDP transactions with NAT44ED*
+|
+| ... | *[Top] Network Topologies:* TG-DUT1-TG 2-node circular topology\
+| ... | with single links between nodes.
+| ... | *[Enc] Packet Encapsulations:* Eth-IPv4-UDP for IPv4 routing.
+| ... | *[Cfg] DUT configuration:* DUT1 is configured with IPv4\
+| ... | routing and two static IPv4 /24 route entries. DUT1 tested with\
+| ... | ${nic_name}.
+| ... | *[Ver] TG verification:* TG finds and reports throughput NDR (Non Drop\
+| ... | Rate) with zero packet loss tolerance and throughput PDR (Partial Drop\
+| ... | Rate) with non-zero packet loss tolerance (LT) expressed in percentage\
+| ... | of packets transmitted. NDR and PDR are discovered for different\
+| ... | Ethernet L2 frame sizes using MLRsearch library.\
+| ... | Test packets are generated by TG on links to DUTs. TG traffic profile\
+| ... | contains client and server ASTF programs, generating packets containing\
+| ... | Ethernet header, IPv4 header, UDP header and static payload.\
+| ... | MAC addresses are matching MAC addresses of the TG node interfaces.
+| ... | *[Ref] Applicable standard specifications:* RFC2544.
+
+*** Variables ***
+| @{plugins_to_enable}= | dpdk_plugin.so | nat_plugin.so
+| ${crypto_type}= | ${None}
+| ${nic_name}= | Intel-X710
+| ${nic_driver}= | vfio-pci
+| ${nic_rxq_size}= | 0
+| ${nic_txq_size}= | 0
+| ${nic_pfs}= | 2
+| ${nic_vfs}= | 0
+| ${osi_layer}= | L7
+| ${overhead}= | ${0}
+# IP settings
+| ${tg_if1_ip4}= | 10.0.0.2
+| ${tg_if1_mask}= | ${20}
+| ${tg_if2_ip4}= | 12.0.0.2
+| ${tg_if2_mask}= | ${20}
+| ${dut1_if1_ip4}= | 10.0.0.1
+| ${dut1_if1_mask}= | ${24}
+| ${dut1_if2_ip4}= | 12.0.0.1
+| ${dut1_if2_mask}= | ${24}
+| ${dest_net}= | 20.0.0.0
+| ${dest_mask}= | ${18}
+# NAT settings
+| ${nat_mode}= | endpoint-dependent
+| ${in_net}= | 192.168.0.0
+| ${in_mask}= | ${18}
+| ${out_net}= | 68.142.68.0
+| ${out_net_end}= | 68.142.68.15
+| ${out_mask}= | ${28}
+# Scale settings
+| ${n_hosts}= | ${16384}
+| ${n_ports}= | ${63}
+| ${n_sessions}= | ${${n_hosts} * ${n_ports}}
+| ${transaction_scale}= | ${n_sessions}
+| ${packets_per_transaction_and_direction}= | ${33}
+# Ramp-up settings
+| ${ramp_up_rate}= | ${36000}
+# Traffic profile
+| ${traffic_profile}= | trex-astf-ethip4udp-${n_hosts}h-pps
+| ${transaction_type}= | udp_pps
+| ${disable_latency}= | ${True}
+
+*** Keywords ***
+| Local Template
+| | [Documentation]
+| | ... | [Cfg] DUT runs NAT44 ${nat_mode} configuration.\
+| | ... | Each DUT uses ${phy_cores} physical core(s) for worker threads.
+| | ... | [Ver] Measure NDR and PDR values using MLRsearch algorithm.\
+| |
+| | ... | *Arguments:*
+| | ... | - frame_size - Framesize in Bytes in integer or string (IMIX_v4_1).
+| | ... | Type: integer, string
+| | ... | - phy_cores - Number of physical cores. Type: integer
+| | ... | - rxq - Number of RX queues, default value: ${None}. Type: integer
+| |
+| | [Arguments] | ${frame_size} | ${phy_cores} | ${rxq}=${None}
+| |
+| | Set Test Variable | \${frame_size}
+| | ${pre_stats}= | Create List
+| | ... | vpp-clear-stats | vpp-enable-packettrace | vpp-enable-elog
+| | ... | vpp-clear-runtime
+| | Set Test Variable | ${pre_stats}
+| | ${post_stats}= | Create List
+| | ... | vpp-show-stats | vpp-show-packettrace | vpp-show-elog
+| | ... | vpp-show-runtime
+| | Set Test Variable | ${post_stats}
+| |
+| | Given Set Max Rate And Jumbo
+| | And Add worker threads to all DUTs | ${phy_cores} | ${rxq}
+| | And Pre-initialize layer driver | ${nic_driver}
+| | And Apply startup configuration on all VPP DUTs
+| | When Initialize layer driver | ${nic_driver}
+| | And Initialize layer interface
+| | And Initialize IPv4 forwarding for NAT44 in circular topology
+| | And Initialize NAT44 endpoint-dependent mode in circular topology
+| | Then Send ramp-up traffic
+| | And Verify NAT44 UDP sessions number on DUT1 node
+| | And Find NDR and PDR intervals using optimized search
+| | And Verify NAT44 UDP sessions number on DUT1 node
+
+*** Test Cases ***
+| 64B-1c-ethip4udp-nat44ed-h16384-p63-s1032192-tput-ndrpdr
+| | [Tags] | 64B | 1C
+| | frame_size=${64} | phy_cores=${1}
+
+| 64B-2c-ethip4udp-nat44ed-h16384-p63-s1032192-tput-ndrpdr
+| | [Tags] | 64B | 2C
+| | frame_size=${64} | phy_cores=${2}
+
+| 64B-4c-ethip4udp-nat44ed-h16384-p63-s1032192-tput-ndrpdr
+| | [Tags] | 64B | 4C
+| | frame_size=${64} | phy_cores=${4}
diff --git a/tests/vpp/perf/ip4/2n1l-10ge2p1x710-ethip4udp-nat44ed-h262144-p63-s16515072-tput-ndrpdr.robot b/tests/vpp/perf/ip4/2n1l-10ge2p1x710-ethip4udp-nat44ed-h262144-p63-s16515072-tput-ndrpdr.robot
new file mode 100644
index 0000000000..a18ead9c23
--- /dev/null
+++ b/tests/vpp/perf/ip4/2n1l-10ge2p1x710-ethip4udp-nat44ed-h262144-p63-s16515072-tput-ndrpdr.robot
@@ -0,0 +1,143 @@
+# Copyright (c) 2021 Cisco and/or its affiliates.
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at:
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+*** Settings ***
+| Resource | resources/libraries/robot/shared/default.robot
+|
+| Force Tags | 2_NODE_SINGLE_LINK_TOPO | PERFTEST | HW_ENV | NDRPDR
+| ... | NIC_Intel-X710 | ETH | IP4FWD | NAT44 | UD | UDP_TPUT | DRV_VFIO_PCI
+| ... | SCALE | HOSTS_262144 | RXQ_SIZE_0 | TXQ_SIZE_0
+| ... | ethip4udp-nat44ed-h262144-p63-s16515072-tput
+|
+| Suite Setup | Setup suite topology interfaces | performance
+| Suite Teardown | Tear down suite | performance
+| Test Setup | Setup test | performance
+| Test Teardown | Tear down test | performance | nat-ed
+|
+| Test Template | Local Template
+|
+| # TODO CSIT-1765: Unify suite Documentation.
+| Documentation | *TPUT on lightweight UDP transactions with NAT44ED*
+|
+| ... | *[Top] Network Topologies:* TG-DUT1-TG 2-node circular topology\
+| ... | with single links between nodes.
+| ... | *[Enc] Packet Encapsulations:* Eth-IPv4-UDP for IPv4 routing.
+| ... | *[Cfg] DUT configuration:* DUT1 is configured with IPv4\
+| ... | routing and two static IPv4 /24 route entries. DUT1 tested with\
+| ... | ${nic_name}.
+| ... | *[Ver] TG verification:* TG finds and reports throughput NDR (Non Drop\
+| ... | Rate) with zero packet loss tolerance and throughput PDR (Partial Drop\
+| ... | Rate) with non-zero packet loss tolerance (LT) expressed in percentage\
+| ... | of packets transmitted. NDR and PDR are discovered for different\
+| ... | Ethernet L2 frame sizes using MLRsearch library.\
+| ... | Test packets are generated by TG on links to DUTs. TG traffic profile\
+| ... | contains client and server ASTF programs, generating packets containing\
+| ... | Ethernet header, IPv4 header, UDP header and static payload.\
+| ... | MAC addresses are matching MAC addresses of the TG node interfaces.
+| ... | *[Ref] Applicable standard specifications:* RFC2544.
+
+*** Variables ***
+| @{plugins_to_enable}= | dpdk_plugin.so | nat_plugin.so
+| ${crypto_type}= | ${None}
+| ${nic_name}= | Intel-X710
+| ${nic_driver}= | vfio-pci
+| ${nic_rxq_size}= | 0
+| ${nic_txq_size}= | 0
+| ${nic_pfs}= | 2
+| ${nic_vfs}= | 0
+| ${osi_layer}= | L7
+| ${overhead}= | ${0}
+# IP settings
+| ${tg_if1_ip4}= | 10.0.0.2
+| ${tg_if1_mask}= | ${20}
+| ${tg_if2_ip4}= | 12.0.0.2
+| ${tg_if2_mask}= | ${20}
+| ${dut1_if1_ip4}= | 10.0.0.1
+| ${dut1_if1_mask}= | ${24}
+| ${dut1_if2_ip4}= | 12.0.0.1
+| ${dut1_if2_mask}= | ${24}
+| ${dest_net}= | 20.16.0.0
+| ${dest_mask}= | ${14}
+# NAT settings
+| ${nat_mode}= | endpoint-dependent
+| ${in_net}= | 172.16.0.0
+| ${in_mask}= | ${14}
+| ${out_net}= | 68.142.68.0
+| ${out_net_end}= | 68.142.68.255
+| ${out_mask}= | ${24}
+# Scale settings
+| ${n_hosts}= | ${262144}
+| ${n_ports}= | ${63}
+| ${n_sessions}= | ${${n_hosts} * ${n_ports}}
+| ${transaction_scale}= | ${n_sessions}
+| ${packets_per_transaction_and_direction}= | ${33}
+# Main heap size multiplicator
+| ${heap_size_mult}= | ${7}
+# Ramp-up settings
+# This scale needs more than 55 ktps, which is more than current NDR results.
+| ${ramp_up_rate}= | ${56000}
+# Traffic profile
+| ${traffic_profile}= | trex-astf-ethip4udp-${n_hosts}h-pps
+| ${transaction_type}= | udp_pps
+| ${disable_latency}= | ${True}
+
+*** Keywords ***
+| Local Template
+| | [Documentation]
+| | ... | [Cfg] DUT runs NAT44 ${nat_mode} configuration.\
+| | ... | Each DUT uses ${phy_cores} physical core(s) for worker threads.
+| | ... | [Ver] Measure NDR and PDR values using MLRsearch algorithm.\
+| |
+| | ... | *Arguments:*
+| | ... | - frame_size - Framesize in Bytes in integer or string (IMIX_v4_1).
+| | ... | Type: integer, string
+| | ... | - phy_cores - Number of physical cores. Type: integer
+| | ... | - rxq - Number of RX queues, default value: ${None}. Type: integer
+| |
+| | [Arguments] | ${frame_size} | ${phy_cores} | ${rxq}=${None}
+| |
+| | Set Test Variable | \${frame_size}
+| | ${pre_stats}= | Create List
+| | ... | vpp-clear-stats | vpp-enable-packettrace | vpp-enable-elog
+| | ... | vpp-clear-runtime
+| | Set Test Variable | ${pre_stats}
+| | ${post_stats}= | Create List
+| | ... | vpp-show-stats | vpp-show-packettrace | vpp-show-elog
+| | ... | vpp-show-runtime
+| | Set Test Variable | ${post_stats}
+| |
+| | Given Set Max Rate And Jumbo
+| | And Add worker threads to all DUTs | ${phy_cores} | ${rxq}
+| | And Pre-initialize layer driver | ${nic_driver}
+| | And Apply startup configuration on all VPP DUTs
+| | When Initialize layer driver | ${nic_driver}
+| | And Initialize layer interface
+| | And Initialize IPv4 forwarding for NAT44 in circular topology
+| | And Initialize NAT44 endpoint-dependent mode in circular topology
+| | Then Send ramp-up traffic
+| | And Verify NAT44 UDP sessions number on DUT1 node
+| | And Find NDR and PDR intervals using optimized search
+| | And Verify NAT44 UDP sessions number on DUT1 node
+
+*** Test Cases ***
+| 64B-1c-ethip4udp-nat44ed-h262144-p63-s16515072-tput-ndrpdr
+| | [Tags] | 64B | 1C
+| | frame_size=${64} | phy_cores=${1}
+
+| 64B-2c-ethip4udp-nat44ed-h262144-p63-s16515072-tput-ndrpdr
+| | [Tags] | 64B | 2C
+| | frame_size=${64} | phy_cores=${2}
+
+| 64B-4c-ethip4udp-nat44ed-h262144-p63-s16515072-tput-ndrpdr
+| | [Tags] | 64B | 4C
+| | frame_size=${64} | phy_cores=${4}
diff --git a/tests/vpp/perf/ip4/2n1l-10ge2p1x710-ethip4udp-nat44ed-h4096-p63-s258048-tput-ndrpdr.robot b/tests/vpp/perf/ip4/2n1l-10ge2p1x710-ethip4udp-nat44ed-h4096-p63-s258048-tput-ndrpdr.robot
new file mode 100644
index 0000000000..662bcd49f8
--- /dev/null
+++ b/tests/vpp/perf/ip4/2n1l-10ge2p1x710-ethip4udp-nat44ed-h4096-p63-s258048-tput-ndrpdr.robot
@@ -0,0 +1,140 @@
+# Copyright (c) 2021 Cisco and/or its affiliates.
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at:
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+*** Settings ***
+| Resource | resources/libraries/robot/shared/default.robot
+|
+| Force Tags | 2_NODE_SINGLE_LINK_TOPO | PERFTEST | HW_ENV | NDRPDR
+| ... | NIC_Intel-X710 | ETH | IP4FWD | NAT44 | UDP | UDP_TPUT | DRV_VFIO_PCI
+| ... | SCALE | HOSTS_4096 | RXQ_SIZE_0 | TXQ_SIZE_0
+| ... | ethip4udp-nat44ed-h4096-p63-s258048-tput
+|
+| Suite Setup | Setup suite topology interfaces | performance
+| Suite Teardown | Tear down suite | performance
+| Test Setup | Setup test | performance
+| Test Teardown | Tear down test | performance | nat-ed
+|
+| Test Template | Local Template
+|
+| # TODO CSIT-1765: Unify suite Documentation.
+| Documentation | *TPUT on lightweight UDP transactions with NAT44ED*
+|
+| ... | *[Top] Network Topologies:* TG-DUT1-TG 2-node circular topology\
+| ... | with single links between nodes.
+| ... | *[Enc] Packet Encapsulations:* Eth-IPv4-UDP for IPv4 routing.
+| ... | *[Cfg] DUT configuration:* DUT1 is configured with IPv4\
+| ... | routing and two static IPv4 /24 route entries. DUT1 tested with\
+| ... | ${nic_name}.
+| ... | *[Ver] TG verification:* TG finds and reports throughput NDR (Non Drop\
+| ... | Rate) with zero packet loss tolerance and throughput PDR (Partial Drop\
+| ... | Rate) with non-zero packet loss tolerance (LT) expressed in percentage\
+| ... | of packets transmitted. NDR and PDR are discovered for different\
+| ... | Ethernet L2 frame sizes using MLRsearch library.\
+| ... | Test packets are generated by TG on links to DUTs. TG traffic profile\
+| ... | contains client and server ASTF programs, generating packets containing\
+| ... | Ethernet header, IPv4 header, UDP header and static payload.\
+| ... | MAC addresses are matching MAC addresses of the TG node interfaces.
+| ... | *[Ref] Applicable standard specifications:* RFC2544.
+
+*** Variables ***
+| @{plugins_to_enable}= | dpdk_plugin.so | nat_plugin.so
+| ${crypto_type}= | ${None}
+| ${nic_name}= | Intel-X710
+| ${nic_driver}= | vfio-pci
+| ${nic_rxq_size}= | 0
+| ${nic_txq_size}= | 0
+| ${nic_pfs}= | 2
+| ${nic_vfs}= | 0
+| ${osi_layer}= | L7
+| ${overhead}= | ${0}
+# IP settings
+| ${tg_if1_ip4}= | 10.0.0.2
+| ${tg_if1_mask}= | ${20}
+| ${tg_if2_ip4}= | 12.0.0.2
+| ${tg_if2_mask}= | ${20}
+| ${dut1_if1_ip4}= | 10.0.0.1
+| ${dut1_if1_mask}= | ${24}
+| ${dut1_if2_ip4}= | 12.0.0.1
+| ${dut1_if2_mask}= | ${24}
+| ${dest_net}= | 20.0.0.0
+| ${dest_mask}= | ${20}
+# NAT settings
+| ${nat_mode}= | endpoint-dependent
+| ${in_net}= | 192.168.0.0
+| ${in_mask}= | ${20}
+| ${out_net}= | 68.142.68.0
+| ${out_net_end}= | 68.142.68.3
+| ${out_mask}= | ${20}
+# Scale settings
+| ${n_hosts}= | ${4096}
+| ${n_ports}= | ${63}
+| ${n_sessions}= | ${${n_hosts} * ${n_ports}}
+| ${transaction_scale}= | ${n_sessions}
+| ${packets_per_transaction_and_direction}= | ${33}
+# Ramp-up settings
+| ${ramp_up_rate}= | ${36000}
+# Traffic profile
+| ${traffic_profile}= | trex-astf-ethip4udp-${n_hosts}h-pps
+| ${transaction_type}= | udp_pps
+| ${disable_latency}= | ${True}
+
+*** Keywords ***
+| Local Template
+| | [Documentation]
+| | ... | [Cfg] DUT runs NAT44 ${nat_mode} configuration.\
+| | ... | Each DUT uses ${phy_cores} physical core(s) for worker threads.
+| | ... | [Ver] Measure NDR and PDR values using MLRsearch algorithm.\
+| |
+| | ... | *Arguments:*
+| | ... | - frame_size - Framesize in Bytes in integer or string (IMIX_v4_1).
+| | ... | Type: integer, string
+| | ... | - phy_cores - Number of physical cores. Type: integer
+| | ... | - rxq - Number of RX queues, default value: ${None}. Type: integer
+| |
+| | [Arguments] | ${frame_size} | ${phy_cores} | ${rxq}=${None}
+| |
+| | Set Test Variable | \${frame_size}
+| | ${pre_stats}= | Create List
+| | ... | vpp-clear-stats | vpp-enable-packettrace | vpp-enable-elog
+| | ... | vpp-clear-runtime
+| | Set Test Variable | ${pre_stats}
+| | ${post_stats}= | Create List
+| | ... | vpp-show-stats | vpp-show-packettrace | vpp-show-elog
+| | ... | vpp-show-runtime
+| | Set Test Variable | ${post_stats}
+| |
+| | Given Set Max Rate And Jumbo
+| | And Add worker threads to all DUTs | ${phy_cores} | ${rxq}
+| | And Pre-initialize layer driver | ${nic_driver}
+| | And Apply startup configuration on all VPP DUTs
+| | When Initialize layer driver | ${nic_driver}
+| | And Initialize layer interface
+| | And Initialize IPv4 forwarding for NAT44 in circular topology
+| | And Initialize NAT44 endpoint-dependent mode in circular topology
+| | Then Send ramp-up traffic
+| | And Verify NAT44 UDP sessions number on DUT1 node
+| | And Find NDR and PDR intervals using optimized search
+| | And Verify NAT44 UDP sessions number on DUT1 node
+
+*** Test Cases ***
+| 64B-1c-ethip4udp-nat44ed-h4096-p63-s258048-tput-ndrpdr
+| | [Tags] | 64B | 1C
+| | frame_size=${64} | phy_cores=${1}
+
+| 64B-2c-ethip4udp-nat44ed-h4096-p63-s258048-tput-ndrpdr
+| | [Tags] | 64B | 2C
+| | frame_size=${64} | phy_cores=${2}
+
+| 64B-4c-ethip4udp-nat44ed-h4096-p63-s258048-tput-ndrpdr
+| | [Tags] | 64B | 4C
+| | frame_size=${64} | phy_cores=${4}
diff --git a/tests/vpp/perf/ip4/2n1l-10ge2p1x710-ethip4udp-nat44ed-h65536-p63-s4128768-tput-ndrpdr.robot b/tests/vpp/perf/ip4/2n1l-10ge2p1x710-ethip4udp-nat44ed-h65536-p63-s4128768-tput-ndrpdr.robot
new file mode 100644
index 0000000000..f3d56ca191
--- /dev/null
+++ b/tests/vpp/perf/ip4/2n1l-10ge2p1x710-ethip4udp-nat44ed-h65536-p63-s4128768-tput-ndrpdr.robot
@@ -0,0 +1,142 @@
+# Copyright (c) 2021 Cisco and/or its affiliates.
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at:
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+*** Settings ***
+| Resource | resources/libraries/robot/shared/default.robot
+|
+| Force Tags | 2_NODE_SINGLE_LINK_TOPO | PERFTEST | HW_ENV | NDRPDR
+| ... | NIC_Intel-X710 | ETH | IP4FWD | NAT44 | UDP | UDP_TPUT | DRV_VFIO_PCI
+| ... | SCALE | HOSTS_65536 | RXQ_SIZE_0 | TXQ_SIZE_0
+| ... | ethip4udp-nat44ed-h65536-p63-s4128768-tput
+|
+| Suite Setup | Setup suite topology interfaces | performance
+| Suite Teardown | Tear down suite | performance
+| Test Setup | Setup test | performance
+| Test Teardown | Tear down test | performance | nat-ed
+|
+| Test Template | Local Template
+|
+| # TODO CSIT-1765: Unify suite Documentation.
+| Documentation | *TPUT on lightweight UDP transactions with NAT44ED*
+|
+| ... | *[Top] Network Topologies:* TG-DUT1-TG 2-node circular topology\
+| ... | with single links between nodes.
+| ... | *[Enc] Packet Encapsulations:* Eth-IPv4-UDP for IPv4 routing.
+| ... | *[Cfg] DUT configuration:* DUT1 is configured with IPv4\
+| ... | routing and two static IPv4 /24 route entries. DUT1 tested with\
+| ... | ${nic_name}.
+| ... | *[Ver] TG verification:* TG finds and reports throughput NDR (Non Drop\
+| ... | Rate) with zero packet loss tolerance and throughput PDR (Partial Drop\
+| ... | Rate) with non-zero packet loss tolerance (LT) expressed in percentage\
+| ... | of packets transmitted. NDR and PDR are discovered for different\
+| ... | Ethernet L2 frame sizes using MLRsearch library.\
+| ... | Test packets are generated by TG on links to DUTs. TG traffic profile\
+| ... | contains client and server ASTF programs, generating packets containing\
+| ... | Ethernet header, IPv4 header, UDP header and static payload.\
+| ... | MAC addresses are matching MAC addresses of the TG node interfaces.
+| ... | *[Ref] Applicable standard specifications:* RFC2544.
+
+*** Variables ***
+| @{plugins_to_enable}= | dpdk_plugin.so | nat_plugin.so
+| ${crypto_type}= | ${None}
+| ${nic_name}= | Intel-X710
+| ${nic_driver}= | vfio-pci
+| ${nic_rxq_size}= | 0
+| ${nic_txq_size}= | 0
+| ${nic_pfs}= | 2
+| ${nic_vfs}= | 0
+| ${osi_layer}= | L7
+| ${overhead}= | ${0}
+# IP settings
+| ${tg_if1_ip4}= | 10.0.0.2
+| ${tg_if1_mask}= | ${20}
+| ${tg_if2_ip4}= | 12.0.0.2
+| ${tg_if2_mask}= | ${20}
+| ${dut1_if1_ip4}= | 10.0.0.1
+| ${dut1_if1_mask}= | ${24}
+| ${dut1_if2_ip4}= | 12.0.0.1
+| ${dut1_if2_mask}= | ${24}
+| ${dest_net}= | 20.0.0.0
+| ${dest_mask}= | ${16}
+# NAT settings
+| ${nat_mode}= | endpoint-dependent
+| ${in_net}= | 192.168.0.0
+| ${in_mask}= | ${16}
+| ${out_net}= | 68.142.68.0
+| ${out_net_end}= | 68.142.68.63
+| ${out_mask}= | ${26}
+# Scale settings
+| ${n_hosts}= | ${65536}
+| ${n_ports}= | ${63}
+| ${n_sessions}= | ${${n_hosts} * ${n_ports}}
+| ${transaction_scale}= | ${n_sessions}
+| ${packets_per_transaction_and_direction}= | ${33}
+# Main heap size multiplicator
+| ${heap_size_mult}= | ${2}
+# Ramp-up settings
+| ${ramp_up_rate}= | ${36000}
+# Traffic profile
+| ${traffic_profile}= | trex-astf-ethip4udp-${n_hosts}h-pps
+| ${transaction_type}= | udp_pps
+| ${disable_latency}= | ${True}
+
+*** Keywords ***
+| Local Template
+| | [Documentation]
+| | ... | [Cfg] DUT runs NAT44 ${nat_mode} configuration.\
+| | ... | Each DUT uses ${phy_cores} physical core(s) for worker threads.
+| | ... | [Ver] Measure NDR and PDR values using MLRsearch algorithm.\
+| |
+| | ... | *Arguments:*
+| | ... | - frame_size - Framesize in Bytes in integer or string (IMIX_v4_1).
+| | ... | Type: integer, string
+| | ... | - phy_cores - Number of physical cores. Type: integer
+| | ... | - rxq - Number of RX queues, default value: ${None}. Type: integer
+| |
+| | [Arguments] | ${frame_size} | ${phy_cores} | ${rxq}=${None}
+| |
+| | Set Test Variable | \${frame_size}
+| | ${pre_stats}= | Create List
+| | ... | vpp-clear-stats | vpp-enable-packettrace | vpp-enable-elog
+| | ... | vpp-clear-runtime
+| | Set Test Variable | ${pre_stats}
+| | ${post_stats}= | Create List
+| | ... | vpp-show-stats | vpp-show-packettrace | vpp-show-elog
+| | ... | vpp-show-runtime
+| | Set Test Variable | ${post_stats}
+| |
+| | Given Set Max Rate And Jumbo
+| | And Add worker threads to all DUTs | ${phy_cores} | ${rxq}
+| | And Pre-initialize layer driver | ${nic_driver}
+| | And Apply startup configuration on all VPP DUTs
+| | When Initialize layer driver | ${nic_driver}
+| | And Initialize layer interface
+| | And Initialize IPv4 forwarding for NAT44 in circular topology
+| | And Initialize NAT44 endpoint-dependent mode in circular topology
+| | Then Send ramp-up traffic
+| | And Verify NAT44 UDP sessions number on DUT1 node
+| | And Find NDR and PDR intervals using optimized search
+| | And Verify NAT44 UDP sessions number on DUT1 node
+
+*** Test Cases ***
+| 64B-1c-ethip4udp-nat44ed-h65536-p63-s4128768-tput-ndrpdr
+| | [Tags] | 64B | 1C
+| | frame_size=${64} | phy_cores=${1}
+
+| 64B-2c-ethip4udp-nat44ed-h65536-p63-s4128768-tput-ndrpdr
+| | [Tags] | 64B | 2C
+| | frame_size=${64} | phy_cores=${2}
+
+| 64B-4c-ethip4udp-nat44ed-h65536-p63-s4128768-tput-ndrpdr
+| | [Tags] | 64B | 4C
+| | frame_size=${64} | phy_cores=${4}