| ... | AND | Build QEMU on all DUTs
| Suite Teardown | 3-node Performance Suite Teardown
| Test Setup | Setup all DUTs before test
-| Test Teardown | Run Keywords | Remove startup configuration of VPP from all DUTs
-| ... | AND | Guest VM with dpdk-testpmd Teardown | ${dut1}
-| ... | ${dut1_vm_refs}
-| ... | AND | Guest VM with dpdk-testpmd Teardown | ${dut2}
-| ... | ${dut2_vm_refs}
+| Test Teardown | Run Keywords
+| ... | Run Keyword If Test Failed
+| ... | Traffic should pass with no loss | 10
+| ... | ${min_rate}pps | ${framesize} | 3-node-bridge
+| ... | fail_on_loss=${False}
+| ... | AND | Remove startup configuration of VPP from all DUTs
+| ... | AND | Guest VM with dpdk-testpmd Teardown | ${dut1}
+| ... | ${dut1_vm_refs}
+| ... | AND | Guest VM with dpdk-testpmd Teardown | ${dut2}
+| ... | ${dut2_vm_refs}
| Documentation | *RFC2544: Pkt throughput L2XC test cases with vhost*
| ...
| ... | *[Top] Network Topologies:* TG-DUT1-DUT2-TG 3-node circular topology
| | ... | ${glob_loss_acceptance}
| | ... | ${glob_loss_acceptance_type}
+| TC19: 64B NDR binary search - DUT L2XC-DPDK-VHOST - 1thread 1core 1rxq
+| | [Documentation]
+| | ... | [Cfg] DUT runs L2XC switching 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 10kpps.
+| | [Tags] | 1_THREAD_NOHTT_RXQUEUES_1 | SINGLE_THREAD | NDR
+| | ${framesize}= | Set Variable | 64
+| | ${min_rate}= | Set Variable | 10000
+| | ${max_rate}= | Set Variable | ${10Ge_linerate_pps_64B}
+| | ${binary_min}= | Set Variable | ${min_rate}
+| | ${binary_max}= | Set Variable | ${max_rate}
+| | ${threshold}= | Set Variable | ${min_rate}
+| | ${dut1_vm_refs}= | Create Dictionary
+| | ${dut2_vm_refs}= | Create Dictionary
+| | Given Add '1' worker threads and rxqueues '1' without HTT to all DUTs
+| | And Add PCI devices to DUTs from 3-node single link topology
+| | And Add No Multi Seg to all DUTs
+| | And Add Enable Vhost User to all DUTs
+| | And Apply startup configuration on all VPP DUTs
+| | When L2 xconnect with Vhost-User initialized in a 3-node circular topology
+| | ... | ${sock1} | ${sock2}
+| | ${vm1}= | And Guest VM with dpdk-testpmd connected via vhost-user is setup
+| | ... | ${dut1} | ${sock1} | ${sock2} | DUT1_VM1
+| | Set To Dictionary | ${dut1_vm_refs} | DUT1_VM1 | ${vm1}
+| | ${vm2}= | And Guest VM with dpdk-testpmd connected via vhost-user is setup
+| | ... | ${dut2} | ${sock1} | ${sock2} | DUT2_VM1
+| | Set To Dictionary | ${dut2_vm_refs} | DUT2_VM1 | ${vm2}
+| | Then Find NDR using binary search and pps | ${framesize} | ${binary_min}
+| | ... | ${binary_max} | 3-node-bridge
+| | ... | ${min_rate} | ${max_rate}
+| | ... | ${threshold}
+
+| TC20: 64B PDR binary search - DUT L2XC-DPDK-VHOST - 1thread 1core 1rxq
+| | [Documentation]
+| | ... | [Cfg] DUT runs L2XC switching config with 1 thread, 1 phy core, \
+| | ... | 1 receive queue per NIC port. [Ver] Find PDR for 64 Byte frames \
+| | ... | using binary search start at 10GE linerate, step 10kpps, LT=0.5%.
+| | [Tags] | 1_THREAD_NOHTT_RXQUEUES_1 | SINGLE_THREAD | PDR | SKIP_PATCH
+| | ${framesize}= | Set Variable | 64
+| | ${min_rate}= | Set Variable | 10000
+| | ${max_rate}= | Set Variable | ${10Ge_linerate_pps_64B}
+| | ${binary_min}= | Set Variable | ${min_rate}
+| | ${binary_max}= | Set Variable | ${max_rate}
+| | ${threshold}= | Set Variable | ${min_rate}
+| | ${dut1_vm_refs}= | Create Dictionary
+| | ${dut2_vm_refs}= | Create Dictionary
+| | Given Add '1' worker threads and rxqueues '1' without HTT to all DUTs
+| | And Add PCI devices to DUTs from 3-node single link topology
+| | And Add No Multi Seg to all DUTs
+| | And Add Enable Vhost User to all DUTs
+| | And Apply startup configuration on all VPP DUTs
+| | When L2 xconnect with Vhost-User initialized in a 3-node circular topology
+| | ... | ${sock1} | ${sock2}
+| | ${vm1}= | And Guest VM with dpdk-testpmd connected via vhost-user is setup
+| | ... | ${dut1} | ${sock1} | ${sock2} | DUT1_VM1
+| | Set To Dictionary | ${dut1_vm_refs} | DUT1_VM1 | ${vm1}
+| | ${vm2}= | And Guest VM with dpdk-testpmd connected via vhost-user is setup
+| | ... | ${dut2} | ${sock1} | ${sock2} | DUT2_VM1
+| | Set To Dictionary | ${dut2_vm_refs} | DUT2_VM1 | ${vm2}
+| | Then Find PDR using binary search and pps | ${framesize} | ${binary_min}
+| | ... | ${binary_max} | 3-node-bridge
+| | ... | ${min_rate} | ${max_rate}
+| | ... | ${threshold}
+| | ... | ${glob_loss_acceptance}
+| | ... | ${glob_loss_acceptance_type}
+