diff options
Diffstat (limited to 'tests')
10 files changed, 2141 insertions, 62 deletions
diff --git a/tests/vpp/perf/__init__.robot b/tests/vpp/perf/__init__.robot index 0dfc31f07e..e7277fce31 100644 --- a/tests/vpp/perf/__init__.robot +++ b/tests/vpp/perf/__init__.robot @@ -41,5 +41,6 @@ | | Set Global Variable | ${perf_pdr_loss_acceptance_type} | percentage | | Set Global Variable | ${perf_vm_image} | /var/lib/vm/csit-nested-1.6.img | | Set Global Variable | ${perf_qemu_bin} -| | ... | /opt/qemu-2.5.0/bin/qemu-system-x86_64 +| | ... | /opt/qemu-2.5.0/bin/qemu-system-x86_64 | | Set Global Variable | ${perf_qemu_qsz} | 1024 +| | Set Global Variable | ${use_tuned_cfs} | ${False} diff --git a/tests/vpp/perf/vm_vhost/10ge2p1x520-eth-l2bdbasemaclrn-eth-2vhost-1vm-ndrpdrdisc.robot b/tests/vpp/perf/vm_vhost/10ge2p1x520-eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-ndrpdrdisc.robot index 6bb145325a..cf85f46c93 100644 --- a/tests/vpp/perf/vm_vhost/10ge2p1x520-eth-l2bdbasemaclrn-eth-2vhost-1vm-ndrpdrdisc.robot +++ b/tests/vpp/perf/vm_vhost/10ge2p1x520-eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-ndrpdrdisc.robot @@ -39,7 +39,7 @@ | ... | vhost-user interfaces using 5 cores pinned to cpus 5-9 and 2048M | ... | memory. Testpmd is using socket-mem=1024M (512x2M hugepages), 5 cores | ... | (1 main core and 4 cores dedicated for io), forwarding mode is set to -| ... | io, rxd/txd=256, burst=64. DUT1, DUT2 are tested with 2p10GE NIC X520 +| ... | io, rxd/txd=1024, burst=64. DUT1, DUT2 are tested with 2p10GE NIC X520 | ... | Niantic by Intel. | ... | *[Ver] TG verification:* TG finds and reports throughput NDR (Non Drop | ... | Rate) with zero packet loss tolerance or throughput PDR (Partial Drop @@ -67,7 +67,7 @@ | ${traffic_profile} | trex-sl-3n-ethip4-ip4src254 *** Test Cases *** -| tc01-64B-1t1c-eth-l2bdbasemaclrn-eth-2vhost-1vm-ndrdisc +| tc01-64B-1t1c-eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-ndrdisc | | [Documentation] | | ... | [Cfg] DUT runs L2BD switching config with 1 thread, 1 phy core, \ | | ... | 1 receive queue per NIC port. [Ver] Find NDR for 64 Byte frames \ @@ -97,7 +97,7 @@ | | ... | ${binary_max} | ${traffic_profile} | | ... | ${min_rate} | ${max_rate} | ${threshold} -| tc02-64B-1t1c-eth-l2bdbasemaclrn-eth-2vhost-1vm-pdrdisc +| tc02-64B-1t1c-eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-pdrdisc | | [Documentation] | | ... | [Cfg] DUT runs L2BD switching config with 1 thread, 1 phy core, \ | | ... | 1 receive queue per NIC port. [Ver] Find PDR for 64 Byte frames \ @@ -128,7 +128,7 @@ | | ... | ${min_rate} | ${max_rate} | ${threshold} | | ... | ${perf_pdr_loss_acceptance} | ${perf_pdr_loss_acceptance_type} -| tc03-1518B-1t1c-eth-l2bdbasemaclrn-eth-2vhost-1vm-ndrdisc +| tc03-1518B-1t1c-eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-ndrdisc | | [Documentation] | | ... | [Cfg] DUT runs L2BD switching config with 1 thread, 1 phy core, \ | | ... | 1 receive queue per NIC port. [Ver] Find NDR for 1518 Byte frames \ @@ -158,7 +158,7 @@ | | ... | ${binary_max} | ${traffic_profile} | | ... | ${min_rate} | ${max_rate} | ${threshold} -| tc04-1518B-1t1c-eth-l2bdbasemaclrn-eth-2vhost-1vm-pdrdisc +| tc04-1518B-1t1c-eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-pdrdisc | | [Documentation] | | ... | [Cfg] DUT runs L2BD switching config with 1 thread, 1 phy core, \ | | ... | 1 receive queue per NIC port. [Ver] Find PDR for 1518 Byte frames \ @@ -189,7 +189,7 @@ | | ... | ${min_rate} | ${max_rate} | ${threshold} | | ... | ${perf_pdr_loss_acceptance} | ${perf_pdr_loss_acceptance_type} -| tc05-IMIX-1t1c-eth-l2bdbasemaclrn-eth-2vhost-1vm-ndrdisc +| tc05-IMIX-1t1c-eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-ndrdisc | | [Documentation] | | ... | [Cfg] DUT runs L2BD switching config with 1 thread, 1 phy core, \ | | ... | 1 receive queue per NIC port. [Ver] Find NDR for IMIX_v4_1 frame \ @@ -220,7 +220,7 @@ | | ... | ${binary_max} | ${traffic_profile} | | ... | ${min_rate} | ${max_rate} | ${threshold} -| tc06-IMIX-1t1c-eth-l2bdbasemaclrn-eth-2vhost-1vm-pdrdisc +| tc06-IMIX-1t1c-eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-pdrdisc | | [Documentation] | | ... | [Cfg] DUT runs L2BD switching config with 1 thread, 1 phy core, \ | | ... | 1 receive queue per NIC port. [Ver] Find PDR for IMIX_v4_1 frame \ @@ -252,7 +252,7 @@ | | ... | ${min_rate} | ${max_rate} | ${threshold} | | ... | ${perf_pdr_loss_acceptance} | ${perf_pdr_loss_acceptance_type} -| tc07-64B-2t2c-eth-l2bdbasemaclrn-eth-2vhost-1vm-ndrdisc +| tc07-64B-2t2c-eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-ndrdisc | | [Documentation] | | ... | [Cfg] DUT runs L2BD switching config with 2 threads, 2 phy cores, \ | | ... | 1 receive queue per NIC port. [Ver] Find NDR for 64 Byte frames \ @@ -282,7 +282,7 @@ | | ... | ${binary_max} | ${traffic_profile} | | ... | ${min_rate} | ${max_rate} | ${threshold} -| tc08-64B-2t2c-eth-l2bdbasemaclrn-eth-2vhost-1vm-pdrdisc +| tc08-64B-2t2c-eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-pdrdisc | | [Documentation] | | ... | [Cfg] DUT runs L2BD switching config with 2 threads, 2 phy cores, \ | | ... | 1 receive queue per NIC port. [Ver] Find PDR for 64 Byte frames \ @@ -313,7 +313,7 @@ | | ... | ${min_rate} | ${max_rate} | ${threshold} | | ... | ${perf_pdr_loss_acceptance} | ${perf_pdr_loss_acceptance_type} -| tc09-1518B-2t2c-eth-l2bdbasemaclrn-eth-2vhost-1vm-ndrdisc +| tc09-1518B-2t2c-eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-ndrdisc | | [Documentation] | | ... | [Cfg] DUT runs L2BD switching config with 2 threads, 2 phy cores, \ | | ... | 1 receive queue per NIC port. [Ver] Find NDR for 1518 Byte frames \ @@ -343,7 +343,7 @@ | | ... | ${binary_max} | ${traffic_profile} | | ... | ${min_rate} | ${max_rate} | ${threshold} -| tc10-1518B-2t2c-eth-l2bdbasemaclrn-eth-2vhost-1vm-pdrdisc +| tc10-1518B-2t2c-eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-pdrdisc | | [Documentation] | | ... | [Cfg] DUT runs L2BD switching config with 2 threads, 2 phy cores, \ | | ... | 1 receive queue per NIC port. [Ver] Find PDR for 1518 Byte frames \ @@ -374,7 +374,7 @@ | | ... | ${min_rate} | ${max_rate} | ${threshold} | | ... | ${perf_pdr_loss_acceptance} | ${perf_pdr_loss_acceptance_type} -| tc11-IMIX-2t2c-eth-l2bdbasemaclrn-eth-2vhost-1vm-ndrdisc +| tc11-IMIX-2t2c-eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-ndrdisc | | [Documentation] | | ... | [Cfg] DUT runs L2BD switching config with 2 threads, 2 phy cores, \ | | ... | 1 receive queue per NIC port. [Ver] Find NDR for IMIX_v4_1 frame \ @@ -405,7 +405,7 @@ | | ... | ${binary_max} | ${traffic_profile} | | ... | ${min_rate} | ${max_rate} | ${threshold} -| tc12-IMIX-2t2c-eth-l2bdbasemaclrn-eth-2vhost-1vm-pdrdisc +| tc12-IMIX-2t2c-eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-pdrdisc | | [Documentation] | | ... | [Cfg] DUT runs L2BD switching config with 2 threads, 2 phy cores, \ | | ... | 1 receive queue per NIC port. [Ver] Find PDR for IMIX_v4_1 frame \ @@ -437,7 +437,7 @@ | | ... | ${min_rate} | ${max_rate} | ${threshold} | | ... | ${perf_pdr_loss_acceptance} | ${perf_pdr_loss_acceptance_type} -| tc13-64B-4t4c-eth-l2bdbasemaclrn-eth-2vhost-1vm-ndrdisc +| tc13-64B-4t4c-eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-ndrdisc | | [Documentation] | | ... | [Cfg] DUT runs L2BD switching config with 4 threads, 4 phy cores, \ | | ... | 2 receive queues per NIC port. [Ver] Find NDR for 64 Byte frames \ @@ -467,7 +467,7 @@ | | ... | ${binary_max} | ${traffic_profile} | | ... | ${min_rate} | ${max_rate} | ${threshold} -| tc14-64B-4t4c-eth-l2bdbasemaclrn-eth-2vhost-1vm-pdrdisc +| tc14-64B-4t4c-eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-pdrdisc | | [Documentation] | | ... | [Cfg] DUT runs L2BD switching config with 4 threads, 4 phy cores, \ | | ... | 2 receive queues per NIC port. [Ver] Find PDR for 64 Byte frames \ @@ -498,7 +498,7 @@ | | ... | ${min_rate} | ${max_rate} | ${threshold} | | ... | ${perf_pdr_loss_acceptance} | ${perf_pdr_loss_acceptance_type} -| tc15-1518B-4t4c-eth-l2bdbasemaclrn-eth-2vhost-1vm-ndrdisc +| tc15-1518B-4t4c-eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-ndrdisc | | [Documentation] | | ... | [Cfg] DUT runs L2BD switching config with 4 threads, 4 phy cores, \ | | ... | 2 receive queues per NIC port. [Ver] Find NDR for 1518 Byte frames \ @@ -528,7 +528,7 @@ | | ... | ${binary_max} | ${traffic_profile} | | ... | ${min_rate} | ${max_rate} | ${threshold} -| tc16-1518B-4t4c-eth-l2bdbasemaclrn-eth-2vhost-1vm-pdrdisc +| tc16-1518B-4t4c-eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-pdrdisc | | [Documentation] | | ... | [Cfg] DUT runs L2BD switching config with 4 threads, 4 phy cores, \ | | ... | 2 receive queues per NIC port. [Ver] Find PDR for 1518 Byte frames \ @@ -559,7 +559,7 @@ | | ... | ${min_rate} | ${max_rate} | ${threshold} | | ... | ${perf_pdr_loss_acceptance} | ${perf_pdr_loss_acceptance_type} -| tc17-IMIX-4t4c-eth-l2bdbasemaclrn-eth-2vhost-1vm-ndrdisc +| tc17-IMIX-4t4c-eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-ndrdisc | | [Documentation] | | ... | [Cfg] DUT runs L2BD switching config with 4 threads, 4 phy cores, \ | | ... | 2 receive queues per NIC port. [Ver] Find NDR for IMIX_v4_1 frame \ @@ -590,7 +590,7 @@ | | ... | ${binary_max} | ${traffic_profile} | | ... | ${min_rate} | ${max_rate} | ${threshold} -| tc18-IMIX-4t4c-eth-l2bdbasemaclrn-eth-2vhost-1vm-pdrdisc +| tc18-IMIX-4t4c-eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-pdrdisc | | [Documentation] | | ... | [Cfg] DUT runs L2BD switching config with 4 threads, 4 phy cores, \ | | ... | 2 receive queues per NIC port. [Ver] Find PDR for IMIX_v4_1 frame \ diff --git a/tests/vpp/perf/vm_vhost/10ge2p1x520-eth-l2bdbasemaclrn-eth-2vhostvr256-1vm-cfsrr1-ndrpdrdisc.robot b/tests/vpp/perf/vm_vhost/10ge2p1x520-eth-l2bdbasemaclrn-eth-2vhostvr256-1vm-cfsrr1-ndrpdrdisc.robot new file mode 100644 index 0000000000..1cae1b37dd --- /dev/null +++ b/tests/vpp/perf/vm_vhost/10ge2p1x520-eth-l2bdbasemaclrn-eth-2vhostvr256-1vm-cfsrr1-ndrpdrdisc.robot @@ -0,0 +1,348 @@ +# Copyright (c) 2017 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/performance/performance_setup.robot +| Library | resources.libraries.python.QemuUtils +| ... +| Force Tags | 3_NODE_SINGLE_LINK_TOPO | PERFTEST | HW_ENV | NDRPDRDISC +| ... | NIC_Intel-X520-DA2 | DOT1Q | L2BDMACLRN | BASE | VHOST | VM +| ... +| Suite Setup | Set up 3-node performance topology with DUT's NIC model +| ... | L2 | Intel-X520-DA2 +| Suite Teardown | Tear down 3-node performance topology +| ... +| Test Setup | Set up performance test +| Test Teardown | Tear down performance test with vhost and VM with dpdk-testpmd +| ... | ${min_rate}pps | ${framesize} | ${traffic_profile} +| ... | dut1_node=${dut1} | dut1_vm_refs=${dut1_vm_refs} +| ... | dut2_node=${dut2} | dut2_vm_refs=${dut2_vm_refs} +| ... +| Documentation | *RFC2544: Packet throughput L2BD test cases with vhost* +| ... +| ... | *[Top] Network Topologies:* TG-DUT1-DUT2-TG 3-node circular topology +| ... | with single links between nodes. +| ... | *[Enc] Packet Encapsulations:* Eth-IPv4 for L2 switching of IPv4. 802.1q +| ... | tagging is applied on link between DUT1 and DUT2. +| ... | *[Cfg] DUT configuration:* DUT1 and DUT2 are configured with L2 bridge- +| ... | domain and MAC learning enabled. Qemu Guest is connected to VPP via +| ... | vhost-user interfaces. Guest is running DPDK testpmd interconnecting +| ... | vhost-user interfaces using 5 cores pinned to cpus 5-9 and 2048M +| ... | memory. Testpmd is using socket-mem=1024M (512x2M hugepages), 5 cores +| ... | (1 main core and 4 cores dedicated for io), forwarding mode is set to +| ... | io, rxd/txd=256, burst=64. Scheduler policy is set to SCHED_RR with +| ... | priority 1 for all Qemu CPUs. DUT1, DUT2 are tested with 2p10GE NIC X520 +| ... | Niantic by Intel. +| ... | *[Ver] TG verification:* TG finds and reports throughput NDR (Non Drop +| ... | Rate) with zero packet loss tolerance or 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 either binary search or linear search +| ... | algorithms with configured starting rate and final step that determines +| ... | throughput measurement resolution. Test packets are generated by TG on +| ... | links to DUTs. TG traffic profile contains two L3 flow-groups +| ... | (flow-group per direction, 253 flows per flow-group) with all packets +| ... | containing Ethernet header, IPv4 header with IP protocol=61 and static +| ... | payload. MAC addresses are matching MAC addresses of the TG node +| ... | interfaces. +| ... | *[Ref] Applicable standard specifications:* RFC2544. + +*** Variables *** +| ${avg_imix_framesize}= | ${357.833} +# X520-DA2 bandwidth limit +| ${s_limit} | ${10000000000} +# Socket names +| ${bd_id1}= | 1 +| ${bd_id2}= | 2 +| ${sock1}= | /tmp/sock-1-${bd_id1} +| ${sock2}= | /tmp/sock-1-${bd_id2} +# Traffic profile: +| ${traffic_profile} | trex-sl-3n-ethip4-ip4src254 + +*** Keywords *** +| Discover NDR or PDR for L2 Bridge Domain with VM +| | [Arguments] | ${wt} | ${rxq} | ${framesize} | ${min_rate} | ${search_type} +| | ... +| | [Documentation] +| | ... | [Cfg] DUT runs L2BD switching config with required number of threads,\ +| | ... | phy cores and receive queues per NIC port. +| | ... | [Ver] Find NDR or PDR for defined frame size using binary search\ +| | ... | start at 10GE linerate with specified step. +| | ... +| | ... | *Arguments:* +| | ... | - wt - Number of worker threads to be used. Type: integer +| | ... | - rxq - Number of Rx queues to be used. Type: integer +| | ... | - framesize - L2 Frame Size [B]. Type: integer +| | ... | - min_rate - Lower limit of search [pps]. Type: float +| | ... | - search_type - Type of the search - non drop rate (NDR) or partial +| | ... | drop rare (PDR). Type: string +| | ... +| | Set Test Variable | ${perf_qemu_qsz} | 256 +| | Set Test Variable | ${use_tuned_cfs} | ${True} +| | Set Test Variable | ${framesize} +| | Set Test Variable | ${min_rate} +| | ${get_framesize}= | Set Variable If +| | ... | "${framesize}" == "IMIX_v4_1" | ${avg_imix_framesize} +| | ... | ${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} +| | ${dut1_vm_refs}= | Create Dictionary +| | ${dut2_vm_refs}= | Create Dictionary +| | Set Test Variable | ${dut1_vm_refs} +| | Set Test Variable | ${dut2_vm_refs} +| | 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 +| | When Initialize L2 bridge domains with Vhost-User in 3-node circular topology +| | ... | ${bd_id1} | ${bd_id2} | ${sock1} | ${sock2} +| | ${vm1}= | And Configure guest VM with dpdk-testpmd connected via vhost-user +| | ... | ${dut1} | ${sock1} | ${sock2} | DUT1_VM1 +| | Set To Dictionary | ${dut1_vm_refs} | DUT1_VM1 | ${vm1} +| | ${vm2}= | And Configure guest VM with dpdk-testpmd connected via vhost-user +| | ... | ${dut2} | ${sock1} | ${sock2} | DUT2_VM1 +| | Set To Dictionary | ${dut2_vm_refs} | DUT2_VM1 | ${vm2} +| | 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-eth-l2bdbasemaclrn-eth-2vhostvr256-1vm-cfsrr1-ndrdisc +| | [Documentation] +| | ... | [Cfg] DUT runs L2BD 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] | 64B | 1T1C | STHREAD | NDRDISC +| | ... +| | [Template] | Discover NDR or PDR for L2 Bridge Domain with VM +| | wt=1 | rxq=1 | framesize=${64} | min_rate=${10000} | search_type=NDR + +| tc02-64B-1t1c-eth-l2bdbasemaclrn-eth-2vhostvr256-1vm-cfsrr1-pdrdisc +| | [Documentation] +| | ... | [Cfg] DUT runs L2BD 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] | 64B | 1T1C | STHREAD | PDRDISC | SKIP_PATCH +| | ... +| | [Template] | Discover NDR or PDR for L2 Bridge Domain with VM +| | wt=1 | rxq=1 | framesize=${64} | min_rate=${10000} | search_type=PDR + +| tc03-1518B-1t1c-etc-l2bdbasemaclrn-eth-2vhostvr256-1vm-cfsrr1-ndrdisc +| | [Documentation] +| | ... | [Cfg] DUT runs L2BD switching config with 1 thread, 1 phy core,\ +| | ... | 1 receive queue per NIC port. +| | ... | [Ver] Find NDR for 1518 Byte frames using binary search start at 10GE\ +| | ... | linerate, step 10kpps. +| | ... +| | [Tags] | 1518B | 1T1C | STHREAD | NDRDISC +| | ... +| | [Template] | Discover NDR or PDR for L2 Bridge Domain with VM +| | wt=1 | rxq=1 | framesize=${1518} | min_rate=${10000} | search_type=NDR + +| tc04-1518B-1t1c-eth-l2bdbasemaclrn-eth-2vhostvr256-1vm-cfsrr1-pdrdisc +| | [Documentation] +| | ... | [Cfg] DUT runs L2BD switching config with 1 thread, 1 phy core,\ +| | ... | 1 receive queue per NIC port. +| | ... | [Ver] Find PDR for 1518 Byte frames using binary search start at 10GE\ +| | ... | linerate, step 10kpps, LT=0.5%. +| | ... +| | [Tags] | 1518B | 1T1C | STHREAD | PDRDISC | SKIP_PATCH +| | ... +| | [Template] | Discover NDR or PDR for L2 Bridge Domain with VM +| | wt=1 | rxq=1 | framesize=${1518} | min_rate=${10000} | search_type=PDR + +| tc05-IMIX-1t1c-eth-l2bdbasemaclrn-eth-2vhostvr256-1vm-cfsrr1-ndrdisc +| | [Documentation] +| | ... | [Cfg] DUT runs L2BD switching config with 1 thread, 1 phy core,\ +| | ... | 1 receive queue per NIC port. +| | ... | [Ver] Find NDR for IMIX_v4_1 framesize using binary search start at\ +| | ... | 10GE linerate, step 10kpps. +| | ... | IMIX_v4_1 = (28x64B; 16x570B; 4x1518B) +| | ... +| | [Tags] | IMIX | 1T1C | STHREAD | NDRDISC +| | ... +| | [Template] | Discover NDR or PDR for L2 Bridge Domain with VM +| | wt=1 | rxq=1 | framesize=IMIX_v4_1 | min_rate=${10000} | search_type=NDR + +| tc06-IMIX-1t1c-eth-l2bdbasemaclrn-eth-2vhostvr256-1vm-cfsrr1-pdrdisc +| | [Documentation] +| | ... | [Cfg] DUT runs L2BD switching config with 1 thread, 1 phy core,\ +| | ... | 1 receive queue per NIC port. +| | ... | [Ver] Find PDR for IMIX_v4_1 framesize using binary search start at\ +| | ... | 10GE linerate, step 10kpps, LT=0.5%. +| | ... | IMIX_v4_1 = (28x64B; 16x570B; 4x1518B) +| | ... +| | [Tags] | IMIX | 1T1C | STHREAD | PDRDISC | SKIP_PATCH +| | ... +| | [Template] | Discover NDR or PDR for L2 Bridge Domain with VM +| | wt=1 | rxq=1 | framesize=IMIX_v4_1 | min_rate=${10000} | search_type=PDR + +| tc07-64B-2t2c-eth-l2bdbasemaclrn-eth-2vhostvr256-1vm-cfsrr1-ndrdisc +| | [Documentation] +| | ... | [Cfg] DUT runs L2BD switching config with 2 threads, 2 phy cores,\ +| | ... | 1 receive queue per NIC port. +| | ... | [Ver] Find NDR for 64 Byte frames using binary search start at 10GE\ +| | ... | linerate, step 10kpps. +| | ... +| | [Tags] | 64B | 2T2C | STHREAD | NDRDISC +| | ... +| | [Template] | Discover NDR or PDR for L2 Bridge Domain with VM +| | wt=2 | rxq=1 | framesize=${64} | min_rate=${10000} | search_type=NDR + +| tc08-64B-2t2c-eth-l2bdbasemaclrn-eth-2vhostvr256-1vm-cfsrr1-pdrdisc +| | [Documentation] +| | ... | [Cfg] DUT runs L2BD switching config with 2 threads, 2 phy cores,\ +| | ... | 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] | 64B | 2T2C | STHREAD | PDRDISC | SKIP_PATCH +| | ... +| | [Template] | Discover NDR or PDR for L2 Bridge Domain with VM +| | wt=2 | rxq=1 | framesize=${64} | min_rate=${10000} | search_type=PDR + +| tc09-1518B-2t2c-eth-l2bdbasemaclrn-eth-2vhostvr256-1vm-cfsrr1-ndrdisc +| | [Documentation] +| | ... | [Cfg] DUT runs L2BD switching config with 2 threads, 2 phy cores,\ +| | ... | 1 receive queue per NIC port. +| | ... | [Ver] Find NDR for 1518 Byte frames using binary search start at 10GE\ +| | ... | linerate, step 10kpps. +| | ... +| | [Tags] | 1518B | 2T2C | STHREAD | NDRDISC | SKIP_PATCH +| | ... +| | [Template] | Discover NDR or PDR for L2 Bridge Domain with VM +| | wt=2 | rxq=1 | framesize=${1518} | min_rate=${10000} | search_type=NDR + +| tc10-1518B-2t2c-eth-l2bdbasemaclrn-eth-2vhostvr256-1vm-cfsrr1-pdrdisc +| | [Documentation] +| | ... | [Cfg] DUT runs L2BD switching config with 2 threads, 2 phy cores,\ +| | ... | 1 receive queue per NIC port. +| | ... | [Ver] Find PDR for 1518 Byte frames using binary search start at 10GE\ +| | ... | linerate, step 10kpps, LT=0.5%. +| | ... +| | [Tags] | 1518B | 2T2C | STHREAD | PDRDISC | SKIP_PATCH +| | ... +| | [Template] | Discover NDR or PDR for L2 Bridge Domain with VM +| | wt=2 | rxq=1 | framesize=${1518} | min_rate=${10000} | search_type=PDR + +| tc11-IMIX-2t2c-eth-l2bdbasemaclrn-eth-2vhostvr256-1vm-cfsrr1-ndrdisc +| | [Documentation] +| | ... | [Cfg] DUT runs L2BD switching config with 2 threads, 2 phy cores,\ +| | ... | 1 receive queue per NIC port. +| | ... | [Ver] Find NDR for IMIX_v4_1 framesize using binary search start at\ +| | ... | 10GE linerate, step 10kpps. +| | ... | IMIX_v4_1 = (28x64B; 16x570B; 4x1518B) +| | ... +| | [Tags] | IMIX | 2T2C | STHREAD | NDRDISC | SKIP_PATCH +| | ... +| | [Template] | Discover NDR or PDR for L2 Bridge Domain with VM +| | wt=2 | rxq=1 | framesize=IMIX_v4_1 | min_rate=${10000} | search_type=NDR + +| tc12-IMIX-2t2c-eth-l2bdbasemaclrn-eth-2vhostvr256-1vm-cfsrr1-pdrdisc +| | [Documentation] +| | ... | [Cfg] DUT runs L2BD switching config with 2 threads, 2 phy cores,\ +| | ... | 1 receive queue per NIC port. +| | ... | [Ver] Find PDR for IMIX_v4_1 framesize using binary search start at\ +| | ... | 10GE linerate, step 10kpps. +| | ... | IMIX_v4_1 = (28x64B; 16x570B; 4x1518B) +| | ... +| | [Tags] | IMIX | 2T2C | STHREAD | PDRDISC | SKIP_PATCH +| | ... +| | [Template] | Discover NDR or PDR for L2 Bridge Domain with VM +| | wt=2 | rxq=1 | framesize=IMIX_v4_1 | min_rate=${10000} | search_type=PDR + +| tc13-64B-4t4c-eth-l2bdbasemaclrn-eth-2vhostvr256-1vm-cfsrr1-ndrdisc +| | [Documentation] +| | ... | [Cfg] DUT runs L2BD switching config with 4 threads, 4 phy cores,\ +| | ... | 2 receive queues per NIC port. +| | ... | [Ver] Find NDR for 64 Byte frames using binary search start at 10GE\ +| | ... | linerate, step 10kpps. +| | ... +| | [Tags] | 64B | 4T4C | STHREAD | NDRDISC +| | ... +| | [Template] | Discover NDR or PDR for L2 Bridge Domain with VM +| | wt=4 | rxq=2 | framesize=${64} | min_rate=${10000} | search_type=NDR + +| tc14-64B-4t4c-eth-l2bdbasemaclrn-eth-2vhostvr256-1vm-cfsrr1-pdrdisc +| | [Documentation] +| | ... | [Cfg] DUT runs L2BD switching config with 4 threads, 4 phy cores,\ +| | ... | 2 receive queues per NIC port. +| | ... | [Ver] Find PDR for 64 Byte frames using binary search start at 10GE\ +| | ... | linerate, step 10kpps, LT=0.5%. +| | ... +| | [Tags] | 64B | 4T4C | STHREAD | PDRDISC | SKIP_PATCH +| | ... +| | [Template] | Discover NDR or PDR for L2 Bridge Domain with VM +| | wt=4 | rxq=2 | framesize=${64} | min_rate=${10000} | search_type=PDR + +| tc15-1518B-4t4c-eth-l2bdbasemaclrn-eth-2vhostvr256-1vm-cfsrr1-ndrdisc +| | [Documentation] +| | ... | [Cfg] DUT runs L2BD switching config with 4 threads, 4 phy cores,\ +| | ... | 2 receive queues per NIC port. +| | ... | [Ver] Find NDR for 1518 Byte frames using binary search start at 10GE\ +| | ... | linerate, step 10kpps. +| | ... +| | [Tags] | 1518B | 4T4C | STHREAD | NDRDISC | SKIP_PATCH +| | ... +| | [Template] | Discover NDR or PDR for L2 Bridge Domain with VM +| | wt=4 | rxq=2 | framesize=${1518} | min_rate=${10000} | search_type=NDR + +| tc16-1518B-4t4c-eth-l2bdbasemaclrn-eth-2vhostvr256-1vm-cfsrr1-pdrdisc +| | [Documentation] +| | ... | [Cfg] DUT runs L2BD switching config with 4 threads, 4 phy cores,\ +| | ... | 2 receive queues per NIC port. +| | ... | [Ver] Find PDR for 1518 Byte frames using binary search start at 10GE\ +| | ... | linerate, step 10kpps, LT=0.5%. +| | ... +| | [Tags] | 1518B | 4T4C | STHREAD | PDRDISC | SKIP_PATCH +| | ... +| | [Template] | Discover NDR or PDR for L2 Bridge Domain with VM +| | wt=4 | rxq=2 | framesize=${1518} | min_rate=${10000} | search_type=PDR + +| tc17-IMIX-4t4c-eth-l2bdbasemaclrn-eth-2vhostvr256-1vm-cfsrr1-ndrdisc +| | [Documentation] +| | ... | [Cfg] DUT runs L2BD switching config with 4 threads, 4 phy cores,\ +| | ... | 2 receive queues per NIC port. +| | ... | [Ver] Find NDR for IMIX_v4_1 framesize using binary search start at\ +| | ... | 10GE linerate, step 10kpps. +| | ... | IMIX_v4_1 = (28x64B; 16x570B; 4x1518B) +| | ... +| | [Tags] | IMIX | 4T4C | STHREAD | NDRDISC | SKIP_PATCH +| | ... +| | [Template] | Discover NDR or PDR for L2 Bridge Domain with VM +| | wt=4 | rxq=2 | framesize=IMIX_v4_1 | min_rate=${10000} | search_type=NDR + +| tc18-IMIX-4t4c-eth-l2bdbasemaclrn-eth-2vhostvr256-1vm-cfsrr1-pdrdisc +| | [Documentation] +| | ... | [Cfg] DUT runs L2BD switching config with 4 threads, 4 phy cores,\ +| | ... | 2 receive queues per NIC port. +| | ... | [Ver] Find PDR for IMIX_v4_1 framesize using binary search start at\ +| | ... | 10GE linerate, step 10kpps, LT=0.5%. +| | ... | IMIX_v4_1 = (28x64B; 16x570B; 4x1518B) +| | ... +| | [Tags] | IMIX | 4T4C | STHREAD | PDRDISC | SKIP_PATCH +| | ... +| | [Template] | Discover NDR or PDR for L2 Bridge Domain with VM +| | wt=4 | rxq=2 | framesize=IMIX_v4_1 | min_rate=${10000} | search_type=PDR diff --git a/tests/vpp/perf/vm_vhost/10ge2p1x520-eth-l2bdbasemaclrn-eth-2vhostvr256-1vm-ndrpdrdisc.robot b/tests/vpp/perf/vm_vhost/10ge2p1x520-eth-l2bdbasemaclrn-eth-2vhostvr256-1vm-ndrpdrdisc.robot new file mode 100644 index 0000000000..9e0005a60b --- /dev/null +++ b/tests/vpp/perf/vm_vhost/10ge2p1x520-eth-l2bdbasemaclrn-eth-2vhostvr256-1vm-ndrpdrdisc.robot @@ -0,0 +1,346 @@ +# Copyright (c) 2017 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/performance/performance_setup.robot +| Library | resources.libraries.python.QemuUtils +| ... +| Force Tags | 3_NODE_SINGLE_LINK_TOPO | PERFTEST | HW_ENV | NDRPDRDISC +| ... | NIC_Intel-X520-DA2 | DOT1Q | L2BDMACLRN | BASE | VHOST | VM +| ... +| Suite Setup | Set up 3-node performance topology with DUT's NIC model +| ... | L2 | Intel-X520-DA2 +| Suite Teardown | Tear down 3-node performance topology +| ... +| Test Setup | Set up performance test +| Test Teardown | Tear down performance test with vhost and VM with dpdk-testpmd +| ... | ${min_rate}pps | ${framesize} | ${traffic_profile} +| ... | dut1_node=${dut1} | dut1_vm_refs=${dut1_vm_refs} +| ... | dut2_node=${dut2} | dut2_vm_refs=${dut2_vm_refs} +| ... +| Documentation | *RFC2544: Packet throughput L2BD test cases with vhost* +| ... +| ... | *[Top] Network Topologies:* TG-DUT1-DUT2-TG 3-node circular topology +| ... | with single links between nodes. +| ... | *[Enc] Packet Encapsulations:* Eth-IPv4 for L2 switching of IPv4. 802.1q +| ... | tagging is applied on link between DUT1 and DUT2. +| ... | *[Cfg] DUT configuration:* DUT1 and DUT2 are configured with L2 bridge- +| ... | domain and MAC learning enabled. Qemu Guest is connected to VPP via +| ... | vhost-user interfaces. Guest is running DPDK testpmd interconnecting +| ... | vhost-user interfaces using 5 cores pinned to cpus 5-9 and 2048M +| ... | memory. Testpmd is using socket-mem=1024M (512x2M hugepages), 5 cores +| ... | (1 main core and 4 cores dedicated for io), forwarding mode is set to +| ... | io, rxd/txd=256, burst=64. DUT1, DUT2 are tested with 2p10GE NIC X520 +| ... | Niantic by Intel. +| ... | *[Ver] TG verification:* TG finds and reports throughput NDR (Non Drop +| ... | Rate) with zero packet loss tolerance or 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 either binary search or linear search +| ... | algorithms with configured starting rate and final step that determines +| ... | throughput measurement resolution. Test packets are generated by TG on +| ... | links to DUTs. TG traffic profile contains two L3 flow-groups +| ... | (flow-group per direction, 253 flows per flow-group) with all packets +| ... | containing Ethernet header, IPv4 header with IP protocol=61 and static +| ... | payload. MAC addresses are matching MAC addresses of the TG node +| ... | interfaces. +| ... | *[Ref] Applicable standard specifications:* RFC2544. + +*** Variables *** +| ${avg_imix_framesize}= | ${357.833} +# X520-DA2 bandwidth limit +| ${s_limit} | ${10000000000} +# Socket names +| ${bd_id1}= | 1 +| ${bd_id2}= | 2 +| ${sock1}= | /tmp/sock-1-${bd_id1} +| ${sock2}= | /tmp/sock-1-${bd_id2} +# Traffic profile: +| ${traffic_profile} | trex-sl-3n-ethip4-ip4src254 + +*** Keywords *** +| Discover NDR or PDR for L2 Bridge Domain with VM +| | [Arguments] | ${wt} | ${rxq} | ${framesize} | ${min_rate} | ${search_type} +| | ... +| | [Documentation] +| | ... | [Cfg] DUT runs L2BD switching config with required number of threads,\ +| | ... | phy cores and receive queues per NIC port. +| | ... | [Ver] Find NDR or PDR for defined frame size using binary search\ +| | ... | start at 10GE linerate with specified step. +| | ... +| | ... | *Arguments:* +| | ... | - wt - Number of worker threads to be used. Type: integer +| | ... | - rxq - Number of Rx queues to be used. Type: integer +| | ... | - framesize - L2 Frame Size [B]. Type: integer +| | ... | - min_rate - Lower limit of search [pps]. Type: float +| | ... | - search_type - Type of the search - non drop rate (NDR) or partial +| | ... | drop rare (PDR). Type: string +| | ... +| | Set Test Variable | ${perf_qemu_qsz} | 256 +| | Set Test Variable | ${framesize} +| | Set Test Variable | ${min_rate} +| | ${get_framesize}= | Set Variable If +| | ... | "${framesize}" == "IMIX_v4_1" | ${avg_imix_framesize} +| | ... | ${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} +| | ${dut1_vm_refs}= | Create Dictionary +| | ${dut2_vm_refs}= | Create Dictionary +| | Set Test Variable | ${dut1_vm_refs} +| | Set Test Variable | ${dut2_vm_refs} +| | 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 +| | When Initialize L2 bridge domains with Vhost-User in 3-node circular topology +| | ... | ${bd_id1} | ${bd_id2} | ${sock1} | ${sock2} +| | ${vm1}= | And Configure guest VM with dpdk-testpmd connected via vhost-user +| | ... | ${dut1} | ${sock1} | ${sock2} | DUT1_VM1 +| | Set To Dictionary | ${dut1_vm_refs} | DUT1_VM1 | ${vm1} +| | ${vm2}= | And Configure guest VM with dpdk-testpmd connected via vhost-user +| | ... | ${dut2} | ${sock1} | ${sock2} | DUT2_VM1 +| | Set To Dictionary | ${dut2_vm_refs} | DUT2_VM1 | ${vm2} +| | 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-eth-l2bdbasemaclrn-eth-2vhostvr256-1vm-ndrdisc +| | [Documentation] +| | ... | [Cfg] DUT runs L2BD 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] | 64B | 1T1C | STHREAD | NDRDISC +| | ... +| | [Template] | Discover NDR or PDR for L2 Bridge Domain with VM +| | wt=1 | rxq=1 | framesize=${64} | min_rate=${10000} | search_type=NDR + +| tc02-64B-1t1c-eth-l2bdbasemaclrn-eth-2vhostvr256-1vm-pdrdisc +| | [Documentation] +| | ... | [Cfg] DUT runs L2BD 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] | 64B | 1T1C | STHREAD | PDRDISC | SKIP_PATCH +| | ... +| | [Template] | Discover NDR or PDR for L2 Bridge Domain with VM +| | wt=1 | rxq=1 | framesize=${64} | min_rate=${10000} | search_type=PDR + +| tc03-1518B-1t1c-etc-l2bdbasemaclrn-eth-2vhostvr256-1vm-ndrdisc +| | [Documentation] +| | ... | [Cfg] DUT runs L2BD switching config with 1 thread, 1 phy core,\ +| | ... | 1 receive queue per NIC port. +| | ... | [Ver] Find NDR for 1518 Byte frames using binary search start at 10GE\ +| | ... | linerate, step 10kpps. +| | ... +| | [Tags] | 1518B | 1T1C | STHREAD | NDRDISC +| | ... +| | [Template] | Discover NDR or PDR for L2 Bridge Domain with VM +| | wt=1 | rxq=1 | framesize=${1518} | min_rate=${10000} | search_type=NDR + +| tc04-1518B-1t1c-eth-l2bdbasemaclrn-eth-2vhostvr256-1vm-pdrdisc +| | [Documentation] +| | ... | [Cfg] DUT runs L2BD switching config with 1 thread, 1 phy core,\ +| | ... | 1 receive queue per NIC port. +| | ... | [Ver] Find PDR for 1518 Byte frames using binary search start at 10GE\ +| | ... | linerate, step 10kpps, LT=0.5%. +| | ... +| | [Tags] | 1518B | 1T1C | STHREAD | PDRDISC | SKIP_PATCH +| | ... +| | [Template] | Discover NDR or PDR for L2 Bridge Domain with VM +| | wt=1 | rxq=1 | framesize=${1518} | min_rate=${10000} | search_type=PDR + +| tc05-IMIX-1t1c-eth-l2bdbasemaclrn-eth-2vhostvr256-1vm-ndrdisc +| | [Documentation] +| | ... | [Cfg] DUT runs L2BD switching config with 1 thread, 1 phy core,\ +| | ... | 1 receive queue per NIC port. +| | ... | [Ver] Find NDR for IMIX_v4_1 framesize using binary search start at\ +| | ... | 10GE linerate, step 10kpps. +| | ... | IMIX_v4_1 = (28x64B; 16x570B; 4x1518B) +| | ... +| | [Tags] | IMIX | 1T1C | STHREAD | NDRDISC +| | ... +| | [Template] | Discover NDR or PDR for L2 Bridge Domain with VM +| | wt=1 | rxq=1 | framesize=IMIX_v4_1 | min_rate=${10000} | search_type=NDR + +| tc06-IMIX-1t1c-eth-l2bdbasemaclrn-eth-2vhostvr256-1vm-pdrdisc +| | [Documentation] +| | ... | [Cfg] DUT runs L2BD switching config with 1 thread, 1 phy core,\ +| | ... | 1 receive queue per NIC port. +| | ... | [Ver] Find PDR for IMIX_v4_1 framesize using binary search start at\ +| | ... | 10GE linerate, step 10kpps, LT=0.5%. +| | ... | IMIX_v4_1 = (28x64B; 16x570B; 4x1518B) +| | ... +| | [Tags] | IMIX | 1T1C | STHREAD | PDRDISC | SKIP_PATCH +| | ... +| | [Template] | Discover NDR or PDR for L2 Bridge Domain with VM +| | wt=1 | rxq=1 | framesize=IMIX_v4_1 | min_rate=${10000} | search_type=PDR + +| tc07-64B-2t2c-eth-l2bdbasemaclrn-eth-2vhostvr256-1vm-ndrdisc +| | [Documentation] +| | ... | [Cfg] DUT runs L2BD switching config with 2 threads, 2 phy cores,\ +| | ... | 1 receive queue per NIC port. +| | ... | [Ver] Find NDR for 64 Byte frames using binary search start at 10GE\ +| | ... | linerate, step 10kpps. +| | ... +| | [Tags] | 64B | 2T2C | STHREAD | NDRDISC +| | ... +| | [Template] | Discover NDR or PDR for L2 Bridge Domain with VM +| | wt=2 | rxq=1 | framesize=${64} | min_rate=${10000} | search_type=NDR + +| tc08-64B-2t2c-eth-l2bdbasemaclrn-eth-2vhostvr256-1vm-pdrdisc +| | [Documentation] +| | ... | [Cfg] DUT runs L2BD switching config with 2 threads, 2 phy cores,\ +| | ... | 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] | 64B | 2T2C | STHREAD | PDRDISC | SKIP_PATCH +| | ... +| | [Template] | Discover NDR or PDR for L2 Bridge Domain with VM +| | wt=2 | rxq=1 | framesize=${64} | min_rate=${10000} | search_type=PDR + +| tc09-1518B-2t2c-eth-l2bdbasemaclrn-eth-2vhostvr256-1vm-ndrdisc +| | [Documentation] +| | ... | [Cfg] DUT runs L2BD switching config with 2 threads, 2 phy cores,\ +| | ... | 1 receive queue per NIC port. +| | ... | [Ver] Find NDR for 1518 Byte frames using binary search start at 10GE\ +| | ... | linerate, step 10kpps. +| | ... +| | [Tags] | 1518B | 2T2C | STHREAD | NDRDISC | SKIP_PATCH +| | ... +| | [Template] | Discover NDR or PDR for L2 Bridge Domain with VM +| | wt=2 | rxq=1 | framesize=${1518} | min_rate=${10000} | search_type=NDR + +| tc10-1518B-2t2c-eth-l2bdbasemaclrn-eth-2vhostvr256-1vm-pdrdisc +| | [Documentation] +| | ... | [Cfg] DUT runs L2BD switching config with 2 threads, 2 phy cores,\ +| | ... | 1 receive queue per NIC port. +| | ... | [Ver] Find PDR for 1518 Byte frames using binary search start at 10GE\ +| | ... | linerate, step 10kpps, LT=0.5%. +| | ... +| | [Tags] | 1518B | 2T2C | STHREAD | PDRDISC | SKIP_PATCH +| | ... +| | [Template] | Discover NDR or PDR for L2 Bridge Domain with VM +| | wt=2 | rxq=1 | framesize=${1518} | min_rate=${10000} | search_type=PDR + +| tc11-IMIX-2t2c-eth-l2bdbasemaclrn-eth-2vhostvr256-1vm-ndrdisc +| | [Documentation] +| | ... | [Cfg] DUT runs L2BD switching config with 2 threads, 2 phy cores,\ +| | ... | 1 receive queue per NIC port. +| | ... | [Ver] Find NDR for IMIX_v4_1 framesize using binary search start at\ +| | ... | 10GE linerate, step 10kpps. +| | ... | IMIX_v4_1 = (28x64B; 16x570B; 4x1518B) +| | ... +| | [Tags] | IMIX | 2T2C | STHREAD | NDRDISC | SKIP_PATCH +| | ... +| | [Template] | Discover NDR or PDR for L2 Bridge Domain with VM +| | wt=2 | rxq=1 | framesize=IMIX_v4_1 | min_rate=${10000} | search_type=NDR + +| tc12-IMIX-2t2c-eth-l2bdbasemaclrn-eth-2vhostvr256-1vm-pdrdisc +| | [Documentation] +| | ... | [Cfg] DUT runs L2BD switching config with 2 threads, 2 phy cores,\ +| | ... | 1 receive queue per NIC port. +| | ... | [Ver] Find PDR for IMIX_v4_1 framesize using binary search start at\ +| | ... | 10GE linerate, step 10kpps. +| | ... | IMIX_v4_1 = (28x64B; 16x570B; 4x1518B) +| | ... +| | [Tags] | IMIX | 2T2C | STHREAD | PDRDISC | SKIP_PATCH +| | ... +| | [Template] | Discover NDR or PDR for L2 Bridge Domain with VM +| | wt=2 | rxq=1 | framesize=IMIX_v4_1 | min_rate=${10000} | search_type=PDR + +| tc13-64B-4t4c-eth-l2bdbasemaclrn-eth-2vhostvr256-1vm-ndrdisc +| | [Documentation] +| | ... | [Cfg] DUT runs L2BD switching config with 4 threads, 4 phy cores,\ +| | ... | 2 receive queues per NIC port. +| | ... | [Ver] Find NDR for 64 Byte frames using binary search start at 10GE\ +| | ... | linerate, step 10kpps. +| | ... +| | [Tags] | 64B | 4T4C | STHREAD | NDRDISC +| | ... +| | [Template] | Discover NDR or PDR for L2 Bridge Domain with VM +| | wt=4 | rxq=2 | framesize=${64} | min_rate=${10000} | search_type=NDR + +| tc14-64B-4t4c-eth-l2bdbasemaclrn-eth-2vhostvr256-1vm-pdrdisc +| | [Documentation] +| | ... | [Cfg] DUT runs L2BD switching config with 4 threads, 4 phy cores,\ +| | ... | 2 receive queues per NIC port. +| | ... | [Ver] Find PDR for 64 Byte frames using binary search start at 10GE\ +| | ... | linerate, step 10kpps, LT=0.5%. +| | ... +| | [Tags] | 64B | 4T4C | STHREAD | PDRDISC | SKIP_PATCH +| | ... +| | [Template] | Discover NDR or PDR for L2 Bridge Domain with VM +| | wt=4 | rxq=2 | framesize=${64} | min_rate=${10000} | search_type=PDR + +| tc15-1518B-4t4c-eth-l2bdbasemaclrn-eth-2vhostvr256-1vm-ndrdisc +| | [Documentation] +| | ... | [Cfg] DUT runs L2BD switching config with 4 threads, 4 phy cores,\ +| | ... | 2 receive queues per NIC port. +| | ... | [Ver] Find NDR for 1518 Byte frames using binary search start at 10GE\ +| | ... | linerate, step 10kpps. +| | ... +| | [Tags] | 1518B | 4T4C | STHREAD | NDRDISC | SKIP_PATCH +| | ... +| | [Template] | Discover NDR or PDR for L2 Bridge Domain with VM +| | wt=4 | rxq=2 | framesize=${1518} | min_rate=${10000} | search_type=NDR + +| tc16-1518B-4t4c-eth-l2bdbasemaclrn-eth-2vhostvr256-1vm-pdrdisc +| | [Documentation] +| | ... | [Cfg] DUT runs L2BD switching config with 4 threads, 4 phy cores,\ +| | ... | 2 receive queues per NIC port. +| | ... | [Ver] Find PDR for 1518 Byte frames using binary search start at 10GE\ +| | ... | linerate, step 10kpps, LT=0.5%. +| | ... +| | [Tags] | 1518B | 4T4C | STHREAD | PDRDISC | SKIP_PATCH +| | ... +| | [Template] | Discover NDR or PDR for L2 Bridge Domain with VM +| | wt=4 | rxq=2 | framesize=${1518} | min_rate=${10000} | search_type=PDR + +| tc17-IMIX-4t4c-eth-l2bdbasemaclrn-eth-2vhostvr256-1vm-ndrdisc +| | [Documentation] +| | ... | [Cfg] DUT runs L2BD switching config with 4 threads, 4 phy cores,\ +| | ... | 2 receive queues per NIC port. +| | ... | [Ver] Find NDR for IMIX_v4_1 framesize using binary search start at\ +| | ... | 10GE linerate, step 10kpps. +| | ... | IMIX_v4_1 = (28x64B; 16x570B; 4x1518B) +| | ... +| | [Tags] | IMIX | 4T4C | STHREAD | NDRDISC | SKIP_PATCH +| | ... +| | [Template] | Discover NDR or PDR for L2 Bridge Domain with VM +| | wt=4 | rxq=2 | framesize=IMIX_v4_1 | min_rate=${10000} | search_type=NDR + +| tc18-IMIX-4t4c-eth-l2bdbasemaclrn-eth-2vhostvr256-1vm-pdrdisc +| | [Documentation] +| | ... | [Cfg] DUT runs L2BD switching config with 4 threads, 4 phy cores,\ +| | ... | 2 receive queues per NIC port. +| | ... | [Ver] Find PDR for IMIX_v4_1 framesize using binary search start at\ +| | ... | 10GE linerate, step 10kpps, LT=0.5%. +| | ... | IMIX_v4_1 = (28x64B; 16x570B; 4x1518B) +| | ... +| | [Tags] | IMIX | 4T4C | STHREAD | PDRDISC | SKIP_PATCH +| | ... +| | [Template] | Discover NDR or PDR for L2 Bridge Domain with VM +| | wt=4 | rxq=2 | framesize=IMIX_v4_1 | min_rate=${10000} | search_type=PDR diff --git a/tests/vpp/perf/vm_vhost/10ge2p1x520-eth-l2xcbase-eth-2vhost-1vm-ndrpdrdisc.robot b/tests/vpp/perf/vm_vhost/10ge2p1x520-eth-l2xcbase-eth-2vhostvr1024-1vm-ndrpdrdisc.robot index d231afffb7..7938b1e88f 100644 --- a/tests/vpp/perf/vm_vhost/10ge2p1x520-eth-l2xcbase-eth-2vhost-1vm-ndrpdrdisc.robot +++ b/tests/vpp/perf/vm_vhost/10ge2p1x520-eth-l2xcbase-eth-2vhostvr1024-1vm-ndrpdrdisc.robot @@ -38,7 +38,7 @@ | ... | Guest is running DPDK testpmd interconnecting vhost-user interfaces | ... | using 5 cores pinned to cpus 5-9 and 2048M memory. Testpmd is using | ... | socket-mem=1024M (512x2M hugepages), 5 cores (1 main core and 4 cores -| ... | dedicated for io), forwarding mode is set to io, rxd/txd=256, +| ... | dedicated for io), forwarding mode is set to io, rxd/txd=1024, | ... | burst=64. DUT1, DUT2 are tested with 2p10GE NIC X520 Niantic by Intel. | ... | *[Ver] TG verification:* TG finds and reports throughput NDR (Non Drop | ... | Rate) with zero packet loss tolerance or throughput PDR (Partial Drop @@ -55,17 +55,15 @@ | ... | *[Ref] Applicable standard specifications:* RFC2544. *** Variables *** -| ${bd_id1}= | 1 -| ${bd_id2}= | 2 -| ${sock1}= | /tmp/sock-1-${bd_id1} -| ${sock2}= | /tmp/sock-1-${bd_id2} +| ${sock1}= | /tmp/sock-1-1 +| ${sock2}= | /tmp/sock-1-2 # X520-DA2 bandwidth limit | ${s_limit} | ${10000000000} # Traffic profile: | ${traffic_profile} | trex-sl-3n-ethip4-ip4src254 *** Test Cases *** -| tc01-64B-1t1c-eth-l2xcbase-eth-2vhost-1vm-ndrdisc +| tc01-64B-1t1c-eth-l2xcbase-eth-2vhostvr1024-1vm-ndrdisc | | [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 \ @@ -95,7 +93,7 @@ | | ... | ${binary_max} | ${traffic_profile} | | ... | ${min_rate} | ${max_rate} | ${threshold} -| tc02-64B-1t1c-eth-l2xcbase-eth-2vhost-1vm-pdrdisc +| tc02-64B-1t1c-eth-l2xcbase-eth-2vhostvr1024-1vm-pdrdisc | | [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 \ @@ -126,7 +124,7 @@ | | ... | ${min_rate} | ${max_rate} | ${threshold} | | ... | ${perf_pdr_loss_acceptance} | ${perf_pdr_loss_acceptance_type} -| tc03-1518B-1t1c-eth-l2xcbase-eth-2vhost-1vm-ndrdisc +| tc03-1518B-1t1c-eth-l2xcbase-eth-2vhostvr1024-1vm-ndrdisc | | [Documentation] | | ... | [Cfg] DUT runs L2XC switching config with 1 thread, 1 phy core, \ | | ... | 1 receive queue per NIC port. [Ver] Find NDR for 1518 Byte frames \ @@ -156,7 +154,7 @@ | | ... | ${binary_max} | ${traffic_profile} | | ... | ${min_rate} | ${max_rate} | ${threshold} -| tc04-1518B-1t1c-eth-l2xcbase-eth-2vhost-1vm-pdrdisc +| tc04-1518B-1t1c-eth-l2xcbase-eth-2vhostvr1024-1vm-pdrdisc | | [Documentation] | | ... | [Cfg] DUT runs L2XC switching config with 1 thread, 1 phy core, \ | | ... | 1 receive queue per NIC port. [Ver] Find PDR for 1518 Byte frames \ @@ -187,7 +185,7 @@ | | ... | ${min_rate} | ${max_rate} | ${threshold} | | ... | ${perf_pdr_loss_acceptance} | ${perf_pdr_loss_acceptance_type} -| tc05-IMIX-1t1c-eth-l2xcbase-eth-2vhost-1vm-ndrdisc +| tc05-IMIX-1t1c-eth-l2xcbase-eth-2vhostvr1024-1vm-ndrdisc | | [Documentation] | | ... | [Cfg] DUT runs L2XC switching config with 1 thread, 1 phy core, \ | | ... | 1 receive queue per NIC port. [Ver] Find NDR for IMIX_v4_1 frame \ @@ -218,7 +216,7 @@ | | ... | ${binary_max} | ${traffic_profile} | | ... | ${min_rate} | ${max_rate} | ${threshold} -| tc06-IMIX-1t1c-eth-l2xcbase-eth-2vhost-1vm-pdrdisc +| tc06-IMIX-1t1c-eth-l2xcbase-eth-2vhostvr1024-1vm-pdrdisc | | [Documentation] | | ... | [Cfg] DUT runs L2XC switching config with 1 thread, 1 phy core, \ | | ... | 1 receive queue per NIC port. [Ver] Find PDR for IMIX_v4_1 frame \ @@ -250,7 +248,7 @@ | | ... | ${min_rate} | ${max_rate} | ${threshold} | | ... | ${perf_pdr_loss_acceptance} | ${perf_pdr_loss_acceptance_type} -| tc07-64B-2t2c-eth-l2xcbase-eth-2vhost-1vm-ndrdisc +| tc07-64B-2t2c-eth-l2xcbase-eth-2vhostvr1024-1vm-ndrdisc | | [Documentation] | | ... | [Cfg] DUT runs L2XC switching config with 2 threads, 2 phy cores, \ | | ... | 1 receive queue per NIC port. [Ver] Find NDR for 64 Byte frames \ @@ -280,7 +278,7 @@ | | ... | ${binary_max} | ${traffic_profile} | | ... | ${min_rate} | ${max_rate} | ${threshold} -| tc08-64B-2t2c-eth-l2xcbase-eth-2vhost-1vm-pdrdisc +| tc08-64B-2t2c-eth-l2xcbase-eth-2vhostvr1024-1vm-pdrdisc | | [Documentation] | | ... | [Cfg] DUT runs L2XC switching config with 2 threads, 2 phy cores, \ | | ... | 1 receive queue per NIC port. [Ver] Find PDR for 64 Byte frames \ @@ -311,7 +309,7 @@ | | ... | ${min_rate} | ${max_rate} | ${threshold} | | ... | ${perf_pdr_loss_acceptance} | ${perf_pdr_loss_acceptance_type} -| tc09-1518B-2t2c-eth-l2xcbase-eth-2vhost-1vm-ndrdisc +| tc09-1518B-2t2c-eth-l2xcbase-eth-2vhostvr1024-1vm-ndrdisc | | [Documentation] | | ... | [Cfg] DUT runs L2XC switching config with 2 threads, 2 phy cores, \ | | ... | 1 receive queue per NIC port. [Ver] Find NDR for 1518 Byte frames \ @@ -341,7 +339,7 @@ | | ... | ${binary_max} | ${traffic_profile} | | ... | ${min_rate} | ${max_rate} | ${threshold} -| tc10-1518B-2t2c-eth-l2xcbase-eth-2vhost-1vm-pdrdisc +| tc10-1518B-2t2c-eth-l2xcbase-eth-2vhostvr1024-1vm-pdrdisc | | [Documentation] | | ... | [Cfg] DUT runs L2XC switching config with 2 threads, 2 phy cores, \ | | ... | 1 receive queue per NIC port. [Ver] Find PDR for 1518 Byte frames \ @@ -372,7 +370,7 @@ | | ... | ${min_rate} | ${max_rate} | ${threshold} | | ... | ${perf_pdr_loss_acceptance} | ${perf_pdr_loss_acceptance_type} -| tc11-IMIX-2t2c-eth-l2xcbase-eth-2vhost-1vm-ndrdisc +| tc11-IMIX-2t2c-eth-l2xcbase-eth-2vhostvr1024-1vm-ndrdisc | | [Documentation] | | ... | [Cfg] DUT runs L2XC switching config with 2 threads, 2 phy cores, \ | | ... | 1 receive queue per NIC port. [Ver] Find NDR for IMIX_v4_1 frame \ @@ -403,7 +401,7 @@ | | ... | ${binary_max} | ${traffic_profile} | | ... | ${min_rate} | ${max_rate} | ${threshold} -| tc12-IMIX-2t2c-eth-l2xcbase-eth-2vhost-1vm-pdrdisc +| tc12-IMIX-2t2c-eth-l2xcbase-eth-2vhostvr1024-1vm-pdrdisc | | [Documentation] | | ... | [Cfg] DUT runs L2XC switching config with 2 threads, 2 phy cores, \ | | ... | 1 receive queue per NIC port. [Ver] Find PDR for IMIX_v4_1 frame \ @@ -435,7 +433,7 @@ | | ... | ${min_rate} | ${max_rate} | ${threshold} | | ... | ${perf_pdr_loss_acceptance} | ${perf_pdr_loss_acceptance_type} -| tc13-64B-4t4c-eth-l2xcbase-eth-2vhost-1vm-ndrdisc +| tc13-64B-4t4c-eth-l2xcbase-eth-2vhostvr1024-1vm-ndrdisc | | [Documentation] | | ... | [Cfg] DUT runs L2XC switching config with 4 threads, 4 phy cores, \ | | ... | 2 receive queues per NIC port. [Ver] Find NDR for 64 Byte frames \ @@ -465,7 +463,7 @@ | | ... | ${binary_max} | ${traffic_profile} | | ... | ${min_rate} | ${max_rate} | ${threshold} -| tc14-64B-4t4c-eth-l2xcbase-eth-2vhost-1vm-pdrdisc +| tc14-64B-4t4c-eth-l2xcbase-eth-2vhostvr1024-1vm-pdrdisc | | [Documentation] | | ... | [Cfg] DUT runs L2XC switching config with 4 threads, 4 phy cores, \ | | ... | 2 receive queues per NIC port. [Ver] Find PDR for 64 Byte frames \ @@ -496,7 +494,7 @@ | | ... | ${min_rate} | ${max_rate} | ${threshold} | | ... | ${perf_pdr_loss_acceptance} | ${perf_pdr_loss_acceptance_type} -| tc15-1518B-4t4c-eth-l2xcbase-eth-2vhost-1vm-ndrdisc +| tc15-1518B-4t4c-eth-l2xcbase-eth-2vhostvr1024-1vm-ndrdisc | | [Documentation] | | ... | [Cfg] DUT runs L2XC switching config with 4 threads, 4 phy cores, \ | | ... | 2 receive queues per NIC port. [Ver] Find NDR for 1518 Byte frames \ @@ -526,7 +524,7 @@ | | ... | ${binary_max} | ${traffic_profile} | | ... | ${min_rate} | ${max_rate} | ${threshold} -| tc16-1518B-4t4c-eth-l2xcbase-eth-2vhost-1vm-pdrdisc +| tc16-1518B-4t4c-eth-l2xcbase-eth-2vhostvr1024-1vm-pdrdisc | | [Documentation] | | ... | [Cfg] DUT runs L2XC switching config with 4 threads, 4 phy cores, \ | | ... | 2 receive queues per NIC port. [Ver] Find PDR for 1518 Byte frames \ @@ -557,7 +555,7 @@ | | ... | ${min_rate} | ${max_rate} | ${threshold} | | ... | ${perf_pdr_loss_acceptance} | ${perf_pdr_loss_acceptance_type} -| tc17-IMIX-4t4c-eth-l2xcbase-eth-2vhost-1vm-ndrdisc +| tc17-IMIX-4t4c-eth-l2xcbase-eth-2vhostvr1024-1vm-ndrdisc | | [Documentation] | | ... | [Cfg] DUT runs L2XC switching config with 4 threads, 4 phy cores, \ | | ... | 2 receive queues per NIC port. [Ver] Find NDR for IMIX_v4_1 frame \ @@ -588,7 +586,7 @@ | | ... | ${binary_max} | ${traffic_profile} | | ... | ${min_rate} | ${max_rate} | ${threshold} -| tc18-IMIX-4t4c-eth-l2xcbase-eth-2vhost-1vm-pdrdisc +| tc18-IMIX-4t4c-eth-l2xcbase-eth-2vhostvr1024-1vm-pdrdisc | | [Documentation] | | ... | [Cfg] DUT runs L2XC switching config with 4 threads, 4 phy cores, \ | | ... | 2 receive queues per NIC port. [Ver] Find PDR for IMIX_v4_1 frame \ diff --git a/tests/vpp/perf/vm_vhost/10ge2p1x520-eth-l2xcbase-eth-2vhostvr256-1vm-cfsrr1-ndrpdrdisc.robot b/tests/vpp/perf/vm_vhost/10ge2p1x520-eth-l2xcbase-eth-2vhostvr256-1vm-cfsrr1-ndrpdrdisc.robot new file mode 100644 index 0000000000..18ee7e7a66 --- /dev/null +++ b/tests/vpp/perf/vm_vhost/10ge2p1x520-eth-l2xcbase-eth-2vhostvr256-1vm-cfsrr1-ndrpdrdisc.robot @@ -0,0 +1,345 @@ +# Copyright (c) 2017 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/performance/performance_setup.robot +| Library | resources.libraries.python.QemuUtils +| ... +| Force Tags | 3_NODE_SINGLE_LINK_TOPO | PERFTEST | HW_ENV | NDRPDRDISC +| ... | NIC_Intel-X520-DA2 | DOT1Q | L2BDMACLRN | BASE | VHOST | VM +| ... +| Suite Setup | Set up 3-node performance topology with DUT's NIC model +| ... | L2 | Intel-X520-DA2 +| Suite Teardown | Tear down 3-node performance topology +| ... +| Test Setup | Set up performance test +| Test Teardown | Tear down performance test with vhost and VM with dpdk-testpmd +| ... | ${min_rate}pps | ${framesize} | ${traffic_profile} +| ... | dut1_node=${dut1} | dut1_vm_refs=${dut1_vm_refs} +| ... | dut2_node=${dut2} | dut2_vm_refs=${dut2_vm_refs} +| ... +| Documentation | *RFC2544: Packet throughput L2XC test cases with vhost* +| ... +| ... | *[Top] Network Topologies:* TG-DUT1-DUT2-TG 3-node circular topology +| ... | with single links between nodes. +| ... | *[Enc] Packet Encapsulations:* Eth-IPv4 for L2 switching of IPv4. 802.1q +| ... | tagging is applied on link between DUT1 and DUT2. +| ... | *[Cfg] DUT configuration:* DUT1 and DUT2 are configured with L2 cross- +| ... | connect. Qemu Guest is connected to VPP via vhost-user interfaces. +| ... | Guest is running DPDK testpmd interconnecting vhost-user interfaces +| ... | using 5 cores pinned to cpus 5-9 and 2048M memory. Testpmd is using +| ... | socket-mem=1024M (512x2M hugepages), 5 cores (1 main core and 4 cores +| ... | dedicated for io), forwarding mode is set to io, rxd/txd=256, +| ... | burst=64. Scheduler policy is set to SCHED_RR with priority 1 for all +| ... | Qemu CPUs. DUT1, DUT2 are tested with 2p10GE NIC X520 Niantic by Intel. +| ... | *[Ver] TG verification:* TG finds and reports throughput NDR (Non Drop +| ... | Rate) with zero packet loss tolerance or 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 either binary search or linear search +| ... | algorithms with configured starting rate and final step that determines +| ... | throughput measurement resolution. Test packets are generated by TG on +| ... | links to DUTs. TG traffic profile contains two L3 flow-groups +| ... | (flow-group per direction, 253 flows per flow-group) with all packets +| ... | containing Ethernet header, IPv4 header with IP protocol=61 and static +| ... | payload. MAC addresses are matching MAC addresses of the TG node +| ... | interfaces. +| ... | *[Ref] Applicable standard specifications:* RFC2544. + +*** Variables *** +| ${avg_imix_framesize}= | ${357.833} +# X520-DA2 bandwidth limit +| ${s_limit} | ${10000000000} +# Socket names +| ${sock1}= | /tmp/sock-1-1 +| ${sock2}= | /tmp/sock-1-2 +# Traffic profile: +| ${traffic_profile} | trex-sl-3n-ethip4-ip4src254 + +*** Keywords *** +| Discover NDR or PDR for L2 xconnect with VM +| | [Arguments] | ${wt} | ${rxq} | ${framesize} | ${min_rate} | ${search_type} +| | ... +| | [Documentation] +| | ... | [Cfg] DUT runs L2XC switching config with required number of threads,\ +| | ... | phy cores and receive queues per NIC port. +| | ... | [Ver] Find NDR or PDR for defined frame size using binary search\ +| | ... | start at 10GE linerate with specified step. +| | ... +| | ... | *Arguments:* +| | ... | - wt - Number of worker threads to be used. Type: integer +| | ... | - rxq - Number of Rx queues to be used. Type: integer +| | ... | - framesize - L2 Frame Size [B]. Type: integer +| | ... | - min_rate - Lower limit of search [pps]. Type: float +| | ... | - search_type - Type of the search - non drop rate (NDR) or partial +| | ... | drop rare (PDR). Type: string +| | ... +| | Set Test Variable | ${perf_qemu_qsz} | 256 +| | Set Test Variable | ${use_tuned_cfs} | ${True} +| | Set Test Variable | ${framesize} +| | Set Test Variable | ${min_rate} +| | ${get_framesize}= | Set Variable If +| | ... | "${framesize}" == "IMIX_v4_1" | ${avg_imix_framesize} +| | ... | ${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} +| | ${dut1_vm_refs}= | Create Dictionary +| | ${dut2_vm_refs}= | Create Dictionary +| | Set Test Variable | ${dut1_vm_refs} +| | Set Test Variable | ${dut2_vm_refs} +| | 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 +| | When Initialize L2 xconnect with Vhost-User in 3-node circular topology +| | ... | ${sock1} | ${sock2} +| | ${vm1}= | And Configure guest VM with dpdk-testpmd connected via vhost-user +| | ... | ${dut1} | ${sock1} | ${sock2} | DUT1_VM1 +| | Set To Dictionary | ${dut1_vm_refs} | DUT1_VM1 | ${vm1} +| | ${vm2}= | And Configure guest VM with dpdk-testpmd connected via vhost-user +| | ... | ${dut2} | ${sock1} | ${sock2} | DUT2_VM1 +| | Set To Dictionary | ${dut2_vm_refs} | DUT2_VM1 | ${vm2} +| | 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-eth-l2xcbase-eth-2vhostvr256-1vm-cfsrr1-ndrdisc +| | [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] | 64B | 1T1C | STHREAD | NDRDISC +| | ... +| | [Template] | Discover NDR or PDR for L2 xconnect with VM +| | wt=1 | rxq=1 | framesize=${64} | min_rate=${10000} | search_type=NDR + +| tc02-64B-1t1c-eth-l2xcbase-eth-2vhostvr256-1vm-cfsrr1-pdrdisc +| | [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] | 64B | 1T1C | STHREAD | PDRDISC | SKIP_PATCH +| | ... +| | [Template] | Discover NDR or PDR for L2 xconnect with VM +| | wt=1 | rxq=1 | framesize=${64} | min_rate=${10000} | search_type=PDR + +| tc03-1518B-1t1c-etc-l2xcbase-eth-2vhostvr256-1vm-cfsrr1-ndrdisc +| | [Documentation] +| | ... | [Cfg] DUT runs L2XC switching config with 1 thread, 1 phy core,\ +| | ... | 1 receive queue per NIC port. +| | ... | [Ver] Find NDR for 1518 Byte frames using binary search start at 10GE\ +| | ... | linerate, step 10kpps. +| | ... +| | [Tags] | 1518B | 1T1C | STHREAD | NDRDISC +| | ... +| | [Template] | Discover NDR or PDR for L2 xconnect with VM +| | wt=1 | rxq=1 | framesize=${1518} | min_rate=${10000} | search_type=NDR + +| tc04-1518B-1t1c-eth-l2xcbase-eth-2vhostvr256-1vm-cfsrr1-pdrdisc +| | [Documentation] +| | ... | [Cfg] DUT runs L2XC switching config with 1 thread, 1 phy core,\ +| | ... | 1 receive queue per NIC port. +| | ... | [Ver] Find PDR for 1518 Byte frames using binary search start at 10GE\ +| | ... | linerate, step 10kpps, LT=0.5%. +| | ... +| | [Tags] | 1518B | 1T1C | STHREAD | PDRDISC | SKIP_PATCH +| | ... +| | [Template] | Discover NDR or PDR for L2 xconnect with VM +| | wt=1 | rxq=1 | framesize=${1518} | min_rate=${10000} | search_type=PDR + +| tc05-IMIX-1t1c-eth-l2xcbase-eth-2vhostvr256-1vm-cfsrr1-ndrdisc +| | [Documentation] +| | ... | [Cfg] DUT runs L2XC switching config with 1 thread, 1 phy core,\ +| | ... | 1 receive queue per NIC port. +| | ... | [Ver] Find NDR for IMIX_v4_1 framesize using binary search start at\ +| | ... | 10GE linerate, step 10kpps. +| | ... | IMIX_v4_1 = (28x64B; 16x570B; 4x1518B) +| | ... +| | [Tags] | IMIX | 1T1C | STHREAD | NDRDISC +| | ... +| | [Template] | Discover NDR or PDR for L2 xconnect with VM +| | wt=1 | rxq=1 | framesize=IMIX_v4_1 | min_rate=${10000} | search_type=NDR + +| tc06-IMIX-1t1c-eth-l2xcbase-eth-2vhostvr256-1vm-cfsrr1-pdrdisc +| | [Documentation] +| | ... | [Cfg] DUT runs L2XC switching config with 1 thread, 1 phy core,\ +| | ... | 1 receive queue per NIC port. +| | ... | [Ver] Find PDR for IMIX_v4_1 framesize using binary search start at\ +| | ... | 10GE linerate, step 10kpps, LT=0.5%. +| | ... | IMIX_v4_1 = (28x64B; 16x570B; 4x1518B) +| | ... +| | [Tags] | IMIX | 1T1C | STHREAD | PDRDISC | SKIP_PATCH +| | ... +| | [Template] | Discover NDR or PDR for L2 xconnect with VM +| | wt=1 | rxq=1 | framesize=IMIX_v4_1 | min_rate=${10000} | search_type=PDR + +| tc07-64B-2t2c-eth-l2xcbase-eth-2vhostvr256-1vm-cfsrr1-ndrdisc +| | [Documentation] +| | ... | [Cfg] DUT runs L2XC switching config with 2 threads, 2 phy cores,\ +| | ... | 1 receive queue per NIC port. +| | ... | [Ver] Find NDR for 64 Byte frames using binary search start at 10GE\ +| | ... | linerate, step 10kpps. +| | ... +| | [Tags] | 64B | 2T2C | STHREAD | NDRDISC +| | ... +| | [Template] | Discover NDR or PDR for L2 xconnect with VM +| | wt=2 | rxq=1 | framesize=${64} | min_rate=${10000} | search_type=NDR + +| tc08-64B-2t2c-eth-l2xcbase-eth-2vhostvr256-1vm-cfsrr1-pdrdisc +| | [Documentation] +| | ... | [Cfg] DUT runs L2XC switching config with 2 threads, 2 phy cores,\ +| | ... | 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] | 64B | 2T2C | STHREAD | PDRDISC | SKIP_PATCH +| | ... +| | [Template] | Discover NDR or PDR for L2 xconnect with VM +| | wt=2 | rxq=1 | framesize=${64} | min_rate=${10000} | search_type=PDR + +| tc09-1518B-2t2c-eth-l2xcbase-eth-2vhostvr256-1vm-cfsrr1-ndrdisc +| | [Documentation] +| | ... | [Cfg] DUT runs L2XC switching config with 2 threads, 2 phy cores,\ +| | ... | 1 receive queue per NIC port. +| | ... | [Ver] Find NDR for 1518 Byte frames using binary search start at 10GE\ +| | ... | linerate, step 10kpps. +| | ... +| | [Tags] | 1518B | 2T2C | STHREAD | NDRDISC | SKIP_PATCH +| | ... +| | [Template] | Discover NDR or PDR for L2 xconnect with VM +| | wt=2 | rxq=1 | framesize=${1518} | min_rate=${10000} | search_type=NDR + +| tc10-1518B-2t2c-eth-l2xcbase-eth-2vhostvr256-1vm-cfsrr1-pdrdisc +| | [Documentation] +| | ... | [Cfg] DUT runs L2XC switching config with 2 threads, 2 phy cores,\ +| | ... | 1 receive queue per NIC port. +| | ... | [Ver] Find PDR for 1518 Byte frames using binary search start at 10GE\ +| | ... | linerate, step 10kpps, LT=0.5%. +| | ... +| | [Tags] | 1518B | 2T2C | STHREAD | PDRDISC | SKIP_PATCH +| | ... +| | [Template] | Discover NDR or PDR for L2 xconnect with VM +| | wt=2 | rxq=1 | framesize=${1518} | min_rate=${10000} | search_type=PDR + +| tc11-IMIX-2t2c-eth-l2xcbase-eth-2vhostvr256-1vm-cfsrr1-ndrdisc +| | [Documentation] +| | ... | [Cfg] DUT runs L2XC switching config with 2 threads, 2 phy cores,\ +| | ... | 1 receive queue per NIC port. +| | ... | [Ver] Find NDR for IMIX_v4_1 framesize using binary search start at\ +| | ... | 10GE linerate, step 10kpps. +| | ... | IMIX_v4_1 = (28x64B; 16x570B; 4x1518B) +| | ... +| | [Tags] | IMIX | 2T2C | STHREAD | NDRDISC | SKIP_PATCH +| | ... +| | [Template] | Discover NDR or PDR for L2 xconnect with VM +| | wt=2 | rxq=1 | framesize=IMIX_v4_1 | min_rate=${10000} | search_type=NDR + +| tc12-IMIX-2t2c-eth-l2xcbase-eth-2vhostvr256-1vm-cfsrr1-pdrdisc +| | [Documentation] +| | ... | [Cfg] DUT runs L2XC switching config with 2 threads, 2 phy cores,\ +| | ... | 1 receive queue per NIC port. +| | ... | [Ver] Find PDR for IMIX_v4_1 framesize using binary search start at\ +| | ... | 10GE linerate, step 10kpps. +| | ... | IMIX_v4_1 = (28x64B; 16x570B; 4x1518B) +| | ... +| | [Tags] | IMIX | 2T2C | STHREAD | PDRDISC | SKIP_PATCH +| | ... +| | [Template] | Discover NDR or PDR for L2 xconnect with VM +| | wt=2 | rxq=1 | framesize=IMIX_v4_1 | min_rate=${10000} | search_type=PDR + +| tc13-64B-4t4c-eth-l2xcbase-eth-2vhostvr256-1vm-cfsrr1-ndrdisc +| | [Documentation] +| | ... | [Cfg] DUT runs L2XC switching config with 4 threads, 4 phy cores,\ +| | ... | 2 receive queues per NIC port. +| | ... | [Ver] Find NDR for 64 Byte frames using binary search start at 10GE\ +| | ... | linerate, step 10kpps. +| | ... +| | [Tags] | 64B | 4T4C | STHREAD | NDRDISC +| | ... +| | [Template] | Discover NDR or PDR for L2 xconnect with VM +| | wt=4 | rxq=2 | framesize=${64} | min_rate=${10000} | search_type=NDR + +| tc14-64B-4t4c-eth-l2xcbase-eth-2vhostvr256-1vm-cfsrr1-pdrdisc +| | [Documentation] +| | ... | [Cfg] DUT runs L2XC switching config with 4 threads, 4 phy cores,\ +| | ... | 2 receive queues per NIC port. +| | ... | [Ver] Find PDR for 64 Byte frames using binary search start at 10GE\ +| | ... | linerate, step 10kpps, LT=0.5%. +| | ... +| | [Tags] | 64B | 4T4C | STHREAD | PDRDISC | SKIP_PATCH +| | ... +| | [Template] | Discover NDR or PDR for L2 xconnect with VM +| | wt=4 | rxq=2 | framesize=${64} | min_rate=${10000} | search_type=PDR + +| tc15-1518B-4t4c-eth-l2xcbase-eth-2vhostvr256-1vm-cfsrr1-ndrdisc +| | [Documentation] +| | ... | [Cfg] DUT runs L2XC switching config with 4 threads, 4 phy cores,\ +| | ... | 2 receive queues per NIC port. +| | ... | [Ver] Find NDR for 1518 Byte frames using binary search start at 10GE\ +| | ... | linerate, step 10kpps. +| | ... +| | [Tags] | 1518B | 4T4C | STHREAD | NDRDISC | SKIP_PATCH +| | ... +| | [Template] | Discover NDR or PDR for L2 xconnect with VM +| | wt=4 | rxq=2 | framesize=${1518} | min_rate=${10000} | search_type=NDR + +| tc16-1518B-4t4c-eth-l2xcbase-eth-2vhostvr256-1vm-cfsrr1-pdrdisc +| | [Documentation] +| | ... | [Cfg] DUT runs L2XC switching config with 4 threads, 4 phy cores,\ +| | ... | 2 receive queues per NIC port. +| | ... | [Ver] Find PDR for 1518 Byte frames using binary search start at 10GE\ +| | ... | linerate, step 10kpps, LT=0.5%. +| | ... +| | [Tags] | 1518B | 4T4C | STHREAD | PDRDISC | SKIP_PATCH +| | ... +| | [Template] | Discover NDR or PDR for L2 xconnect with VM +| | wt=4 | rxq=2 | framesize=${1518} | min_rate=${10000} | search_type=PDR + +| tc17-IMIX-4t4c-eth-l2xcbase-eth-2vhostvr256-1vm-cfsrr1-ndrdisc +| | [Documentation] +| | ... | [Cfg] DUT runs L2XC switching config with 4 threads, 4 phy cores,\ +| | ... | 2 receive queues per NIC port. +| | ... | [Ver] Find NDR for IMIX_v4_1 framesize using binary search start at\ +| | ... | 10GE linerate, step 10kpps. +| | ... | IMIX_v4_1 = (28x64B; 16x570B; 4x1518B) +| | ... +| | [Tags] | IMIX | 4T4C | STHREAD | NDRDISC | SKIP_PATCH +| | ... +| | [Template] | Discover NDR or PDR for L2 xconnect with VM +| | wt=4 | rxq=2 | framesize=IMIX_v4_1 | min_rate=${10000} | search_type=NDR + +| tc18-IMIX-4t4c-eth-l2xcbase-eth-2vhostvr256-1vm-cfsrr1-pdrdisc +| | [Documentation] +| | ... | [Cfg] DUT runs L2XC switching config with 4 threads, 4 phy cores,\ +| | ... | 2 receive queues per NIC port. +| | ... | [Ver] Find PDR for IMIX_v4_1 framesize using binary search start at\ +| | ... | 10GE linerate, step 10kpps, LT=0.5%. +| | ... | IMIX_v4_1 = (28x64B; 16x570B; 4x1518B) +| | ... +| | [Tags] | IMIX | 4T4C | STHREAD | PDRDISC | SKIP_PATCH +| | ... +| | [Template] | Discover NDR or PDR for L2 xconnect with VM +| | wt=4 | rxq=2 | framesize=IMIX_v4_1 | min_rate=${10000} | search_type=PDR diff --git a/tests/vpp/perf/vm_vhost/10ge2p1x520-eth-l2xcbase-eth-2vhostvr256-1vm-ndrpdrdisc.robot b/tests/vpp/perf/vm_vhost/10ge2p1x520-eth-l2xcbase-eth-2vhostvr256-1vm-ndrpdrdisc.robot new file mode 100644 index 0000000000..c3bf892440 --- /dev/null +++ b/tests/vpp/perf/vm_vhost/10ge2p1x520-eth-l2xcbase-eth-2vhostvr256-1vm-ndrpdrdisc.robot @@ -0,0 +1,343 @@ +# Copyright (c) 2017 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/performance/performance_setup.robot +| Library | resources.libraries.python.QemuUtils +| ... +| Force Tags | 3_NODE_SINGLE_LINK_TOPO | PERFTEST | HW_ENV | NDRPDRDISC +| ... | NIC_Intel-X520-DA2 | DOT1Q | L2BDMACLRN | BASE | VHOST | VM +| ... +| Suite Setup | Set up 3-node performance topology with DUT's NIC model +| ... | L2 | Intel-X520-DA2 +| Suite Teardown | Tear down 3-node performance topology +| ... +| Test Setup | Set up performance test +| Test Teardown | Tear down performance test with vhost and VM with dpdk-testpmd +| ... | ${min_rate}pps | ${framesize} | ${traffic_profile} +| ... | dut1_node=${dut1} | dut1_vm_refs=${dut1_vm_refs} +| ... | dut2_node=${dut2} | dut2_vm_refs=${dut2_vm_refs} +| ... +| Documentation | *RFC2544: Packet throughput L2XC test cases with vhost* +| ... +| ... | *[Top] Network Topologies:* TG-DUT1-DUT2-TG 3-node circular topology +| ... | with single links between nodes. +| ... | *[Enc] Packet Encapsulations:* Eth-IPv4 for L2 switching of IPv4. 802.1q +| ... | tagging is applied on link between DUT1 and DUT2. +| ... | *[Cfg] DUT configuration:* DUT1 and DUT2 are configured with L2 cross- +| ... | connect. Qemu Guest is connected to VPP via vhost-user interfaces. +| ... | Guest is running DPDK testpmd interconnecting vhost-user interfaces +| ... | using 5 cores pinned to cpus 5-9 and 2048M memory. Testpmd is using +| ... | socket-mem=1024M (512x2M hugepages), 5 cores (1 main core and 4 cores +| ... | dedicated for io), forwarding mode is set to io, rxd/txd=256, +| ... | burst=64. DUT1, DUT2 are tested with 2p10GE NIC X520 Niantic by Intel. +| ... | *[Ver] TG verification:* TG finds and reports throughput NDR (Non Drop +| ... | Rate) with zero packet loss tolerance or 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 either binary search or linear search +| ... | algorithms with configured starting rate and final step that determines +| ... | throughput measurement resolution. Test packets are generated by TG on +| ... | links to DUTs. TG traffic profile contains two L3 flow-groups +| ... | (flow-group per direction, 253 flows per flow-group) with all packets +| ... | containing Ethernet header, IPv4 header with IP protocol=61 and static +| ... | payload. MAC addresses are matching MAC addresses of the TG node +| ... | interfaces. +| ... | *[Ref] Applicable standard specifications:* RFC2544. + +*** Variables *** +| ${avg_imix_framesize}= | ${357.833} +# X520-DA2 bandwidth limit +| ${s_limit} | ${10000000000} +# Socket names +| ${sock1}= | /tmp/sock-1-1 +| ${sock2}= | /tmp/sock-1-2 +# Traffic profile: +| ${traffic_profile} | trex-sl-3n-ethip4-ip4src254 + +*** Keywords *** +| Discover NDR or PDR for L2 xconnect with VM +| | [Arguments] | ${wt} | ${rxq} | ${framesize} | ${min_rate} | ${search_type} +| | ... +| | [Documentation] +| | ... | [Cfg] DUT runs L2XC switching config with required number of threads,\ +| | ... | phy cores and receive queues per NIC port. +| | ... | [Ver] Find NDR or PDR for defined frame size using binary search\ +| | ... | start at 10GE linerate with specified step. +| | ... +| | ... | *Arguments:* +| | ... | - wt - Number of worker threads to be used. Type: integer +| | ... | - rxq - Number of Rx queues to be used. Type: integer +| | ... | - framesize - L2 Frame Size [B]. Type: integer +| | ... | - min_rate - Lower limit of search [pps]. Type: float +| | ... | - search_type - Type of the search - non drop rate (NDR) or partial +| | ... | drop rare (PDR). Type: string +| | ... +| | Set Test Variable | ${perf_qemu_qsz} | 256 +| | Set Test Variable | ${framesize} +| | Set Test Variable | ${min_rate} +| | ${get_framesize}= | Set Variable If +| | ... | "${framesize}" == "IMIX_v4_1" | ${avg_imix_framesize} +| | ... | ${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} +| | ${dut1_vm_refs}= | Create Dictionary +| | ${dut2_vm_refs}= | Create Dictionary +| | Set Test Variable | ${dut1_vm_refs} +| | Set Test Variable | ${dut2_vm_refs} +| | 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 +| | When Initialize L2 xconnect with Vhost-User in 3-node circular topology +| | ... | ${sock1} | ${sock2} +| | ${vm1}= | And Configure guest VM with dpdk-testpmd connected via vhost-user +| | ... | ${dut1} | ${sock1} | ${sock2} | DUT1_VM1 +| | Set To Dictionary | ${dut1_vm_refs} | DUT1_VM1 | ${vm1} +| | ${vm2}= | And Configure guest VM with dpdk-testpmd connected via vhost-user +| | ... | ${dut2} | ${sock1} | ${sock2} | DUT2_VM1 +| | Set To Dictionary | ${dut2_vm_refs} | DUT2_VM1 | ${vm2} +| | 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-eth-l2xcbase-eth-2vhostvr256-1vm-ndrdisc +| | [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] | 64B | 1T1C | STHREAD | NDRDISC +| | ... +| | [Template] | Discover NDR or PDR for L2 xconnect with VM +| | wt=1 | rxq=1 | framesize=${64} | min_rate=${10000} | search_type=NDR + +| tc02-64B-1t1c-eth-l2xcbase-eth-2vhostvr256-1vm-pdrdisc +| | [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] | 64B | 1T1C | STHREAD | PDRDISC | SKIP_PATCH +| | ... +| | [Template] | Discover NDR or PDR for L2 xconnect with VM +| | wt=1 | rxq=1 | framesize=${64} | min_rate=${10000} | search_type=PDR + +| tc03-1518B-1t1c-etc-l2xcbase-eth-2vhostvr256-1vm-ndrdisc +| | [Documentation] +| | ... | [Cfg] DUT runs L2XC switching config with 1 thread, 1 phy core,\ +| | ... | 1 receive queue per NIC port. +| | ... | [Ver] Find NDR for 1518 Byte frames using binary search start at 10GE\ +| | ... | linerate, step 10kpps. +| | ... +| | [Tags] | 1518B | 1T1C | STHREAD | NDRDISC +| | ... +| | [Template] | Discover NDR or PDR for L2 xconnect with VM +| | wt=1 | rxq=1 | framesize=${1518} | min_rate=${10000} | search_type=NDR + +| tc04-1518B-1t1c-eth-l2xcbase-eth-2vhostvr256-1vm-pdrdisc +| | [Documentation] +| | ... | [Cfg] DUT runs L2XC switching config with 1 thread, 1 phy core,\ +| | ... | 1 receive queue per NIC port. +| | ... | [Ver] Find PDR for 1518 Byte frames using binary search start at 10GE\ +| | ... | linerate, step 10kpps, LT=0.5%. +| | ... +| | [Tags] | 1518B | 1T1C | STHREAD | PDRDISC | SKIP_PATCH +| | ... +| | [Template] | Discover NDR or PDR for L2 xconnect with VM +| | wt=1 | rxq=1 | framesize=${1518} | min_rate=${10000} | search_type=PDR + +| tc05-IMIX-1t1c-eth-l2xcbase-eth-2vhostvr256-1vm-ndrdisc +| | [Documentation] +| | ... | [Cfg] DUT runs L2XC switching config with 1 thread, 1 phy core,\ +| | ... | 1 receive queue per NIC port. +| | ... | [Ver] Find NDR for IMIX_v4_1 framesize using binary search start at\ +| | ... | 10GE linerate, step 10kpps. +| | ... | IMIX_v4_1 = (28x64B; 16x570B; 4x1518B) +| | ... +| | [Tags] | IMIX | 1T1C | STHREAD | NDRDISC +| | ... +| | [Template] | Discover NDR or PDR for L2 xconnect with VM +| | wt=1 | rxq=1 | framesize=IMIX_v4_1 | min_rate=${10000} | search_type=NDR + +| tc06-IMIX-1t1c-eth-l2xcbase-eth-2vhostvr256-1vm-pdrdisc +| | [Documentation] +| | ... | [Cfg] DUT runs L2XC switching config with 1 thread, 1 phy core,\ +| | ... | 1 receive queue per NIC port. +| | ... | [Ver] Find PDR for IMIX_v4_1 framesize using binary search start at\ +| | ... | 10GE linerate, step 10kpps, LT=0.5%. +| | ... | IMIX_v4_1 = (28x64B; 16x570B; 4x1518B) +| | ... +| | [Tags] | IMIX | 1T1C | STHREAD | PDRDISC | SKIP_PATCH +| | ... +| | [Template] | Discover NDR or PDR for L2 xconnect with VM +| | wt=1 | rxq=1 | framesize=IMIX_v4_1 | min_rate=${10000} | search_type=PDR + +| tc07-64B-2t2c-eth-l2xcbase-eth-2vhostvr256-1vm-ndrdisc +| | [Documentation] +| | ... | [Cfg] DUT runs L2XC switching config with 2 threads, 2 phy cores,\ +| | ... | 1 receive queue per NIC port. +| | ... | [Ver] Find NDR for 64 Byte frames using binary search start at 10GE\ +| | ... | linerate, step 10kpps. +| | ... +| | [Tags] | 64B | 2T2C | STHREAD | NDRDISC +| | ... +| | [Template] | Discover NDR or PDR for L2 xconnect with VM +| | wt=2 | rxq=1 | framesize=${64} | min_rate=${10000} | search_type=NDR + +| tc08-64B-2t2c-eth-l2xcbase-eth-2vhostvr256-1vm-pdrdisc +| | [Documentation] +| | ... | [Cfg] DUT runs L2XC switching config with 2 threads, 2 phy cores,\ +| | ... | 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] | 64B | 2T2C | STHREAD | PDRDISC | SKIP_PATCH +| | ... +| | [Template] | Discover NDR or PDR for L2 xconnect with VM +| | wt=2 | rxq=1 | framesize=${64} | min_rate=${10000} | search_type=PDR + +| tc09-1518B-2t2c-eth-l2xcbase-eth-2vhostvr256-1vm-ndrdisc +| | [Documentation] +| | ... | [Cfg] DUT runs L2XC switching config with 2 threads, 2 phy cores,\ +| | ... | 1 receive queue per NIC port. +| | ... | [Ver] Find NDR for 1518 Byte frames using binary search start at 10GE\ +| | ... | linerate, step 10kpps. +| | ... +| | [Tags] | 1518B | 2T2C | STHREAD | NDRDISC | SKIP_PATCH +| | ... +| | [Template] | Discover NDR or PDR for L2 xconnect with VM +| | wt=2 | rxq=1 | framesize=${1518} | min_rate=${10000} | search_type=NDR + +| tc10-1518B-2t2c-eth-l2xcbase-eth-2vhostvr256-1vm-pdrdisc +| | [Documentation] +| | ... | [Cfg] DUT runs L2XC switching config with 2 threads, 2 phy cores,\ +| | ... | 1 receive queue per NIC port. +| | ... | [Ver] Find PDR for 1518 Byte frames using binary search start at 10GE\ +| | ... | linerate, step 10kpps, LT=0.5%. +| | ... +| | [Tags] | 1518B | 2T2C | STHREAD | PDRDISC | SKIP_PATCH +| | ... +| | [Template] | Discover NDR or PDR for L2 xconnect with VM +| | wt=2 | rxq=1 | framesize=${1518} | min_rate=${10000} | search_type=PDR + +| tc11-IMIX-2t2c-eth-l2xcbase-eth-2vhostvr256-1vm-ndrdisc +| | [Documentation] +| | ... | [Cfg] DUT runs L2XC switching config with 2 threads, 2 phy cores,\ +| | ... | 1 receive queue per NIC port. +| | ... | [Ver] Find NDR for IMIX_v4_1 framesize using binary search start at\ +| | ... | 10GE linerate, step 10kpps. +| | ... | IMIX_v4_1 = (28x64B; 16x570B; 4x1518B) +| | ... +| | [Tags] | IMIX | 2T2C | STHREAD | NDRDISC | SKIP_PATCH +| | ... +| | [Template] | Discover NDR or PDR for L2 xconnect with VM +| | wt=2 | rxq=1 | framesize=IMIX_v4_1 | min_rate=${10000} | search_type=NDR + +| tc12-IMIX-2t2c-eth-l2xcbase-eth-2vhostvr256-1vm-pdrdisc +| | [Documentation] +| | ... | [Cfg] DUT runs L2XC switching config with 2 threads, 2 phy cores,\ +| | ... | 1 receive queue per NIC port. +| | ... | [Ver] Find PDR for IMIX_v4_1 framesize using binary search start at\ +| | ... | 10GE linerate, step 10kpps. +| | ... | IMIX_v4_1 = (28x64B; 16x570B; 4x1518B) +| | ... +| | [Tags] | IMIX | 2T2C | STHREAD | PDRDISC | SKIP_PATCH +| | ... +| | [Template] | Discover NDR or PDR for L2 xconnect with VM +| | wt=2 | rxq=1 | framesize=IMIX_v4_1 | min_rate=${10000} | search_type=PDR + +| tc13-64B-4t4c-eth-l2xcbase-eth-2vhostvr256-1vm-ndrdisc +| | [Documentation] +| | ... | [Cfg] DUT runs L2XC switching config with 4 threads, 4 phy cores,\ +| | ... | 2 receive queues per NIC port. +| | ... | [Ver] Find NDR for 64 Byte frames using binary search start at 10GE\ +| | ... | linerate, step 10kpps. +| | ... +| | [Tags] | 64B | 4T4C | STHREAD | NDRDISC +| | ... +| | [Template] | Discover NDR or PDR for L2 xconnect with VM +| | wt=4 | rxq=2 | framesize=${64} | min_rate=${10000} | search_type=NDR + +| tc14-64B-4t4c-eth-l2xcbase-eth-2vhostvr256-1vm-pdrdisc +| | [Documentation] +| | ... | [Cfg] DUT runs L2XC switching config with 4 threads, 4 phy cores,\ +| | ... | 2 receive queues per NIC port. +| | ... | [Ver] Find PDR for 64 Byte frames using binary search start at 10GE\ +| | ... | linerate, step 10kpps, LT=0.5%. +| | ... +| | [Tags] | 64B | 4T4C | STHREAD | PDRDISC | SKIP_PATCH +| | ... +| | [Template] | Discover NDR or PDR for L2 xconnect with VM +| | wt=4 | rxq=2 | framesize=${64} | min_rate=${10000} | search_type=PDR + +| tc15-1518B-4t4c-eth-l2xcbase-eth-2vhostvr256-1vm-ndrdisc +| | [Documentation] +| | ... | [Cfg] DUT runs L2XC switching config with 4 threads, 4 phy cores,\ +| | ... | 2 receive queues per NIC port. +| | ... | [Ver] Find NDR for 1518 Byte frames using binary search start at 10GE\ +| | ... | linerate, step 10kpps. +| | ... +| | [Tags] | 1518B | 4T4C | STHREAD | NDRDISC | SKIP_PATCH +| | ... +| | [Template] | Discover NDR or PDR for L2 xconnect with VM +| | wt=4 | rxq=2 | framesize=${1518} | min_rate=${10000} | search_type=NDR + +| tc16-1518B-4t4c-eth-l2xcbase-eth-2vhostvr256-1vm-pdrdisc +| | [Documentation] +| | ... | [Cfg] DUT runs L2XC switching config with 4 threads, 4 phy cores,\ +| | ... | 2 receive queues per NIC port. +| | ... | [Ver] Find PDR for 1518 Byte frames using binary search start at 10GE\ +| | ... | linerate, step 10kpps, LT=0.5%. +| | ... +| | [Tags] | 1518B | 4T4C | STHREAD | PDRDISC | SKIP_PATCH +| | ... +| | [Template] | Discover NDR or PDR for L2 xconnect with VM +| | wt=4 | rxq=2 | framesize=${1518} | min_rate=${10000} | search_type=PDR + +| tc17-IMIX-4t4c-eth-l2xcbase-eth-2vhostvr256-1vm-ndrdisc +| | [Documentation] +| | ... | [Cfg] DUT runs L2XC switching config with 4 threads, 4 phy cores,\ +| | ... | 2 receive queues per NIC port. +| | ... | [Ver] Find NDR for IMIX_v4_1 framesize using binary search start at\ +| | ... | 10GE linerate, step 10kpps. +| | ... | IMIX_v4_1 = (28x64B; 16x570B; 4x1518B) +| | ... +| | [Tags] | IMIX | 4T4C | STHREAD | NDRDISC | SKIP_PATCH +| | ... +| | [Template] | Discover NDR or PDR for L2 xconnect with VM +| | wt=4 | rxq=2 | framesize=IMIX_v4_1 | min_rate=${10000} | search_type=NDR + +| tc18-IMIX-4t4c-eth-l2xcbase-eth-2vhostvr256-1vm-pdrdisc +| | [Documentation] +| | ... | [Cfg] DUT runs L2XC switching config with 4 threads, 4 phy cores,\ +| | ... | 2 receive queues per NIC port. +| | ... | [Ver] Find PDR for IMIX_v4_1 framesize using binary search start at\ +| | ... | 10GE linerate, step 10kpps, LT=0.5%. +| | ... | IMIX_v4_1 = (28x64B; 16x570B; 4x1518B) +| | ... +| | [Tags] | IMIX | 4T4C | STHREAD | PDRDISC | SKIP_PATCH +| | ... +| | [Template] | Discover NDR or PDR for L2 xconnect with VM +| | wt=4 | rxq=2 | framesize=IMIX_v4_1 | min_rate=${10000} | search_type=PDR diff --git a/tests/vpp/perf/vm_vhost/10ge2p1x520-ethip4-ip4base-eth-2vhost-1vm-ndrpdrdisc.robot b/tests/vpp/perf/vm_vhost/10ge2p1x520-ethip4-ip4base-eth-2vhostvr1024-1vm-ndrpdrdisc.robot index 0b19414fb5..22e733010a 100644 --- a/tests/vpp/perf/vm_vhost/10ge2p1x520-ethip4-ip4base-eth-2vhost-1vm-ndrpdrdisc.robot +++ b/tests/vpp/perf/vm_vhost/10ge2p1x520-ethip4-ip4base-eth-2vhostvr1024-1vm-ndrpdrdisc.robot @@ -39,7 +39,7 @@ | ... | interconnecting vhost-user interfaces using 5 cores pinned to cpus 5-9 | ... | and 2048M memory. Testpmd is using socket-mem=1024M (512x2M hugepages), | ... | 5 cores (1 main core and 4 cores dedicated for io), forwarding mode is -| ... | set to mac, rxd/txd=256, burst=64. DUT1, DUT2 are tested with 2p10GE +| ... | set to mac, rxd/txd=1024, burst=64. DUT1, DUT2 are tested with 2p10GE | ... | NIC X520 Niantic by Intel. | ... | *[Ver] TG verification:* TG finds and reports throughput NDR (Non Drop | ... | Rate) with zero packet loss tolerance or throughput PDR (Partial Drop @@ -66,7 +66,7 @@ | ${traffic_profile} | trex-sl-3n-ethip4-ip4src253 *** Test Cases *** -| tc01-64B-1t1c-ethip4-ip4base-eth-2vhost-1vm-ndrdisc +| tc01-64B-1t1c-ethip4-ip4base-eth-2vhostvr1024-1vm-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 \ @@ -98,7 +98,7 @@ | | ... | ${binary_max} | ${traffic_profile} | | ... | ${min_rate} | ${max_rate} | ${threshold} -| tc02-64B-1t1c-ethip4-ip4base-eth-2vhost-1vm-pdrdisc +| tc02-64B-1t1c-ethip4-ip4base-eth-2vhostvr1024-1vm-pdrdisc | | [Documentation] | | ... | [Cfg] DUT runs IPv4 routing config with 1 thread, 1 phy core, \ | | ... | 1 receive queue per NIC port. [Ver] Find PDR for 64 Byte frames \ @@ -131,7 +131,7 @@ | | ... | ${min_rate} | ${max_rate} | ${threshold} | | ... | ${perf_pdr_loss_acceptance} | ${perf_pdr_loss_acceptance_type} -| tc03-1518B-1t1c-ethip4-ip4base-eth-2vhost-1vm-ndrdisc +| tc03-1518B-1t1c-ethip4-ip4base-eth-2vhostvr1024-1vm-ndrdisc | | [Documentation] | | ... | [Cfg] DUT runs IPv4 routing config with 1 thread, 1 phy core, \ | | ... | 1 receive queue per NIC port. [Ver] Find NDR for 1518 Byte frames \ @@ -163,7 +163,7 @@ | | ... | ${binary_max} | ${traffic_profile} | | ... | ${min_rate} | ${max_rate} | ${threshold} -| tc04-1518B-1t1c-ethip4-ip4base-eth-2vhost-1vm-pdrdisc +| tc04-1518B-1t1c-ethip4-ip4base-eth-2vhostvr1024-1vm-pdrdisc | | [Documentation] | | ... | [Cfg] DUT runs IPv4 routing config with 1 thread, 1 phy core, \ | | ... | 1 receive queue per NIC port. [Ver] Find PDR for 1518 Byte frames \ @@ -196,7 +196,7 @@ | | ... | ${min_rate} | ${max_rate} | ${threshold} | | ... | ${perf_pdr_loss_acceptance} | ${perf_pdr_loss_acceptance_type} -| tc05-IMIX-1t1c-ethip4-ip4base-eth-2vhost-1vm-ndrdisc +| tc05-IMIX-1t1c-ethip4-ip4base-eth-2vhostvr1024-1vm-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 \ @@ -229,7 +229,7 @@ | | ... | ${binary_max} | ${traffic_profile} | | ... | ${min_rate} | ${max_rate} | ${threshold} -| tc06-IMIX-1t1c-ethip4-ip4base-eth-2vhost-1vm-pdrdisc +| tc06-IMIX-1t1c-ethip4-ip4base-eth-2vhostvr1024-1vm-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 \ @@ -263,7 +263,7 @@ | | ... | ${min_rate} | ${max_rate} | ${threshold} | | ... | ${perf_pdr_loss_acceptance} | ${perf_pdr_loss_acceptance_type} -| tc07-64B-2t2c-ethip4-ip4base-eth-2vhost-1vm-ndrdisc +| tc07-64B-2t2c-ethip4-ip4base-eth-2vhostvr1024-1vm-ndrdisc | | [Documentation] | | ... | [Cfg] DUT runs IPv4 routing config with 2 threads, 2 phy cores, \ | | ... | 1 receive queue per NIC port. [Ver] Find NDR for 64 Byte frames \ @@ -295,7 +295,7 @@ | | ... | ${binary_max} | ${traffic_profile} | | ... | ${min_rate} | ${max_rate} | ${threshold} -| tc08-64B-2t2c-ethip4-ip4base-eth-2vhost-1vm-pdrdisc +| tc08-64B-2t2c-ethip4-ip4base-eth-2vhostvr1024-1vm-pdrdisc | | [Documentation] | | ... | [Cfg] DUT runs IPv4 routing config with 2 threads, 2 phy cores, \ | | ... | 1 receive queue per NIC port. [Ver] Find PDR for 64 Byte frames \ @@ -328,7 +328,7 @@ | | ... | ${min_rate} | ${max_rate} | ${threshold} | | ... | ${perf_pdr_loss_acceptance} | ${perf_pdr_loss_acceptance_type} -| tc09-1518B-2t2c-ethip4-ip4base-eth-2vhost-1vm-ndrdisc +| tc09-1518B-2t2c-ethip4-ip4base-eth-2vhostvr1024-1vm-ndrdisc | | [Documentation] | | ... | [Cfg] DUT runs IPv4 routing config with 2 threads, 2 phy cores, \ | | ... | 1 receive queue per NIC port. [Ver] Find NDR for 1518 Byte frames \ @@ -360,7 +360,7 @@ | | ... | ${binary_max} | ${traffic_profile} | | ... | ${min_rate} | ${max_rate} | ${threshold} -| tc10-1518B-2t2c-ethip4-ip4base-eth-2vhost-1vm-pdrdisc +| tc10-1518B-2t2c-ethip4-ip4base-eth-2vhostvr1024-1vm-pdrdisc | | [Documentation] | | ... | [Cfg] DUT runs IPv4 routing config with 2 threads, 2 phy cores, \ | | ... | 1 receive queue per NIC port. [Ver] Find PDR for 1518 Byte frames \ @@ -393,7 +393,7 @@ | | ... | ${min_rate} | ${max_rate} | ${threshold} | | ... | ${perf_pdr_loss_acceptance} | ${perf_pdr_loss_acceptance_type} -| tc11-IMIX-2t2c-ethip4-ip4base-eth-2vhost-1vm-ndrdisc +| tc11-IMIX-2t2c-ethip4-ip4base-eth-2vhostvr1024-1vm-ndrdisc | | [Documentation] | | ... | [Cfg] DUT runs IPv4 routing config with 2 threads, 2 phy cores, \ | | ... | 1 receive queue per NIC port. [Ver] Find NDR for IMIX_v4_1 frame \ @@ -426,7 +426,7 @@ | | ... | ${binary_max} | ${traffic_profile} | | ... | ${min_rate} | ${max_rate} | ${threshold} -| tc12-IMIX-2t2c-ethip4-ip4base-eth-2vhost-1vm-pdrdisc +| tc12-IMIX-2t2c-ethip4-ip4base-eth-2vhostvr1024-1vm-pdrdisc | | [Documentation] | | ... | [Cfg] DUT runs IPv4 routing config with 2 threads, 2 phy cores, \ | | ... | 1 receive queue per NIC port. [Ver] Find PDR for IMIX_v4_1 frame \ @@ -460,7 +460,7 @@ | | ... | ${min_rate} | ${max_rate} | ${threshold} | | ... | ${perf_pdr_loss_acceptance} | ${perf_pdr_loss_acceptance_type} -| tc13-64B-4t4c-ethip4-ip4base-eth-2vhost-1vm-ndrdisc +| tc13-64B-4t4c-ethip4-ip4base-eth-2vhostvr1024-1vm-ndrdisc | | [Documentation] | | ... | [Cfg] DUT runs IPv4 routing config with 4 threads, 4 phy cores, \ | | ... | 2 receive queues per NIC port. [Ver] Find NDR for 64 Byte frames \ @@ -492,7 +492,7 @@ | | ... | ${binary_max} | ${traffic_profile} | | ... | ${min_rate} | ${max_rate} | ${threshold} -| tc14-64B-4t4c-ethip4-ip4base-eth-2vhost-1vm-pdrdisc +| tc14-64B-4t4c-ethip4-ip4base-eth-2vhostvr1024-1vm-pdrdisc | | [Documentation] | | ... | [Cfg] DUT runs IPv4 routing config with 4 threads, 4 phy cores, \ | | ... | 2 receive queues per NIC port. [Ver] Find PDR for 64 Byte frames \ @@ -525,7 +525,7 @@ | | ... | ${min_rate} | ${max_rate} | ${threshold} | | ... | ${perf_pdr_loss_acceptance} | ${perf_pdr_loss_acceptance_type} -| tc15-1518B-4t4c-ethip4-ip4base-eth-2vhost-1vm-ndrdisc +| tc15-1518B-4t4c-ethip4-ip4base-eth-2vhostvr1024-1vm-ndrdisc | | [Documentation] | | ... | [Cfg] DUT runs IPv4 routing config with 4 threads, 4 phy cores, \ | | ... | 2 receive queues per NIC port. [Ver] Find NDR for 1518 Byte frames \ @@ -557,7 +557,7 @@ | | ... | ${binary_max} | ${traffic_profile} | | ... | ${min_rate} | ${max_rate} | ${threshold} -| tc16-1518B-4t4c-ethip4-ip4base-eth-2vhost-1vm-pdrdisc +| tc16-1518B-4t4c-ethip4-ip4base-eth-2vhostvr1024-1vm-pdrdisc | | [Documentation] | | ... | [Cfg] DUT runs IPv4 routing config with 4 threads, 4 phy cores, \ | | ... | 2 receive queues per NIC port. [Ver] Find PDR for 1518 Byte frames \ @@ -590,7 +590,7 @@ | | ... | ${min_rate} | ${max_rate} | ${threshold} | | ... | ${perf_pdr_loss_acceptance} | ${perf_pdr_loss_acceptance_type} -| tc17-IMIX-4t4c-ethip4-ip4base-eth-2vhost-1vm-ndrdisc +| tc17-IMIX-4t4c-ethip4-ip4base-eth-2vhostvr1024-1vm-ndrdisc | | [Documentation] | | ... | [Cfg] DUT runs IPv4 routing config with 4 threads, 4 phy cores, \ | | ... | 2 receive queues per NIC port. [Ver] Find NDR for IMIX_v4_1 frame \ @@ -623,7 +623,7 @@ | | ... | ${binary_max} | ${traffic_profile} | | ... | ${min_rate} | ${max_rate} | ${threshold} -| tc18-IMIX-4t4c-ethip4-ip4base-eth-2vhost-1vm-pdrdisc +| tc18-IMIX-4t4c-ethip4-ip4base-eth-2vhostvr1024-1vm-pdrdisc | | [Documentation] | | ... | [Cfg] DUT runs IPv4 routing config with 4 threads, 4 phy cores, \ | | ... | 2 receive queues per NIC port. [Ver] Find PDR for IMIX_v4_1 frame \ diff --git a/tests/vpp/perf/vm_vhost/10ge2p1x520-ethip4-ip4base-eth-2vhostvr256-1vm-cfsrr1-ndrpdrdisc.robot b/tests/vpp/perf/vm_vhost/10ge2p1x520-ethip4-ip4base-eth-2vhostvr256-1vm-cfsrr1-ndrpdrdisc.robot new file mode 100644 index 0000000000..2e4754f553 --- /dev/null +++ b/tests/vpp/perf/vm_vhost/10ge2p1x520-ethip4-ip4base-eth-2vhostvr256-1vm-cfsrr1-ndrpdrdisc.robot @@ -0,0 +1,350 @@ +# Copyright (c) 2017 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/performance/performance_setup.robot +| Library | resources.libraries.python.QemuUtils +| ... +| Force Tags | 3_NODE_SINGLE_LINK_TOPO | PERFTEST | HW_ENV | NDRPDRDISC +| ... | NIC_Intel-X520-DA2 | DOT1Q | L2BDMACLRN | BASE | VHOST | VM +| ... +| Suite Setup | Set up 3-node performance topology with DUT's NIC model +| ... | L3 | Intel-X520-DA2 +| Suite Teardown | Tear down 3-node performance topology +| ... +| Test Setup | Set up performance test +| Test Teardown | Tear down performance test with vhost and VM with dpdk-testpmd +| ... | ${min_rate}pps | ${framesize} | ${traffic_profile} +| ... | dut1_node=${dut1} | dut1_vm_refs=${dut1_vm_refs} +| ... | dut2_node=${dut2} | dut2_vm_refs=${dut2_vm_refs} +| ... +| Documentation | *RFC2544: Packet throughput IP4 test cases with vhost* +| ... +| ... | *[Top] Network Topologies:* TG-DUT1-DUT2-TG 3-node circular topology +| ... | with single links between nodes. +| ... | *[Enc] Packet Encapsulations:* Eth-IPv4 for IPv4 routing. +| ... | *[Cfg] DUT configuration:* DUT1 and DUT2 are configured with IPv4 +| ... | routing and two static IPv4 /24 route entries. Qemu Guest is connected +| ... | to VPP via vhost-user interfaces. Guest is running DPDK testpmd +| ... | interconnecting vhost-user interfaces using 5 cores pinned to cpus 5-9 +| ... | and 2048M memory. Testpmd is using socket-mem=1024M (512x2M hugepages), +| ... | 5 cores (1 main core and 4 cores dedicated for io), forwarding mode is +| ... | set to mac, rxd/txd=256, burst=64. Scheduler policy is set to SCHED_RR +| ... | with priority 1 for all Qemu CPUs. DUT1, DUT2 are tested with 2p10GE +| ... | NIC X520 Niantic by Intel. +| ... | *[Ver] TG verification:* TG finds and reports throughput NDR (Non Drop +| ... | Rate) with zero packet loss tolerance or 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 either binary search or linear search +| ... | algorithms with configured starting rate and final step that determines +| ... | throughput measurement resolution. Test packets are generated by TG on +| ... | links to DUTs. TG traffic profile contains two L3 flow-groups +| ... | (flow-group per direction, 253 flows per flow-group) with all packets +| ... | containing Ethernet header, IPv4 header with IP protocol=61 and static +| ... | payload. MAC addresses are matching MAC addresses of the TG node +| ... | interfaces. +| ... | *[Ref] Applicable standard specifications:* RFC2544. + +*** Variables *** +| ${avg_imix_framesize}= | ${357.833} +# X520-DA2 bandwidth limit +| ${s_limit} | ${10000000000} +# Socket names +| ${sock1}= | /tmp/sock-1-1 +| ${sock2}= | /tmp/sock-1-2 +# FIB tables +| ${fib_table_1}= | 100 +| ${fib_table_2}= | 101 +# Traffic profile: +| ${traffic_profile} | trex-sl-3n-ethip4-ip4src253 + +*** Keywords *** +| Discover NDR or PDR for IPv4 forwarding with VM +| | [Arguments] | ${wt} | ${rxq} | ${framesize} | ${min_rate} | ${search_type} +| | ... +| | [Documentation] +| | ... | [Cfg] DUT runs IP4 routing config with required number of threads,\ +| | ... | phy cores and receive queues per NIC port. +| | ... | [Ver] Find NDR or PDR for defined frame size using binary search\ +| | ... | start at 10GE linerate with specified step. +| | ... +| | ... | *Arguments:* +| | ... | - wt - Number of worker threads to be used. Type: integer +| | ... | - rxq - Number of Rx queues to be used. Type: integer +| | ... | - framesize - L2 Frame Size [B]. Type: integer +| | ... | - min_rate - Lower limit of search [pps]. Type: float +| | ... | - search_type - Type of the search - non drop rate (NDR) or partial +| | ... | drop rare (PDR). Type: string +| | ... +| | Set Test Variable | ${perf_qemu_qsz} | 256 +| | Set Test Variable | ${use_tuned_cfs} | ${True} +| | Set Test Variable | ${framesize} +| | Set Test Variable | ${min_rate} +| | ${get_framesize}= | Set Variable If +| | ... | "${framesize}" == "IMIX_v4_1" | ${avg_imix_framesize} +| | ... | ${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} +| | ${dut1_vm_refs}= | Create Dictionary +| | ${dut2_vm_refs}= | Create Dictionary +| | Set Test Variable | ${dut1_vm_refs} +| | Set Test Variable | ${dut2_vm_refs} +| | 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 +| | When Initialize IPv4 forwarding with vhost in 3-node circular topology +| | ... | ${sock1} | ${sock2} +| | ${vm1}= | And Configure guest VM with dpdk-testpmd-mac connected via vhost-user +| | ... | ${dut1} | ${sock1} | ${sock2} | DUT1_VM1 | ${dut1_vif1_mac} +| | ... | ${dut1_vif2_mac} +| | Set To Dictionary | ${dut1_vm_refs} | DUT1_VM1 | ${vm1} +| | ${vm2}= | And Configure guest VM with dpdk-testpmd-mac connected via vhost-user +| | ... | ${dut2} | ${sock1} | ${sock2} | DUT2_VM1 | ${dut2_vif1_mac} +| | ... | ${dut2_vif2_mac} +| | Set To Dictionary | ${dut2_vm_refs} | DUT2_VM1 | ${vm2} +| | 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-eth-2vhostvr256-1vm-cfsrr1-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 10kpps. +| | ... +| | [Tags] | 64B | 1T1C | STHREAD | NDRDISC +| | ... +| | [Template] | Discover NDR or PDR for IPv4 forwarding with VM +| | wt=1 | rxq=1 | framesize=${64} | min_rate=${10000} | search_type=NDR + +| tc02-64B-1t1c-ethip4-ip4base-eth-2vhostvr256-1vm-cfsrr1-pdrdisc +| | [Documentation] +| | ... | [Cfg] DUT runs IPv4 routing 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] | 64B | 1T1C | STHREAD | PDRDISC | SKIP_PATCH +| | ... +| | [Template] | Discover NDR or PDR for IPv4 forwarding with VM +| | wt=1 | rxq=1 | framesize=${64} | min_rate=${10000} | search_type=PDR + +| tc03-1518B-1t1c--ethip4-ip4base-eth-2vhostvr256-1vm-cfsrr1-ndrdisc +| | [Documentation] +| | ... | [Cfg] DUT runs IPv4 routing config with 1 thread, 1 phy core,\ +| | ... | 1 receive queue per NIC port. +| | ... | [Ver] Find NDR for 1518 Byte frames using binary search start at 10GE\ +| | ... | linerate, step 10kpps. +| | ... +| | [Tags] | 1518B | 1T1C | STHREAD | NDRDISC +| | ... +| | [Template] | Discover NDR or PDR for IPv4 forwarding with VM +| | wt=1 | rxq=1 | framesize=${1518} | min_rate=${10000} | search_type=NDR + +| tc04-1518B-1t1c-ethip4-ip4base-eth-2vhostvr256-1vm-cfsrr1-pdrdisc +| | [Documentation] +| | ... | [Cfg] DUT runs IPv4 routing config with 1 thread, 1 phy core,\ +| | ... | 1 receive queue per NIC port. +| | ... | [Ver] Find PDR for 1518 Byte frames using binary search start at 10GE\ +| | ... | linerate, step 10kpps, LT=0.5%. +| | ... +| | [Tags] | 1518B | 1T1C | STHREAD | PDRDISC | SKIP_PATCH +| | ... +| | [Template] | Discover NDR or PDR for IPv4 forwarding with VM +| | wt=1 | rxq=1 | framesize=${1518} | min_rate=${10000} | search_type=PDR + +| tc05-IMIX-1t1c-ethip4-ip4base-eth-2vhostvr256-1vm-cfsrr1-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 framesize using binary search start at\ +| | ... | 10GE linerate, step 10kpps. +| | ... | IMIX_v4_1 = (28x64B; 16x570B; 4x1518B) +| | ... +| | [Tags] | IMIX | 1T1C | STHREAD | NDRDISC +| | ... +| | [Template] | Discover NDR or PDR for IPv4 forwarding with VM +| | wt=1 | rxq=1 | framesize=IMIX_v4_1 | min_rate=${10000} | search_type=NDR + +| tc06-IMIX-1t1c-ethip4-ip4base-eth-2vhostvr256-1vm-cfsrr1-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 framesize using binary search start at\ +| | ... | 10GE linerate, step 10kpps, LT=0.5%. +| | ... | IMIX_v4_1 = (28x64B; 16x570B; 4x1518B) +| | ... +| | [Tags] | IMIX | 1T1C | STHREAD | PDRDISC | SKIP_PATCH +| | ... +| | [Template] | Discover NDR or PDR for IPv4 forwarding with VM +| | wt=1 | rxq=1 | framesize=IMIX_v4_1 | min_rate=${10000} | search_type=PDR + +| tc07-64B-2t2c-ethip4-ip4base-eth-2vhostvr256-1vm-cfsrr1-ndrdisc +| | [Documentation] +| | ... | [Cfg] DUT runs IPv4 routing config with 2 threads, 2 phy cores,\ +| | ... | 1 receive queue per NIC port. +| | ... | [Ver] Find NDR for 64 Byte frames using binary search start at 10GE\ +| | ... | linerate, step 10kpps. +| | ... +| | [Tags] | 64B | 2T2C | STHREAD | NDRDISC +| | ... +| | [Template] | Discover NDR or PDR for IPv4 forwarding with VM +| | wt=2 | rxq=1 | framesize=${64} | min_rate=${10000} | search_type=NDR + +| tc08-64B-2t2c-ethip4-ip4base-eth-2vhostvr256-1vm-cfsrr1-pdrdisc +| | [Documentation] +| | ... | [Cfg] DUT runs IPv4 routing config with 2 threads, 2 phy cores,\ +| | ... | 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] | 64B | 2T2C | STHREAD | PDRDISC | SKIP_PATCH +| | ... +| | [Template] | Discover NDR or PDR for IPv4 forwarding with VM +| | wt=2 | rxq=1 | framesize=${64} | min_rate=${10000} | search_type=PDR + +| tc09-1518B-2t2c-ethip4-ip4base-eth-2vhostvr256-1vm-cfsrr1-ndrdisc +| | [Documentation] +| | ... | [Cfg] DUT runs IPv4 routing config with 2 threads, 2 phy cores,\ +| | ... | 1 receive queue per NIC port. +| | ... | [Ver] Find NDR for 1518 Byte frames using binary search start at 10GE\ +| | ... | linerate, step 10kpps. +| | ... +| | [Tags] | 1518B | 2T2C | STHREAD | NDRDISC | SKIP_PATCH +| | ... +| | [Template] | Discover NDR or PDR for IPv4 forwarding with VM +| | wt=2 | rxq=1 | framesize=${1518} | min_rate=${10000} | search_type=NDR + +| tc10-1518B-2t2c-ethip4-ip4base-eth-2vhostvr256-1vm-cfsrr1-pdrdisc +| | [Documentation] +| | ... | [Cfg] DUT runs IPv4 routing config with 2 threads, 2 phy cores,\ +| | ... | 1 receive queue per NIC port. +| | ... | [Ver] Find PDR for 1518 Byte frames using binary search start at 10GE\ +| | ... | linerate, step 10kpps, LT=0.5%. +| | ... +| | [Tags] | 1518B | 2T2C | STHREAD | PDRDISC | SKIP_PATCH +| | ... +| | [Template] | Discover NDR or PDR for IPv4 forwarding with VM +| | wt=2 | rxq=1 | framesize=${1518} | min_rate=${10000} | search_type=PDR + +| tc11-IMIX-2t2c-ethip4-ip4base-eth-2vhostvr256-1vm-cfsrr1-ndrdisc +| | [Documentation] +| | ... | [Cfg] DUT runs IPv4 routing config with 2 threads, 2 phy cores,\ +| | ... | 1 receive queue per NIC port. +| | ... | [Ver] Find NDR for IMIX_v4_1 framesize using binary search start at\ +| | ... | 10GE linerate, step 10kpps. +| | ... | IMIX_v4_1 = (28x64B; 16x570B; 4x1518B) +| | ... +| | [Tags] | IMIX | 2T2C | STHREAD | NDRDISC | SKIP_PATCH +| | ... +| | [Template] | Discover NDR or PDR for IPv4 forwarding with VM +| | wt=2 | rxq=1 | framesize=IMIX_v4_1 | min_rate=${10000} | search_type=NDR + +| tc12-IMIX-2t2c-ethip4-ip4base-eth-2vhostvr256-1vm-cfsrr1-pdrdisc +| | [Documentation] +| | ... | [Cfg] DUT runs IPv4 routing config with 2 threads, 2 phy cores,\ +| | ... | 1 receive queue per NIC port. +| | ... | [Ver] Find PDR for IMIX_v4_1 framesize using binary search start at\ +| | ... | 10GE linerate, step 10kpps. +| | ... | IMIX_v4_1 = (28x64B; 16x570B; 4x1518B) +| | ... +| | [Tags] | IMIX | 2T2C | STHREAD | PDRDISC | SKIP_PATCH +| | ... +| | [Template] | Discover NDR or PDR for IPv4 forwarding with VM +| | wt=2 | rxq=1 | framesize=IMIX_v4_1 | min_rate=${10000} | search_type=PDR + +| tc13-64B-4t4c-ethip4-ip4base-eth-2vhostvr256-1vm-cfsrr1-ndrdisc +| | [Documentation] +| | ... | [Cfg] DUT runs IPv4 routing config with 4 threads, 4 phy cores,\ +| | ... | 2 receive queues per NIC port. +| | ... | [Ver] Find NDR for 64 Byte frames using binary search start at 10GE\ +| | ... | linerate, step 10kpps. +| | ... +| | [Tags] | 64B | 4T4C | STHREAD | NDRDISC +| | ... +| | [Template] | Discover NDR or PDR for IPv4 forwarding with VM +| | wt=4 | rxq=2 | framesize=${64} | min_rate=${10000} | search_type=NDR + +| tc14-64B-4t4c-ethip4-ip4base-eth-2vhostvr256-1vm-cfsrr1-pdrdisc +| | [Documentation] +| | ... | [Cfg] DUT runs IPv4 routing config with 4 threads, 4 phy cores,\ +| | ... | 2 receive queues per NIC port. +| | ... | [Ver] Find PDR for 64 Byte frames using binary search start at 10GE\ +| | ... | linerate, step 10kpps, LT=0.5%. +| | ... +| | [Tags] | 64B | 4T4C | STHREAD | PDRDISC | SKIP_PATCH +| | ... +| | [Template] | Discover NDR or PDR for IPv4 forwarding with VM +| | wt=4 | rxq=2 | framesize=${64} | min_rate=${10000} | search_type=PDR + +| tc15-1518B-4t4c-ethip4-ip4base-eth-2vhostvr256-1vm-cfsrr1-ndrdisc +| | [Documentation] +| | ... | [Cfg] DUT runs IPv4 routing config with 4 threads, 4 phy cores,\ +| | ... | 2 receive queues per NIC port. +| | ... | [Ver] Find NDR for 1518 Byte frames using binary search start at 10GE\ +| | ... | linerate, step 10kpps. +| | ... +| | [Tags] | 1518B | 4T4C | STHREAD | NDRDISC | SKIP_PATCH +| | ... +| | [Template] | Discover NDR or PDR for IPv4 forwarding with VM +| | wt=4 | rxq=2 | framesize=${1518} | min_rate=${10000} | search_type=NDR + +| tc16-1518B-4t4c-ethip4-ip4base-eth-2vhostvr256-1vm-cfsrr1-pdrdisc +| | [Documentation] +| | ... | [Cfg] DUT runs IPv4 routing config with 4 threads, 4 phy cores,\ +| | ... | 2 receive queues per NIC port. +| | ... | [Ver] Find PDR for 1518 Byte frames using binary search start at 10GE\ +| | ... | linerate, step 10kpps, LT=0.5%. +| | ... +| | [Tags] | 1518B | 4T4C | STHREAD | PDRDISC | SKIP_PATCH +| | ... +| | [Template] | Discover NDR or PDR for IPv4 forwarding with VM +| | wt=4 | rxq=2 | framesize=${1518} | min_rate=${10000} | search_type=PDR + +| tc17-IMIX-4t4c-ethip4-ip4base-eth-2vhostvr256-1vm-cfsrr1-ndrdisc +| | [Documentation] +| | ... | [Cfg] DUT runs IPv4 routing config with 4 threads, 4 phy cores,\ +| | ... | 2 receive queues per NIC port. +| | ... | [Ver] Find NDR for IMIX_v4_1 framesize using binary search start at\ +| | ... | 10GE linerate, step 10kpps. +| | ... | IMIX_v4_1 = (28x64B; 16x570B; 4x1518B) +| | ... +| | [Tags] | IMIX | 4T4C | STHREAD | NDRDISC | SKIP_PATCH +| | ... +| | [Template] | Discover NDR or PDR for IPv4 forwarding with VM +| | wt=4 | rxq=2 | framesize=IMIX_v4_1 | min_rate=${10000} | search_type=NDR + +| tc18-IMIX-4t4c-ethip4-ip4base-eth-2vhostvr256-1vm-cfsrr1-pdrdisc +| | [Documentation] +| | ... | [Cfg] DUT runs IPv4 routing config with 4 threads, 4 phy cores,\ +| | ... | 2 receive queues per NIC port. +| | ... | [Ver] Find PDR for IMIX_v4_1 framesize using binary search start at\ +| | ... | 10GE linerate, step 10kpps, LT=0.5%. +| | ... | IMIX_v4_1 = (28x64B; 16x570B; 4x1518B) +| | ... +| | [Tags] | IMIX | 4T4C | STHREAD | PDRDISC | SKIP_PATCH +| | ... +| | [Template] | Discover NDR or PDR for IPv4 forwarding with VM +| | wt=4 | rxq=2 | framesize=IMIX_v4_1 | min_rate=${10000} | search_type=PDR diff --git a/tests/vpp/perf/vm_vhost/10ge2p1x520-ethip4-ip4base-eth-2vhostvr256-1vm-ndrpdrdisc.robot b/tests/vpp/perf/vm_vhost/10ge2p1x520-ethip4-ip4base-eth-2vhostvr256-1vm-ndrpdrdisc.robot new file mode 100644 index 0000000000..63196637ab --- /dev/null +++ b/tests/vpp/perf/vm_vhost/10ge2p1x520-ethip4-ip4base-eth-2vhostvr256-1vm-ndrpdrdisc.robot @@ -0,0 +1,348 @@ +# Copyright (c) 2017 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/performance/performance_setup.robot +| Library | resources.libraries.python.QemuUtils +| ... +| Force Tags | 3_NODE_SINGLE_LINK_TOPO | PERFTEST | HW_ENV | NDRPDRDISC +| ... | NIC_Intel-X520-DA2 | DOT1Q | L2BDMACLRN | BASE | VHOST | VM +| ... +| Suite Setup | Set up 3-node performance topology with DUT's NIC model +| ... | L3 | Intel-X520-DA2 +| Suite Teardown | Tear down 3-node performance topology +| ... +| Test Setup | Set up performance test +| Test Teardown | Tear down performance test with vhost and VM with dpdk-testpmd +| ... | ${min_rate}pps | ${framesize} | ${traffic_profile} +| ... | dut1_node=${dut1} | dut1_vm_refs=${dut1_vm_refs} +| ... | dut2_node=${dut2} | dut2_vm_refs=${dut2_vm_refs} +| ... +| Documentation | *RFC2544: Packet throughput IP4 test cases with vhost* +| ... +| ... | *[Top] Network Topologies:* TG-DUT1-DUT2-TG 3-node circular topology +| ... | with single links between nodes. +| ... | *[Enc] Packet Encapsulations:* Eth-IPv4 for IPv4 routing. +| ... | *[Cfg] DUT configuration:* DUT1 and DUT2 are configured with IPv4 +| ... | routing and two static IPv4 /24 route entries. Qemu Guest is connected +| ... | to VPP via vhost-user interfaces. Guest is running DPDK testpmd +| ... | interconnecting vhost-user interfaces using 5 cores pinned to cpus 5-9 +| ... | and 2048M memory. Testpmd is using socket-mem=1024M (512x2M hugepages), +| ... | 5 cores (1 main core and 4 cores dedicated for io), forwarding mode is +| ... | set to mac, rxd/txd=256, burst=64. DUT1, DUT2 are tested with 2p10GE +| ... | NIC X520 Niantic by Intel. +| ... | *[Ver] TG verification:* TG finds and reports throughput NDR (Non Drop +| ... | Rate) with zero packet loss tolerance or 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 either binary search or linear search +| ... | algorithms with configured starting rate and final step that determines +| ... | throughput measurement resolution. Test packets are generated by TG on +| ... | links to DUTs. TG traffic profile contains two L3 flow-groups +| ... | (flow-group per direction, 253 flows per flow-group) with all packets +| ... | containing Ethernet header, IPv4 header with IP protocol=61 and static +| ... | payload. MAC addresses are matching MAC addresses of the TG node +| ... | interfaces. +| ... | *[Ref] Applicable standard specifications:* RFC2544. + +*** Variables *** +| ${avg_imix_framesize}= | ${357.833} +# X520-DA2 bandwidth limit +| ${s_limit} | ${10000000000} +# Socket names +| ${sock1}= | /tmp/sock-1-1 +| ${sock2}= | /tmp/sock-1-2 +# FIB tables +| ${fib_table_1}= | 100 +| ${fib_table_2}= | 101 +# Traffic profile: +| ${traffic_profile} | trex-sl-3n-ethip4-ip4src253 + +*** Keywords *** +| Discover NDR or PDR for IPv4 forwarding with VM +| | [Arguments] | ${wt} | ${rxq} | ${framesize} | ${min_rate} | ${search_type} +| | ... +| | [Documentation] +| | ... | [Cfg] DUT runs IP4 routing config with required number of threads,\ +| | ... | phy cores and receive queues per NIC port. +| | ... | [Ver] Find NDR or PDR for defined frame size using binary search\ +| | ... | start at 10GE linerate with specified step. +| | ... +| | ... | *Arguments:* +| | ... | - wt - Number of worker threads to be used. Type: integer +| | ... | - rxq - Number of Rx queues to be used. Type: integer +| | ... | - framesize - L2 Frame Size [B]. Type: integer +| | ... | - min_rate - Lower limit of search [pps]. Type: float +| | ... | - search_type - Type of the search - non drop rate (NDR) or partial +| | ... | drop rare (PDR). Type: string +| | ... +| | Set Test Variable | ${perf_qemu_qsz} | 256 +| | Set Test Variable | ${framesize} +| | Set Test Variable | ${min_rate} +| | ${get_framesize}= | Set Variable If +| | ... | "${framesize}" == "IMIX_v4_1" | ${avg_imix_framesize} +| | ... | ${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} +| | ${dut1_vm_refs}= | Create Dictionary +| | ${dut2_vm_refs}= | Create Dictionary +| | Set Test Variable | ${dut1_vm_refs} +| | Set Test Variable | ${dut2_vm_refs} +| | 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 +| | When Initialize IPv4 forwarding with vhost in 3-node circular topology +| | ... | ${sock1} | ${sock2} +| | ${vm1}= | And Configure guest VM with dpdk-testpmd-mac connected via vhost-user +| | ... | ${dut1} | ${sock1} | ${sock2} | DUT1_VM1 | ${dut1_vif1_mac} +| | ... | ${dut1_vif2_mac} +| | Set To Dictionary | ${dut1_vm_refs} | DUT1_VM1 | ${vm1} +| | ${vm2}= | And Configure guest VM with dpdk-testpmd-mac connected via vhost-user +| | ... | ${dut2} | ${sock1} | ${sock2} | DUT2_VM1 | ${dut2_vif1_mac} +| | ... | ${dut2_vif2_mac} +| | Set To Dictionary | ${dut2_vm_refs} | DUT2_VM1 | ${vm2} +| | 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-eth-2vhostvr256-1vm-ndrdisc +| | [Documentation] +| | ... | [Cfg] DUT runs IP4 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 10kpps. +| | ... +| | [Tags] | 64B | 1T1C | STHREAD | NDRDISC +| | ... +| | [Template] | Discover NDR or PDR for IPv4 forwarding with VM +| | wt=1 | rxq=1 | framesize=${64} | min_rate=${10000} | search_type=NDR + +| tc02-64B-1t1c-ethip4-ip4base-eth-2vhostvr256-1vm-pdrdisc +| | [Documentation] +| | ... | [Cfg] DUT runs IP4 routing 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] | 64B | 1T1C | STHREAD | PDRDISC | SKIP_PATCH +| | ... +| | [Template] | Discover NDR or PDR for IPv4 forwarding with VM +| | wt=1 | rxq=1 | framesize=${64} | min_rate=${10000} | search_type=PDR + +| tc03-1518B-1t1c-ethip4-ip4base-eth-2vhostvr256-1vm-ndrdisc +| | [Documentation] +| | ... | [Cfg] DUT runs IP4 routing config with 1 thread, 1 phy core,\ +| | ... | 1 receive queue per NIC port. +| | ... | [Ver] Find NDR for 1518 Byte frames using binary search start at 10GE\ +| | ... | linerate, step 10kpps. +| | ... +| | [Tags] | 1518B | 1T1C | STHREAD | NDRDISC +| | ... +| | [Template] | Discover NDR or PDR for IPv4 forwarding with VM +| | wt=1 | rxq=1 | framesize=${1518} | min_rate=${10000} | search_type=NDR + +| tc04-1518B-1t1c-ethip4-ip4base-eth-2vhostvr256-1vm-pdrdisc +| | [Documentation] +| | ... | [Cfg] DUT runs IP4 routing config with 1 thread, 1 phy core,\ +| | ... | 1 receive queue per NIC port. +| | ... | [Ver] Find PDR for 1518 Byte frames using binary search start at 10GE\ +| | ... | linerate, step 10kpps, LT=0.5%. +| | ... +| | [Tags] | 1518B | 1T1C | STHREAD | PDRDISC | SKIP_PATCH +| | ... +| | [Template] | Discover NDR or PDR for IPv4 forwarding with VM +| | wt=1 | rxq=1 | framesize=${1518} | min_rate=${10000} | search_type=PDR + +| tc05-IMIX-1t1c-ethip4-ip4base-eth-2vhostvr256-1vm-ndrdisc +| | [Documentation] +| | ... | [Cfg] DUT runs IP4 routing config with 1 thread, 1 phy core,\ +| | ... | 1 receive queue per NIC port. +| | ... | [Ver] Find NDR for IMIX_v4_1 framesize using binary search start at\ +| | ... | 10GE linerate, step 10kpps. +| | ... | IMIX_v4_1 = (28x64B; 16x570B; 4x1518B) +| | ... +| | [Tags] | IMIX | 1T1C | STHREAD | NDRDISC +| | ... +| | [Template] | Discover NDR or PDR for IPv4 forwarding with VM +| | wt=1 | rxq=1 | framesize=IMIX_v4_1 | min_rate=${10000} | search_type=NDR + +| tc06-IMIX-1t1c-ethip4-ip4base-eth-2vhostvr256-1vm-pdrdisc +| | [Documentation] +| | ... | [Cfg] DUT runs IP4 routing config with 1 thread, 1 phy core,\ +| | ... | 1 receive queue per NIC port. +| | ... | [Ver] Find PDR for IMIX_v4_1 framesize using binary search start at\ +| | ... | 10GE linerate, step 10kpps, LT=0.5%. +| | ... | IMIX_v4_1 = (28x64B; 16x570B; 4x1518B) +| | ... +| | [Tags] | IMIX | 1T1C | STHREAD | PDRDISC | SKIP_PATCH +| | ... +| | [Template] | Discover NDR or PDR for IPv4 forwarding with VM +| | wt=1 | rxq=1 | framesize=IMIX_v4_1 | min_rate=${10000} | search_type=PDR + +| tc07-64B-2t2c-ethip4-ip4base-eth-2vhostvr256-1vm-ndrdisc +| | [Documentation] +| | ... | [Cfg] DUT runs IP4 routing config with 2 threads, 2 phy cores,\ +| | ... | 1 receive queue per NIC port. +| | ... | [Ver] Find NDR for 64 Byte frames using binary search start at 10GE\ +| | ... | linerate, step 10kpps. +| | ... +| | [Tags] | 64B | 2T2C | STHREAD | NDRDISC +| | ... +| | [Template] | Discover NDR or PDR for IPv4 forwarding with VM +| | wt=2 | rxq=1 | framesize=${64} | min_rate=${10000} | search_type=NDR + +| tc08-64B-2t2c-ethip4-ip4base-eth-2vhostvr256-1vm-pdrdisc +| | [Documentation] +| | ... | [Cfg] DUT runs IP4 routing config with 2 threads, 2 phy cores,\ +| | ... | 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] | 64B | 2T2C | STHREAD | PDRDISC | SKIP_PATCH +| | ... +| | [Template] | Discover NDR or PDR for IPv4 forwarding with VM +| | wt=2 | rxq=1 | framesize=${64} | min_rate=${10000} | search_type=PDR + +| tc09-1518B-2t2c-ethip4-ip4base-eth-2vhostvr256-1vm-ndrdisc +| | [Documentation] +| | ... | [Cfg] DUT runs IP4 routing config with 2 threads, 2 phy cores,\ +| | ... | 1 receive queue per NIC port. +| | ... | [Ver] Find NDR for 1518 Byte frames using binary search start at 10GE\ +| | ... | linerate, step 10kpps. +| | ... +| | [Tags] | 1518B | 2T2C | STHREAD | NDRDISC | SKIP_PATCH +| | ... +| | [Template] | Discover NDR or PDR for IPv4 forwarding with VM +| | wt=2 | rxq=1 | framesize=${1518} | min_rate=${10000} | search_type=NDR + +| tc10-1518B-2t2c-ethip4-ip4base-eth-2vhostvr256-1vm-pdrdisc +| | [Documentation] +| | ... | [Cfg] DUT runs IP4 routing config with 2 threads, 2 phy cores,\ +| | ... | 1 receive queue per NIC port. +| | ... | [Ver] Find PDR for 1518 Byte frames using binary search start at 10GE\ +| | ... | linerate, step 10kpps, LT=0.5%. +| | ... +| | [Tags] | 1518B | 2T2C | STHREAD | PDRDISC | SKIP_PATCH +| | ... +| | [Template] | Discover NDR or PDR for IPv4 forwarding with VM +| | wt=2 | rxq=1 | framesize=${1518} | min_rate=${10000} | search_type=PDR + +| tc11-IMIX-2t2c-ethip4-ip4base-eth-2vhostvr256-1vm-ndrdisc +| | [Documentation] +| | ... | [Cfg] DUT runs IP4 routing config with 2 threads, 2 phy cores,\ +| | ... | 1 receive queue per NIC port. +| | ... | [Ver] Find NDR for IMIX_v4_1 framesize using binary search start at\ +| | ... | 10GE linerate, step 10kpps. +| | ... | IMIX_v4_1 = (28x64B; 16x570B; 4x1518B) +| | ... +| | [Tags] | IMIX | 2T2C | STHREAD | NDRDISC | SKIP_PATCH +| | ... +| | [Template] | Discover NDR or PDR for IPv4 forwarding with VM +| | wt=2 | rxq=1 | framesize=IMIX_v4_1 | min_rate=${10000} | search_type=NDR + +| tc12-IMIX-2t2c-ethip4-ip4base-eth-2vhostvr256-1vm-pdrdisc +| | [Documentation] +| | ... | [Cfg] DUT runs IP4 routing config with 2 threads, 2 phy cores,\ +| | ... | 1 receive queue per NIC port. +| | ... | [Ver] Find PDR for IMIX_v4_1 framesize using binary search start at\ +| | ... | 10GE linerate, step 10kpps. +| | ... | IMIX_v4_1 = (28x64B; 16x570B; 4x1518B) +| | ... +| | [Tags] | IMIX | 2T2C | STHREAD | PDRDISC | SKIP_PATCH +| | ... +| | [Template] | Discover NDR or PDR for IPv4 forwarding with VM +| | wt=2 | rxq=1 | framesize=IMIX_v4_1 | min_rate=${10000} | search_type=PDR + +| tc13-64B-4t4c-ethip4-ip4base-eth-2vhostvr256-1vm-ndrdisc +| | [Documentation] +| | ... | [Cfg] DUT runs IP4 routing config with 4 threads, 4 phy cores,\ +| | ... | 2 receive queues per NIC port. +| | ... | [Ver] Find NDR for 64 Byte frames using binary search start at 10GE\ +| | ... | linerate, step 10kpps. +| | ... +| | [Tags] | 64B | 4T4C | STHREAD | NDRDISC +| | ... +| | [Template] | Discover NDR or PDR for IPv4 forwarding with VM +| | wt=4 | rxq=2 | framesize=${64} | min_rate=${10000} | search_type=NDR + +| tc14-64B-4t4c-ethip4-ip4base-eth-2vhostvr256-1vm-pdrdisc +| | [Documentation] +| | ... | [Cfg] DUT runs IP4 routing config with 4 threads, 4 phy cores,\ +| | ... | 2 receive queues per NIC port. +| | ... | [Ver] Find PDR for 64 Byte frames using binary search start at 10GE\ +| | ... | linerate, step 10kpps, LT=0.5%. +| | ... +| | [Tags] | 64B | 4T4C | STHREAD | PDRDISC | SKIP_PATCH +| | ... +| | [Template] | Discover NDR or PDR for IPv4 forwarding with VM +| | wt=4 | rxq=2 | framesize=${64} | min_rate=${10000} | search_type=PDR + +| tc15-1518B-4t4c-ethip4-ip4base-eth-2vhostvr256-1vm-ndrdisc +| | [Documentation] +| | ... | [Cfg] DUT runs IP4 routing config with 4 threads, 4 phy cores,\ +| | ... | 2 receive queues per NIC port. +| | ... | [Ver] Find NDR for 1518 Byte frames using binary search start at 10GE\ +| | ... | linerate, step 10kpps. +| | ... +| | [Tags] | 1518B | 4T4C | STHREAD | NDRDISC | SKIP_PATCH +| | ... +| | [Template] | Discover NDR or PDR for IPv4 forwarding with VM +| | wt=4 | rxq=2 | framesize=${1518} | min_rate=${10000} | search_type=NDR + +| tc16-1518B-4t4c-ethip4-ip4base-eth-2vhostvr256-1vm-pdrdisc +| | [Documentation] +| | ... | [Cfg] DUT runs IP4 routing config with 4 threads, 4 phy cores,\ +| | ... | 2 receive queues per NIC port. +| | ... | [Ver] Find PDR for 1518 Byte frames using binary search start at 10GE\ +| | ... | linerate, step 10kpps, LT=0.5%. +| | ... +| | [Tags] | 1518B | 4T4C | STHREAD | PDRDISC | SKIP_PATCH +| | ... +| | [Template] | Discover NDR or PDR for IPv4 forwarding with VM +| | wt=4 | rxq=2 | framesize=${1518} | min_rate=${10000} | search_type=PDR + +| tc17-IMIX-4t4c-ethip4-ip4base-eth-2vhostvr256-1vm-ndrdisc +| | [Documentation] +| | ... | [Cfg] DUT runs IP4 routing config with 4 threads, 4 phy cores,\ +| | ... | 2 receive queues per NIC port. +| | ... | [Ver] Find NDR for IMIX_v4_1 framesize using binary search start at\ +| | ... | 10GE linerate, step 10kpps. +| | ... | IMIX_v4_1 = (28x64B; 16x570B; 4x1518B) +| | ... +| | [Tags] | IMIX | 4T4C | STHREAD | NDRDISC | SKIP_PATCH +| | ... +| | [Template] | Discover NDR or PDR for IPv4 forwarding with VM +| | wt=4 | rxq=2 | framesize=IMIX_v4_1 | min_rate=${10000} | search_type=NDR + +| tc18-IMIX-4t4c-ethip4-ip4base-eth-2vhostvr256-1vm-pdrdisc +| | [Documentation] +| | ... | [Cfg] DUT runs IP4 routing config with 4 threads, 4 phy cores,\ +| | ... | 2 receive queues per NIC port. +| | ... | [Ver] Find PDR for IMIX_v4_1 framesize using binary search start at\ +| | ... | 10GE linerate, step 10kpps, LT=0.5%. +| | ... | IMIX_v4_1 = (28x64B; 16x570B; 4x1518B) +| | ... +| | [Tags] | IMIX | 4T4C | STHREAD | PDRDISC | SKIP_PATCH +| | ... +| | [Template] | Discover NDR or PDR for IPv4 forwarding with VM +| | wt=4 | rxq=2 | framesize=IMIX_v4_1 | min_rate=${10000} | search_type=PDR |