diff options
127 files changed, 10062 insertions, 11852 deletions
diff --git a/resources/libraries/robot/performance/performance_configuration.robot b/resources/libraries/robot/performance/performance_configuration.robot index cd6f4028a4..f5ca1e7705 100644 --- a/resources/libraries/robot/performance/performance_configuration.robot +++ b/resources/libraries/robot/performance/performance_configuration.robot @@ -1895,6 +1895,7 @@ | | ... | Type: integer | | ... | - jumbo_frames - Set True if jumbo frames are used in the test. | | ... | Type: bool +| | ... | - use_tuned_cfs - FIXME. | | ... | | ... | *Example:* | | ... @@ -1997,6 +1998,7 @@ | | ... | - count - number of cpus which will be allocated for qemu. Type: int | | ... | - jumbo_frames - Set True if jumbo frames are used in the test. | | ... | Type: bool +| | ... | - use_tuned_cfs - FIXME. | | ... | | ... | *Example:* | | ... @@ -2061,6 +2063,7 @@ | | ... | Type: integer | | ... | - jumbo_frames - Set True if jumbo frames are used in the test. | | ... | Type: bool +| | ... | - use_tuned_cfs - FIXME. | | ... | | ... | *Example:* | | ... @@ -2175,6 +2178,7 @@ | | ... | - count - number of cpus which will be allocated for qemu. Type: int | | ... | - jumbo_frames - Set True if jumbo frames are used in the test. | | ... | Type: bool +| | ... | - use_tuned_cfs - FIXME. | | ... | | ... | *Example:* | | ... diff --git a/tests/vpp/perf/vm_vhost/10ge2p1x520-1lbdpdk-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-mrr.robot b/tests/vpp/perf/vm_vhost/10ge2p1x520-1lbdpdk-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-mrr.robot index 053db0e745..1d656d6de3 100644 --- a/tests/vpp/perf/vm_vhost/10ge2p1x520-1lbdpdk-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-mrr.robot +++ b/tests/vpp/perf/vm_vhost/10ge2p1x520-1lbdpdk-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-mrr.robot @@ -28,7 +28,7 @@ | ... | dut1_node=${dut1} | dut1_vm_refs=${dut1_vm_refs} | ... | dut2_node=${dut2} | dut2_vm_refs=${dut2_vm_refs} | ... -| Test Template | Local template +| Test Template | Local Template | ... | Documentation | *Raw results L2BD test cases with vhost and dpdk link bonding* | ... @@ -61,7 +61,7 @@ | ${perf_qemu_qsz}= | 1024 | ${subid}= | 10 | ${tag_rewrite}= | pop-1 -| ${vlan_overhead}= | ${4} +| ${overhead}= | ${4} # Socket names | ${bd_id1}= | 1 | ${bd_id2}= | 2 @@ -73,7 +73,7 @@ | ${traffic_profile}= | trex-sl-3n-ethip4-ip4src254 *** Keywords *** -| Local template +| Local Template | | [Documentation] | | ... | [Cfg] DUT runs L2BD switching config. | | ... | Each DUT uses ${phy_cores} physical core(s) for worker threads. @@ -88,23 +88,17 @@ | | ... | | [Arguments] | ${framesize} | ${phy_cores} | ${rxq}=${None} | | ... -| | Set Test Variable | ${framesize} -| | ${get_framesize}= | Get Frame Size | ${framesize} -| | ${max_rate}= | Calculate pps | ${s_limit} -| | ... | ${get_framesize + ${vlan_overhead}} | | ${dut1_vm_refs}= | Create Dictionary | | ${dut2_vm_refs}= | Create Dictionary | | Set Test Variable | ${dut1_vm_refs} | | Set Test Variable | ${dut2_vm_refs} -| | ${jumbo_frames}= | Set Variable If -| | ... | ${get_framesize + ${vlan_overhead}} < ${1522} | ${False} | ${True} | | ... | | Given Add worker threads and rxqueues to all DUTs | ${phy_cores} | ${rxq} | | And Add PCI devices to all DUTs | | And Add VLAN Strip Offload switch off between DUTs in 3-node single link topology | | And Add DPDK bonded Ethernet interfaces to DUTs in 3-node single link topology -| | And Run Keyword If | ${get_framesize + ${vlan_overhead}} < ${1522} -| | ... | Add no multi seg to all DUTs +| | ${max_rate} | ${jumbo} = | Get Max Rate And Jumbo And Handle Multi Seg +| | ... | ${s_limit} | ${framesize} | overhead=${overhead} | | And Apply startup configuration on all VPP DUTs | | And Add DPDK bonded ethernet interfaces to topology file in 3-node single link topology | | When Initialize L2 bridge domains with Vhost-User and VLAN with DPDK link bonding in a 3-node circular topology @@ -112,60 +106,60 @@ | | ... | ${tag_rewrite} | | ${vm1}= | And Configure guest VM with dpdk-testpmd connected via vhost-user | | ... | ${dut1} | ${sock1} | ${sock2} | DUT1_VM1 -| | ... | jumbo_frames=${jumbo_frames} +| | ... | jumbo_frames=${jumbo} | | And 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 -| | ... | jumbo_frames=${jumbo_frames} +| | ... | jumbo_frames=${jumbo} | | And Set To Dictionary | ${dut2_vm_refs} | DUT2_VM1 | ${vm2} | | Then Traffic should pass with maximum rate | | ... | ${max_rate}pps | ${framesize} | ${traffic_profile} *** Test Cases *** -| tc01-64B-1t1c-1lbdpdk-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-mrr +| tc01-64B-1c-1lbdpdk-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-mrr | | [Tags] | 64B | 1C | | framesize=${64} | phy_cores=${1} -| tc02-1518B-1t1c-1lbdpdk-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-mrr -| | [Tags] | 1518B | 1C -| | framesize=${1518} | phy_cores=${1} - -| tc03-9000B-1t1c-1lbdpdk-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-mrr -| | [Tags] | 9000B | 1C -| | framesize=${9000} | phy_cores=${1} - -| tc04-IMIX-1t1c-1lbdpdk-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-mrr -| | [Tags] | IMIX | 1C -| | framesize=IMIX_v4_1 | phy_cores=${1} - -| tc05-64B-2t2c-1lbdpdk-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-mrr +| tc02-64B-2c-1lbdpdk-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-mrr | | [Tags] | 64B | 2C | | framesize=${64} | phy_cores=${2} -| tc06-1518B-2t2c-1lbdpdk-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-mrr -| | [Tags] | 1518B | 2C -| | framesize=${1518} | phy_cores=${2} - -| tc07-9000B-2t2c-1lbdpdk-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-mrr -| | [Tags] | 9000B | 2C -| | framesize=${9000} | phy_cores=${2} - -| tc08-IMIX-2t2c-1lbdpdk-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-mrr -| | [Tags] | IMIX | 2C -| | framesize=IMIX_v4_1 | phy_cores=${2} - -| tc09-64B-4t4c-1lbdpdk-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-mrr +| tc03-64B-4c-1lbdpdk-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-mrr | | [Tags] | 64B | 4C | | framesize=${64} | phy_cores=${4} -| tc10-1518B-4t4c-1lbdpdk-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-mrr +| tc04-1518B-1c-1lbdpdk-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-mrr +| | [Tags] | 1518B | 1C +| | framesize=${1518} | phy_cores=${1} + +| tc05-1518B-2c-1lbdpdk-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-mrr +| | [Tags] | 1518B | 2C +| | framesize=${1518} | phy_cores=${2} + +| tc06-1518B-4c-1lbdpdk-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-mrr | | [Tags] | 1518B | 4C | | framesize=${1518} | phy_cores=${4} -| tc11-9000B-4t4c-1lbdpdk-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-mrr +| tc07-9000B-1c-1lbdpdk-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-mrr +| | [Tags] | 9000B | 1C +| | framesize=${9000} | phy_cores=${1} + +| tc08-9000B-2c-1lbdpdk-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-mrr +| | [Tags] | 9000B | 2C +| | framesize=${9000} | phy_cores=${2} + +| tc09-9000B-4c-1lbdpdk-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-mrr | | [Tags] | 9000B | 4C | | framesize=${9000} | phy_cores=${4} -| tc12-IMIX-4t4c-1lbdpdk-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-mrr +| tc10-IMIX-1c-1lbdpdk-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-mrr +| | [Tags] | IMIX | 1C +| | framesize=IMIX_v4_1 | phy_cores=${1} + +| tc11-IMIX-2c-1lbdpdk-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-mrr +| | [Tags] | IMIX | 2C +| | framesize=IMIX_v4_1 | phy_cores=${2} + +| tc12-IMIX-4c-1lbdpdk-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-mrr | | [Tags] | IMIX | 4C | | framesize=IMIX_v4_1 | phy_cores=${4} diff --git a/tests/vpp/perf/vm_vhost/10ge2p1x520-1lbdpdk-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-ndrpdr.robot b/tests/vpp/perf/vm_vhost/10ge2p1x520-1lbdpdk-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-ndrpdr.robot new file mode 100644 index 0000000000..f9125118b3 --- /dev/null +++ b/tests/vpp/perf/vm_vhost/10ge2p1x520-1lbdpdk-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-ndrpdr.robot @@ -0,0 +1,170 @@ +# Copyright (c) 2018 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 | NDRPDR +| ... | NIC_Intel-X520-DA2 | DOT1Q | L2BDMACLRN | BASE | VHOST | 1VM +| ... | VHOST_1024 | LBOND | LBOND_DPDK | LBOND_MODE_XOR | LBOND_LB_L34 +| ... +| 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} +| ... +| Test Template | Local Template +| ... +| Documentation | *RFC2544: Pkt throughput L2BD test cases with vhost and dpdk link bonding* +| ... +| ... | *[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 DPDK +| ... | link bonding (mode XOR, transmit policy l34) on link between DUT1 and +| ... | DUT2 and L2 bridge-domain with 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=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 +| ... | Rate) with non-zero packet loss tolerance (LT) expressed in percentage +| ... | of packets transmitted. NDR and PDR are discovered for different +| ... | Ethernet L2 frame sizes using MLRsearch library. +| ... | Test packets are generated by TG on links to DUTs. TG traffic profile +| ... | contains two L3 flow-groups (flow-group per direction, 254 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. + +*** Variables *** +| ${dut1_eth_bond_if1}= | eth_bond1 +| ${dut1_eth_bond_if1_name}= | BondEthernet0 +| ${dut2_eth_bond_if1}= | eth_bond1 +| ${dut2_eth_bond_if1_name}= | BondEthernet0 +| ${perf_qemu_qsz}= | 1024 +| ${subid}= | 10 +| ${tag_rewrite}= | pop-1 +| ${overhead}= | ${4} +# Socket names +| ${bd_id1}= | 1 +| ${bd_id2}= | 2 +| ${sock1}= | /tmp/sock-1-${bd_id1} +| ${sock2}= | /tmp/sock-1-${bd_id2} +# X520-DA2 bandwidth limit +| ${s_limit}= | ${10000000000} +# Traffic profile: +| ${traffic_profile}= | trex-sl-3n-ethip4-ip4src254 + +*** Keywords *** +| Local Template +| | [Documentation] +| | ... | [Cfg] DUT runs L2BD switching config. +| | ... | Each DUT uses ${phy_cores} physical core(s) for worker threads. +| | ... | [Ver] Measure NDR and PDR values using MLRsearch algorithm.\ +| | ... +| | ... | *Arguments:* +| | ... | - framesize - Framesize in Bytes in integer or string (IMIX_v4_1). +| | ... | Type: integer, string +| | ... | - phy_cores - Number of physical cores. Type: integer +| | ... | - rxq - Number of RX queues, default value: ${None}. Type: integer +| | ... +| | [Arguments] | ${framesize} | ${phy_cores} | ${rxq}=${None} +| | ... +| | Set Test Variable | ${framesize} +| | Set Test Variable | ${min_rate} | ${10000} +| | ${dut1_vm_refs}= | Create Dictionary +| | ${dut2_vm_refs}= | Create Dictionary +| | Set Test Variable | ${dut1_vm_refs} +| | Set Test Variable | ${dut2_vm_refs} +| | ... +| | Given Add worker threads and rxqueues to all DUTs | ${phy_cores} | ${rxq} +| | And Add PCI devices to all DUTs +| | And Add VLAN Strip Offload switch off between DUTs in 3-node single link topology +| | And Add DPDK bonded Ethernet interfaces to DUTs in 3-node single link topology +| | ${max_rate} | ${jumbo} = | Get Max Rate And Jumbo And Handle Multi Seg +| | ... | ${s_limit} | ${framesize} | overhead=${overhead} +| | And Apply startup configuration on all VPP DUTs +| | And Add DPDK bonded ethernet interfaces to topology file in 3-node single link topology +| | When Initialize L2 bridge domains with Vhost-User and VLAN with DPDK link bonding in a 3-node circular topology +| | ... | ${bd_id1} | ${bd_id2} | ${sock1} | ${sock2} | ${subid} +| | ... | ${tag_rewrite} +| | ${vm1}= | And Configure guest VM with dpdk-testpmd connected via vhost-user +| | ... | ${dut1} | ${sock1} | ${sock2} | DUT1_VM1 +| | ... | jumbo_frames=${jumbo} +| | And 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 +| | ... | jumbo_frames=${jumbo} +| | And Set To Dictionary | ${dut2_vm_refs} | DUT2_VM1 | ${vm2} +| | Then Find NDR and PDR intervals using optimized search +| | ... | ${framesize} | ${traffic_profile} | ${min_rate} | ${max_rate} + +*** Test Cases *** +| tc01-64B-1c-1lbdpdk-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-ndrpdr +| | [Tags] | 64B | 1C +| | framesize=${64} | phy_cores=${1} + +| tc02-64B-2c-1lbdpdk-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-ndrpdr +| | [Tags] | 64B | 2C +| | framesize=${64} | phy_cores=${2} + +| tc03-64B-4c-1lbdpdk-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-ndrpdr +| | [Tags] | 64B | 4C +| | framesize=${64} | phy_cores=${4} + +| tc04-1518B-1c-1lbdpdk-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-ndrpdr +| | [Tags] | 1518B | 1C +| | framesize=${1518} | phy_cores=${1} + +| tc05-1518B-2c-1lbdpdk-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-ndrpdr +| | [Tags] | 1518B | 2C +| | framesize=${1518} | phy_cores=${2} + +| tc06-1518B-4c-1lbdpdk-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-ndrpdr +| | [Tags] | 1518B | 4C +| | framesize=${1518} | phy_cores=${4} + +| tc07-9000B-1c-1lbdpdk-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-ndrpdr +| | [Tags] | 9000B | 1C +| | framesize=${9000} | phy_cores=${1} + +| tc08-9000B-2c-1lbdpdk-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-ndrpdr +| | [Tags] | 9000B | 2C +| | framesize=${9000} | phy_cores=${2} + +| tc09-9000B-4c-1lbdpdk-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-ndrpdr +| | [Tags] | 9000B | 4C +| | framesize=${9000} | phy_cores=${4} + +| tc10-IMIX-1c-1lbdpdk-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-ndrpdr +| | [Tags] | IMIX | 1C +| | framesize=IMIX_v4_1 | phy_cores=${1} + +| tc11-IMIX-2c-1lbdpdk-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-ndrpdr +| | [Tags] | IMIX | 2C +| | framesize=IMIX_v4_1 | phy_cores=${2} + +| tc12-IMIX-4c-1lbdpdk-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-ndrpdr +| | [Tags] | IMIX | 4C +| | framesize=IMIX_v4_1 | phy_cores=${4} diff --git a/tests/vpp/perf/vm_vhost/10ge2p1x520-1lbdpdk-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-ndrpdrdisc.robot b/tests/vpp/perf/vm_vhost/10ge2p1x520-1lbdpdk-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-ndrpdrdisc.robot deleted file mode 100644 index 46ae2f46e8..0000000000 --- a/tests/vpp/perf/vm_vhost/10ge2p1x520-1lbdpdk-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-ndrpdrdisc.robot +++ /dev/null @@ -1,227 +0,0 @@ -# Copyright (c) 2018 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 -| ... | VHOST_1024 | LBOND | LBOND_DPDK | LBOND_MODE_XOR | LBOND_LB_L34 -| ... -| 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} -| ... -| Test Template | Local template -| ... -| Documentation | *RFC2544: Packet throughput L2BD test cases with vhost and -| ... | dpdk link bonding* -| ... -| ... | *[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 DPDK -| ... | link bonding (mode XOR, transmit policy l34) on link between DUT1 and -| ... | DUT2 and L2 bridge-domain with 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=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 -| ... | 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 *** -| ${dut1_eth_bond_if1}= | eth_bond1 -| ${dut1_eth_bond_if1_name}= | BondEthernet0 -| ${dut2_eth_bond_if1}= | eth_bond1 -| ${dut2_eth_bond_if1_name}= | BondEthernet0 -| ${perf_qemu_qsz}= | 1024 -| ${subid}= | 10 -| ${tag_rewrite}= | pop-1 -| ${vlan_overhead}= | ${4} -# 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 *** -| Local template -| | [Arguments] | ${phy_cores} | ${framesize} | ${search_type} | ${rxq}=${None} -| | ... | ${min_rate}=${10000} -| | ... -| | Set Test Variable | ${framesize} -| | Set Test Variable | ${min_rate} -| | ${get_framesize}= | Get Frame Size | ${framesize} -| | ${max_rate}= | Calculate pps | ${s_limit} -| | ... | ${get_framesize + ${vlan_overhead}} -| | ${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} -| | ${jumbo_frames}= | Set Variable If -| | ... | ${get_framesize + ${vlan_overhead}} < ${1522} | ${False} | ${True} -| | ... -| | Given Add worker threads and rxqueues to all DUTs | ${phy_cores} | ${rxq} -| | And Add PCI devices to all DUTs -| | And Add VLAN Strip Offload switch off between DUTs in 3-node single link topology -| | And Add DPDK bonded Ethernet interfaces to DUTs in 3-node single link topology -| | And Run Keyword If | ${get_framesize + ${vlan_overhead}} < ${1522} -| | ... | Add no multi seg to all DUTs -| | And Apply startup configuration on all VPP DUTs -| | And Add DPDK bonded ethernet interfaces to topology file in 3-node single link topology -| | When Initialize L2 bridge domains with Vhost-User and VLAN with DPDK link bonding in a 3-node circular topology -| | ... | ${bd_id1} | ${bd_id2} | ${sock1} | ${sock2} | ${subid} -| | ... | ${tag_rewrite} -| | ${vm1}= | And Configure guest VM with dpdk-testpmd connected via vhost-user -| | ... | ${dut1} | ${sock1} | ${sock2} | DUT1_VM1 -| | ... | jumbo_frames=${jumbo_frames} -| | And 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 -| | ... | jumbo_frames=${jumbo_frames} -| | And Set To Dictionary | ${dut2_vm_refs} | DUT2_VM1 | ${vm2} -| | Then Run Keyword If | '${search_type}' == 'NDR' -| | ... | Find NDR using binary search and pps -| | ... | ${framesize} | ${binary_min} | ${binary_max} | ${traffic_profile} -| | ... | ${min_rate} | ${max_rate} | ${threshold} -| | ... | ELSE IF | '${search_type}' == 'PDR' -| | ... | Find PDR using binary search and pps -| | ... | ${framesize} | ${binary_min} | ${binary_max} | ${traffic_profile} -| | ... | ${min_rate} | ${max_rate} | ${threshold} -| | ... | ${perf_pdr_loss_acceptance} | ${perf_pdr_loss_acceptance_type} - -*** Test Cases *** -| tc01-64B-1t1c-1lbdpdk-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-ndrdisc -| | [Tags] | 64B | 1C | NDRDISC -| | phy_cores=${1} | framesize=${64} | search_type=NDR - -| tc02-64B-1t1c-1lbdpdk-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-pdrdisc -| | [Tags] | 64B | 1C | PDRDISC | SKIP_PATCH -| | phy_cores=${1} | framesize=${64} | search_type=PDR - -| tc03-1518B-1t1c-1lbdpdk-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-ndrdisc -| | [Tags] | 1518B | 1C | NDRDISC -| | phy_cores=${1} | framesize=${1518} | search_type=NDR - -| tc04-1518B-1t1c-1lbdpdk-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-pdrdisc -| | [Tags] | 1518B | 1C | PDRDISC | SKIP_PATCH -| | phy_cores=${1} | framesize=${1518} | search_type=PDR - -| tc05-9000B-1t1c-1lbdpdk-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-ndrdisc -| | [Tags] | 9000B | 1C | NDRDISC -| | phy_cores=${1} | framesize=${9000} | search_type=NDR - -| tc06-9000B-1t1c-1lbdpdk-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-pdrdisc -| | [Tags] | 9000B | 1C | PDRDISC | SKIP_PATCH -| | phy_cores=${1} | framesize=${9000} | search_type=PDR - -| tc07-IMIX-1t1c-1lbdpdk-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-ndrdisc -| | [Tags] | IMIX | 1C | NDRDISC -| | phy_cores=${1} | framesize=IMIX_v4_1 | search_type=NDR - -| tc08-IMIX-1t1c-1lbdpdk-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-pdrdisc -| | [Tags] | IMIX | 1C | PDRDISC | SKIP_PATCH -| | phy_cores=${1} | framesize=IMIX_v4_1 | search_type=PDR - -| tc09-64B-2t2c-1lbdpdk-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-ndrdisc -| | [Tags] | 64B | 2C | NDRDISC -| | phy_cores=${2} | framesize=${64} | search_type=NDR - -| tc10-64B-2t2c-1lbdpdk-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-pdrdisc -| | [Tags] | 64B | 2C | PDRDISC | SKIP_PATCH -| | phy_cores=${2} | framesize=${64} | search_type=PDR - -| tc11-1518B-2t2c-1lbdpdk-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-ndrdisc -| | [Tags] | 1518B | 2C | NDRDISC | SKIP_PATCH -| | phy_cores=${2} | framesize=${1518} | search_type=NDR - -| tc12-1518B-2t2c-1lbdpdk-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-pdrdisc -| | [Tags] | 1518B | 2C | PDRDISC | SKIP_PATCH -| | phy_cores=${2} | framesize=${1518} | search_type=PDR - -| tc13-9000B-2t2c-1lbdpdk-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-ndrdisc -| | [Tags] | 9000B | 2C | NDRDISC | SKIP_PATCH -| | phy_cores=${2} | framesize=${9000} | search_type=NDR - -| tc14-9000B-2t2c-1lbdpdk-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-pdrdisc -| | [Tags] | 9000B | 2C | PDRDISC | SKIP_PATCH -| | phy_cores=${2} | framesize=${9000} | search_type=PDR - -| tc15-IMIX-2t2c-1lbdpdk-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-ndrdisc -| | [Tags] | IMIX | 2C | NDRDISC | SKIP_PATCH -| | phy_cores=${2} | framesize=IMIX_v4_1 | search_type=NDR - -| tc16-IMIX-2t2c-1lbdpdk-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-pdrdisc -| | [Tags] | IMIX | 2C | PDRDISC | SKIP_PATCH -| | phy_cores=${2} | framesize=IMIX_v4_1 | search_type=PDR - -| tc17-64B-4t4c-1lbdpdk-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-ndrdisc -| | [Tags] | 64B | 4C | NDRDISC -| | phy_cores=${4} | framesize=${64} | search_type=NDR - -| tc18-64B-4t4c-1lbdpdk-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-pdrdisc -| | [Tags] | 64B | 4C | PDRDISC | SKIP_PATCH -| | phy_cores=${4} | framesize=${64} | search_type=PDR - -| tc19-1518B-4t4c-1lbdpdk-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-ndrdisc -| | [Tags] | 1518B | 4C | NDRDISC | SKIP_PATCH -| | phy_cores=${4} | framesize=${1518} | search_type=NDR - -| tc20-1518B-4t4c-1lbdpdk-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-pdrdisc -| | [Tags] | 1518B | 4C | PDRDISC | SKIP_PATCH -| | phy_cores=${4} | framesize=${1518} | search_type=PDR - -| tc21-9000B-4t4c-1lbdpdk-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-ndrdisc -| | [Tags] | 9000B | 4C | NDRDISC | SKIP_PATCH -| | phy_cores=${4} | framesize=${9000} | search_type=NDR - -| tc22-9000B-4t4c-1lbdpdk-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-pdrdisc -| | [Tags] | 9000B | 4C | PDRDISC | SKIP_PATCH -| | phy_cores=${4} | framesize=${9000} | search_type=PDR - -| tc23-IMIX-4t4c-1lbdpdk-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-ndrdisc -| | [Tags] | IMIX | 4C | NDRDISC | SKIP_PATCH -| | phy_cores=${4} | framesize=IMIX_v4_1 | search_type=NDR - -| tc24-IMIX-4t4c-1lbdpdk-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-pdrdisc -| | [Tags] | IMIX | 4C | PDRDISC | SKIP_PATCH -| | phy_cores=${4} | framesize=IMIX_v4_1 | search_type=PDR diff --git a/tests/vpp/perf/vm_vhost/10ge2p1x520-1lbdpdk-dot1q-l2xcbase-eth-2vhostvr1024-1vm-mrr.robot b/tests/vpp/perf/vm_vhost/10ge2p1x520-1lbdpdk-dot1q-l2xcbase-eth-2vhostvr1024-1vm-mrr.robot index 01f174ff36..5ec275a782 100644 --- a/tests/vpp/perf/vm_vhost/10ge2p1x520-1lbdpdk-dot1q-l2xcbase-eth-2vhostvr1024-1vm-mrr.robot +++ b/tests/vpp/perf/vm_vhost/10ge2p1x520-1lbdpdk-dot1q-l2xcbase-eth-2vhostvr1024-1vm-mrr.robot @@ -28,7 +28,7 @@ | ... | dut1_node=${dut1} | dut1_vm_refs=${dut1_vm_refs} | ... | dut2_node=${dut2} | dut2_vm_refs=${dut2_vm_refs} | ... -| Test Template | Local template +| Test Template | Local Template | ... | Documentation | *Raw results L2XC test cases with vhost and dpdk link bonding* | ... @@ -61,7 +61,7 @@ | ${perf_qemu_qsz}= | 1024 | ${subid}= | 10 | ${tag_rewrite}= | pop-1 -| ${vlan_overhead}= | ${4} +| ${overhead}= | ${4} # Socket names | ${sock1}= | /tmp/sock-1 | ${sock2}= | /tmp/sock-2 @@ -71,7 +71,7 @@ | ${traffic_profile}= | trex-sl-3n-ethip4-ip4src254 *** Keywords *** -| Local template +| Local Template | | [Documentation] | | ... | [Cfg] DUT runs L2XC switching config. | | ... | Each DUT uses ${phy_cores} physical core(s) for worker threads. @@ -86,83 +86,77 @@ | | ... | | [Arguments] | ${framesize} | ${phy_cores} | ${rxq}=${None} | | ... -| | Set Test Variable | ${framesize} -| | ${get_framesize}= | Get Frame Size | ${framesize} -| | ${max_rate}= | Calculate pps | ${s_limit} -| | ... | ${get_framesize + ${vlan_overhead}} | | ${dut1_vm_refs}= | Create Dictionary | | ${dut2_vm_refs}= | Create Dictionary | | Set Test Variable | ${dut1_vm_refs} | | Set Test Variable | ${dut2_vm_refs} -| | ${jumbo_frames}= | Set Variable If -| | ... | ${get_framesize + ${vlan_overhead}} < ${1522} | ${False} | ${True} | | ... | | Given Add worker threads and rxqueues to all DUTs | ${phy_cores} | ${rxq} | | And Add PCI devices to all DUTs | | And Add VLAN Strip Offload switch off between DUTs in 3-node single link topology | | And Add DPDK bonded Ethernet interfaces to DUTs in 3-node single link topology -| | And Run Keyword If | ${get_framesize + ${vlan_overhead}} < ${1522} -| | ... | Add no multi seg to all DUTs +| | ${max_rate} | ${jumbo} = | Get Max Rate And Jumbo And Handle Multi Seg +| | ... | ${s_limit} | ${framesize} | overhead=${overhead} | | And Apply startup configuration on all VPP DUTs | | And Add DPDK bonded ethernet interfaces to topology file in 3-node single link topology | | When Initialize L2 xconnect with Vhost-User and VLAN with DPDK link bonding in 3-node circular topology | | ... | ${sock1} | ${sock2} | ${subid} | ${tag_rewrite} | | ${vm1}= | And Configure guest VM with dpdk-testpmd connected via vhost-user | | ... | ${dut1} | ${sock1} | ${sock2} | DUT1_VM1 -| | ... | jumbo_frames=${jumbo_frames} +| | ... | jumbo_frames=${jumbo} | | And 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 -| | ... | jumbo_frames=${jumbo_frames} +| | ... | jumbo_frames=${jumbo} | | And Set To Dictionary | ${dut2_vm_refs} | DUT2_VM1 | ${vm2} | | Then Traffic should pass with maximum rate | | ... | ${max_rate}pps | ${framesize} | ${traffic_profile} *** Test Cases *** -| tc01-64B-1t1c-1lbdpdk-dot1q-l2xcbase-eth-2vhostvr1024-1vm-mrr +| tc01-64B-1c-1lbdpdk-dot1q-l2xcbase-eth-2vhostvr1024-1vm-mrr | | [Tags] | 64B | 1C | | framesize=${64} | phy_cores=${1} -| tc02-1518B-1t1c-1lbdpdk-dot1q-l2xcbase-eth-2vhostvr1024-1vm-mrr -| | [Tags] | 1518B | 1C -| | framesize=${1518} | phy_cores=${1} - -| tc03-9000B-1t1c-1lbdpdk-dot1q-l2xcbase-eth-2vhostvr1024-1vm-mrr -| | [Tags] | 9000B | 1C -| | framesize=${9000} | phy_cores=${1} - -| tc04-IMIX-1t1c-1lbdpdk-dot1q-l2xcbase-eth-2vhostvr1024-1vm-mrr -| | [Tags] | IMIX | 1C -| | framesize=IMIX_v4_1 | phy_cores=${1} - -| tc05-64B-2t2c-1lbdpdk-dot1q-l2xcbase-eth-2vhostvr1024-1vm-mrr +| tc02-64B-2c-1lbdpdk-dot1q-l2xcbase-eth-2vhostvr1024-1vm-mrr | | [Tags] | 64B | 2C | | framesize=${64} | phy_cores=${2} -| tc06-1518B-2t2c-1lbdpdk-dot1q-l2xcbase-eth-2vhostvr1024-1vm-mrr -| | [Tags] | 1518B | 2C -| | framesize=${1518} | phy_cores=${2} - -| tc07-9000B-2t2c-1lbdpdk-dot1q-l2xcbase-eth-2vhostvr1024-1vm-mrr -| | [Tags] | 9000B | 2C -| | framesize=${9000} | phy_cores=${2} - -| tc08-IMIX-2t2c-1lbdpdk-dot1q-l2xcbase-eth-2vhostvr1024-1vm-mrr -| | [Tags] | IMIX | 2C -| | framesize=IMIX_v4_1 | phy_cores=${2} - -| tc09-64B-4t4c-1lbdpdk-dot1q-l2xcbase-eth-2vhostvr1024-1vm-mrr +| tc03-64B-4c-1lbdpdk-dot1q-l2xcbase-eth-2vhostvr1024-1vm-mrr | | [Tags] | 64B | 4C | | framesize=${64} | phy_cores=${4} -| tc10-1518B-4t4c-1lbdpdk-dot1q-l2xcbase-eth-2vhostvr1024-1vm-mrr +| tc04-1518B-1c-1lbdpdk-dot1q-l2xcbase-eth-2vhostvr1024-1vm-mrr +| | [Tags] | 1518B | 1C +| | framesize=${1518} | phy_cores=${1} + +| tc05-1518B-2c-1lbdpdk-dot1q-l2xcbase-eth-2vhostvr1024-1vm-mrr +| | [Tags] | 1518B | 2C +| | framesize=${1518} | phy_cores=${2} + +| tc06-1518B-4c-1lbdpdk-dot1q-l2xcbase-eth-2vhostvr1024-1vm-mrr | | [Tags] | 1518B | 4C | | framesize=${1518} | phy_cores=${4} -| tc11-9000B-4t4c-1lbdpdk-dot1q-l2xcbase-eth-2vhostvr1024-1vm-mrr +| tc07-9000B-1c-1lbdpdk-dot1q-l2xcbase-eth-2vhostvr1024-1vm-mrr +| | [Tags] | 9000B | 1C +| | framesize=${9000} | phy_cores=${1} + +| tc08-9000B-2c-1lbdpdk-dot1q-l2xcbase-eth-2vhostvr1024-1vm-mrr +| | [Tags] | 9000B | 2C +| | framesize=${9000} | phy_cores=${2} + +| tc09-9000B-4c-1lbdpdk-dot1q-l2xcbase-eth-2vhostvr1024-1vm-mrr | | [Tags] | 9000B | 4C | | framesize=${9000} | phy_cores=${4} -| tc12-IMIX-4t4c-1lbdpdk-dot1q-l2xcbase-eth-2vhostvr1024-1vm-mrr +| tc10-IMIX-1c-1lbdpdk-dot1q-l2xcbase-eth-2vhostvr1024-1vm-mrr +| | [Tags] | IMIX | 1C +| | framesize=IMIX_v4_1 | phy_cores=${1} + +| tc11-IMIX-2c-1lbdpdk-dot1q-l2xcbase-eth-2vhostvr1024-1vm-mrr +| | [Tags] | IMIX | 2C +| | framesize=IMIX_v4_1 | phy_cores=${2} + +| tc12-IMIX-4c-1lbdpdk-dot1q-l2xcbase-eth-2vhostvr1024-1vm-mrr | | [Tags] | IMIX | 4C | | framesize=IMIX_v4_1 | phy_cores=${4} diff --git a/tests/vpp/perf/vm_vhost/10ge2p1x520-1lbdpdk-dot1q-l2xcbase-eth-2vhostvr1024-1vm-ndrpdr.robot b/tests/vpp/perf/vm_vhost/10ge2p1x520-1lbdpdk-dot1q-l2xcbase-eth-2vhostvr1024-1vm-ndrpdr.robot new file mode 100644 index 0000000000..7e2276b917 --- /dev/null +++ b/tests/vpp/perf/vm_vhost/10ge2p1x520-1lbdpdk-dot1q-l2xcbase-eth-2vhostvr1024-1vm-ndrpdr.robot @@ -0,0 +1,167 @@ +# Copyright (c) 2018 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 | NDRPDR +| ... | NIC_Intel-X520-DA2 | DOT1Q | L2XCFWD | BASE | VHOST | 1VM +| ... | VHOST_1024 | LBOND | LBOND_DPDK | LBOND_MODE_XOR | LBOND_LB_L34 +| ... +| 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} +| ... +| Test Template | Local Template +| ... +| Documentation | *RFC2544: Pkt throughput L2XC test cases with vhost and dpdk link bonding* +| ... +| ... | *[Top] Network Topologies:* TG-DUT1-DUT2-TG 3-node circular topology +| ... | with single links between nodes. +| ... | *[Enc] Packet Encapsulations:* Eth-IPv4 for L2 cross connect. 802.1q +| ... | tagging is applied on link between DUT1 and DUT2. +| ... | *[Cfg] DUT configuration:* DUT1 and DUT2 are configured with DPDK +| ... | link bonding (mode XOR, transmit policy l34) on link between DUT1 and +| ... | DUT2 and 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=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 +| ... | Rate) with non-zero packet loss tolerance (LT) expressed in percentage +| ... | of packets transmitted. NDR and PDR are discovered for different +| ... | Ethernet L2 frame sizes using MLRsearch library. +| ... | Test packets are generated by TG on links to DUTs. TG traffic profile +| ... | contains two L3 flow-groups (flow-group per direction, 254 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. + +*** Variables *** +| ${dut1_eth_bond_if1}= | eth_bond1 +| ${dut1_eth_bond_if1_name}= | BondEthernet0 +| ${dut2_eth_bond_if1}= | eth_bond1 +| ${dut2_eth_bond_if1_name}= | BondEthernet0 +| ${perf_qemu_qsz}= | 1024 +| ${subid}= | 10 +| ${tag_rewrite}= | pop-1 +| ${overhead}= | ${4} +# Socket names +| ${sock1}= | /tmp/sock-1 +| ${sock2}= | /tmp/sock-2 +# X520-DA2 bandwidth limit +| ${s_limit}= | ${10000000000} +# Traffic profile: +| ${traffic_profile}= | trex-sl-3n-ethip4-ip4src254 + +*** Keywords *** +| Local Template +| | [Documentation] +| | ... | [Cfg] DUT runs L2XC switching config. +| | ... | Each DUT uses ${phy_cores} physical core(s) for worker threads. +| | ... | [Ver] Measure NDR and PDR values using MLRsearch algorithm.\ +| | ... +| | ... | *Arguments:* +| | ... | - framesize - Framesize in Bytes in integer or string (IMIX_v4_1). +| | ... | Type: integer, string +| | ... | - phy_cores - Number of physical cores. Type: integer +| | ... | - rxq - Number of RX queues, default value: ${None}. Type: integer +| | ... +| | [Arguments] | ${framesize} | ${phy_cores} | ${rxq}=${None} +| | ... +| | Set Test Variable | ${framesize} +| | Set Test Variable | ${min_rate} | ${10000} +| | ${dut1_vm_refs}= | Create Dictionary +| | ${dut2_vm_refs}= | Create Dictionary +| | Set Test Variable | ${dut1_vm_refs} +| | Set Test Variable | ${dut2_vm_refs} +| | ... +| | Given Add worker threads and rxqueues to all DUTs | ${phy_cores} | ${rxq} +| | And Add PCI devices to all DUTs +| | And Add VLAN Strip Offload switch off between DUTs in 3-node single link topology +| | And Add DPDK bonded Ethernet interfaces to DUTs in 3-node single link topology +| | ${max_rate} | ${jumbo} = | Get Max Rate And Jumbo And Handle Multi Seg +| | ... | ${s_limit} | ${framesize} | overhead=${overhead} +| | And Apply startup configuration on all VPP DUTs +| | And Add DPDK bonded ethernet interfaces to topology file in 3-node single link topology +| | When Initialize L2 xconnect with Vhost-User and VLAN with DPDK link bonding in 3-node circular topology +| | ... | ${sock1} | ${sock2} | ${subid} | ${tag_rewrite} +| | ${vm1}= | And Configure guest VM with dpdk-testpmd connected via vhost-user +| | ... | ${dut1} | ${sock1} | ${sock2} | DUT1_VM1 +| | ... | jumbo_frames=${jumbo} +| | And 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 +| | ... | jumbo_frames=${jumbo} +| | And Set To Dictionary | ${dut2_vm_refs} | DUT2_VM1 | ${vm2} +| | Then Find NDR and PDR intervals using optimized search +| | ... | ${framesize} | ${traffic_profile} | ${min_rate} | ${max_rate} + +*** Test Cases *** +| tc01-64B-1c-1lbdpdk-dot1q-l2xcbase-eth-2vhostvr1024-1vm-ndrpdr +| | [Tags] | 64B | 1C +| | framesize=${64} | phy_cores=${1} + +| tc02-64B-2c-1lbdpdk-dot1q-l2xcbase-eth-2vhostvr1024-1vm-ndrpdr +| | [Tags] | 64B | 2C +| | framesize=${64} | phy_cores=${2} + +| tc03-64B-4c-1lbdpdk-dot1q-l2xcbase-eth-2vhostvr1024-1vm-ndrpdr +| | [Tags] | 64B | 4C +| | framesize=${64} | phy_cores=${4} + +| tc04-1518B-1c-1lbdpdk-dot1q-l2xcbase-eth-2vhostvr1024-1vm-ndrpdr +| | [Tags] | 1518B | 1C +| | framesize=${1518} | phy_cores=${1} + +| tc05-1518B-2c-1lbdpdk-dot1q-l2xcbase-eth-2vhostvr1024-1vm-ndrpdr +| | [Tags] | 1518B | 2C +| | framesize=${1518} | phy_cores=${2} + +| tc06-1518B-4c-1lbdpdk-dot1q-l2xcbase-eth-2vhostvr1024-1vm-ndrpdr +| | [Tags] | 1518B | 4C +| | framesize=${1518} | phy_cores=${4} + +| tc07-9000B-1c-1lbdpdk-dot1q-l2xcbase-eth-2vhostvr1024-1vm-ndrpdr +| | [Tags] | 9000B | 1C +| | framesize=${9000} | phy_cores=${1} + +| tc08-9000B-2c-1lbdpdk-dot1q-l2xcbase-eth-2vhostvr1024-1vm-ndrpdr +| | [Tags] | 9000B | 2C +| | framesize=${9000} | phy_cores=${2} + +| tc09-9000B-4c-1lbdpdk-dot1q-l2xcbase-eth-2vhostvr1024-1vm-ndrpdr +| | [Tags] | 9000B | 4C +| | framesize=${9000} | phy_cores=${4} + +| tc10-IMIX-1c-1lbdpdk-dot1q-l2xcbase-eth-2vhostvr1024-1vm-ndrpdr +| | [Tags] | IMIX | 1C +| | framesize=IMIX_v4_1 | phy_cores=${1} + +| tc11-IMIX-2c-1lbdpdk-dot1q-l2xcbase-eth-2vhostvr1024-1vm-ndrpdr +| | [Tags] | IMIX | 2C +| | framesize=IMIX_v4_1 | phy_cores=${2} + +| tc12-IMIX-4c-1lbdpdk-dot1q-l2xcbase-eth-2vhostvr1024-1vm-ndrpdr +| | [Tags] | IMIX | 4C +| | framesize=IMIX_v4_1 | phy_cores=${4} diff --git a/tests/vpp/perf/vm_vhost/10ge2p1x520-1lbdpdk-dot1q-l2xcbase-eth-2vhostvr1024-1vm-ndrpdrdisc.robot b/tests/vpp/perf/vm_vhost/10ge2p1x520-1lbdpdk-dot1q-l2xcbase-eth-2vhostvr1024-1vm-ndrpdrdisc.robot deleted file mode 100644 index 5c16dc3181..0000000000 --- a/tests/vpp/perf/vm_vhost/10ge2p1x520-1lbdpdk-dot1q-l2xcbase-eth-2vhostvr1024-1vm-ndrpdrdisc.robot +++ /dev/null @@ -1,226 +0,0 @@ -# Copyright (c) 2018 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 | L2XCFWD | BASE | VHOST | VM -| ... | VHOST_1024 | LBOND | LBOND_DPDK | LBOND_MODE_XOR | LBOND_LB_L34 -| ... -| 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} -| ... -| Test Template | Local template -| ... -| Documentation | *RFC2544: Packet throughput L2XC test cases with vhost and -| ... | dpdk link bonding* -| ... -| ... | *[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 DPDK -| ... | link bonding (mode XOR, transmit policy l34) on link between DUT1 and -| ... | DUT2 and 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=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 -| ... | 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 *** -| ${dut1_eth_bond_if1}= | eth_bond1 -| ${dut1_eth_bond_if1_name}= | BondEthernet0 -| ${dut2_eth_bond_if1}= | eth_bond1 -| ${dut2_eth_bond_if1_name}= | BondEthernet0 -| ${perf_qemu_qsz}= | 1024 -| ${subid}= | 10 -| ${tag_rewrite}= | pop-1 -| ${vlan_overhead}= | ${4} -# 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 *** -| Local template -| | [Arguments] | ${phy_cores} | ${framesize} | ${search_type} | ${rxq}=${None} -| | ... | ${min_rate}=${10000} -| | ... -| | Set Test Variable | ${framesize} -| | Set Test Variable | ${min_rate} -| | ${get_framesize}= | Get Frame Size | ${framesize} -| | ${max_rate}= | Calculate pps | ${s_limit} -| | ... | ${get_framesize + ${vlan_overhead}} -| | ${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} -| | ${jumbo_frames}= | Set Variable If -| | ... | ${get_framesize + ${vlan_overhead}} < ${1522} | ${False} | ${True} -| | ... -| | Given Add worker threads and rxqueues to all DUTs | ${phy_cores} | ${rxq} -| | And Add PCI devices to all DUTs -| | And Add VLAN Strip Offload switch off between DUTs in 3-node single link topology -| | And Add DPDK bonded Ethernet interfaces to DUTs in 3-node single link topology -| | And Run Keyword If | ${get_framesize + ${vlan_overhead}} < ${1522} -| | ... | Add no multi seg to all DUTs -| | And Apply startup configuration on all VPP DUTs -| | And Add DPDK bonded ethernet interfaces to topology file in 3-node single link topology -| | When Initialize L2 xconnect with Vhost-User and VLAN with DPDK link bonding in 3-node circular topology -| | ... | ${sock1} | ${sock2} | ${subid} | ${tag_rewrite} -| | ${vm1}= | And Configure guest VM with dpdk-testpmd connected via vhost-user -| | ... | ${dut1} | ${sock1} | ${sock2} | DUT1_VM1 -| | ... | jumbo_frames=${jumbo_frames} -| | And 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 -| | ... | jumbo_frames=${jumbo_frames} -| | And Set To Dictionary | ${dut2_vm_refs} | DUT2_VM1 | ${vm2} -| | Then Run Keyword If | '${search_type}' == 'NDR' -| | ... | Find NDR using binary search and pps -| | ... | ${framesize} | ${binary_min} | ${binary_max} | ${traffic_profile} -| | ... | ${min_rate} | ${max_rate} | ${threshold} -| | ... | ELSE IF | '${search_type}' == 'PDR' -| | ... | Find PDR using binary search and pps -| | ... | ${framesize} | ${binary_min} | ${binary_max} | ${traffic_profile} -| | ... | ${min_rate} | ${max_rate} | ${threshold} -| | ... | ${perf_pdr_loss_acceptance} | ${perf_pdr_loss_acceptance_type} - -*** Test Cases *** -| tc01-64B-1t1c-1lbdpdk-dot1q-l2xcbase-eth-2vhostvr1024-1vm-ndrdisc -| | [Tags] | 64B | 1C | NDRDISC -| | phy_cores=${1} | framesize=${64} | search_type=NDR - -| tc02-64B-1t1c-1lbdpdk-dot1q-l2xcbase-eth-2vhostvr1024-1vm-pdrdisc -| | [Tags] | 64B | 1C | PDRDISC | SKIP_PATCH -| | phy_cores=${1} | framesize=${64} | search_type=PDR - -| tc03-1518B-1t1c-1lbdpdk-dot1q-l2xcbase-eth-2vhostvr1024-1vm-ndrdisc -| | [Tags] | 1518B | 1C | NDRDISC -| | phy_cores=${1} | framesize=${1518} | search_type=NDR - -| tc04-1518B-1t1c-1lbdpdk-dot1q-l2xcbase-eth-2vhostvr1024-1vm-pdrdisc -| | [Tags] | 1518B | 1C | PDRDISC | SKIP_PATCH -| | phy_cores=${1} | framesize=${1518} | search_type=PDR - -| tc05-9000B-1t1c-1lbdpdk-dot1q-l2xcbase-eth-2vhostvr1024-1vm-ndrdisc -| | [Tags] | 9000B | 1C | NDRDISC -| | phy_cores=${1} | framesize=${9000} | search_type=NDR - -| tc06-9000B-1t1c-1lbdpdk-dot1q-l2xcbase-eth-2vhostvr1024-1vm-pdrdisc -| | [Tags] | 9000B | 1C | PDRDISC | SKIP_PATCH -| | phy_cores=${1} | framesize=${9000} | search_type=PDR - -| tc07-IMIX-1t1c-1lbdpdk-dot1q-l2xcbase-eth-2vhostvr1024-1vm-ndrdisc -| | [Tags] | IMIX | 1C | NDRDISC -| | phy_cores=${1} | framesize=IMIX_v4_1 | search_type=NDR - -| tc08-IMIX-1t1c-1lbdpdk-dot1q-l2xcbase-eth-2vhostvr1024-1vm-pdrdisc -| | [Tags] | IMIX | 1C | PDRDISC | SKIP_PATCH -| | phy_cores=${1} | framesize=IMIX_v4_1 | search_type=PDR - -| tc09-64B-2t2c-1lbdpdk-dot1q-l2xcbase-eth-2vhostvr1024-1vm-ndrdisc -| | [Tags] | 64B | 2C | NDRDISC -| | phy_cores=${2} | framesize=${64} | search_type=NDR - -| tc10-64B-2t2c-1lbdpdk-dot1q-l2xcbase-eth-2vhostvr1024-1vm-pdrdisc -| | [Tags] | 64B | 2C | PDRDISC | SKIP_PATCH -| | phy_cores=${2} | framesize=${64} | search_type=PDR - -| tc11-1518B-2t2c-1lbdpdk-dot1q-l2xcbase-eth-2vhostvr1024-1vm-ndrdisc -| | [Tags] | 1518B | 2C | NDRDISC | SKIP_PATCH -| | phy_cores=${2} | framesize=${1518} | search_type=NDR - -| tc12-1518B-2t2c-1lbdpdk-dot1q-l2xcbase-eth-2vhostvr1024-1vm-pdrdisc -| | [Tags] | 1518B | 2C | PDRDISC | SKIP_PATCH -| | phy_cores=${2} | framesize=${1518} | search_type=PDR - -| tc13-9000B-2t2c-1lbdpdk-dot1q-l2xcbase-eth-2vhostvr1024-1vm-ndrdisc -| | [Tags] | 9000B | 2C | NDRDISC | SKIP_PATCH -| | phy_cores=${2} | framesize=${9000} | search_type=NDR - -| tc14-9000B-2t2c-1lbdpdk-dot1q-l2xcbase-eth-2vhostvr1024-1vm-pdrdisc -| | [Tags] | 9000B | 2C | PDRDISC | SKIP_PATCH -| | phy_cores=${2} | framesize=${9000} | search_type=PDR - -| tc15-IMIX-2t2c-1lbdpdk-dot1q-l2xcbase-eth-2vhostvr1024-1vm-ndrdisc -| | [Tags] | IMIX | 2C | NDRDISC | SKIP_PATCH -| | phy_cores=${2} | framesize=IMIX_v4_1 | search_type=NDR - -| tc16-IMIX-2t2c-1lbdpdk-dot1q-l2xcbase-eth-2vhostvr1024-1vm-pdrdisc -| | [Tags] | IMIX | 2C | PDRDISC | SKIP_PATCH -| | phy_cores=${2} | framesize=IMIX_v4_1 | search_type=PDR - -| tc17-64B-4t4c-1lbdpdk-dot1q-l2xcbase-eth-2vhostvr1024-1vm-ndrdisc -| | [Tags] | 64B | 4C | NDRDISC -| | phy_cores=${4} | framesize=${64} | search_type=NDR - -| tc18-64B-4t4c-1lbdpdk-dot1q-l2xcbase-eth-2vhostvr1024-1vm-pdrdisc -| | [Tags] | 64B | 4C | PDRDISC | SKIP_PATCH -| | phy_cores=${4} | framesize=${64} | search_type=PDR - -| tc19-1518B-4t4c-1lbdpdk-dot1q-l2xcbase-eth-2vhostvr1024-1vm-ndrdisc -| | [Tags] | 1518B | 4C | NDRDISC | SKIP_PATCH -| | phy_cores=${4} | framesize=${1518} | search_type=NDR - -| tc20-1518B-4t4c-1lbdpdk-dot1q-l2xcbase-eth-2vhostvr1024-1vm-pdrdisc -| | [Tags] | 1518B | 4C | PDRDISC | SKIP_PATCH -| | phy_cores=${4} | framesize=${1518} | search_type=PDR - -| tc21-9000B-4t4c-1lbdpdk-dot1q-l2xcbase-eth-2vhostvr1024-1vm-ndrdisc -| | [Tags] | 9000B | 4C | NDRDISC | SKIP_PATCH -| | phy_cores=${4} | framesize=${9000} | search_type=NDR - -| tc22-9000B-4t4c-1lbdpdk-dot1q-l2xcbase-eth-2vhostvr1024-1vm-pdrdisc -| | [Tags] | 9000B | 4C | PDRDISC | SKIP_PATCH -| | phy_cores=${4} | framesize=${9000} | search_type=PDR - -| tc23-IMIX-4t4c-1lbdpdk-dot1q-l2xcbase-eth-2vhostvr1024-1vm-ndrdisc -| | [Tags] | IMIX | 4C | NDRDISC | SKIP_PATCH -| | phy_cores=${4} | framesize=IMIX_v4_1 | search_type=NDR - -| tc24-IMIX-4t4c-1lbdpdk-dot1q-l2xcbase-eth-2vhostvr1024-1vm-pdrdisc -| | [Tags] | IMIX | 4C | PDRDISC | SKIP_PATCH -| | phy_cores=${4} | framesize=IMIX_v4_1 | search_type=PDR diff --git a/tests/vpp/perf/vm_vhost/10ge2p1x520-1lbvpplacp-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-mrr.robot b/tests/vpp/perf/vm_vhost/10ge2p1x520-1lbvpplacp-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-mrr.robot index 4032a0a012..cf5e968162 100644 --- a/tests/vpp/perf/vm_vhost/10ge2p1x520-1lbvpplacp-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-mrr.robot +++ b/tests/vpp/perf/vm_vhost/10ge2p1x520-1lbvpplacp-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-mrr.robot @@ -32,7 +32,7 @@ | ... | dut1_node=${dut1} | dut1_vm_refs=${dut1_vm_refs} | ... | dut2_node=${dut2} | dut2_vm_refs=${dut2_vm_refs} | ... -| Test Template | Local template +| Test Template | Local Template | ... | Documentation | *Raw results L2BD test cases with vhost and vpp link bonding* | ... @@ -61,7 +61,7 @@ | ${perf_qemu_qsz}= | 1024 | ${subid}= | 10 | ${tag_rewrite}= | pop-1 -| ${vlan_overhead}= | ${4} +| ${overhead}= | ${4} # Link bonding config | ${bond_mode}= | lacp | ${lb_mode}= | l34 @@ -76,7 +76,7 @@ | ${traffic_profile}= | trex-sl-3n-ethip4-ip4src254 *** Keywords *** -| Local template +| Local Template | | [Documentation] | | ... | [Cfg] DUT runs L2BD switching config. | | ... | Each DUT uses ${phy_cores} physical core(s) for worker threads. @@ -91,83 +91,77 @@ | | ... | | [Arguments] | ${framesize} | ${phy_cores} | ${rxq}=${None} | | ... -| | Set Test Variable | ${framesize} -| | ${get_framesize}= | Get Frame Size | ${framesize} -| | ${max_rate}= | Calculate pps | ${s_limit} -| | ... | ${get_framesize + ${vlan_overhead}} | | ${dut1_vm_refs}= | Create Dictionary | | ${dut2_vm_refs}= | Create Dictionary | | Set Test Variable | ${dut1_vm_refs} | | Set Test Variable | ${dut2_vm_refs} -| | ${jumbo_frames}= | Set Variable If -| | ... | ${get_framesize + ${vlan_overhead}} < ${1522} | ${False} | ${True} | | ... | | Given Add worker threads and rxqueues to all DUTs | ${phy_cores} | ${rxq} | | And Add PCI devices to all DUTs | | And Add VLAN Strip Offload switch off between DUTs in 3-node single link topology -| | And Run Keyword If | ${get_framesize + ${vlan_overhead}} < ${1522} -| | ... | Add no multi seg to all DUTs +| | ${max_rate} | ${jumbo} = | Get Max Rate And Jumbo And Handle Multi Seg +| | ... | ${s_limit} | ${framesize} | overhead=${overhead} | | And Apply startup configuration on all VPP DUTs | | When Initialize L2 bridge domains with Vhost-User and VLAN with VPP link bonding in a 3-node circular topology | | ... | ${bd_id1} | ${bd_id2} | ${sock1} | ${sock2} | ${subid} | | ... | ${tag_rewrite} | ${bond_mode} | ${lb_mode} | | ${vm1}= | And Configure guest VM with dpdk-testpmd connected via vhost-user | | ... | ${dut1} | ${sock1} | ${sock2} | DUT1_VM1 -| | ... | jumbo_frames=${jumbo_frames} +| | ... | jumbo_frames=${jumbo} | | And 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 -| | ... | jumbo_frames=${jumbo_frames} +| | ... | jumbo_frames=${jumbo} | | And Set To Dictionary | ${dut2_vm_refs} | DUT2_VM1 | ${vm2} | | And All Vpp Interfaces Ready Wait | ${nodes} | | Then Traffic should pass with maximum rate | | ... | ${max_rate}pps | ${framesize} | ${traffic_profile} *** Test Cases *** -| tc01-64B-1t1c-1lbvpplacp-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-mrr +| tc01-64B-1c-1lbvpplacp-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-mrr | | [Tags] | 64B | 1C | | framesize=${64} | phy_cores=${1} -| tc02-1518B-1t1c-1lbvpplacp-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-mrr -| | [Tags] | 1518B | 1C -| | framesize=${1518} | phy_cores=${1} - -| tc03-9000B-1t1c-1lbvpplacp-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-mrr -| | [Tags] | 9000B | 1C -| | framesize=${9000} | phy_cores=${1} - -| tc04-IMIX-1t1c-1lbvpplacp-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-mrr -| | [Tags] | IMIX | 1C -| | framesize=IMIX_v4_1 | phy_cores=${1} - -| tc05-64B-2t2c-1lbvpplacp-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-mrr +| tc02-64B-2c-1lbvpplacp-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-mrr | | [Tags] | 64B | 2C | | framesize=${64} | phy_cores=${2} -| tc06-1518B-2t2c-1lbvpplacp-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-mrr -| | [Tags] | 1518B | 2C -| | framesize=${1518} | phy_cores=${2} - -| tc07-9000B-2t2c-1lbvpplacp-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-mrr -| | [Tags] | 9000B | 2C -| | framesize=${9000} | phy_cores=${2} - -| tc08-IMIX-2t2c-1lbvpplacp-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-mrr -| | [Tags] | IMIX | 2C -| | framesize=IMIX_v4_1 | phy_cores=${2} - -| tc09-64B-4t4c-1lbvpplacp-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-mrr +| tc03-64B-4c-1lbvpplacp-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-mrr | | [Tags] | 64B | 4C | | framesize=${64} | phy_cores=${4} -| tc10-1518B-4t4c-1lbvpplacp-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-mrr +| tc04-1518B-1c-1lbvpplacp-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-mrr +| | [Tags] | 1518B | 1C +| | framesize=${1518} | phy_cores=${1} + +| tc05-1518B-2c-1lbvpplacp-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-mrr +| | [Tags] | 1518B | 2C +| | framesize=${1518} | phy_cores=${2} + +| tc06-1518B-4c-1lbvpplacp-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-mrr | | [Tags] | 1518B | 4C | | framesize=${1518} | phy_cores=${4} -| tc11-9000B-4t4c-1lbvpplacp-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-mrr +| tc07-9000B-1c-1lbvpplacp-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-mrr +| | [Tags] | 9000B | 1C +| | framesize=${9000} | phy_cores=${1} + +| tc08-9000B-2c-1lbvpplacp-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-mrr +| | [Tags] | 9000B | 2C +| | framesize=${9000} | phy_cores=${2} + +| tc09-9000B-4c-1lbvpplacp-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-mrr | | [Tags] | 9000B | 4C | | framesize=${9000} | phy_cores=${4} -| tc12-IMIX-4t4c-1lbvpplacp-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-mrr +| tc10-IMIX-1c-1lbvpplacp-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-mrr +| | [Tags] | IMIX | 1C +| | framesize=IMIX_v4_1 | phy_cores=${1} + +| tc11-IMIX-2c-1lbvpplacp-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-mrr +| | [Tags] | IMIX | 2C +| | framesize=IMIX_v4_1 | phy_cores=${2} + +| tc12-IMIX-4c-1lbvpplacp-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-mrr | | [Tags] | IMIX | 4C | | framesize=IMIX_v4_1 | phy_cores=${4} diff --git a/tests/vpp/perf/vm_vhost/10ge2p1x520-1lbvpplacp-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-ndrpdr.robot b/tests/vpp/perf/vm_vhost/10ge2p1x520-1lbvpplacp-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-ndrpdr.robot new file mode 100644 index 0000000000..e245ac49ea --- /dev/null +++ b/tests/vpp/perf/vm_vhost/10ge2p1x520-1lbvpplacp-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-ndrpdr.robot @@ -0,0 +1,171 @@ +# Copyright (c) 2018 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 | NDRPDR +| ... | NIC_Intel-X520-DA2 | DOT1Q | L2BDMACLRN | BASE | VHOST | 1VM +| ... | VHOST_1024 | LBOND | LBOND_VPP| LBOND_MODE_LACP | LBOND_LB_L34 +| ... +| Suite Setup | Run Keywords +| ... | Set up 3-node performance topology with DUT's NIC model | L2 +| ... | Intel-X520-DA2 +| ... | AND | Set up performance test suite with LACP mode link bonding +| ... +| 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} +| ... +| Test Template | Local Template +| ... +| Documentation | *RFC2544: Pkt throughput L2BD test cases with vhost and vpp link bonding* +| ... +| ... | *[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 VPP +| ... | link bonding (mode LACP, transmit policy l34) on link between DUT1 and +| ... | DUT2 and L2 bridge-domain with 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=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 +| ... | Rate) with non-zero packet loss tolerance (LT) expressed in percentage +| ... | of packets transmitted. NDR and PDR are discovered for different +| ... | Ethernet L2 frame sizes using MLRsearch library. +| ... | Test packets are generated by TG on links to DUTs. TG traffic profile +| ... | contains two L3 flow-groups (flow-group per direction, 254 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. + +*** Variables *** +| ${perf_qemu_qsz}= | 1024 +| ${subid}= | 10 +| ${tag_rewrite}= | pop-1 +| ${overhead}= | ${4} +# Link bonding config +| ${bond_mode}= | lacp +| ${lb_mode}= | l34 +# Socket names +| ${bd_id1}= | 1 +| ${bd_id2}= | 2 +| ${sock1}= | /tmp/sock-1-${bd_id1} +| ${sock2}= | /tmp/sock-1-${bd_id2} +# X520-DA2 bandwidth limit +| ${s_limit}= | ${10000000000} +# Traffic profile: +| ${traffic_profile}= | trex-sl-3n-ethip4-ip4src254 + +*** Keywords *** +| Local Template +| | [Documentation] +| | ... | [Cfg] DUT runs L2BD switching config. +| | ... | Each DUT uses ${phy_cores} physical core(s) for worker threads. +| | ... | [Ver] Measure NDR and PDR values using MLRsearch algorithm.\ +| | ... +| | ... | *Arguments:* +| | ... | - framesize - Framesize in Bytes in integer or string (IMIX_v4_1). +| | ... | Type: integer, string +| | ... | - phy_cores - Number of physical cores. Type: integer +| | ... | - rxq - Number of RX queues, default value: ${None}. Type: integer +| | ... +| | [Arguments] | ${framesize} | ${phy_cores} | ${rxq}=${None} +| | ... +| | Set Test Variable | ${framesize} +| | Set Test Variable | ${min_rate} | ${10000} +| | ${dut1_vm_refs}= | Create Dictionary +| | ${dut2_vm_refs}= | Create Dictionary +| | Set Test Variable | ${dut1_vm_refs} +| | Set Test Variable | ${dut2_vm_refs} +| | ... +| | Given Add worker threads and rxqueues to all DUTs | ${phy_cores} | ${rxq} +| | And Add PCI devices to all DUTs +| | And Add VLAN Strip Offload switch off between DUTs in 3-node single link topology +| | ${max_rate} | ${jumbo} = | Get Max Rate And Jumbo And Handle Multi Seg +| | ... | ${s_limit} | ${framesize} | overhead=${overhead} +| | And Apply startup configuration on all VPP DUTs +| | When Initialize L2 bridge domains with Vhost-User and VLAN with VPP link bonding in a 3-node circular topology +| | ... | ${bd_id1} | ${bd_id2} | ${sock1} | ${sock2} | ${subid} +| | ... | ${tag_rewrite} | ${bond_mode} | ${lb_mode} +| | ${vm1}= | And Configure guest VM with dpdk-testpmd connected via vhost-user +| | ... | ${dut1} | ${sock1} | ${sock2} | DUT1_VM1 +| | ... | jumbo_frames=${jumbo} +| | And 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 +| | ... | jumbo_frames=${jumbo} +| | And Set To Dictionary | ${dut2_vm_refs} | DUT2_VM1 | ${vm2} +| | And All Vpp Interfaces Ready Wait | ${nodes} +| | Then Find NDR and PDR intervals using optimized search +| | ... | ${framesize} | ${traffic_profile} | ${min_rate} | ${max_rate} + +*** Test Cases *** +| tc01-64B-1c-1lbvpplacp-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-ndrpdr +| | [Tags] | 64B | 1C +| | framesize=${64} | phy_cores=${1} + +| tc02-64B-2c-1lbvpplacp-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-ndrpdr +| | [Tags] | 64B | 2C +| | framesize=${64} | phy_cores=${2} + +| tc03-64B-4c-1lbvpplacp-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-ndrpdr +| | [Tags] | 64B | 4C +| | framesize=${64} | phy_cores=${4} + +| tc04-1518B-1c-1lbvpplacp-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-ndrpdr +| | [Tags] | 1518B | 1C +| | framesize=${1518} | phy_cores=${1} + +| tc05-1518B-2c-1lbvpplacp-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-ndrpdr +| | [Tags] | 1518B | 2C +| | framesize=${1518} | phy_cores=${2} + +| tc06-1518B-4c-1lbvpplacp-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-ndrpdr +| | [Tags] | 1518B | 4C +| | framesize=${1518} | phy_cores=${4} + +| tc07-9000B-1c-1lbvpplacp-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-ndrpdr +| | [Tags] | 9000B | 1C +| | framesize=${9000} | phy_cores=${1} + +| tc08-9000B-2c-1lbvpplacp-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-ndrpdr +| | [Tags] | 9000B | 2C +| | framesize=${9000} | phy_cores=${2} + +| tc09-9000B-4c-1lbvpplacp-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-ndrpdr +| | [Tags] | 9000B | 4C +| | framesize=${9000} | phy_cores=${4} + +| tc10-IMIX-1c-1lbvpplacp-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-ndrpdr +| | [Tags] | IMIX | 1C +| | framesize=IMIX_v4_1 | phy_cores=${1} + +| tc11-IMIX-2c-1lbvpplacp-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-ndrpdr +| | [Tags] | IMIX | 2C +| | framesize=IMIX_v4_1 | phy_cores=${2} + +| tc12-IMIX-4c-1lbvpplacp-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-ndrpdr +| | [Tags] | IMIX | 4C +| | framesize=IMIX_v4_1 | phy_cores=${4} diff --git a/tests/vpp/perf/vm_vhost/10ge2p1x520-1lbvpplacp-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-ndrpdrdisc.robot b/tests/vpp/perf/vm_vhost/10ge2p1x520-1lbvpplacp-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-ndrpdrdisc.robot deleted file mode 100644 index c608565e4f..0000000000 --- a/tests/vpp/perf/vm_vhost/10ge2p1x520-1lbvpplacp-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-ndrpdrdisc.robot +++ /dev/null @@ -1,228 +0,0 @@ -# Copyright (c) 2018 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 -| ... | VHOST_1024 | LBOND | LBOND_VPP| LBOND_MODE_LACP | LBOND_LB_L34 -| ... -| Suite Setup | Run Keywords -| ... | Set up 3-node performance topology with DUT's NIC model | L2 -| ... | Intel-X520-DA2 -| ... | AND | Set up performance test suite with LACP mode link bonding -| ... -| 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} -| ... -| Test Template | Local template -| ... -| Documentation | *RFC2544: Packet throughput L2BD test cases with vhost and -| ... | vpp link bonding* -| ... -| ... | *[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 VPP -| ... | link bonding (mode LACP, transmit policy l34) on link between DUT1 and -| ... | DUT2 and L2 bridge-domain with 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=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 -| ... | 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 *** -| ${perf_qemu_qsz}= | 1024 -| ${subid}= | 10 -| ${tag_rewrite}= | pop-1 -| ${vlan_overhead}= | ${4} -# Link bonding config -| ${bond_mode}= | lacp -| ${lb_mode}= | l34 -# 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 *** -| Local template -| | [Arguments] | ${phy_cores} | ${framesize} | ${search_type} | ${rxq}=${None} -| | ... | ${min_rate}=${10000} -| | ... -| | Set Test Variable | ${framesize} -| | Set Test Variable | ${min_rate} -| | ${get_framesize}= | Get Frame Size | ${framesize} -| | ${max_rate}= | Calculate pps | ${s_limit} -| | ... | ${get_framesize + ${vlan_overhead}} -| | ${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} -| | ${jumbo_frames}= | Set Variable If -| | ... | ${get_framesize + ${vlan_overhead}} < ${1522} | ${False} | ${True} -| | ... -| | Given Add worker threads and rxqueues to all DUTs | ${phy_cores} | ${rxq} -| | And Add PCI devices to all DUTs -| | And Add VLAN Strip Offload switch off between DUTs in 3-node single link topology -| | And Run Keyword If | ${get_framesize + ${vlan_overhead}} < ${1522} -| | ... | Add no multi seg to all DUTs -| | And Apply startup configuration on all VPP DUTs -| | When Initialize L2 bridge domains with Vhost-User and VLAN with VPP link bonding in a 3-node circular topology -| | ... | ${bd_id1} | ${bd_id2} | ${sock1} | ${sock2} | ${subid} -| | ... | ${tag_rewrite} | ${bond_mode} | ${lb_mode} -| | ${vm1}= | And Configure guest VM with dpdk-testpmd connected via vhost-user -| | ... | ${dut1} | ${sock1} | ${sock2} | DUT1_VM1 -| | ... | jumbo_frames=${jumbo_frames} -| | And 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 -| | ... | jumbo_frames=${jumbo_frames} -| | And Set To Dictionary | ${dut2_vm_refs} | DUT2_VM1 | ${vm2} -| | And All Vpp Interfaces Ready Wait | ${nodes} -| | Then Run Keyword If | '${search_type}' == 'NDR' -| | ... | Find NDR using binary search and pps -| | ... | ${framesize} | ${binary_min} | ${binary_max} | ${traffic_profile} -| | ... | ${min_rate} | ${max_rate} | ${threshold} -| | ... | ELSE IF | '${search_type}' == 'PDR' -| | ... | Find PDR using binary search and pps -| | ... | ${framesize} | ${binary_min} | ${binary_max} | ${traffic_profile} -| | ... | ${min_rate} | ${max_rate} | ${threshold} -| | ... | ${perf_pdr_loss_acceptance} | ${perf_pdr_loss_acceptance_type} - -*** Test Cases *** -| tc01-64B-1t1c-1lbvpplacp-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-ndrdisc -| | [Tags] | 64B | 1C | NDRDISC -| | phy_cores=${1} | framesize=${64} | search_type=NDR - -| tc02-64B-1t1c-1lbvpplacp-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-pdrdisc -| | [Tags] | 64B | 1C | PDRDISC | SKIP_PATCH -| | phy_cores=${1} | framesize=${64} | search_type=PDR - -| tc03-1518B-1t1c-1lbvpplacp-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-ndrdisc -| | [Tags] | 1518B | 1C | NDRDISC -| | phy_cores=${1} | framesize=${1518} | search_type=NDR - -| tc04-1518B-1t1c-1lbvpplacp-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-pdrdisc -| | [Tags] | 1518B | 1C | PDRDISC | SKIP_PATCH -| | phy_cores=${1} | framesize=${1518} | search_type=PDR - -| tc05-9000B-1t1c-1lbvpplacp-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-ndrdisc -| | [Tags] | 9000B | 1C | NDRDISC -| | phy_cores=${1} | framesize=${9000} | search_type=NDR - -| tc06-9000B-1t1c-1lbvpplacp-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-pdrdisc -| | [Tags] | 9000B | 1C | PDRDISC | SKIP_PATCH -| | phy_cores=${1} | framesize=${9000} | search_type=PDR - -| tc07-IMIX-1t1c-1lbvpplacp-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-ndrdisc -| | [Tags] | IMIX | 1C | NDRDISC -| | phy_cores=${1} | framesize=IMIX_v4_1 | search_type=NDR - -| tc08-IMIX-1t1c-1lbvpplacp-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-pdrdisc -| | [Tags] | IMIX | 1C | PDRDISC | SKIP_PATCH -| | phy_cores=${1} | framesize=IMIX_v4_1 | search_type=PDR - -| tc09-64B-2t2c-1lbvpplacp-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-ndrdisc -| | [Tags] | 64B | 2C | NDRDISC -| | phy_cores=${2} | framesize=${64} | search_type=NDR - -| tc10-64B-2t2c-1lbvpplacp-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-pdrdisc -| | [Tags] | 64B | 2C | PDRDISC | SKIP_PATCH -| | phy_cores=${2} | framesize=${64} | search_type=PDR - -| tc11-1518B-2t2c-1lbvpplacp-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-ndrdisc -| | [Tags] | 1518B | 2C | NDRDISC | SKIP_PATCH -| | phy_cores=${2} | framesize=${1518} | search_type=NDR - -| tc12-1518B-2t2c-1lbvpplacp-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-pdrdisc -| | [Tags] | 1518B | 2C | PDRDISC | SKIP_PATCH -| | phy_cores=${2} | framesize=${1518} | search_type=PDR - -| tc13-9000B-2t2c-1lbvpplacp-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-ndrdisc -| | [Tags] | 9000B | 2C | NDRDISC | SKIP_PATCH -| | phy_cores=${2} | framesize=${9000} | search_type=NDR - -| tc14-9000B-2t2c-1lbvpplacp-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-pdrdisc -| | [Tags] | 9000B | 2C | PDRDISC | SKIP_PATCH -| | phy_cores=${2} | framesize=${9000} | search_type=PDR - -| tc15-IMIX-2t2c-1lbvpplacp-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-ndrdisc -| | [Tags] | IMIX | 2C | NDRDISC | SKIP_PATCH -| | phy_cores=${2} | framesize=IMIX_v4_1 | search_type=NDR - -| tc16-IMIX-2t2c-1lbvpplacp-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-pdrdisc -| | [Tags] | IMIX | 2C | PDRDISC | SKIP_PATCH -| | phy_cores=${2} | framesize=IMIX_v4_1 | search_type=PDR - -| tc17-64B-4t4c-1lbvpplacp-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-ndrdisc -| | [Tags] | 64B | 4C | NDRDISC -| | phy_cores=${4} | framesize=${64} | search_type=NDR - -| tc18-64B-4t4c-1lbvpplacp-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-pdrdisc -| | [Tags] | 64B | 4C | PDRDISC | SKIP_PATCH -| | phy_cores=${4} | framesize=${64} | search_type=PDR - -| tc19-1518B-4t4c-1lbvpplacp-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-ndrdisc -| | [Tags] | 1518B | 4C | NDRDISC | SKIP_PATCH -| | phy_cores=${4} | framesize=${1518} | search_type=NDR - -| tc20-1518B-4t4c-1lbvpplacp-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-pdrdisc -| | [Tags] | 1518B | 4C | PDRDISC | SKIP_PATCH -| | phy_cores=${4} | framesize=${1518} | search_type=PDR - -| tc21-9000B-4t4c-1lbvpplacp-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-ndrdisc -| | [Tags] | 9000B | 4C | NDRDISC | SKIP_PATCH -| | phy_cores=${4} | framesize=${9000} | search_type=NDR - -| tc22-9000B-4t4c-1lbvpplacp-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-pdrdisc -| | [Tags] | 9000B | 4C | PDRDISC | SKIP_PATCH -| | phy_cores=${4} | framesize=${9000} | search_type=PDR - -| tc23-IMIX-4t4c-1lbvpplacp-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-ndrdisc -| | [Tags] | IMIX | 4C | NDRDISC | SKIP_PATCH -| | phy_cores=${4} | framesize=IMIX_v4_1 | search_type=NDR - -| tc24-IMIX-4t4c-1lbvpplacp-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-pdrdisc -| | [Tags] | IMIX | 4C | PDRDISC | SKIP_PATCH -| | phy_cores=${4} | framesize=IMIX_v4_1 | search_type=PDR diff --git a/tests/vpp/perf/vm_vhost/10ge2p1x520-1lbvpplacp-dot1q-l2xcbase-eth-2vhostvr1024-1vm-mrr.robot b/tests/vpp/perf/vm_vhost/10ge2p1x520-1lbvpplacp-dot1q-l2xcbase-eth-2vhostvr1024-1vm-mrr.robot index 4a7ffd3735..9fe2efdedf 100644 --- a/tests/vpp/perf/vm_vhost/10ge2p1x520-1lbvpplacp-dot1q-l2xcbase-eth-2vhostvr1024-1vm-mrr.robot +++ b/tests/vpp/perf/vm_vhost/10ge2p1x520-1lbvpplacp-dot1q-l2xcbase-eth-2vhostvr1024-1vm-mrr.robot @@ -31,7 +31,7 @@ | ... | dut1_node=${dut1} | dut1_vm_refs=${dut1_vm_refs} | ... | dut2_node=${dut2} | dut2_vm_refs=${dut2_vm_refs} | ... -| Test Template | Local template +| Test Template | Local Template | ... | Documentation | *Raw results L2XC test cases with vhost and vpp link bonding* | ... @@ -60,7 +60,7 @@ | ${perf_qemu_qsz}= | 1024 | ${subid}= | 10 | ${tag_rewrite}= | pop-1 -| ${vlan_overhead}= | ${4} +| ${overhead}= | ${4} # Link bonding config | ${bond_mode}= | lacp | ${lb_mode}= | l34 @@ -73,7 +73,7 @@ | ${traffic_profile}= | trex-sl-3n-ethip4-ip4src254 *** Keywords *** -| Local template +| Local Template | | [Documentation] | | ... | [Cfg] DUT runs L2XC switching config. | | ... | Each DUT uses ${phy_cores} physical core(s) for worker threads. @@ -88,83 +88,77 @@ | | ... | | [Arguments] | ${framesize} | ${phy_cores} | ${rxq}=${None} | | ... -| | Set Test Variable | ${framesize} -| | ${get_framesize}= | Get Frame Size | ${framesize} -| | ${max_rate}= | Calculate pps | ${s_limit} -| | ... | ${get_framesize + ${vlan_overhead}} | | ${dut1_vm_refs}= | Create Dictionary | | ${dut2_vm_refs}= | Create Dictionary | | Set Test Variable | ${dut1_vm_refs} | | Set Test Variable | ${dut2_vm_refs} -| | ${jumbo_frames}= | Set Variable If -| | ... | ${get_framesize + ${vlan_overhead}} < ${1522} | ${False} | ${True} | | ... | | Given Add worker threads and rxqueues to all DUTs | ${phy_cores} | ${rxq} | | And Add PCI devices to all DUTs | | And Add VLAN Strip Offload switch off between DUTs in 3-node single link topology -| | And Run Keyword If | ${get_framesize + ${vlan_overhead}} < ${1522} -| | ... | Add no multi seg to all DUTs +| | ${max_rate} | ${jumbo} = | Get Max Rate And Jumbo And Handle Multi Seg +| | ... | ${s_limit} | ${framesize} | overhead=${overhead} | | And Apply startup configuration on all VPP DUTs | | When Initialize L2 xconnect with Vhost-User and VLAN with VPP link bonding in 3-node circular topology | | ... | ${sock1} | ${sock2} | ${subid} | ${tag_rewrite} | ${bond_mode} | | ... | ${lb_mode} | | ${vm1}= | And Configure guest VM with dpdk-testpmd connected via vhost-user | | ... | ${dut1} | ${sock1} | ${sock2} | DUT1_VM1 -| | ... | jumbo_frames=${jumbo_frames} +| | ... | jumbo_frames=${jumbo} | | And 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 -| | ... | jumbo_frames=${jumbo_frames} +| | ... | jumbo_frames=${jumbo} | | And Set To Dictionary | ${dut2_vm_refs} | DUT2_VM1 | ${vm2} | | And All Vpp Interfaces Ready Wait | ${nodes} | | Then Traffic should pass with maximum rate | | ... | ${max_rate}pps | ${framesize} | ${traffic_profile} *** Test Cases *** -| tc01-64B-1t1c-1lbvpplacp-dot1q-l2xcbase-eth-2vhostvr1024-1vm-mrr +| tc01-64B-1c-1lbvpplacp-dot1q-l2xcbase-eth-2vhostvr1024-1vm-mrr | | [Tags] | 64B | 1C | | framesize=${64} | phy_cores=${1} -| tc02-1518B-1t1c-1lbvpplacp-dot1q-l2xcbase-eth-2vhostvr1024-1vm-mrr -| | [Tags] | 1518B | 1C -| | framesize=${1518} | phy_cores=${1} - -| tc03-9000B-1t1c-1lbvpplacp-dot1q-l2xcbase-eth-2vhostvr1024-1vm-mrr -| | [Tags] | 9000B | 1C -| | framesize=${9000} | phy_cores=${1} - -| tc04-IMIX-1t1c-1lbvpplacp-dot1q-l2xcbase-eth-2vhostvr1024-1vm-mrr -| | [Tags] | IMIX | 1C -| | framesize=IMIX_v4_1 | phy_cores=${1} - -| tc05-64B-2t2c-1lbvpplacp-dot1q-l2xcbase-eth-2vhostvr1024-1vm-mrr +| tc02-64B-2c-1lbvpplacp-dot1q-l2xcbase-eth-2vhostvr1024-1vm-mrr | | [Tags] | 64B | 2C | | framesize=${64} | phy_cores=${2} -| tc06-1518B-2t2c-1lbvpplacp-dot1q-l2xcbase-eth-2vhostvr1024-1vm-mrr -| | [Tags] | 1518B | 2C -| | framesize=${1518} | phy_cores=${2} - -| tc07-9000B-2t2c-1lbvpplacp-dot1q-l2xcbase-eth-2vhostvr1024-1vm-mrr -| | [Tags] | 9000B | 2C -| | framesize=${9000} | phy_cores=${2} - -| tc08-IMIX-2t2c-1lbvpplacp-dot1q-l2xcbase-eth-2vhostvr1024-1vm-mrr -| | [Tags] | IMIX | 2C -| | framesize=IMIX_v4_1 | phy_cores=${2} - -| tc09-64B-4t4c-1lbvpplacp-dot1q-l2xcbase-eth-2vhostvr1024-1vm-mrr +| tc03-64B-4c-1lbvpplacp-dot1q-l2xcbase-eth-2vhostvr1024-1vm-mrr | | [Tags] | 64B | 4C | | framesize=${64} | phy_cores=${4} -| tc10-1518B-4t4c-1lbvpplacp-dot1q-l2xcbase-eth-2vhostvr1024-1vm-mrr +| tc04-1518B-1c-1lbvpplacp-dot1q-l2xcbase-eth-2vhostvr1024-1vm-mrr +| | [Tags] | 1518B | 1C +| | framesize=${1518} | phy_cores=${1} + +| tc05-1518B-2c-1lbvpplacp-dot1q-l2xcbase-eth-2vhostvr1024-1vm-mrr +| | [Tags] | 1518B | 2C +| | framesize=${1518} | phy_cores=${2} + +| tc06-1518B-4c-1lbvpplacp-dot1q-l2xcbase-eth-2vhostvr1024-1vm-mrr | | [Tags] | 1518B | 4C | | framesize=${1518} | phy_cores=${4} -| tc11-9000B-4t4c-1lbvpplacp-dot1q-l2xcbase-eth-2vhostvr1024-1vm-mrr +| tc07-9000B-1c-1lbvpplacp-dot1q-l2xcbase-eth-2vhostvr1024-1vm-mrr +| | [Tags] | 9000B | 1C +| | framesize=${9000} | phy_cores=${1} + +| tc08-9000B-2c-1lbvpplacp-dot1q-l2xcbase-eth-2vhostvr1024-1vm-mrr +| | [Tags] | 9000B | 2C +| | framesize=${9000} | phy_cores=${2} + +| tc09-9000B-4c-1lbvpplacp-dot1q-l2xcbase-eth-2vhostvr1024-1vm-mrr | | [Tags] | 9000B | 4C | | framesize=${9000} | phy_cores=${4} -| tc12-IMIX-4t4c-1lbvpplacp-dot1q-l2xcbase-eth-2vhostvr1024-1vm-mrr +| tc10-IMIX-1c-1lbvpplacp-dot1q-l2xcbase-eth-2vhostvr1024-1vm-mrr +| | [Tags] | IMIX | 1C +| | framesize=IMIX_v4_1 | phy_cores=${1} + +| tc11-IMIX-2c-1lbvpplacp-dot1q-l2xcbase-eth-2vhostvr1024-1vm-mrr +| | [Tags] | IMIX | 2C +| | framesize=IMIX_v4_1 | phy_cores=${2} + +| tc12-IMIX-4c-1lbvpplacp-dot1q-l2xcbase-eth-2vhostvr1024-1vm-mrr | | [Tags] | IMIX | 4C | | framesize=IMIX_v4_1 | phy_cores=${4} diff --git a/tests/vpp/perf/vm_vhost/10ge2p1x520-1lbvpplacp-dot1q-l2xcbase-eth-2vhostvr1024-1vm-ndrpdr.robot b/tests/vpp/perf/vm_vhost/10ge2p1x520-1lbvpplacp-dot1q-l2xcbase-eth-2vhostvr1024-1vm-ndrpdr.robot new file mode 100644 index 0000000000..0fa6b5f618 --- /dev/null +++ b/tests/vpp/perf/vm_vhost/10ge2p1x520-1lbvpplacp-dot1q-l2xcbase-eth-2vhostvr1024-1vm-ndrpdr.robot @@ -0,0 +1,169 @@ +# Copyright (c) 2018 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 | NDRPDR +| ... | NIC_Intel-X520-DA2 | DOT1Q | L2XCFWD | BASE | VHOST | 1VM +| ... | VHOST_1024 | LBOND | LBOND_VPP| LBOND_MODE_LACP | LBOND_LB_L34 +| ... +| Suite Setup | Run Keywords +| ... | Set up 3-node performance topology with DUT's NIC model | L2 +| ... | Intel-X520-DA2 +| ... | AND | Set up performance test suite with LACP mode link bonding +| ... +| 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} +| ... +| Test Template | Local Template +| ... +| Documentation | *RFC2544: Pkt throughput L2XC test cases with vhost and vpp link bonding* +| ... +| ... | *[Top] Network Topologies:* TG-DUT1-DUT2-TG 3-node circular topology +| ... | with single links between nodes. +| ... | *[Enc] Packet Encapsulations:* Eth-IPv4 for L2 cross connect. 802.1q +| ... | tagging is applied on link between DUT1 and DUT2. +| ... | *[Cfg] DUT configuration:* DUT1 and DUT2 are configured with VPP +| ... | link bonding (mode LACP, transmit policy l34) on link between DUT1 and +| ... | DUT2 and 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=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 +| ... | Rate) with non-zero packet loss tolerance (LT) expressed in percentage +| ... | of packets transmitted. NDR and PDR are discovered for different +| ... | Ethernet L2 frame sizes using MLRsearch library. +| ... | Test packets are generated by TG on links to DUTs. TG traffic profile +| ... | contains two L3 flow-groups (flow-group per direction, 254 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. + +*** Variables *** +| ${perf_qemu_qsz}= | 1024 +| ${subid}= | 10 +| ${tag_rewrite}= | pop-1 +| ${overhead}= | ${4} +# Link bonding config +| ${bond_mode}= | lacp +| ${lb_mode}= | l34 +# Socket names +| ${sock1}= | /tmp/sock-1 +| ${sock2}= | /tmp/sock-2 +# X520-DA2 bandwidth limit +| ${s_limit}= | ${10000000000} +# Traffic profile: +| ${traffic_profile}= | trex-sl-3n-ethip4-ip4src254 + +*** Keywords *** +| Local Template +| | [Documentation] +| | ... | [Cfg] DUT runs L2XC switching config. +| | ... | Each DUT uses ${phy_cores} physical core(s) for worker threads. +| | ... | [Ver] Measure NDR and PDR values using MLRsearch algorithm.\ +| | ... +| | ... | *Arguments:* +| | ... | - framesize - Framesize in Bytes in integer or string (IMIX_v4_1). +| | ... | Type: integer, string +| | ... | - phy_cores - Number of physical cores. Type: integer +| | ... | - rxq - Number of RX queues, default value: ${None}. Type: integer +| | ... +| | [Arguments] | ${framesize} | ${phy_cores} | ${rxq}=${None} +| | ... +| | Set Test Variable | ${framesize} +| | Set Test Variable | ${min_rate} | ${10000} +| | ${dut1_vm_refs}= | Create Dictionary +| | ${dut2_vm_refs}= | Create Dictionary +| | Set Test Variable | ${dut1_vm_refs} +| | Set Test Variable | ${dut2_vm_refs} +| | ... +| | Given Add worker threads and rxqueues to all DUTs | ${phy_cores} | ${rxq} +| | And Add PCI devices to all DUTs +| | And Add VLAN Strip Offload switch off between DUTs in 3-node single link topology +| | ${max_rate} | ${jumbo} = | Get Max Rate And Jumbo And Handle Multi Seg +| | ... | ${s_limit} | ${framesize} | overhead=${overhead} +| | And Apply startup configuration on all VPP DUTs +| | When Initialize L2 xconnect with Vhost-User and VLAN with VPP link bonding in 3-node circular topology +| | ... | ${sock1} | ${sock2} | ${subid} | ${tag_rewrite} | ${bond_mode} +| | ... | ${lb_mode} +| | ${vm1}= | And Configure guest VM with dpdk-testpmd connected via vhost-user +| | ... | ${dut1} | ${sock1} | ${sock2} | DUT1_VM1 +| | ... | jumbo_frames=${jumbo} +| | And 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 +| | ... | jumbo_frames=${jumbo} +| | And Set To Dictionary | ${dut2_vm_refs} | DUT2_VM1 | ${vm2} +| | And All Vpp Interfaces Ready Wait | ${nodes} +| | Then Find NDR and PDR intervals using optimized search +| | ... | ${framesize} | ${traffic_profile} | ${min_rate} | ${max_rate} + +*** Test Cases *** +| tc01-64B-1c-1lbvpplacp-dot1q-l2xcbase-eth-2vhostvr1024-1vm-ndrpdr +| | [Tags] | 64B | 1C +| | framesize=${64} | phy_cores=${1} + +| tc02-64B-2c-1lbvpplacp-dot1q-l2xcbase-eth-2vhostvr1024-1vm-ndrpdr +| | [Tags] | 64B | 2C +| | framesize=${64} | phy_cores=${2} + +| tc03-64B-4c-1lbvpplacp-dot1q-l2xcbase-eth-2vhostvr1024-1vm-ndrpdr +| | [Tags] | 64B | 4C +| | framesize=${64} | phy_cores=${4} + +| tc04-1518B-1c-1lbvpplacp-dot1q-l2xcbase-eth-2vhostvr1024-1vm-ndrpdr +| | [Tags] | 1518B | 1C +| | framesize=${1518} | phy_cores=${1} + +| tc05-1518B-2c-1lbvpplacp-dot1q-l2xcbase-eth-2vhostvr1024-1vm-ndrpdr +| | [Tags] | 1518B | 2C +| | framesize=${1518} | phy_cores=${2} + +| tc06-1518B-4c-1lbvpplacp-dot1q-l2xcbase-eth-2vhostvr1024-1vm-ndrpdr +| | [Tags] | 1518B | 4C +| | framesize=${1518} | phy_cores=${4} + +| tc07-9000B-1c-1lbvpplacp-dot1q-l2xcbase-eth-2vhostvr1024-1vm-ndrpdr +| | [Tags] | 9000B | 1C +| | framesize=${9000} | phy_cores=${1} + +| tc08-9000B-2c-1lbvpplacp-dot1q-l2xcbase-eth-2vhostvr1024-1vm-ndrpdr +| | [Tags] | 9000B | 2C +| | framesize=${9000} | phy_cores=${2} + +| tc09-9000B-4c-1lbvpplacp-dot1q-l2xcbase-eth-2vhostvr1024-1vm-ndrpdr +| | [Tags] | 9000B | 4C +| | framesize=${9000} | phy_cores=${4} + +| tc10-IMIX-1c-1lbvpplacp-dot1q-l2xcbase-eth-2vhostvr1024-1vm-ndrpdr +| | [Tags] | IMIX | 1C +| | framesize=IMIX_v4_1 | phy_cores=${1} + +| tc11-IMIX-2c-1lbvpplacp-dot1q-l2xcbase-eth-2vhostvr1024-1vm-ndrpdr +| | [Tags] | IMIX | 2C +| | framesize=IMIX_v4_1 | phy_cores=${2} + +| tc12-IMIX-4c-1lbvpplacp-dot1q-l2xcbase-eth-2vhostvr1024-1vm-ndrpdr +| | [Tags] | IMIX | 4C +| | framesize=IMIX_v4_1 | phy_cores=${4} diff --git a/tests/vpp/perf/vm_vhost/10ge2p1x520-1lbvpplacp-dot1q-l2xcbase-eth-2vhostvr1024-1vm-ndrpdrdisc.robot b/tests/vpp/perf/vm_vhost/10ge2p1x520-1lbvpplacp-dot1q-l2xcbase-eth-2vhostvr1024-1vm-ndrpdrdisc.robot deleted file mode 100644 index a42443ce5d..0000000000 --- a/tests/vpp/perf/vm_vhost/10ge2p1x520-1lbvpplacp-dot1q-l2xcbase-eth-2vhostvr1024-1vm-ndrpdrdisc.robot +++ /dev/null @@ -1,228 +0,0 @@ -# Copyright (c) 2018 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 | L2XCFWD | BASE | VHOST | VM -| ... | VHOST_1024 | LBOND | LBOND_VPP| LBOND_MODE_LACP | LBOND_LB_L34 -| ... -| Suite Setup | Run Keywords -| ... | Set up 3-node performance topology with DUT's NIC model | L2 -| ... | Intel-X520-DA2 -| ... | AND | Set up performance test suite with LACP mode link bonding -| ... -| 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} -| ... -| Test Template | Local template -| ... -| Documentation | *RFC2544: Packet throughput L2XC test cases with vhost and -| ... | vpp link bonding* -| ... -| ... | *[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 VPP -| ... | link bonding (mode LACP, transmit policy l34) on link between DUT1 and -| ... | DUT2 and 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=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 -| ... | 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 *** -| ${perf_qemu_qsz}= | 1024 -| ${subid}= | 10 -| ${tag_rewrite}= | pop-1 -| ${vlan_overhead}= | ${4} -# Link bonding config -| ${bond_mode}= | lacp -| ${lb_mode}= | l34 -# 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 *** -| Local template -| | [Arguments] | ${phy_cores} | ${framesize} | ${search_type} | ${rxq}=${None} -| | ... | ${min_rate}=${10000} -| | ... -| | Set Test Variable | ${framesize} -| | Set Test Variable | ${min_rate} -| | ${get_framesize}= | Get Frame Size | ${framesize} -| | ${max_rate}= | Calculate pps | ${s_limit} -| | ... | ${get_framesize + ${vlan_overhead}} -| | ${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} -| | ${jumbo_frames}= | Set Variable If -| | ... | ${get_framesize + ${vlan_overhead}} < ${1522} | ${False} | ${True} -| | ... -| | Given Add worker threads and rxqueues to all DUTs | ${phy_cores} | ${rxq} -| | And Add PCI devices to all DUTs -| | And Add VLAN Strip Offload switch off between DUTs in 3-node single link topology -| | And Run Keyword If | ${get_framesize + ${vlan_overhead}} < ${1522} -| | ... | Add no multi seg to all DUTs -| | And Apply startup configuration on all VPP DUTs -| | When Initialize L2 xconnect with Vhost-User and VLAN with VPP link bonding in 3-node circular topology -| | ... | ${sock1} | ${sock2} | ${subid} | ${tag_rewrite} | ${bond_mode} -| | ... | ${lb_mode} -| | ${vm1}= | And Configure guest VM with dpdk-testpmd connected via vhost-user -| | ... | ${dut1} | ${sock1} | ${sock2} | DUT1_VM1 -| | ... | jumbo_frames=${jumbo_frames} -| | And 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 -| | ... | jumbo_frames=${jumbo_frames} -| | And Set To Dictionary | ${dut2_vm_refs} | DUT2_VM1 | ${vm2} -| | And All Vpp Interfaces Ready Wait | ${nodes} -| | Then Run Keyword If | '${search_type}' == 'NDR' -| | ... | Find NDR using binary search and pps -| | ... | ${framesize} | ${binary_min} | ${binary_max} | ${traffic_profile} -| | ... | ${min_rate} | ${max_rate} | ${threshold} -| | ... | ELSE IF | '${search_type}' == 'PDR' -| | ... | Find PDR using binary search and pps -| | ... | ${framesize} | ${binary_min} | ${binary_max} | ${traffic_profile} -| | ... | ${min_rate} | ${max_rate} | ${threshold} -| | ... | ${perf_pdr_loss_acceptance} | ${perf_pdr_loss_acceptance_type} - -*** Test Cases *** -| tc01-64B-1t1c-1lbvpplacp-dot1q-l2xcbase-eth-2vhostvr1024-1vm-ndrdisc -| | [Tags] | 64B | 1C | NDRDISC -| | phy_cores=${1} | framesize=${64} | search_type=NDR - -| tc02-64B-1t1c-1lbvpplacp-dot1q-l2xcbase-eth-2vhostvr1024-1vm-pdrdisc -| | [Tags] | 64B | 1C | PDRDISC | SKIP_PATCH -| | phy_cores=${1} | framesize=${64} | search_type=PDR - -| tc03-1518B-1t1c-1lbvpplacp-dot1q-l2xcbase-eth-2vhostvr1024-1vm-ndrdisc -| | [Tags] | 1518B | 1C | NDRDISC -| | phy_cores=${1} | framesize=${1518} | search_type=NDR - -| tc04-1518B-1t1c-1lbvpplacp-dot1q-l2xcbase-eth-2vhostvr1024-1vm-pdrdisc -| | [Tags] | 1518B | 1C | PDRDISC | SKIP_PATCH -| | phy_cores=${1} | framesize=${1518} | search_type=PDR - -| tc05-9000B-1t1c-1lbvpplacp-dot1q-l2xcbase-eth-2vhostvr1024-1vm-ndrdisc -| | [Tags] | 9000B | 1C | NDRDISC -| | phy_cores=${1} | framesize=${9000} | search_type=NDR - -| tc06-9000B-1t1c-1lbvpplacp-dot1q-l2xcbase-eth-2vhostvr1024-1vm-pdrdisc -| | [Tags] | 9000B | 1C | PDRDISC | SKIP_PATCH -| | phy_cores=${1} | framesize=${9000} | search_type=PDR - -| tc07-IMIX-1t1c-1lbvpplacp-dot1q-l2xcbase-eth-2vhostvr1024-1vm-ndrdisc -| | [Tags] | IMIX | 1C | NDRDISC -| | phy_cores=${1} | framesize=IMIX_v4_1 | search_type=NDR - -| tc08-IMIX-1t1c-1lbvpplacp-dot1q-l2xcbase-eth-2vhostvr1024-1vm-pdrdisc -| | [Tags] | IMIX | 1C | PDRDISC | SKIP_PATCH -| | phy_cores=${1} | framesize=IMIX_v4_1 | search_type=PDR - -| tc09-64B-2t2c-1lbvpplacp-dot1q-l2xcbase-eth-2vhostvr1024-1vm-ndrdisc -| | [Tags] | 64B | 2C | NDRDISC -| | phy_cores=${2} | framesize=${64} | search_type=NDR - -| tc10-64B-2t2c-1lbvpplacp-dot1q-l2xcbase-eth-2vhostvr1024-1vm-pdrdisc -| | [Tags] | 64B | 2C | PDRDISC | SKIP_PATCH -| | phy_cores=${2} | framesize=${64} | search_type=PDR - -| tc11-1518B-2t2c-1lbvpplacp-dot1q-l2xcbase-eth-2vhostvr1024-1vm-ndrdisc -| | [Tags] | 1518B | 2C | NDRDISC | SKIP_PATCH -| | phy_cores=${2} | framesize=${1518} | search_type=NDR - -| tc12-1518B-2t2c-1lbvpplacp-dot1q-l2xcbase-eth-2vhostvr1024-1vm-pdrdisc -| | [Tags] | 1518B | 2C | PDRDISC | SKIP_PATCH -| | phy_cores=${2} | framesize=${1518} | search_type=PDR - -| tc13-9000B-2t2c-1lbvpplacp-dot1q-l2xcbase-eth-2vhostvr1024-1vm-ndrdisc -| | [Tags] | 9000B | 2C | NDRDISC | SKIP_PATCH -| | phy_cores=${2} | framesize=${9000} | search_type=NDR - -| tc14-9000B-2t2c-1lbvpplacp-dot1q-l2xcbase-eth-2vhostvr1024-1vm-pdrdisc -| | [Tags] | 9000B | 2C | PDRDISC | SKIP_PATCH -| | phy_cores=${2} | framesize=${9000} | search_type=PDR - -| tc15-IMIX-2t2c-1lbvpplacp-dot1q-l2xcbase-eth-2vhostvr1024-1vm-ndrdisc -| | [Tags] | IMIX | 2C | NDRDISC | SKIP_PATCH -| | phy_cores=${2} | framesize=IMIX_v4_1 | search_type=NDR - -| tc16-IMIX-2t2c-1lbvpplacp-dot1q-l2xcbase-eth-2vhostvr1024-1vm-pdrdisc -| | [Tags] | IMIX | 2C | PDRDISC | SKIP_PATCH -| | phy_cores=${2} | framesize=IMIX_v4_1 | search_type=PDR - -| tc17-64B-4t4c-1lbvpplacp-dot1q-l2xcbase-eth-2vhostvr1024-1vm-ndrdisc -| | [Tags] | 64B | 4C | NDRDISC -| | phy_cores=${4} | framesize=${64} | search_type=NDR - -| tc18-64B-4t4c-1lbvpplacp-dot1q-l2xcbase-eth-2vhostvr1024-1vm-pdrdisc -| | [Tags] | 64B | 4C | PDRDISC | SKIP_PATCH -| | phy_cores=${4} | framesize=${64} | search_type=PDR - -| tc19-1518B-4t4c-1lbvpplacp-dot1q-l2xcbase-eth-2vhostvr1024-1vm-ndrdisc -| | [Tags] | 1518B | 4C | NDRDISC | SKIP_PATCH -| | phy_cores=${4} | framesize=${1518} | search_type=NDR - -| tc20-1518B-4t4c-1lbvpplacp-dot1q-l2xcbase-eth-2vhostvr1024-1vm-pdrdisc -| | [Tags] | 1518B | 4C | PDRDISC | SKIP_PATCH -| | phy_cores=${4} | framesize=${1518} | search_type=PDR - -| tc21-9000B-4t4c-1lbvpplacp-dot1q-l2xcbase-eth-2vhostvr1024-1vm-ndrdisc -| | [Tags] | 9000B | 4C | NDRDISC | SKIP_PATCH -| | phy_cores=${4} | framesize=${9000} | search_type=NDR - -| tc22-9000B-4t4c-1lbvpplacp-dot1q-l2xcbase-eth-2vhostvr1024-1vm-pdrdisc -| | [Tags] | 9000B | 4C | PDRDISC | SKIP_PATCH -| | phy_cores=${4} | framesize=${9000} | search_type=PDR - -| tc23-IMIX-4t4c-1lbvpplacp-dot1q-l2xcbase-eth-2vhostvr1024-1vm-ndrdisc -| | [Tags] | IMIX | 4C | NDRDISC | SKIP_PATCH -| | phy_cores=${4} | framesize=IMIX_v4_1 | search_type=NDR - -| tc24-IMIX-4t4c-1lbvpplacp-dot1q-l2xcbase-eth-2vhostvr1024-1vm-pdrdisc -| | [Tags] | IMIX | 4C | PDRDISC | SKIP_PATCH -| | phy_cores=${4} | framesize=IMIX_v4_1 | search_type=PDR diff --git a/tests/vpp/perf/vm_vhost/10ge2p1x520-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-mrr.robot b/tests/vpp/perf/vm_vhost/10ge2p1x520-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-mrr.robot index a4da58c919..5ccc2eb4a2 100644 --- a/tests/vpp/perf/vm_vhost/10ge2p1x520-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-mrr.robot +++ b/tests/vpp/perf/vm_vhost/10ge2p1x520-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-mrr.robot @@ -28,7 +28,7 @@ | ... | dut1_node=${dut1} | dut1_vm_refs=${dut1_vm_refs} | ... | dut2_node=${dut2} | dut2_vm_refs=${dut2_vm_refs} | ... -| Test Template | Local template +| Test Template | Local Template | ... | Documentation | *Raw results L2BD test cases with vhost* | ... @@ -56,6 +56,7 @@ | ${perf_qemu_qsz}= | 1024 | ${subid}= | 10 | ${tag_rewrite}= | pop-1 +| ${overhead}= | ${4} # Socket names | ${bd_id1}= | 1 | ${bd_id2}= | 2 @@ -67,7 +68,7 @@ | ${traffic_profile}= | trex-sl-3n-ethip4-ip4src254 *** Keywords *** -| Local template +| Local Template | | [Documentation] | | ... | [Cfg] DUT runs L2BD switching config. | | ... | Each DUT uses ${phy_cores} physical core(s) for worker threads. @@ -82,80 +83,75 @@ | | ... | | [Arguments] | ${framesize} | ${phy_cores} | ${rxq}=${None} | | ... -| | Set Test Variable | ${framesize} -| | ${get_framesize}= | Get Frame Size | ${framesize} -| | ${max_rate}= | Calculate pps | ${s_limit} | ${get_framesize} | | ${dut1_vm_refs}= | Create Dictionary | | ${dut2_vm_refs}= | Create Dictionary | | Set Test Variable | ${dut1_vm_refs} | | Set Test Variable | ${dut2_vm_refs} -| | ${jumbo_frames}= | Set Variable If | ${get_framesize} < ${1522} -| | ... | ${False} | ${True} | | ... | | Given Add worker threads and rxqueues to all DUTs | ${phy_cores} | ${rxq} | | And Add PCI devices to all DUTs -| | And Run Keyword If | ${get_framesize} < ${1522} -| | ... | Add no multi seg to all DUTs +| | ${max_rate} | ${jumbo} = | Get Max Rate And Jumbo And Handle Multi Seg +| | ... | ${s_limit} | ${framesize} | overhead=${overhead} | | And Apply startup configuration on all VPP DUTs | | When Initialize L2 bridge domains with Vhost-User and VLAN in a 3-node circular topology | | ... | ${bd_id1} | ${bd_id2} | ${sock1} | ${sock2} | ${subid} | | ... | ${tag_rewrite} | | ${vm1}= | And Configure guest VM with dpdk-testpmd connected via vhost-user | | ... | ${dut1} | ${sock1} | ${sock2} | DUT1_VM1 -| | ... | jumbo_frames=${jumbo_frames} +| | ... | jumbo_frames=${jumbo} | | 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 -| | ... | jumbo_frames=${jumbo_frames} +| | ... | jumbo_frames=${jumbo} | | Set To Dictionary | ${dut2_vm_refs} | DUT2_VM1 | ${vm2} | | Then Traffic should pass with maximum rate | | ... | ${max_rate}pps | ${framesize} | ${traffic_profile} *** Test Cases *** -| tc01-64B-1t1c-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-mrr +| tc01-64B-1c-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-mrr | | [Tags] | 64B | 1C | | framesize=${64} | phy_cores=${1} -| tc02-1518B-1t1c-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-mrr -| | [Tags] | 1518B | 1C -| | framesize=${1518} | phy_cores=${1} - -| tc03-9000B-1t1c-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-mrr -| | [Tags] | 9000B | 1C -| | framesize=${9000} | phy_cores=${1} - -| tc04-IMIX-1t1c-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-mrr -| | [Tags] | IMIX | 1C -| | framesize=IMIX_v4_1 | phy_cores=${1} - -| tc05-64B-2t2c-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-mrr +| tc02-64B-2c-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-mrr | | [Tags] | 64B | 2C | | framesize=${64} | phy_cores=${2} -| tc06-1518B-2t2c-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-mrr -| | [Tags] | 1518B | 2C -| | framesize=${1518} | phy_cores=${2} - -| tc07-9000B-2t2c-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-mrr -| | [Tags] | 9000B | 2C -| | framesize=${9000} | phy_cores=${2} - -| tc08-IMIX-2t2c-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-mrr -| | [Tags] | IMIX | 2C -| | framesize=IMIX_v4_1 | phy_cores=${2} - -| tc09-64B-4t4c-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-mrr +| tc03-64B-4c-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-mrr | | [Tags] | 64B | 4C | | framesize=${64} | phy_cores=${4} -| tc10-1518B-4t4c-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-mrr +| tc04-1518B-1c-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-mrr +| | [Tags] | 1518B | 1C +| | framesize=${1518} | phy_cores=${1} + +| tc05-1518B-2c-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-mrr +| | [Tags] | 1518B | 2C +| | framesize=${1518} | phy_cores=${2} + +| tc06-1518B-4c-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-mrr | | [Tags] | 1518B | 4C | | framesize=${1518} | phy_cores=${4} -| tc11-9000B-4t4c-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-mrr +| tc07-9000B-1c-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-mrr +| | [Tags] | 9000B | 1C +| | framesize=${9000} | phy_cores=${1} + +| tc08-9000B-2c-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-mrr +| | [Tags] | 9000B | 2C +| | framesize=${9000} | phy_cores=${2} + +| tc09-9000B-4c-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-mrr | | [Tags] | 9000B | 4C | | framesize=${9000} | phy_cores=${4} -| tc12-IMIX-4t4c-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-mrr +| tc10-IMIX-1c-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-mrr +| | [Tags] | IMIX | 1C +| | framesize=IMIX_v4_1 | phy_cores=${1} + +| tc11-IMIX-2c-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-mrr +| | [Tags] | IMIX | 2C +| | framesize=IMIX_v4_1 | phy_cores=${2} + +| tc12-IMIX-4c-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-mrr | | [Tags] | IMIX | 4C | | framesize=IMIX_v4_1 | phy_cores=${4} diff --git a/tests/vpp/perf/vm_vhost/10ge2p1x520-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-ndrpdr.robot b/tests/vpp/perf/vm_vhost/10ge2p1x520-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-ndrpdr.robot new file mode 100644 index 0000000000..3d77607271 --- /dev/null +++ b/tests/vpp/perf/vm_vhost/10ge2p1x520-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-ndrpdr.robot @@ -0,0 +1,162 @@ +# Copyright (c) 2018 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 | NDRPDR +| ... | NIC_Intel-X520-DA2 | DOT1Q | L2BDMACLRN | BASE | VHOST | 1VM +| ... | VHOST_1024 +| ... +| 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} +| ... +| Test Template | Local Template +| ... +| Documentation | *RFC2544: Pkt 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=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 +| ... | Rate) with non-zero packet loss tolerance (LT) expressed in percentage +| ... | of packets transmitted. NDR and PDR are discovered for different +| ... | Ethernet L2 frame sizes using MLRsearch library. +| ... | Test packets are generated by TG on links to DUTs. TG traffic profile +| ... | contains two L3 flow-groups (flow-group per direction, 254 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. + +*** Variables *** +| ${perf_qemu_qsz}= | 1024 +| ${subid}= | 10 +| ${tag_rewrite}= | pop-1 +| ${overhead}= | ${4} +# Socket names +| ${bd_id1}= | 1 +| ${bd_id2}= | 2 +| ${sock1}= | /tmp/sock-1-${bd_id1} +| ${sock2}= | /tmp/sock-1-${bd_id2} +# X520-DA2 bandwidth limit +| ${s_limit}= | ${10000000000} +# Traffic profile: +| ${traffic_profile}= | trex-sl-3n-ethip4-ip4src254 + +*** Keywords *** +| Local Template +| | [Documentation] +| | ... | [Cfg] DUT runs L2BD switching config. +| | ... | Each DUT uses ${phy_cores} physical core(s) for worker threads. +| | ... | [Ver] Measure NDR and PDR values using MLRsearch algorithm.\ +| | ... +| | ... | *Arguments:* +| | ... | - framesize - Framesize in Bytes in integer or string (IMIX_v4_1). +| | ... | Type: integer, string +| | ... | - phy_cores - Number of physical cores. Type: integer +| | ... | - rxq - Number of RX queues, default value: ${None}. Type: integer +| | ... +| | [Arguments] | ${framesize} | ${phy_cores} | ${rxq}=${None} +| | ... +| | Set Test Variable | ${framesize} +| | Set Test Variable | ${min_rate} | ${10000} +| | ${dut1_vm_refs}= | Create Dictionary +| | ${dut2_vm_refs}= | Create Dictionary +| | Set Test Variable | ${dut1_vm_refs} +| | Set Test Variable | ${dut2_vm_refs} +| | ... +| | Given Add worker threads and rxqueues to all DUTs | ${phy_cores} | ${rxq} +| | And Add PCI devices to all DUTs +| | ${max_rate} | ${jumbo} = | Get Max Rate And Jumbo And Handle Multi Seg +| | ... | ${s_limit} | ${framesize} | overhead=${overhead} +| | And Apply startup configuration on all VPP DUTs +| | When Initialize L2 bridge domains with Vhost-User and VLAN in a 3-node circular topology +| | ... | ${bd_id1} | ${bd_id2} | ${sock1} | ${sock2} | ${subid} +| | ... | ${tag_rewrite} +| | ${vm1}= | And Configure guest VM with dpdk-testpmd connected via vhost-user +| | ... | ${dut1} | ${sock1} | ${sock2} | DUT1_VM1 +| | ... | jumbo_frames=${jumbo} +| | 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 +| | ... | jumbo_frames=${jumbo} +| | Set To Dictionary | ${dut2_vm_refs} | DUT2_VM1 | ${vm2} +| | Then Find NDR and PDR intervals using optimized search +| | ... | ${framesize} | ${traffic_profile} | ${min_rate} | ${max_rate} + +*** Test Cases *** +| tc01-64B-1c-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-ndrpdr +| | [Tags] | 64B | 1C +| | framesize=${64} | phy_cores=${1} + +| tc02-64B-2c-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-ndrpdr +| | [Tags] | 64B | 2C +| | framesize=${64} | phy_cores=${2} + +| tc03-64B-4c-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-ndrpdr +| | [Tags] | 64B | 4C +| | framesize=${64} | phy_cores=${4} + +| tc04-1518B-1c-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-ndrpdr +| | [Tags] | 1518B | 1C +| | framesize=${1518} | phy_cores=${1} + +| tc05-1518B-2c-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-ndrpdr +| | [Tags] | 1518B | 2C +| | framesize=${1518} | phy_cores=${2} + +| tc06-1518B-4c-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-ndrpdr +| | [Tags] | 1518B | 4C +| | framesize=${1518} | phy_cores=${4} + +| tc07-9000B-1c-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-ndrpdr +| | [Tags] | 9000B | 1C +| | framesize=${9000} | phy_cores=${1} + +| tc08-9000B-2c-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-ndrpdr +| | [Tags] | 9000B | 2C +| | framesize=${9000} | phy_cores=${2} + +| tc09-9000B-4c-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-ndrpdr +| | [Tags] | 9000B | 4C +| | framesize=${9000} | phy_cores=${4} + +| tc10-IMIX-1c-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-ndrpdr +| | [Tags] | IMIX | 1C +| | framesize=IMIX_v4_1 | phy_cores=${1} + +| tc11-IMIX-2c-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-ndrpdr +| | [Tags] | IMIX | 2C +| | framesize=IMIX_v4_1 | phy_cores=${2} + +| tc12-IMIX-4c-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-ndrpdr +| | [Tags] | IMIX | 4C +| | framesize=IMIX_v4_1 | phy_cores=${4} diff --git a/tests/vpp/perf/vm_vhost/10ge2p1x520-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-ndrpdrdisc.robot b/tests/vpp/perf/vm_vhost/10ge2p1x520-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-ndrpdrdisc.robot deleted file mode 100644 index 49971c4a3b..0000000000 --- a/tests/vpp/perf/vm_vhost/10ge2p1x520-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-ndrpdrdisc.robot +++ /dev/null @@ -1,706 +0,0 @@ -# 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 | VHOST_1024 -| ... -| 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 *** -| ${perf_qemu_qsz}= | 1024 -| ${subid}= | 10 -| ${tag_rewrite}= | pop-1 -| ${vlan_overhead}= | ${4} -# 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 - -*** Test Cases *** -| tc01-64B-1t1c-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-ndrdisc -| | [Documentation] -| | ... | [Cfg] DUT runs L2BD switching config with 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 | 1C | NDRDISC -| | ... -| | ${framesize}= | Set Variable | ${64} -| | ${min_rate}= | Set Variable | ${10000} -| | ${max_rate}= | Calculate pps | ${s_limit} | ${framesize + ${vlan_overhead}} -| | ${binary_min}= | Set Variable | ${min_rate} -| | ${binary_max}= | Set Variable | ${max_rate} -| | ${threshold}= | Set Variable | ${min_rate} -| | ${dut1_vm_refs}= | Create Dictionary -| | ${dut2_vm_refs}= | Create Dictionary -| | Given Add worker threads and rxqueues to all DUTs | 1 -| | And Add PCI devices to all DUTs -| | And Add no multi seg to all DUTs -| | And Apply startup configuration on all VPP DUTs -| | When Initialize L2 bridge domains with Vhost-User and VLAN in a 3-node circular topology -| | ... | ${bd_id1} | ${bd_id2} | ${sock1} | ${sock2} | ${subid} -| | ... | ${tag_rewrite} -| | ${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} -| | Then Find NDR using binary search and pps | ${framesize} | ${binary_min} -| | ... | ${binary_max} | ${traffic_profile} -| | ... | ${min_rate} | ${max_rate} | ${threshold} - -| tc02-64B-1t1c-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-pdrdisc -| | [Documentation] -| | ... | [Cfg] DUT runs L2BD switching config with 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 | 1C | PDRDISC | SKIP_PATCH -| | ... -| | ${framesize}= | Set Variable | ${64} -| | ${min_rate}= | Set Variable | ${10000} -| | ${max_rate}= | Calculate pps | ${s_limit} | ${framesize + ${vlan_overhead}} -| | ${binary_min}= | Set Variable | ${min_rate} -| | ${binary_max}= | Set Variable | ${max_rate} -| | ${threshold}= | Set Variable | ${min_rate} -| | ${dut1_vm_refs}= | Create Dictionary -| | ${dut2_vm_refs}= | Create Dictionary -| | Given Add worker threads and rxqueues to all DUTs | 1 -| | And Add PCI devices to all DUTs -| | And Add no multi seg to all DUTs -| | And Apply startup configuration on all VPP DUTs -| | When Initialize L2 bridge domains with Vhost-User and VLAN in a 3-node circular topology -| | ... | ${bd_id1} | ${bd_id2} | ${sock1} | ${sock2} | ${subid} -| | ... | ${tag_rewrite} -| | ${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} -| | Then Find PDR using binary search and pps | ${framesize} | ${binary_min} -| | ... | ${binary_max} | ${traffic_profile} -| | ... | ${min_rate} | ${max_rate} | ${threshold} | ${perf_pdr_loss_acceptance} -| | ... | ${perf_pdr_loss_acceptance_type} - -| tc03-1518B-1t1c-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-ndrdisc -| | [Documentation] -| | ... | [Cfg] DUT runs L2BD switching config with 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 | 1C | NDRDISC -| | ... -| | ${framesize}= | Set Variable | ${1518} -| | ${min_rate}= | Set Variable | ${10000} -| | ${max_rate}= | Calculate pps | ${s_limit} | ${framesize + ${vlan_overhead}} -| | ${binary_min}= | Set Variable | ${min_rate} -| | ${binary_max}= | Set Variable | ${max_rate} -| | ${threshold}= | Set Variable | ${min_rate} -| | ${dut1_vm_refs}= | Create Dictionary -| | ${dut2_vm_refs}= | Create Dictionary -| | Given Add worker threads and rxqueues to all DUTs | 1 -| | And Add PCI devices to all DUTs -| | And Add no multi seg to all DUTs -| | And Apply startup configuration on all VPP DUTs -| | When Initialize L2 bridge domains with Vhost-User and VLAN in a 3-node circular topology -| | ... | ${bd_id1} | ${bd_id2} | ${sock1} | ${sock2} | ${subid} -| | ... | ${tag_rewrite} -| | ${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} -| | Then Find NDR using binary search and pps | ${framesize} | ${binary_min} -| | ... | ${binary_max} | ${traffic_profile} -| | ... | ${min_rate} | ${max_rate} | ${threshold} - -| tc04-1518B-1t1c-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-pdrdisc -| | [Documentation] -| | ... | [Cfg] DUT runs L2BD switching config with 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 | 1C | PDRDISC | SKIP_PATCH -| | ... -| | ${framesize}= | Set Variable | ${1518} -| | ${min_rate}= | Set Variable | ${10000} -| | ${max_rate}= | Calculate pps | ${s_limit} | ${framesize + ${vlan_overhead}} -| | ${binary_min}= | Set Variable | ${min_rate} -| | ${binary_max}= | Set Variable | ${max_rate} -| | ${threshold}= | Set Variable | ${min_rate} -| | ${dut1_vm_refs}= | Create Dictionary -| | ${dut2_vm_refs}= | Create Dictionary -| | Given Add worker threads and rxqueues to all DUTs | 1 -| | And Add PCI devices to all DUTs -| | And Add no multi seg to all DUTs -| | And Apply startup configuration on all VPP DUTs -| | When Initialize L2 bridge domains with Vhost-User and VLAN in a 3-node circular topology -| | ... | ${bd_id1} | ${bd_id2} | ${sock1} | ${sock2} | ${subid} -| | ... | ${tag_rewrite} -| | ${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} -| | Then Find PDR using binary search and pps | ${framesize} | ${binary_min} -| | ... | ${binary_max} | ${traffic_profile} -| | ... | ${min_rate} | ${max_rate} | ${threshold} | ${perf_pdr_loss_acceptance} -| | ... | ${perf_pdr_loss_acceptance_type} - -| tc05-IMIX-1t1c-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-ndrdisc -| | [Documentation] -| | ... | [Cfg] DUT runs L2BD switching config with 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 | 1C | NDRDISC -| | ... -| | ${framesize}= | Set Variable | IMIX_v4_1 -| | ${avg_framesize}= | Set Variable | ${357.833} -| | ${min_rate}= | Set Variable | ${10000} -| | ${max_rate}= | Calculate pps | ${s_limit} | ${avg_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 -| | Given Add worker threads and rxqueues to all DUTs | 1 -| | And Add PCI devices to all DUTs -| | And Add no multi seg to all DUTs -| | And Apply startup configuration on all VPP DUTs -| | When Initialize L2 bridge domains with Vhost-User and VLAN in a 3-node circular topology -| | ... | ${bd_id1} | ${bd_id2} | ${sock1} | ${sock2} | ${subid} -| | ... | ${tag_rewrite} -| | ${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} -| | Then Find NDR using binary search and pps | ${framesize} | ${binary_min} -| | ... | ${binary_max} | ${traffic_profile} -| | ... | ${min_rate} | ${max_rate} | ${threshold} - -| tc06-IMIX-1t1c-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-pdrdisc -| | [Documentation] -| | ... | [Cfg] DUT runs L2BD switching config with 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 | 1C | PDRDISC | SKIP_PATCH -| | ... -| | ${framesize}= | Set Variable | IMIX_v4_1 -| | ${avg_framesize}= | Set Variable | ${357.833} -| | ${min_rate}= | Set Variable | ${10000} -| | ${max_rate}= | Calculate pps | ${s_limit} | ${avg_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 -| | Given Add worker threads and rxqueues to all DUTs | 1 -| | And Add PCI devices to all DUTs -| | And Add no multi seg to all DUTs -| | And Apply startup configuration on all VPP DUTs -| | When Initialize L2 bridge domains with Vhost-User and VLAN in a 3-node circular topology -| | ... | ${bd_id1} | ${bd_id2} | ${sock1} | ${sock2} | ${subid} -| | ... | ${tag_rewrite} -| | ${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} -| | Then Find PDR using binary search and pps | ${framesize} | ${binary_min} -| | ... | ${binary_max} | ${traffic_profile} -| | ... | ${min_rate} | ${max_rate} | ${threshold} | ${perf_pdr_loss_acceptance} -| | ... | ${perf_pdr_loss_acceptance_type} - -| tc07-64B-2t2c-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-ndrdisc -| | [Documentation] -| | ... | [Cfg] DUT runs L2BD switching config with 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 | 2C | NDRDISC -| | ... -| | ${framesize}= | Set Variable | ${64} -| | ${min_rate}= | Set Variable | ${10000} -| | ${max_rate}= | Calculate pps | ${s_limit} | ${framesize + ${vlan_overhead}} -| | ${binary_min}= | Set Variable | ${min_rate} -| | ${binary_max}= | Set Variable | ${max_rate} -| | ${threshold}= | Set Variable | ${min_rate} -| | ${dut1_vm_refs}= | Create Dictionary -| | ${dut2_vm_refs}= | Create Dictionary -| | Given Add worker threads and rxqueues to all DUTs | 2 -| | And Add PCI devices to all DUTs -| | And Add no multi seg to all DUTs -| | And Apply startup configuration on all VPP DUTs -| | When Initialize L2 bridge domains with Vhost-User and VLAN in a 3-node circular topology -| | ... | ${bd_id1} | ${bd_id2} | ${sock1} | ${sock2} | ${subid} -| | ... | ${tag_rewrite} -| | ${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} -| | Then Find NDR using binary search and pps | ${framesize} | ${binary_min} -| | ... | ${binary_max} | ${traffic_profile} -| | ... | ${min_rate} | ${max_rate} | ${threshold} - -| tc08-64B-2t2c-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-pdrdisc -| | [Documentation] -| | ... | [Cfg] DUT runs L2BD switching config with 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 | 2C | PDRDISC | SKIP_PATCH -| | ... -| | ${framesize}= | Set Variable | ${64} -| | ${min_rate}= | Set Variable | ${10000} -| | ${max_rate}= | Calculate pps | ${s_limit} | ${framesize + ${vlan_overhead}} -| | ${binary_min}= | Set Variable | ${min_rate} -| | ${binary_max}= | Set Variable | ${max_rate} -| | ${threshold}= | Set Variable | ${min_rate} -| | ${dut1_vm_refs}= | Create Dictionary -| | ${dut2_vm_refs}= | Create Dictionary -| | Given Add worker threads and rxqueues to all DUTs | 2 -| | And Add PCI devices to all DUTs -| | And Add no multi seg to all DUTs -| | And Apply startup configuration on all VPP DUTs -| | When Initialize L2 bridge domains with Vhost-User and VLAN in a 3-node circular topology -| | ... | ${bd_id1} | ${bd_id2} | ${sock1} | ${sock2} | ${subid} -| | ... | ${tag_rewrite} -| | ${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} -| | Then Find PDR using binary search and pps | ${framesize} | ${binary_min} -| | ... | ${binary_max} | ${traffic_profile} -| | ... | ${min_rate} | ${max_rate} | ${threshold} | ${perf_pdr_loss_acceptance} -| | ... | ${perf_pdr_loss_acceptance_type} - -| tc09-1518B-2t2c-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-ndrdisc -| | [Documentation] -| | ... | [Cfg] DUT runs L2BD switching config with 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 | 2C | NDRDISC | SKIP_PATCH -| | ... -| | ${framesize}= | Set Variable | ${1518} -| | ${min_rate}= | Set Variable | ${10000} -| | ${max_rate}= | Calculate pps | ${s_limit} | ${framesize + ${vlan_overhead}} -| | ${binary_min}= | Set Variable | ${min_rate} -| | ${binary_max}= | Set Variable | ${max_rate} -| | ${threshold}= | Set Variable | ${min_rate} -| | ${dut1_vm_refs}= | Create Dictionary -| | ${dut2_vm_refs}= | Create Dictionary -| | Given Add worker threads and rxqueues to all DUTs | 2 -| | And Add PCI devices to all DUTs -| | And Add no multi seg to all DUTs -| | And Apply startup configuration on all VPP DUTs -| | When Initialize L2 bridge domains with Vhost-User and VLAN in a 3-node circular topology -| | ... | ${bd_id1} | ${bd_id2} | ${sock1} | ${sock2} | ${subid} -| | ... | ${tag_rewrite} -| | ${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} -| | Then Find NDR using binary search and pps | ${framesize} | ${binary_min} -| | ... | ${binary_max} | ${traffic_profile} -| | ... | ${min_rate} | ${max_rate} | ${threshold} - -| tc10-1518B-2t2c-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-pdrdisc -| | [Documentation] -| | ... | [Cfg] DUT runs L2BD switching config with 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 | 2C | PDRDISC | SKIP_PATCH -| | ... -| | ${framesize}= | Set Variable | ${1518} -| | ${min_rate}= | Set Variable | ${10000} -| | ${max_rate}= | Calculate pps | ${s_limit} | ${framesize + ${vlan_overhead}} -| | ${binary_min}= | Set Variable | ${min_rate} -| | ${binary_max}= | Set Variable | ${max_rate} -| | ${threshold}= | Set Variable | ${min_rate} -| | ${dut1_vm_refs}= | Create Dictionary -| | ${dut2_vm_refs}= | Create Dictionary -| | Given Add worker threads and rxqueues to all DUTs | 2 -| | And Add PCI devices to all DUTs -| | And Add no multi seg to all DUTs -| | And Apply startup configuration on all VPP DUTs -| | When Initialize L2 bridge domains with Vhost-User and VLAN in a 3-node circular topology -| | ... | ${bd_id1} | ${bd_id2} | ${sock1} | ${sock2} | ${subid} -| | ... | ${tag_rewrite} -| | ${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} -| | Then Find PDR using binary search and pps | ${framesize} | ${binary_min} -| | ... | ${binary_max} | ${traffic_profile} -| | ... | ${min_rate} | ${max_rate} | ${threshold} | ${perf_pdr_loss_acceptance} -| | ... | ${perf_pdr_loss_acceptance_type} - -| tc11-IMIX-2t2c-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-ndrdisc -| | [Documentation] -| | ... | [Cfg] DUT runs L2BD switching config with 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 | 2C | NDRDISC | SKIP_PATCH -| | ... -| | ${framesize}= | Set Variable | IMIX_v4_1 -| | ${avg_framesize}= | Set Variable | ${357.833} -| | ${min_rate}= | Set Variable | ${10000} -| | ${max_rate}= | Calculate pps | ${s_limit} | ${avg_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 -| | Given Add worker threads and rxqueues to all DUTs | 2 -| | And Add PCI devices to all DUTs -| | And Add no multi seg to all DUTs -| | And Apply startup configuration on all VPP DUTs -| | When Initialize L2 bridge domains with Vhost-User and VLAN in a 3-node circular topology -| | ... | ${bd_id1} | ${bd_id2} | ${sock1} | ${sock2} | ${subid} -| | ... | ${tag_rewrite} -| | ${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} -| | Then Find NDR using binary search and pps | ${framesize} | ${binary_min} -| | ... | ${binary_max} | ${traffic_profile} -| | ... | ${min_rate} | ${max_rate} | ${threshold} - -| tc12-IMIX-2t2c-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-pdrdisc -| | [Documentation] -| | ... | [Cfg] DUT runs L2BD switching config with 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 | 2C | PDRDISC | SKIP_PATCH -| | ... -| | ${framesize}= | Set Variable | IMIX_v4_1 -| | ${avg_framesize}= | Set Variable | ${357.833} -| | ${min_rate}= | Set Variable | ${10000} -| | ${max_rate}= | Calculate pps | ${s_limit} | ${avg_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 -| | Given Add worker threads and rxqueues to all DUTs | 2 -| | And Add PCI devices to all DUTs -| | And Add no multi seg to all DUTs -| | And Apply startup configuration on all VPP DUTs -| | When Initialize L2 bridge domains with Vhost-User and VLAN in a 3-node circular topology -| | ... | ${bd_id1} | ${bd_id2} | ${sock1} | ${sock2} | ${subid} -| | ... | ${tag_rewrite} -| | ${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} -| | Then Find PDR using binary search and pps | ${framesize} | ${binary_min} -| | ... | ${binary_max} | ${traffic_profile} -| | ... | ${min_rate} | ${max_rate} | ${threshold} | ${perf_pdr_loss_acceptance} -| | ... | ${perf_pdr_loss_acceptance_type} - -| tc13-64B-4t4c-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-ndrdisc -| | [Documentation] -| | ... | [Cfg] DUT runs L2BD switching config with 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 | 4C | NDRDISC -| | ... -| | ${framesize}= | Set Variable | ${64} -| | ${min_rate}= | Set Variable | ${10000} -| | ${max_rate}= | Calculate pps | ${s_limit} | ${framesize + ${vlan_overhead}} -| | ${binary_min}= | Set Variable | ${min_rate} -| | ${binary_max}= | Set Variable | ${max_rate} -| | ${threshold}= | Set Variable | ${min_rate} -| | ${dut1_vm_refs}= | Create Dictionary -| | ${dut2_vm_refs}= | Create Dictionary -| | Given Add worker threads and rxqueues to all DUTs | 4 -| | And Add PCI devices to all DUTs -| | And Add no multi seg to all DUTs -| | And Apply startup configuration on all VPP DUTs -| | When Initialize L2 bridge domains with Vhost-User and VLAN in a 3-node circular topology -| | ... | ${bd_id1} | ${bd_id2} | ${sock1} | ${sock2} | ${subid} -| | ... | ${tag_rewrite} -| | ${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} -| | Then Find NDR using binary search and pps | ${framesize} | ${binary_min} -| | ... | ${binary_max} | ${traffic_profile} -| | ... | ${min_rate} | ${max_rate} | ${threshold} - -| tc14-64B-4t4c-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-pdrdisc -| | [Documentation] -| | ... | [Cfg] DUT runs L2BD switching config with 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 | 4C | PDRDISC | SKIP_PATCH -| | ... -| | ${framesize}= | Set Variable | ${64} -| | ${min_rate}= | Set Variable | ${10000} -| | ${max_rate}= | Calculate pps | ${s_limit} | ${framesize + ${vlan_overhead}} -| | ${binary_min}= | Set Variable | ${min_rate} -| | ${binary_max}= | Set Variable | ${max_rate} -| | ${threshold}= | Set Variable | ${min_rate} -| | ${dut1_vm_refs}= | Create Dictionary -| | ${dut2_vm_refs}= | Create Dictionary -| | Given Add worker threads and rxqueues to all DUTs | 4 -| | And Add PCI devices to all DUTs -| | And Add no multi seg to all DUTs -| | And Apply startup configuration on all VPP DUTs -| | When Initialize L2 bridge domains with Vhost-User and VLAN in a 3-node circular topology -| | ... | ${bd_id1} | ${bd_id2} | ${sock1} | ${sock2} | ${subid} -| | ... | ${tag_rewrite} -| | ${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} -| | Then Find PDR using binary search and pps | ${framesize} | ${binary_min} -| | ... | ${binary_max} | ${traffic_profile} -| | ... | ${min_rate} | ${max_rate} | ${threshold} | ${perf_pdr_loss_acceptance} -| | ... | ${perf_pdr_loss_acceptance_type} - -| tc15-1518B-4t4c-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-ndrdisc -| | [Documentation] -| | ... | [Cfg] DUT runs L2BD switching config with 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 | 4C | NDRDISC | SKIP_PATCH -| | ... -| | ${framesize}= | Set Variable | ${1518} -| | ${min_rate}= | Set Variable | ${10000} -| | ${max_rate}= | Calculate pps | ${s_limit} | ${framesize + ${vlan_overhead}} -| | ${binary_min}= | Set Variable | ${min_rate} -| | ${binary_max}= | Set Variable | ${max_rate} -| | ${threshold}= | Set Variable | ${min_rate} -| | ${dut1_vm_refs}= | Create Dictionary -| | ${dut2_vm_refs}= | Create Dictionary -| | Given Add worker threads and rxqueues to all DUTs | 4 -| | And Add PCI devices to all DUTs -| | And Add no multi seg to all DUTs -| | And Apply startup configuration on all VPP DUTs -| | When Initialize L2 bridge domains with Vhost-User and VLAN in a 3-node circular topology -| | ... | ${bd_id1} | ${bd_id2} | ${sock1} | ${sock2} | ${subid} -| | ... | ${tag_rewrite} -| | ${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} -| | Then Find NDR using binary search and pps | ${framesize} | ${binary_min} -| | ... | ${binary_max} | ${traffic_profile} -| | ... | ${min_rate} | ${max_rate} | ${threshold} - -| tc16-1518B-4t4c-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-pdrdisc -| | [Documentation] -| | ... | [Cfg] DUT runs L2BD switching config with 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 | 4C | PDRDISC | SKIP_PATCH -| | ... -| | ${framesize}= | Set Variable | ${1518} -| | ${min_rate}= | Set Variable | ${10000} -| | ${max_rate}= | Calculate pps | ${s_limit} | ${framesize + ${vlan_overhead}} -| | ${binary_min}= | Set Variable | ${min_rate} -| | ${binary_max}= | Set Variable | ${max_rate} -| | ${threshold}= | Set Variable | ${min_rate} -| | ${dut1_vm_refs}= | Create Dictionary -| | ${dut2_vm_refs}= | Create Dictionary -| | Given Add worker threads and rxqueues to all DUTs | 4 -| | And Add PCI devices to all DUTs -| | And Add no multi seg to all DUTs -| | And Apply startup configuration on all VPP DUTs -| | When Initialize L2 bridge domains with Vhost-User and VLAN in a 3-node circular topology -| | ... | ${bd_id1} | ${bd_id2} | ${sock1} | ${sock2} | ${subid} -| | ... | ${tag_rewrite} -| | ${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} -| | Then Find PDR using binary search and pps | ${framesize} | ${binary_min} -| | ... | ${binary_max} | ${traffic_profile} -| | ... | ${min_rate} | ${max_rate} | ${threshold} | ${perf_pdr_loss_acceptance} -| | ... | ${perf_pdr_loss_acceptance_type} - -| tc17-IMIX-4t4c-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-ndrdisc -| | [Documentation] -| | ... | [Cfg] DUT runs L2BD switching config with 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 | 4C | NDRDISC | SKIP_PATCH -| | ... -| | ${framesize}= | Set Variable | IMIX_v4_1 -| | ${avg_framesize}= | Set Variable | ${357.833} -| | ${min_rate}= | Set Variable | ${10000} -| | ${max_rate}= | Calculate pps | ${s_limit} | ${avg_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 -| | Given Add worker threads and rxqueues to all DUTs | 4 -| | And Add PCI devices to all DUTs -| | And Add no multi seg to all DUTs -| | And Apply startup configuration on all VPP DUTs -| | When Initialize L2 bridge domains with Vhost-User and VLAN in a 3-node circular topology -| | ... | ${bd_id1} | ${bd_id2} | ${sock1} | ${sock2} | ${subid} -| | ... | ${tag_rewrite} -| | ${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} -| | Then Find NDR using binary search and pps | ${framesize} | ${binary_min} -| | ... | ${binary_max} | ${traffic_profile} -| | ... | ${min_rate} | ${max_rate} | ${threshold} - -| tc18-IMIX-4t4c-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-pdrdisc -| | [Documentation] -| | ... | [Cfg] DUT runs L2BD switching config with 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 | 4C | PDRDISC | SKIP_PATCH -| | ... -| | ${framesize}= | Set Variable | IMIX_v4_1 -| | ${avg_framesize}= | Set Variable | ${357.833} -| | ${min_rate}= | Set Variable | ${10000} -| | ${max_rate}= | Calculate pps | ${s_limit} | ${avg_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 -| | Given Add worker threads and rxqueues to all DUTs | 4 -| | And Add PCI devices to all DUTs -| | And Add no multi seg to all DUTs -| | And Apply startup configuration on all VPP DUTs -| | When Initialize L2 bridge domains with Vhost-User and VLAN in a 3-node circular topology -| | ... | ${bd_id1} | ${bd_id2} | ${sock1} | ${sock2} | ${subid} -| | ... | ${tag_rewrite} -| | ${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} -| | Then Find PDR using binary search and pps | ${framesize} | ${binary_min} -| | ... | ${binary_max} | ${traffic_profile} -| | ... | ${min_rate} | ${max_rate} | ${threshold} | ${perf_pdr_loss_acceptance} -| | ... | ${perf_pdr_loss_acceptance_type} diff --git a/tests/vpp/perf/vm_vhost/10ge2p1x520-dot1q-l2xcbase-eth-2vhostvr1024-1vm-mrr.robot b/tests/vpp/perf/vm_vhost/10ge2p1x520-dot1q-l2xcbase-eth-2vhostvr1024-1vm-mrr.robot index ab465feaf9..b4f42e404c 100644 --- a/tests/vpp/perf/vm_vhost/10ge2p1x520-dot1q-l2xcbase-eth-2vhostvr1024-1vm-mrr.robot +++ b/tests/vpp/perf/vm_vhost/10ge2p1x520-dot1q-l2xcbase-eth-2vhostvr1024-1vm-mrr.robot @@ -27,7 +27,7 @@ | ... | dut1_node=${dut1} | dut1_vm_refs=${dut1_vm_refs} | ... | dut2_node=${dut2} | dut2_vm_refs=${dut2_vm_refs} | ... -| Test Template | Local template +| Test Template | Local Template | ... | Documentation | *Raw results L2XC test cases with vhost* | ... @@ -55,6 +55,7 @@ | ${perf_qemu_qsz}= | 1024 | ${subid}= | 10 | ${tag_rewrite}= | pop-1 +| ${overhead}= | ${4} # Socket names | ${sock1}= | /tmp/sock-1 | ${sock2}= | /tmp/sock-2 @@ -64,7 +65,7 @@ | ${traffic_profile}= | trex-sl-3n-ethip4-ip4src254 *** Keywords *** -| Local template +| Local Template | | [Documentation] | | ... | [Cfg] DUT runs L2XC switching config with. | | ... | Each DUT uses ${phy_cores} physical core(s) for worker threads. @@ -79,79 +80,74 @@ | | ... | | [Arguments] | ${framesize} | ${phy_cores} | ${rxq}=${None} | | ... -| | Set Test Variable | ${framesize} -| | ${get_framesize}= | Get Frame Size | ${framesize} -| | ${max_rate}= | Calculate pps | ${s_limit} | ${get_framesize} | | ${dut1_vm_refs}= | Create Dictionary | | ${dut2_vm_refs}= | Create Dictionary | | Set Test Variable | ${dut1_vm_refs} | | Set Test Variable | ${dut2_vm_refs} -| | ${jumbo_frames}= | Set Variable If | ${get_framesize} < ${1522} -| | ... | ${False} | ${True} | | ... | | Given Add worker threads and rxqueues to all DUTs | ${phy_cores} | ${rxq} | | And Add PCI devices to all DUTs -| | And Run Keyword If | ${get_framesize} < ${1522} -| | ... | Add no multi seg to all DUTs +| | ${max_rate} | ${jumbo} = | Get Max Rate And Jumbo And Handle Multi Seg +| | ... | ${s_limit} | ${framesize} | overhead=${overhead} | | And Apply startup configuration on all VPP DUTs | | When Initialize L2 xconnect with Vhost-User and VLAN in 3-node circular topology | | ... | ${sock1} | ${sock2} | ${subid} | ${tag_rewrite} | | ${vm1}= | And Configure guest VM with dpdk-testpmd connected via vhost-user | | ... | ${dut1} | ${sock1} | ${sock2} | DUT1_VM1 -| | ... | jumbo_frames=${jumbo_frames} +| | ... | jumbo_frames=${jumbo} | | 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 -| | ... | jumbo_frames=${jumbo_frames} +| | ... | jumbo_frames=${jumbo} | | Set To Dictionary | ${dut2_vm_refs} | DUT2_VM1 | ${vm2} | | Then Traffic should pass with maximum rate | | ... | ${max_rate}pps | ${framesize} | ${traffic_profile} *** Test Cases *** -| tc01-64B-1t1c-dot1q-l2xcbase-eth-2vhostvr1024-1vm-mrr +| tc01-64B-1c-dot1q-l2xcbase-eth-2vhostvr1024-1vm-mrr | | [Tags] | 64B | 1C | | framesize=${64} | phy_cores=${1} -| tc02-1518B-1t1c-dot1q-l2xcbase-eth-2vhostvr1024-1vm-mrr -| | [Tags] | 1518B | 1C -| | framesize=${1518} | phy_cores=${1} - -| tc03-9000B-1t1c-dot1q-l2xcbase-eth-2vhostvr1024-1vm-mrr -| | [Tags] | 9000B | 1C -| | framesize=${9000} | phy_cores=${1} - -| tc04-IMIX-1t1c-dot1q-l2xcbase-eth-2vhostvr1024-1vm-mrr -| | [Tags] | IMIX | 1C -| | framesize=IMIX_v4_1 | phy_cores=${1} - -| tc05-64B-2t2c-dot1q-l2xcbase-eth-2vhostvr1024-1vm-mrr +| tc02-64B-2c-dot1q-l2xcbase-eth-2vhostvr1024-1vm-mrr | | [Tags] | 64B | 2C | | framesize=${64} | phy_cores=${2} -| tc06-1518B-2t2c-dot1q-l2xcbase-eth-2vhostvr1024-1vm-mrr -| | [Tags] | 1518B | 2C -| | framesize=${1518} | phy_cores=${2} - -| tc07-9000B-2t2c-dot1q-l2xcbase-eth-2vhostvr1024-1vm-mrr -| | [Tags] | 9000B | 2C -| | framesize=${9000} | phy_cores=${2} - -| tc08-IMIX-2t2c-dot1q-l2xcbase-eth-2vhostvr1024-1vm-mrr -| | [Tags] | IMIX | 2C -| | framesize=IMIX_v4_1 | phy_cores=${2} - -| tc09-64B-4t4c-dot1q-l2xcbase-eth-2vhostvr1024-1vm-mrr +| tc03-64B-4c-dot1q-l2xcbase-eth-2vhostvr1024-1vm-mrr | | [Tags] | 64B | 4C | | framesize=${64} | phy_cores=${4} -| tc10-1518B-4t4c-dot1q-l2xcbase-eth-2vhostvr1024-1vm-mrr +| tc04-1518B-1c-dot1q-l2xcbase-eth-2vhostvr1024-1vm-mrr +| | [Tags] | 1518B | 1C +| | framesize=${1518} | phy_cores=${1} + +| tc05-1518B-2c-dot1q-l2xcbase-eth-2vhostvr1024-1vm-mrr +| | [Tags] | 1518B | 2C +| | framesize=${1518} | phy_cores=${2} + +| tc06-1518B-4c-dot1q-l2xcbase-eth-2vhostvr1024-1vm-mrr | | [Tags] | 1518B | 4C | | framesize=${1518} | phy_cores=${4} -| tc11-9000B-4t4c-dot1q-l2xcbase-eth-2vhostvr1024-1vm-mrr +| tc07-9000B-1c-dot1q-l2xcbase-eth-2vhostvr1024-1vm-mrr +| | [Tags] | 9000B | 1C +| | framesize=${9000} | phy_cores=${1} + +| tc08-9000B-2c-dot1q-l2xcbase-eth-2vhostvr1024-1vm-mrr +| | [Tags] | 9000B | 2C +| | framesize=${9000} | phy_cores=${2} + +| tc09-9000B-4c-dot1q-l2xcbase-eth-2vhostvr1024-1vm-mrr | | [Tags] | 9000B | 4C | | framesize=${9000} | phy_cores=${4} -| tc12-IMIX-4t4c-dot1q-l2xcbase-eth-2vhostvr1024-1vm-mrr +| tc10-IMIX-1c-dot1q-l2xcbase-eth-2vhostvr1024-1vm-mrr +| | [Tags] | IMIX | 1C +| | framesize=IMIX_v4_1 | phy_cores=${1} + +| tc11-IMIX-2c-dot1q-l2xcbase-eth-2vhostvr1024-1vm-mrr +| | [Tags] | IMIX | 2C +| | framesize=IMIX_v4_1 | phy_cores=${2} + +| tc12-IMIX-4c-dot1q-l2xcbase-eth-2vhostvr1024-1vm-mrr | | [Tags] | IMIX | 4C | | framesize=IMIX_v4_1 | phy_cores=${4} diff --git a/tests/vpp/perf/vm_vhost/10ge2p1x520-dot1q-l2xcbase-eth-2vhostvr1024-1vm-ndrpdr.robot b/tests/vpp/perf/vm_vhost/10ge2p1x520-dot1q-l2xcbase-eth-2vhostvr1024-1vm-ndrpdr.robot new file mode 100644 index 0000000000..2f80e1f2d3 --- /dev/null +++ b/tests/vpp/perf/vm_vhost/10ge2p1x520-dot1q-l2xcbase-eth-2vhostvr1024-1vm-ndrpdr.robot @@ -0,0 +1,158 @@ +# Copyright (c) 2018 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 | NDRPDR +| ... | NIC_Intel-X520-DA2 | DOT1Q | L2XCFWD | BASE | VHOST | 1VM | VHOST_1024 +| ... +| 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} +| ... +| Test Template | Local Template +| ... +| Documentation | *RFC2544: Pkt 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 cross connect. 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=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 +| ... | Rate) with non-zero packet loss tolerance (LT) expressed in percentage +| ... | of packets transmitted. NDR and PDR are discovered for different +| ... | Ethernet L2 frame sizes using MLRsearch library. +| ... | Test packets are generated by TG on links to DUTs. TG traffic profile +| ... | contains two L3 flow-groups (flow-group per direction, 254 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. + +*** Variables *** +| ${perf_qemu_qsz}= | 1024 +| ${subid}= | 10 +| ${tag_rewrite}= | pop-1 +| ${overhead}= | ${4} +# Socket names +| ${sock1}= | /tmp/sock-1 +| ${sock2}= | /tmp/sock-2 +# X520-DA2 bandwidth limit +| ${s_limit}= | ${10000000000} +# Traffic profile: +| ${traffic_profile}= | trex-sl-3n-ethip4-ip4src254 + +*** Keywords *** +| Local Template +| | [Documentation] +| | ... | [Cfg] DUT runs L2XC switching config with. +| | ... | Each DUT uses ${phy_cores} physical core(s) for worker threads. +| | ... | [Ver] Measure NDR and PDR values using MLRsearch algorithm.\ +| | ... +| | ... | *Arguments:* +| | ... | - framesize - Framesize in Bytes in integer or string (IMIX_v4_1). +| | ... | Type: integer, string +| | ... | - phy_cores - Number of physical cores. Type: integer +| | ... | - rxq - Number of RX queues, default value: ${None}. Type: integer +| | ... +| | [Arguments] | ${framesize} | ${phy_cores} | ${rxq}=${None} +| | ... +| | Set Test Variable | ${framesize} +| | Set Test Variable | ${min_rate} | ${10000} +| | ${dut1_vm_refs}= | Create Dictionary +| | ${dut2_vm_refs}= | Create Dictionary +| | Set Test Variable | ${dut1_vm_refs} +| | Set Test Variable | ${dut2_vm_refs} +| | ... +| | Given Add worker threads and rxqueues to all DUTs | ${phy_cores} | ${rxq} +| | And Add PCI devices to all DUTs +| | ${max_rate} | ${jumbo} = | Get Max Rate And Jumbo And Handle Multi Seg +| | ... | ${s_limit} | ${framesize} | overhead=${overhead} +| | And Apply startup configuration on all VPP DUTs +| | When Initialize L2 xconnect with Vhost-User and VLAN in 3-node circular topology +| | ... | ${sock1} | ${sock2} | ${subid} | ${tag_rewrite} +| | ${vm1}= | And Configure guest VM with dpdk-testpmd connected via vhost-user +| | ... | ${dut1} | ${sock1} | ${sock2} | DUT1_VM1 +| | ... | jumbo_frames=${jumbo} +| | 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 +| | ... | jumbo_frames=${jumbo} +| | Set To Dictionary | ${dut2_vm_refs} | DUT2_VM1 | ${vm2} +| | Then Find NDR and PDR intervals using optimized search +| | ... | ${framesize} | ${traffic_profile} | ${min_rate} | ${max_rate} + +*** Test Cases *** +| tc01-64B-1c-dot1q-l2xcbase-eth-2vhostvr1024-1vm-ndrpdr +| | [Tags] | 64B | 1C +| | framesize=${64} | phy_cores=${1} + +| tc02-64B-2c-dot1q-l2xcbase-eth-2vhostvr1024-1vm-ndrpdr +| | [Tags] | 64B | 2C +| | framesize=${64} | phy_cores=${2} + +| tc03-64B-4c-dot1q-l2xcbase-eth-2vhostvr1024-1vm-ndrpdr +| | [Tags] | 64B | 4C +| | framesize=${64} | phy_cores=${4} + +| tc04-1518B-1c-dot1q-l2xcbase-eth-2vhostvr1024-1vm-ndrpdr +| | [Tags] | 1518B | 1C +| | framesize=${1518} | phy_cores=${1} + +| tc05-1518B-2c-dot1q-l2xcbase-eth-2vhostvr1024-1vm-ndrpdr +| | [Tags] | 1518B | 2C +| | framesize=${1518} | phy_cores=${2} + +| tc06-1518B-4c-dot1q-l2xcbase-eth-2vhostvr1024-1vm-ndrpdr +| | [Tags] | 1518B | 4C +| | framesize=${1518} | phy_cores=${4} + +| tc07-9000B-1c-dot1q-l2xcbase-eth-2vhostvr1024-1vm-ndrpdr +| | [Tags] | 9000B | 1C +| | framesize=${9000} | phy_cores=${1} + +| tc08-9000B-2c-dot1q-l2xcbase-eth-2vhostvr1024-1vm-ndrpdr +| | [Tags] | 9000B | 2C +| | framesize=${9000} | phy_cores=${2} + +| tc09-9000B-4c-dot1q-l2xcbase-eth-2vhostvr1024-1vm-ndrpdr +| | [Tags] | 9000B | 4C +| | framesize=${9000} | phy_cores=${4} + +| tc10-IMIX-1c-dot1q-l2xcbase-eth-2vhostvr1024-1vm-ndrpdr +| | [Tags] | IMIX | 1C +| | framesize=IMIX_v4_1 | phy_cores=${1} + +| tc11-IMIX-2c-dot1q-l2xcbase-eth-2vhostvr1024-1vm-ndrpdr +| | [Tags] | IMIX | 2C +| | framesize=IMIX_v4_1 | phy_cores=${2} + +| tc12-IMIX-4c-dot1q-l2xcbase-eth-2vhostvr1024-1vm-ndrpdr +| | [Tags] | IMIX | 4C +| | framesize=IMIX_v4_1 | phy_cores=${4} diff --git a/tests/vpp/perf/vm_vhost/10ge2p1x520-dot1q-l2xcbase-eth-2vhostvr1024-1vm-ndrpdrdisc.robot b/tests/vpp/perf/vm_vhost/10ge2p1x520-dot1q-l2xcbase-eth-2vhostvr1024-1vm-ndrpdrdisc.robot deleted file mode 100644 index 1dd4cacc9b..0000000000 --- a/tests/vpp/perf/vm_vhost/10ge2p1x520-dot1q-l2xcbase-eth-2vhostvr1024-1vm-ndrpdrdisc.robot +++ /dev/null @@ -1,685 +0,0 @@ -# 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.NodePath -| ... -| Force Tags | 3_NODE_SINGLE_LINK_TOPO | PERFTEST | HW_ENV | NDRPDRDISC -| ... | NIC_Intel-X520-DA2 | DOT1Q | L2XCFWD | BASE | VHOST | VM | VHOST_1024 -| ... -| 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: Pkt 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 cross connect. 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 *** -| ${perf_qemu_qsz}= | 1024 -| ${subid}= | 10 -| ${tag_rewrite}= | pop-1 -| ${vlan_overhead}= | ${4} -# Socket names -| ${sock1}= | /tmp/sock-1 -| ${sock2}= | /tmp/sock-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-2vhostvr1024-1vm-ndrdisc -| | [Documentation] -| | ... | [Cfg] DUT runs L2XC switching config with 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 | 1C | NDRDISC -| | ... -| | ${framesize}= | Set Variable | ${64} -| | ${min_rate}= | Set Variable | ${10000} -| | ${max_rate}= | Calculate pps | ${s_limit} | ${framesize + ${vlan_overhead}} -| | ${binary_min}= | Set Variable | ${min_rate} -| | ${binary_max}= | Set Variable | ${max_rate} -| | ${threshold}= | Set Variable | ${min_rate} -| | ${dut1_vm_refs}= | Create Dictionary -| | ${dut2_vm_refs}= | Create Dictionary -| | Given Add worker threads and rxqueues to all DUTs | 1 -| | And Add PCI devices to all DUTs -| | And Add no multi seg to all DUTs -| | And Apply startup configuration on all VPP DUTs -| | When Initialize L2 xconnect with Vhost-User and VLAN in 3-node circular topology -| | ... | ${sock1} | ${sock2} | ${subid} | ${tag_rewrite} -| | ${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} -| | Then Find NDR using binary search and pps | ${framesize} | ${binary_min} -| | ... | ${binary_max} | ${traffic_profile} -| | ... | ${min_rate} | ${max_rate} | ${threshold} - -| tc02-64B-1t1c-eth-l2xcbase-eth-2vhostvr1024-1vm-pdrdisc -| | [Documentation] -| | ... | [Cfg] DUT runs L2BD switching config with 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 | 1C | PDRDISC | SKIP_PATCH -| | ... -| | ${framesize}= | Set Variable | ${64} -| | ${min_rate}= | Set Variable | ${10000} -| | ${max_rate}= | Calculate pps | ${s_limit} | ${framesize + ${vlan_overhead}} -| | ${binary_min}= | Set Variable | ${min_rate} -| | ${binary_max}= | Set Variable | ${max_rate} -| | ${threshold}= | Set Variable | ${min_rate} -| | ${dut1_vm_refs}= | Create Dictionary -| | ${dut2_vm_refs}= | Create Dictionary -| | Given Add worker threads and rxqueues to all DUTs | 1 -| | And Add PCI devices to all DUTs -| | And Add no multi seg to all DUTs -| | And Apply startup configuration on all VPP DUTs -| | When Initialize L2 xconnect with Vhost-User and VLAN in 3-node circular topology -| | ... | ${sock1} | ${sock2} | ${subid} | ${tag_rewrite} -| | ${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} -| | Then Find PDR using binary search and pps | ${framesize} | ${binary_min} -| | ... | ${binary_max} | ${traffic_profile} -| | ... | ${min_rate} | ${max_rate} | ${threshold} | ${perf_pdr_loss_acceptance} -| | ... | ${perf_pdr_loss_acceptance_type} - -| tc03-1518B-1t1c-eth-l2xcbase-eth-2vhostvr1024-1vm-ndrdisc -| | [Documentation] -| | ... | [Cfg] DUT runs L2XC switching config with 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 | 1C | NDRDISC -| | ... -| | ${framesize}= | Set Variable | ${1518} -| | ${min_rate}= | Set Variable | ${10000} -| | ${max_rate}= | Calculate pps | ${s_limit} | ${framesize + ${vlan_overhead}} -| | ${binary_min}= | Set Variable | ${min_rate} -| | ${binary_max}= | Set Variable | ${max_rate} -| | ${threshold}= | Set Variable | ${min_rate} -| | ${dut1_vm_refs}= | Create Dictionary -| | ${dut2_vm_refs}= | Create Dictionary -| | Given Add worker threads and rxqueues to all DUTs | 1 -| | And Add PCI devices to all DUTs -| | And Add no multi seg to all DUTs -| | And Apply startup configuration on all VPP DUTs -| | When Initialize L2 xconnect with Vhost-User and VLAN in 3-node circular topology -| | ... | ${sock1} | ${sock2} | ${subid} | ${tag_rewrite} -| | ${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} -| | Then Find NDR using binary search and pps | ${framesize} | ${binary_min} -| | ... | ${binary_max} | ${traffic_profile} -| | ... | ${min_rate} | ${max_rate} | ${threshold} - -| tc04-1518B-1t1c-eth-l2xcbase-eth-2vhostvr1024-1vm-pdrdisc -| | [Documentation] -| | ... | [Cfg] DUT runs L2BD switching config with 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 | 1C | PDRDISC | SKIP_PATCH -| | ... -| | ${framesize}= | Set Variable | ${1518} -| | ${min_rate}= | Set Variable | ${10000} -| | ${max_rate}= | Calculate pps | ${s_limit} | ${framesize + ${vlan_overhead}} -| | ${binary_min}= | Set Variable | ${min_rate} -| | ${binary_max}= | Set Variable | ${max_rate} -| | ${threshold}= | Set Variable | ${min_rate} -| | ${dut1_vm_refs}= | Create Dictionary -| | ${dut2_vm_refs}= | Create Dictionary -| | Given Add worker threads and rxqueues to all DUTs | 1 -| | And Add PCI devices to all DUTs -| | And Add no multi seg to all DUTs -| | And Apply startup configuration on all VPP DUTs -| | When Initialize L2 xconnect with Vhost-User and VLAN in 3-node circular topology -| | ... | ${sock1} | ${sock2} | ${subid} | ${tag_rewrite} -| | ${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} -| | Then Find PDR using binary search and pps | ${framesize} | ${binary_min} -| | ... | ${binary_max} | ${traffic_profile} -| | ... | ${min_rate} | ${max_rate} | ${threshold} | ${perf_pdr_loss_acceptance} -| | ... | ${perf_pdr_loss_acceptance_type} - -| tc05-IMIX-1t1c-eth-l2xcbase-eth-2vhostvr1024-1vm-ndrdisc -| | [Documentation] -| | ... | [Cfg] DUT runs L2BD switching config with 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 | 1C | NDRDISC -| | ... -| | ${framesize}= | Set Variable | IMIX_v4_1 -| | ${avg_framesize}= | Set Variable | ${357.833} -| | ${min_rate}= | Set Variable | ${10000} -| | ${max_rate}= | Calculate pps | ${s_limit} | ${avg_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 -| | Given Add worker threads and rxqueues to all DUTs | 1 -| | And Add PCI devices to all DUTs -| | And Add no multi seg to all DUTs -| | And Apply startup configuration on all VPP DUTs -| | When Initialize L2 xconnect with Vhost-User and VLAN in 3-node circular topology -| | ... | ${sock1} | ${sock2} | ${subid} | ${tag_rewrite} -| | ${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} -| | Then Find NDR using binary search and pps | ${framesize} | ${binary_min} -| | ... | ${binary_max} | ${traffic_profile} -| | ... | ${min_rate} | ${max_rate} | ${threshold} - -| tc06-IMIX-1t1c-eth-l2xcbase-eth-2vhostvr1024-1vm-pdrdisc -| | [Documentation] -| | ... | [Cfg] DUT runs L2BD switching config with 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 | 1C | PDRDISC | SKIP_PATCH -| | ... -| | ${framesize}= | Set Variable | IMIX_v4_1 -| | ${avg_framesize}= | Set Variable | ${357.833} -| | ${min_rate}= | Set Variable | ${10000} -| | ${max_rate}= | Calculate pps | ${s_limit} | ${avg_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 -| | Given Add worker threads and rxqueues to all DUTs | 1 -| | And Add PCI devices to all DUTs -| | And Add no multi seg to all DUTs -| | And Apply startup configuration on all VPP DUTs -| | When Initialize L2 xconnect with Vhost-User and VLAN in 3-node circular topology -| | ... | ${sock1} | ${sock2} | ${subid} | ${tag_rewrite} -| | ${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} -| | Then Find PDR using binary search and pps | ${framesize} | ${binary_min} -| | ... | ${binary_max} | ${traffic_profile} -| | ... | ${min_rate} | ${max_rate} | ${threshold} | ${perf_pdr_loss_acceptance} -| | ... | ${perf_pdr_loss_acceptance_type} - -| tc07-64B-2t2c-eth-l2xcbase-eth-2vhostvr1024-1vm-ndrdisc -| | [Documentation] -| | ... | [Cfg] DUT runs L2XC switching config with 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 | 2C | NDRDISC -| | ... -| | ${framesize}= | Set Variable | ${64} -| | ${min_rate}= | Set Variable | ${10000} -| | ${max_rate}= | Calculate pps | ${s_limit} | ${framesize + ${vlan_overhead}} -| | ${binary_min}= | Set Variable | ${min_rate} -| | ${binary_max}= | Set Variable | ${max_rate} -| | ${threshold}= | Set Variable | ${min_rate} -| | ${dut1_vm_refs}= | Create Dictionary -| | ${dut2_vm_refs}= | Create Dictionary -| | Given Add worker threads and rxqueues to all DUTs | 2 -| | And Add PCI devices to all DUTs -| | And Add no multi seg to all DUTs -| | And Apply startup configuration on all VPP DUTs -| | When Initialize L2 xconnect with Vhost-User and VLAN in 3-node circular topology -| | ... | ${sock1} | ${sock2} | ${subid} | ${tag_rewrite} -| | ${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} -| | Then Find NDR using binary search and pps | ${framesize} | ${binary_min} -| | ... | ${binary_max} | ${traffic_profile} -| | ... | ${min_rate} | ${max_rate} | ${threshold} - -| tc08-64B-2t2c-eth-l2xcbase-eth-2vhostvr1024-1vm-pdrdisc -| | [Documentation] -| | ... | [Cfg] DUT runs L2BD switching config with 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 | 2C | PDRDISC | SKIP_PATCH -| | ... -| | ${framesize}= | Set Variable | ${64} -| | ${min_rate}= | Set Variable | ${10000} -| | ${max_rate}= | Calculate pps | ${s_limit} | ${framesize + ${vlan_overhead}} -| | ${binary_min}= | Set Variable | ${min_rate} -| | ${binary_max}= | Set Variable | ${max_rate} -| | ${threshold}= | Set Variable | ${min_rate} -| | ${dut1_vm_refs}= | Create Dictionary -| | ${dut2_vm_refs}= | Create Dictionary -| | Given Add worker threads and rxqueues to all DUTs | 2 -| | And Add PCI devices to all DUTs -| | And Add no multi seg to all DUTs -| | And Apply startup configuration on all VPP DUTs -| | When Initialize L2 xconnect with Vhost-User and VLAN in 3-node circular topology -| | ... | ${sock1} | ${sock2} | ${subid} | ${tag_rewrite} -| | ${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} -| | Then Find PDR using binary search and pps | ${framesize} | ${binary_min} -| | ... | ${binary_max} | ${traffic_profile} -| | ... | ${min_rate} | ${max_rate} | ${threshold} | ${perf_pdr_loss_acceptance} -| | ... | ${perf_pdr_loss_acceptance_type} - -| tc09-1518B-2t2c-eth-l2xcbase-eth-2vhostvr1024-1vm-ndrdisc -| | [Documentation] -| | ... | [Cfg] DUT runs L2XC switching config with 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 | 2C | NDRDISC | SKIP_PATCH -| | ... -| | ${framesize}= | Set Variable | ${1518} -| | ${min_rate}= | Set Variable | ${10000} -| | ${max_rate}= | Calculate pps | ${s_limit} | ${framesize + ${vlan_overhead}} -| | ${binary_min}= | Set Variable | ${min_rate} -| | ${binary_max}= | Set Variable | ${max_rate} -| | ${threshold}= | Set Variable | ${min_rate} -| | ${dut1_vm_refs}= | Create Dictionary -| | ${dut2_vm_refs}= | Create Dictionary -| | Given Add worker threads and rxqueues to all DUTs | 2 -| | And Add PCI devices to all DUTs -| | And Add no multi seg to all DUTs -| | And Apply startup configuration on all VPP DUTs -| | When Initialize L2 xconnect with Vhost-User and VLAN in 3-node circular topology -| | ... | ${sock1} | ${sock2} | ${subid} | ${tag_rewrite} -| | ${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} -| | Then Find NDR using binary search and pps | ${framesize} | ${binary_min} -| | ... | ${binary_max} | ${traffic_profile} -| | ... | ${min_rate} | ${max_rate} | ${threshold} - -| tc10-1518B-2t2c-eth-l2xcbase-eth-2vhostvr1024-1vm-pdrdisc -| | [Documentation] -| | ... | [Cfg] DUT runs L2BD switching config with 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 | 2C | PDRDISC | SKIP_PATCH -| | ... -| | ${framesize}= | Set Variable | ${1518} -| | ${min_rate}= | Set Variable | ${10000} -| | ${max_rate}= | Calculate pps | ${s_limit} | ${framesize + ${vlan_overhead}} -| | ${binary_min}= | Set Variable | ${min_rate} -| | ${binary_max}= | Set Variable | ${max_rate} -| | ${threshold}= | Set Variable | ${min_rate} -| | ${dut1_vm_refs}= | Create Dictionary -| | ${dut2_vm_refs}= | Create Dictionary -| | Given Add worker threads and rxqueues to all DUTs | 2 -| | And Add PCI devices to all DUTs -| | And Add no multi seg to all DUTs -| | And Apply startup configuration on all VPP DUTs -| | When Initialize L2 xconnect with Vhost-User and VLAN in 3-node circular topology -| | ... | ${sock1} | ${sock2} | ${subid} | ${tag_rewrite} -| | ${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} -| | Then Find PDR using binary search and pps | ${framesize} | ${binary_min} -| | ... | ${binary_max} | ${traffic_profile} -| | ... | ${min_rate} | ${max_rate} | ${threshold} | ${perf_pdr_loss_acceptance} -| | ... | ${perf_pdr_loss_acceptance_type} - -| tc11-IMIX-2t2c-eth-l2xcbase-eth-2vhostvr1024-1vm-ndrdisc -| | [Documentation] -| | ... | [Cfg] DUT runs L2BD switching config with 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 | 2C | NDRDISC | SKIP_PATCH -| | ... -| | ${framesize}= | Set Variable | IMIX_v4_1 -| | ${avg_framesize}= | Set Variable | ${357.833} -| | ${min_rate}= | Set Variable | ${10000} -| | ${max_rate}= | Calculate pps | ${s_limit} | ${avg_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 -| | Given Add worker threads and rxqueues to all DUTs | 2 -| | And Add PCI devices to all DUTs -| | And Add no multi seg to all DUTs -| | And Apply startup configuration on all VPP DUTs -| | When Initialize L2 xconnect with Vhost-User and VLAN in 3-node circular topology -| | ... | ${sock1} | ${sock2} | ${subid} | ${tag_rewrite} -| | ${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} -| | Then Find NDR using binary search and pps | ${framesize} | ${binary_min} -| | ... | ${binary_max} | ${traffic_profile} -| | ... | ${min_rate} | ${max_rate} | ${threshold} - -| tc12-IMIX-2t2c-eth-l2xcbase-eth-2vhostvr1024-1vm-pdrdisc -| | [Documentation] -| | ... | [Cfg] DUT runs L2BD switching config with 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, LT=0.5%. -| | ... | IMIX_v4_1 = (28x64B; 16x570B; 4x1518B) -| | ... -| | [Tags] | IMIX | 2C | PDRDISC | SKIP_PATCH -| | ... -| | ${framesize}= | Set Variable | IMIX_v4_1 -| | ${avg_framesize}= | Set Variable | ${357.833} -| | ${min_rate}= | Set Variable | ${10000} -| | ${max_rate}= | Calculate pps | ${s_limit} | ${avg_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 -| | Given Add worker threads and rxqueues to all DUTs | 2 -| | And Add PCI devices to all DUTs -| | And Add no multi seg to all DUTs -| | And Apply startup configuration on all VPP DUTs -| | When Initialize L2 xconnect with Vhost-User and VLAN in 3-node circular topology -| | ... | ${sock1} | ${sock2} | ${subid} | ${tag_rewrite} -| | ${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} -| | Then Find PDR using binary search and pps | ${framesize} | ${binary_min} -| | ... | ${binary_max} | ${traffic_profile} -| | ... | ${min_rate} | ${max_rate} | ${threshold} | ${perf_pdr_loss_acceptance} -| | ... | ${perf_pdr_loss_acceptance_type} - -| tc13-64B-4t4c-eth-l2xcbase-eth-2vhostvr1024-1vm-ndrdisc -| | [Documentation] -| | ... | [Cfg] DUT runs L2XC switching config with 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 | 4C | NDRDISC -| | ... -| | ${framesize}= | Set Variable | ${64} -| | ${min_rate}= | Set Variable | ${10000} -| | ${max_rate}= | Calculate pps | ${s_limit} | ${framesize + ${vlan_overhead}} -| | ${binary_min}= | Set Variable | ${min_rate} -| | ${binary_max}= | Set Variable | ${max_rate} -| | ${threshold}= | Set Variable | ${min_rate} -| | ${dut1_vm_refs}= | Create Dictionary -| | ${dut2_vm_refs}= | Create Dictionary -| | Given Add worker threads and rxqueues to all DUTs | 4 -| | And Add PCI devices to all DUTs -| | And Add no multi seg to all DUTs -| | And Apply startup configuration on all VPP DUTs -| | When Initialize L2 xconnect with Vhost-User and VLAN in 3-node circular topology -| | ... | ${sock1} | ${sock2} | ${subid} | ${tag_rewrite} -| | ${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} -| | Then Find NDR using binary search and pps | ${framesize} | ${binary_min} -| | ... | ${binary_max} | ${traffic_profile} -| | ... | ${min_rate} | ${max_rate} | ${threshold} - -| tc14-64B-4t4c-eth-l2xcbase-eth-2vhostvr1024-1vm-pdrdisc -| | [Documentation] -| | ... | [Cfg] DUT runs L2XC switching config with 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 | 4C | PDRDISC | SKIP_PATCH -| | ... -| | ${framesize}= | Set Variable | ${64} -| | ${min_rate}= | Set Variable | ${10000} -| | ${max_rate}= | Calculate pps | ${s_limit} | ${framesize + ${vlan_overhead}} -| | ${binary_min}= | Set Variable | ${min_rate} -| | ${binary_max}= | Set Variable | ${max_rate} -| | ${threshold}= | Set Variable | ${min_rate} -| | ${dut1_vm_refs}= | Create Dictionary -| | ${dut2_vm_refs}= | Create Dictionary -| | Given Add worker threads and rxqueues to all DUTs | 4 -| | And Add PCI devices to all DUTs -| | And Add no multi seg to all DUTs -| | And Apply startup configuration on all VPP DUTs -| | When Initialize L2 xconnect with Vhost-User and VLAN in 3-node circular topology -| | ... | ${sock1} | ${sock2} | ${subid} | ${tag_rewrite} -| | ${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} -| | Then Find PDR using binary search and pps | ${framesize} | ${binary_min} -| | ... | ${binary_max} | ${traffic_profile} -| | ... | ${min_rate} | ${max_rate} | ${threshold} | ${perf_pdr_loss_acceptance} -| | ... | ${perf_pdr_loss_acceptance_type} - -| tc15-1518B-4t4c-eth-l2xcbase-eth-2vhostvr1024-1vm-ndrdisc -| | [Documentation] -| | ... | [Cfg] DUT runs L2XC switching config with 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 | 4C | NDRDISC | SKIP_PATCH -| | ... -| | ${framesize}= | Set Variable | ${1518} -| | ${min_rate}= | Set Variable | ${10000} -| | ${max_rate}= | Calculate pps | ${s_limit} | ${framesize + ${vlan_overhead}} -| | ${binary_min}= | Set Variable | ${min_rate} -| | ${binary_max}= | Set Variable | ${max_rate} -| | ${threshold}= | Set Variable | ${min_rate} -| | ${dut1_vm_refs}= | Create Dictionary -| | ${dut2_vm_refs}= | Create Dictionary -| | Given Add worker threads and rxqueues to all DUTs | 4 -| | And Add PCI devices to all DUTs -| | And Add no multi seg to all DUTs -| | And Apply startup configuration on all VPP DUTs -| | When Initialize L2 xconnect with Vhost-User and VLAN in 3-node circular topology -| | ... | ${sock1} | ${sock2} | ${subid} | ${tag_rewrite} -| | ${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} -| | Then Find NDR using binary search and pps | ${framesize} | ${binary_min} -| | ... | ${binary_max} | ${traffic_profile} -| | ... | ${min_rate} | ${max_rate} | ${threshold} - -| tc16-1518B-4t4c-eth-l2xcbase-eth-2vhostvr1024-1vm-pdrdisc -| | [Documentation] -| | ... | [Cfg] DUT runs L2XC switching config with 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 | 4C | PDRDISC | SKIP_PATCH -| | ... -| | ${framesize}= | Set Variable | ${1518} -| | ${min_rate}= | Set Variable | ${10000} -| | ${max_rate}= | Calculate pps | ${s_limit} | ${framesize + ${vlan_overhead}} -| | ${binary_min}= | Set Variable | ${min_rate} -| | ${binary_max}= | Set Variable | ${max_rate} -| | ${threshold}= | Set Variable | ${min_rate} -| | ${dut1_vm_refs}= | Create Dictionary -| | ${dut2_vm_refs}= | Create Dictionary -| | Given Add worker threads and rxqueues to all DUTs | 4 -| | And Add PCI devices to all DUTs -| | And Add no multi seg to all DUTs -| | And Apply startup configuration on all VPP DUTs -| | When Initialize L2 xconnect with Vhost-User and VLAN in 3-node circular topology -| | ... | ${sock1} | ${sock2} | ${subid} | ${tag_rewrite} -| | ${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} -| | Then Find PDR using binary search and pps | ${framesize} | ${binary_min} -| | ... | ${binary_max} | ${traffic_profile} -| | ... | ${min_rate} | ${max_rate} | ${threshold} | ${perf_pdr_loss_acceptance} -| | ... | ${perf_pdr_loss_acceptance_type} - -| tc17-IMIX-4t4c-eth-l2xcbase-eth-2vhostvr1024-1vm-ndrdisc -| | [Documentation] -| | ... | [Cfg] DUT runs L2XC switching config with 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 | 4C | NDRDISC | SKIP_PATCH -| | ... -| | ${framesize}= | Set Variable | IMIX_v4_1 -| | ${avg_framesize}= | Set Variable | ${357.833} -| | ${min_rate}= | Set Variable | ${10000} -| | ${max_rate}= | Calculate pps | ${s_limit} | ${avg_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 -| | Given Add worker threads and rxqueues to all DUTs | 4 -| | And Add PCI devices to all DUTs -| | And Add no multi seg to all DUTs -| | And Apply startup configuration on all VPP DUTs -| | When Initialize L2 xconnect with Vhost-User and VLAN in 3-node circular topology -| | ... | ${sock1} | ${sock2} | ${subid} | ${tag_rewrite} -| | ${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} -| | Then Find NDR using binary search and pps | ${framesize} | ${binary_min} -| | ... | ${binary_max} | ${traffic_profile} -| | ... | ${min_rate} | ${max_rate} | ${threshold} - -| tc18-IMIX-4t4c-eth-l2xcbase-eth-2vhostvr1024-1vm-pdrdisc -| | [Documentation] -| | ... | [Cfg] DUT runs L2XC switching config with 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 | 4C | PDRDISC | SKIP_PATCH -| | ... -| | ${framesize}= | Set Variable | IMIX_v4_1 -| | ${avg_framesize}= | Set Variable | ${357.833} -| | ${min_rate}= | Set Variable | ${10000} -| | ${max_rate}= | Calculate pps | ${s_limit} | ${avg_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 -| | Given Add worker threads and rxqueues to all DUTs | 4 -| | And Add PCI devices to all DUTs -| | And Add no multi seg to all DUTs -| | And Apply startup configuration on all VPP DUTs -| | When Initialize L2 xconnect with Vhost-User and VLAN in 3-node circular topology -| | ... | ${sock1} | ${sock2} | ${subid} | ${tag_rewrite} -| | ${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} -| | Then Find PDR using binary search and pps | ${framesize} | ${binary_min} -| | ... | ${binary_max} | ${traffic_profile} -| | ... | ${min_rate} | ${max_rate} | ${threshold} | ${perf_pdr_loss_acceptance} -| | ... | ${perf_pdr_loss_acceptance_type} diff --git a/tests/vpp/perf/vm_vhost/10ge2p1x520-eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-cfsrr1-mrr.robot b/tests/vpp/perf/vm_vhost/10ge2p1x520-eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-cfsrr1-mrr.robot new file mode 100644 index 0000000000..551e1b935f --- /dev/null +++ b/tests/vpp/perf/vm_vhost/10ge2p1x520-eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-cfsrr1-mrr.robot @@ -0,0 +1,147 @@ +# Copyright (c) 2018 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 | MRR +| ... | NIC_Intel-X520-DA2 | ETH | L2BDMACLRN | BASE | VHOST | VM | VHOST_1024 +| ... | CFS_OPT +| ... +| 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 mrr test with vhost and VM with dpdk-testpmd +| ... | dut1_node=${dut1} | dut1_vm_refs=${dut1_vm_refs} +| ... | dut2_node=${dut2} | dut2_vm_refs=${dut2_vm_refs} +| ... +| Test Template | Local Template +| ... +| Documentation | *Raw results 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=1024, 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:* In MaxReceivedRate test TG sends traffic +| ... | at line rate and reports total received/sent packets over trial period. +| ... | 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 *** +| ${perf_qemu_qsz}= | 1024 +# 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 *** +| Local Template +| | [Documentation] | FIXME. +| | [Arguments] | ${framesize} | ${phy_cores} | ${rxq}=${None} +| | ... +| | Set Test Variable | ${use_tuned_cfs} | ${True} +| | ${dut1_vm_refs}= | Create Dictionary +| | ${dut2_vm_refs}= | Create Dictionary +| | Set Test Variable | ${dut1_vm_refs} +| | Set Test Variable | ${dut2_vm_refs} +| | ... +| | Given Add worker threads and rxqueues to all DUTs | ${phy_cores} | ${rxq} +| | And Add PCI devices to all DUTs +| | ${max_rate} | ${jumbo} = | Get Max Rate And Jumbo And Handle Multi Seg +| | ... | ${s_limit} | ${framesize} +| | 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 +| | ... | jumbo_frames=${jumbo} +| | 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 +| | ... | jumbo_frames=${jumbo} +| | Set To Dictionary | ${dut2_vm_refs} | DUT2_VM1 | ${vm2} +| | Setup Scheduler Policy for Vpp On All DUTs +| | Then Traffic should pass with maximum rate +| | ... | ${max_rate}pps | ${framesize} | ${traffic_profile} + +*** Test Cases *** +| tc01-64B-1c-eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-cfsrr1-mrr +| | [Tags] | 64B | 1C +| | framesize=${64} | phy_cores=${1} + +| tc02-64B-2c-eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-cfsrr1-mrr +| | [Tags] | 64B | 2C +| | framesize=${64} | phy_cores=${2} + +| tc03-64B-4c-eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-cfsrr1-mrr +| | [Tags] | 64B | 4C +| | framesize=${64} | phy_cores=${4} + +| tc04-1518B-1c-eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-cfsrr1-mrr +| | [Tags] | 1518B | 1C +| | framesize=${1518} | phy_cores=${1} + +| tc05-1518B-2c-eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-cfsrr1-mrr +| | [Tags] | 1518B | 2C +| | framesize=${1518} | phy_cores=${2} + +| tc06-1518B-4c-eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-cfsrr1-mrr +| | [Tags] | 1518B | 4C +| | framesize=${1518} | phy_cores=${4} + +| tc07-9000B-1c-eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-cfsrr1-mrr +| | [Tags] | 9000B | 1C +| | framesize=${9000} | phy_cores=${1} + +| tc08-9000B-2c-eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-cfsrr1-mrr +| | [Tags] | 9000B | 2C +| | framesize=${9000} | phy_cores=${2} + +| tc09-9000B-4c-eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-cfsrr1-mrr +| | [Tags] | 9000B | 4C +| | framesize=${9000} | phy_cores=${4} + +| tc10-IMIX-1c-eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-cfsrr1-mrr +| | [Tags] | IMIX | 1C +| | framesize=IMIX_v4_1 | phy_cores=${1} + +| tc11-IMIX-2c-eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-cfsrr1-mrr +| | [Tags] | IMIX | 2C +| | framesize=IMIX_v4_1 | phy_cores=${2} + +| tc12-IMIX-4c-eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-cfsrr1-mrr +| | [Tags] | IMIX | 4C +| | framesize=IMIX_v4_1 | phy_cores=${4} diff --git a/tests/vpp/perf/vm_vhost/10ge2p1x520-eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-cfsrr1-ndrpdr.robot b/tests/vpp/perf/vm_vhost/10ge2p1x520-eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-cfsrr1-ndrpdr.robot new file mode 100644 index 0000000000..4af0b3ccdc --- /dev/null +++ b/tests/vpp/perf/vm_vhost/10ge2p1x520-eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-cfsrr1-ndrpdr.robot @@ -0,0 +1,153 @@ +# Copyright (c) 2018 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 | NDRPDR +| ... | NIC_Intel-X520-DA2 | ETH | L2BDMACLRN | BASE | VHOST | VM | VHOST_1024 +| ... | CFS_OPT +| ... +| 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} +| ... +| Test Template | Local Template +| ... +| 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=1024, 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 MLRsearch library. +| ... | 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 *** +| ${perf_qemu_qsz}= | 1024 +# 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 *** +| Local Template +| | [Documentation] | FIXME. +| | [Arguments] | ${framesize} | ${phy_cores} | ${rxq}=${None} +| | ... +| | Set Test Variable | ${use_tuned_cfs} | ${True} +| | Set Test Variable | ${framesize} +| | Set Test Variable | ${min_rate} | ${10000} +| | ${dut1_vm_refs}= | Create Dictionary +| | ${dut2_vm_refs}= | Create Dictionary +| | Set Test Variable | ${dut1_vm_refs} +| | Set Test Variable | ${dut2_vm_refs} +| | ... +| | Given Add worker threads and rxqueues to all DUTs | ${phy_cores} | ${rxq} +| | And Add PCI devices to all DUTs +| | ${max_rate} | ${jumbo} = | Get Max Rate And Jumbo And Handle Multi Seg +| | ... | ${s_limit} | ${framesize} +| | 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 +| | ... | jumbo_frames=${jumbo} +| | 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 +| | ... | jumbo_frames=${jumbo} +| | Set To Dictionary | ${dut2_vm_refs} | DUT2_VM1 | ${vm2} +| | Setup Scheduler Policy for Vpp On All DUTs +| | Then Find NDR and PDR intervals using optimized search +| | ... | ${framesize} | ${traffic_profile} | ${min_rate} | ${max_rate} + +*** Test Cases *** +| tc01-64B-1c-eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-cfsrr1-ndrpdr +| | [Tags] | 64B | 1C +| | framesize=${64} | phy_cores=${1} + +| tc02-64B-2c-eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-cfsrr1-ndrpdr +| | [Tags] | 64B | 2C +| | framesize=${64} | phy_cores=${2} + +| tc03-64B-4c-eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-cfsrr1-ndrpdr +| | [Tags] | 64B | 4C +| | framesize=${64} | phy_cores=${4} + +| tc04-1518B-1c-eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-cfsrr1-ndrpdr +| | [Tags] | 1518B | 1C +| | framesize=${1518} | phy_cores=${1} + +| tc05-1518B-2c-eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-cfsrr1-ndrpdr +| | [Tags] | 1518B | 2C +| | framesize=${1518} | phy_cores=${2} + +| tc06-1518B-4c-eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-cfsrr1-ndrpdr +| | [Tags] | 1518B | 4C +| | framesize=${1518} | phy_cores=${4} + +| tc07-9000B-1c-eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-cfsrr1-ndrpdr +| | [Tags] | 9000B | 1C +| | framesize=${9000} | phy_cores=${1} + +| tc08-9000B-2c-eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-cfsrr1-ndrpdr +| | [Tags] | 9000B | 2C +| | framesize=${9000} | phy_cores=${2} + +| tc09-9000B-4c-eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-cfsrr1-ndrpdr +| | [Tags] | 9000B | 4C +| | framesize=${9000} | phy_cores=${4} + +| tc10-IMIX-1c-eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-cfsrr1-ndrpdr +| | [Tags] | IMIX | 1C +| | framesize=IMIX_v4_1 | phy_cores=${1} + +| tc11-IMIX-2c-eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-cfsrr1-ndrpdr +| | [Tags] | IMIX | 2C +| | framesize=IMIX_v4_1 | phy_cores=${2} + +| tc12-IMIX-4c-eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-cfsrr1-ndrpdr +| | [Tags] | IMIX | 4C +| | framesize=IMIX_v4_1 | phy_cores=${4} diff --git a/tests/vpp/perf/vm_vhost/10ge2p1x520-eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-cfsrr1-ndrpdrdisc.robot b/tests/vpp/perf/vm_vhost/10ge2p1x520-eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-cfsrr1-ndrpdrdisc.robot deleted file mode 100644 index 04c05e5efa..0000000000 --- a/tests/vpp/perf/vm_vhost/10ge2p1x520-eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-cfsrr1-ndrpdrdisc.robot +++ /dev/null @@ -1,189 +0,0 @@ -# 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 | ETH | L2BDMACLRN | BASE | VHOST | VM | VHOST_1024 -| ... | CFS_OPT -| ... -| 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} -| ... -| Test Template | Local template -| ... -| 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=1024, 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 *** -| ${perf_qemu_qsz}= | 1024 -| ${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 *** -| Local template -| | [Arguments] | ${phy_cores} | ${framesize} | ${search_type} | ${rxq}=${None} -| | ... | ${min_rate}=${10000} -| | ... -| | 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 worker threads and rxqueues to all DUTs | ${phy_cores} | ${rxq} -| | And Add PCI devices to all DUTs -| | And Run Keyword If | ${get_framesize} < ${1522} | Add no multi seg to all DUTs -| | And Apply startup configuration on all VPP DUTs -| | When Initialize 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} -| | Setup Scheduler Policy for Vpp On All DUTs -| | 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-2vhostvr1024-1vm-cfsrr1-ndrdisc -| | [Tags] | 64B | 1C | NDRDISC -| | phy_cores=${1} | framesize=${64} | search_type=NDR - -| tc02-64B-1t1c-eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-cfsrr1-pdrdisc -| | [Tags] | 64B | 1C | PDRDISC | SKIP_PATCH -| | phy_cores=${1} | framesize=${64} | search_type=PDR - -| tc03-1518B-1t1c-etc-l2bdbasemaclrn-eth-2vhostvr1024-1vm-cfsrr1-ndrdisc -| | [Tags] | 1518B | 1C | NDRDISC -| | phy_cores=${1} | framesize=${1518} | search_type=NDR - -| tc04-1518B-1t1c-eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-cfsrr1-pdrdisc -| | [Tags] | 1518B | 1C | PDRDISC | SKIP_PATCH -| | phy_cores=${1} | framesize=${1518} | search_type=PDR - -| tc05-IMIX-1t1c-eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-cfsrr1-ndrdisc -| | [Tags] | IMIX | 1C | NDRDISC -| | phy_cores=${1} | framesize=IMIX_v4_1 | search_type=NDR - -| tc06-IMIX-1t1c-eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-cfsrr1-pdrdisc -| | [Tags] | IMIX | 1C | PDRDISC | SKIP_PATCH -| | phy_cores=${1} | framesize=IMIX_v4_1 | search_type=PDR - -| tc07-64B-2t2c-eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-cfsrr1-ndrdisc -| | [Tags] | 64B | 2C | NDRDISC -| | phy_cores=${2} | framesize=${64} | search_type=NDR - -| tc08-64B-2t2c-eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-cfsrr1-pdrdisc -| | [Tags] | 64B | 2C | PDRDISC | SKIP_PATCH -| | phy_cores=${2} | framesize=${64} | search_type=PDR - -| tc09-1518B-2t2c-eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-cfsrr1-ndrdisc -| | [Tags] | 1518B | 2C | NDRDISC | SKIP_PATCH -| | phy_cores=${2} | framesize=${1518} | search_type=NDR - -| tc10-1518B-2t2c-eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-cfsrr1-pdrdisc -| | [Tags] | 1518B | 2C | PDRDISC | SKIP_PATCH -| | phy_cores=${2} | framesize=${1518} | search_type=PDR - -| tc11-IMIX-2t2c-eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-cfsrr1-ndrdisc -| | [Tags] | IMIX | 2C | NDRDISC | SKIP_PATCH -| | phy_cores=${2} | framesize=IMIX_v4_1 | search_type=NDR - -| tc12-IMIX-2t2c-eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-cfsrr1-pdrdisc -| | [Tags] | IMIX | 2C | PDRDISC | SKIP_PATCH -| | phy_cores=${2} | framesize=IMIX_v4_1 | search_type=PDR - -| tc13-64B-4t4c-eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-cfsrr1-ndrdisc -| | [Tags] | 64B | 4C | NDRDISC -| | phy_cores=${4} | framesize=${64} | search_type=NDR - -| tc14-64B-4t4c-eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-cfsrr1-pdrdisc -| | [Tags] | 64B | 4C | PDRDISC | SKIP_PATCH -| | phy_cores=${4} | framesize=${64} | search_type=PDR - -| tc15-1518B-4t4c-eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-cfsrr1-ndrdisc -| | [Tags] | 1518B | 4C | NDRDISC | SKIP_PATCH -| | phy_cores=${4} | framesize=${1518} | search_type=NDR - -| tc16-1518B-4t4c-eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-cfsrr1-pdrdisc -| | [Tags] | 1518B | 4C | PDRDISC | SKIP_PATCH -| | phy_cores=${4} | framesize=${1518} | search_type=PDR - -| tc17-IMIX-4t4c-eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-cfsrr1-ndrdisc -| | [Tags] | IMIX | 4C | NDRDISC | SKIP_PATCH -| | phy_cores=${4} | framesize=IMIX_v4_1 | search_type=NDR - -| tc18-IMIX-4t4c-eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-cfsrr1-pdrdisc -| | [Tags] | IMIX | 4C | PDRDISC | SKIP_PATCH -| | phy_cores=${4} | framesize=IMIX_v4_1 | search_type=PDR diff --git a/tests/vpp/perf/vm_vhost/10ge2p1x520-eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-mrr.robot b/tests/vpp/perf/vm_vhost/10ge2p1x520-eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-mrr.robot index 7a69383e0f..85cde16858 100644 --- a/tests/vpp/perf/vm_vhost/10ge2p1x520-eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-mrr.robot +++ b/tests/vpp/perf/vm_vhost/10ge2p1x520-eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-mrr.robot @@ -27,7 +27,7 @@ | ... | dut1_node=${dut1} | dut1_vm_refs=${dut1_vm_refs} | ... | dut2_node=${dut2} | dut2_vm_refs=${dut2_vm_refs} | ... -| Test Template | Local template +| Test Template | Local Template | ... | Documentation | *Raw results L2BD test cases with vhost* | ... @@ -64,7 +64,7 @@ | ${traffic_profile}= | trex-sl-3n-ethip4-ip4src254 *** Keywords *** -| Local template +| Local Template | | [Documentation] | | ... | [Cfg] DUT runs L2BD switching config. | | ... | Each DUT uses ${phy_cores} physical core(s) for worker threads. @@ -79,79 +79,74 @@ | | ... | | [Arguments] | ${framesize} | ${phy_cores} | ${rxq}=${None} | | ... -| | Set Test Variable | ${framesize} -| | ${get_framesize}= | Get Frame Size | ${framesize} -| | ${max_rate}= | Calculate pps | ${s_limit} | ${get_framesize} | | ${dut1_vm_refs}= | Create Dictionary | | ${dut2_vm_refs}= | Create Dictionary | | Set Test Variable | ${dut1_vm_refs} | | Set Test Variable | ${dut2_vm_refs} -| | ${jumbo_frames}= | Set Variable If | ${get_framesize} < ${1522} -| | ... | ${False} | ${True} | | ... | | Given Add worker threads and rxqueues to all DUTs | ${phy_cores} | ${rxq} | | And Add PCI devices to all DUTs -| | And Run Keyword If | ${get_framesize} < ${1522} -| | ... | Add no multi seg to all DUTs +| | ${max_rate} | ${jumbo} = | Get Max Rate And Jumbo And Handle Multi Seg +| | ... | ${s_limit} | ${framesize} | | 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 -| | ... | jumbo_frames=${jumbo_frames} +| | ... | jumbo_frames=${jumbo} | | 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 -| | ... | jumbo_frames=${jumbo_frames} +| | ... | jumbo_frames=${jumbo} | | Set To Dictionary | ${dut2_vm_refs} | DUT2_VM1 | ${vm2} | | Then Traffic should pass with maximum rate | | ... | ${max_rate}pps | ${framesize} | ${traffic_profile} *** Test Cases *** -| tc01-64B-1t1c-eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-mrr +| tc01-64B-1c-eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-mrr | | [Tags] | 64B | 1C | | framesize=${64} | phy_cores=${1} -| tc02-1518B-1t1c-eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-mrr -| | [Tags] | 1518B | 1C -| | framesize=${1518} | phy_cores=${1} - -| tc03-9000B-1t1c-eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-mrr -| | [Tags] | 9000B | 1C -| | framesize=${9000} | phy_cores=${1} - -| tc04-IMIX-1t1c-eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-mrr -| | [Tags] | IMIX | 1C -| | framesize=IMIX_v4_1 | phy_cores=${1} - -| tc05-64B-2t2c-eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-mrr +| tc02-64B-2c-eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-mrr | | [Tags] | 64B | 2C | | framesize=${64} | phy_cores=${2} -| tc06-1518B-2t2c-eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-mrr -| | [Tags] | 1518B | 2C -| | framesize=${1518} | phy_cores=${2} - -| tc07-9000B-2t2c-eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-mrr -| | [Tags] | 9000B | 2C -| | framesize=${9000} | phy_cores=${2} - -| tc08-IMIX-2t2c-eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-mrr -| | [Tags] | IMIX | 2C -| | framesize=IMIX_v4_1 | phy_cores=${2} - -| tc09-64B-4t4c-eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-mrr +| tc03-64B-4c-eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-mrr | | [Tags] | 64B | 4C | | framesize=${64} | phy_cores=${4} -| tc10-1518B-4t4c-eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-mrr +| tc04-1518B-1c-eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-mrr +| | [Tags] | 1518B | 1C +| | framesize=${1518} | phy_cores=${1} + +| tc05-1518B-2c-eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-mrr +| | [Tags] | 1518B | 2C +| | framesize=${1518} | phy_cores=${2} + +| tc06-1518B-4c-eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-mrr | | [Tags] | 1518B | 4C | | framesize=${1518} | phy_cores=${4} -| tc10-9000B-4t4c-eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-mrr +| tc07-9000B-1c-eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-mrr +| | [Tags] | 9000B | 1C +| | framesize=${9000} | phy_cores=${1} + +| tc08-9000B-2c-eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-mrr +| | [Tags] | 9000B | 2C +| | framesize=${9000} | phy_cores=${2} + +| tc09-9000B-4c-eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-mrr | | [Tags] | 9000B | 4C | | framesize=${9000} | phy_cores=${4} -| tc12-IMIX-4t4c-eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-mrr +| tc10-IMIX-1c-eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-mrr +| | [Tags] | IMIX | 1C +| | framesize=IMIX_v4_1 | phy_cores=${1} + +| tc11-IMIX-2c-eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-mrr +| | [Tags] | IMIX | 2C +| | framesize=IMIX_v4_1 | phy_cores=${2} + +| tc12-IMIX-4c-eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-mrr | | [Tags] | IMIX | 4C | | framesize=IMIX_v4_1 | phy_cores=${4} diff --git a/tests/vpp/perf/vm_vhost/10ge2p1x520-eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-ndrpdr.robot b/tests/vpp/perf/vm_vhost/10ge2p1x520-eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-ndrpdr.robot index b822676e2d..b526a3bff8 100644 --- a/tests/vpp/perf/vm_vhost/10ge2p1x520-eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-ndrpdr.robot +++ b/tests/vpp/perf/vm_vhost/10ge2p1x520-eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-ndrpdr.robot @@ -12,6 +12,24 @@ # 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 | NDRPDR +| ... | NIC_Intel-X520-DA2 | ETH | L2BDMACLRN | BASE | VHOST | 1VM | VHOST_1024 +| ... +| 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} +| ... +| Test Template | Local Template +| ... | Documentation | *RFC2544: Pkt throughput L2BD test cases with vhost* | ... | ... | *[Top] Network Topologies:* TG-DUT1-DUT2-TG 3-node circular topology @@ -23,136 +41,117 @@ | ... | 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=1024, burst=64. DUT1, DUT2 are tested with 2p10GE NIC X520 +| ... | io, rxd/txd=1024, 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. -| ... -| Resource | resources/libraries/robot/performance/performance_setup.robot -| Library | resources.libraries.python.QemuUtils -| ... -| Force Tags | 3_NODE_SINGLE_LINK_TOPO | PERFTEST | HW_ENV | NDRPDR -| ... | NIC_Intel-X520-DA2 | ETH | L2BDMACLRN | BASE | VHOST | VM | VHOST_1024 -| ... -| 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 -| ... | ${10000}pps | ${64} | ${traffic_profile} -| ... | dut1_node=${dut1} | dut1_vm_refs=${dut1_vm_refs} -| ... | dut2_node=${dut2} | dut2_vm_refs=${dut2_vm_refs} -| ... -| Test Template | Local template +| ... | Ethernet L2 frame sizes using MLRsearch library. +| ... | Test packets are generated by TG on links to DUTs. TG traffic profile +| ... | contains two L3 flow-groups (flow-group per direction, 254 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. *** Variables *** | ${perf_qemu_qsz}= | 1024 -| ${min_rate}= | ${20000} -# 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} +# X520-DA2 bandwidth limit +| ${s_limit}= | ${10000000000} # Traffic profile: -| ${traffic_profile} | trex-sl-3n-ethip4-ip4src254 +| ${traffic_profile}= | trex-sl-3n-ethip4-ip4src254 *** Keywords *** -| Local template +| Local Template | | [Documentation] -| | ... | [Cfg] DUT runs L2BD switching config with ${phy_cores} phy cores. -| | ... | [Ver] Find NDR for ${framesize} frames \ -| | ... | using binary search start at 10GE linerate. +| | ... | [Cfg] DUT runs L2BD switching config. +| | ... | Each DUT uses ${phy_cores} physical core(s) for worker threads. +| | ... | [Ver] Measure NDR and PDR values using MLRsearch algorithm.\ +| | ... +| | ... | *Arguments:* +| | ... | - framesize - Framesize in Bytes in integer or string (IMIX_v4_1). +| | ... | Type: integer, string +| | ... | - phy_cores - Number of physical cores. Type: integer +| | ... | - rxq - Number of RX queues, default value: ${None}. Type: integer | | ... | | [Arguments] | ${framesize} | ${phy_cores} | ${rxq}=${None} | | ... | | Set Test Variable | ${framesize} -| | ${get_framesize}= | Get Frame Size | ${framesize} -| | ${max_unidirectional_rate}= | Calculate pps | ${s_limit} | ${get_framesize} -| | ${max_rate}= | Evaluate | 2*${max_unidirectional_rate} +| | Set Test Variable | ${min_rate} | ${10000} | | ${dut1_vm_refs}= | Create Dictionary | | ${dut2_vm_refs}= | Create Dictionary | | Set Test Variable | ${dut1_vm_refs} | | Set Test Variable | ${dut2_vm_refs} -| | ${jumbo_frames}= | Set Variable If | ${get_framesize} < ${1522} -| | ... | ${False} | ${True} | | ... | | Given Add worker threads and rxqueues to all DUTs | ${phy_cores} | ${rxq} | | And Add PCI devices to all DUTs -| | And Run Keyword If | ${get_framesize} < ${1522} -| | ... | Add no multi seg to all DUTs +| | ${max_rate} | ${jumbo} = | Get Max Rate And Jumbo And Handle Multi Seg +| | ... | ${s_limit} | ${framesize} | | 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 -| | ... | jumbo_frames=${jumbo_frames} +| | ... | jumbo_frames=${jumbo} | | 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 -| | ... | jumbo_frames=${jumbo_frames} +| | ... | jumbo_frames=${jumbo} | | Set To Dictionary | ${dut2_vm_refs} | DUT2_VM1 | ${vm2} | | Then Find NDR and PDR intervals using optimized search | | ... | ${framesize} | ${traffic_profile} | ${min_rate} | ${max_rate} *** Test Cases *** -| tc01-64B-1t1c-eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-ndrpdr +| tc01-64B-1c-eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-ndrpdr | | [Tags] | 64B | 1C | | framesize=${64} | phy_cores=${1} -| tc02-1518B-1t1c-eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-ndrpdr -| | [Tags] | 1518B | 1C -| | framesize=${1518} | phy_cores=${1} - -| tc03-9000B-1t1c-eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-ndrpdr -| | [Tags] | 9000B | 1C -| | framesize=${9000} | phy_cores=${1} - -| tc04-IMIX-1t1c-eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-ndrpdr -| | [Tags] | IMIX | 1C -| | framesize=IMIX_v4_1 | phy_cores=${1} - -| tc05-64B-2t2c-eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-ndrpdr +| tc02-64B-2c-eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-ndrpdr | | [Tags] | 64B | 2C | | framesize=${64} | phy_cores=${2} -| tc06-1518B-2t2c-eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-ndrpdr -| | [Tags] | 1518B | 2C -| | framesize=${1518} | phy_cores=${2} - -| tc07-9000B-2t2c-eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-ndrpdr -| | [Tags] | 9000B | 2C -| | framesize=${9000} | phy_cores=${2} - -| tc08-IMIX-2t2c-eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-ndrpdr -| | [Tags] | IMIX | 2C -| | framesize=IMIX_v4_1 | phy_cores=${2} - -| tc09-64B-4t4c-eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-ndrpdr +| tc03-64B-4c-eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-ndrpdr | | [Tags] | 64B | 4C | | framesize=${64} | phy_cores=${4} -| tc10-1518B-4t4c-eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-ndrpdr +| tc04-1518B-1c-eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-ndrpdr +| | [Tags] | 1518B | 1C +| | framesize=${1518} | phy_cores=${1} + +| tc05-1518B-2c-eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-ndrpdr +| | [Tags] | 1518B | 2C +| | framesize=${1518} | phy_cores=${2} + +| tc06-1518B-4c-eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-ndrpdr | | [Tags] | 1518B | 4C | | framesize=${1518} | phy_cores=${4} -| tc11-9000B-4t4c-eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-ndrpdr +| tc07-9000B-1c-eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-ndrpdr +| | [Tags] | 9000B | 1C +| | framesize=${9000} | phy_cores=${1} + +| tc08-9000B-2c-eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-ndrpdr +| | [Tags] | 9000B | 2C +| | framesize=${9000} | phy_cores=${2} + +| tc09-9000B-4c-eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-ndrpdr | | [Tags] | 9000B | 4C | | framesize=${9000} | phy_cores=${4} -| tc12-IMIX-4t4c-eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-ndrpdr +| tc10-IMIX-1c-eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-ndrpdr +| | [Tags] | IMIX | 1C +| | framesize=IMIX_v4_1 | phy_cores=${1} + +| tc11-IMIX-2c-eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-ndrpdr +| | [Tags] | IMIX | 2C +| | framesize=IMIX_v4_1 | phy_cores=${2} + +| tc12-IMIX-4c-eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-ndrpdr | | [Tags] | IMIX | 4C | | framesize=IMIX_v4_1 | phy_cores=${4} diff --git a/tests/vpp/perf/vm_vhost/10ge2p1x520-eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-ndrpdrdisc.robot b/tests/vpp/perf/vm_vhost/10ge2p1x520-eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-ndrpdrdisc.robot deleted file mode 100644 index 7f5a6ec903..0000000000 --- a/tests/vpp/perf/vm_vhost/10ge2p1x520-eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-ndrpdrdisc.robot +++ /dev/null @@ -1,624 +0,0 @@ -# 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 | ETH | L2BDMACLRN | BASE | VHOST | VM | VHOST_1024 -| ... -| 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: Pkt 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. -| ... | *[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=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 -| ... | 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 *** -| ${perf_qemu_qsz}= | 1024 -# 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 - -*** Test Cases *** -| tc01-64B-1t1c-eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-ndrdisc -| | [Documentation] -| | ... | [Cfg] DUT runs L2BD switching config with 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 | 1C | NDRDISC -| | ${framesize}= | Set Variable | ${64} -| | ${min_rate}= | Set Variable | ${10000} -| | ${max_rate}= | Calculate pps | ${s_limit} | ${framesize} -| | ${binary_min}= | Set Variable | ${min_rate} -| | ${binary_max}= | Set Variable | ${max_rate} -| | ${threshold}= | Set Variable | ${min_rate} -| | ${dut1_vm_refs}= | Create Dictionary -| | ${dut2_vm_refs}= | Create Dictionary -| | Given Add worker threads and rxqueues to all DUTs | 1 -| | And Add PCI devices to all DUTs -| | And 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} -| | Then Find NDR using binary search and pps | ${framesize} | ${binary_min} -| | ... | ${binary_max} | ${traffic_profile} -| | ... | ${min_rate} | ${max_rate} | ${threshold} - -| tc02-64B-1t1c-eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-pdrdisc -| | [Documentation] -| | ... | [Cfg] DUT runs L2BD switching config with 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 | 1C | PDRDISC | SKIP_PATCH -| | ${framesize}= | Set Variable | ${64} -| | ${min_rate}= | Set Variable | ${10000} -| | ${max_rate}= | Calculate pps | ${s_limit} | ${framesize} -| | ${binary_min}= | Set Variable | ${min_rate} -| | ${binary_max}= | Set Variable | ${max_rate} -| | ${threshold}= | Set Variable | ${min_rate} -| | ${dut1_vm_refs}= | Create Dictionary -| | ${dut2_vm_refs}= | Create Dictionary -| | Given Add worker threads and rxqueues to all DUTs | 1 -| | And Add PCI devices to all DUTs -| | And 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} -| | Then Find PDR using binary search and pps | ${framesize} | ${binary_min} -| | ... | ${binary_max} | ${traffic_profile} -| | ... | ${min_rate} | ${max_rate} | ${threshold} -| | ... | ${perf_pdr_loss_acceptance} | ${perf_pdr_loss_acceptance_type} - -| tc03-1518B-1t1c-eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-ndrdisc -| | [Documentation] -| | ... | [Cfg] DUT runs L2BD switching config with 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 | 1C | NDRDISC -| | ${framesize}= | Set Variable | ${1518} -| | ${min_rate}= | Set Variable | ${10000} -| | ${max_rate}= | Calculate pps | ${s_limit} | ${framesize} -| | ${binary_min}= | Set Variable | ${min_rate} -| | ${binary_max}= | Set Variable | ${max_rate} -| | ${threshold}= | Set Variable | ${min_rate} -| | ${dut1_vm_refs}= | Create Dictionary -| | ${dut2_vm_refs}= | Create Dictionary -| | Given Add worker threads and rxqueues to all DUTs | 1 -| | And Add PCI devices to all DUTs -| | And 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} -| | Then Find NDR using binary search and pps | ${framesize} | ${binary_min} -| | ... | ${binary_max} | ${traffic_profile} -| | ... | ${min_rate} | ${max_rate} | ${threshold} - -| tc04-1518B-1t1c-eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-pdrdisc -| | [Documentation] -| | ... | [Cfg] DUT runs L2BD switching config with 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 | 1C | PDRDISC | SKIP_PATCH -| | ${framesize}= | Set Variable | ${1518} -| | ${min_rate}= | Set Variable | ${10000} -| | ${max_rate}= | Calculate pps | ${s_limit} | ${framesize} -| | ${binary_min}= | Set Variable | ${min_rate} -| | ${binary_max}= | Set Variable | ${max_rate} -| | ${threshold}= | Set Variable | ${min_rate} -| | ${dut1_vm_refs}= | Create Dictionary -| | ${dut2_vm_refs}= | Create Dictionary -| | Given Add worker threads and rxqueues to all DUTs | 1 -| | And Add PCI devices to all DUTs -| | And 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} -| | Then Find PDR using binary search and pps | ${framesize} | ${binary_min} -| | ... | ${binary_max} | ${traffic_profile} -| | ... | ${min_rate} | ${max_rate} | ${threshold} -| | ... | ${perf_pdr_loss_acceptance} | ${perf_pdr_loss_acceptance_type} - -| tc05-IMIX-1t1c-eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-ndrdisc -| | [Documentation] -| | ... | [Cfg] DUT runs L2BD switching config with 1 phy core, \ -| | ... | 1 receive queue per NIC port. [Ver] Find NDR for IMIX_v4_1 frame \ -| | ... | size using binary search start at 10GE linerate, step 10kpps. -| | ... | IMIX_v4_1 = (28x64B;16x570B;4x1518B) -| | [Tags] | IMIX | 1C | NDRDISC -| | ${framesize}= | Set Variable | IMIX_v4_1 -| | ${min_rate}= | Set Variable | ${10000} -| | ${max_rate}= | Calculate pps | ${s_limit} | ${framesize} -| | ${binary_min}= | Set Variable | ${min_rate} -| | ${binary_max}= | Set Variable | ${max_rate} -| | ${threshold}= | Set Variable | ${min_rate} -| | ${dut1_vm_refs}= | Create Dictionary -| | ${dut2_vm_refs}= | Create Dictionary -| | Given Add worker threads and rxqueues to all DUTs | 1 -| | And Add PCI devices to all DUTs -| | And 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} -| | Then Find NDR using binary search and pps | ${framesize} | ${binary_min} -| | ... | ${binary_max} | ${traffic_profile} -| | ... | ${min_rate} | ${max_rate} | ${threshold} - -| tc06-IMIX-1t1c-eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-pdrdisc -| | [Documentation] -| | ... | [Cfg] DUT runs L2BD switching config with 1 phy core, \ -| | ... | 1 receive queue per NIC port. [Ver] Find PDR for IMIX_v4_1 frame \ -| | ... | size using binary search start at 10GE linerate, step 10kpps, LT=0.5%. -| | ... | IMIX_v4_1 = (28x64B;16x570B;4x1518B) -| | [Tags] | IMIX | 1C | PDRDISC | SKIP_PATCH -| | ${framesize}= | Set Variable | IMIX_v4_1 -| | ${min_rate}= | Set Variable | ${10000} -| | ${max_rate}= | Calculate pps | ${s_limit} | ${framesize} -| | ${binary_min}= | Set Variable | ${min_rate} -| | ${binary_max}= | Set Variable | ${max_rate} -| | ${threshold}= | Set Variable | ${min_rate} -| | ${dut1_vm_refs}= | Create Dictionary -| | ${dut2_vm_refs}= | Create Dictionary -| | Given Add worker threads and rxqueues to all DUTs | 1 -| | And Add PCI devices to all DUTs -| | And 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} -| | Then Find PDR using binary search and pps | ${framesize} | ${binary_min} -| | ... | ${binary_max} | ${traffic_profile} -| | ... | ${min_rate} | ${max_rate} | ${threshold} -| | ... | ${perf_pdr_loss_acceptance} | ${perf_pdr_loss_acceptance_type} - -| tc07-64B-2t2c-eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-ndrdisc -| | [Documentation] -| | ... | [Cfg] DUT runs L2BD switching config with 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 | 2C | NDRDISC -| | ${framesize}= | Set Variable | ${64} -| | ${min_rate}= | Set Variable | ${10000} -| | ${max_rate}= | Calculate pps | ${s_limit} | ${framesize} -| | ${binary_min}= | Set Variable | ${min_rate} -| | ${binary_max}= | Set Variable | ${max_rate} -| | ${threshold}= | Set Variable | ${min_rate} -| | ${dut1_vm_refs}= | Create Dictionary -| | ${dut2_vm_refs}= | Create Dictionary -| | Given Add worker threads and rxqueues to all DUTs | 2 -| | And Add PCI devices to all DUTs -| | And 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} -| | Then Find NDR using binary search and pps | ${framesize} | ${binary_min} -| | ... | ${binary_max} | ${traffic_profile} -| | ... | ${min_rate} | ${max_rate} | ${threshold} - -| tc08-64B-2t2c-eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-pdrdisc -| | [Documentation] -| | ... | [Cfg] DUT runs L2BD switching config with 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 | 2C | PDRDISC | SKIP_PATCH -| | ${framesize}= | Set Variable | ${64} -| | ${min_rate}= | Set Variable | ${10000} -| | ${max_rate}= | Calculate pps | ${s_limit} | ${framesize} -| | ${binary_min}= | Set Variable | ${min_rate} -| | ${binary_max}= | Set Variable | ${max_rate} -| | ${threshold}= | Set Variable | ${min_rate} -| | ${dut1_vm_refs}= | Create Dictionary -| | ${dut2_vm_refs}= | Create Dictionary -| | Given Add worker threads and rxqueues to all DUTs | 2 -| | And Add PCI devices to all DUTs -| | And 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} -| | Then Find PDR using binary search and pps | ${framesize} | ${binary_min} -| | ... | ${binary_max} | ${traffic_profile} -| | ... | ${min_rate} | ${max_rate} | ${threshold} -| | ... | ${perf_pdr_loss_acceptance} | ${perf_pdr_loss_acceptance_type} - -| tc09-1518B-2t2c-eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-ndrdisc -| | [Documentation] -| | ... | [Cfg] DUT runs L2BD switching config with 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 | 2C | NDRDISC | SKIP_PATCH -| | ${framesize}= | Set Variable | ${1518} -| | ${min_rate}= | Set Variable | ${10000} -| | ${max_rate}= | Calculate pps | ${s_limit} | ${framesize} -| | ${binary_min}= | Set Variable | ${min_rate} -| | ${binary_max}= | Set Variable | ${max_rate} -| | ${threshold}= | Set Variable | ${min_rate} -| | ${dut1_vm_refs}= | Create Dictionary -| | ${dut2_vm_refs}= | Create Dictionary -| | Given Add worker threads and rxqueues to all DUTs | 2 -| | And Add PCI devices to all DUTs -| | And 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} -| | Then Find NDR using binary search and pps | ${framesize} | ${binary_min} -| | ... | ${binary_max} | ${traffic_profile} -| | ... | ${min_rate} | ${max_rate} | ${threshold} - -| tc10-1518B-2t2c-eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-pdrdisc -| | [Documentation] -| | ... | [Cfg] DUT runs L2BD switching config with 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 | 2C | PDRDISC | SKIP_PATCH -| | ${framesize}= | Set Variable | ${1518} -| | ${min_rate}= | Set Variable | ${10000} -| | ${max_rate}= | Calculate pps | ${s_limit} | ${framesize} -| | ${binary_min}= | Set Variable | ${min_rate} -| | ${binary_max}= | Set Variable | ${max_rate} -| | ${threshold}= | Set Variable | ${min_rate} -| | ${dut1_vm_refs}= | Create Dictionary -| | ${dut2_vm_refs}= | Create Dictionary -| | Given Add worker threads and rxqueues to all DUTs | 2 -| | And Add PCI devices to all DUTs -| | And 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} -| | Then Find PDR using binary search and pps | ${framesize} | ${binary_min} -| | ... | ${binary_max} | ${traffic_profile} -| | ... | ${min_rate} | ${max_rate} | ${threshold} -| | ... | ${perf_pdr_loss_acceptance} | ${perf_pdr_loss_acceptance_type} - -| tc11-IMIX-2t2c-eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-ndrdisc -| | [Documentation] -| | ... | [Cfg] DUT runs L2BD switching config with 2 phy cores, \ -| | ... | 1 receive queue per NIC port. [Ver] Find NDR for IMIX_v4_1 frame \ -| | ... | size using binary search start at 10GE linerate, step 10kpps. -| | ... | IMIX_v4_1 = (28x64B;16x570B;4x1518B) -| | [Tags] | IMIX | 2C | NDRDISC | SKIP_PATCH -| | ${framesize}= | Set Variable | IMIX_v4_1 -| | ${min_rate}= | Set Variable | ${10000} -| | ${max_rate}= | Calculate pps | ${s_limit} | ${framesize} -| | ${binary_min}= | Set Variable | ${min_rate} -| | ${binary_max}= | Set Variable | ${max_rate} -| | ${threshold}= | Set Variable | ${min_rate} -| | ${dut1_vm_refs}= | Create Dictionary -| | ${dut2_vm_refs}= | Create Dictionary -| | Given Add worker threads and rxqueues to all DUTs | 2 -| | And Add PCI devices to all DUTs -| | And 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} -| | Then Find NDR using binary search and pps | ${framesize} | ${binary_min} -| | ... | ${binary_max} | ${traffic_profile} -| | ... | ${min_rate} | ${max_rate} | ${threshold} - -| tc12-IMIX-2t2c-eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-pdrdisc -| | [Documentation] -| | ... | [Cfg] DUT runs L2BD switching config with 2 phy cores, \ -| | ... | 1 receive queue per NIC port. [Ver] Find PDR for IMIX_v4_1 frame \ -| | ... | size using binary search start at 10GE linerate, step 10kpps, LT=0.5%. -| | ... | IMIX_v4_1 = (28x64B;16x570B;4x1518B) -| | [Tags] | IMIX | 2C | PDRDISC | SKIP_PATCH -| | ${framesize}= | Set Variable | IMIX_v4_1 -| | ${min_rate}= | Set Variable | ${10000} -| | ${max_rate}= | Calculate pps | ${s_limit} | ${framesize} -| | ${binary_min}= | Set Variable | ${min_rate} -| | ${binary_max}= | Set Variable | ${max_rate} -| | ${threshold}= | Set Variable | ${min_rate} -| | ${dut1_vm_refs}= | Create Dictionary -| | ${dut2_vm_refs}= | Create Dictionary -| | Given Add worker threads and rxqueues to all DUTs | 2 -| | And Add PCI devices to all DUTs -| | And 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} -| | Then Find PDR using binary search and pps | ${framesize} | ${binary_min} -| | ... | ${binary_max} | ${traffic_profile} -| | ... | ${min_rate} | ${max_rate} | ${threshold} -| | ... | ${perf_pdr_loss_acceptance} | ${perf_pdr_loss_acceptance_type} - -| tc13-64B-4t4c-eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-ndrdisc -| | [Documentation] -| | ... | [Cfg] DUT runs L2BD switching config with 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 | 4C | NDRDISC -| | ${framesize}= | Set Variable | ${64} -| | ${min_rate}= | Set Variable | ${10000} -| | ${max_rate}= | Calculate pps | ${s_limit} | ${framesize} -| | ${binary_min}= | Set Variable | ${min_rate} -| | ${binary_max}= | Set Variable | ${max_rate} -| | ${threshold}= | Set Variable | ${min_rate} -| | ${dut1_vm_refs}= | Create Dictionary -| | ${dut2_vm_refs}= | Create Dictionary -| | Given Add worker threads and rxqueues to all DUTs | 4 -| | And Add PCI devices to all DUTs -| | And 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} -| | Then Find NDR using binary search and pps | ${framesize} | ${binary_min} -| | ... | ${binary_max} | ${traffic_profile} -| | ... | ${min_rate} | ${max_rate} | ${threshold} - -| tc14-64B-4t4c-eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-pdrdisc -| | [Documentation] -| | ... | [Cfg] DUT runs L2BD switching config with 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 | 4C | PDRDISC | SKIP_PATCH -| | ${framesize}= | Set Variable | ${64} -| | ${min_rate}= | Set Variable | ${10000} -| | ${max_rate}= | Calculate pps | ${s_limit} | ${framesize} -| | ${binary_min}= | Set Variable | ${min_rate} -| | ${binary_max}= | Set Variable | ${max_rate} -| | ${threshold}= | Set Variable | ${min_rate} -| | ${dut1_vm_refs}= | Create Dictionary -| | ${dut2_vm_refs}= | Create Dictionary -| | Given Add worker threads and rxqueues to all DUTs | 4 -| | And Add PCI devices to all DUTs -| | And 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} -| | Then Find PDR using binary search and pps | ${framesize} | ${binary_min} -| | ... | ${binary_max} | ${traffic_profile} -| | ... | ${min_rate} | ${max_rate} | ${threshold} -| | ... | ${perf_pdr_loss_acceptance} | ${perf_pdr_loss_acceptance_type} - -| tc15-1518B-4t4c-eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-ndrdisc -| | [Documentation] -| | ... | [Cfg] DUT runs L2BD switching config with 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 | 4C | NDRDISC | SKIP_PATCH -| | ${framesize}= | Set Variable | ${1518} -| | ${min_rate}= | Set Variable | ${10000} -| | ${max_rate}= | Calculate pps | ${s_limit} | ${framesize} -| | ${binary_min}= | Set Variable | ${min_rate} -| | ${binary_max}= | Set Variable | ${max_rate} -| | ${threshold}= | Set Variable | ${min_rate} -| | ${dut1_vm_refs}= | Create Dictionary -| | ${dut2_vm_refs}= | Create Dictionary -| | Given Add worker threads and rxqueues to all DUTs | 4 -| | And Add PCI devices to all DUTs -| | And 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} -| | Then Find NDR using binary search and pps | ${framesize} | ${binary_min} -| | ... | ${binary_max} | ${traffic_profile} -| | ... | ${min_rate} | ${max_rate} | ${threshold} - -| tc16-1518B-4t4c-eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-pdrdisc -| | [Documentation] -| | ... | [Cfg] DUT runs L2BD switching config with 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 | 4C | PDRDISC | SKIP_PATCH -| | ${framesize}= | Set Variable | ${1518} -| | ${min_rate}= | Set Variable | ${10000} -| | ${max_rate}= | Calculate pps | ${s_limit} | ${framesize} -| | ${binary_min}= | Set Variable | ${min_rate} -| | ${binary_max}= | Set Variable | ${max_rate} -| | ${threshold}= | Set Variable | ${min_rate} -| | ${dut1_vm_refs}= | Create Dictionary -| | ${dut2_vm_refs}= | Create Dictionary -| | Given Add worker threads and rxqueues to all DUTs | 4 -| | And Add PCI devices to all DUTs -| | And 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} -| | Then Find PDR using binary search and pps | ${framesize} | ${binary_min} -| | ... | ${binary_max} | ${traffic_profile} -| | ... | ${min_rate} | ${max_rate} | ${threshold} -| | ... | ${perf_pdr_loss_acceptance} | ${perf_pdr_loss_acceptance_type} - -| tc17-IMIX-4t4c-eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-ndrdisc -| | [Documentation] -| | ... | [Cfg] DUT runs L2BD switching config with 4 phy cores, \ -| | ... | 2 receive queues per NIC port. [Ver] Find NDR for IMIX_v4_1 frame \ -| | ... | size using binary search start at 10GE linerate, step 10kpps. -| | ... | IMIX_v4_1 = (28x64B;16x570B;4x1518B) -| | [Tags] | IMIX | 4C | NDRDISC | SKIP_PATCH -| | ${framesize}= | Set Variable | IMIX_v4_1 -| | ${min_rate}= | Set Variable | ${10000} -| | ${max_rate}= | Calculate pps | ${s_limit} | ${framesize} -| | ${binary_min}= | Set Variable | ${min_rate} -| | ${binary_max}= | Set Variable | ${max_rate} -| | ${threshold}= | Set Variable | ${min_rate} -| | ${dut1_vm_refs}= | Create Dictionary -| | ${dut2_vm_refs}= | Create Dictionary -| | Given Add worker threads and rxqueues to all DUTs | 4 -| | And Add PCI devices to all DUTs -| | And 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} -| | Then Find NDR using binary search and pps | ${framesize} | ${binary_min} -| | ... | ${binary_max} | ${traffic_profile} -| | ... | ${min_rate} | ${max_rate} | ${threshold} - -| tc18-IMIX-4t4c-eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-pdrdisc -| | [Documentation] -| | ... | [Cfg] DUT runs L2BD switching config with 4 phy cores, \ -| | ... | 2 receive queues per NIC port. [Ver] Find PDR for IMIX_v4_1 frame \ -| | ... | size using binary search start at 10GE linerate, step 10kpps, LT=0.5%. -| | ... | IMIX_v4_1 = (28x64B;16x570B;4x1518B) -| | [Tags] | IMIX | 4C | PDRDISC | SKIP_PATCH -| | ${framesize}= | Set Variable | IMIX_v4_1 -| | ${min_rate}= | Set Variable | ${10000} -| | ${max_rate}= | Calculate pps | ${s_limit} | ${framesize} -| | ${binary_min}= | Set Variable | ${min_rate} -| | ${binary_max}= | Set Variable | ${max_rate} -| | ${threshold}= | Set Variable | ${min_rate} -| | ${dut1_vm_refs}= | Create Dictionary -| | ${dut2_vm_refs}= | Create Dictionary -| | Given Add worker threads and rxqueues to all DUTs | 4 -| | And Add PCI devices to all DUTs -| | And 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} -| | Then Find PDR using binary search and pps | ${framesize} | ${binary_min} -| | ... | ${binary_max} | ${traffic_profile} -| | ... | ${min_rate} | ${max_rate} | ${threshold} -| | ... | ${perf_pdr_loss_acceptance} | ${perf_pdr_loss_acceptance_type} diff --git a/tests/vpp/perf/vm_vhost/10ge2p1x520-eth-l2bdbasemaclrn-eth-2vhostvr256-1vm-cfsrr1-mrr.robot b/tests/vpp/perf/vm_vhost/10ge2p1x520-eth-l2bdbasemaclrn-eth-2vhostvr256-1vm-cfsrr1-mrr.robot new file mode 100644 index 0000000000..1573135a11 --- /dev/null +++ b/tests/vpp/perf/vm_vhost/10ge2p1x520-eth-l2bdbasemaclrn-eth-2vhostvr256-1vm-cfsrr1-mrr.robot @@ -0,0 +1,147 @@ +# Copyright (c) 2018 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 | MRR +| ... | NIC_Intel-X520-DA2 | ETH | L2BDMACLRN | BASE | VHOST | VM | VHOST_256 +| ... | CFS_OPT +| ... +| 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 mrr test with vhost and VM with dpdk-testpmd +| ... | dut1_node=${dut1} | dut1_vm_refs=${dut1_vm_refs} +| ... | dut2_node=${dut2} | dut2_vm_refs=${dut2_vm_refs} +| ... +| Test Template | Local Template +| ... +| Documentation | *Raw results 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:* In MaxReceivedRate test TG sends traffic +| ... | at line rate and reports total received/sent packets over trial period. +| ... | 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 *** +| ${perf_qemu_qsz}= | 256 +# 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 *** +| Local Template +| | [Documentation] | FIXME. +| | [Arguments] | ${framesize} | ${phy_cores} | ${rxq}=${None} +| | ... +| | Set Test Variable | ${use_tuned_cfs} | ${True} +| | ${dut1_vm_refs}= | Create Dictionary +| | ${dut2_vm_refs}= | Create Dictionary +| | Set Test Variable | ${dut1_vm_refs} +| | Set Test Variable | ${dut2_vm_refs} +| | ... +| | Given Add worker threads and rxqueues to all DUTs | ${phy_cores} | ${rxq} +| | And Add PCI devices to all DUTs +| | ${max_rate} | ${jumbo} = | Get Max Rate And Jumbo And Handle Multi Seg +| | ... | ${s_limit} | ${framesize} +| | 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 +| | ... | jumbo_frames=${jumbo} +| | 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 +| | ... | jumbo_frames=${jumbo} +| | Set To Dictionary | ${dut2_vm_refs} | DUT2_VM1 | ${vm2} +| | Setup Scheduler Policy for Vpp On All DUTs +| | Then Traffic should pass with maximum rate +| | ... | ${max_rate}pps | ${framesize} | ${traffic_profile} + +*** Test Cases *** +| tc01-64B-1c-eth-l2bdbasemaclrn-eth-2vhostvr256-1vm-cfsrr1-mrr +| | [Tags] | 64B | 1C +| | framesize=${64} | phy_cores=${1} + +| tc02-64B-2c-eth-l2bdbasemaclrn-eth-2vhostvr256-1vm-cfsrr1-mrr +| | [Tags] | 64B | 2C +| | framesize=${64} | phy_cores=${2} + +| tc03-64B-4c-eth-l2bdbasemaclrn-eth-2vhostvr256-1vm-cfsrr1-mrr +| | [Tags] | 64B | 4C +| | framesize=${64} | phy_cores=${4} + +| tc04-1518B-1c-eth-l2bdbasemaclrn-eth-2vhostvr256-1vm-cfsrr1-mrr +| | [Tags] | 1518B | 1C +| | framesize=${1518} | phy_cores=${1} + +| tc05-1518B-2c-eth-l2bdbasemaclrn-eth-2vhostvr256-1vm-cfsrr1-mrr +| | [Tags] | 1518B | 2C +| | framesize=${1518} | phy_cores=${2} + +| tc06-1518B-4c-eth-l2bdbasemaclrn-eth-2vhostvr256-1vm-cfsrr1-mrr +| | [Tags] | 1518B | 4C +| | framesize=${1518} | phy_cores=${4} + +| tc07-9000B-1c-eth-l2bdbasemaclrn-eth-2vhostvr256-1vm-cfsrr1-mrr +| | [Tags] | 9000B | 1C +| | framesize=${9000} | phy_cores=${1} + +| tc08-9000B-2c-eth-l2bdbasemaclrn-eth-2vhostvr256-1vm-cfsrr1-mrr +| | [Tags] | 9000B | 2C +| | framesize=${9000} | phy_cores=${2} + +| tc09-9000B-4c-eth-l2bdbasemaclrn-eth-2vhostvr256-1vm-cfsrr1-mrr +| | [Tags] | 9000B | 4C +| | framesize=${9000} | phy_cores=${4} + +| tc10-IMIX-1c-eth-l2bdbasemaclrn-eth-2vhostvr256-1vm-cfsrr1-mrr +| | [Tags] | IMIX | 1C +| | framesize=IMIX_v4_1 | phy_cores=${1} + +| tc11-IMIX-2c-eth-l2bdbasemaclrn-eth-2vhostvr256-1vm-cfsrr1-mrr +| | [Tags] | IMIX | 2C +| | framesize=IMIX_v4_1 | phy_cores=${2} + +| tc12-IMIX-4c-eth-l2bdbasemaclrn-eth-2vhostvr256-1vm-cfsrr1-mrr +| | [Tags] | IMIX | 4C +| | framesize=IMIX_v4_1 | phy_cores=${4} diff --git a/tests/vpp/perf/vm_vhost/10ge2p1x520-eth-l2bdbasemaclrn-eth-2vhostvr256-1vm-cfsrr1-ndrpdr.robot b/tests/vpp/perf/vm_vhost/10ge2p1x520-eth-l2bdbasemaclrn-eth-2vhostvr256-1vm-cfsrr1-ndrpdr.robot new file mode 100644 index 0000000000..cf04fe2723 --- /dev/null +++ b/tests/vpp/perf/vm_vhost/10ge2p1x520-eth-l2bdbasemaclrn-eth-2vhostvr256-1vm-cfsrr1-ndrpdr.robot @@ -0,0 +1,153 @@ +# Copyright (c) 2018 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 | NDRPDR +| ... | NIC_Intel-X520-DA2 | ETH | L2BDMACLRN | BASE | VHOST | VM | VHOST_256 +| ... | CFS_OPT +| ... +| 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} +| ... +| Test Template | Local Template +| ... +| 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 MLRsearch library. +| ... | 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 *** +| ${perf_qemu_qsz}= | 256 +# 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 *** +| Local Template +| | [Documentation] | FIXME. +| | [Arguments] | ${framesize} | ${phy_cores} | ${rxq}=${None} +| | ... +| | Set Test Variable | ${use_tuned_cfs} | ${True} +| | Set Test Variable | ${framesize} +| | Set Test Variable | ${min_rate} | ${10000} +| | ${dut1_vm_refs}= | Create Dictionary +| | ${dut2_vm_refs}= | Create Dictionary +| | Set Test Variable | ${dut1_vm_refs} +| | Set Test Variable | ${dut2_vm_refs} +| | ... +| | Given Add worker threads and rxqueues to all DUTs | ${phy_cores} | ${rxq} +| | And Add PCI devices to all DUTs +| | ${max_rate} | ${jumbo} = | Get Max Rate And Jumbo And Handle Multi Seg +| | ... | ${s_limit} | ${framesize} +| | 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 +| | ... | jumbo_frames=${jumbo} +| | 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 +| | ... | jumbo_frames=${jumbo} +| | Set To Dictionary | ${dut2_vm_refs} | DUT2_VM1 | ${vm2} +| | Setup Scheduler Policy for Vpp On All DUTs +| | Then Find NDR and PDR intervals using optimized search +| | ... | ${framesize} | ${traffic_profile} | ${min_rate} | ${max_rate} + +*** Test Cases *** +| tc01-64B-1c-eth-l2bdbasemaclrn-eth-2vhostvr256-1vm-cfsrr1-ndrpdr +| | [Tags] | 64B | 1C +| | framesize=${64} | phy_cores=${1} + +| tc02-64B-2c-eth-l2bdbasemaclrn-eth-2vhostvr256-1vm-cfsrr1-ndrpdr +| | [Tags] | 64B | 2C +| | framesize=${64} | phy_cores=${2} + +| tc03-64B-4c-eth-l2bdbasemaclrn-eth-2vhostvr256-1vm-cfsrr1-ndrpdr +| | [Tags] | 64B | 4C +| | framesize=${64} | phy_cores=${4} + +| tc04-1518B-1c-eth-l2bdbasemaclrn-eth-2vhostvr256-1vm-cfsrr1-ndrpdr +| | [Tags] | 1518B | 1C +| | framesize=${1518} | phy_cores=${1} + +| tc05-1518B-2c-eth-l2bdbasemaclrn-eth-2vhostvr256-1vm-cfsrr1-ndrpdr +| | [Tags] | 1518B | 2C +| | framesize=${1518} | phy_cores=${2} + +| tc06-1518B-4c-eth-l2bdbasemaclrn-eth-2vhostvr256-1vm-cfsrr1-ndrpdr +| | [Tags] | 1518B | 4C +| | framesize=${1518} | phy_cores=${4} + +| tc07-9000B-1c-eth-l2bdbasemaclrn-eth-2vhostvr256-1vm-cfsrr1-ndrpdr +| | [Tags] | 9000B | 1C +| | framesize=${9000} | phy_cores=${1} + +| tc08-9000B-2c-eth-l2bdbasemaclrn-eth-2vhostvr256-1vm-cfsrr1-ndrpdr +| | [Tags] | 9000B | 2C +| | framesize=${9000} | phy_cores=${2} + +| tc09-9000B-4c-eth-l2bdbasemaclrn-eth-2vhostvr256-1vm-cfsrr1-ndrpdr +| | [Tags] | 9000B | 4C +| | framesize=${9000} | phy_cores=${4} + +| tc10-IMIX-1c-eth-l2bdbasemaclrn-eth-2vhostvr256-1vm-cfsrr1-ndrpdr +| | [Tags] | IMIX | 1C +| | framesize=IMIX_v4_1 | phy_cores=${1} + +| tc11-IMIX-2c-eth-l2bdbasemaclrn-eth-2vhostvr256-1vm-cfsrr1-ndrpdr +| | [Tags] | IMIX | 2C +| | framesize=IMIX_v4_1 | phy_cores=${2} + +| tc12-IMIX-4c-eth-l2bdbasemaclrn-eth-2vhostvr256-1vm-cfsrr1-ndrpdr +| | [Tags] | IMIX | 4C +| | framesize=IMIX_v4_1 | phy_cores=${4} 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 deleted file mode 100644 index c0fdcbcb96..0000000000 --- a/tests/vpp/perf/vm_vhost/10ge2p1x520-eth-l2bdbasemaclrn-eth-2vhostvr256-1vm-cfsrr1-ndrpdrdisc.robot +++ /dev/null @@ -1,189 +0,0 @@ -# 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 | ETH | L2BDMACLRN | BASE | VHOST | VM | VHOST_256 -| ... | CFS_OPT -| ... -| 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} -| ... -| Test Template | Local template -| ... -| 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 *** -| ${perf_qemu_qsz}= | 256 -| ${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 *** -| Local template -| | [Arguments] | ${phy_cores} | ${framesize} | ${search_type} | ${rxq}=${None} -| | ... | ${min_rate}=${10000} -| | ... -| | 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 worker threads and rxqueues to all DUTs | ${phy_cores} | ${rxq} -| | And Add PCI devices to all DUTs -| | And Run Keyword If | ${get_framesize} < ${1522} | Add no multi seg to all DUTs -| | And Apply startup configuration on all VPP DUTs -| | When Initialize 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} -| | Setup Scheduler Policy for Vpp On All DUTs -| | 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 -| | [Tags] | 64B | 1C | NDRDISC -| | phy_cores=${1} | framesize=${64} | search_type=NDR - -| tc02-64B-1t1c-eth-l2bdbasemaclrn-eth-2vhostvr256-1vm-cfsrr1-pdrdisc -| | [Tags] | 64B | 1C | PDRDISC | SKIP_PATCH -| | phy_cores=${1} | framesize=${64} | search_type=PDR - -| tc03-1518B-1t1c-etc-l2bdbasemaclrn-eth-2vhostvr256-1vm-cfsrr1-ndrdisc -| | [Tags] | 1518B | 1C | NDRDISC -| | phy_cores=${1} | framesize=${1518} | search_type=NDR - -| tc04-1518B-1t1c-eth-l2bdbasemaclrn-eth-2vhostvr256-1vm-cfsrr1-pdrdisc -| | [Tags] | 1518B | 1C | PDRDISC | SKIP_PATCH -| | phy_cores=${1} | framesize=${1518} | search_type=PDR - -| tc05-IMIX-1t1c-eth-l2bdbasemaclrn-eth-2vhostvr256-1vm-cfsrr1-ndrdisc -| | [Tags] | IMIX | 1C | NDRDISC -| | phy_cores=${1} | framesize=IMIX_v4_1 | search_type=NDR - -| tc06-IMIX-1t1c-eth-l2bdbasemaclrn-eth-2vhostvr256-1vm-cfsrr1-pdrdisc -| | [Tags] | IMIX | 1C | PDRDISC | SKIP_PATCH -| | phy_cores=${1} | framesize=IMIX_v4_1 | search_type=PDR - -| tc07-64B-2t2c-eth-l2bdbasemaclrn-eth-2vhostvr256-1vm-cfsrr1-ndrdisc -| | [Tags] | 64B | 2C | NDRDISC -| | phy_cores=${2} | framesize=${64} | search_type=NDR - -| tc08-64B-2t2c-eth-l2bdbasemaclrn-eth-2vhostvr256-1vm-cfsrr1-pdrdisc -| | [Tags] | 64B | 2C | PDRDISC | SKIP_PATCH -| | phy_cores=${2} | framesize=${64} | search_type=PDR - -| tc09-1518B-2t2c-eth-l2bdbasemaclrn-eth-2vhostvr256-1vm-cfsrr1-ndrdisc -| | [Tags] | 1518B | 2C | NDRDISC | SKIP_PATCH -| | phy_cores=${2} | framesize=${1518} | search_type=NDR - -| tc10-1518B-2t2c-eth-l2bdbasemaclrn-eth-2vhostvr256-1vm-cfsrr1-pdrdisc -| | [Tags] | 1518B | 2C | PDRDISC | SKIP_PATCH -| | phy_cores=${2} | framesize=${1518} | search_type=PDR - -| tc11-IMIX-2t2c-eth-l2bdbasemaclrn-eth-2vhostvr256-1vm-cfsrr1-ndrdisc -| | [Tags] | IMIX | 2C | NDRDISC | SKIP_PATCH -| | phy_cores=${2} | framesize=IMIX_v4_1 | search_type=NDR - -| tc12-IMIX-2t2c-eth-l2bdbasemaclrn-eth-2vhostvr256-1vm-cfsrr1-pdrdisc -| | [Tags] | IMIX | 2C | PDRDISC | SKIP_PATCH -| | phy_cores=${2} | framesize=IMIX_v4_1 | search_type=PDR - -| tc13-64B-4t4c-eth-l2bdbasemaclrn-eth-2vhostvr256-1vm-cfsrr1-ndrdisc -| | [Tags] | 64B | 4C | NDRDISC -| | phy_cores=${4} | framesize=${64} | search_type=NDR - -| tc14-64B-4t4c-eth-l2bdbasemaclrn-eth-2vhostvr256-1vm-cfsrr1-pdrdisc -| | [Tags] | 64B | 4C | PDRDISC | SKIP_PATCH -| | phy_cores=${4} | framesize=${64} | search_type=PDR - -| tc15-1518B-4t4c-eth-l2bdbasemaclrn-eth-2vhostvr256-1vm-cfsrr1-ndrdisc -| | [Tags] | 1518B | 4C | NDRDISC | SKIP_PATCH -| | phy_cores=${4} | framesize=${1518} | search_type=NDR - -| tc16-1518B-4t4c-eth-l2bdbasemaclrn-eth-2vhostvr256-1vm-cfsrr1-pdrdisc -| | [Tags] | 1518B | 4C | PDRDISC | SKIP_PATCH -| | phy_cores=${4} | framesize=${1518} | search_type=PDR - -| tc17-IMIX-4t4c-eth-l2bdbasemaclrn-eth-2vhostvr256-1vm-cfsrr1-ndrdisc -| | [Tags] | IMIX | 4C | NDRDISC | SKIP_PATCH -| | phy_cores=${4} | framesize=IMIX_v4_1 | search_type=NDR - -| tc18-IMIX-4t4c-eth-l2bdbasemaclrn-eth-2vhostvr256-1vm-cfsrr1-pdrdisc -| | [Tags] | IMIX | 4C | PDRDISC | SKIP_PATCH -| | phy_cores=${4} | framesize=IMIX_v4_1 | search_type=PDR diff --git a/tests/vpp/perf/vm_vhost/10ge2p1x520-eth-l2bdbasemaclrn-eth-2vhostvr256-1vm-mrr.robot b/tests/vpp/perf/vm_vhost/10ge2p1x520-eth-l2bdbasemaclrn-eth-2vhostvr256-1vm-mrr.robot index eafd275085..f6dd5aa855 100644 --- a/tests/vpp/perf/vm_vhost/10ge2p1x520-eth-l2bdbasemaclrn-eth-2vhostvr256-1vm-mrr.robot +++ b/tests/vpp/perf/vm_vhost/10ge2p1x520-eth-l2bdbasemaclrn-eth-2vhostvr256-1vm-mrr.robot @@ -27,7 +27,7 @@ | ... | dut1_node=${dut1} | dut1_vm_refs=${dut1_vm_refs} | ... | dut2_node=${dut2} | dut2_vm_refs=${dut2_vm_refs} | ... -| Test Template | Local template +| Test Template | Local Template | ... | Documentation | *Raw results L2BD test cases with vhost* | ... @@ -64,7 +64,7 @@ | ${traffic_profile}= | trex-sl-3n-ethip4-ip4src254 *** Keywords *** -| Local template +| Local Template | | [Documentation] | | ... | [Cfg] DUT runs IPv4 routing config. | | ... | Each DUT uses ${phy_cores} physical core(s) for worker threads. @@ -79,79 +79,74 @@ | | ... | | [Arguments] | ${framesize} | ${phy_cores} | ${rxq}=${None} | | ... -| | Set Test Variable | ${framesize} -| | ${get_framesize}= | Get Frame Size | ${framesize} -| | ${max_rate}= | Calculate pps | ${s_limit} | ${get_framesize} | | ${dut1_vm_refs}= | Create Dictionary | | ${dut2_vm_refs}= | Create Dictionary | | Set Test Variable | ${dut1_vm_refs} | | Set Test Variable | ${dut2_vm_refs} -| | ${jumbo_frames}= | Set Variable If | ${get_framesize} < ${1522} -| | ... | ${False} | ${True} | | ... | | Given Add worker threads and rxqueues to all DUTs | ${phy_cores} | ${rxq} | | And Add PCI devices to all DUTs -| | And Run Keyword If | ${get_framesize} < ${1522} -| | ... | Add no multi seg to all DUTs +| | ${max_rate} | ${jumbo} = | Get Max Rate And Jumbo And Handle Multi Seg +| | ... | ${s_limit} | ${framesize} | | 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 -| | ... | jumbo_frames=${jumbo_frames} +| | ... | jumbo_frames=${jumbo} | | 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 -| | ... | jumbo_frames=${jumbo_frames} +| | ... | jumbo_frames=${jumbo} | | Set To Dictionary | ${dut2_vm_refs} | DUT2_VM1 | ${vm2} | | Then Traffic should pass with maximum rate | | ... | ${max_rate}pps | ${framesize} | ${traffic_profile} *** Test Cases *** -| tc01-64B-1t1c-eth-l2bdbasemaclrn-eth-2vhostvr256-1vm-mrr +| tc01-64B-1c-eth-l2bdbasemaclrn-eth-2vhostvr256-1vm-mrr | | [Tags] | 64B | 1C | | framesize=${64} | phy_cores=${1} -| tc02-1518B-1t1c-eth-l2bdbasemaclrn-eth-2vhostvr256-1vm -| | [Tags] | 1518B | 1C -| | framesize=${1518} | phy_cores=${1} - -| tc03-9000B-1t1c-eth-l2bdbasemaclrn-eth-2vhostvr256-1vm -| | [Tags] | 9000B | 1C -| | framesize=${9000} | phy_cores=${1} - -| tc04-IMIX-1t1c-eth-l2bdbasemaclrn-eth-2vhostvr256-1vm-mrr -| | [Tags] | IMIX | 1C -| | framesize=IMIX_v4_1 | phy_cores=${1} - -| tc05-64B-2t2c-eth-l2bdbasemaclrn-eth-2vhostvr256-1vm-mrr +| tc02-64B-2c-eth-l2bdbasemaclrn-eth-2vhostvr256-1vm-mrr | | [Tags] | 64B | 2C | | framesize=${64} | phy_cores=${2} -| tc06-1518B-2t2c-eth-l2bdbasemaclrn-eth-2vhostvr256-1vm-mrr -| | [Tags] | 1518B | 2C -| | framesize=${1518} | phy_cores=${2} - -| tc07-9000B-2t2c-eth-l2bdbasemaclrn-eth-2vhostvr256-1vm-mrr -| | [Tags] | 9000B | 2C -| | framesize=${9000} | phy_cores=${2} - -| tc08-IMIX-2t2c-eth-l2bdbasemaclrn-eth-2vhostvr256-1vm-mrr -| | [Tags] | IMIX | 2C -| | framesize=IMIX_v4_1 | phy_cores=${2} - -| tc09-64B-4t4c-eth-l2bdbasemaclrn-eth-2vhostvr256-1vm-mrr +| tc03-64B-4c-eth-l2bdbasemaclrn-eth-2vhostvr256-1vm-mrr | | [Tags] | 64B | 4C | | framesize=${64} | phy_cores=${4} -| tc10-1518B-4t4c-eth-l2bdbasemaclrn-eth-2vhostvr256-1vm-mrr +| tc04-1518B-1c-eth-l2bdbasemaclrn-eth-2vhostvr256-1vm-mrr +| | [Tags] | 1518B | 1C +| | framesize=${1518} | phy_cores=${1} + +| tc05-1518B-2c-eth-l2bdbasemaclrn-eth-2vhostvr256-1vm-mrr +| | [Tags] | 1518B | 2C +| | framesize=${1518} | phy_cores=${2} + +| tc06-1518B-4c-eth-l2bdbasemaclrn-eth-2vhostvr256-1vm-mrr | | [Tags] | 1518B | 4C | | framesize=${1518} | phy_cores=${4} -| tc11-9000B-4t4c-eth-l2bdbasemaclrn-eth-2vhostvr256-1vm-mrr +| tc07-9000B-1c-eth-l2bdbasemaclrn-eth-2vhostvr256-1vm-mrr +| | [Tags] | 9000B | 1C +| | framesize=${9000} | phy_cores=${1} + +| tc08-9000B-2c-eth-l2bdbasemaclrn-eth-2vhostvr256-1vm-mrr +| | [Tags] | 9000B | 2C +| | framesize=${9000} | phy_cores=${2} + +| tc09-9000B-4c-eth-l2bdbasemaclrn-eth-2vhostvr256-1vm-mrr | | [Tags] | 9000B | 4C | | framesize=${9000} | phy_cores=${4} -| tc12-IMIX-4t4c-eth-l2bdbasemaclrn-eth-2vhostvr256-1vm-mrr +| tc10-IMIX-1c-eth-l2bdbasemaclrn-eth-2vhostvr256-1vm-mrr +| | [Tags] | IMIX | 1C +| | framesize=IMIX_v4_1 | phy_cores=${1} + +| tc11-IMIX-2c-eth-l2bdbasemaclrn-eth-2vhostvr256-1vm-mrr +| | [Tags] | IMIX | 2C +| | framesize=IMIX_v4_1 | phy_cores=${2} + +| tc12-IMIX-4c-eth-l2bdbasemaclrn-eth-2vhostvr256-1vm-mrr | | [Tags] | IMIX | 4C | | framesize=IMIX_v4_1 | phy_cores=${4} diff --git a/tests/vpp/perf/vm_vhost/10ge2p1x520-eth-l2bdbasemaclrn-eth-2vhostvr256-1vm-ndrpdr.robot b/tests/vpp/perf/vm_vhost/10ge2p1x520-eth-l2bdbasemaclrn-eth-2vhostvr256-1vm-ndrpdr.robot new file mode 100644 index 0000000000..2534f00f34 --- /dev/null +++ b/tests/vpp/perf/vm_vhost/10ge2p1x520-eth-l2bdbasemaclrn-eth-2vhostvr256-1vm-ndrpdr.robot @@ -0,0 +1,157 @@ +# Copyright (c) 2018 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 | NDRPDR +| ... | NIC_Intel-X520-DA2 | ETH | L2BDMACLRN | BASE | VHOST | 1VM | VHOST_256 +| ... +| 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} +| ... +| Test Template | Local Template +| ... +| Documentation | *RFC2544: Pkt 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. +| ... | *[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 MLRsearch library. +| ... | Test packets are generated by TG on links to DUTs. TG traffic profile +| ... | contains two L3 flow-groups (flow-group per direction, 254 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. + +*** Variables *** +| ${perf_qemu_qsz}= | 256 +# Socket names +| ${bd_id1}= | 1 +| ${bd_id2}= | 2 +| ${sock1}= | /tmp/sock-1-${bd_id1} +| ${sock2}= | /tmp/sock-1-${bd_id2} +# X520-DA2 bandwidth limit +| ${s_limit}= | ${10000000000} +# Traffic profile: +| ${traffic_profile}= | trex-sl-3n-ethip4-ip4src254 + +*** Keywords *** +| Local Template +| | [Documentation] +| | ... | [Cfg] DUT runs IPv4 routing config. +| | ... | Each DUT uses ${phy_cores} physical core(s) for worker threads. +| | ... | [Ver] Measure NDR and PDR values using MLRsearch algorithm.\ +| | ... +| | ... | *Arguments:* +| | ... | - framesize - Framesize in Bytes in integer or string (IMIX_v4_1). +| | ... | Type: integer, string +| | ... | - phy_cores - Number of physical cores. Type: integer +| | ... | - rxq - Number of RX queues, default value: ${None}. Type: integer +| | ... +| | [Arguments] | ${framesize} | ${phy_cores} | ${rxq}=${None} +| | ... +| | Set Test Variable | ${framesize} +| | Set Test Variable | ${min_rate} | ${10000} +| | ${dut1_vm_refs}= | Create Dictionary +| | ${dut2_vm_refs}= | Create Dictionary +| | Set Test Variable | ${dut1_vm_refs} +| | Set Test Variable | ${dut2_vm_refs} +| | ... +| | Given Add worker threads and rxqueues to all DUTs | ${phy_cores} | ${rxq} +| | And Add PCI devices to all DUTs +| | ${max_rate} | ${jumbo} = | Get Max Rate And Jumbo And Handle Multi Seg +| | ... | ${s_limit} | ${framesize} +| | 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 +| | ... | jumbo_frames=${jumbo} +| | 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 +| | ... | jumbo_frames=${jumbo} +| | Set To Dictionary | ${dut2_vm_refs} | DUT2_VM1 | ${vm2} +| | Then Find NDR and PDR intervals using optimized search +| | ... | ${framesize} | ${traffic_profile} | ${min_rate} | ${max_rate} + +*** Test Cases *** +| tc01-64B-1c-eth-l2bdbasemaclrn-eth-2vhostvr256-1vm-ndrpdr +| | [Tags] | 64B | 1C +| | framesize=${64} | phy_cores=${1} + +| tc02-64B-2c-eth-l2bdbasemaclrn-eth-2vhostvr256-1vm-ndrpdr +| | [Tags] | 64B | 2C +| | framesize=${64} | phy_cores=${2} + +| tc03-64B-4c-eth-l2bdbasemaclrn-eth-2vhostvr256-1vm-ndrpdr +| | [Tags] | 64B | 4C +| | framesize=${64} | phy_cores=${4} + +| tc04-1518B-1c-eth-l2bdbasemaclrn-eth-2vhostvr256-1vm-ndrpdr +| | [Tags] | 1518B | 1C +| | framesize=${1518} | phy_cores=${1} + +| tc05-1518B-2c-eth-l2bdbasemaclrn-eth-2vhostvr256-1vm-ndrpdr +| | [Tags] | 1518B | 2C +| | framesize=${1518} | phy_cores=${2} + +| tc06-1518B-4c-eth-l2bdbasemaclrn-eth-2vhostvr256-1vm-ndrpdr +| | [Tags] | 1518B | 4C +| | framesize=${1518} | phy_cores=${4} + +| tc07-9000B-1c-eth-l2bdbasemaclrn-eth-2vhostvr256-1vm-ndrpdr +| | [Tags] | 9000B | 1C +| | framesize=${9000} | phy_cores=${1} + +| tc08-9000B-2c-eth-l2bdbasemaclrn-eth-2vhostvr256-1vm-ndrpdr +| | [Tags] | 9000B | 2C +| | framesize=${9000} | phy_cores=${2} + +| tc09-9000B-4c-eth-l2bdbasemaclrn-eth-2vhostvr256-1vm-ndrpdr +| | [Tags] | 9000B | 4C +| | framesize=${9000} | phy_cores=${4} + +| tc10-IMIX-1c-eth-l2bdbasemaclrn-eth-2vhostvr256-1vm-ndrpdr +| | [Tags] | IMIX | 1C +| | framesize=IMIX_v4_1 | phy_cores=${1} + +| tc11-IMIX-2c-eth-l2bdbasemaclrn-eth-2vhostvr256-1vm-ndrpdr +| | [Tags] | IMIX | 2C +| | framesize=IMIX_v4_1 | phy_cores=${2} + +| tc12-IMIX-4c-eth-l2bdbasemaclrn-eth-2vhostvr256-1vm-ndrpdr +| | [Tags] | IMIX | 4C +| | framesize=IMIX_v4_1 | phy_cores=${4} 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 deleted file mode 100644 index c2e65ea7ad..0000000000 --- a/tests/vpp/perf/vm_vhost/10ge2p1x520-eth-l2bdbasemaclrn-eth-2vhostvr256-1vm-ndrpdrdisc.robot +++ /dev/null @@ -1,185 +0,0 @@ -# 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 | ETH | L2BDMACLRN | BASE | VHOST | VM | VHOST_256 -| ... -| 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} -| ... -| Test Template | Local template -| ... -| 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 *** -| ${perf_qemu_qsz}= | 256 -| ${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 *** -| Local template -| | [Arguments] | ${phy_cores} | ${framesize} | ${search_type} | ${rxq}=${None} -| | ... | ${min_rate}=${10000} -| | ... -| | 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 worker threads and rxqueues to all DUTs | ${phy_cores} | ${rxq} -| | And Add PCI devices to all DUTs -| | And Run Keyword If | ${get_framesize} < ${1522} | Add no multi seg to all DUTs -| | And Apply startup configuration on all VPP DUTs -| | When Initialize 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 -| | [Tags] | 64B | 1C | NDRDISC -| | phy_cores=${1} | framesize=${64} | search_type=NDR - -| tc02-64B-1t1c-eth-l2bdbasemaclrn-eth-2vhostvr256-1vm-pdrdisc -| | [Tags] | 64B | 1C | PDRDISC | SKIP_PATCH -| | phy_cores=${1} | framesize=${64} | search_type=PDR - -| tc03-1518B-1t1c-etc-l2bdbasemaclrn-eth-2vhostvr256-1vm-ndrdisc -| | [Tags] | 1518B | 1C | NDRDISC -| | phy_cores=${1} | framesize=${1518} | search_type=NDR - -| tc04-1518B-1t1c-eth-l2bdbasemaclrn-eth-2vhostvr256-1vm-pdrdisc -| | [Tags] | 1518B | 1C | PDRDISC | SKIP_PATCH -| | phy_cores=${1} | framesize=${1518} | search_type=PDR - -| tc05-IMIX-1t1c-eth-l2bdbasemaclrn-eth-2vhostvr256-1vm-ndrdisc -| | [Tags] | IMIX | 1C | NDRDISC -| | phy_cores=${1} | framesize=IMIX_v4_1 | search_type=NDR - -| tc06-IMIX-1t1c-eth-l2bdbasemaclrn-eth-2vhostvr256-1vm-pdrdisc -| | [Tags] | IMIX | 1C | PDRDISC | SKIP_PATCH -| | phy_cores=${1} | framesize=IMIX_v4_1 | search_type=PDR - -| tc07-64B-2t2c-eth-l2bdbasemaclrn-eth-2vhostvr256-1vm-ndrdisc -| | [Tags] | 64B | 2C | NDRDISC -| | phy_cores=${2} | framesize=${64} | search_type=NDR - -| tc08-64B-2t2c-eth-l2bdbasemaclrn-eth-2vhostvr256-1vm-pdrdisc -| | [Tags] | 64B | 2C | PDRDISC | SKIP_PATCH -| | phy_cores=${2} | framesize=${64} | search_type=PDR - -| tc09-1518B-2t2c-eth-l2bdbasemaclrn-eth-2vhostvr256-1vm-ndrdisc -| | [Tags] | 1518B | 2C | NDRDISC | SKIP_PATCH -| | phy_cores=${2} | framesize=${1518} | search_type=NDR - -| tc10-1518B-2t2c-eth-l2bdbasemaclrn-eth-2vhostvr256-1vm-pdrdisc -| | [Tags] | 1518B | 2C | PDRDISC | SKIP_PATCH -| | phy_cores=${2} | framesize=${1518} | search_type=PDR - -| tc11-IMIX-2t2c-eth-l2bdbasemaclrn-eth-2vhostvr256-1vm-ndrdisc -| | [Tags] | IMIX | 2C | NDRDISC | SKIP_PATCH -| | phy_cores=${2} | framesize=IMIX_v4_1 | search_type=NDR - -| tc12-IMIX-2t2c-eth-l2bdbasemaclrn-eth-2vhostvr256-1vm-pdrdisc -| | [Tags] | IMIX | 2C | PDRDISC | SKIP_PATCH -| | phy_cores=${2} | framesize=IMIX_v4_1 | search_type=PDR - -| tc13-64B-4t4c-eth-l2bdbasemaclrn-eth-2vhostvr256-1vm-ndrdisc -| | [Tags] | 64B | 4C | NDRDISC -| | phy_cores=${4} | framesize=${64} | search_type=NDR - -| tc14-64B-4t4c-eth-l2bdbasemaclrn-eth-2vhostvr256-1vm-pdrdisc -| | [Tags] | 64B | 4C | PDRDISC | SKIP_PATCH -| | phy_cores=${4} | framesize=${64} | search_type=PDR - -| tc15-1518B-4t4c-eth-l2bdbasemaclrn-eth-2vhostvr256-1vm-ndrdisc -| | [Tags] | 1518B | 4C | NDRDISC | SKIP_PATCH -| | phy_cores=${4} | framesize=${1518} | search_type=NDR - -| tc16-1518B-4t4c-eth-l2bdbasemaclrn-eth-2vhostvr256-1vm-pdrdisc -| | [Tags] | 1518B | 4C | PDRDISC | SKIP_PATCH -| | phy_cores=${4} | framesize=${1518} | search_type=PDR - -| tc17-IMIX-4t4c-eth-l2bdbasemaclrn-eth-2vhostvr256-1vm-ndrdisc -| | [Tags] | IMIX | 4C | NDRDISC | SKIP_PATCH -| | phy_cores=${4} | framesize=IMIX_v4_1 | search_type=NDR - -| tc18-IMIX-4t4c-eth-l2bdbasemaclrn-eth-2vhostvr256-1vm-pdrdisc -| | [Tags] | IMIX | 4C | PDRDISC | SKIP_PATCH -| | phy_cores=${4} | framesize=IMIX_v4_1 | search_type=PDR diff --git a/tests/vpp/perf/vm_vhost/10ge2p1x520-eth-l2bdbasemaclrn-eth-4vhostvr1024-2vm-mrr.robot b/tests/vpp/perf/vm_vhost/10ge2p1x520-eth-l2bdbasemaclrn-eth-4vhostvr1024-2vm-mrr.robot index dd9b38c659..c784090cc7 100644 --- a/tests/vpp/perf/vm_vhost/10ge2p1x520-eth-l2bdbasemaclrn-eth-4vhostvr1024-2vm-mrr.robot +++ b/tests/vpp/perf/vm_vhost/10ge2p1x520-eth-l2bdbasemaclrn-eth-4vhostvr1024-2vm-mrr.robot @@ -27,7 +27,7 @@ | ... | dut1_node=${dut1} | dut1_vm_refs=${dut1_vm_refs} | ... | dut2_node=${dut2} | dut2_vm_refs=${dut2_vm_refs} | ... -| Test Template | Local template +| Test Template | Local Template | ... | Documentation | *Raw results L2BD test cases with vhost* | ... @@ -62,7 +62,7 @@ | ${traffic_profile}= | trex-sl-3n-ethip4-ip4src254 *** Keywords *** -| Local template +| Local Template | | [Documentation] | | ... | [Cfg] DUT runs L2BD switching config. | | ... | Each DUT uses ${phy_cores} physical core(s) for worker threads. @@ -77,72 +77,67 @@ | | ... | | [Arguments] | ${framesize} | ${phy_cores} | ${rxq}=${None} | | ... -| | Set Test Variable | ${framesize} -| | ${get_framesize}= | Get Frame Size | ${framesize} -| | ${max_rate}= | Calculate pps | ${s_limit} | ${get_framesize} | | ${dut1_vm_refs}= | Create Dictionary | | ${dut2_vm_refs}= | Create Dictionary | | Set Test Variable | ${dut1_vm_refs} | | Set Test Variable | ${dut2_vm_refs} -| | ${jumbo_frames}= | Set Variable If | ${get_framesize} < ${1522} -| | ... | ${False} | ${True} -| | Set Test Variable | ${jumbo_frames} | | ... | | Given Add worker threads and rxqueues to all DUTs | ${phy_cores} | ${rxq} | | And Add PCI devices to all DUTs -| | And Run Keyword If | ${get_framesize} < ${1522} -| | ... | Add no multi seg to all DUTs +| | ${max_rate} | ${jumbo} = | Get Max Rate And Jumbo And Handle Multi Seg +| | ... | ${s_limit} | ${framesize} | | And Apply startup configuration on all VPP DUTs | | When Initialize L2 bridge domains with Vhost-User for '2' VMs in 3-node circular topology +| | Set Test Variable | \${jumbo_frames} | ${jumbo} | | And Configure '2' guest VMs with dpdk-testpmd connected via vhost-user in 3-node circular topology | | Then Traffic should pass with maximum rate | | ... | ${max_rate}pps | ${framesize} | ${traffic_profile} *** Test Cases *** -| tc01-64B-1t1c-eth-l2bdbasemaclrn-eth-4vhostvr1024-2vm-mrr +| tc01-64B-1c-eth-l2bdbasemaclrn-eth-4vhostvr1024-2vm-mrr | | [Tags] | 64B | 1C | | framesize=${64} | phy_cores=${1} -| tc02-1518B-1t1c-eth-l2bdbasemaclrn-eth-4vhostvr1024-2vm-mrr -| | [Tags] | 1518B | 1C -| | framesize=${1518} | phy_cores=${1} - -| tc03-9000B-1t1c-eth-l2bdbasemaclrn-eth-4vhostvr1024-2vm-mrr -| | [Tags] | 9000B | 1C -| | framesize=${9000} | phy_cores=${1} - -| tc04-IMIX-1t1c-eth-l2bdbasemaclrn-eth-4vhostvr1024-2vm-mrr -| | [Tags] | IMIX | 1C -| | framesize=IMIX_v4_1 | phy_cores=${1} - -| tc05-64B-2t2c-eth-l2bdbasemaclrn-eth-4vhostvr1024-2vm-mrr +| tc02-64B-2c-eth-l2bdbasemaclrn-eth-4vhostvr1024-2vm-mrr | | [Tags] | 64B | 2C | | framesize=${64} | phy_cores=${2} -| tc06-1518B-2t2c-eth-l2bdbasemaclrn-eth-4vhostvr1024-2vm-mrr -| | [Tags] | 1518B | 2C -| | framesize=${1518} | phy_cores=${2} - -| tc07-9000B-2t2c-eth-l2bdbasemaclrn-eth-4vhostvr1024-2vm-mrr -| | [Tags] | 9000B | 2C -| | framesize=${9000} | phy_cores=${2} - -| tc08-IMIX-2t2c-eth-l2bdbasemaclrn-eth-4vhostvr1024-2vm-mrr -| | [Tags] | IMIX | 2C -| | framesize=IMIX_v4_1 | phy_cores=${2} - -| tc09-64B-4t4c-eth-l2bdbasemaclrn-eth-4vhostvr1024-2vm-mrr +| tc03-64B-4c-eth-l2bdbasemaclrn-eth-4vhostvr1024-2vm-mrr | | [Tags] | 64B | 4C | | framesize=${64} | phy_cores=${4} -| tc10-1518B-4t4c-eth-l2bdbasemaclrn-eth-4vhostvr1024-2vm-mrr +| tc04-1518B-1c-eth-l2bdbasemaclrn-eth-4vhostvr1024-2vm-mrr +| | [Tags] | 1518B | 1C +| | framesize=${1518} | phy_cores=${1} + +| tc05-1518B-2c-eth-l2bdbasemaclrn-eth-4vhostvr1024-2vm-mrr +| | [Tags] | 1518B | 2C +| | framesize=${1518} | phy_cores=${2} + +| tc06-1518B-4c-eth-l2bdbasemaclrn-eth-4vhostvr1024-2vm-mrr | | [Tags] | 1518B | 4C | | framesize=${1518} | phy_cores=${4} -| tc11-9000B-4t4c-eth-l2bdbasemaclrn-eth-4vhostvr1024-2vm-mrr +| tc07-9000B-1c-eth-l2bdbasemaclrn-eth-4vhostvr1024-2vm-mrr +| | [Tags] | 9000B | 1C +| | framesize=${9000} | phy_cores=${1} + +| tc08-9000B-2c-eth-l2bdbasemaclrn-eth-4vhostvr1024-2vm-mrr +| | [Tags] | 9000B | 2C +| | framesize=${9000} | phy_cores=${2} + +| tc09-9000B-4c-eth-l2bdbasemaclrn-eth-4vhostvr1024-2vm-mrr | | [Tags] | 9000B | 4C | | framesize=${9000} | phy_cores=${4} -| tc12-IMIX-4t4c-eth-l2bdbasemaclrn-eth-4vhostvr1024-2vm-mrr +| tc10-IMIX-1c-eth-l2bdbasemaclrn-eth-4vhostvr1024-2vm-mrr +| | [Tags] | IMIX | 1C +| | framesize=IMIX_v4_1 | phy_cores=${1} + +| tc11-IMIX-2c-eth-l2bdbasemaclrn-eth-4vhostvr1024-2vm-mrr +| | [Tags] | IMIX | 2C +| | framesize=IMIX_v4_1 | phy_cores=${2} + +| tc12-IMIX-4c-eth-l2bdbasemaclrn-eth-4vhostvr1024-2vm-mrr | | [Tags] | IMIX | 4C | | framesize=IMIX_v4_1 | phy_cores=${4} diff --git a/tests/vpp/perf/vm_vhost/10ge2p1x520-eth-l2bdbasemaclrn-eth-4vhostvr1024-2vm-ndrpdr.robot b/tests/vpp/perf/vm_vhost/10ge2p1x520-eth-l2bdbasemaclrn-eth-4vhostvr1024-2vm-ndrpdr.robot new file mode 100644 index 0000000000..9e1ae21d40 --- /dev/null +++ b/tests/vpp/perf/vm_vhost/10ge2p1x520-eth-l2bdbasemaclrn-eth-4vhostvr1024-2vm-ndrpdr.robot @@ -0,0 +1,148 @@ +# Copyright (c) 2018 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 | NDRPDR +| ... | NIC_Intel-X520-DA2 | ETH | L2BDMACLRN | BASE | VHOST | 2VM | VHOST_1024 +| ... +| 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} +| ... +| Test Template | Local Template +| ... +| Documentation | *RFC2544: Pkt 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. +| ... | *[Cfg] DUT configuration:* DUT1 and DUT2 are configured with L2 bridge- +| ... | domains and MAC learning enabled. Qemu Guests are connected to VPP via +| ... | vhost-user interfaces. Guests are running DPDK testpmd interconnecting +| ... | vhost-user interfaces using 5 cores pinned to cpus 6-10 and 11-15 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=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 +| ... | Rate) with non-zero packet loss tolerance (LT) expressed in percentage +| ... | of packets transmitted. NDR and PDR are discovered for different +| ... | Ethernet L2 frame sizes using MLRsearch library. +| ... | Test packets are generated by TG on links to DUTs. TG traffic profile +| ... | contains two L3 flow-groups (flow-group per direction, 254 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. + +*** Variables *** +| ${perf_qemu_qsz}= | 1024 +# CPU settings +| ${system_cpus}= | ${1} +| ${vpp_cpus}= | ${5} +| ${vm_cpus}= | ${5} +# X520-DA2 bandwidth limit +| ${s_limit}= | ${10000000000} +# Traffic profile: +| ${traffic_profile}= | trex-sl-3n-ethip4-ip4src254 + +*** Keywords *** +| Local Template +| | [Documentation] +| | ... | [Cfg] DUT runs L2BD switching config. +| | ... | Each DUT uses ${phy_cores} physical core(s) for worker threads. +| | ... | [Ver] Measure NDR and PDR values using MLRsearch algorithm.\ +| | ... +| | ... | *Arguments:* +| | ... | - framesize - Framesize in Bytes in integer or string (IMIX_v4_1). +| | ... | Type: integer, string +| | ... | - phy_cores - Number of physical cores. Type: integer +| | ... | - rxq - Number of RX queues, default value: ${None}. Type: integer +| | ... +| | [Arguments] | ${framesize} | ${phy_cores} | ${rxq}=${None} +| | ... +| | Set Test Variable | ${framesize} +| | Set Test Variable | ${min_rate} | ${10000} +| | ${dut1_vm_refs}= | Create Dictionary +| | ${dut2_vm_refs}= | Create Dictionary +| | Set Test Variable | ${dut1_vm_refs} +| | Set Test Variable | ${dut2_vm_refs} +| | ... +| | Given Add worker threads and rxqueues to all DUTs | ${phy_cores} | ${rxq} +| | And Add PCI devices to all DUTs +| | ${max_rate} | ${jumbo} = | Get Max Rate And Jumbo And Handle Multi Seg +| | ... | ${s_limit} | ${framesize} +| | And Apply startup configuration on all VPP DUTs +| | When Initialize L2 bridge domains with Vhost-User for '2' VMs in 3-node circular topology +| | Set Test Variable | \${jumbo_frames} | ${jumbo} +| | And Configure '2' guest VMs with dpdk-testpmd connected via vhost-user in 3-node circular topology +| | Then Find NDR and PDR intervals using optimized search +| | ... | ${framesize} | ${traffic_profile} | ${min_rate} | ${max_rate} + +*** Test Cases *** +| tc01-64B-1c-eth-l2bdbasemaclrn-eth-4vhostvr1024-2vm-ndrpdr +| | [Tags] | 64B | 1C +| | framesize=${64} | phy_cores=${1} + +| tc02-64B-2c-eth-l2bdbasemaclrn-eth-4vhostvr1024-2vm-ndrpdr +| | [Tags] | 64B | 2C +| | framesize=${64} | phy_cores=${2} + +| tc03-64B-4c-eth-l2bdbasemaclrn-eth-4vhostvr1024-2vm-ndrpdr +| | [Tags] | 64B | 4C +| | framesize=${64} | phy_cores=${4} + +| tc04-1518B-1c-eth-l2bdbasemaclrn-eth-4vhostvr1024-2vm-ndrpdr +| | [Tags] | 1518B | 1C +| | framesize=${1518} | phy_cores=${1} + +| tc05-1518B-2c-eth-l2bdbasemaclrn-eth-4vhostvr1024-2vm-ndrpdr +| | [Tags] | 1518B | 2C +| | framesize=${1518} | phy_cores=${2} + +| tc06-1518B-4c-eth-l2bdbasemaclrn-eth-4vhostvr1024-2vm-ndrpdr +| | [Tags] | 1518B | 4C +| | framesize=${1518} | phy_cores=${4} + +| tc07-9000B-1c-eth-l2bdbasemaclrn-eth-4vhostvr1024-2vm-ndrpdr +| | [Tags] | 9000B | 1C +| | framesize=${9000} | phy_cores=${1} + +| tc08-9000B-2c-eth-l2bdbasemaclrn-eth-4vhostvr1024-2vm-ndrpdr +| | [Tags] | 9000B | 2C +| | framesize=${9000} | phy_cores=${2} + +| tc09-9000B-4c-eth-l2bdbasemaclrn-eth-4vhostvr1024-2vm-ndrpdr +| | [Tags] | 9000B | 4C +| | framesize=${9000} | phy_cores=${4} + +| tc10-IMIX-1c-eth-l2bdbasemaclrn-eth-4vhostvr1024-2vm-ndrpdr +| | [Tags] | IMIX | 1C +| | framesize=IMIX_v4_1 | phy_cores=${1} + +| tc11-IMIX-2c-eth-l2bdbasemaclrn-eth-4vhostvr1024-2vm-ndrpdr +| | [Tags] | IMIX | 2C +| | framesize=IMIX_v4_1 | phy_cores=${2} + +| tc12-IMIX-4c-eth-l2bdbasemaclrn-eth-4vhostvr1024-2vm-ndrpdr +| | [Tags] | IMIX | 4C +| | framesize=IMIX_v4_1 | phy_cores=${4} diff --git a/tests/vpp/perf/vm_vhost/10ge2p1x520-eth-l2bdbasemaclrn-eth-4vhostvr1024-2vm-ndrpdrdisc.robot b/tests/vpp/perf/vm_vhost/10ge2p1x520-eth-l2bdbasemaclrn-eth-4vhostvr1024-2vm-ndrpdrdisc.robot deleted file mode 100644 index fcae29a286..0000000000 --- a/tests/vpp/perf/vm_vhost/10ge2p1x520-eth-l2bdbasemaclrn-eth-4vhostvr1024-2vm-ndrpdrdisc.robot +++ /dev/null @@ -1,177 +0,0 @@ -# Copyright (c) 2018 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 | ETH | L2BDMACLRN | BASE | VHOST | VM | VHOST_1024 -| 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 | Run Keywords -| ... | Show Bridge Domain Data On All DUTs -| ... | AND | 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} -| Test Template | Local template -| ... -| Documentation | *RFC2544: Pkt 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. -| ... | *[Cfg] DUT configuration:* DUT1 and DUT2 are configured with L2 bridge- -| ... | domains and MAC learning enabled. Qemu Guests are connected to VPP via -| ... | vhost-user interfaces. Guests are running DPDK testpmd interconnecting -| ... | vhost-user interfaces using 5 cores pinned to cpus 6-10 and 11-15 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=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 -| ... | 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 *** -| ${perf_qemu_qsz}= | 1024 -# X520-DA2 bandwidth limit -| ${s_limit}= | ${10000000000} -# CPU settings -| ${system_cpus}= | ${1} -| ${vpp_cpus}= | ${5} -| ${vm_cpus}= | ${5} -# Traffic profile: -| ${traffic_profile}= | trex-sl-3n-ethip4-ip4src254 - -*** Keywords *** -| Local template -| | [Arguments] | ${phy_cores} | ${framesize} | ${search_type} | ${rxq}=${None} -| | ... | ${min_rate}=${10000} -| | ... -| | Set Test Variable | ${framesize} -| | Set Test Variable | ${min_rate} -| | ${get_framesize}= | Get Frame Size | ${framesize} -| | ${max_rate}= | Calculate pps | ${s_limit} | ${get_framesize} -| | ${binary_min}= | Set Variable | ${min_rate} -| | ${binary_max}= | Set Variable | ${max_rate} -| | ${threshold}= | Set Variable | ${min_rate} -| | ${dut1_vm_refs}= | Create Dictionary -| | ${dut2_vm_refs}= | Create Dictionary -| | Set Test Variable | ${dut1_vm_refs} -| | Set Test Variable | ${dut2_vm_refs} -| | ${jumbo_frames}= | Set Variable If | ${get_framesize} < ${1522} -| | ... | ${False} | ${True} -| | Set Test Variable | ${jumbo_frames} -| | ... -| | Given Add worker threads and rxqueues to all DUTs | ${phy_cores} | ${rxq} -| | And Add PCI devices to all DUTs -| | And Run Keyword If | ${get_framesize} < ${1522} -| | ... | Add no multi seg to all DUTs -| | And Apply startup configuration on all VPP DUTs -| | When Initialize L2 bridge domains with Vhost-User for '2' VMs in 3-node circular topology -| | And Configure '2' guest VMs with dpdk-testpmd connected via vhost-user in 3-node circular topology -| | Then Run Keyword If | '${search_type}' == 'NDR' -| | ... | Find NDR using binary search and pps -| | ... | ${framesize} | ${binary_min} | ${binary_max} | ${traffic_profile} -| | ... | ${min_rate} | ${max_rate} | ${threshold} -| | ... | ELSE IF | '${search_type}' == 'PDR' -| | ... | Find PDR using binary search and pps -| | ... | ${framesize} | ${binary_min} | ${binary_max} | ${traffic_profile} -| | ... | ${min_rate} | ${max_rate} | ${threshold} -| | ... | ${perf_pdr_loss_acceptance} | ${perf_pdr_loss_acceptance_type} - -*** Test Cases *** -| tc01-64B-1t1c-eth-l2bdbasemaclrn-eth-4vhostvr1024-2vm-ndrdisc -| | [Tags] | 64B | 1C | NDRDISC -| | phy_cores=${1} | framesize=${64} | search_type=NDR - -| tc02-64B-1t1c-eth-l2bdbasemaclrn-eth-4vhostvr1024-2vm-pdrdisc -| | [Tags] | 64B | 1C | PDRDISC | SKIP_PATCH -| | phy_cores=${1} | framesize=${64} | search_type=PDR - -| tc03-1518B-1t1c-eth-l2bdbasemaclrn-eth-4vhostvr1024-2vm-ndrdisc -| | [Tags] | 1518B | 1C | NDRDISC -| | phy_cores=${1} | framesize=${1518} | search_type=NDR - -| tc04-1518B-1t1c-eth-l2bdbasemaclrn-eth-4vhostvr1024-2vm-pdrdisc -| | [Tags] | 1518B | 1C | PDRDISC | SKIP_PATCH -| | phy_cores=${1} | framesize=${1518} | search_type=PDR - -| tc05-IMIX-1t1c-eth-l2bdbasemaclrn-eth-4vhostvr1024-2vm-ndrdisc -| | [Tags] | IMIX | 1C | NDRDISC -| | phy_cores=${1} | framesize=IMIX_v4_1 | search_type=NDR - -| tc06-IMIX-1t1c-eth-l2bdbasemaclrn-eth-4vhostvr1024-2vm-pdrdisc -| | [Tags] | IMIX | 1C | PDRDISC | SKIP_PATCH -| | phy_cores=${1} | framesize=IMIX_v4_1 | search_type=PDR - -| tc07-64B-2t2c-eth-l2bdbasemaclrn-eth-4vhostvr1024-2vm-ndrdisc -| | [Tags] | 64B | 2C | NDRDISC -| | phy_cores=${2} | framesize=${64} | search_type=NDR - -| tc08-64B-2t2c-eth-l2bdbasemaclrn-eth-4vhostvr1024-2vm-pdrdisc -| | [Tags] | 64B | 2C | PDRDISC | SKIP_PATCH -| | phy_cores=${2} | framesize=${64} | search_type=PDR - -| tc09-1518B-2t2c-eth-l2bdbasemaclrn-eth-4vhostvr1024-2vm-ndrdisc -| | [Tags] | 1518B | 2C | NDRDISC | SKIP_PATCH -| | phy_cores=${2} | framesize=${1518} | search_type=NDR - -| tc10-1518B-2t2c-eth-l2bdbasemaclrn-eth-4vhostvr1024-2vm-pdrdisc -| | [Tags] | 1518B | 2C | PDRDISC | SKIP_PATCH -| | phy_cores=${2} | framesize=${1518} | search_type=PDR - -| tc11-IMIX-2t2c-eth-l2bdbasemaclrn-eth-4vhostvr1024-2vm-ndrdisc -| | [Tags] | IMIX | 2C | NDRDISC | SKIP_PATCH -| | phy_cores=${2} | framesize=IMIX_v4_1 | search_type=NDR - -| tc12-IMIX-2t2c-eth-l2bdbasemaclrn-eth-4vhostvr1024-2vm-pdrdisc -| | [Tags] | IMIX | 2C | PDRDISC | SKIP_PATCH -| | phy_cores=${2} | framesize=IMIX_v4_1 | search_type=PDR - -| tc13-64B-4t4c-eth-l2bdbasemaclrn-eth-4vhostvr1024-2vm-ndrdisc -| | [Tags] | 64B | 4C | NDRDISC -| | phy_cores=${4} | framesize=${64} | search_type=NDR - -| tc14-64B-4t4c-eth-l2bdbasemaclrn-eth-4vhostvr1024-2vm-pdrdisc -| | [Tags] | 64B | 4C | PDRDISC | SKIP_PATCH -| | phy_cores=${4} | framesize=${64} | search_type=PDR - -| tc15-1518B-4t4c-eth-l2bdbasemaclrn-eth-4vhostvr1024-2vm-ndrdisc -| | [Tags] | 1518B | 4C | NDRDISC | SKIP_PATCH -| | phy_cores=${4} | framesize=${1518} | search_type=NDR - -| tc16-1518B-4t4c-eth-l2bdbasemaclrn-eth-4vhostvr1024-2vm-pdrdisc -| | [Tags] | 1518B | 4C | PDRDISC | SKIP_PATCH -| | phy_cores=${4} | framesize=${1518} | search_type=PDR - -| tc17-IMIX-4t4c-eth-l2bdbasemaclrn-eth-4vhostvr1024-2vm-ndrdisc -| | [Tags] | IMIX | 4C | NDRDISC | SKIP_PATCH -| | phy_cores=${4} | framesize=IMIX_v4_1 | search_type=NDR - -| tc18-IMIX-4t4c-eth-l2bdbasemaclrn-eth-4vhostvr1024-2vm-pdrdisc -| | [Tags] | IMIX | 4C | PDRDISC | SKIP_PATCH -| | phy_cores=${4} | framesize=IMIX_v4_1 | search_type=PDR diff --git a/tests/vpp/perf/vm_vhost/10ge2p1x520-eth-l2bdscale100kmaclrn-eth-2vhostvr1024-1vm-cfsrr1-mrr.robot b/tests/vpp/perf/vm_vhost/10ge2p1x520-eth-l2bdscale100kmaclrn-eth-2vhostvr1024-1vm-cfsrr1-mrr.robot new file mode 100644 index 0000000000..d4ecf30ecc --- /dev/null +++ b/tests/vpp/perf/vm_vhost/10ge2p1x520-eth-l2bdscale100kmaclrn-eth-2vhostvr1024-1vm-cfsrr1-mrr.robot @@ -0,0 +1,150 @@ +# Copyright (c) 2018 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 | MRR +| ... | NIC_Intel-X520-DA2 | ETH | L2BDMACLRN | SCALE | FIB_100K | VHOST | VM +| ... | VHOST_1024 | CFS_OPT +| ... +| 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 mrr test with vhost and VM with dpdk-testpmd +| ... | dut1_node=${dut1} | dut1_vm_refs=${dut1_vm_refs} +| ... | dut2_node=${dut2} | dut2_vm_refs=${dut2_vm_refs} +| ... +| Test Template | Local Template +| ... +| Documentation | *Raw results 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=1024, 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:* In MaxReceivedRate test TG sends traffic +| ... | at line rate and reports total received/sent packets over trial period. +| ... | Test packets are generated by TG on\ +| ... | links to DUTs. TG traffic profile contains two L3 flow-groups\ +| ... | (flow-group per direction, 500k flows per flow-group) with all packets\ +| ... | containing Ethernet header, IPv4 header with IP protocol=61 and static\ +| ... | payload. MAC addresses ranges are incremented as follows: +| ... | port01_src ca:fe:00:00:00:00 - port01_src ca:fe:00:00:c3:4f,\ +| ... | port01_dst fa:ce:00:00:00:00 - port01_dst fa:ce:00:00:c3:4f,\ +| ... | port02_src fa:ce:00:00:00:00 - port02_src fa:ce:00:00:c3:4f,\ +| ... | port02_dst ca:fe:00:00:00:00 - port02_dst ca:fe:00:00:c3:4f,\ +| ... | *[Ref] Applicable standard specifications:* RFC2544. + +*** Variables *** +| ${perf_qemu_qsz}= | 1024 +# 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-macsrc50kdst50k + +*** Keywords *** +| Local Template +| | [Documentation] | FIXME. +| | [Arguments] | ${framesize} | ${phy_cores} | ${rxq}=${None} +| | ... +| | Set Test Variable | ${use_tuned_cfs} | ${True} +| | ${dut1_vm_refs}= | Create Dictionary +| | ${dut2_vm_refs}= | Create Dictionary +| | Set Test Variable | ${dut1_vm_refs} +| | Set Test Variable | ${dut2_vm_refs} +| | ... +| | Given Add worker threads and rxqueues to all DUTs | ${phy_cores} | ${rxq} +| | And Add PCI devices to all DUTs +| | ${max_rate} | ${jumbo} = | Get Max Rate And Jumbo And Handle Multi Seg +| | ... | ${s_limit} | ${framesize} +| | 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 +| | ... | jumbo_frames=${jumbo} +| | 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 +| | ... | jumbo_frames=${jumbo} +| | Set To Dictionary | ${dut2_vm_refs} | DUT2_VM1 | ${vm2} +| | Setup Scheduler Policy for Vpp On All DUTs +| | Then Traffic should pass with maximum rate +| | ... | ${max_rate}pps | ${framesize} | ${traffic_profile} + +*** Test Cases *** +| tc01-64B-1c-eth-l2bdscale100kmaclrn-eth-2vhostvr1024-1vm-cfsrr1-mrr +| | [Tags] | 64B | 1C +| | framesize=${64} | phy_cores=${1} + +| tc02-64B-2c-eth-l2bdscale100kmaclrn-eth-2vhostvr1024-1vm-cfsrr1-mrr +| | [Tags] | 64B | 2C +| | framesize=${64} | phy_cores=${2} + +| tc03-64B-4c-eth-l2bdscale100kmaclrn-eth-2vhostvr1024-1vm-cfsrr1-mrr +| | [Tags] | 64B | 4C +| | framesize=${64} | phy_cores=${4} + +| tc04-1518B-1c-eth-l2bdscale100kmaclrn-eth-2vhostvr1024-1vm-cfsrr1-mrr +| | [Tags] | 1518B | 1C +| | framesize=${1518} | phy_cores=${1} + +| tc05-1518B-2c-eth-l2bdscale100kmaclrn-eth-2vhostvr1024-1vm-cfsrr1-mrr +| | [Tags] | 1518B | 2C +| | framesize=${1518} | phy_cores=${2} + +| tc06-1518B-4c-eth-l2bdscale100kmaclrn-eth-2vhostvr1024-1vm-cfsrr1-mrr +| | [Tags] | 1518B | 4C +| | framesize=${1518} | phy_cores=${4} + +| tc07-9000B-1c-eth-l2bdscale100kmaclrn-eth-2vhostvr1024-1vm-cfsrr1-mrr +| | [Tags] | 9000B | 1C +| | framesize=${9000} | phy_cores=${1} + +| tc08-9000B-2c-eth-l2bdscale100kmaclrn-eth-2vhostvr1024-1vm-cfsrr1-mrr +| | [Tags] | 9000B | 2C +| | framesize=${9000} | phy_cores=${2} + +| tc09-9000B-4c-eth-l2bdscale100kmaclrn-eth-2vhostvr1024-1vm-cfsrr1-mrr +| | [Tags] | 9000B | 4C +| | framesize=${9000} | phy_cores=${4} + +| tc10-IMIX-1c-eth-l2bdscale100kmaclrn-eth-2vhostvr1024-1vm-cfsrr1-mrr +| | [Tags] | IMIX | 1C +| | framesize=IMIX_v4_1 | phy_cores=${1} + +| tc11-IMIX-2c-eth-l2bdscale100kmaclrn-eth-2vhostvr1024-1vm-cfsrr1-mrr +| | [Tags] | IMIX | 2C +| | framesize=IMIX_v4_1 | phy_cores=${2} + +| tc12-IMIX-4c-eth-l2bdscale100kmaclrn-eth-2vhostvr1024-1vm-cfsrr1-mrr +| | [Tags] | IMIX | 4C +| | framesize=IMIX_v4_1 | phy_cores=${4} diff --git a/tests/vpp/perf/vm_vhost/10ge2p1x520-eth-l2bdscale100kmaclrn-eth-2vhostvr1024-1vm-cfsrr1-ndrpdr.robot b/tests/vpp/perf/vm_vhost/10ge2p1x520-eth-l2bdscale100kmaclrn-eth-2vhostvr1024-1vm-cfsrr1-ndrpdr.robot new file mode 100644 index 0000000000..c47c5bb71d --- /dev/null +++ b/tests/vpp/perf/vm_vhost/10ge2p1x520-eth-l2bdscale100kmaclrn-eth-2vhostvr1024-1vm-cfsrr1-ndrpdr.robot @@ -0,0 +1,156 @@ +# Copyright (c) 2018 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 | NDRPDR +| ... | NIC_Intel-X520-DA2 | ETH | L2BDMACLRN | SCALE | FIB_100K | VHOST | VM +| ... | VHOST_1024 | CFS_OPT +| ... +| 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} +| ... +| Test Template | Local Template +| ... +| 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=1024, 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 MLRsearch library. +| ... | Test packets are generated by TG on\ +| ... | links to DUTs. TG traffic profile contains two L3 flow-groups\ +| ... | (flow-group per direction, 500k flows per flow-group) with all packets\ +| ... | containing Ethernet header, IPv4 header with IP protocol=61 and static\ +| ... | payload. MAC addresses ranges are incremented as follows: +| ... | port01_src ca:fe:00:00:00:00 - port01_src ca:fe:00:00:c3:4f,\ +| ... | port01_dst fa:ce:00:00:00:00 - port01_dst fa:ce:00:00:c3:4f,\ +| ... | port02_src fa:ce:00:00:00:00 - port02_src fa:ce:00:00:c3:4f,\ +| ... | port02_dst ca:fe:00:00:00:00 - port02_dst ca:fe:00:00:c3:4f,\ +| ... | *[Ref] Applicable standard specifications:* RFC2544. + +*** Variables *** +| ${perf_qemu_qsz}= | 1024 +# 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-macsrc50kdst50k + +*** Keywords *** +| Local Template +| | [Documentation] | FIXME. +| | [Arguments] | ${framesize} | ${phy_cores} | ${rxq}=${None} +| | ... +| | Set Test Variable | ${use_tuned_cfs} | ${True} +| | Set Test Variable | ${framesize} +| | Set Test Variable | ${min_rate} | ${1000} +| | ${dut1_vm_refs}= | Create Dictionary +| | ${dut2_vm_refs}= | Create Dictionary +| | Set Test Variable | ${dut1_vm_refs} +| | Set Test Variable | ${dut2_vm_refs} +| | ... +| | Given Add worker threads and rxqueues to all DUTs | ${phy_cores} | ${rxq} +| | And Add PCI devices to all DUTs +| | ${max_rate} | ${jumbo} = | Get Max Rate And Jumbo And Handle Multi Seg +| | ... | ${s_limit} | ${framesize} +| | 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 +| | ... | jumbo_frames=${jumbo} +| | 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 +| | ... | jumbo_frames=${jumbo} +| | Set To Dictionary | ${dut2_vm_refs} | DUT2_VM1 | ${vm2} +| | Setup Scheduler Policy for Vpp On All DUTs +| | Then Find NDR and PDR intervals using optimized search +| | ... | ${framesize} | ${traffic_profile} | ${min_rate} | ${max_rate} + +*** Test Cases *** +| tc01-64B-1c-eth-l2bdscale100kmaclrn-eth-2vhostvr1024-1vm-cfsrr1-ndrpdr +| | [Tags] | 64B | 1C +| | framesize=${64} | phy_cores=${1} + +| tc02-64B-2c-eth-l2bdscale100kmaclrn-eth-2vhostvr1024-1vm-cfsrr1-ndrpdr +| | [Tags] | 64B | 2C +| | framesize=${64} | phy_cores=${2} + +| tc03-64B-4c-eth-l2bdscale100kmaclrn-eth-2vhostvr1024-1vm-cfsrr1-ndrpdr +| | [Tags] | 64B | 4C +| | framesize=${64} | phy_cores=${4} + +| tc04-1518B-1c-eth-l2bdscale100kmaclrn-eth-2vhostvr1024-1vm-cfsrr1-ndrpdr +| | [Tags] | 1518B | 1C +| | framesize=${1518} | phy_cores=${1} + +| tc05-1518B-2c-eth-l2bdscale100kmaclrn-eth-2vhostvr1024-1vm-cfsrr1-ndrpdr +| | [Tags] | 1518B | 2C +| | framesize=${1518} | phy_cores=${2} + +| tc06-1518B-4c-eth-l2bdscale100kmaclrn-eth-2vhostvr1024-1vm-cfsrr1-ndrpdr +| | [Tags] | 1518B | 4C +| | framesize=${1518} | phy_cores=${4} + +| tc07-9000B-1c-eth-l2bdscale100kmaclrn-eth-2vhostvr1024-1vm-cfsrr1-ndrpdr +| | [Tags] | 9000B | 1C +| | framesize=${9000} | phy_cores=${1} + +| tc08-9000B-2c-eth-l2bdscale100kmaclrn-eth-2vhostvr1024-1vm-cfsrr1-ndrpdr +| | [Tags] | 9000B | 2C +| | framesize=${9000} | phy_cores=${2} + +| tc09-9000B-4c-eth-l2bdscale100kmaclrn-eth-2vhostvr1024-1vm-cfsrr1-ndrpdr +| | [Tags] | 9000B | 4C +| | framesize=${9000} | phy_cores=${4} + +| tc10-IMIX-1c-eth-l2bdscale100kmaclrn-eth-2vhostvr1024-1vm-cfsrr1-ndrpdr +| | [Tags] | IMIX | 1C +| | framesize=IMIX_v4_1 | phy_cores=${1} + +| tc11-IMIX-2c-eth-l2bdscale100kmaclrn-eth-2vhostvr1024-1vm-cfsrr1-ndrpdr +| | [Tags] | IMIX | 2C +| | framesize=IMIX_v4_1 | phy_cores=${2} + +| tc12-IMIX-4c-eth-l2bdscale100kmaclrn-eth-2vhostvr1024-1vm-cfsrr1-ndrpdr +| | [Tags] | IMIX | 4C +| | framesize=IMIX_v4_1 | phy_cores=${4} diff --git a/tests/vpp/perf/vm_vhost/10ge2p1x520-eth-l2bdscale100kmaclrn-eth-2vhostvr1024-1vm-cfsrr1-ndrpdrdisc.robot b/tests/vpp/perf/vm_vhost/10ge2p1x520-eth-l2bdscale100kmaclrn-eth-2vhostvr1024-1vm-cfsrr1-ndrpdrdisc.robot deleted file mode 100644 index 18c724e070..0000000000 --- a/tests/vpp/perf/vm_vhost/10ge2p1x520-eth-l2bdscale100kmaclrn-eth-2vhostvr1024-1vm-cfsrr1-ndrpdrdisc.robot +++ /dev/null @@ -1,192 +0,0 @@ -# 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 | ETH | L2BDMACLRN | SCALE | FIB_100K | VHOST | VM -| ... | VHOST_1024 | CFS_OPT -| ... -| 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} -| ... -| Test Template | Local template -| ... -| 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=1024, 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, 500k flows per flow-group) with all packets\ -| ... | containing Ethernet header, IPv4 header with IP protocol=61 and static\ -| ... | payload. MAC addresses ranges are incremented as follows: -| ... | port01_src ca:fe:00:00:00:00 - port01_src ca:fe:00:00:c3:4f,\ -| ... | port01_dst fa:ce:00:00:00:00 - port01_dst fa:ce:00:00:c3:4f,\ -| ... | port02_src fa:ce:00:00:00:00 - port02_src fa:ce:00:00:c3:4f,\ -| ... | port02_dst ca:fe:00:00:00:00 - port02_dst ca:fe:00:00:c3:4f,\ -| ... | *[Ref] Applicable standard specifications:* RFC2544. - -*** Variables *** -| ${perf_qemu_qsz}= | 1024 -| ${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-macsrc50kdst50k - -*** Keywords *** -| Local template -| | [Arguments] | ${phy_cores} | ${framesize} | ${search_type} | ${rxq}=${None} -| | ... | ${min_rate}=${10000} -| | ... -| | 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 worker threads and rxqueues to all DUTs | ${phy_cores} | ${rxq} -| | And Add PCI devices to all DUTs -| | And Run Keyword If | ${get_framesize} < ${1522} | Add no multi seg to all DUTs -| | And Apply startup configuration on all VPP DUTs -| | When Initialize 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} -| | Setup Scheduler Policy for Vpp On All DUTs -| | 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-l2dbscale100kmaclrn-eth-2vhostvr1024-1vm-cfsrr1-ndrdisc -| | [Tags] | 64B | 1C | NDRDISC -| | phy_cores=${1} | framesize=${64} | search_type=NDR - -| tc02-64B-1t1c-eth-l2dbscale100kmaclrn-eth-2vhostvr1024-1vm-cfsrr1-pdrdisc -| | [Tags] | 64B | 1C | PDRDISC | SKIP_PATCH -| | phy_cores=${1} | framesize=${64} | search_type=PDR - -| tc03-1518B-1t1c-etc-l2dbscale100kmaclrn-eth-2vhostvr1024-1vm-cfsrr1-ndrdisc -| | [Tags] | 1518B | 1C | NDRDISC -| | phy_cores=${1} | framesize=${1518} | search_type=NDR - -| tc04-1518B-1t1c-eth-l2dbscale100kmaclrn-eth-2vhostvr1024-1vm-cfsrr1-pdrdisc -| | [Tags] | 1518B | 1C | PDRDISC | SKIP_PATCH -| | phy_cores=${1} | framesize=${1518} | search_type=PDR - -| tc05-IMIX-1t1c-eth-l2dbscale100kmaclrn-eth-2vhostvr1024-1vm-cfsrr1-ndrdisc -| | [Tags] | IMIX | 1C | NDRDISC -| | phy_cores=${1} | framesize=IMIX_v4_1 | search_type=NDR - -| tc06-IMIX-1t1c-eth-l2dbscale100kmaclrn-eth-2vhostvr1024-1vm-cfsrr1-pdrdisc -| | [Tags] | IMIX | 1C | PDRDISC | SKIP_PATCH -| | phy_cores=${1} | framesize=IMIX_v4_1 | search_type=PDR - -| tc07-64B-2t2c-eth-l2dbscale100kmaclrn-eth-2vhostvr1024-1vm-cfsrr1-ndrdisc -| | [Tags] | 64B | 2C | NDRDISC -| | phy_cores=${2} | framesize=${64} | search_type=NDR - -| tc08-64B-2t2c-eth-l2dbscale100kmaclrn-eth-2vhostvr1024-1vm-cfsrr1-pdrdisc -| | [Tags] | 64B | 2C | PDRDISC | SKIP_PATCH -| | phy_cores=${2} | framesize=${64} | search_type=PDR - -| tc09-1518B-2t2c-eth-l2dbscale100kmaclrn-eth-2vhostvr1024-1vm-cfsrr1-ndrdisc -| | [Tags] | 1518B | 2C | NDRDISC | SKIP_PATCH -| | phy_cores=${2} | framesize=${1518} | search_type=NDR - -| tc10-1518B-2t2c-eth-l2dbscale100kmaclrn-eth-2vhostvr1024-1vm-cfsrr1-pdrdisc -| | [Tags] | 1518B | 2C | PDRDISC | SKIP_PATCH -| | phy_cores=${2} | framesize=${1518} | search_type=PDR - -| tc11-IMIX-2t2c-eth-l2dbscale100kmaclrn-eth-2vhostvr1024-1vm-cfsrr1-ndrdisc -| | [Tags] | IMIX | 2C | NDRDISC | SKIP_PATCH -| | phy_cores=${2} | framesize=IMIX_v4_1 | search_type=NDR - -| tc12-IMIX-2t2c-eth-l2dbscale100kmaclrn-eth-2vhostvr1024-1vm-cfsrr1-pdrdisc -| | [Tags] | IMIX | 2C | PDRDISC | SKIP_PATCH -| | phy_cores=${2} | framesize=IMIX_v4_1 | search_type=PDR - -| tc13-64B-4t4c-eth-l2dbscale100kmaclrn-eth-2vhostvr1024-1vm-cfsrr1-ndrdisc -| | [Tags] | 64B | 4C | NDRDISC -| | phy_cores=${4} | framesize=${64} | search_type=NDR - -| tc14-64B-4t4c-eth-l2dbscale100kmaclrn-eth-2vhostvr1024-1vm-cfsrr1-pdrdisc -| | [Tags] | 64B | 4C | PDRDISC | SKIP_PATCH -| | phy_cores=${4} | framesize=${64} | search_type=PDR - -| tc15-1518B-4t4c-eth-l2dbscale100kmaclrn-eth-2vhostvr1024-1vm-cfsrr1-ndrdisc -| | [Tags] | 1518B | 4C | NDRDISC | SKIP_PATCH -| | phy_cores=${4} | framesize=${1518} | search_type=NDR - -| tc16-1518B-4t4c-eth-l2dbscale100kmaclrn-eth-2vhostvr1024-1vm-cfsrr1-pdrdisc -| | [Tags] | 1518B | 4C | PDRDISC | SKIP_PATCH -| | phy_cores=${4} | framesize=${1518} | search_type=PDR - -| tc17-IMIX-4t4c-eth-l2dbscale100kmaclrn-eth-2vhostvr1024-1vm-cfsrr1-ndrdisc -| | [Tags] | IMIX | 4C | NDRDISC | SKIP_PATCH -| | phy_cores=${4} | framesize=IMIX_v4_1 | search_type=NDR - -| tc18-IMIX-4t4c-eth-l2dbscale100kmaclrn-eth-2vhostvr1024-1vm-cfsrr1-pdrdisc -| | [Tags] | IMIX | 4C | PDRDISC | SKIP_PATCH -| | phy_cores=${4} | framesize=IMIX_v4_1 | search_type=PDR diff --git a/tests/vpp/perf/vm_vhost/10ge2p1x520-eth-l2bdscale10kmaclrn-eth-2vhostvr1024-1vm-cfsrr1-mrr.robot b/tests/vpp/perf/vm_vhost/10ge2p1x520-eth-l2bdscale10kmaclrn-eth-2vhostvr1024-1vm-cfsrr1-mrr.robot new file mode 100644 index 0000000000..cc63c5212c --- /dev/null +++ b/tests/vpp/perf/vm_vhost/10ge2p1x520-eth-l2bdscale10kmaclrn-eth-2vhostvr1024-1vm-cfsrr1-mrr.robot @@ -0,0 +1,150 @@ +# Copyright (c) 2018 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 | MRR +| ... | NIC_Intel-X520-DA2 | ETH | L2BDMACLRN | SCALE | FIB_10K | VHOST | VM +| ... | VHOST_1024 | CFS_OPT +| ... +| 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 mrr test with vhost and VM with dpdk-testpmd +| ... | dut1_node=${dut1} | dut1_vm_refs=${dut1_vm_refs} +| ... | dut2_node=${dut2} | dut2_vm_refs=${dut2_vm_refs} +| ... +| Test Template | Local Template +| ... +| Documentation | *Raw results 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=1024, 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:* In MaxReceivedRate test TG sends traffic +| ... | at line rate and reports total received/sent packets over trial period. +| ... | Test packets are generated by TG on +| ... | links to DUTs. TG traffic profile contains two L3 flow-groups +| ... | (flow-group per direction, 5k flows per flow-group) with all packets +| ... | containing Ethernet header, IPv4 header with IP protocol=61 and static +| ... | payload. MAC addresses ranges are incremented as follows: +| ... | port01_src ca:fe:00:00:00:00 - port01_src ca:fe:00:00:13:87,\ +| ... | port01_dst fa:ce:00:00:00:00 - port01_dst fa:ce:00:00:13:87,\ +| ... | port02_src fa:ce:00:00:00:00 - port02_src fa:ce:00:00:13:87,\ +| ... | port02_dst ca:fe:00:00:00:00 - port02_dst ca:fe:00:00:13:87,\ +| ... | *[Ref] Applicable standard specifications:* RFC2544. + +*** Variables *** +| ${perf_qemu_qsz}= | 1024 +# 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-macsrc5kdst5k + +*** Keywords *** +| Local Template +| | [Documentation] | FIXME. +| | [Arguments] | ${framesize} | ${phy_cores} | ${rxq}=${None} +| | ... +| | Set Test Variable | ${use_tuned_cfs} | ${True} +| | ${dut1_vm_refs}= | Create Dictionary +| | ${dut2_vm_refs}= | Create Dictionary +| | Set Test Variable | ${dut1_vm_refs} +| | Set Test Variable | ${dut2_vm_refs} +| | ... +| | Given Add worker threads and rxqueues to all DUTs | ${phy_cores} | ${rxq} +| | And Add PCI devices to all DUTs +| | ${max_rate} | ${jumbo} = | Get Max Rate And Jumbo And Handle Multi Seg +| | ... | ${s_limit} | ${framesize} +| | 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 +| | ... | jumbo_frames=${jumbo} +| | 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 +| | ... | jumbo_frames=${jumbo} +| | Set To Dictionary | ${dut2_vm_refs} | DUT2_VM1 | ${vm2} +| | Setup Scheduler Policy for Vpp On All DUTs +| | Then Traffic should pass with maximum rate +| | ... | ${max_rate}pps | ${framesize} | ${traffic_profile} + +*** Test Cases *** +| tc01-64B-1c-eth-l2bdscale10kmaclrn-eth-2vhostvr1024-1vm-cfsrr1-mrr +| | [Tags] | 64B | 1C +| | framesize=${64} | phy_cores=${1} + +| tc02-64B-2c-eth-l2bdscale10kmaclrn-eth-2vhostvr1024-1vm-cfsrr1-mrr +| | [Tags] | 64B | 2C +| | framesize=${64} | phy_cores=${2} + +| tc03-64B-4c-eth-l2bdscale10kmaclrn-eth-2vhostvr1024-1vm-cfsrr1-mrr +| | [Tags] | 64B | 4C +| | framesize=${64} | phy_cores=${4} + +| tc04-1518B-1c-eth-l2bdscale10kmaclrn-eth-2vhostvr1024-1vm-cfsrr1-mrr +| | [Tags] | 1518B | 1C +| | framesize=${1518} | phy_cores=${1} + +| tc05-1518B-2c-eth-l2bdscale10kmaclrn-eth-2vhostvr1024-1vm-cfsrr1-mrr +| | [Tags] | 1518B | 2C +| | framesize=${1518} | phy_cores=${2} + +| tc06-1518B-4c-eth-l2bdscale10kmaclrn-eth-2vhostvr1024-1vm-cfsrr1-mrr +| | [Tags] | 1518B | 4C +| | framesize=${1518} | phy_cores=${4} + +| tc07-9000B-1c-eth-l2bdscale10kmaclrn-eth-2vhostvr1024-1vm-cfsrr1-mrr +| | [Tags] | 9000B | 1C +| | framesize=${9000} | phy_cores=${1} + +| tc08-9000B-2c-eth-l2bdscale10kmaclrn-eth-2vhostvr1024-1vm-cfsrr1-mrr +| | [Tags] | 9000B | 2C +| | framesize=${9000} | phy_cores=${2} + +| tc09-9000B-4c-eth-l2bdscale10kmaclrn-eth-2vhostvr1024-1vm-cfsrr1-mrr +| | [Tags] | 9000B | 4C +| | framesize=${9000} | phy_cores=${4} + +| tc10-IMIX-1c-eth-l2bdscale10kmaclrn-eth-2vhostvr1024-1vm-cfsrr1-mrr +| | [Tags] | IMIX | 1C +| | framesize=IMIX_v4_1 | phy_cores=${1} + +| tc11-IMIX-2c-eth-l2bdscale10kmaclrn-eth-2vhostvr1024-1vm-cfsrr1-mrr +| | [Tags] | IMIX | 2C +| | framesize=IMIX_v4_1 | phy_cores=${2} + +| tc12-IMIX-4c-eth-l2bdscale10kmaclrn-eth-2vhostvr1024-1vm-cfsrr1-mrr +| | [Tags] | IMIX | 4C +| | framesize=IMIX_v4_1 | phy_cores=${4} diff --git a/tests/vpp/perf/vm_vhost/10ge2p1x520-eth-l2bdscale10kmaclrn-eth-2vhostvr1024-1vm-cfsrr1-ndrpdr.robot b/tests/vpp/perf/vm_vhost/10ge2p1x520-eth-l2bdscale10kmaclrn-eth-2vhostvr1024-1vm-cfsrr1-ndrpdr.robot new file mode 100644 index 0000000000..a7779e113e --- /dev/null +++ b/tests/vpp/perf/vm_vhost/10ge2p1x520-eth-l2bdscale10kmaclrn-eth-2vhostvr1024-1vm-cfsrr1-ndrpdr.robot @@ -0,0 +1,156 @@ +# Copyright (c) 2018 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 | NDRPDR +| ... | NIC_Intel-X520-DA2 | ETH | L2BDMACLRN | SCALE | FIB_10K | VHOST | VM +| ... | VHOST_1024 | CFS_OPT +| ... +| 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} +| ... +| Test Template | Local Template +| ... +| 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=1024, 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 MLRsearch library. +| ... | Test packets are generated by TG on +| ... | links to DUTs. TG traffic profile contains two L3 flow-groups +| ... | (flow-group per direction, 5k flows per flow-group) with all packets +| ... | containing Ethernet header, IPv4 header with IP protocol=61 and static +| ... | payload. MAC addresses ranges are incremented as follows: +| ... | port01_src ca:fe:00:00:00:00 - port01_src ca:fe:00:00:13:87,\ +| ... | port01_dst fa:ce:00:00:00:00 - port01_dst fa:ce:00:00:13:87,\ +| ... | port02_src fa:ce:00:00:00:00 - port02_src fa:ce:00:00:13:87,\ +| ... | port02_dst ca:fe:00:00:00:00 - port02_dst ca:fe:00:00:13:87,\ +| ... | *[Ref] Applicable standard specifications:* RFC2544. + +*** Variables *** +| ${perf_qemu_qsz}= | 1024 +# 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-macsrc5kdst5k + +*** Keywords *** +| Local Template +| | [Documentation] | FIXME. +| | [Arguments] | ${framesize} | ${phy_cores} | ${rxq}=${None} +| | ... +| | Set Test Variable | ${use_tuned_cfs} | ${True} +| | Set Test Variable | ${framesize} +| | Set Test Variable | ${min_rate} | ${10000} +| | ${dut1_vm_refs}= | Create Dictionary +| | ${dut2_vm_refs}= | Create Dictionary +| | Set Test Variable | ${dut1_vm_refs} +| | Set Test Variable | ${dut2_vm_refs} +| | ... +| | Given Add worker threads and rxqueues to all DUTs | ${phy_cores} | ${rxq} +| | And Add PCI devices to all DUTs +| | ${max_rate} | ${jumbo} = | Get Max Rate And Jumbo And Handle Multi Seg +| | ... | ${s_limit} | ${framesize} +| | 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 +| | ... | jumbo_frames=${jumbo} +| | 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 +| | ... | jumbo_frames=${jumbo} +| | Set To Dictionary | ${dut2_vm_refs} | DUT2_VM1 | ${vm2} +| | Setup Scheduler Policy for Vpp On All DUTs +| | Then Find NDR and PDR intervals using optimized search +| | ... | ${framesize} | ${traffic_profile} | ${min_rate} | ${max_rate} + +*** Test Cases *** +| tc01-64B-1c-eth-l2bdscale10kmaclrn-eth-2vhostvr1024-1vm-cfsrr1-ndrpdr +| | [Tags] | 64B | 1C +| | framesize=${64} | phy_cores=${1} + +| tc02-64B-2c-eth-l2bdscale10kmaclrn-eth-2vhostvr1024-1vm-cfsrr1-ndrpdr +| | [Tags] | 64B | 2C +| | framesize=${64} | phy_cores=${2} + +| tc03-64B-4c-eth-l2bdscale10kmaclrn-eth-2vhostvr1024-1vm-cfsrr1-ndrpdr +| | [Tags] | 64B | 4C +| | framesize=${64} | phy_cores=${4} + +| tc04-1518B-1c-eth-l2bdscale10kmaclrn-eth-2vhostvr1024-1vm-cfsrr1-ndrpdr +| | [Tags] | 1518B | 1C +| | framesize=${1518} | phy_cores=${1} + +| tc05-1518B-2c-eth-l2bdscale10kmaclrn-eth-2vhostvr1024-1vm-cfsrr1-ndrpdr +| | [Tags] | 1518B | 2C +| | framesize=${1518} | phy_cores=${2} + +| tc06-1518B-4c-eth-l2bdscale10kmaclrn-eth-2vhostvr1024-1vm-cfsrr1-ndrpdr +| | [Tags] | 1518B | 4C +| | framesize=${1518} | phy_cores=${4} + +| tc07-9000B-1c-eth-l2bdscale10kmaclrn-eth-2vhostvr1024-1vm-cfsrr1-ndrpdr +| | [Tags] | 9000B | 1C +| | framesize=${9000} | phy_cores=${1} + +| tc08-9000B-2c-eth-l2bdscale10kmaclrn-eth-2vhostvr1024-1vm-cfsrr1-ndrpdr +| | [Tags] | 9000B | 2C +| | framesize=${9000} | phy_cores=${2} + +| tc09-9000B-4c-eth-l2bdscale10kmaclrn-eth-2vhostvr1024-1vm-cfsrr1-ndrpdr +| | [Tags] | 9000B | 4C +| | framesize=${9000} | phy_cores=${4} + +| tc10-IMIX-1c-eth-l2bdscale10kmaclrn-eth-2vhostvr1024-1vm-cfsrr1-ndrpdr +| | [Tags] | IMIX | 1C +| | framesize=IMIX_v4_1 | phy_cores=${1} + +| tc11-IMIX-2c-eth-l2bdscale10kmaclrn-eth-2vhostvr1024-1vm-cfsrr1-ndrpdr +| | [Tags] | IMIX | 2C +| | framesize=IMIX_v4_1 | phy_cores=${2} + +| tc12-IMIX-4c-eth-l2bdscale10kmaclrn-eth-2vhostvr1024-1vm-cfsrr1-ndrpdr +| | [Tags] | IMIX | 4C +| | framesize=IMIX_v4_1 | phy_cores=${4} diff --git a/tests/vpp/perf/vm_vhost/10ge2p1x520-eth-l2bdscale10kmaclrn-eth-2vhostvr1024-1vm-cfsrr1-ndrpdrdisc.robot b/tests/vpp/perf/vm_vhost/10ge2p1x520-eth-l2bdscale10kmaclrn-eth-2vhostvr1024-1vm-cfsrr1-ndrpdrdisc.robot deleted file mode 100644 index ad01f900d6..0000000000 --- a/tests/vpp/perf/vm_vhost/10ge2p1x520-eth-l2bdscale10kmaclrn-eth-2vhostvr1024-1vm-cfsrr1-ndrpdrdisc.robot +++ /dev/null @@ -1,192 +0,0 @@ -# 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 | ETH | L2BDMACLRN | SCALE | FIB_10K | VHOST | VM -| ... | VHOST_1024 | CFS_OPT -| ... -| 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} -| ... -| Test Template | Local template -| ... -| 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=1024, 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, 5k flows per flow-group) with all packets -| ... | containing Ethernet header, IPv4 header with IP protocol=61 and static -| ... | payload. MAC addresses ranges are incremented as follows: -| ... | port01_src ca:fe:00:00:00:00 - port01_src ca:fe:00:00:13:87,\ -| ... | port01_dst fa:ce:00:00:00:00 - port01_dst fa:ce:00:00:13:87,\ -| ... | port02_src fa:ce:00:00:00:00 - port02_src fa:ce:00:00:13:87,\ -| ... | port02_dst ca:fe:00:00:00:00 - port02_dst ca:fe:00:00:13:87,\ -| ... | *[Ref] Applicable standard specifications:* RFC2544. - -*** Variables *** -| ${perf_qemu_qsz}= | 1024 -| ${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-macsrc5kdst5k - -*** Keywords *** -| Local template -| | [Arguments] | ${phy_cores} | ${framesize} | ${search_type} | ${rxq}=${None} -| | ... | ${min_rate}=${10000} -| | ... -| | 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 worker threads and rxqueues to all DUTs | ${phy_cores} | ${rxq} -| | And Add PCI devices to all DUTs -| | And Run Keyword If | ${get_framesize} < ${1522} | Add no multi seg to all DUTs -| | And Apply startup configuration on all VPP DUTs -| | When Initialize 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} -| | Setup Scheduler Policy for Vpp On All DUTs -| | 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-l2dbscale10kmaclrn-eth-2vhostvr1024-1vm-cfsrr1-ndrdisc -| | [Tags] | 64B | 1C | NDRDISC -| | phy_cores=${1} | framesize=${64} | search_type=NDR - -| tc02-64B-1t1c-eth-l2dbscale10kmaclrn-eth-2vhostvr1024-1vm-cfsrr1-pdrdisc -| | [Tags] | 64B | 1C | PDRDISC | SKIP_PATCH -| | phy_cores=${1} | framesize=${64} | search_type=PDR - -| tc03-1518B-1t1c-etc-l2dbscale10kmaclrn-eth-2vhostvr1024-1vm-cfsrr1-ndrdisc -| | [Tags] | 1518B | 1C | NDRDISC -| | phy_cores=${1} | framesize=${1518} | search_type=NDR - -| tc04-1518B-1t1c-eth-l2dbscale10kmaclrn-eth-2vhostvr1024-1vm-cfsrr1-pdrdisc -| | [Tags] | 1518B | 1C | PDRDISC | SKIP_PATCH -| | phy_cores=${1} | framesize=${1518} | search_type=PDR - -| tc05-IMIX-1t1c-eth-l2dbscale10kmaclrn-eth-2vhostvr1024-1vm-cfsrr1-ndrdisc -| | [Tags] | IMIX | 1C | NDRDISC -| | phy_cores=${1} | framesize=IMIX_v4_1 | search_type=NDR - -| tc06-IMIX-1t1c-eth-l2dbscale10kmaclrn-eth-2vhostvr1024-1vm-cfsrr1-pdrdisc -| | [Tags] | IMIX | 1C | PDRDISC | SKIP_PATCH -| | phy_cores=${1} | framesize=IMIX_v4_1 | search_type=PDR - -| tc07-64B-2t2c-eth-l2dbscale10kmaclrn-eth-2vhostvr1024-1vm-cfsrr1-ndrdisc -| | [Tags] | 64B | 2C | NDRDISC -| | phy_cores=${2} | framesize=${64} | search_type=NDR - -| tc08-64B-2t2c-eth-l2dbscale10kmaclrn-eth-2vhostvr1024-1vm-cfsrr1-pdrdisc -| | [Tags] | 64B | 2C | PDRDISC | SKIP_PATCH -| | phy_cores=${2} | framesize=${64} | search_type=PDR - -| tc09-1518B-2t2c-eth-l2dbscale10kmaclrn-eth-2vhostvr1024-1vm-cfsrr1-ndrdisc -| | [Tags] | 1518B | 2C | NDRDISC | SKIP_PATCH -| | phy_cores=${2} | framesize=${1518} | search_type=NDR - -| tc10-1518B-2t2c-eth-l2dbscale10kmaclrn-eth-2vhostvr1024-1vm-cfsrr1-pdrdisc -| | [Tags] | 1518B | 2C | PDRDISC | SKIP_PATCH -| | phy_cores=${2} | framesize=${1518} | search_type=PDR - -| tc11-IMIX-2t2c-eth-l2dbscale10kmaclrn-eth-2vhostvr1024-1vm-cfsrr1-ndrdisc -| | [Tags] | IMIX | 2C | NDRDISC | SKIP_PATCH -| | phy_cores=${2} | framesize=IMIX_v4_1 | search_type=NDR - -| tc12-IMIX-2t2c-eth-l2dbscale10kmaclrn-eth-2vhostvr1024-1vm-cfsrr1-pdrdisc -| | [Tags] | IMIX | 2C | PDRDISC | SKIP_PATCH -| | phy_cores=${2} | framesize=IMIX_v4_1 | search_type=PDR - -| tc13-64B-4t4c-eth-l2dbscale10kmaclrn-eth-2vhostvr1024-1vm-cfsrr1-ndrdisc -| | [Tags] | 64B | 4C | NDRDISC -| | phy_cores=${4} | framesize=${64} | search_type=NDR - -| tc14-64B-4t4c-eth-l2dbscale10kmaclrn-eth-2vhostvr1024-1vm-cfsrr1-pdrdisc -| | [Tags] | 64B | 4C | PDRDISC | SKIP_PATCH -| | phy_cores=${4} | framesize=${64} | search_type=PDR - -| tc15-1518B-4t4c-eth-l2dbscale10kmaclrn-eth-2vhostvr1024-1vm-cfsrr1-ndrdisc -| | [Tags] | 1518B | 4C | NDRDISC | SKIP_PATCH -| | phy_cores=${4} | framesize=${1518} | search_type=NDR - -| tc16-1518B-4t4c-eth-l2dbscale10kmaclrn-eth-2vhostvr1024-1vm-cfsrr1-pdrdisc -| | [Tags] | 1518B | 4C | PDRDISC | SKIP_PATCH -| | phy_cores=${4} | framesize=${1518} | search_type=PDR - -| tc17-IMIX-4t4c-eth-l2dbscale10kmaclrn-eth-2vhostvr1024-1vm-cfsrr1-ndrdisc -| | [Tags] | IMIX | 4C | NDRDISC | SKIP_PATCH -| | phy_cores=${4} | framesize=IMIX_v4_1 | search_type=NDR - -| tc18-IMIX-4t4c-eth-l2dbscale10kmaclrn-eth-2vhostvr1024-1vm-cfsrr1-pdrdisc -| | [Tags] | IMIX | 4C | PDRDISC | SKIP_PATCH -| | phy_cores=${4} | framesize=IMIX_v4_1 | search_type=PDR diff --git a/tests/vpp/perf/vm_vhost/10ge2p1x520-eth-l2bdscale1mmaclrn-eth-2vhostvr1024-1vm-cfsrr1-mrr.robot b/tests/vpp/perf/vm_vhost/10ge2p1x520-eth-l2bdscale1mmaclrn-eth-2vhostvr1024-1vm-cfsrr1-mrr.robot new file mode 100644 index 0000000000..e813a5f59b --- /dev/null +++ b/tests/vpp/perf/vm_vhost/10ge2p1x520-eth-l2bdscale1mmaclrn-eth-2vhostvr1024-1vm-cfsrr1-mrr.robot @@ -0,0 +1,150 @@ +# Copyright (c) 2018 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 | MRR +| ... | NIC_Intel-X520-DA2 | ETH | L2BDMACLRN | SCALE | FIB_1M | VHOST | VM +| ... | VHOST_1024 | CFS_OPT +| ... +| 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 mrr test with vhost and VM with dpdk-testpmd +| ... | dut1_node=${dut1} | dut1_vm_refs=${dut1_vm_refs} +| ... | dut2_node=${dut2} | dut2_vm_refs=${dut2_vm_refs} +| ... +| Test Template | Local Template +| ... +| Documentation | *Raw results 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=1024, 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:* In MaxReceivedRate test TG sends traffic +| ... | at line rate and reports total received/sent packets over trial period. +| ... | Test packets are generated by TG on\ +| ... | links to DUTs. TG traffic profile contains two L3 flow-groups\ +| ... | (flow-group per direction, 500k flows per flow-group) with all packets\ +| ... | containing Ethernet header, IPv4 header with IP protocol=61 and static\ +| ... | payload. MAC addresses ranges are incremented as follows: +| ... | port01_src ca:fe:00:00:00:00 - port01_src ca:fe:00:07:a1:1f,\ +| ... | port01_dst fa:ce:00:00:00:00 - port01_dst fa:ce:00:07:a1:1f,\ +| ... | port02_src fa:ce:00:00:00:00 - port02_src fa:ce:00:07:a1:1f,\ +| ... | port02_dst ca:fe:00:00:00:00 - port02_dst ca:fe:00:07:a1:1f,\ +| ... | *[Ref] Applicable standard specifications:* RFC2544. + +*** Variables *** +| ${perf_qemu_qsz}= | 1024 +# 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-macsrc500kdst500k + +*** Keywords *** +| Local Template +| | [Documentation] | FIXME. +| | [Arguments] | ${framesize} | ${phy_cores} | ${rxq}=${None} +| | ... +| | Set Test Variable | ${use_tuned_cfs} | ${True} +| | ${dut1_vm_refs}= | Create Dictionary +| | ${dut2_vm_refs}= | Create Dictionary +| | Set Test Variable | ${dut1_vm_refs} +| | Set Test Variable | ${dut2_vm_refs} +| | ... +| | Given Add worker threads and rxqueues to all DUTs | ${phy_cores} | ${rxq} +| | And Add PCI devices to all DUTs +| | ${max_rate} | ${jumbo} = | Get Max Rate And Jumbo And Handle Multi Seg +| | ... | ${s_limit} | ${framesize} +| | 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 +| | ... | jumbo_frames=${jumbo} +| | 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 +| | ... | jumbo_frames=${jumbo} +| | Set To Dictionary | ${dut2_vm_refs} | DUT2_VM1 | ${vm2} +| | Setup Scheduler Policy for Vpp On All DUTs +| | Then Traffic should pass with maximum rate +| | ... | ${max_rate}pps | ${framesize} | ${traffic_profile} + +*** Test Cases *** +| tc01-64B-1c-eth-l2bdscale1mmaclrn-eth-2vhostvr1024-1vm-cfsrr1-mrr +| | [Tags] | 64B | 1C +| | framesize=${64} | phy_cores=${1} + +| tc02-64B-2c-eth-l2bdscale1mmaclrn-eth-2vhostvr1024-1vm-cfsrr1-mrr +| | [Tags] | 64B | 2C +| | framesize=${64} | phy_cores=${2} + +| tc03-64B-4c-eth-l2bdscale1mmaclrn-eth-2vhostvr1024-1vm-cfsrr1-mrr +| | [Tags] | 64B | 4C +| | framesize=${64} | phy_cores=${4} + +| tc04-1518B-1c-eth-l2bdscale1mmaclrn-eth-2vhostvr1024-1vm-cfsrr1-mrr +| | [Tags] | 1518B | 1C +| | framesize=${1518} | phy_cores=${1} + +| tc05-1518B-2c-eth-l2bdscale1mmaclrn-eth-2vhostvr1024-1vm-cfsrr1-mrr +| | [Tags] | 1518B | 2C +| | framesize=${1518} | phy_cores=${2} + +| tc06-1518B-4c-eth-l2bdscale1mmaclrn-eth-2vhostvr1024-1vm-cfsrr1-mrr +| | [Tags] | 1518B | 4C +| | framesize=${1518} | phy_cores=${4} + +| tc07-9000B-1c-eth-l2bdscale1mmaclrn-eth-2vhostvr1024-1vm-cfsrr1-mrr +| | [Tags] | 9000B | 1C +| | framesize=${9000} | phy_cores=${1} + +| tc08-9000B-2c-eth-l2bdscale1mmaclrn-eth-2vhostvr1024-1vm-cfsrr1-mrr +| | [Tags] | 9000B | 2C +| | framesize=${9000} | phy_cores=${2} + +| tc09-9000B-4c-eth-l2bdscale1mmaclrn-eth-2vhostvr1024-1vm-cfsrr1-mrr +| | [Tags] | 9000B | 4C +| | framesize=${9000} | phy_cores=${4} + +| tc10-IMIX-1c-eth-l2bdscale1mmaclrn-eth-2vhostvr1024-1vm-cfsrr1-mrr +| | [Tags] | IMIX | 1C +| | framesize=IMIX_v4_1 | phy_cores=${1} + +| tc11-IMIX-2c-eth-l2bdscale1mmaclrn-eth-2vhostvr1024-1vm-cfsrr1-mrr +| | [Tags] | IMIX | 2C +| | framesize=IMIX_v4_1 | phy_cores=${2} + +| tc12-IMIX-4c-eth-l2bdscale1mmaclrn-eth-2vhostvr1024-1vm-cfsrr1-mrr +| | [Tags] | IMIX | 4C +| | framesize=IMIX_v4_1 | phy_cores=${4} diff --git a/tests/vpp/perf/vm_vhost/10ge2p1x520-eth-l2bdscale1mmaclrn-eth-2vhostvr1024-1vm-cfsrr1-ndrpdrdisc.robot b/tests/vpp/perf/vm_vhost/10ge2p1x520-eth-l2bdscale1mmaclrn-eth-2vhostvr1024-1vm-cfsrr1-ndrpdr.robot index ce0ea381ad..c4c67e76ae 100644 --- a/tests/vpp/perf/vm_vhost/10ge2p1x520-eth-l2bdscale1mmaclrn-eth-2vhostvr1024-1vm-cfsrr1-ndrpdrdisc.robot +++ b/tests/vpp/perf/vm_vhost/10ge2p1x520-eth-l2bdscale1mmaclrn-eth-2vhostvr1024-1vm-cfsrr1-ndrpdr.robot @@ -1,4 +1,4 @@ -# Copyright (c) 2017 Cisco and/or its affiliates. +# Copyright (c) 2018 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: @@ -15,7 +15,7 @@ | Resource | resources/libraries/robot/performance/performance_setup.robot | Library | resources.libraries.python.QemuUtils | ... -| Force Tags | 3_NODE_SINGLE_LINK_TOPO | PERFTEST | HW_ENV | NDRPDRDISC +| Force Tags | 3_NODE_SINGLE_LINK_TOPO | PERFTEST | HW_ENV | NDRPDR | ... | NIC_Intel-X520-DA2 | ETH | L2BDMACLRN | SCALE | FIB_1M | VHOST | VM | ... | VHOST_1024 | CFS_OPT | ... @@ -29,7 +29,7 @@ | ... | dut1_node=${dut1} | dut1_vm_refs=${dut1_vm_refs} | ... | dut2_node=${dut2} | dut2_vm_refs=${dut2_vm_refs} | ... -| Test Template | Local template +| Test Template | Local Template | ... | Documentation | *RFC2544: Packet throughput L2BD test cases with vhost* | ... @@ -50,9 +50,8 @@ | ... | 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\ +| ... | Ethernet L2 frame sizes using MLRsearch library. +| ... | Test packets are generated by TG on\ | ... | links to DUTs. TG traffic profile contains two L3 flow-groups\ | ... | (flow-group per direction, 500k flows per flow-group) with all packets\ | ... | containing Ethernet header, IPv4 header with IP protocol=61 and static\ @@ -65,7 +64,6 @@ *** Variables *** | ${perf_qemu_qsz}= | 1024 -| ${avg_imix_framesize}= | ${357.833} # X520-DA2 bandwidth limit | ${s_limit}= | ${10000000000} # Socket names @@ -77,116 +75,82 @@ | ${traffic_profile}= | trex-sl-3n-ethip4-macsrc500kdst500k *** Keywords *** -| Local template -| | [Arguments] | ${phy_cores} | ${framesize} | ${search_type} | ${rxq}=${None} -| | ... | ${min_rate}=${10000} +| Local Template +| | [Documentation] | FIXME. +| | [Arguments] | ${framesize} | ${phy_cores} | ${rxq}=${None} | | ... | | 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} +| | Set Test Variable | ${min_rate} | ${10000} | | ${dut1_vm_refs}= | Create Dictionary | | ${dut2_vm_refs}= | Create Dictionary | | Set Test Variable | ${dut1_vm_refs} | | Set Test Variable | ${dut2_vm_refs} +| | ... | | Given Add worker threads and rxqueues to all DUTs | ${phy_cores} | ${rxq} | | And Add PCI devices to all DUTs -| | And Run Keyword If | ${get_framesize} < ${1522} | Add no multi seg to all DUTs +| | ${max_rate} | ${jumbo} = | Get Max Rate And Jumbo And Handle Multi Seg +| | ... | ${s_limit} | ${framesize} | | 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 +| | ... | jumbo_frames=${jumbo} | | 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 +| | ... | jumbo_frames=${jumbo} | | Set To Dictionary | ${dut2_vm_refs} | DUT2_VM1 | ${vm2} | | Setup Scheduler Policy for Vpp On All DUTs -| | 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} +| | Then Find NDR and PDR intervals using optimized search +| | ... | ${framesize} | ${traffic_profile} | ${min_rate} | ${max_rate} *** Test Cases *** -| tc01-64B-1t1c-eth-l2dbscale1mmaclrn-eth-2vhostvr1024-1vm-cfsrr1-ndrdisc -| | [Tags] | 64B | 1C | NDRDISC -| | phy_cores=${1} | framesize=${64} | search_type=NDR - -| tc02-64B-1t1c-eth-l2dbscale1mmaclrn-eth-2vhostvr1024-1vm-cfsrr1-pdrdisc -| | [Tags] | 64B | 1C | PDRDISC | SKIP_PATCH -| | phy_cores=${1} | framesize=${64} | search_type=PDR - -| tc03-1518B-1t1c-etc-l2dbscale1mmaclrn-eth-2vhostvr1024-1vm-cfsrr1-ndrdisc -| | [Tags] | 1518B | 1C | NDRDISC -| | phy_cores=${1} | framesize=${1518} | search_type=NDR - -| tc04-1518B-1t1c-eth-l2dbscale1mmaclrn-eth-2vhostvr1024-1vm-cfsrr1-pdrdisc -| | [Tags] | 1518B | 1C | PDRDISC | SKIP_PATCH -| | phy_cores=${1} | framesize=${1518} | search_type=PDR - -| tc05-IMIX-1t1c-eth-l2dbscale1mmaclrn-eth-2vhostvr1024-1vm-cfsrr1-ndrdisc -| | [Tags] | IMIX | 1C | NDRDISC -| | phy_cores=${1} | framesize=IMIX_v4_1 | search_type=NDR - -| tc06-IMIX-1t1c-eth-l2dbscale1mmaclrn-eth-2vhostvr1024-1vm-cfsrr1-pdrdisc -| | [Tags] | IMIX | 1C | PDRDISC | SKIP_PATCH -| | phy_cores=${1} | framesize=IMIX_v4_1 | search_type=PDR - -| tc07-64B-2t2c-eth-l2dbscale1mmaclrn-eth-2vhostvr1024-1vm-cfsrr1-ndrdisc -| | [Tags] | 64B | 2C | NDRDISC -| | phy_cores=${2} | framesize=${64} | search_type=NDR +| tc01-64B-1c-eth-l2bdscale1mmaclrn-eth-2vhostvr1024-1vm-cfsrr1-ndrpdr +| | [Tags] | 64B | 1C +| | framesize=${64} | phy_cores=${1} -| tc08-64B-2t2c-eth-l2dbscale1mmaclrn-eth-2vhostvr1024-1vm-cfsrr1-pdrdisc -| | [Tags] | 64B | 2C | PDRDISC | SKIP_PATCH -| | phy_cores=${2} | framesize=${64} | search_type=PDR +| tc02-64B-2c-eth-l2bdscale1mmaclrn-eth-2vhostvr1024-1vm-cfsrr1-ndrpdr +| | [Tags] | 64B | 2C +| | framesize=${64} | phy_cores=${2} -| tc09-1518B-2t2c-eth-l2dbscale1mmaclrn-eth-2vhostvr1024-1vm-cfsrr1-ndrdisc -| | [Tags] | 1518B | 2C | NDRDISC | SKIP_PATCH -| | phy_cores=${2} | framesize=${1518} | search_type=NDR +| tc03-64B-4c-eth-l2bdscale1mmaclrn-eth-2vhostvr1024-1vm-cfsrr1-ndrpdr +| | [Tags] | 64B | 4C +| | framesize=${64} | phy_cores=${4} -| tc10-1518B-2t2c-eth-l2dbscale1mmaclrn-eth-2vhostvr1024-1vm-cfsrr1-pdrdisc -| | [Tags] | 1518B | 2C | PDRDISC | SKIP_PATCH -| | phy_cores=${2} | framesize=${1518} | search_type=PDR +| tc04-1518B-1c-eth-l2bdscale1mmaclrn-eth-2vhostvr1024-1vm-cfsrr1-ndrpdr +| | [Tags] | 1518B | 1C +| | framesize=${1518} | phy_cores=${1} -| tc11-IMIX-2t2c-eth-l2dbscale1mmaclrn-eth-2vhostvr1024-1vm-cfsrr1-ndrdisc -| | [Tags] | IMIX | 2C | NDRDISC | SKIP_PATCH -| | phy_cores=${2} | framesize=IMIX_v4_1 | search_type=NDR +| tc05-1518B-2c-eth-l2bdscale1mmaclrn-eth-2vhostvr1024-1vm-cfsrr1-ndrpdr +| | [Tags] | 1518B | 2C +| | framesize=${1518} | phy_cores=${2} -| tc12-IMIX-2t2c-eth-l2dbscale1mmaclrn-eth-2vhostvr1024-1vm-cfsrr1-pdrdisc -| | [Tags] | IMIX | 2C | PDRDISC | SKIP_PATCH -| | phy_cores=${2} | framesize=IMIX_v4_1 | search_type=PDR +| tc06-1518B-4c-eth-l2bdscale1mmaclrn-eth-2vhostvr1024-1vm-cfsrr1-ndrpdr +| | [Tags] | 1518B | 4C +| | framesize=${1518} | phy_cores=${4} -| tc13-64B-4t4c-eth-l2dbscale1mmaclrn-eth-2vhostvr1024-1vm-cfsrr1-ndrdisc -| | [Tags] | 64B | 4C | NDRDISC -| | phy_cores=${4} | framesize=${64} | search_type=NDR +| tc07-9000B-1c-eth-l2bdscale1mmaclrn-eth-2vhostvr1024-1vm-cfsrr1-ndrpdr +| | [Tags] | 9000B | 1C +| | framesize=${9000} | phy_cores=${1} -| tc14-64B-4t4c-eth-l2dbscale1mmaclrn-eth-2vhostvr1024-1vm-cfsrr1-pdrdisc -| | [Tags] | 64B | 4C | PDRDISC | SKIP_PATCH -| | phy_cores=${4} | framesize=${64} | search_type=PDR +| tc08-9000B-2c-eth-l2bdscale1mmaclrn-eth-2vhostvr1024-1vm-cfsrr1-ndrpdr +| | [Tags] | 9000B | 2C +| | framesize=${9000} | phy_cores=${2} -| tc15-1518B-4t4c-eth-l2dbscale1mmaclrn-eth-2vhostvr1024-1vm-cfsrr1-ndrdisc -| | [Tags] | 1518B | 4C | NDRDISC | SKIP_PATCH -| | phy_cores=${4} | framesize=${1518} | search_type=NDR +| tc09-9000B-4c-eth-l2bdscale1mmaclrn-eth-2vhostvr1024-1vm-cfsrr1-ndrpdr +| | [Tags] | 9000B | 4C +| | framesize=${9000} | phy_cores=${4} -| tc16-1518B-4t4c-eth-l2dbscale1mmaclrn-eth-2vhostvr1024-1vm-cfsrr1-pdrdisc -| | [Tags] | 1518B | 4C | PDRDISC | SKIP_PATCH -| | phy_cores=${4} | framesize=${1518} | search_type=PDR +| tc10-IMIX-1c-eth-l2bdscale1mmaclrn-eth-2vhostvr1024-1vm-cfsrr1-ndrpdr +| | [Tags] | IMIX | 1C +| | framesize=IMIX_v4_1 | phy_cores=${1} -| tc17-IMIX-4t4c-eth-l2dbscale1mmaclrn-eth-2vhostvr1024-1vm-cfsrr1-ndrdisc -| | [Tags] | IMIX | 4C | NDRDISC | SKIP_PATCH -| | phy_cores=${4} | framesize=IMIX_v4_1 | search_type=NDR +| tc11-IMIX-2c-eth-l2bdscale1mmaclrn-eth-2vhostvr1024-1vm-cfsrr1-ndrpdr +| | [Tags] | IMIX | 2C +| | framesize=IMIX_v4_1 | phy_cores=${2} -| tc18-IMIX-4t4c-eth-l2dbscale1mmaclrn-eth-2vhostvr1024-1vm-cfsrr1-pdrdisc -| | [Tags] | IMIX | 4C | PDRDISC | SKIP_PATCH -| | phy_cores=${4} | framesize=IMIX_v4_1 | search_type=PDR +| tc12-IMIX-4c-eth-l2bdscale1mmaclrn-eth-2vhostvr1024-1vm-cfsrr1-ndrpdr +| | [Tags] | IMIX | 4C +| | framesize=IMIX_v4_1 | phy_cores=${4} diff --git a/tests/vpp/perf/vm_vhost/10ge2p1x520-eth-l2xcbase-eth-2vhostvr1024-1vm-cfsrr1-mrr.robot b/tests/vpp/perf/vm_vhost/10ge2p1x520-eth-l2xcbase-eth-2vhostvr1024-1vm-cfsrr1-mrr.robot new file mode 100644 index 0000000000..3347af976f --- /dev/null +++ b/tests/vpp/perf/vm_vhost/10ge2p1x520-eth-l2xcbase-eth-2vhostvr1024-1vm-cfsrr1-mrr.robot @@ -0,0 +1,144 @@ +# Copyright (c) 2018 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 | MRR +| ... | NIC_Intel-X520-DA2 | ETH | L2XCFWD | BASE | VHOST | VM | VHOST_1024 +| ... | CFS_OPT +| ... +| 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 mrr test with vhost and VM with dpdk-testpmd +| ... | dut1_node=${dut1} | dut1_vm_refs=${dut1_vm_refs} +| ... | dut2_node=${dut2} | dut2_vm_refs=${dut2_vm_refs} +| ... +| Test Template | Local Template +| ... +| Documentation | *Raw results 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 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=1024, +| ... | 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:* In MaxReceivedRate test TG sends traffic +| ... | at line rate and reports total received/sent packets over trial period. +| ... | 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 *** +| ${perf_qemu_qsz}= | 1024 +# 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 *** +| Local Template +| | [Documentation] | FIXME. +| | [Arguments] | ${framesize} | ${phy_cores} | ${rxq}=${None} +| | ... +| | Set Test Variable | ${use_tuned_cfs} | ${True} +| | ${dut1_vm_refs}= | Create Dictionary +| | ${dut2_vm_refs}= | Create Dictionary +| | Set Test Variable | ${dut1_vm_refs} +| | Set Test Variable | ${dut2_vm_refs} +| | ... +| | Given Add worker threads and rxqueues to all DUTs | ${phy_cores} | ${rxq} +| | And Add PCI devices to all DUTs +| | ${max_rate} | ${jumbo} = | Get Max Rate And Jumbo And Handle Multi Seg +| | ... | ${s_limit} | ${framesize} +| | 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 +| | ... | jumbo_frames=${jumbo} +| | 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 +| | ... | jumbo_frames=${jumbo} +| | Set To Dictionary | ${dut2_vm_refs} | DUT2_VM1 | ${vm2} +| | Setup Scheduler Policy for Vpp On All DUTs +| | Then Traffic should pass with maximum rate +| | ... | ${max_rate}pps | ${framesize} | ${traffic_profile} + +*** Test Cases *** +| tc01-64B-1c-eth-l2xcbase-eth-2vhostvr1024-1vm-cfsrr1-mrr +| | [Tags] | 64B | 1C +| | framesize=${64} | phy_cores=${1} + +| tc02-64B-2c-eth-l2xcbase-eth-2vhostvr1024-1vm-cfsrr1-mrr +| | [Tags] | 64B | 2C +| | framesize=${64} | phy_cores=${2} + +| tc03-64B-4c-eth-l2xcbase-eth-2vhostvr1024-1vm-cfsrr1-mrr +| | [Tags] | 64B | 4C +| | framesize=${64} | phy_cores=${4} + +| tc04-1518B-1c-eth-l2xcbase-eth-2vhostvr1024-1vm-cfsrr1-mrr +| | [Tags] | 1518B | 1C +| | framesize=${1518} | phy_cores=${1} + +| tc05-1518B-2c-eth-l2xcbase-eth-2vhostvr1024-1vm-cfsrr1-mrr +| | [Tags] | 1518B | 2C +| | framesize=${1518} | phy_cores=${2} + +| tc06-1518B-4c-eth-l2xcbase-eth-2vhostvr1024-1vm-cfsrr1-mrr +| | [Tags] | 1518B | 4C +| | framesize=${1518} | phy_cores=${4} + +| tc07-9000B-1c-eth-l2xcbase-eth-2vhostvr1024-1vm-cfsrr1-mrr +| | [Tags] | 9000B | 1C +| | framesize=${9000} | phy_cores=${1} + +| tc08-9000B-2c-eth-l2xcbase-eth-2vhostvr1024-1vm-cfsrr1-mrr +| | [Tags] | 9000B | 2C +| | framesize=${9000} | phy_cores=${2} + +| tc09-9000B-4c-eth-l2xcbase-eth-2vhostvr1024-1vm-cfsrr1-mrr +| | [Tags] | 9000B | 4C +| | framesize=${9000} | phy_cores=${4} + +| tc10-IMIX-1c-eth-l2xcbase-eth-2vhostvr1024-1vm-cfsrr1-mrr +| | [Tags] | IMIX | 1C +| | framesize=IMIX_v4_1 | phy_cores=${1} + +| tc11-IMIX-2c-eth-l2xcbase-eth-2vhostvr1024-1vm-cfsrr1-mrr +| | [Tags] | IMIX | 2C +| | framesize=IMIX_v4_1 | phy_cores=${2} + +| tc12-IMIX-4c-eth-l2xcbase-eth-2vhostvr1024-1vm-cfsrr1-mrr +| | [Tags] | IMIX | 4C +| | framesize=IMIX_v4_1 | phy_cores=${4} diff --git a/tests/vpp/perf/vm_vhost/10ge2p1x520-eth-l2xcbase-eth-2vhostvr1024-1vm-cfsrr1-ndrpdr.robot b/tests/vpp/perf/vm_vhost/10ge2p1x520-eth-l2xcbase-eth-2vhostvr1024-1vm-cfsrr1-ndrpdr.robot new file mode 100644 index 0000000000..a2328b9f65 --- /dev/null +++ b/tests/vpp/perf/vm_vhost/10ge2p1x520-eth-l2xcbase-eth-2vhostvr1024-1vm-cfsrr1-ndrpdr.robot @@ -0,0 +1,150 @@ +# Copyright (c) 2018 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 | NDRPDR +| ... | NIC_Intel-X520-DA2 | ETH | L2XCFWD | BASE | VHOST | VM | VHOST_1024 +| ... | CFS_OPT +| ... +| 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} +| ... +| Test Template | Local Template +| ... +| 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 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=1024, +| ... | 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 MLRsearch library. +| ... | 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 *** +| ${perf_qemu_qsz}= | 1024 +# 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 *** +| Local Template +| | [Documentation] | FIXME. +| | [Arguments] | ${framesize} | ${phy_cores} | ${rxq}=${None} +| | ... +| | Set Test Variable | ${use_tuned_cfs} | ${True} +| | Set Test Variable | ${framesize} +| | Set Test Variable | ${min_rate} | ${10000} +| | ${dut1_vm_refs}= | Create Dictionary +| | ${dut2_vm_refs}= | Create Dictionary +| | Set Test Variable | ${dut1_vm_refs} +| | Set Test Variable | ${dut2_vm_refs} +| | ... +| | Given Add worker threads and rxqueues to all DUTs | ${phy_cores} | ${rxq} +| | And Add PCI devices to all DUTs +| | ${max_rate} | ${jumbo} = | Get Max Rate And Jumbo And Handle Multi Seg +| | ... | ${s_limit} | ${framesize} +| | 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 +| | ... | jumbo_frames=${jumbo} +| | 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 +| | ... | jumbo_frames=${jumbo} +| | Set To Dictionary | ${dut2_vm_refs} | DUT2_VM1 | ${vm2} +| | Setup Scheduler Policy for Vpp On All DUTs +| | Then Find NDR and PDR intervals using optimized search +| | ... | ${framesize} | ${traffic_profile} | ${min_rate} | ${max_rate} + +*** Test Cases *** +| tc01-64B-1c-eth-l2xcbase-eth-2vhostvr1024-1vm-cfsrr1-ndrpdr +| | [Tags] | 64B | 1C +| | framesize=${64} | phy_cores=${1} + +| tc02-64B-2c-eth-l2xcbase-eth-2vhostvr1024-1vm-cfsrr1-ndrpdr +| | [Tags] | 64B | 2C +| | framesize=${64} | phy_cores=${2} + +| tc03-64B-4c-eth-l2xcbase-eth-2vhostvr1024-1vm-cfsrr1-ndrpdr +| | [Tags] | 64B | 4C +| | framesize=${64} | phy_cores=${4} + +| tc04-1518B-1c-eth-l2xcbase-eth-2vhostvr1024-1vm-cfsrr1-ndrpdr +| | [Tags] | 1518B | 1C +| | framesize=${1518} | phy_cores=${1} + +| tc05-1518B-2c-eth-l2xcbase-eth-2vhostvr1024-1vm-cfsrr1-ndrpdr +| | [Tags] | 1518B | 2C +| | framesize=${1518} | phy_cores=${2} + +| tc06-1518B-4c-eth-l2xcbase-eth-2vhostvr1024-1vm-cfsrr1-ndrpdr +| | [Tags] | 1518B | 4C +| | framesize=${1518} | phy_cores=${4} + +| tc07-9000B-1c-eth-l2xcbase-eth-2vhostvr1024-1vm-cfsrr1-ndrpdr +| | [Tags] | 9000B | 1C +| | framesize=${9000} | phy_cores=${1} + +| tc08-9000B-2c-eth-l2xcbase-eth-2vhostvr1024-1vm-cfsrr1-ndrpdr +| | [Tags] | 9000B | 2C +| | framesize=${9000} | phy_cores=${2} + +| tc09-9000B-4c-eth-l2xcbase-eth-2vhostvr1024-1vm-cfsrr1-ndrpdr +| | [Tags] | 9000B | 4C +| | framesize=${9000} | phy_cores=${4} + +| tc10-IMIX-1c-eth-l2xcbase-eth-2vhostvr1024-1vm-cfsrr1-ndrpdr +| | [Tags] | IMIX | 1C +| | framesize=IMIX_v4_1 | phy_cores=${1} + +| tc11-IMIX-2c-eth-l2xcbase-eth-2vhostvr1024-1vm-cfsrr1-ndrpdr +| | [Tags] | IMIX | 2C +| | framesize=IMIX_v4_1 | phy_cores=${2} + +| tc12-IMIX-4c-eth-l2xcbase-eth-2vhostvr1024-1vm-cfsrr1-ndrpdr +| | [Tags] | IMIX | 4C +| | framesize=IMIX_v4_1 | phy_cores=${4} diff --git a/tests/vpp/perf/vm_vhost/10ge2p1x520-eth-l2xcbase-eth-2vhostvr1024-1vm-cfsrr1-ndrpdrdisc.robot b/tests/vpp/perf/vm_vhost/10ge2p1x520-eth-l2xcbase-eth-2vhostvr1024-1vm-cfsrr1-ndrpdrdisc.robot deleted file mode 100644 index a07647c942..0000000000 --- a/tests/vpp/perf/vm_vhost/10ge2p1x520-eth-l2xcbase-eth-2vhostvr1024-1vm-cfsrr1-ndrpdrdisc.robot +++ /dev/null @@ -1,186 +0,0 @@ -# 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 | ETH | L2XCFWD | BASE | VHOST | VM | VHOST_1024 -| ... | CFS_OPT -| ... -| 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} -| ... -| Test Template | Local template -| ... -| 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 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=1024, -| ... | 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 *** -| ${perf_qemu_qsz}= | 1024 -| ${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 *** -| Local template -| | [Arguments] | ${phy_cores} | ${framesize} | ${search_type} | ${rxq}=${None} -| | ... | ${min_rate}=${10000} -| | ... -| | 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 worker threads and rxqueues to all DUTs | ${phy_cores} | ${rxq} -| | And Add PCI devices to all DUTs -| | And Run Keyword If | ${get_framesize} < ${1522} | Add no multi seg to all DUTs -| | And Apply startup configuration on all VPP DUTs -| | When Initialize 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} -| | Setup Scheduler Policy for Vpp On All DUTs -| | 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-2vhostvr1024-1vm-cfsrr1-ndrdisc -| | [Tags] | 64B | 1C | NDRDISC -| | phy_cores=${1} | framesize=${64} | search_type=NDR - -| tc02-64B-1t1c-eth-l2xcbase-eth-2vhostvr1024-1vm-cfsrr1-pdrdisc -| | [Tags] | 64B | 1C | PDRDISC | SKIP_PATCH -| | phy_cores=${1} | framesize=${64} | search_type=PDR - -| tc03-1518B-1t1c-etc-l2xcbase-eth-2vhostvr1024-1vm-cfsrr1-ndrdisc -| | [Tags] | 1518B | 1C | NDRDISC -| | phy_cores=${1} | framesize=${1518} | search_type=NDR - -| tc04-1518B-1t1c-eth-l2xcbase-eth-2vhostvr1024-1vm-cfsrr1-pdrdisc -| | [Tags] | 1518B | 1C | PDRDISC | SKIP_PATCH -| | phy_cores=${1} | framesize=${1518} | search_type=PDR - -| tc05-IMIX-1t1c-eth-l2xcbase-eth-2vhostvr1024-1vm-cfsrr1-ndrdisc -| | [Tags] | IMIX | 1C | NDRDISC -| | phy_cores=${1} | framesize=IMIX_v4_1 | search_type=NDR - -| tc06-IMIX-1t1c-eth-l2xcbase-eth-2vhostvr1024-1vm-cfsrr1-pdrdisc -| | [Tags] | IMIX | 1C | PDRDISC | SKIP_PATCH -| | phy_cores=${1} | framesize=IMIX_v4_1 | search_type=PDR - -| tc07-64B-2t2c-eth-l2xcbase-eth-2vhostvr1024-1vm-cfsrr1-ndrdisc -| | [Tags] | 64B | 2C | NDRDISC -| | phy_cores=${2} | framesize=${64} | search_type=NDR - -| tc08-64B-2t2c-eth-l2xcbase-eth-2vhostvr1024-1vm-cfsrr1-pdrdisc -| | [Tags] | 64B | 2C | PDRDISC | SKIP_PATCH -| | phy_cores=${2} | framesize=${64} | search_type=PDR - -| tc09-1518B-2t2c-eth-l2xcbase-eth-2vhostvr1024-1vm-cfsrr1-ndrdisc -| | [Tags] | 1518B | 2C | NDRDISC | SKIP_PATCH -| | phy_cores=${2} | framesize=${1518} | search_type=NDR - -| tc10-1518B-2t2c-eth-l2xcbase-eth-2vhostvr1024-1vm-cfsrr1-pdrdisc -| | [Tags] | 1518B | 2C | PDRDISC | SKIP_PATCH -| | phy_cores=${2} | framesize=${1518} | search_type=PDR - -| tc11-IMIX-2t2c-eth-l2xcbase-eth-2vhostvr1024-1vm-cfsrr1-ndrdisc -| | [Tags] | IMIX | 2C | NDRDISC | SKIP_PATCH -| | phy_cores=${2} | framesize=IMIX_v4_1 | search_type=NDR - -| tc12-IMIX-2t2c-eth-l2xcbase-eth-2vhostvr1024-1vm-cfsrr1-pdrdisc -| | [Tags] | IMIX | 2C | PDRDISC | SKIP_PATCH -| | phy_cores=${2} | framesize=IMIX_v4_1 | search_type=PDR - -| tc13-64B-4t4c-eth-l2xcbase-eth-2vhostvr1024-1vm-cfsrr1-ndrdisc -| | [Tags] | 64B | 4C | NDRDISC -| | phy_cores=${4} | framesize=${64} | search_type=NDR - -| tc14-64B-4t4c-eth-l2xcbase-eth-2vhostvr1024-1vm-cfsrr1-pdrdisc -| | [Tags] | 64B | 4C | PDRDISC | SKIP_PATCH -| | phy_cores=${4} | framesize=${64} | search_type=PDR - -| tc15-1518B-4t4c-eth-l2xcbase-eth-2vhostvr1024-1vm-cfsrr1-ndrdisc -| | [Tags] | 1518B | 4C | NDRDISC | SKIP_PATCH -| | phy_cores=${4} | framesize=${1518} | search_type=NDR - -| tc16-1518B-4t4c-eth-l2xcbase-eth-2vhostvr1024-1vm-cfsrr1-pdrdisc -| | [Tags] | 1518B | 4C | PDRDISC | SKIP_PATCH -| | phy_cores=${4} | framesize=${1518} | search_type=PDR - -| tc17-IMIX-4t4c-eth-l2xcbase-eth-2vhostvr1024-1vm-cfsrr1-ndrdisc -| | [Tags] | IMIX | 4C | NDRDISC | SKIP_PATCH -| | phy_cores=${4} | framesize=IMIX_v4_1 | search_type=NDR - -| tc18-IMIX-4t4c-eth-l2xcbase-eth-2vhostvr1024-1vm-cfsrr1-pdrdisc -| | [Tags] | IMIX | 4C | PDRDISC | SKIP_PATCH -| | phy_cores=${4} | framesize=IMIX_v4_1 | search_type=PDR diff --git a/tests/vpp/perf/vm_vhost/10ge2p1x520-eth-l2xcbase-eth-2vhostvr1024-1vm-mrr.robot b/tests/vpp/perf/vm_vhost/10ge2p1x520-eth-l2xcbase-eth-2vhostvr1024-1vm-mrr.robot index 696b32d95d..567b593c91 100644 --- a/tests/vpp/perf/vm_vhost/10ge2p1x520-eth-l2xcbase-eth-2vhostvr1024-1vm-mrr.robot +++ b/tests/vpp/perf/vm_vhost/10ge2p1x520-eth-l2xcbase-eth-2vhostvr1024-1vm-mrr.robot @@ -27,7 +27,7 @@ | ... | dut1_node=${dut1} | dut1_vm_refs=${dut1_vm_refs} | ... | dut2_node=${dut2} | dut2_vm_refs=${dut2_vm_refs} | ... -| Test Template | Local template +| Test Template | Local Template | ... | Documentation | *Raw results L2XC test cases with vhost* | ... @@ -61,7 +61,7 @@ | ${traffic_profile}= | trex-sl-3n-ethip4-ip4src254 *** Keywords *** -| Local template +| Local Template | | [Documentation] | | ... | [Cfg] DUT runs L2XC switching config. | | ... | Each DUT uses ${phy_cores} physical core(s) for worker threads. @@ -76,79 +76,74 @@ | | ... | | [Arguments] | ${framesize} | ${phy_cores} | ${rxq}=${None} | | ... -| | Set Test Variable | ${framesize} -| | ${get_framesize}= | Get Frame Size | ${framesize} -| | ${max_rate}= | Calculate pps | ${s_limit} | ${get_framesize} | | ${dut1_vm_refs}= | Create Dictionary | | ${dut2_vm_refs}= | Create Dictionary | | Set Test Variable | ${dut1_vm_refs} | | Set Test Variable | ${dut2_vm_refs} -| | ${jumbo_frames}= | Set Variable If | ${get_framesize} < ${1522} -| | ... | ${False} | ${True} | | ... | | Given Add worker threads and rxqueues to all DUTs | ${phy_cores} | ${rxq} | | And Add PCI devices to all DUTs -| | And Run Keyword If | ${get_framesize} < ${1522} -| | ... | Add no multi seg to all DUTs +| | ${max_rate} | ${jumbo} = | Get Max Rate And Jumbo And Handle Multi Seg +| | ... | ${s_limit} | ${framesize} | | 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 -| | ... | jumbo_frames=${jumbo_frames} +| | ... | jumbo_frames=${jumbo} | | 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 -| | ... | jumbo_frames=${jumbo_frames} +| | ... | jumbo_frames=${jumbo} | | Set To Dictionary | ${dut2_vm_refs} | DUT2_VM1 | ${vm2} | | Then Traffic should pass with maximum rate | | ... | ${max_rate}pps | ${framesize} | ${traffic_profile} *** Test Cases *** -| tc01-64B-1t1c-eth-l2xcbase-eth-2vhostvr1024-1vm-mrr +| tc01-64B-1c-eth-l2xcbase-eth-2vhostvr1024-1vm-mrr | | [Tags] | 64B | 1C | | framesize=${64} | phy_cores=${1} -| tc02-1518B-1t1c-eth-l2xcbase-eth-2vhostvr1024-1vm-mrr -| | [Tags] | 1518B | 1C -| | framesize=${1518} | phy_cores=${1} - -| tc03-9000B-1t1c-eth-l2xcbase-eth-2vhostvr1024-1vm-mrr -| | [Tags] | 9000B | 1C -| | framesize=${9000} | phy_cores=${1} - -| tc04-IMIX-1t1c-eth-l2xcbase-eth-2vhostvr1024-1vm-mrr -| | [Tags] | IMIX | 1C -| | framesize=IMIX_v4_1 | phy_cores=${1} - -| tc05-64B-2t2c-eth-l2xcbase-eth-2vhostvr1024-1vm-mrr +| tc02-64B-2c-eth-l2xcbase-eth-2vhostvr1024-1vm-mrr | | [Tags] | 64B | 2C | | framesize=${64} | phy_cores=${2} -| tc06-1518B-2t2c-eth-l2xcbase-eth-2vhostvr1024-1vm-mrr -| | [Tags] | 1518B | 2C -| | framesize=${1518} | phy_cores=${2} - -| tc07-9000B-2t2c-eth-l2xcbase-eth-2vhostvr1024-1vm-mrr -| | [Tags] | 9000B | 2C -| | framesize=${9000} | phy_cores=${2} - -| tc08-IMIX-2t2c-eth-l2xcbase-eth-2vhostvr1024-1vm-mrr -| | [Tags] | IMIX | 2C -| | framesize=IMIX_v4_1 | phy_cores=${2} - -| tc09-64B-4t4c-eth-l2xcbase-eth-2vhostvr1024-1vm-mrr +| tc03-64B-4c-eth-l2xcbase-eth-2vhostvr1024-1vm-mrr | | [Tags] | 64B | 4C | | framesize=${64} | phy_cores=${4} -| tc10-1518B-4t4c-eth-l2xcbase-eth-2vhostvr1024-1vm-mrr +| tc04-1518B-1c-eth-l2xcbase-eth-2vhostvr1024-1vm-mrr +| | [Tags] | 1518B | 1C +| | framesize=${1518} | phy_cores=${1} + +| tc05-1518B-2c-eth-l2xcbase-eth-2vhostvr1024-1vm-mrr +| | [Tags] | 1518B | 2C +| | framesize=${1518} | phy_cores=${2} + +| tc06-1518B-4c-eth-l2xcbase-eth-2vhostvr1024-1vm-mrr | | [Tags] | 1518B | 4C | | framesize=${1518} | phy_cores=${4} -| tc11-9000B-4t4c-eth-l2xcbase-eth-2vhostvr1024-1vm-mrr +| tc07-9000B-1c-eth-l2xcbase-eth-2vhostvr1024-1vm-mrr +| | [Tags] | 9000B | 1C +| | framesize=${9000} | phy_cores=${1} + +| tc08-9000B-2c-eth-l2xcbase-eth-2vhostvr1024-1vm-mrr +| | [Tags] | 9000B | 2C +| | framesize=${9000} | phy_cores=${2} + +| tc09-9000B-4c-eth-l2xcbase-eth-2vhostvr1024-1vm-mrr | | [Tags] | 9000B | 4C | | framesize=${9000} | phy_cores=${4} -| tc12-IMIX-4t4c-eth-l2xcbase-eth-2vhostvr1024-1vm-mrr +| tc10-IMIX-1c-eth-l2xcbase-eth-2vhostvr1024-1vm-mrr +| | [Tags] | IMIX | 1C +| | framesize=IMIX_v4_1 | phy_cores=${1} + +| tc11-IMIX-2c-eth-l2xcbase-eth-2vhostvr1024-1vm-mrr +| | [Tags] | IMIX | 2C +| | framesize=IMIX_v4_1 | phy_cores=${2} + +| tc12-IMIX-4c-eth-l2xcbase-eth-2vhostvr1024-1vm-mrr | | [Tags] | IMIX | 4C | | framesize=IMIX_v4_1 | phy_cores=${4} diff --git a/tests/vpp/perf/vm_vhost/10ge2p1x520-eth-l2xcbase-eth-2vhostvr1024-1vm-ndrpdr.robot b/tests/vpp/perf/vm_vhost/10ge2p1x520-eth-l2xcbase-eth-2vhostvr1024-1vm-ndrpdr.robot new file mode 100644 index 0000000000..8426b79b77 --- /dev/null +++ b/tests/vpp/perf/vm_vhost/10ge2p1x520-eth-l2xcbase-eth-2vhostvr1024-1vm-ndrpdr.robot @@ -0,0 +1,154 @@ +# Copyright (c) 2018 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 | NDRPDR +| ... | NIC_Intel-X520-DA2 | ETH | L2XCFWD | BASE | VHOST | 1VM | VHOST_1024 +| ... +| 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} +| ... +| Test Template | Local Template +| ... +| Documentation | *RFC2544: Pkt 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=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 +| ... | Rate) with non-zero packet loss tolerance (LT) expressed in percentage +| ... | of packets transmitted. NDR and PDR are discovered for different +| ... | Ethernet L2 frame sizes using MLRsearch library. +| ... | Test packets are generated by TG on links to DUTs. TG traffic profile +| ... | contains two L3 flow-groups (flow-group per direction, 254 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. + +*** Variables *** +| ${perf_qemu_qsz}= | 1024 +# Socket names +| ${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 + +*** Keywords *** +| Local Template +| | [Documentation] +| | ... | [Cfg] DUT runs L2XC switching config. +| | ... | Each DUT uses ${phy_cores} physical core(s) for worker threads. +| | ... | [Ver] Measure NDR and PDR values using MLRsearch algorithm.\ +| | ... +| | ... | *Arguments:* +| | ... | - framesize - Framesize in Bytes in integer or string (IMIX_v4_1). +| | ... | Type: integer, string +| | ... | - phy_cores - Number of physical cores. Type: integer +| | ... | - rxq - Number of RX queues, default value: ${None}. Type: integer +| | ... +| | [Arguments] | ${framesize} | ${phy_cores} | ${rxq}=${None} +| | ... +| | Set Test Variable | ${framesize} +| | Set Test Variable | ${min_rate} | ${10000} +| | ${dut1_vm_refs}= | Create Dictionary +| | ${dut2_vm_refs}= | Create Dictionary +| | Set Test Variable | ${dut1_vm_refs} +| | Set Test Variable | ${dut2_vm_refs} +| | ... +| | Given Add worker threads and rxqueues to all DUTs | ${phy_cores} | ${rxq} +| | And Add PCI devices to all DUTs +| | ${max_rate} | ${jumbo} = | Get Max Rate And Jumbo And Handle Multi Seg +| | ... | ${s_limit} | ${framesize} +| | 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 +| | ... | jumbo_frames=${jumbo} +| | 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 +| | ... | jumbo_frames=${jumbo} +| | Set To Dictionary | ${dut2_vm_refs} | DUT2_VM1 | ${vm2} +| | Then Find NDR and PDR intervals using optimized search +| | ... | ${framesize} | ${traffic_profile} | ${min_rate} | ${max_rate} + +*** Test Cases *** +| tc01-64B-1c-eth-l2xcbase-eth-2vhostvr1024-1vm-ndrpdr +| | [Tags] | 64B | 1C +| | framesize=${64} | phy_cores=${1} + +| tc02-64B-2c-eth-l2xcbase-eth-2vhostvr1024-1vm-ndrpdr +| | [Tags] | 64B | 2C +| | framesize=${64} | phy_cores=${2} + +| tc03-64B-4c-eth-l2xcbase-eth-2vhostvr1024-1vm-ndrpdr +| | [Tags] | 64B | 4C +| | framesize=${64} | phy_cores=${4} + +| tc04-1518B-1c-eth-l2xcbase-eth-2vhostvr1024-1vm-ndrpdr +| | [Tags] | 1518B | 1C +| | framesize=${1518} | phy_cores=${1} + +| tc05-1518B-2c-eth-l2xcbase-eth-2vhostvr1024-1vm-ndrpdr +| | [Tags] | 1518B | 2C +| | framesize=${1518} | phy_cores=${2} + +| tc06-1518B-4c-eth-l2xcbase-eth-2vhostvr1024-1vm-ndrpdr +| | [Tags] | 1518B | 4C +| | framesize=${1518} | phy_cores=${4} + +| tc07-9000B-1c-eth-l2xcbase-eth-2vhostvr1024-1vm-ndrpdr +| | [Tags] | 9000B | 1C +| | framesize=${9000} | phy_cores=${1} + +| tc08-9000B-2c-eth-l2xcbase-eth-2vhostvr1024-1vm-ndrpdr +| | [Tags] | 9000B | 2C +| | framesize=${9000} | phy_cores=${2} + +| tc09-9000B-4c-eth-l2xcbase-eth-2vhostvr1024-1vm-ndrpdr +| | [Tags] | 9000B | 4C +| | framesize=${9000} | phy_cores=${4} + +| tc10-IMIX-1c-eth-l2xcbase-eth-2vhostvr1024-1vm-ndrpdr +| | [Tags] | IMIX | 1C +| | framesize=IMIX_v4_1 | phy_cores=${1} + +| tc11-IMIX-2c-eth-l2xcbase-eth-2vhostvr1024-1vm-ndrpdr +| | [Tags] | IMIX | 2C +| | framesize=IMIX_v4_1 | phy_cores=${2} + +| tc12-IMIX-4c-eth-l2xcbase-eth-2vhostvr1024-1vm-ndrpdr +| | [Tags] | IMIX | 4C +| | framesize=IMIX_v4_1 | phy_cores=${4} diff --git a/tests/vpp/perf/vm_vhost/10ge2p1x520-eth-l2xcbase-eth-2vhostvr1024-1vm-ndrpdrdisc.robot b/tests/vpp/perf/vm_vhost/10ge2p1x520-eth-l2xcbase-eth-2vhostvr1024-1vm-ndrpdrdisc.robot deleted file mode 100644 index 629f17e81c..0000000000 --- a/tests/vpp/perf/vm_vhost/10ge2p1x520-eth-l2xcbase-eth-2vhostvr1024-1vm-ndrpdrdisc.robot +++ /dev/null @@ -1,620 +0,0 @@ -# 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.NodePath -| ... -| Force Tags | 3_NODE_SINGLE_LINK_TOPO | PERFTEST | HW_ENV | NDRPDRDISC -| ... | NIC_Intel-X520-DA2 | ETH | L2XCFWD | BASE | VHOST | VM | VHOST_1024 -| ... -| 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: Pkt 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 cross connect. -| ... | *[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=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 -| ... | 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 *** -| ${perf_qemu_qsz}= | 1024 -| ${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-2vhostvr1024-1vm-ndrdisc -| | [Documentation] -| | ... | [Cfg] DUT runs L2XC switching config with 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 | 1C | NDRDISC -| | ${framesize}= | Set Variable | ${64} -| | ${min_rate}= | Set Variable | ${10000} -| | ${max_rate}= | Calculate pps | ${s_limit} | ${framesize} -| | ${binary_min}= | Set Variable | ${min_rate} -| | ${binary_max}= | Set Variable | ${max_rate} -| | ${threshold}= | Set Variable | ${min_rate} -| | ${dut1_vm_refs}= | Create Dictionary -| | ${dut2_vm_refs}= | Create Dictionary -| | Given Add worker threads and rxqueues to all DUTs | 1 -| | And Add PCI devices to all DUTs -| | And 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} -| | Then Find NDR using binary search and pps | ${framesize} | ${binary_min} -| | ... | ${binary_max} | ${traffic_profile} -| | ... | ${min_rate} | ${max_rate} | ${threshold} - -| tc02-64B-1t1c-eth-l2xcbase-eth-2vhostvr1024-1vm-pdrdisc -| | [Documentation] -| | ... | [Cfg] DUT runs L2XC switching config with 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 | 1C | PDRDISC | SKIP_PATCH -| | ${framesize}= | Set Variable | ${64} -| | ${min_rate}= | Set Variable | ${10000} -| | ${max_rate}= | Calculate pps | ${s_limit} | ${framesize} -| | ${binary_min}= | Set Variable | ${min_rate} -| | ${binary_max}= | Set Variable | ${max_rate} -| | ${threshold}= | Set Variable | ${min_rate} -| | ${dut1_vm_refs}= | Create Dictionary -| | ${dut2_vm_refs}= | Create Dictionary -| | Given Add worker threads and rxqueues to all DUTs | 1 -| | And Add PCI devices to all DUTs -| | And 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} -| | Then Find PDR using binary search and pps | ${framesize} | ${binary_min} -| | ... | ${binary_max} | ${traffic_profile} -| | ... | ${min_rate} | ${max_rate} | ${threshold} -| | ... | ${perf_pdr_loss_acceptance} | ${perf_pdr_loss_acceptance_type} - -| tc03-1518B-1t1c-eth-l2xcbase-eth-2vhostvr1024-1vm-ndrdisc -| | [Documentation] -| | ... | [Cfg] DUT runs L2XC switching config with 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 | 1C | NDRDISC -| | ${framesize}= | Set Variable | ${1518} -| | ${min_rate}= | Set Variable | ${10000} -| | ${max_rate}= | Calculate pps | ${s_limit} | ${framesize} -| | ${binary_min}= | Set Variable | ${min_rate} -| | ${binary_max}= | Set Variable | ${max_rate} -| | ${threshold}= | Set Variable | ${min_rate} -| | ${dut1_vm_refs}= | Create Dictionary -| | ${dut2_vm_refs}= | Create Dictionary -| | Given Add worker threads and rxqueues to all DUTs | 1 -| | And Add PCI devices to all DUTs -| | And 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} -| | Then Find NDR using binary search and pps | ${framesize} | ${binary_min} -| | ... | ${binary_max} | ${traffic_profile} -| | ... | ${min_rate} | ${max_rate} | ${threshold} - -| tc04-1518B-1t1c-eth-l2xcbase-eth-2vhostvr1024-1vm-pdrdisc -| | [Documentation] -| | ... | [Cfg] DUT runs L2XC switching config with 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 | 1C | PDRDISC | SKIP_PATCH -| | ${framesize}= | Set Variable | ${1518} -| | ${min_rate}= | Set Variable | ${10000} -| | ${max_rate}= | Calculate pps | ${s_limit} | ${framesize} -| | ${binary_min}= | Set Variable | ${min_rate} -| | ${binary_max}= | Set Variable | ${max_rate} -| | ${threshold}= | Set Variable | ${min_rate} -| | ${dut1_vm_refs}= | Create Dictionary -| | ${dut2_vm_refs}= | Create Dictionary -| | Given Add worker threads and rxqueues to all DUTs | 1 -| | And Add PCI devices to all DUTs -| | And 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} -| | Then Find PDR using binary search and pps | ${framesize} | ${binary_min} -| | ... | ${binary_max} | ${traffic_profile} -| | ... | ${min_rate} | ${max_rate} | ${threshold} -| | ... | ${perf_pdr_loss_acceptance} | ${perf_pdr_loss_acceptance_type} - -| tc05-IMIX-1t1c-eth-l2xcbase-eth-2vhostvr1024-1vm-ndrdisc -| | [Documentation] -| | ... | [Cfg] DUT runs L2XC switching config with 1 phy core, \ -| | ... | 1 receive queue per NIC port. [Ver] Find NDR for IMIX_v4_1 frame \ -| | ... | size using binary search start at 10GE linerate, step 10kpps. -| | ... | IMIX_v4_1 = (28x64B;16x570B;4x1518B) -| | [Tags] | IMIX | 1C | NDRDISC -| | ${framesize}= | Set Variable | IMIX_v4_1 -| | ${min_rate}= | Set Variable | ${10000} -| | ${max_rate}= | Calculate pps | ${s_limit} | ${framesize} -| | ${binary_min}= | Set Variable | ${min_rate} -| | ${binary_max}= | Set Variable | ${max_rate} -| | ${threshold}= | Set Variable | ${min_rate} -| | ${dut1_vm_refs}= | Create Dictionary -| | ${dut2_vm_refs}= | Create Dictionary -| | Given Add worker threads and rxqueues to all DUTs | 1 -| | And Add PCI devices to all DUTs -| | And 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} -| | Then Find NDR using binary search and pps | ${framesize} | ${binary_min} -| | ... | ${binary_max} | ${traffic_profile} -| | ... | ${min_rate} | ${max_rate} | ${threshold} - -| tc06-IMIX-1t1c-eth-l2xcbase-eth-2vhostvr1024-1vm-pdrdisc -| | [Documentation] -| | ... | [Cfg] DUT runs L2XC switching config with 1 phy core, \ -| | ... | 1 receive queue per NIC port. [Ver] Find PDR for IMIX_v4_1 frame \ -| | ... | size using binary search start at 10GE linerate, step 10kpps, LT=0.5%. -| | ... | IMIX_v4_1 = (28x64B;16x570B;4x1518B) -| | [Tags] | IMIX | 1C | PDRDISC | SKIP_PATCH -| | ${framesize}= | Set Variable | IMIX_v4_1 -| | ${min_rate}= | Set Variable | ${10000} -| | ${max_rate}= | Calculate pps | ${s_limit} | ${framesize} -| | ${binary_min}= | Set Variable | ${min_rate} -| | ${binary_max}= | Set Variable | ${max_rate} -| | ${threshold}= | Set Variable | ${min_rate} -| | ${dut1_vm_refs}= | Create Dictionary -| | ${dut2_vm_refs}= | Create Dictionary -| | Given Add worker threads and rxqueues to all DUTs | 1 -| | And Add PCI devices to all DUTs -| | And 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} -| | Then Find PDR using binary search and pps | ${framesize} | ${binary_min} -| | ... | ${binary_max} | ${traffic_profile} -| | ... | ${min_rate} | ${max_rate} | ${threshold} -| | ... | ${perf_pdr_loss_acceptance} | ${perf_pdr_loss_acceptance_type} - -| tc07-64B-2t2c-eth-l2xcbase-eth-2vhostvr1024-1vm-ndrdisc -| | [Documentation] -| | ... | [Cfg] DUT runs L2XC switching config with 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 | 2C | NDRDISC -| | ${framesize}= | Set Variable | ${64} -| | ${min_rate}= | Set Variable | ${10000} -| | ${max_rate}= | Calculate pps | ${s_limit} | ${framesize} -| | ${binary_min}= | Set Variable | ${min_rate} -| | ${binary_max}= | Set Variable | ${max_rate} -| | ${threshold}= | Set Variable | ${min_rate} -| | ${dut1_vm_refs}= | Create Dictionary -| | ${dut2_vm_refs}= | Create Dictionary -| | Given Add worker threads and rxqueues to all DUTs | 2 -| | And Add PCI devices to all DUTs -| | And 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} -| | Then Find NDR using binary search and pps | ${framesize} | ${binary_min} -| | ... | ${binary_max} | ${traffic_profile} -| | ... | ${min_rate} | ${max_rate} | ${threshold} - -| tc08-64B-2t2c-eth-l2xcbase-eth-2vhostvr1024-1vm-pdrdisc -| | [Documentation] -| | ... | [Cfg] DUT runs L2XC switching config with 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 | 2C | PDRDISC | SKIP_PATCH -| | ${framesize}= | Set Variable | ${64} -| | ${min_rate}= | Set Variable | ${10000} -| | ${max_rate}= | Calculate pps | ${s_limit} | ${framesize} -| | ${binary_min}= | Set Variable | ${min_rate} -| | ${binary_max}= | Set Variable | ${max_rate} -| | ${threshold}= | Set Variable | ${min_rate} -| | ${dut1_vm_refs}= | Create Dictionary -| | ${dut2_vm_refs}= | Create Dictionary -| | Given Add worker threads and rxqueues to all DUTs | 2 -| | And Add PCI devices to all DUTs -| | And 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} -| | Then Find PDR using binary search and pps | ${framesize} | ${binary_min} -| | ... | ${binary_max} | ${traffic_profile} -| | ... | ${min_rate} | ${max_rate} | ${threshold} -| | ... | ${perf_pdr_loss_acceptance} | ${perf_pdr_loss_acceptance_type} - -| tc09-1518B-2t2c-eth-l2xcbase-eth-2vhostvr1024-1vm-ndrdisc -| | [Documentation] -| | ... | [Cfg] DUT runs L2XC switching config with 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 | 2C | NDRDISC | SKIP_PATCH -| | ${framesize}= | Set Variable | ${1518} -| | ${min_rate}= | Set Variable | ${10000} -| | ${max_rate}= | Calculate pps | ${s_limit} | ${framesize} -| | ${binary_min}= | Set Variable | ${min_rate} -| | ${binary_max}= | Set Variable | ${max_rate} -| | ${threshold}= | Set Variable | ${min_rate} -| | ${dut1_vm_refs}= | Create Dictionary -| | ${dut2_vm_refs}= | Create Dictionary -| | Given Add worker threads and rxqueues to all DUTs | 2 -| | And Add PCI devices to all DUTs -| | And 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} -| | Then Find NDR using binary search and pps | ${framesize} | ${binary_min} -| | ... | ${binary_max} | ${traffic_profile} -| | ... | ${min_rate} | ${max_rate} | ${threshold} - -| tc10-1518B-2t2c-eth-l2xcbase-eth-2vhostvr1024-1vm-pdrdisc -| | [Documentation] -| | ... | [Cfg] DUT runs L2XC switching config with 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 | 2C | PDRDISC | SKIP_PATCH -| | ${framesize}= | Set Variable | ${1518} -| | ${min_rate}= | Set Variable | ${10000} -| | ${max_rate}= | Calculate pps | ${s_limit} | ${framesize} -| | ${binary_min}= | Set Variable | ${min_rate} -| | ${binary_max}= | Set Variable | ${max_rate} -| | ${threshold}= | Set Variable | ${min_rate} -| | ${dut1_vm_refs}= | Create Dictionary -| | ${dut2_vm_refs}= | Create Dictionary -| | Given Add worker threads and rxqueues to all DUTs | 2 -| | And Add PCI devices to all DUTs -| | And 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} -| | Then Find PDR using binary search and pps | ${framesize} | ${binary_min} -| | ... | ${binary_max} | ${traffic_profile} -| | ... | ${min_rate} | ${max_rate} | ${threshold} -| | ... | ${perf_pdr_loss_acceptance} | ${perf_pdr_loss_acceptance_type} - -| tc11-IMIX-2t2c-eth-l2xcbase-eth-2vhostvr1024-1vm-ndrdisc -| | [Documentation] -| | ... | [Cfg] DUT runs L2XC switching config with 2 phy cores, \ -| | ... | 1 receive queue per NIC port. [Ver] Find NDR for IMIX_v4_1 frame \ -| | ... | size using binary search start at 10GE linerate, step 10kpps. -| | ... | IMIX_v4_1 = (28x64B;16x570B;4x1518B) -| | [Tags] | IMIX | 2C | NDRDISC | SKIP_PATCH -| | ${framesize}= | Set Variable | IMIX_v4_1 -| | ${min_rate}= | Set Variable | ${10000} -| | ${max_rate}= | Calculate pps | ${s_limit} | ${framesize} -| | ${binary_min}= | Set Variable | ${min_rate} -| | ${binary_max}= | Set Variable | ${max_rate} -| | ${threshold}= | Set Variable | ${min_rate} -| | ${dut1_vm_refs}= | Create Dictionary -| | ${dut2_vm_refs}= | Create Dictionary -| | Given Add worker threads and rxqueues to all DUTs | 2 -| | And Add PCI devices to all DUTs -| | And 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} -| | Then Find NDR using binary search and pps | ${framesize} | ${binary_min} -| | ... | ${binary_max} | ${traffic_profile} -| | ... | ${min_rate} | ${max_rate} | ${threshold} - -| tc12-IMIX-2t2c-eth-l2xcbase-eth-2vhostvr1024-1vm-pdrdisc -| | [Documentation] -| | ... | [Cfg] DUT runs L2XC switching config with 2 phy cores, \ -| | ... | 1 receive queue per NIC port. [Ver] Find PDR for IMIX_v4_1 frame \ -| | ... | size using binary search start at 10GE linerate, step 10kpps, LT=0.5%. -| | ... | IMIX_v4_1 = (28x64B;16x570B;4x1518B) -| | [Tags] | IMIX | 2C | PDRDISC | SKIP_PATCH -| | ${framesize}= | Set Variable | IMIX_v4_1 -| | ${min_rate}= | Set Variable | ${10000} -| | ${max_rate}= | Calculate pps | ${s_limit} | ${framesize} -| | ${binary_min}= | Set Variable | ${min_rate} -| | ${binary_max}= | Set Variable | ${max_rate} -| | ${threshold}= | Set Variable | ${min_rate} -| | ${dut1_vm_refs}= | Create Dictionary -| | ${dut2_vm_refs}= | Create Dictionary -| | Given Add worker threads and rxqueues to all DUTs | 2 -| | And Add PCI devices to all DUTs -| | And 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} -| | Then Find PDR using binary search and pps | ${framesize} | ${binary_min} -| | ... | ${binary_max} | ${traffic_profile} -| | ... | ${min_rate} | ${max_rate} | ${threshold} -| | ... | ${perf_pdr_loss_acceptance} | ${perf_pdr_loss_acceptance_type} - -| tc13-64B-4t4c-eth-l2xcbase-eth-2vhostvr1024-1vm-ndrdisc -| | [Documentation] -| | ... | [Cfg] DUT runs L2XC switching config with 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 | 4C | NDRDISC -| | ${framesize}= | Set Variable | ${64} -| | ${min_rate}= | Set Variable | ${10000} -| | ${max_rate}= | Calculate pps | ${s_limit} | ${framesize} -| | ${binary_min}= | Set Variable | ${min_rate} -| | ${binary_max}= | Set Variable | ${max_rate} -| | ${threshold}= | Set Variable | ${min_rate} -| | ${dut1_vm_refs}= | Create Dictionary -| | ${dut2_vm_refs}= | Create Dictionary -| | Given Add worker threads and rxqueues to all DUTs | 4 -| | And Add PCI devices to all DUTs -| | And 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} -| | Then Find NDR using binary search and pps | ${framesize} | ${binary_min} -| | ... | ${binary_max} | ${traffic_profile} -| | ... | ${min_rate} | ${max_rate} | ${threshold} - -| tc14-64B-4t4c-eth-l2xcbase-eth-2vhostvr1024-1vm-pdrdisc -| | [Documentation] -| | ... | [Cfg] DUT runs L2XC switching config with 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 | 4C | PDRDISC | SKIP_PATCH -| | ${framesize}= | Set Variable | ${64} -| | ${min_rate}= | Set Variable | ${10000} -| | ${max_rate}= | Calculate pps | ${s_limit} | ${framesize} -| | ${binary_min}= | Set Variable | ${min_rate} -| | ${binary_max}= | Set Variable | ${max_rate} -| | ${threshold}= | Set Variable | ${min_rate} -| | ${dut1_vm_refs}= | Create Dictionary -| | ${dut2_vm_refs}= | Create Dictionary -| | Given Add worker threads and rxqueues to all DUTs | 4 -| | And Add PCI devices to all DUTs -| | And 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} -| | Then Find PDR using binary search and pps | ${framesize} | ${binary_min} -| | ... | ${binary_max} | ${traffic_profile} -| | ... | ${min_rate} | ${max_rate} | ${threshold} -| | ... | ${perf_pdr_loss_acceptance} | ${perf_pdr_loss_acceptance_type} - -| tc15-1518B-4t4c-eth-l2xcbase-eth-2vhostvr1024-1vm-ndrdisc -| | [Documentation] -| | ... | [Cfg] DUT runs L2XC switching config with 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 | 4C | NDRDISC | SKIP_PATCH -| | ${framesize}= | Set Variable | ${1518} -| | ${min_rate}= | Set Variable | ${10000} -| | ${max_rate}= | Calculate pps | ${s_limit} | ${framesize} -| | ${binary_min}= | Set Variable | ${min_rate} -| | ${binary_max}= | Set Variable | ${max_rate} -| | ${threshold}= | Set Variable | ${min_rate} -| | ${dut1_vm_refs}= | Create Dictionary -| | ${dut2_vm_refs}= | Create Dictionary -| | Given Add worker threads and rxqueues to all DUTs | 4 -| | And Add PCI devices to all DUTs -| | And 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} -| | Then Find NDR using binary search and pps | ${framesize} | ${binary_min} -| | ... | ${binary_max} | ${traffic_profile} -| | ... | ${min_rate} | ${max_rate} | ${threshold} - -| tc16-1518B-4t4c-eth-l2xcbase-eth-2vhostvr1024-1vm-pdrdisc -| | [Documentation] -| | ... | [Cfg] DUT runs L2XC switching config with 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 | 4C | PDRDISC | SKIP_PATCH -| | ${framesize}= | Set Variable | ${1518} -| | ${min_rate}= | Set Variable | ${10000} -| | ${max_rate}= | Calculate pps | ${s_limit} | ${framesize} -| | ${binary_min}= | Set Variable | ${min_rate} -| | ${binary_max}= | Set Variable | ${max_rate} -| | ${threshold}= | Set Variable | ${min_rate} -| | ${dut1_vm_refs}= | Create Dictionary -| | ${dut2_vm_refs}= | Create Dictionary -| | Given Add worker threads and rxqueues to all DUTs | 4 -| | And Add PCI devices to all DUTs -| | And 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} -| | Then Find PDR using binary search and pps | ${framesize} | ${binary_min} -| | ... | ${binary_max} | ${traffic_profile} -| | ... | ${min_rate} | ${max_rate} | ${threshold} -| | ... | ${perf_pdr_loss_acceptance} | ${perf_pdr_loss_acceptance_type} - -| tc17-IMIX-4t4c-eth-l2xcbase-eth-2vhostvr1024-1vm-ndrdisc -| | [Documentation] -| | ... | [Cfg] DUT runs L2XC switching config with 4 phy cores, \ -| | ... | 2 receive queues per NIC port. [Ver] Find NDR for IMIX_v4_1 frame \ -| | ... | size using binary search start at 10GE linerate, step 10kpps. -| | ... | IMIX_v4_1 = (28x64B;16x570B;4x1518B) -| | [Tags] | IMIX | 4C | NDRDISC | SKIP_PATCH -| | ${framesize}= | Set Variable | IMIX_v4_1 -| | ${min_rate}= | Set Variable | ${10000} -| | ${max_rate}= | Calculate pps | ${s_limit} | ${framesize} -| | ${binary_min}= | Set Variable | ${min_rate} -| | ${binary_max}= | Set Variable | ${max_rate} -| | ${threshold}= | Set Variable | ${min_rate} -| | ${dut1_vm_refs}= | Create Dictionary -| | ${dut2_vm_refs}= | Create Dictionary -| | Given Add worker threads and rxqueues to all DUTs | 4 -| | And Add PCI devices to all DUTs -| | And 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} -| | Then Find NDR using binary search and pps | ${framesize} | ${binary_min} -| | ... | ${binary_max} | ${traffic_profile} -| | ... | ${min_rate} | ${max_rate} | ${threshold} - -| tc18-IMIX-4t4c-eth-l2xcbase-eth-2vhostvr1024-1vm-pdrdisc -| | [Documentation] -| | ... | [Cfg] DUT runs L2XC switching config with 4 phy cores, \ -| | ... | 2 receive queues per NIC port. [Ver] Find PDR for IMIX_v4_1 frame \ -| | ... | size using binary search start at 10GE linerate, step 10kpps, LT=0.5%. -| | ... | IMIX_v4_1 = (28x64B;16x570B;4x1518B) -| | [Tags] | IMIX | 4C | PDRDISC | SKIP_PATCH -| | ${framesize}= | Set Variable | IMIX_v4_1 -| | ${min_rate}= | Set Variable | ${10000} -| | ${max_rate}= | Calculate pps | ${s_limit} | ${framesize} -| | ${binary_min}= | Set Variable | ${min_rate} -| | ${binary_max}= | Set Variable | ${max_rate} -| | ${threshold}= | Set Variable | ${min_rate} -| | ${dut1_vm_refs}= | Create Dictionary -| | ${dut2_vm_refs}= | Create Dictionary -| | Given Add worker threads and rxqueues to all DUTs | 4 -| | And Add PCI devices to all DUTs -| | And 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} -| | Then Find PDR using binary search and pps | ${framesize} | ${binary_min} -| | ... | ${binary_max} | ${traffic_profile} -| | ... | ${min_rate} | ${max_rate} | ${threshold} -| | ... | ${perf_pdr_loss_acceptance} | ${perf_pdr_loss_acceptance_type} diff --git a/tests/vpp/perf/vm_vhost/10ge2p1x520-eth-l2xcbase-eth-2vhostvr256-1vm-cfsrr1-mrr.robot b/tests/vpp/perf/vm_vhost/10ge2p1x520-eth-l2xcbase-eth-2vhostvr256-1vm-cfsrr1-mrr.robot new file mode 100644 index 0000000000..fcbc66ee2f --- /dev/null +++ b/tests/vpp/perf/vm_vhost/10ge2p1x520-eth-l2xcbase-eth-2vhostvr256-1vm-cfsrr1-mrr.robot @@ -0,0 +1,144 @@ +# Copyright (c) 2018 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 | MRR +| ... | NIC_Intel-X520-DA2 | ETH | L2XCFWD | BASE | VHOST | VM | VHOST_256 +| ... | CFS_OPT +| ... +| 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 mrr test with vhost and VM with dpdk-testpmd +| ... | dut1_node=${dut1} | dut1_vm_refs=${dut1_vm_refs} +| ... | dut2_node=${dut2} | dut2_vm_refs=${dut2_vm_refs} +| ... +| Test Template | Local Template +| ... +| Documentation | *Raw results 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:* In MaxReceivedRate test TG sends traffic +| ... | at line rate and reports total received/sent packets over trial period. +| ... | 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 *** +| ${perf_qemu_qsz}= | 256 +# 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 *** +| Local Template +| | [Documentation] | FIXME. +| | [Arguments] | ${framesize} | ${phy_cores} | ${rxq}=${None} +| | ... +| | Set Test Variable | ${use_tuned_cfs} | ${True} +| | ${dut1_vm_refs}= | Create Dictionary +| | ${dut2_vm_refs}= | Create Dictionary +| | Set Test Variable | ${dut1_vm_refs} +| | Set Test Variable | ${dut2_vm_refs} +| | ... +| | Given Add worker threads and rxqueues to all DUTs | ${phy_cores} | ${rxq} +| | And Add PCI devices to all DUTs +| | ${max_rate} | ${jumbo} = | Get Max Rate And Jumbo And Handle Multi Seg +| | ... | ${s_limit} | ${framesize} +| | 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 +| | ... | jumbo_frames=${jumbo} +| | 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 +| | ... | jumbo_frames=${jumbo} +| | Set To Dictionary | ${dut2_vm_refs} | DUT2_VM1 | ${vm2} +| | Setup Scheduler Policy for Vpp On All DUTs +| | Then Traffic should pass with maximum rate +| | ... | ${max_rate}pps | ${framesize} | ${traffic_profile} + +*** Test Cases *** +| tc01-64B-1c-eth-l2xcbase-eth-2vhostvr256-1vm-cfsrr1-mrr +| | [Tags] | 64B | 1C +| | framesize=${64} | phy_cores=${1} + +| tc02-64B-2c-eth-l2xcbase-eth-2vhostvr256-1vm-cfsrr1-mrr +| | [Tags] | 64B | 2C +| | framesize=${64} | phy_cores=${2} + +| tc03-64B-4c-eth-l2xcbase-eth-2vhostvr256-1vm-cfsrr1-mrr +| | [Tags] | 64B | 4C +| | framesize=${64} | phy_cores=${4} + +| tc04-1518B-1c-eth-l2xcbase-eth-2vhostvr256-1vm-cfsrr1-mrr +| | [Tags] | 1518B | 1C +| | framesize=${1518} | phy_cores=${1} + +| tc05-1518B-2c-eth-l2xcbase-eth-2vhostvr256-1vm-cfsrr1-mrr +| | [Tags] | 1518B | 2C +| | framesize=${1518} | phy_cores=${2} + +| tc06-1518B-4c-eth-l2xcbase-eth-2vhostvr256-1vm-cfsrr1-mrr +| | [Tags] | 1518B | 4C +| | framesize=${1518} | phy_cores=${4} + +| tc07-9000B-1c-eth-l2xcbase-eth-2vhostvr256-1vm-cfsrr1-mrr +| | [Tags] | 9000B | 1C +| | framesize=${9000} | phy_cores=${1} + +| tc08-9000B-2c-eth-l2xcbase-eth-2vhostvr256-1vm-cfsrr1-mrr +| | [Tags] | 9000B | 2C +| | framesize=${9000} | phy_cores=${2} + +| tc09-9000B-4c-eth-l2xcbase-eth-2vhostvr256-1vm-cfsrr1-mrr +| | [Tags] | 9000B | 4C +| | framesize=${9000} | phy_cores=${4} + +| tc10-IMIX-1c-eth-l2xcbase-eth-2vhostvr256-1vm-cfsrr1-mrr +| | [Tags] | IMIX | 1C +| | framesize=IMIX_v4_1 | phy_cores=${1} + +| tc11-IMIX-2c-eth-l2xcbase-eth-2vhostvr256-1vm-cfsrr1-mrr +| | [Tags] | IMIX | 2C +| | framesize=IMIX_v4_1 | phy_cores=${2} + +| tc12-IMIX-4c-eth-l2xcbase-eth-2vhostvr256-1vm-cfsrr1-mrr +| | [Tags] | IMIX | 4C +| | framesize=IMIX_v4_1 | phy_cores=${4} diff --git a/tests/vpp/perf/vm_vhost/10ge2p1x520-eth-l2xcbase-eth-2vhostvr256-1vm-cfsrr1-ndrpdr.robot b/tests/vpp/perf/vm_vhost/10ge2p1x520-eth-l2xcbase-eth-2vhostvr256-1vm-cfsrr1-ndrpdr.robot new file mode 100644 index 0000000000..1a872aacfe --- /dev/null +++ b/tests/vpp/perf/vm_vhost/10ge2p1x520-eth-l2xcbase-eth-2vhostvr256-1vm-cfsrr1-ndrpdr.robot @@ -0,0 +1,150 @@ +# Copyright (c) 2018 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 | NDRPDR +| ... | NIC_Intel-X520-DA2 | ETH | L2XCFWD | BASE | VHOST | VM | VHOST_256 +| ... | CFS_OPT +| ... +| 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} +| ... +| Test Template | Local Template +| ... +| 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 MLRsearch library. +| ... | 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 *** +| ${perf_qemu_qsz}= | 256 +# 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 *** +| Local Template +| | [Documentation] | FIXME. +| | [Arguments] | ${framesize} | ${phy_cores} | ${rxq}=${None} +| | ... +| | Set Test Variable | ${use_tuned_cfs} | ${True} +| | Set Test Variable | ${framesize} +| | Set Test Variable | ${min_rate} | ${10000} +| | ${dut1_vm_refs}= | Create Dictionary +| | ${dut2_vm_refs}= | Create Dictionary +| | Set Test Variable | ${dut1_vm_refs} +| | Set Test Variable | ${dut2_vm_refs} +| | ... +| | Given Add worker threads and rxqueues to all DUTs | ${phy_cores} | ${rxq} +| | And Add PCI devices to all DUTs +| | ${max_rate} | ${jumbo} = | Get Max Rate And Jumbo And Handle Multi Seg +| | ... | ${s_limit} | ${framesize} +| | 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 +| | ... | jumbo_frames=${jumbo} +| | 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 +| | ... | jumbo_frames=${jumbo} +| | Set To Dictionary | ${dut2_vm_refs} | DUT2_VM1 | ${vm2} +| | Setup Scheduler Policy for Vpp On All DUTs +| | Then Find NDR and PDR intervals using optimized search +| | ... | ${framesize} | ${traffic_profile} | ${min_rate} | ${max_rate} + +*** Test Cases *** +| tc01-64B-1c-eth-l2xcbase-eth-2vhostvr256-1vm-cfsrr1-ndrpdr +| | [Tags] | 64B | 1C +| | framesize=${64} | phy_cores=${1} + +| tc02-64B-2c-eth-l2xcbase-eth-2vhostvr256-1vm-cfsrr1-ndrpdr +| | [Tags] | 64B | 2C +| | framesize=${64} | phy_cores=${2} + +| tc03-64B-4c-eth-l2xcbase-eth-2vhostvr256-1vm-cfsrr1-ndrpdr +| | [Tags] | 64B | 4C +| | framesize=${64} | phy_cores=${4} + +| tc04-1518B-1c-eth-l2xcbase-eth-2vhostvr256-1vm-cfsrr1-ndrpdr +| | [Tags] | 1518B | 1C +| | framesize=${1518} | phy_cores=${1} + +| tc05-1518B-2c-eth-l2xcbase-eth-2vhostvr256-1vm-cfsrr1-ndrpdr +| | [Tags] | 1518B | 2C +| | framesize=${1518} | phy_cores=${2} + +| tc06-1518B-4c-eth-l2xcbase-eth-2vhostvr256-1vm-cfsrr1-ndrpdr +| | [Tags] | 1518B | 4C +| | framesize=${1518} | phy_cores=${4} + +| tc07-9000B-1c-eth-l2xcbase-eth-2vhostvr256-1vm-cfsrr1-ndrpdr +| | [Tags] | 9000B | 1C +| | framesize=${9000} | phy_cores=${1} + +| tc08-9000B-2c-eth-l2xcbase-eth-2vhostvr256-1vm-cfsrr1-ndrpdr +| | [Tags] | 9000B | 2C +| | framesize=${9000} | phy_cores=${2} + +| tc09-9000B-4c-eth-l2xcbase-eth-2vhostvr256-1vm-cfsrr1-ndrpdr +| | [Tags] | 9000B | 4C +| | framesize=${9000} | phy_cores=${4} + +| tc10-IMIX-1c-eth-l2xcbase-eth-2vhostvr256-1vm-cfsrr1-ndrpdr +| | [Tags] | IMIX | 1C +| | framesize=IMIX_v4_1 | phy_cores=${1} + +| tc11-IMIX-2c-eth-l2xcbase-eth-2vhostvr256-1vm-cfsrr1-ndrpdr +| | [Tags] | IMIX | 2C +| | framesize=IMIX_v4_1 | phy_cores=${2} + +| tc12-IMIX-4c-eth-l2xcbase-eth-2vhostvr256-1vm-cfsrr1-ndrpdr +| | [Tags] | IMIX | 4C +| | framesize=IMIX_v4_1 | phy_cores=${4} 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 deleted file mode 100644 index 567c0b3399..0000000000 --- a/tests/vpp/perf/vm_vhost/10ge2p1x520-eth-l2xcbase-eth-2vhostvr256-1vm-cfsrr1-ndrpdrdisc.robot +++ /dev/null @@ -1,186 +0,0 @@ -# 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 | ETH | L2XCFWD | BASE | VHOST | VM | VHOST_256 -| ... | CFS_OPT -| ... -| 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} -| ... -| Test Template | Local template -| ... -| 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 *** -| ${perf_qemu_qsz}= | 256 -| ${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 *** -| Local template -| | [Arguments] | ${phy_cores} | ${framesize} | ${search_type} | ${rxq}=${None} -| | ... | ${min_rate}=${10000} -| | ... -| | 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 worker threads and rxqueues to all DUTs | ${phy_cores} | ${rxq} -| | And Add PCI devices to all DUTs -| | And Run Keyword If | ${get_framesize} < ${1522} | Add no multi seg to all DUTs -| | And Apply startup configuration on all VPP DUTs -| | When Initialize 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} -| | Setup Scheduler Policy for Vpp On All DUTs -| | 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 -| | [Tags] | 64B | 1C | NDRDISC -| | phy_cores=${1} | framesize=${64} | search_type=NDR - -| tc02-64B-1t1c-eth-l2xcbase-eth-2vhostvr256-1vm-cfsrr1-pdrdisc -| | [Tags] | 64B | 1C | PDRDISC | SKIP_PATCH -| | phy_cores=${1} | framesize=${64} | search_type=PDR - -| tc03-1518B-1t1c-etc-l2xcbase-eth-2vhostvr256-1vm-cfsrr1-ndrdisc -| | [Tags] | 1518B | 1C | NDRDISC -| | phy_cores=${1} | framesize=${1518} | search_type=NDR - -| tc04-1518B-1t1c-eth-l2xcbase-eth-2vhostvr256-1vm-cfsrr1-pdrdisc -| | [Tags] | 1518B | 1C | PDRDISC | SKIP_PATCH -| | phy_cores=${1} | framesize=${1518} | search_type=PDR - -| tc05-IMIX-1t1c-eth-l2xcbase-eth-2vhostvr256-1vm-cfsrr1-ndrdisc -| | [Tags] | IMIX | 1C | NDRDISC -| | phy_cores=${1} | framesize=IMIX_v4_1 | search_type=NDR - -| tc06-IMIX-1t1c-eth-l2xcbase-eth-2vhostvr256-1vm-cfsrr1-pdrdisc -| | [Tags] | IMIX | 1C | PDRDISC | SKIP_PATCH -| | phy_cores=${1} | framesize=IMIX_v4_1 | search_type=PDR - -| tc07-64B-2t2c-eth-l2xcbase-eth-2vhostvr256-1vm-cfsrr1-ndrdisc -| | [Tags] | 64B | 2C | NDRDISC -| | phy_cores=${2} | framesize=${64} | search_type=NDR - -| tc08-64B-2t2c-eth-l2xcbase-eth-2vhostvr256-1vm-cfsrr1-pdrdisc -| | [Tags] | 64B | 2C | PDRDISC | SKIP_PATCH -| | phy_cores=${2} | framesize=${64} | search_type=PDR - -| tc09-1518B-2t2c-eth-l2xcbase-eth-2vhostvr256-1vm-cfsrr1-ndrdisc -| | [Tags] | 1518B | 2C | NDRDISC | SKIP_PATCH -| | phy_cores=${2} | framesize=${1518} | search_type=NDR - -| tc10-1518B-2t2c-eth-l2xcbase-eth-2vhostvr256-1vm-cfsrr1-pdrdisc -| | [Tags] | 1518B | 2C | PDRDISC | SKIP_PATCH -| | phy_cores=${2} | framesize=${1518} | search_type=PDR - -| tc11-IMIX-2t2c-eth-l2xcbase-eth-2vhostvr256-1vm-cfsrr1-ndrdisc -| | [Tags] | IMIX | 2C | NDRDISC | SKIP_PATCH -| | phy_cores=${2} | framesize=IMIX_v4_1 | search_type=NDR - -| tc12-IMIX-2t2c-eth-l2xcbase-eth-2vhostvr256-1vm-cfsrr1-pdrdisc -| | [Tags] | IMIX | 2C | PDRDISC | SKIP_PATCH -| | phy_cores=${2} | framesize=IMIX_v4_1 | search_type=PDR - -| tc13-64B-4t4c-eth-l2xcbase-eth-2vhostvr256-1vm-cfsrr1-ndrdisc -| | [Tags] | 64B | 4C | NDRDISC -| | phy_cores=${4} | framesize=${64} | search_type=NDR - -| tc14-64B-4t4c-eth-l2xcbase-eth-2vhostvr256-1vm-cfsrr1-pdrdisc -| | [Tags] | 64B | 4C | PDRDISC | SKIP_PATCH -| | phy_cores=${4} | framesize=${64} | search_type=PDR - -| tc15-1518B-4t4c-eth-l2xcbase-eth-2vhostvr256-1vm-cfsrr1-ndrdisc -| | [Tags] | 1518B | 4C | NDRDISC | SKIP_PATCH -| | phy_cores=${4} | framesize=${1518} | search_type=NDR - -| tc16-1518B-4t4c-eth-l2xcbase-eth-2vhostvr256-1vm-cfsrr1-pdrdisc -| | [Tags] | 1518B | 4C | PDRDISC | SKIP_PATCH -| | phy_cores=${4} | framesize=${1518} | search_type=PDR - -| tc17-IMIX-4t4c-eth-l2xcbase-eth-2vhostvr256-1vm-cfsrr1-ndrdisc -| | [Tags] | IMIX | 4C | NDRDISC | SKIP_PATCH -| | phy_cores=${4} | framesize=IMIX_v4_1 | search_type=NDR - -| tc18-IMIX-4t4c-eth-l2xcbase-eth-2vhostvr256-1vm-cfsrr1-pdrdisc -| | [Tags] | IMIX | 4C | PDRDISC | SKIP_PATCH -| | phy_cores=${4} | framesize=IMIX_v4_1 | search_type=PDR diff --git a/tests/vpp/perf/vm_vhost/10ge2p1x520-eth-l2xcbase-eth-2vhostvr256-1vm-mrr.robot b/tests/vpp/perf/vm_vhost/10ge2p1x520-eth-l2xcbase-eth-2vhostvr256-1vm-mrr.robot index f0e13ac986..89f265ae0b 100644 --- a/tests/vpp/perf/vm_vhost/10ge2p1x520-eth-l2xcbase-eth-2vhostvr256-1vm-mrr.robot +++ b/tests/vpp/perf/vm_vhost/10ge2p1x520-eth-l2xcbase-eth-2vhostvr256-1vm-mrr.robot @@ -27,7 +27,7 @@ | ... | dut1_node=${dut1} | dut1_vm_refs=${dut1_vm_refs} | ... | dut2_node=${dut2} | dut2_vm_refs=${dut2_vm_refs} | ... -| Test Template | Local template +| Test Template | Local Template | ... | Documentation | *Raw results L2XC test cases with vhost* | ... @@ -61,7 +61,7 @@ | ${traffic_profile}= | trex-sl-3n-ethip4-ip4src254 *** Keywords *** -| Local template +| Local Template | | [Documentation] | | ... | [Cfg] DUT runs L2XC switching config. | | ... | Each DUT uses ${phy_cores} physical core(s) for worker threads. @@ -76,79 +76,74 @@ | | ... | | [Arguments] | ${framesize} | ${phy_cores} | ${rxq}=${None} | | ... -| | Set Test Variable | ${framesize} -| | ${get_framesize}= | Get Frame Size | ${framesize} -| | ${max_rate}= | Calculate pps | ${s_limit} | ${get_framesize} | | ${dut1_vm_refs}= | Create Dictionary | | ${dut2_vm_refs}= | Create Dictionary | | Set Test Variable | ${dut1_vm_refs} | | Set Test Variable | ${dut2_vm_refs} -| | ${jumbo_frames}= | Set Variable If | ${get_framesize} < ${1522} -| | ... | ${False} | ${True} | | ... | | Given Add worker threads and rxqueues to all DUTs | ${phy_cores} | ${rxq} | | And Add PCI devices to all DUTs -| | And Run Keyword If | ${get_framesize} < ${1522} -| | ... | Add no multi seg to all DUTs +| | ${max_rate} | ${jumbo} = | Get Max Rate And Jumbo And Handle Multi Seg +| | ... | ${s_limit} | ${framesize} | | 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 -| | ... | jumbo_frames=${jumbo_frames} +| | ... | jumbo_frames=${jumbo} | | 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 -| | ... | jumbo_frames=${jumbo_frames} +| | ... | jumbo_frames=${jumbo} | | Set To Dictionary | ${dut2_vm_refs} | DUT2_VM1 | ${vm2} | | Then Traffic should pass with maximum rate | | ... | ${max_rate}pps | ${framesize} | ${traffic_profile} *** Test Cases *** -| tc01-64B-1t1c-eth-l2xcbase-eth-2vhostvr256-1vm-mrr +| tc01-64B-1c-eth-l2xcbase-eth-2vhostvr256-1vm-mrr | | [Tags] | 64B | 1C | | framesize=${64} | phy_cores=${1} -| tc02-1518B-1t1c-eth-l2xcbase-eth-2vhostvr256-1vm-mrr -| | [Tags] | 1518B | 1C -| | framesize=${1518} | phy_cores=${1} - -| tc03-9000B-1t1c-eth-l2xcbase-eth-2vhostvr256-1vm-mrr -| | [Tags] | 9000B | 1C -| | framesize=${9000} | phy_cores=${1} - -| tc04-IMIX-1t1c-eth-l2xcbase-eth-2vhostvr256-1vm-mrr -| | [Tags] | IMIX | 1C -| | framesize=IMIX_v4_1 | phy_cores=${1} - -| tc05-64B-2t2c-eth-l2xcbase-eth-2vhostvr256-1vm-mrr +| tc02-64B-2c-eth-l2xcbase-eth-2vhostvr256-1vm-mrr | | [Tags] | 64B | 2C | | framesize=${64} | phy_cores=${2} -| tc06-1518B-2t2c-eth-l2xcbase-eth-2vhostvr256-1vm-mrr -| | [Tags] | 1518B | 2C -| | framesize=${1518} | phy_cores=${2} - -| tc07-9000B-2t2c-eth-l2xcbase-eth-2vhostvr256-1vm-mrr -| | [Tags] | 9000B | 2C -| | framesize=${9000} | phy_cores=${2} - -| tc08-IMIX-2t2c-eth-l2xcbase-eth-2vhostvr256-1vm-mrr -| | [Tags] | IMIX | 2C -| | framesize=IMIX_v4_1 | phy_cores=${2} - -| tc09-64B-4t4c-eth-l2xcbase-eth-2vhostvr256-1vm-mrr +| tc03-64B-4c-eth-l2xcbase-eth-2vhostvr256-1vm-mrr | | [Tags] | 64B | 4C | | framesize=${64} | phy_cores=${4} -| tc10-1518B-4t4c-eth-l2xcbase-eth-2vhostvr256-1vm-mrr +| tc04-1518B-1c-eth-l2xcbase-eth-2vhostvr256-1vm-mrr +| | [Tags] | 1518B | 1C +| | framesize=${1518} | phy_cores=${1} + +| tc05-1518B-2c-eth-l2xcbase-eth-2vhostvr256-1vm-mrr +| | [Tags] | 1518B | 2C +| | framesize=${1518} | phy_cores=${2} + +| tc06-1518B-4c-eth-l2xcbase-eth-2vhostvr256-1vm-mrr | | [Tags] | 1518B | 4C | | framesize=${1518} | phy_cores=${4} -| tc11-9000B-4t4c-eth-l2xcbase-eth-2vhostvr256-1vm-mrr +| tc07-9000B-1c-eth-l2xcbase-eth-2vhostvr256-1vm-mrr +| | [Tags] | 9000B | 1C +| | framesize=${9000} | phy_cores=${1} + +| tc08-9000B-2c-eth-l2xcbase-eth-2vhostvr256-1vm-mrr +| | [Tags] | 9000B | 2C +| | framesize=${9000} | phy_cores=${2} + +| tc09-9000B-4c-eth-l2xcbase-eth-2vhostvr256-1vm-mrr | | [Tags] | 9000B | 4C | | framesize=${9000} | phy_cores=${4} -| tc12-IMIX-4t4c-eth-l2xcbase-eth-2vhostvr256-1vm-mrr +| tc10-IMIX-1c-eth-l2xcbase-eth-2vhostvr256-1vm-mrr +| | [Tags] | IMIX | 1C +| | framesize=IMIX_v4_1 | phy_cores=${1} + +| tc11-IMIX-2c-eth-l2xcbase-eth-2vhostvr256-1vm-mrr +| | [Tags] | IMIX | 2C +| | framesize=IMIX_v4_1 | phy_cores=${2} + +| tc12-IMIX-4c-eth-l2xcbase-eth-2vhostvr256-1vm-mrr | | [Tags] | IMIX | 4C | | framesize=IMIX_v4_1 | phy_cores=${4} diff --git a/tests/vpp/perf/vm_vhost/10ge2p1x520-eth-l2xcbase-eth-2vhostvr256-1vm-ndrpdr.robot b/tests/vpp/perf/vm_vhost/10ge2p1x520-eth-l2xcbase-eth-2vhostvr256-1vm-ndrpdr.robot new file mode 100644 index 0000000000..728e25779c --- /dev/null +++ b/tests/vpp/perf/vm_vhost/10ge2p1x520-eth-l2xcbase-eth-2vhostvr256-1vm-ndrpdr.robot @@ -0,0 +1,154 @@ +# Copyright (c) 2018 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 | NDRPDR +| ... | NIC_Intel-X520-DA2 | ETH | L2XCFWD | BASE | VHOST | 1VM | VHOST_256 +| ... +| 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} +| ... +| Test Template | Local Template +| ... +| Documentation | *RFC2544: Pkt 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 MLRsearch library. +| ... | Test packets are generated by TG on links to DUTs. TG traffic profile +| ... | contains two L3 flow-groups (flow-group per direction, 254 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. + +*** Variables *** +| ${perf_qemu_qsz}= | 256 +# Socket names +| ${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 + +*** Keywords *** +| Local Template +| | [Documentation] +| | ... | [Cfg] DUT runs L2XC switching config. +| | ... | Each DUT uses ${phy_cores} physical core(s) for worker threads. +| | ... | [Ver] Measure NDR and PDR values using MLRsearch algorithm.\ +| | ... +| | ... | *Arguments:* +| | ... | - framesize - Framesize in Bytes in integer or string (IMIX_v4_1). +| | ... | Type: integer, string +| | ... | - phy_cores - Number of physical cores. Type: integer +| | ... | - rxq - Number of RX queues, default value: ${None}. Type: integer +| | ... +| | [Arguments] | ${framesize} | ${phy_cores} | ${rxq}=${None} +| | ... +| | Set Test Variable | ${framesize} +| | Set Test Variable | ${min_rate} | ${10000} +| | ${dut1_vm_refs}= | Create Dictionary +| | ${dut2_vm_refs}= | Create Dictionary +| | Set Test Variable | ${dut1_vm_refs} +| | Set Test Variable | ${dut2_vm_refs} +| | ... +| | Given Add worker threads and rxqueues to all DUTs | ${phy_cores} | ${rxq} +| | And Add PCI devices to all DUTs +| | ${max_rate} | ${jumbo} = | Get Max Rate And Jumbo And Handle Multi Seg +| | ... | ${s_limit} | ${framesize} +| | 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 +| | ... | jumbo_frames=${jumbo} +| | 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 +| | ... | jumbo_frames=${jumbo} +| | Set To Dictionary | ${dut2_vm_refs} | DUT2_VM1 | ${vm2} +| | Then Find NDR and PDR intervals using optimized search +| | ... | ${framesize} | ${traffic_profile} | ${min_rate} | ${max_rate} + +*** Test Cases *** +| tc01-64B-1c-eth-l2xcbase-eth-2vhostvr256-1vm-ndrpdr +| | [Tags] | 64B | 1C +| | framesize=${64} | phy_cores=${1} + +| tc02-64B-2c-eth-l2xcbase-eth-2vhostvr256-1vm-ndrpdr +| | [Tags] | 64B | 2C +| | framesize=${64} | phy_cores=${2} + +| tc03-64B-4c-eth-l2xcbase-eth-2vhostvr256-1vm-ndrpdr +| | [Tags] | 64B | 4C +| | framesize=${64} | phy_cores=${4} + +| tc04-1518B-1c-eth-l2xcbase-eth-2vhostvr256-1vm-ndrpdr +| | [Tags] | 1518B | 1C +| | framesize=${1518} | phy_cores=${1} + +| tc05-1518B-2c-eth-l2xcbase-eth-2vhostvr256-1vm-ndrpdr +| | [Tags] | 1518B | 2C +| | framesize=${1518} | phy_cores=${2} + +| tc06-1518B-4c-eth-l2xcbase-eth-2vhostvr256-1vm-ndrpdr +| | [Tags] | 1518B | 4C +| | framesize=${1518} | phy_cores=${4} + +| tc07-9000B-1c-eth-l2xcbase-eth-2vhostvr256-1vm-ndrpdr +| | [Tags] | 9000B | 1C +| | framesize=${9000} | phy_cores=${1} + +| tc08-9000B-2c-eth-l2xcbase-eth-2vhostvr256-1vm-ndrpdr +| | [Tags] | 9000B | 2C +| | framesize=${9000} | phy_cores=${2} + +| tc09-9000B-4c-eth-l2xcbase-eth-2vhostvr256-1vm-ndrpdr +| | [Tags] | 9000B | 4C +| | framesize=${9000} | phy_cores=${4} + +| tc10-IMIX-1c-eth-l2xcbase-eth-2vhostvr256-1vm-ndrpdr +| | [Tags] | IMIX | 1C +| | framesize=IMIX_v4_1 | phy_cores=${1} + +| tc11-IMIX-2c-eth-l2xcbase-eth-2vhostvr256-1vm-ndrpdr +| | [Tags] | IMIX | 2C +| | framesize=IMIX_v4_1 | phy_cores=${2} + +| tc12-IMIX-4c-eth-l2xcbase-eth-2vhostvr256-1vm-ndrpdr +| | [Tags] | IMIX | 4C +| | framesize=IMIX_v4_1 | phy_cores=${4} 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 deleted file mode 100644 index 1e84646d93..0000000000 --- a/tests/vpp/perf/vm_vhost/10ge2p1x520-eth-l2xcbase-eth-2vhostvr256-1vm-ndrpdrdisc.robot +++ /dev/null @@ -1,182 +0,0 @@ -# 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 | ETH | L2XCFWD | BASE | VHOST | VM | VHOST_256 -| ... -| 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} -| ... -| Test Template | Local template -| ... -| 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 *** -| ${perf_qemu_qsz}= | 256 -| ${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 *** -| Local template -| | [Arguments] | ${phy_cores} | ${framesize} | ${search_type} | ${rxq}=${None} -| | ... | ${min_rate}=${10000} -| | ... -| | 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 worker threads and rxqueues to all DUTs | ${phy_cores} | ${rxq} -| | And Add PCI devices to all DUTs -| | And Run Keyword If | ${get_framesize} < ${1522} | Add no multi seg to all DUTs -| | And Apply startup configuration on all VPP DUTs -| | When Initialize 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 -| | [Tags] | 64B | 1C | NDRDISC -| | phy_cores=${1} | framesize=${64} | search_type=NDR - -| tc02-64B-1t1c-eth-l2xcbase-eth-2vhostvr256-1vm-pdrdisc -| | [Tags] | 64B | 1C | PDRDISC | SKIP_PATCH -| | phy_cores=${1} | framesize=${64} | search_type=PDR - -| tc03-1518B-1t1c-etc-l2xcbase-eth-2vhostvr256-1vm-ndrdisc -| | [Tags] | 1518B | 1C | NDRDISC -| | phy_cores=${1} | framesize=${1518} | search_type=NDR - -| tc04-1518B-1t1c-eth-l2xcbase-eth-2vhostvr256-1vm-pdrdisc -| | [Tags] | 1518B | 1C | PDRDISC | SKIP_PATCH -| | phy_cores=${1} | framesize=${1518} | search_type=PDR - -| tc05-IMIX-1t1c-eth-l2xcbase-eth-2vhostvr256-1vm-ndrdisc -| | [Tags] | IMIX | 1C | NDRDISC -| | phy_cores=${1} | framesize=IMIX_v4_1 | search_type=NDR - -| tc06-IMIX-1t1c-eth-l2xcbase-eth-2vhostvr256-1vm-pdrdisc -| | [Tags] | IMIX | 1C | PDRDISC | SKIP_PATCH -| | phy_cores=${1} | framesize=IMIX_v4_1 | search_type=PDR - -| tc07-64B-2t2c-eth-l2xcbase-eth-2vhostvr256-1vm-ndrdisc -| | [Tags] | 64B | 2C | NDRDISC -| | phy_cores=${2} | framesize=${64} | search_type=NDR - -| tc08-64B-2t2c-eth-l2xcbase-eth-2vhostvr256-1vm-pdrdisc -| | [Tags] | 64B | 2C | PDRDISC | SKIP_PATCH -| | phy_cores=${2} | framesize=${64} | search_type=PDR - -| tc09-1518B-2t2c-eth-l2xcbase-eth-2vhostvr256-1vm-ndrdisc -| | [Tags] | 1518B | 2C | NDRDISC | SKIP_PATCH -| | phy_cores=${2} | framesize=${1518} | search_type=NDR - -| tc10-1518B-2t2c-eth-l2xcbase-eth-2vhostvr256-1vm-pdrdisc -| | [Tags] | 1518B | 2C | PDRDISC | SKIP_PATCH -| | phy_cores=${2} | framesize=${1518} | search_type=PDR - -| tc11-IMIX-2t2c-eth-l2xcbase-eth-2vhostvr256-1vm-ndrdisc -| | [Tags] | IMIX | 2C | NDRDISC | SKIP_PATCH -| | phy_cores=${2} | framesize=IMIX_v4_1 | search_type=NDR - -| tc12-IMIX-2t2c-eth-l2xcbase-eth-2vhostvr256-1vm-pdrdisc -| | [Tags] | IMIX | 2C | PDRDISC | SKIP_PATCH -| | phy_cores=${2} | framesize=IMIX_v4_1 | search_type=PDR - -| tc13-64B-4t4c-eth-l2xcbase-eth-2vhostvr256-1vm-ndrdisc -| | [Tags] | 64B | 4C | NDRDISC -| | phy_cores=${4} | framesize=${64} | search_type=NDR - -| tc14-64B-4t4c-eth-l2xcbase-eth-2vhostvr256-1vm-pdrdisc -| | [Tags] | 64B | 4C | PDRDISC | SKIP_PATCH -| | phy_cores=${4} | framesize=${64} | search_type=PDR - -| tc15-1518B-4t4c-eth-l2xcbase-eth-2vhostvr256-1vm-ndrdisc -| | [Tags] | 1518B | 4C | NDRDISC | SKIP_PATCH -| | phy_cores=${4} | framesize=${1518} | search_type=NDR - -| tc16-1518B-4t4c-eth-l2xcbase-eth-2vhostvr256-1vm-pdrdisc -| | [Tags] | 1518B | 4C | PDRDISC | SKIP_PATCH -| | phy_cores=${4} | framesize=${1518} | search_type=PDR - -| tc17-IMIX-4t4c-eth-l2xcbase-eth-2vhostvr256-1vm-ndrdisc -| | [Tags] | IMIX | 4C | NDRDISC | SKIP_PATCH -| | phy_cores=${4} | framesize=IMIX_v4_1 | search_type=NDR - -| tc18-IMIX-4t4c-eth-l2xcbase-eth-2vhostvr256-1vm-pdrdisc -| | [Tags] | IMIX | 4C | PDRDISC | SKIP_PATCH -| | phy_cores=${4} | framesize=IMIX_v4_1 | search_type=PDR diff --git a/tests/vpp/perf/vm_vhost/10ge2p1x520-eth-l2xcbase-eth-4vhostvr1024-2vm-mrr.robot b/tests/vpp/perf/vm_vhost/10ge2p1x520-eth-l2xcbase-eth-4vhostvr1024-2vm-mrr.robot index 65f775d666..7f05776c6a 100644 --- a/tests/vpp/perf/vm_vhost/10ge2p1x520-eth-l2xcbase-eth-4vhostvr1024-2vm-mrr.robot +++ b/tests/vpp/perf/vm_vhost/10ge2p1x520-eth-l2xcbase-eth-4vhostvr1024-2vm-mrr.robot @@ -27,7 +27,7 @@ | ... | dut1_node=${dut1} | dut1_vm_refs=${dut1_vm_refs} | ... | dut2_node=${dut2} | dut2_vm_refs=${dut2_vm_refs} | ... -| Test Template | Local template +| Test Template | Local Template | ... | Documentation | *Raw results L2XC test cases with vhost* | ... @@ -62,7 +62,7 @@ | ${traffic_profile}= | trex-sl-3n-ethip4-ip4src254 *** Keywords *** -| Local template +| Local Template | | [Documentation] | | ... | [Cfg] DUT runs L2XC switching config. | | ... | Each DUT uses ${phy_cores} physical core(s) for worker threads. @@ -77,72 +77,67 @@ | | ... | | [Arguments] | ${framesize} | ${phy_cores} | ${rxq}=${None} | | ... -| | Set Test Variable | ${framesize} -| | ${get_framesize}= | Get Frame Size | ${framesize} -| | ${max_rate}= | Calculate pps | ${s_limit} | ${get_framesize} | | ${dut1_vm_refs}= | Create Dictionary | | ${dut2_vm_refs}= | Create Dictionary | | Set Test Variable | ${dut1_vm_refs} | | Set Test Variable | ${dut2_vm_refs} -| | ${jumbo_frames}= | Set Variable If | ${get_framesize} < ${1522} -| | ... | ${False} | ${True} -| | Set Test Variable | ${jumbo_frames} | | ... | | Given Add worker threads and rxqueues to all DUTs | ${phy_cores} | ${rxq} | | And Add PCI devices to all DUTs -| | And Run Keyword If | ${get_framesize} < ${1522} -| | ... | Add no multi seg to all DUTs +| | ${max_rate} | ${jumbo} = | Get Max Rate And Jumbo And Handle Multi Seg +| | ... | ${s_limit} | ${framesize} | | And Apply startup configuration on all VPP DUTs | | When Initialize L2 xconnect with Vhost-User for '2' in 3-node circular topology +| | Set Test Variable | \${jumbo_frames} | ${jumbo} | | And Configure '2' guest VMs with dpdk-testpmd connected via vhost-user in 3-node circular topology | | Then Traffic should pass with maximum rate | | ... | ${max_rate}pps | ${framesize} | ${traffic_profile} *** Test Cases *** -| tc01-64B-1t1c-eth-l2xcbase-eth-4vhostvr1024-2vm-ndrdisc-mrr +| tc01-64B-1c-eth-l2xcbase-eth-4vhostvr1024-2vm-mrr | | [Tags] | 64B | 1C | | framesize=${64} | phy_cores=${1} -| tc02-1518B-1t1c-eth-l2xcbase-eth-4vhostvr1024-2vm-ndrdisc-mrr -| | [Tags] | 1518B | 1C -| | framesize=${1518} | phy_cores=${1} - -| tc03-9000B-1t1c-eth-l2xcbase-eth-4vhostvr1024-2vm-ndrdisc-mrr -| | [Tags] | 9000B | 1C -| | framesize=${9000} | phy_cores=${1} - -| tc04-IMIX-1t1c-eth-l2xcbase-eth-4vhostvr1024-2vm-ndrdisc-mrr -| | [Tags] | IMIX | 1C -| | framesize=IMIX_v4_1 | phy_cores=${1} - -| tc05-64B-2t2c-eth-l2xcbase-eth-4vhostvr1024-2vm-ndrdisc-mrr +| tc02-64B-2c-eth-l2xcbase-eth-4vhostvr1024-2vm-mrr | | [Tags] | 64B | 2C | | framesize=${64} | phy_cores=${2} -| tc06-1518B-2t2c-eth-l2xcbase-eth-4vhostvr1024-2vm-ndrdisc-mrr -| | [Tags] | 1518B | 2C -| | framesize=${1518} | phy_cores=${2} - -| tc07-9000B-2t2c-eth-l2xcbase-eth-4vhostvr1024-2vm-ndrdisc-mrr -| | [Tags] | 9000B | 2C -| | framesize=${9000} | phy_cores=${2} - -| tc08-IMIX-2t2c-eth-l2xcbase-eth-4vhostvr1024-2vm-ndrdisc-mrr -| | [Tags] | IMIX | 2C -| | framesize=IMIX_v4_1 | phy_cores=${2} - -| tc09-64B-4t4c-eth-l2xcbase-eth-4vhostvr1024-2vm-ndrdisc-mrr +| tc03-64B-4c-eth-l2xcbase-eth-4vhostvr1024-2vm-mrr | | [Tags] | 64B | 4C | | framesize=${64} | phy_cores=${4} -| tc10-1518B-4t4c-eth-l2xcbase-eth-4vhostvr1024-2vm-ndrdisc-mrr +| tc04-1518B-1c-eth-l2xcbase-eth-4vhostvr1024-2vm-mrr +| | [Tags] | 1518B | 1C +| | framesize=${1518} | phy_cores=${1} + +| tc05-1518B-2c-eth-l2xcbase-eth-4vhostvr1024-2vm-mrr +| | [Tags] | 1518B | 2C +| | framesize=${1518} | phy_cores=${2} + +| tc06-1518B-4c-eth-l2xcbase-eth-4vhostvr1024-2vm-mrr | | [Tags] | 1518B | 4C | | framesize=${1518} | phy_cores=${4} -| tc11-9000B-4t4c-eth-l2xcbase-eth-4vhostvr1024-2vm-ndrdisc-mrr +| tc07-9000B-1c-eth-l2xcbase-eth-4vhostvr1024-2vm-mrr +| | [Tags] | 9000B | 1C +| | framesize=${9000} | phy_cores=${1} + +| tc08-9000B-2c-eth-l2xcbase-eth-4vhostvr1024-2vm-mrr +| | [Tags] | 9000B | 2C +| | framesize=${9000} | phy_cores=${2} + +| tc09-9000B-4c-eth-l2xcbase-eth-4vhostvr1024-2vm-mrr | | [Tags] | 9000B | 4C | | framesize=${9000} | phy_cores=${4} -| tc12-IMIX-4t4c-eth-l2xcbase-eth-4vhostvr1024-2vm-ndrdisc-mrr +| tc10-IMIX-1c-eth-l2xcbase-eth-4vhostvr1024-2vm-mrr +| | [Tags] | IMIX | 1C +| | framesize=IMIX_v4_1 | phy_cores=${1} + +| tc11-IMIX-2c-eth-l2xcbase-eth-4vhostvr1024-2vm-mrr +| | [Tags] | IMIX | 2C +| | framesize=IMIX_v4_1 | phy_cores=${2} + +| tc12-IMIX-4c-eth-l2xcbase-eth-4vhostvr1024-2vm-mrr | | [Tags] | IMIX | 4C | | framesize=IMIX_v4_1 | phy_cores=${4} diff --git a/tests/vpp/perf/vm_vhost/10ge2p1x520-eth-l2xcbase-eth-4vhostvr1024-2vm-ndrpdr.robot b/tests/vpp/perf/vm_vhost/10ge2p1x520-eth-l2xcbase-eth-4vhostvr1024-2vm-ndrpdr.robot new file mode 100644 index 0000000000..ed67b467ad --- /dev/null +++ b/tests/vpp/perf/vm_vhost/10ge2p1x520-eth-l2xcbase-eth-4vhostvr1024-2vm-ndrpdr.robot @@ -0,0 +1,148 @@ +# Copyright (c) 2018 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 | NDRPDR +| ... | NIC_Intel-X520-DA2 | ETH | L2XCFWD | BASE | VHOST | 2VM | VHOST_1024 +| ... +| 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} +| ... +| Test Template | Local Template +| ... +| Documentation | *RFC2544: Pkt 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- +| ... | connects. Qemu Guests are connected to VPP via vhost-user interfaces. +| ... | Guests are running DPDK testpmd interconnecting vhost-user interfaces +| ... | using 5 cores pinned to cpus 6-10 and 11-15 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=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 +| ... | Rate) with non-zero packet loss tolerance (LT) expressed in percentage +| ... | of packets transmitted. NDR and PDR are discovered for different +| ... | Ethernet L2 frame sizes using MLRsearch library. +| ... | Test packets are generated by TG on links to DUTs. TG traffic profile +| ... | contains two L3 flow-groups (flow-group per direction, 254 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. + +*** Variables *** +| ${perf_qemu_qsz}= | 1024 +#CPU settings +| ${system_cpus}= | ${1} +| ${vpp_cpus}= | ${5} +| ${vm_cpus}= | ${5} +# X520-DA2 bandwidth limit +| ${s_limit}= | ${10000000000} +# Traffic profile: +| ${traffic_profile}= | trex-sl-3n-ethip4-ip4src254 + +*** Keywords *** +| Local Template +| | [Documentation] +| | ... | [Cfg] DUT runs L2XC switching config. +| | ... | Each DUT uses ${phy_cores} physical core(s) for worker threads. +| | ... | [Ver] Measure NDR and PDR values using MLRsearch algorithm.\ +| | ... +| | ... | *Arguments:* +| | ... | - framesize - Framesize in Bytes in integer or string (IMIX_v4_1). +| | ... | Type: integer, string +| | ... | - phy_cores - Number of physical cores. Type: integer +| | ... | - rxq - Number of RX queues, default value: ${None}. Type: integer +| | ... +| | [Arguments] | ${framesize} | ${phy_cores} | ${rxq}=${None} +| | ... +| | Set Test Variable | ${framesize} +| | Set Test Variable | ${min_rate} | ${10000} +| | ${dut1_vm_refs}= | Create Dictionary +| | ${dut2_vm_refs}= | Create Dictionary +| | Set Test Variable | ${dut1_vm_refs} +| | Set Test Variable | ${dut2_vm_refs} +| | ... +| | Given Add worker threads and rxqueues to all DUTs | ${phy_cores} | ${rxq} +| | And Add PCI devices to all DUTs +| | ${max_rate} | ${jumbo} = | Get Max Rate And Jumbo And Handle Multi Seg +| | ... | ${s_limit} | ${framesize} +| | And Apply startup configuration on all VPP DUTs +| | When Initialize L2 xconnect with Vhost-User for '2' in 3-node circular topology +| | Set Test Variable | \${jumbo_frames} | ${jumbo} +| | And Configure '2' guest VMs with dpdk-testpmd connected via vhost-user in 3-node circular topology +| | Then Find NDR and PDR intervals using optimized search +| | ... | ${framesize} | ${traffic_profile} | ${min_rate} | ${max_rate} + +*** Test Cases *** +| tc01-64B-1c-eth-l2xcbase-eth-4vhostvr1024-2vm-ndrpdr +| | [Tags] | 64B | 1C +| | framesize=${64} | phy_cores=${1} + +| tc02-64B-2c-eth-l2xcbase-eth-4vhostvr1024-2vm-ndrpdr +| | [Tags] | 64B | 2C +| | framesize=${64} | phy_cores=${2} + +| tc03-64B-4c-eth-l2xcbase-eth-4vhostvr1024-2vm-ndrpdr +| | [Tags] | 64B | 4C +| | framesize=${64} | phy_cores=${4} + +| tc04-1518B-1c-eth-l2xcbase-eth-4vhostvr1024-2vm-ndrpdr +| | [Tags] | 1518B | 1C +| | framesize=${1518} | phy_cores=${1} + +| tc05-1518B-2c-eth-l2xcbase-eth-4vhostvr1024-2vm-ndrpdr +| | [Tags] | 1518B | 2C +| | framesize=${1518} | phy_cores=${2} + +| tc06-1518B-4c-eth-l2xcbase-eth-4vhostvr1024-2vm-ndrpdr +| | [Tags] | 1518B | 4C +| | framesize=${1518} | phy_cores=${4} + +| tc07-9000B-1c-eth-l2xcbase-eth-4vhostvr1024-2vm-ndrpdr +| | [Tags] | 9000B | 1C +| | framesize=${9000} | phy_cores=${1} + +| tc08-9000B-2c-eth-l2xcbase-eth-4vhostvr1024-2vm-ndrpdr +| | [Tags] | 9000B | 2C +| | framesize=${9000} | phy_cores=${2} + +| tc09-9000B-4c-eth-l2xcbase-eth-4vhostvr1024-2vm-ndrpdr +| | [Tags] | 9000B | 4C +| | framesize=${9000} | phy_cores=${4} + +| tc10-IMIX-1c-eth-l2xcbase-eth-4vhostvr1024-2vm-ndrpdr +| | [Tags] | IMIX | 1C +| | framesize=IMIX_v4_1 | phy_cores=${1} + +| tc11-IMIX-2c-eth-l2xcbase-eth-4vhostvr1024-2vm-ndrpdr +| | [Tags] | IMIX | 2C +| | framesize=IMIX_v4_1 | phy_cores=${2} + +| tc12-IMIX-4c-eth-l2xcbase-eth-4vhostvr1024-2vm-ndrpdr +| | [Tags] | IMIX | 4C +| | framesize=IMIX_v4_1 | phy_cores=${4} diff --git a/tests/vpp/perf/vm_vhost/10ge2p1x520-eth-l2xcbase-eth-4vhostvr1024-2vm-ndrpdrdisc.robot b/tests/vpp/perf/vm_vhost/10ge2p1x520-eth-l2xcbase-eth-4vhostvr1024-2vm-ndrpdrdisc.robot deleted file mode 100644 index e139db35e1..0000000000 --- a/tests/vpp/perf/vm_vhost/10ge2p1x520-eth-l2xcbase-eth-4vhostvr1024-2vm-ndrpdrdisc.robot +++ /dev/null @@ -1,178 +0,0 @@ -# Copyright (c) 2018 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.NodePath -| ... -| Force Tags | 3_NODE_SINGLE_LINK_TOPO | PERFTEST | HW_ENV | NDRPDRDISC -| ... | NIC_Intel-X520-DA2 | ETH | L2XCFWD | BASE | VHOST | VM | VHOST_1024 -| ... -| 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} -| ... -| Test Template | Local template -| ... -| Documentation | *RFC2544: Pkt 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 cross connect. -| ... | *[Cfg] DUT configuration:* DUT1 and DUT2 are configured with L2 cross- -| ... | connects. Qemu Guests are connected to VPP via vhost-user interfaces. -| ... | Guests are running DPDK testpmd interconnecting vhost-user interfaces -| ... | using 5 cores pinned to cpus 6-10 and 11-15 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=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 -| ... | 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 *** -| ${perf_qemu_qsz}= | 1024 -# X520-DA2 bandwidth limit -| ${s_limit} | ${10000000000} -#CPU settings -| ${system_cpus}= | ${1} -| ${vpp_cpus}= | ${5} -| ${vm_cpus}= | ${5} -# Traffic profile: -| ${traffic_profile} | trex-sl-3n-ethip4-ip4src254 - -*** Keywords *** -| Local template -| | [Arguments] | ${phy_cores} | ${framesize} | ${search_type} | ${rxq}=${None} -| | ... | ${min_rate}=${10000} -| | ... -| | Set Test Variable | ${framesize} -| | Set Test Variable | ${min_rate} -| | ${get_framesize}= | Get Frame Size | ${framesize} -| | ${max_rate}= | Calculate pps | ${s_limit} | ${get_framesize} -| | ${binary_min}= | Set Variable | ${min_rate} -| | ${binary_max}= | Set Variable | ${max_rate} -| | ${threshold}= | Set Variable | ${min_rate} -| | ${dut1_vm_refs}= | Create Dictionary -| | ${dut2_vm_refs}= | Create Dictionary -| | Set Test Variable | ${dut1_vm_refs} -| | Set Test Variable | ${dut2_vm_refs} -| | ${jumbo_frames}= | Set Variable If | ${get_framesize} < ${1522} -| | ... | ${False} | ${True} -| | Set Test Variable | ${jumbo_frames} -| | ... -| | Given Add worker threads and rxqueues to all DUTs | ${phy_cores} | ${rxq} -| | And Add PCI devices to all DUTs -| | And Run Keyword If | ${get_framesize} < ${1522} -| | ... | Add no multi seg to all DUTs -| | And Apply startup configuration on all VPP DUTs -| | When Initialize L2 xconnect with Vhost-User for '2' in 3-node circular topology -| | And Configure '2' guest VMs with dpdk-testpmd connected via vhost-user in 3-node circular topology -| | Then Run Keyword If | '${search_type}' == 'NDR' -| | ... | Find NDR using binary search and pps -| | ... | ${framesize} | ${binary_min} | ${binary_max} | ${traffic_profile} -| | ... | ${min_rate} | ${max_rate} | ${threshold} -| | ... | ELSE IF | '${search_type}' == 'PDR' -| | ... | Find PDR using binary search and pps -| | ... | ${framesize} | ${binary_min} | ${binary_max} | ${traffic_profile} -| | ... | ${min_rate} | ${max_rate} | ${threshold} -| | ... | ${perf_pdr_loss_acceptance} | ${perf_pdr_loss_acceptance_type} - -*** Test Cases *** -| tc01-64B-1t1c-eth-l2xcbase-eth-4vhostvr1024-2vm-ndrdisc -| | [Tags] | 64B | 1C | NDRDISC -| | phy_cores=${1} | framesize=${64} | search_type=NDR - -| tc02-64B-1t1c-eth-l2xcbase-eth-4vhostvr1024-2vm-pdrdisc -| | [Tags] | 64B | 1C | PDRDISC | SKIP_PATCH -| | phy_cores=${1} | framesize=${64} | search_type=PDR - -| tc03-1518B-1t1c-eth-l2xcbase-eth-4vhostvr1024-2vm-ndrdisc -| | [Tags] | 1518B | 1C | NDRDISC -| | phy_cores=${1} | framesize=${1518} | search_type=NDR - -| tc04-1518B-1t1c-eth-l2xcbase-eth-4vhostvr1024-2vm-pdrdisc -| | [Tags] | 1518B | 1C | PDRDISC | SKIP_PATCH -| | phy_cores=${1} | framesize=${1518} | search_type=PDR - -| tc05-IMIX-1t1c-eth-l2xcbase-eth-4vhostvr1024-2vm-ndrdisc -| | [Tags] | IMIX | 1C | NDRDISC -| | phy_cores=${1} | framesize=IMIX_v4_1 | search_type=NDR - -| tc06-IMIX-1t1c-eth-l2xcbase-eth-4vhostvr1024-2vm-pdrdisc -| | [Tags] | IMIX | 1C | PDRDISC | SKIP_PATCH -| | phy_cores=${1} | framesize=IMIX_v4_1 | search_type=PDR - -| tc07-64B-2t2c-eth-l2xcbase-eth-4vhostvr1024-2vm-ndrdisc -| | [Tags] | 64B | 2C | NDRDISC -| | phy_cores=${2} | framesize=${64} | search_type=NDR - -| tc08-64B-2t2c-eth-l2xcbase-eth-4vhostvr1024-2vm-pdrdisc -| | [Tags] | 64B | 2C | PDRDISC | SKIP_PATCH -| | phy_cores=${2} | framesize=${64} | search_type=PDR - -| tc09-1518B-2t2c-eth-l2xcbase-eth-4vhostvr1024-2vm-ndrdisc -| | [Tags] | 1518B | 2C | NDRDISC | SKIP_PATCH -| | phy_cores=${2} | framesize=${1518} | search_type=NDR - -| tc10-1518B-2t2c-eth-l2xcbase-eth-4vhostvr1024-2vm-pdrdisc -| | [Tags] | 1518B | 2C | PDRDISC | SKIP_PATCH -| | phy_cores=${2} | framesize=${1518} | search_type=PDR - -| tc11-IMIX-2t2c-eth-l2xcbase-eth-4vhostvr1024-2vm-ndrdisc -| | [Tags] | IMIX | 2C | NDRDISC | SKIP_PATCH -| | phy_cores=${2} | framesize=IMIX_v4_1 | search_type=NDR - -| tc12-IMIX-2t2c-eth-l2xcbase-eth-4vhostvr1024-2vm-pdrdisc -| | [Tags] | IMIX | 2C | PDRDISC | SKIP_PATCH -| | phy_cores=${2} | framesize=IMIX_v4_1 | search_type=PDR - -| tc13-64B-4t4c-eth-l2xcbase-eth-4vhostvr1024-2vm-ndrdisc -| | [Tags] | 64B | 4C | NDRDISC -| | phy_cores=${4} | framesize=${64} | search_type=NDR - -| tc14-64B-4t4c-eth-l2xcbase-eth-4vhostvr1024-2vm-pdrdisc -| | [Tags] | 64B | 4C | PDRDISC | SKIP_PATCH -| | phy_cores=${4} | framesize=${64} | search_type=PDR - -| tc15-1518B-4t4c-eth-l2xcbase-eth-4vhostvr1024-2vm-ndrdisc -| | [Tags] | 1518B | 4C | NDRDISC | SKIP_PATCH -| | phy_cores=${4} | framesize=${1518} | search_type=NDR - -| tc16-1518B-4t4c-eth-l2xcbase-eth-4vhostvr1024-2vm-pdrdisc -| | [Tags] | 1518B | 4C | PDRDISC | SKIP_PATCH -| | phy_cores=${4} | framesize=${1518} | search_type=PDR - -| tc17-IMIX-4t4c-eth-l2xcbase-eth-4vhostvr1024-2vm-ndrdisc -| | [Tags] | IMIX | 4C | NDRDISC | SKIP_PATCH -| | phy_cores=${4} | framesize=IMIX_v4_1 | search_type=NDR - -| tc18-IMIX-4t4c-eth-l2xcbase-eth-4vhostvr1024-2vm-pdrdisc -| | [Tags] | IMIX | 4C | PDRDISC | SKIP_PATCH -| | phy_cores=${4} | framesize=IMIX_v4_1 | search_type=PDR diff --git a/tests/vpp/perf/vm_vhost/10ge2p1x520-ethip4-ip4base-eth-2vhostvr1024-1vm-cfsrr1-mrr.robot b/tests/vpp/perf/vm_vhost/10ge2p1x520-ethip4-ip4base-eth-2vhostvr1024-1vm-cfsrr1-mrr.robot new file mode 100644 index 0000000000..78292a67f6 --- /dev/null +++ b/tests/vpp/perf/vm_vhost/10ge2p1x520-ethip4-ip4base-eth-2vhostvr1024-1vm-cfsrr1-mrr.robot @@ -0,0 +1,147 @@ +# Copyright (c) 2018 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 | MRR +| ... | NIC_Intel-X520-DA2 | ETH | IP4FWD | BASE | VHOST | VM | VHOST_1024 +| ... | CFS_OPT +| ... +| 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 mrr test with vhost and VM with dpdk-testpmd +| ... | dut1_node=${dut1} | dut1_vm_refs=${dut1_vm_refs} +| ... | dut2_node=${dut2} | dut2_vm_refs=${dut2_vm_refs} +| ... +| Test Template | Local Template +| ... +| Documentation | *Raw results 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 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=1024, 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:* In MaxReceivedRate test TG sends traffic +| ... | at line rate and reports total received/sent packets over trial period. +| ... | 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 *** +| ${perf_qemu_qsz}= | 1024 +# 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 *** +| Local Template +| | [Documentation] | FIXME. +| | [Arguments] | ${framesize} | ${phy_cores} | ${rxq}=${None} +| | ... +| | Set Test Variable | ${use_tuned_cfs} | ${True} +| | ${dut1_vm_refs}= | Create Dictionary +| | ${dut2_vm_refs}= | Create Dictionary +| | Set Test Variable | ${dut1_vm_refs} +| | Set Test Variable | ${dut2_vm_refs} +| | ... +| | Given Add worker threads and rxqueues to all DUTs | ${phy_cores} | ${rxq} +| | And Add PCI devices to all DUTs +| | ${max_rate} | ${jumbo} = | Get Max Rate And Jumbo And Handle Multi Seg +| | ... | ${s_limit} | ${framesize} +| | 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} | jumbo_frames=${jumbo} +| | 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} | jumbo_frames=${jumbo} +| | Set To Dictionary | ${dut2_vm_refs} | DUT2_VM1 | ${vm2} +| | Setup Scheduler Policy for Vpp On All DUTs +| | Then Traffic should pass with maximum rate +| | ... | ${max_rate}pps | ${framesize} | ${traffic_profile} + +*** Test Cases *** +| tc01-64B-1c-ethip4-ip4base-eth-2vhostvr1024-1vm-cfsrr1-mrr +| | [Tags] | 64B | 1C +| | framesize=${64} | phy_cores=${1} + +| tc02-64B-2c-ethip4-ip4base-eth-2vhostvr1024-1vm-cfsrr1-mrr +| | [Tags] | 64B | 2C +| | framesize=${64} | phy_cores=${2} + +| tc03-64B-4c-ethip4-ip4base-eth-2vhostvr1024-1vm-cfsrr1-mrr +| | [Tags] | 64B | 4C +| | framesize=${64} | phy_cores=${4} + +| tc04-1518B-1c-ethip4-ip4base-eth-2vhostvr1024-1vm-cfsrr1-mrr +| | [Tags] | 1518B | 1C +| | framesize=${1518} | phy_cores=${1} + +| tc05-1518B-2c-ethip4-ip4base-eth-2vhostvr1024-1vm-cfsrr1-mrr +| | [Tags] | 1518B | 2C +| | framesize=${1518} | phy_cores=${2} + +| tc06-1518B-4c-ethip4-ip4base-eth-2vhostvr1024-1vm-cfsrr1-mrr +| | [Tags] | 1518B | 4C +| | framesize=${1518} | phy_cores=${4} + +| tc07-9000B-1c-ethip4-ip4base-eth-2vhostvr1024-1vm-cfsrr1-mrr +| | [Tags] | 9000B | 1C +| | framesize=${9000} | phy_cores=${1} + +| tc08-9000B-2c-ethip4-ip4base-eth-2vhostvr1024-1vm-cfsrr1-mrr +| | [Tags] | 9000B | 2C +| | framesize=${9000} | phy_cores=${2} + +| tc09-9000B-4c-ethip4-ip4base-eth-2vhostvr1024-1vm-cfsrr1-mrr +| | [Tags] | 9000B | 4C +| | framesize=${9000} | phy_cores=${4} + +| tc10-IMIX-1c-ethip4-ip4base-eth-2vhostvr1024-1vm-cfsrr1-mrr +| | [Tags] | IMIX | 1C +| | framesize=IMIX_v4_1 | phy_cores=${1} + +| tc11-IMIX-2c-ethip4-ip4base-eth-2vhostvr1024-1vm-cfsrr1-mrr +| | [Tags] | IMIX | 2C +| | framesize=IMIX_v4_1 | phy_cores=${2} + +| tc12-IMIX-4c-ethip4-ip4base-eth-2vhostvr1024-1vm-cfsrr1-mrr +| | [Tags] | IMIX | 4C +| | framesize=IMIX_v4_1 | phy_cores=${4} diff --git a/tests/vpp/perf/vm_vhost/10ge2p1x520-ethip4-ip4base-eth-2vhostvr1024-1vm-cfsrr1-ndrpdr.robot b/tests/vpp/perf/vm_vhost/10ge2p1x520-ethip4-ip4base-eth-2vhostvr1024-1vm-cfsrr1-ndrpdr.robot new file mode 100644 index 0000000000..130ebee0bf --- /dev/null +++ b/tests/vpp/perf/vm_vhost/10ge2p1x520-ethip4-ip4base-eth-2vhostvr1024-1vm-cfsrr1-ndrpdr.robot @@ -0,0 +1,153 @@ +# Copyright (c) 2018 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 | NDRPDR +| ... | NIC_Intel-X520-DA2 | ETH | IP4FWD | BASE | VHOST | VM | VHOST_1024 +| ... | CFS_OPT +| ... +| 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} +| ... +| Test Template | Local Template +| ... +| 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 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=1024, 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 MLRsearch library. +| ... | 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 *** +| ${perf_qemu_qsz}= | 1024 +# 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 *** +| Local Template +| | [Documentation] | FIXME. +| | [Arguments] | ${framesize} | ${phy_cores} | ${rxq}=${None} +| | ... +| | Set Test Variable | ${use_tuned_cfs} | ${True} +| | Set Test Variable | ${framesize} +| | Set Test Variable | ${min_rate} | ${10000} +| | ${dut1_vm_refs}= | Create Dictionary +| | ${dut2_vm_refs}= | Create Dictionary +| | Set Test Variable | ${dut1_vm_refs} +| | Set Test Variable | ${dut2_vm_refs} +| | ... +| | Given Add worker threads and rxqueues to all DUTs | ${phy_cores} | ${rxq} +| | And Add PCI devices to all DUTs +| | ${max_rate} | ${jumbo} = | Get Max Rate And Jumbo And Handle Multi Seg +| | ... | ${s_limit} | ${framesize} +| | 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} | jumbo_frames=${jumbo} +| | 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} | jumbo_frames=${jumbo} +| | Set To Dictionary | ${dut2_vm_refs} | DUT2_VM1 | ${vm2} +| | Setup Scheduler Policy for Vpp On All DUTs +| | Then Find NDR and PDR intervals using optimized search +| | ... | ${framesize} | ${traffic_profile} | ${min_rate} | ${max_rate} + +*** Test Cases *** +| tc01-64B-1c-ethip4-ip4base-eth-2vhostvr1024-1vm-cfsrr1-ndrpdr +| | [Tags] | 64B | 1C +| | framesize=${64} | phy_cores=${1} + +| tc02-64B-2c-ethip4-ip4base-eth-2vhostvr1024-1vm-cfsrr1-ndrpdr +| | [Tags] | 64B | 2C +| | framesize=${64} | phy_cores=${2} + +| tc03-64B-4c-ethip4-ip4base-eth-2vhostvr1024-1vm-cfsrr1-ndrpdr +| | [Tags] | 64B | 4C +| | framesize=${64} | phy_cores=${4} + +| tc04-1518B-1c-ethip4-ip4base-eth-2vhostvr1024-1vm-cfsrr1-ndrpdr +| | [Tags] | 1518B | 1C +| | framesize=${1518} | phy_cores=${1} + +| tc05-1518B-2c-ethip4-ip4base-eth-2vhostvr1024-1vm-cfsrr1-ndrpdr +| | [Tags] | 1518B | 2C +| | framesize=${1518} | phy_cores=${2} + +| tc06-1518B-4c-ethip4-ip4base-eth-2vhostvr1024-1vm-cfsrr1-ndrpdr +| | [Tags] | 1518B | 4C +| | framesize=${1518} | phy_cores=${4} + +| tc07-9000B-1c-ethip4-ip4base-eth-2vhostvr1024-1vm-cfsrr1-ndrpdr +| | [Tags] | 9000B | 1C +| | framesize=${9000} | phy_cores=${1} + +| tc08-9000B-2c-ethip4-ip4base-eth-2vhostvr1024-1vm-cfsrr1-ndrpdr +| | [Tags] | 9000B | 2C +| | framesize=${9000} | phy_cores=${2} + +| tc09-9000B-4c-ethip4-ip4base-eth-2vhostvr1024-1vm-cfsrr1-ndrpdr +| | [Tags] | 9000B | 4C +| | framesize=${9000} | phy_cores=${4} + +| tc10-IMIX-1c-ethip4-ip4base-eth-2vhostvr1024-1vm-cfsrr1-ndrpdr +| | [Tags] | IMIX | 1C +| | framesize=IMIX_v4_1 | phy_cores=${1} + +| tc11-IMIX-2c-ethip4-ip4base-eth-2vhostvr1024-1vm-cfsrr1-ndrpdr +| | [Tags] | IMIX | 2C +| | framesize=IMIX_v4_1 | phy_cores=${2} + +| tc12-IMIX-4c-ethip4-ip4base-eth-2vhostvr1024-1vm-cfsrr1-ndrpdr +| | [Tags] | IMIX | 4C +| | framesize=IMIX_v4_1 | phy_cores=${4} diff --git a/tests/vpp/perf/vm_vhost/10ge2p1x520-ethip4-ip4base-eth-2vhostvr1024-1vm-cfsrr1-ndrpdrdisc.robot b/tests/vpp/perf/vm_vhost/10ge2p1x520-ethip4-ip4base-eth-2vhostvr1024-1vm-cfsrr1-ndrpdrdisc.robot deleted file mode 100644 index 589dd17490..0000000000 --- a/tests/vpp/perf/vm_vhost/10ge2p1x520-ethip4-ip4base-eth-2vhostvr1024-1vm-cfsrr1-ndrpdrdisc.robot +++ /dev/null @@ -1,191 +0,0 @@ -# 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 | ETH | IP4FWD | BASE | VHOST | VM | VHOST_1024 -| ... | CFS_OPT -| ... -| 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} -| ... -| Test Template | Local template -| ... -| 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 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=1024, 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 *** -| ${perf_qemu_qsz}= | 1024 -| ${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 *** -| Local template -| | [Arguments] | ${phy_cores} | ${framesize} | ${search_type} | ${rxq}=${None} -| | ... | ${min_rate}=${10000} -| | ... -| | 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 worker threads and rxqueues to all DUTs | ${phy_cores} | ${rxq} -| | And Add PCI devices to all DUTs -| | And Run Keyword If | ${get_framesize} < ${1522} | Add no multi seg to all DUTs -| | And Apply startup configuration on all VPP DUTs -| | When Initialize IPv4 forwarding 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} -| | Setup Scheduler Policy for Vpp On All DUTs -| | 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-2vhostvr1024-1vm-cfsrr1-ndrdisc -| | [Tags] | 64B | 1C | NDRDISC -| | phy_cores=${1} | framesize=${64} | search_type=NDR - -| tc02-64B-1t1c-ethip4-ip4base-eth-2vhostvr1024-1vm-cfsrr1-pdrdisc -| | [Tags] | 64B | 1C | PDRDISC | SKIP_PATCH -| | phy_cores=${1} | framesize=${64} | search_type=PDR - -| tc03-1518B-1t1c-etc-l2bdbasemaclrn-eth-2vhostvr1024-1vm-cfsrr1-ndrdisc -| | [Tags] | 1518B | 1C | NDRDISC -| | phy_cores=${1} | framesize=${1518} | search_type=NDR - -| tc04-1518B-1t1c-ethip4-ip4base-eth-2vhostvr1024-1vm-cfsrr1-pdrdisc -| | [Tags] | 1518B | 1C | PDRDISC | SKIP_PATCH -| | phy_cores=${1} | framesize=${1518} | search_type=PDR - -| tc05-IMIX-1t1c-ethip4-ip4base-eth-2vhostvr1024-1vm-cfsrr1-ndrdisc -| | [Tags] | IMIX | 1C | NDRDISC -| | phy_cores=${1} | framesize=IMIX_v4_1 | search_type=NDR - -| tc06-IMIX-1t1c-ethip4-ip4base-eth-2vhostvr1024-1vm-cfsrr1-pdrdisc -| | [Tags] | IMIX | 1C | PDRDISC | SKIP_PATCH -| | phy_cores=${1} | framesize=IMIX_v4_1 | search_type=PDR - -| tc07-64B-2t2c-ethip4-ip4base-eth-2vhostvr1024-1vm-cfsrr1-ndrdisc -| | [Tags] | 64B | 2C | NDRDISC -| | phy_cores=${2} | framesize=${64} | search_type=NDR - -| tc08-64B-2t2c-ethip4-ip4base-eth-2vhostvr1024-1vm-cfsrr1-pdrdisc -| | [Tags] | 64B | 2C | PDRDISC | SKIP_PATCH -| | phy_cores=${2} | framesize=${64} | search_type=PDR - -| tc09-1518B-2t2c-ethip4-ip4base-eth-2vhostvr1024-1vm-cfsrr1-ndrdisc -| | [Tags] | 1518B | 2C | NDRDISC | SKIP_PATCH -| | phy_cores=${2} | framesize=${1518} | search_type=NDR - -| tc10-1518B-2t2c-ethip4-ip4base-eth-2vhostvr1024-1vm-cfsrr1-pdrdisc -| | [Tags] | 1518B | 2C | PDRDISC | SKIP_PATCH -| | phy_cores=${2} | framesize=${1518} | search_type=PDR - -| tc11-IMIX-2t2c-ethip4-ip4base-eth-2vhostvr1024-1vm-cfsrr1-ndrdisc -| | [Tags] | IMIX | 2C | NDRDISC | SKIP_PATCH -| | phy_cores=${2} | framesize=IMIX_v4_1 | search_type=NDR - -| tc12-IMIX-2t2c-ethip4-ip4base-eth-2vhostvr1024-1vm-cfsrr1-pdrdisc -| | [Tags] | IMIX | 2C | PDRDISC | SKIP_PATCH -| | phy_cores=${2} | framesize=IMIX_v4_1 | search_type=PDR - -| tc13-64B-4t4c-ethip4-ip4base-eth-2vhostvr1024-1vm-cfsrr1-ndrdisc -| | [Tags] | 64B | 4C | NDRDISC -| | phy_cores=${4} | framesize=${64} | search_type=NDR - -| tc14-64B-4t4c-ethip4-ip4base-eth-2vhostvr1024-1vm-cfsrr1-pdrdisc -| | [Tags] | 64B | 4C | PDRDISC | SKIP_PATCH -| | phy_cores=${4} | framesize=${64} | search_type=PDR - -| tc15-1518B-4t4c-ethip4-ip4base-eth-2vhostvr1024-1vm-cfsrr1-ndrdisc -| | [Tags] | 1518B | 4C | NDRDISC | SKIP_PATCH -| | phy_cores=${4} | framesize=${1518} | search_type=NDR - -| tc16-1518B-4t4c-ethip4-ip4base-eth-2vhostvr1024-1vm-cfsrr1-pdrdisc -| | [Tags] | 1518B | 4C | PDRDISC | SKIP_PATCH -| | phy_cores=${4} | framesize=${1518} | search_type=PDR - -| tc17-IMIX-4t4c-ethip4-ip4base-eth-2vhostvr1024-1vm-cfsrr1-ndrdisc -| | [Tags] | IMIX | 4C | NDRDISC | SKIP_PATCH -| | phy_cores=${4} | framesize=IMIX_v4_1 | search_type=NDR - -| tc18-IMIX-4t4c-ethip4-ip4base-eth-2vhostvr1024-1vm-cfsrr1-pdrdisc -| | [Tags] | IMIX | 4C | PDRDISC | SKIP_PATCH -| | phy_cores=${4} | framesize=IMIX_v4_1 | search_type=PDR diff --git a/tests/vpp/perf/vm_vhost/10ge2p1x520-ethip4-ip4base-eth-2vhostvr1024-1vm-mrr.robot b/tests/vpp/perf/vm_vhost/10ge2p1x520-ethip4-ip4base-eth-2vhostvr1024-1vm-mrr.robot index b28c29331e..1327d41078 100644 --- a/tests/vpp/perf/vm_vhost/10ge2p1x520-ethip4-ip4base-eth-2vhostvr1024-1vm-mrr.robot +++ b/tests/vpp/perf/vm_vhost/10ge2p1x520-ethip4-ip4base-eth-2vhostvr1024-1vm-mrr.robot @@ -27,7 +27,7 @@ | ... | dut1_node=${dut1} | dut1_vm_refs=${dut1_vm_refs} | ... | dut2_node=${dut2} | dut2_vm_refs=${dut2_vm_refs} | ... -| Test Template | Local template +| Test Template | Local Template | ... | Documentation | *Raw results IPv4 test cases with vhost* | ... @@ -64,7 +64,7 @@ | ${traffic_profile} | trex-sl-3n-ethip4-ip4src253 *** Keywords *** -| Local template +| Local Template | | [Documentation] | | ... | [Cfg] DUT runs IPv4 routing config. | | ... | Each DUT uses ${phy_cores} physical core(s) for worker threads. @@ -79,79 +79,74 @@ | | ... | | [Arguments] | ${framesize} | ${phy_cores} | ${rxq}=${None} | | ... -| | Set Test Variable | ${framesize} -| | ${get_framesize}= | Get Frame Size | ${framesize} -| | ${max_rate}= | Calculate pps | ${s_limit} | ${framesize} | | ${dut1_vm_refs}= | Create Dictionary | | ${dut2_vm_refs}= | Create Dictionary | | Set Test Variable | ${dut1_vm_refs} | | Set Test Variable | ${dut2_vm_refs} -| | ${jumbo_frames}= | Set Variable If | ${get_framesize} < ${1522} -| | ... | ${False} | ${True} | | ... | | Given Add worker threads and rxqueues to all DUTs | ${phy_cores} | ${rxq} | | And Add PCI devices to all DUTs -| | And Run Keyword If | ${get_framesize} < ${1522} -| | ... | Add no multi seg to all DUTs +| | ${max_rate} | ${jumbo} = | Get Max Rate And Jumbo And Handle Multi Seg +| | ... | ${s_limit} | ${framesize} | | 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} | jumbo_frames=${jumbo_frames} +| | ... | ${dut1_vif2_mac} | jumbo_frames=${jumbo} | | 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} | jumbo_frames=${jumbo_frames} +| | ... | ${dut2_vif2_mac} | jumbo_frames=${jumbo} | | Set To Dictionary | ${dut2_vm_refs} | DUT2_VM1 | ${vm2} | | Then Traffic should pass with maximum rate | | ... | ${max_rate}pps | ${framesize} | ${traffic_profile} *** Test Cases *** -| tc01-64B-1t1c-ethip4-ip4base-eth-2vhostvr1024-1vm-mrr +| tc01-64B-1c-ethip4-ip4base-eth-2vhostvr1024-1vm-mrr | | [Tags] | 64B | 1C | | framesize=${64} | phy_cores=${1} -| tc02-1518B-1t1c-ethip4-ip4base-eth-2vhostvr1024-1vm-mrr -| | [Tags] | 1518B | 1C -| | framesize=${1518} | phy_cores=${1} - -| tc03-9000B-1t1c-ethip4-ip4base-eth-2vhostvr1024-1vm-mrr -| | [Tags] | 9000B | 1C -| | framesize=${9000} | phy_cores=${1} - -| tc04-IMIX-1t1c-ethip4-ip4base-eth-2vhostvr1024-1vm-mrr -| | [Tags] | IMIX | 1C -| | framesize=IMIX_v4_1 | phy_cores=${1} - -| tc05-64B-2t2c-ethip4-ip4base-eth-2vhostvr1024-1vm-mrr +| tc02-64B-2c-ethip4-ip4base-eth-2vhostvr1024-1vm-mrr | | [Tags] | 64B | 2C | | framesize=${64} | phy_cores=${2} -| tc06-1518B-2t2c-ethip4-ip4base-eth-2vhostvr1024-1vm-mrr -| | [Tags] | 1518B | 2C -| | framesize=${1518} | phy_cores=${2} - -| tc07-9000B-2t2c-ethip4-ip4base-eth-2vhostvr1024-1vm-mrr -| | [Tags] | 9000B | 2C -| | framesize=${9000} | phy_cores=${2} - -| tc08-IMIX-2t2c-ethip4-ip4base-eth-2vhostvr1024-1vm-mrr -| | [Tags] | IMIX | 2C -| | framesize=IMIX_v4_1 | phy_cores=${2} - -| tc09-64B-4t4c-ethip4-ip4base-eth-2vhostvr1024-1vm-mrr +| tc03-64B-4c-ethip4-ip4base-eth-2vhostvr1024-1vm-mrr | | [Tags] | 64B | 4C | | framesize=${64} | phy_cores=${4} -| tc10-1518B-4t4c-ethip4-ip4base-eth-2vhostvr1024-1vm-mrr +| tc04-1518B-1c-ethip4-ip4base-eth-2vhostvr1024-1vm-mrr +| | [Tags] | 1518B | 1C +| | framesize=${1518} | phy_cores=${1} + +| tc05-1518B-2c-ethip4-ip4base-eth-2vhostvr1024-1vm-mrr +| | [Tags] | 1518B | 2C +| | framesize=${1518} | phy_cores=${2} + +| tc06-1518B-4c-ethip4-ip4base-eth-2vhostvr1024-1vm-mrr | | [Tags] | 1518B | 4C | | framesize=${1518} | phy_cores=${4} -| tc11-9000B-4t4c-ethip4-ip4base-eth-2vhostvr1024-1vm-mrr +| tc07-9000B-1c-ethip4-ip4base-eth-2vhostvr1024-1vm-mrr +| | [Tags] | 9000B | 1C +| | framesize=${9000} | phy_cores=${1} + +| tc08-9000B-2c-ethip4-ip4base-eth-2vhostvr1024-1vm-mrr +| | [Tags] | 9000B | 2C +| | framesize=${9000} | phy_cores=${2} + +| tc09-9000B-4c-ethip4-ip4base-eth-2vhostvr1024-1vm-mrr | | [Tags] | 9000B | 4C | | framesize=${9000} | phy_cores=${4} -| tc12-IMIX-4t4c-ethip4-ip4base-eth-2vhostvr1024-1vm-mrr +| tc10-IMIX-1c-ethip4-ip4base-eth-2vhostvr1024-1vm-mrr +| | [Tags] | IMIX | 1C +| | framesize=IMIX_v4_1 | phy_cores=${1} + +| tc11-IMIX-2c-ethip4-ip4base-eth-2vhostvr1024-1vm-mrr +| | [Tags] | IMIX | 2C +| | framesize=IMIX_v4_1 | phy_cores=${2} + +| tc12-IMIX-4c-ethip4-ip4base-eth-2vhostvr1024-1vm-mrr | | [Tags] | IMIX | 4C | | framesize=IMIX_v4_1 | phy_cores=${4} diff --git a/tests/vpp/perf/vm_vhost/10ge2p1x520-ethip4-ip4base-eth-2vhostvr1024-1vm-ndrpdr.robot b/tests/vpp/perf/vm_vhost/10ge2p1x520-ethip4-ip4base-eth-2vhostvr1024-1vm-ndrpdr.robot new file mode 100644 index 0000000000..cc1fd25d84 --- /dev/null +++ b/tests/vpp/perf/vm_vhost/10ge2p1x520-ethip4-ip4base-eth-2vhostvr1024-1vm-ndrpdr.robot @@ -0,0 +1,157 @@ +# Copyright (c) 2018 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 | NDRPDR +| ... | NIC_Intel-X520-DA2 | ETH | IP4FWD | BASE | VHOST | 1VM | VHOST_1024 +| ... +| 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} +| ... +| Test Template | Local Template +| ... +| Documentation | *RFC2544: Pkt throughput IPv4 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=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 +| ... | Rate) with non-zero packet loss tolerance (LT) expressed in percentage +| ... | of packets transmitted. NDR and PDR are discovered for different +| ... | Ethernet L2 frame sizes using MLRsearch library. +| ... | Test packets are generated by TG on links to DUTs. TG traffic profile +| ... | contains 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. + +*** Variables *** +| ${perf_qemu_qsz}= | 1024 +# Socket names +| ${sock1}= | /tmp/sock-1 +| ${sock2}= | /tmp/sock-2 +# FIB tables +| ${fib_table_1}= | 100 +| ${fib_table_2}= | 101 +# X520-DA2 bandwidth limit +| ${s_limit}= | ${10000000000} +# Traffic profile: +| ${traffic_profile} | trex-sl-3n-ethip4-ip4src253 + +*** Keywords *** +| Local Template +| | [Documentation] +| | ... | [Cfg] DUT runs IPv4 routing config. +| | ... | Each DUT uses ${phy_cores} physical core(s) for worker threads. +| | ... | [Ver] Measure NDR and PDR values using MLRsearch algorithm.\ +| | ... +| | ... | *Arguments:* +| | ... | - framesize - Framesize in Bytes in integer or string (IMIX_v4_1). +| | ... | Type: integer, string +| | ... | - phy_cores - Number of physical cores. Type: integer +| | ... | - rxq - Number of RX queues, default value: ${None}. Type: integer +| | ... +| | [Arguments] | ${framesize} | ${phy_cores} | ${rxq}=${None} +| | ... +| | Set Test Variable | ${framesize} +| | Set Test Variable | ${min_rate} | ${10000} +| | ${dut1_vm_refs}= | Create Dictionary +| | ${dut2_vm_refs}= | Create Dictionary +| | Set Test Variable | ${dut1_vm_refs} +| | Set Test Variable | ${dut2_vm_refs} +| | ... +| | Given Add worker threads and rxqueues to all DUTs | ${phy_cores} | ${rxq} +| | And Add PCI devices to all DUTs +| | ${max_rate} | ${jumbo} = | Get Max Rate And Jumbo And Handle Multi Seg +| | ... | ${s_limit} | ${framesize} +| | 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} | jumbo_frames=${jumbo} +| | 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} | jumbo_frames=${jumbo} +| | Set To Dictionary | ${dut2_vm_refs} | DUT2_VM1 | ${vm2} +| | Then Find NDR and PDR intervals using optimized search +| | ... | ${framesize} | ${traffic_profile} | ${min_rate} | ${max_rate} + +*** Test Cases *** +| tc01-64B-1c-ethip4-ip4base-eth-2vhostvr1024-1vm-ndrpdr +| | [Tags] | 64B | 1C +| | framesize=${64} | phy_cores=${1} + +| tc02-64B-2c-ethip4-ip4base-eth-2vhostvr1024-1vm-ndrpdr +| | [Tags] | 64B | 2C +| | framesize=${64} | phy_cores=${2} + +| tc03-64B-4c-ethip4-ip4base-eth-2vhostvr1024-1vm-ndrpdr +| | [Tags] | 64B | 4C +| | framesize=${64} | phy_cores=${4} + +| tc04-1518B-1c-ethip4-ip4base-eth-2vhostvr1024-1vm-ndrpdr +| | [Tags] | 1518B | 1C +| | framesize=${1518} | phy_cores=${1} + +| tc05-1518B-2c-ethip4-ip4base-eth-2vhostvr1024-1vm-ndrpdr +| | [Tags] | 1518B | 2C +| | framesize=${1518} | phy_cores=${2} + +| tc06-1518B-4c-ethip4-ip4base-eth-2vhostvr1024-1vm-ndrpdr +| | [Tags] | 1518B | 4C +| | framesize=${1518} | phy_cores=${4} + +| tc07-9000B-1c-ethip4-ip4base-eth-2vhostvr1024-1vm-ndrpdr +| | [Tags] | 9000B | 1C +| | framesize=${9000} | phy_cores=${1} + +| tc08-9000B-2c-ethip4-ip4base-eth-2vhostvr1024-1vm-ndrpdr +| | [Tags] | 9000B | 2C +| | framesize=${9000} | phy_cores=${2} + +| tc09-9000B-4c-ethip4-ip4base-eth-2vhostvr1024-1vm-ndrpdr +| | [Tags] | 9000B | 4C +| | framesize=${9000} | phy_cores=${4} + +| tc10-IMIX-1c-ethip4-ip4base-eth-2vhostvr1024-1vm-ndrpdr +| | [Tags] | IMIX | 1C +| | framesize=IMIX_v4_1 | phy_cores=${1} + +| tc11-IMIX-2c-ethip4-ip4base-eth-2vhostvr1024-1vm-ndrpdr +| | [Tags] | IMIX | 2C +| | framesize=IMIX_v4_1 | phy_cores=${2} + +| tc12-IMIX-4c-ethip4-ip4base-eth-2vhostvr1024-1vm-ndrpdr +| | [Tags] | IMIX | 4C +| | framesize=IMIX_v4_1 | phy_cores=${4} diff --git a/tests/vpp/perf/vm_vhost/10ge2p1x520-ethip4-ip4base-eth-2vhostvr1024-1vm-ndrpdrdisc.robot b/tests/vpp/perf/vm_vhost/10ge2p1x520-ethip4-ip4base-eth-2vhostvr1024-1vm-ndrpdrdisc.robot deleted file mode 100644 index 5c8cf6f84f..0000000000 --- a/tests/vpp/perf/vm_vhost/10ge2p1x520-ethip4-ip4base-eth-2vhostvr1024-1vm-ndrpdrdisc.robot +++ /dev/null @@ -1,659 +0,0 @@ -# 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 | ETH | IP4FWD | BASE | VHOST | VM | VHOST_1024 -| ... -| 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: Pkt throughput IPv4 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=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 -| ... | 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 *** -| ${perf_qemu_qsz}= | 1024 -# X520-DA2 bandwidth limit -| ${s_limit} | ${10000000000} -| ${sock1}= | /tmp/sock-1 -| ${sock2}= | /tmp/sock-2 -| ${fib_table_1}= | 100 -| ${fib_table_2}= | 101 -# Traffic profile: -| ${traffic_profile}= | trex-sl-3n-ethip4-ip4src253 - -*** Test Cases *** -| tc01-64B-1t1c-ethip4-ip4base-eth-2vhostvr1024-1vm-ndrdisc -| | [Documentation] -| | ... | [Cfg] DUT runs IPv4 routing config with 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 | 1C | NDRDISC -| | ${framesize}= | Set Variable | ${64} -| | ${min_rate}= | Set Variable | ${10000} -| | ${max_rate}= | Calculate pps | ${s_limit} | ${framesize} -| | ${binary_min}= | Set Variable | ${min_rate} -| | ${binary_max}= | Set Variable | ${max_rate} -| | ${threshold}= | Set Variable | ${min_rate} -| | ${dut1_vm_refs}= | Create Dictionary -| | ${dut2_vm_refs}= | Create Dictionary -| | Given Add worker threads and rxqueues to all DUTs | 1 -| | And Add PCI devices to all DUTs -| | And 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} -| | Then Find NDR using binary search and pps | ${framesize} | ${binary_min} -| | ... | ${binary_max} | ${traffic_profile} -| | ... | ${min_rate} | ${max_rate} | ${threshold} - -| tc02-64B-1t1c-ethip4-ip4base-eth-2vhostvr1024-1vm-pdrdisc -| | [Documentation] -| | ... | [Cfg] DUT runs IPv4 routing config with 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 | 1C | PDRDISC | SKIP_PATCH -| | ${framesize}= | Set Variable | ${64} -| | ${min_rate}= | Set Variable | ${10000} -| | ${max_rate}= | Calculate pps | ${s_limit} | ${framesize} -| | ${binary_min}= | Set Variable | ${min_rate} -| | ${binary_max}= | Set Variable | ${max_rate} -| | ${threshold}= | Set Variable | ${min_rate} -| | ${dut1_vm_refs}= | Create Dictionary -| | ${dut2_vm_refs}= | Create Dictionary -| | Given Add worker threads and rxqueues to all DUTs | 1 -| | And Add PCI devices to all DUTs -| | And 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} -| | Then Find PDR using binary search and pps | ${framesize} | ${binary_min} -| | ... | ${binary_max} | ${traffic_profile} -| | ... | ${min_rate} | ${max_rate} | ${threshold} -| | ... | ${perf_pdr_loss_acceptance} | ${perf_pdr_loss_acceptance_type} - -| tc03-1518B-1t1c-ethip4-ip4base-eth-2vhostvr1024-1vm-ndrdisc -| | [Documentation] -| | ... | [Cfg] DUT runs IPv4 routing config with 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 | 1C | NDRDISC -| | ${framesize}= | Set Variable | ${1518} -| | ${min_rate}= | Set Variable | ${10000} -| | ${max_rate}= | Calculate pps | ${s_limit} | ${framesize} -| | ${binary_min}= | Set Variable | ${min_rate} -| | ${binary_max}= | Set Variable | ${max_rate} -| | ${threshold}= | Set Variable | ${min_rate} -| | ${dut1_vm_refs}= | Create Dictionary -| | ${dut2_vm_refs}= | Create Dictionary -| | Given Add worker threads and rxqueues to all DUTs | 1 -| | And Add PCI devices to all DUTs -| | And 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} -| | Then Find NDR using binary search and pps | ${framesize} | ${binary_min} -| | ... | ${binary_max} | ${traffic_profile} -| | ... | ${min_rate} | ${max_rate} | ${threshold} - -| tc04-1518B-1t1c-ethip4-ip4base-eth-2vhostvr1024-1vm-pdrdisc -| | [Documentation] -| | ... | [Cfg] DUT runs IPv4 routing config with 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 | 1C | PDRDISC | SKIP_PATCH -| | ${framesize}= | Set Variable | ${1518} -| | ${min_rate}= | Set Variable | ${10000} -| | ${max_rate}= | Calculate pps | ${s_limit} | ${framesize} -| | ${binary_min}= | Set Variable | ${min_rate} -| | ${binary_max}= | Set Variable | ${max_rate} -| | ${threshold}= | Set Variable | ${min_rate} -| | ${dut1_vm_refs}= | Create Dictionary -| | ${dut2_vm_refs}= | Create Dictionary -| | Given Add worker threads and rxqueues to all DUTs | 1 -| | And Add PCI devices to all DUTs -| | And 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} -| | Then Find PDR using binary search and pps | ${framesize} | ${binary_min} -| | ... | ${binary_max} | ${traffic_profile} -| | ... | ${min_rate} | ${max_rate} | ${threshold} -| | ... | ${perf_pdr_loss_acceptance} | ${perf_pdr_loss_acceptance_type} - -| tc05-IMIX-1t1c-ethip4-ip4base-eth-2vhostvr1024-1vm-ndrdisc -| | [Documentation] -| | ... | [Cfg] DUT runs IPv4 routing config with 1 phy core, \ -| | ... | 1 receive queue per NIC port. [Ver] Find NDR for IMIX_v4_1 frame \ -| | ... | size using binary search start at 10GE linerate, step 10kpps. -| | ... | IMIX_v4_1 = (28x64B;16x570B;4x1518B) -| | [Tags] | IMIX | 1C | NDRDISC -| | ${framesize}= | Set Variable | IMIX_v4_1 -| | ${min_rate}= | Set Variable | ${10000} -| | ${max_rate}= | Calculate pps | ${s_limit} | ${framesize} -| | ${binary_min}= | Set Variable | ${min_rate} -| | ${binary_max}= | Set Variable | ${max_rate} -| | ${threshold}= | Set Variable | ${min_rate} -| | ${dut1_vm_refs}= | Create Dictionary -| | ${dut2_vm_refs}= | Create Dictionary -| | Given Add worker threads and rxqueues to all DUTs | 1 -| | And Add PCI devices to all DUTs -| | And 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} -| | Then Find NDR using binary search and pps | ${framesize} | ${binary_min} -| | ... | ${binary_max} | ${traffic_profile} -| | ... | ${min_rate} | ${max_rate} | ${threshold} - -| tc06-IMIX-1t1c-ethip4-ip4base-eth-2vhostvr1024-1vm-pdrdisc -| | [Documentation] -| | ... | [Cfg] DUT runs IPv4 routing config with 1 phy core, \ -| | ... | 1 receive queue per NIC port. [Ver] Find PDR for IMIX_v4_1 frame \ -| | ... | size using binary search start at 10GE linerate, step 10kpps, LT=0.5%. -| | ... | IMIX_v4_1 = (28x64B;16x570B;4x1518B) -| | [Tags] | IMIX | 1C | PDRDISC | SKIP_PATCH -| | ${framesize}= | Set Variable | IMIX_v4_1 -| | ${min_rate}= | Set Variable | ${10000} -| | ${max_rate}= | Calculate pps | ${s_limit} | ${framesize} -| | ${binary_min}= | Set Variable | ${min_rate} -| | ${binary_max}= | Set Variable | ${max_rate} -| | ${threshold}= | Set Variable | ${min_rate} -| | ${dut1_vm_refs}= | Create Dictionary -| | ${dut2_vm_refs}= | Create Dictionary -| | Given Add worker threads and rxqueues to all DUTs | 1 -| | And Add PCI devices to all DUTs -| | And 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} -| | Then Find PDR using binary search and pps | ${framesize} | ${binary_min} -| | ... | ${binary_max} | ${traffic_profile} -| | ... | ${min_rate} | ${max_rate} | ${threshold} -| | ... | ${perf_pdr_loss_acceptance} | ${perf_pdr_loss_acceptance_type} - -| tc07-64B-2t2c-ethip4-ip4base-eth-2vhostvr1024-1vm-ndrdisc -| | [Documentation] -| | ... | [Cfg] DUT runs IPv4 routing config with 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 | 2C | NDRDISC -| | ${framesize}= | Set Variable | ${64} -| | ${min_rate}= | Set Variable | ${10000} -| | ${max_rate}= | Calculate pps | ${s_limit} | ${framesize} -| | ${binary_min}= | Set Variable | ${min_rate} -| | ${binary_max}= | Set Variable | ${max_rate} -| | ${threshold}= | Set Variable | ${min_rate} -| | ${dut1_vm_refs}= | Create Dictionary -| | ${dut2_vm_refs}= | Create Dictionary -| | Given Add worker threads and rxqueues to all DUTs | 2 -| | And Add PCI devices to all DUTs -| | And 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} -| | Then Find NDR using binary search and pps | ${framesize} | ${binary_min} -| | ... | ${binary_max} | ${traffic_profile} -| | ... | ${min_rate} | ${max_rate} | ${threshold} - -| tc08-64B-2t2c-ethip4-ip4base-eth-2vhostvr1024-1vm-pdrdisc -| | [Documentation] -| | ... | [Cfg] DUT runs IPv4 routing config with 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 | 2C | PDRDISC | SKIP_PATCH -| | ${framesize}= | Set Variable | ${64} -| | ${min_rate}= | Set Variable | ${10000} -| | ${max_rate}= | Calculate pps | ${s_limit} | ${framesize} -| | ${binary_min}= | Set Variable | ${min_rate} -| | ${binary_max}= | Set Variable | ${max_rate} -| | ${threshold}= | Set Variable | ${min_rate} -| | ${dut1_vm_refs}= | Create Dictionary -| | ${dut2_vm_refs}= | Create Dictionary -| | Given Add worker threads and rxqueues to all DUTs | 2 -| | And Add PCI devices to all DUTs -| | And 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} -| | Then Find PDR using binary search and pps | ${framesize} | ${binary_min} -| | ... | ${binary_max} | ${traffic_profile} -| | ... | ${min_rate} | ${max_rate} | ${threshold} -| | ... | ${perf_pdr_loss_acceptance} | ${perf_pdr_loss_acceptance_type} - -| tc09-1518B-2t2c-ethip4-ip4base-eth-2vhostvr1024-1vm-ndrdisc -| | [Documentation] -| | ... | [Cfg] DUT runs IPv4 routing config with 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 | 2C | NDRDISC | SKIP_PATCH -| | ${framesize}= | Set Variable | ${1518} -| | ${min_rate}= | Set Variable | ${10000} -| | ${max_rate}= | Calculate pps | ${s_limit} | ${framesize} -| | ${binary_min}= | Set Variable | ${min_rate} -| | ${binary_max}= | Set Variable | ${max_rate} -| | ${threshold}= | Set Variable | ${min_rate} -| | ${dut1_vm_refs}= | Create Dictionary -| | ${dut2_vm_refs}= | Create Dictionary -| | Given Add worker threads and rxqueues to all DUTs | 2 -| | And Add PCI devices to all DUTs -| | And 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} -| | Then Find NDR using binary search and pps | ${framesize} | ${binary_min} -| | ... | ${binary_max} | ${traffic_profile} -| | ... | ${min_rate} | ${max_rate} | ${threshold} - -| tc10-1518B-2t2c-ethip4-ip4base-eth-2vhostvr1024-1vm-pdrdisc -| | [Documentation] -| | ... | [Cfg] DUT runs IPv4 routing config with 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 | 2C | PDRDISC | SKIP_PATCH -| | ${framesize}= | Set Variable | ${1518} -| | ${min_rate}= | Set Variable | ${10000} -| | ${max_rate}= | Calculate pps | ${s_limit} | ${framesize} -| | ${binary_min}= | Set Variable | ${min_rate} -| | ${binary_max}= | Set Variable | ${max_rate} -| | ${threshold}= | Set Variable | ${min_rate} -| | ${dut1_vm_refs}= | Create Dictionary -| | ${dut2_vm_refs}= | Create Dictionary -| | Given Add worker threads and rxqueues to all DUTs | 2 -| | And Add PCI devices to all DUTs -| | And 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} -| | Then Find PDR using binary search and pps | ${framesize} | ${binary_min} -| | ... | ${binary_max} | ${traffic_profile} -| | ... | ${min_rate} | ${max_rate} | ${threshold} -| | ... | ${perf_pdr_loss_acceptance} | ${perf_pdr_loss_acceptance_type} - -| tc11-IMIX-2t2c-ethip4-ip4base-eth-2vhostvr1024-1vm-ndrdisc -| | [Documentation] -| | ... | [Cfg] DUT runs IPv4 routing config with 2 phy cores, \ -| | ... | 1 receive queue per NIC port. [Ver] Find NDR for IMIX_v4_1 frame \ -| | ... | size using binary search start at 10GE linerate, step 10kpps. -| | ... | IMIX_v4_1 = (28x64B;16x570B;4x1518B) -| | [Tags] | IMIX | 2C | NDRDISC | SKIP_PATCH -| | ${framesize}= | Set Variable | IMIX_v4_1 -| | ${min_rate}= | Set Variable | ${10000} -| | ${max_rate}= | Calculate pps | ${s_limit} | ${framesize} -| | ${binary_min}= | Set Variable | ${min_rate} -| | ${binary_max}= | Set Variable | ${max_rate} -| | ${threshold}= | Set Variable | ${min_rate} -| | ${dut1_vm_refs}= | Create Dictionary -| | ${dut2_vm_refs}= | Create Dictionary -| | Given Add worker threads and rxqueues to all DUTs | 2 -| | And Add PCI devices to all DUTs -| | And 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} -| | Then Find NDR using binary search and pps | ${framesize} | ${binary_min} -| | ... | ${binary_max} | ${traffic_profile} -| | ... | ${min_rate} | ${max_rate} | ${threshold} - -| tc12-IMIX-2t2c-ethip4-ip4base-eth-2vhostvr1024-1vm-pdrdisc -| | [Documentation] -| | ... | [Cfg] DUT runs IPv4 routing config with 2 phy cores, \ -| | ... | 1 receive queue per NIC port. [Ver] Find PDR for IMIX_v4_1 frame \ -| | ... | size using binary search start at 10GE linerate, step 10kpps, LT=0.5%. -| | ... | IMIX_v4_1 = (28x64B;16x570B;4x1518B) -| | [Tags] | IMIX | 2C | PDRDISC | SKIP_PATCH -| | ${framesize}= | Set Variable | IMIX_v4_1 -| | ${min_rate}= | Set Variable | ${10000} -| | ${max_rate}= | Calculate pps | ${s_limit} | ${framesize} -| | ${binary_min}= | Set Variable | ${min_rate} -| | ${binary_max}= | Set Variable | ${max_rate} -| | ${threshold}= | Set Variable | ${min_rate} -| | ${dut1_vm_refs}= | Create Dictionary -| | ${dut2_vm_refs}= | Create Dictionary -| | Given Add worker threads and rxqueues to all DUTs | 2 -| | And Add PCI devices to all DUTs -| | And 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} -| | Then Find PDR using binary search and pps | ${framesize} | ${binary_min} -| | ... | ${binary_max} | ${traffic_profile} -| | ... | ${min_rate} | ${max_rate} | ${threshold} -| | ... | ${perf_pdr_loss_acceptance} | ${perf_pdr_loss_acceptance_type} - -| tc13-64B-4t4c-ethip4-ip4base-eth-2vhostvr1024-1vm-ndrdisc -| | [Documentation] -| | ... | [Cfg] DUT runs IPv4 routing config with 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 | 4C | NDRDISC -| | ${framesize}= | Set Variable | ${64} -| | ${min_rate}= | Set Variable | ${10000} -| | ${max_rate}= | Calculate pps | ${s_limit} | ${framesize} -| | ${binary_min}= | Set Variable | ${min_rate} -| | ${binary_max}= | Set Variable | ${max_rate} -| | ${threshold}= | Set Variable | ${min_rate} -| | ${dut1_vm_refs}= | Create Dictionary -| | ${dut2_vm_refs}= | Create Dictionary -| | Given Add worker threads and rxqueues to all DUTs | 4 -| | And Add PCI devices to all DUTs -| | And 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} -| | Then Find NDR using binary search and pps | ${framesize} | ${binary_min} -| | ... | ${binary_max} | ${traffic_profile} -| | ... | ${min_rate} | ${max_rate} | ${threshold} - -| tc14-64B-4t4c-ethip4-ip4base-eth-2vhostvr1024-1vm-pdrdisc -| | [Documentation] -| | ... | [Cfg] DUT runs IPv4 routing config with 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 | 4C | PDRDISC | SKIP_PATCH -| | ${framesize}= | Set Variable | ${64} -| | ${min_rate}= | Set Variable | ${10000} -| | ${max_rate}= | Calculate pps | ${s_limit} | ${framesize} -| | ${binary_min}= | Set Variable | ${min_rate} -| | ${binary_max}= | Set Variable | ${max_rate} -| | ${threshold}= | Set Variable | ${min_rate} -| | ${dut1_vm_refs}= | Create Dictionary -| | ${dut2_vm_refs}= | Create Dictionary -| | Given Add worker threads and rxqueues to all DUTs | 4 -| | And Add PCI devices to all DUTs -| | And 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} -| | Then Find PDR using binary search and pps | ${framesize} | ${binary_min} -| | ... | ${binary_max} | ${traffic_profile} -| | ... | ${min_rate} | ${max_rate} | ${threshold} -| | ... | ${perf_pdr_loss_acceptance} | ${perf_pdr_loss_acceptance_type} - -| tc15-1518B-4t4c-ethip4-ip4base-eth-2vhostvr1024-1vm-ndrdisc -| | [Documentation] -| | ... | [Cfg] DUT runs IPv4 routing config with 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 | 4C | NDRDISC | SKIP_PATCH -| | ${framesize}= | Set Variable | ${1518} -| | ${min_rate}= | Set Variable | ${10000} -| | ${max_rate}= | Calculate pps | ${s_limit} | ${framesize} -| | ${binary_min}= | Set Variable | ${min_rate} -| | ${binary_max}= | Set Variable | ${max_rate} -| | ${threshold}= | Set Variable | ${min_rate} -| | ${dut1_vm_refs}= | Create Dictionary -| | ${dut2_vm_refs}= | Create Dictionary -| | Given Add worker threads and rxqueues to all DUTs | 4 -| | And Add PCI devices to all DUTs -| | And 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} -| | Then Find NDR using binary search and pps | ${framesize} | ${binary_min} -| | ... | ${binary_max} | ${traffic_profile} -| | ... | ${min_rate} | ${max_rate} | ${threshold} - -| tc16-1518B-4t4c-ethip4-ip4base-eth-2vhostvr1024-1vm-pdrdisc -| | [Documentation] -| | ... | [Cfg] DUT runs IPv4 routing config with 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 | 4C | PDRDISC | SKIP_PATCH -| | ${framesize}= | Set Variable | ${1518} -| | ${min_rate}= | Set Variable | ${10000} -| | ${max_rate}= | Calculate pps | ${s_limit} | ${framesize} -| | ${binary_min}= | Set Variable | ${min_rate} -| | ${binary_max}= | Set Variable | ${max_rate} -| | ${threshold}= | Set Variable | ${min_rate} -| | ${dut1_vm_refs}= | Create Dictionary -| | ${dut2_vm_refs}= | Create Dictionary -| | Given Add worker threads and rxqueues to all DUTs | 4 -| | And Add PCI devices to all DUTs -| | And 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} -| | Then Find PDR using binary search and pps | ${framesize} | ${binary_min} -| | ... | ${binary_max} | ${traffic_profile} -| | ... | ${min_rate} | ${max_rate} | ${threshold} -| | ... | ${perf_pdr_loss_acceptance} | ${perf_pdr_loss_acceptance_type} - -| tc17-IMIX-4t4c-ethip4-ip4base-eth-2vhostvr1024-1vm-ndrdisc -| | [Documentation] -| | ... | [Cfg] DUT runs IPv4 routing config with 4 phy cores, \ -| | ... | 2 receive queues per NIC port. [Ver] Find NDR for IMIX_v4_1 frame \ -| | ... | size using binary search start at 10GE linerate, step 10kpps. -| | ... | IMIX_v4_1 = (28x64B;16x570B;4x1518B) -| | [Tags] | IMIX | 4C | NDRDISC | SKIP_PATCH -| | ${framesize}= | Set Variable | IMIX_v4_1 -| | ${min_rate}= | Set Variable | ${10000} -| | ${max_rate}= | Calculate pps | ${s_limit} | ${framesize} -| | ${binary_min}= | Set Variable | ${min_rate} -| | ${binary_max}= | Set Variable | ${max_rate} -| | ${threshold}= | Set Variable | ${min_rate} -| | ${dut1_vm_refs}= | Create Dictionary -| | ${dut2_vm_refs}= | Create Dictionary -| | Given Add worker threads and rxqueues to all DUTs | 4 -| | And Add PCI devices to all DUTs -| | And 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} -| | Then Find NDR using binary search and pps | ${framesize} | ${binary_min} -| | ... | ${binary_max} | ${traffic_profile} -| | ... | ${min_rate} | ${max_rate} | ${threshold} - -| tc18-IMIX-4t4c-ethip4-ip4base-eth-2vhostvr1024-1vm-pdrdisc -| | [Documentation] -| | ... | [Cfg] DUT runs IPv4 routing config with 4 phy cores, \ -| | ... | 2 receive queues per NIC port. [Ver] Find PDR for IMIX_v4_1 frame \ -| | ... | size using binary search start at 10GE linerate, step 10kpps, LT=0.5%. -| | ... | IMIX_v4_1 = (28x64B;16x570B;4x1518B) -| | [Tags] | IMIX | 4C | PDRDISC | SKIP_PATCH -| | ${framesize}= | Set Variable | IMIX_v4_1 -| | ${min_rate}= | Set Variable | ${10000} -| | ${max_rate}= | Calculate pps | ${s_limit} | ${framesize} -| | ${binary_min}= | Set Variable | ${min_rate} -| | ${binary_max}= | Set Variable | ${max_rate} -| | ${threshold}= | Set Variable | ${min_rate} -| | ${dut1_vm_refs}= | Create Dictionary -| | ${dut2_vm_refs}= | Create Dictionary -| | Given Add worker threads and rxqueues to all DUTs | 4 -| | And Add PCI devices to all DUTs -| | And 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} -| | Then Find PDR using binary search and pps | ${framesize} | ${binary_min} -| | ... | ${binary_max} | ${traffic_profile} -| | ... | ${min_rate} | ${max_rate} | ${threshold} -| | ... | ${perf_pdr_loss_acceptance} | ${perf_pdr_loss_acceptance_type} diff --git a/tests/vpp/perf/vm_vhost/10ge2p1x520-ethip4-ip4base-eth-2vhostvr256-1vm-cfsrr1-mrr.robot b/tests/vpp/perf/vm_vhost/10ge2p1x520-ethip4-ip4base-eth-2vhostvr256-1vm-cfsrr1-mrr.robot new file mode 100644 index 0000000000..86cb4494c7 --- /dev/null +++ b/tests/vpp/perf/vm_vhost/10ge2p1x520-ethip4-ip4base-eth-2vhostvr256-1vm-cfsrr1-mrr.robot @@ -0,0 +1,158 @@ +# Copyright (c) 2018 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 | MRR +| ... | NIC_Intel-X520-DA2 | ETH | IP4FWD | BASE | VHOST | VM | VHOST_256 +| ... | CFS_OPT +| ... +| 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 mrr test with vhost and VM with dpdk-testpmd +| ... | dut1_node=${dut1} | dut1_vm_refs=${dut1_vm_refs} +| ... | dut2_node=${dut2} | dut2_vm_refs=${dut2_vm_refs} +| ... +| Test Template | Local Template +| ... +| Documentation | *Raw results 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:* In MaxReceivedRate test TG sends traffic +| ... | at line rate and reports total received/sent packets over trial period. +| ... | 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 *** +| ${perf_qemu_qsz}= | 256 +# 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 *** +| Local Template +| | [Documentation] +| | ... | [Cfg] DUT runs IP4 routing config with required number of threads,\ +| | ... | phy cores and receive queues per NIC port. +| | ... | [Ver] Measure MaxReceivedRate for ${framesize}B frames using single\ +| | ... | trial throughput test. +| | ... +| | ... | *Arguments:* +| | ... | - framesize - Framesize in Bytes in integer or string (IMIX_v4_1). +| | ... | Type: integer, string +| | ... | - phy_cores - Number of physical cores. Type: integer +| | ... | - rxq - Number of RX queues, default value: ${None}. Type: integer +| | ... +| | [Arguments] | ${framesize} | ${phy_cores} | ${rxq}=${None} +| | ... +| | Set Test Variable | ${use_tuned_cfs} | ${True} +| | ${dut1_vm_refs}= | Create Dictionary +| | ${dut2_vm_refs}= | Create Dictionary +| | Set Test Variable | ${dut1_vm_refs} +| | Set Test Variable | ${dut2_vm_refs} +| | ... +| | Given Add worker threads and rxqueues to all DUTs | ${phy_cores} | ${rxq} +| | And Add PCI devices to all DUTs +| | ${max_rate} | ${jumbo} = | Get Max Rate And Jumbo And Handle Multi Seg +| | ... | ${s_limit} | ${framesize} +| | 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} | jumbo_frames=${jumbo} +| | 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} | jumbo_frames=${jumbo} +| | Set To Dictionary | ${dut2_vm_refs} | DUT2_VM1 | ${vm2} +| | Setup Scheduler Policy for Vpp On All DUTs +| | Then Traffic should pass with maximum rate +| | ... | ${max_rate}pps | ${framesize} | ${traffic_profile} + +*** Test Cases *** +| tc01-64B-1c-ethip4-ip4base-eth-2vhostvr256-1vm-cfsrr1-mrr +| | [Tags] | 64B | 1C +| | framesize=${64} | phy_cores=${1} + +| tc02-64B-2c-ethip4-ip4base-eth-2vhostvr256-1vm-cfsrr1-mrr +| | [Tags] | 64B | 2C +| | framesize=${64} | phy_cores=${2} + +| tc03-64B-4c-ethip4-ip4base-eth-2vhostvr256-1vm-cfsrr1-mrr +| | [Tags] | 64B | 4C +| | framesize=${64} | phy_cores=${4} + +| tc04-1518B-1c-ethip4-ip4base-eth-2vhostvr256-1vm-cfsrr1-mrr +| | [Tags] | 1518B | 1C +| | framesize=${1518} | phy_cores=${1} + +| tc05-1518B-2c-ethip4-ip4base-eth-2vhostvr256-1vm-cfsrr1-mrr +| | [Tags] | 1518B | 2C +| | framesize=${1518} | phy_cores=${2} + +| tc06-1518B-4c-ethip4-ip4base-eth-2vhostvr256-1vm-cfsrr1-mrr +| | [Tags] | 1518B | 4C +| | framesize=${1518} | phy_cores=${4} + +| tc07-9000B-1c-ethip4-ip4base-eth-2vhostvr256-1vm-cfsrr1-mrr +| | [Tags] | 9000B | 1C +| | framesize=${9000} | phy_cores=${1} + +| tc08-9000B-2c-ethip4-ip4base-eth-2vhostvr256-1vm-cfsrr1-mrr +| | [Tags] | 9000B | 2C +| | framesize=${9000} | phy_cores=${2} + +| tc09-9000B-4c-ethip4-ip4base-eth-2vhostvr256-1vm-cfsrr1-mrr +| | [Tags] | 9000B | 4C +| | framesize=${9000} | phy_cores=${4} + +| tc10-IMIX-1c-ethip4-ip4base-eth-2vhostvr256-1vm-cfsrr1-mrr +| | [Tags] | IMIX | 1C +| | framesize=IMIX_v4_1 | phy_cores=${1} + +| tc11-IMIX-2c-ethip4-ip4base-eth-2vhostvr256-1vm-cfsrr1-mrr +| | [Tags] | IMIX | 2C +| | framesize=IMIX_v4_1 | phy_cores=${2} + +| tc12-IMIX-4c-ethip4-ip4base-eth-2vhostvr256-1vm-cfsrr1-mrr +| | [Tags] | IMIX | 4C +| | framesize=IMIX_v4_1 | phy_cores=${4} diff --git a/tests/vpp/perf/vm_vhost/10ge2p1x520-ethip4-ip4base-eth-2vhostvr256-1vm-cfsrr1-ndrpdr.robot b/tests/vpp/perf/vm_vhost/10ge2p1x520-ethip4-ip4base-eth-2vhostvr256-1vm-cfsrr1-ndrpdr.robot new file mode 100644 index 0000000000..73796d7be9 --- /dev/null +++ b/tests/vpp/perf/vm_vhost/10ge2p1x520-ethip4-ip4base-eth-2vhostvr256-1vm-cfsrr1-ndrpdr.robot @@ -0,0 +1,163 @@ +# Copyright (c) 2018 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 | NDRPDR +| ... | NIC_Intel-X520-DA2 | ETH | IP4FWD | BASE | VHOST | VM | VHOST_256 +| ... | CFS_OPT +| ... +| 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} +| ... +| Test Template | Local Template +| ... +| 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 MLRsearch library. +| ... | 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 *** +| ${perf_qemu_qsz}= | 256 +# 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 *** +| Local Template +| | [Documentation] +| | ... | [Cfg] DUT runs IP4 routing config with required number of threads,\ +| | ... | phy cores and receive queues per NIC port. +| | ... | [Ver] Measure NDR and PDR values using MLRsearch algorithm.\ +| | ... +| | ... | *Arguments:* +| | ... | - framesize - Framesize in Bytes in integer or string (IMIX_v4_1). +| | ... | Type: integer, string +| | ... | - phy_cores - Number of physical cores. Type: integer +| | ... | - rxq - Number of RX queues, default value: ${None}. Type: integer +| | ... +| | [Arguments] | ${framesize} | ${phy_cores} | ${rxq}=${None} +| | ... +| | Set Test Variable | ${use_tuned_cfs} | ${True} +| | Set Test Variable | ${framesize} +| | Set Test Variable | ${min_rate} | ${10000} +| | ${dut1_vm_refs}= | Create Dictionary +| | ${dut2_vm_refs}= | Create Dictionary +| | Set Test Variable | ${dut1_vm_refs} +| | Set Test Variable | ${dut2_vm_refs} +| | ... +| | Given Add worker threads and rxqueues to all DUTs | ${phy_cores} | ${rxq} +| | And Add PCI devices to all DUTs +| | ${max_rate} | ${jumbo} = | Get Max Rate And Jumbo And Handle Multi Seg +| | ... | ${s_limit} | ${framesize} +| | 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} | jumbo_frames=${jumbo} +| | 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} | jumbo_frames=${jumbo} +| | Set To Dictionary | ${dut2_vm_refs} | DUT2_VM1 | ${vm2} +| | Setup Scheduler Policy for Vpp On All DUTs +| | Then Find NDR and PDR intervals using optimized search +| | ... | ${framesize} | ${traffic_profile} | ${min_rate} | ${max_rate} + +*** Test Cases *** +| tc01-64B-1c-ethip4-ip4base-eth-2vhostvr256-1vm-cfsrr1-ndrpdr +| | [Tags] | 64B | 1C +| | framesize=${64} | phy_cores=${1} + +| tc02-64B-2c-ethip4-ip4base-eth-2vhostvr256-1vm-cfsrr1-ndrpdr +| | [Tags] | 64B | 2C +| | framesize=${64} | phy_cores=${2} + +| tc03-64B-4c-ethip4-ip4base-eth-2vhostvr256-1vm-cfsrr1-ndrpdr +| | [Tags] | 64B | 4C +| | framesize=${64} | phy_cores=${4} + +| tc04-1518B-1c-ethip4-ip4base-eth-2vhostvr256-1vm-cfsrr1-ndrpdr +| | [Tags] | 1518B | 1C +| | framesize=${1518} | phy_cores=${1} + +| tc05-1518B-2c-ethip4-ip4base-eth-2vhostvr256-1vm-cfsrr1-ndrpdr +| | [Tags] | 1518B | 2C +| | framesize=${1518} | phy_cores=${2} + +| tc06-1518B-4c-ethip4-ip4base-eth-2vhostvr256-1vm-cfsrr1-ndrpdr +| | [Tags] | 1518B | 4C +| | framesize=${1518} | phy_cores=${4} + +| tc07-9000B-1c-ethip4-ip4base-eth-2vhostvr256-1vm-cfsrr1-ndrpdr +| | [Tags] | 9000B | 1C +| | framesize=${9000} | phy_cores=${1} + +| tc08-9000B-2c-ethip4-ip4base-eth-2vhostvr256-1vm-cfsrr1-ndrpdr +| | [Tags] | 9000B | 2C +| | framesize=${9000} | phy_cores=${2} + +| tc09-9000B-4c-ethip4-ip4base-eth-2vhostvr256-1vm-cfsrr1-ndrpdr +| | [Tags] | 9000B | 4C +| | framesize=${9000} | phy_cores=${4} + +| tc10-IMIX-1c-ethip4-ip4base-eth-2vhostvr256-1vm-cfsrr1-ndrpdr +| | [Tags] | IMIX | 1C +| | framesize=IMIX_v4_1 | phy_cores=${1} + +| tc11-IMIX-2c-ethip4-ip4base-eth-2vhostvr256-1vm-cfsrr1-ndrpdr +| | [Tags] | IMIX | 2C +| | framesize=IMIX_v4_1 | phy_cores=${2} + +| tc12-IMIX-4c-ethip4-ip4base-eth-2vhostvr256-1vm-cfsrr1-ndrpdr +| | [Tags] | IMIX | 4C +| | framesize=IMIX_v4_1 | phy_cores=${4} 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 deleted file mode 100644 index 47fa40f069..0000000000 --- a/tests/vpp/perf/vm_vhost/10ge2p1x520-ethip4-ip4base-eth-2vhostvr256-1vm-cfsrr1-ndrpdrdisc.robot +++ /dev/null @@ -1,205 +0,0 @@ -# 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 | ETH | IP4FWD | BASE | VHOST | VM | VHOST_256 -| ... | CFS_OPT -| ... -| 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} -| ... -| Test Template | Local template -| ... -| 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 *** -| ${perf_qemu_qsz}= | 256 -| ${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 *** -| Local template -| | [Arguments] | ${phy_cores} | ${framesize} | ${search_type} | ${rxq}=${None} -| | ... | ${min_rate}=${10000} -| | ... -| | [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 | ${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 worker threads and rxqueues to all DUTs | ${phy_cores} | ${rxq} -| | And Add PCI devices to all DUTs -| | And Run Keyword If | ${get_framesize} < ${1522} | Add no multi seg to all DUTs -| | And Apply startup configuration on all VPP DUTs -| | When Initialize IPv4 forwarding 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} -| | Setup Scheduler Policy for Vpp On All DUTs -| | 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 -| | [Tags] | 64B | 1C | NDRDISC -| | phy_cores=${1} | framesize=${64} | search_type=NDR - -| tc02-64B-1t1c-ethip4-ip4base-eth-2vhostvr256-1vm-cfsrr1-pdrdisc -| | [Tags] | 64B | 1C | PDRDISC | SKIP_PATCH -| | phy_cores=${1} | framesize=${64} | search_type=PDR - -| tc03-1518B-1t1c--ethip4-ip4base-eth-2vhostvr256-1vm-cfsrr1-ndrdisc -| | [Tags] | 1518B | 1C | NDRDISC -| | phy_cores=${1} | framesize=${1518} | search_type=NDR - -| tc04-1518B-1t1c-ethip4-ip4base-eth-2vhostvr256-1vm-cfsrr1-pdrdisc -| | [Tags] | 1518B | 1C | PDRDISC | SKIP_PATCH -| | phy_cores=${1} | framesize=${1518} | search_type=PDR - -| tc05-IMIX-1t1c-ethip4-ip4base-eth-2vhostvr256-1vm-cfsrr1-ndrdisc -| | [Tags] | IMIX | 1C | NDRDISC -| | phy_cores=${1} | framesize=IMIX_v4_1 | search_type=NDR - -| tc06-IMIX-1t1c-ethip4-ip4base-eth-2vhostvr256-1vm-cfsrr1-pdrdisc -| | [Tags] | IMIX | 1C | PDRDISC | SKIP_PATCH -| | phy_cores=${1} | framesize=IMIX_v4_1 | search_type=PDR - -| tc07-64B-2t2c-ethip4-ip4base-eth-2vhostvr256-1vm-cfsrr1-ndrdisc -| | [Tags] | 64B | 2C | NDRDISC -| | phy_cores=${2} | framesize=${64} | search_type=NDR - -| tc08-64B-2t2c-ethip4-ip4base-eth-2vhostvr256-1vm-cfsrr1-pdrdisc -| | [Tags] | 64B | 2C | PDRDISC | SKIP_PATCH -| | phy_cores=${2} | framesize=${64} | search_type=PDR - -| tc09-1518B-2t2c-ethip4-ip4base-eth-2vhostvr256-1vm-cfsrr1-ndrdisc -| | [Tags] | 1518B | 2C | NDRDISC | SKIP_PATCH -| | phy_cores=${2} | framesize=${1518} | search_type=NDR - -| tc10-1518B-2t2c-ethip4-ip4base-eth-2vhostvr256-1vm-cfsrr1-pdrdisc -| | [Tags] | 1518B | 2C | PDRDISC | SKIP_PATCH -| | phy_cores=${2} | framesize=${1518} | search_type=PDR - -| tc11-IMIX-2t2c-ethip4-ip4base-eth-2vhostvr256-1vm-cfsrr1-ndrdisc -| | [Tags] | IMIX | 2C | NDRDISC | SKIP_PATCH -| | phy_cores=${2} | framesize=IMIX_v4_1 | search_type=NDR - -| tc12-IMIX-2t2c-ethip4-ip4base-eth-2vhostvr256-1vm-cfsrr1-pdrdisc -| | [Tags] | IMIX | 2C | PDRDISC | SKIP_PATCH -| | phy_cores=${2} | framesize=IMIX_v4_1 | search_type=PDR - -| tc13-64B-4t4c-ethip4-ip4base-eth-2vhostvr256-1vm-cfsrr1-ndrdisc -| | [Tags] | 64B | 4C | NDRDISC -| | phy_cores=${4} | framesize=${64} | search_type=NDR - -| tc14-64B-4t4c-ethip4-ip4base-eth-2vhostvr256-1vm-cfsrr1-pdrdisc -| | [Tags] | 64B | 4C | PDRDISC | SKIP_PATCH -| | phy_cores=${4} | framesize=${64} | search_type=PDR - -| tc15-1518B-4t4c-ethip4-ip4base-eth-2vhostvr256-1vm-cfsrr1-ndrdisc -| | [Tags] | 1518B | 4C | NDRDISC | SKIP_PATCH -| | phy_cores=${4} | framesize=${1518} | search_type=NDR - -| tc16-1518B-4t4c-ethip4-ip4base-eth-2vhostvr256-1vm-cfsrr1-pdrdisc -| | [Tags] | 1518B | 4C | PDRDISC | SKIP_PATCH -| | phy_cores=${4} | framesize=${1518} | search_type=PDR - -| tc17-IMIX-4t4c-ethip4-ip4base-eth-2vhostvr256-1vm-cfsrr1-ndrdisc -| | [Tags] | IMIX | 4C | NDRDISC | SKIP_PATCH -| | phy_cores=${4} | framesize=IMIX_v4_1 | search_type=NDR - -| tc18-IMIX-4t4c-ethip4-ip4base-eth-2vhostvr256-1vm-cfsrr1-pdrdisc -| | [Tags] | IMIX | 4C | PDRDISC | SKIP_PATCH -| | phy_cores=${4} | framesize=IMIX_v4_1 | search_type=PDR diff --git a/tests/vpp/perf/vm_vhost/10ge2p1x520-ethip4-ip4base-eth-2vhostvr256-1vm-mrr.robot b/tests/vpp/perf/vm_vhost/10ge2p1x520-ethip4-ip4base-eth-2vhostvr256-1vm-mrr.robot index 92d31abe7a..0dd3ba4697 100644 --- a/tests/vpp/perf/vm_vhost/10ge2p1x520-ethip4-ip4base-eth-2vhostvr256-1vm-mrr.robot +++ b/tests/vpp/perf/vm_vhost/10ge2p1x520-ethip4-ip4base-eth-2vhostvr256-1vm-mrr.robot @@ -27,7 +27,7 @@ | ... | dut1_node=${dut1} | dut1_vm_refs=${dut1_vm_refs} | ... | dut2_node=${dut2} | dut2_vm_refs=${dut2_vm_refs} | ... -| Test Template | Local template +| Test Template | Local Template | ... | Documentation | *Raw results IPv4 test cases with vhost* | ... @@ -64,7 +64,7 @@ | ${traffic_profile}= | trex-sl-3n-ethip4-ip4src253 *** Keywords *** -| Local template +| Local Template | | [Documentation] | | ... | [Cfg] DUT runs IPv4 routing config with. | | ... | Each DUT uses ${phy_cores} physical core(s) for worker threads. @@ -79,79 +79,74 @@ | | ... | | [Arguments] | ${framesize} | ${phy_cores} | ${rxq}=${None} | | ... -| | Set Test Variable | ${framesize} -| | ${get_framesize}= | Get Frame Size | ${framesize} -| | ${max_rate}= | Calculate pps | ${s_limit} | ${get_framesize} | | ${dut1_vm_refs}= | Create Dictionary | | ${dut2_vm_refs}= | Create Dictionary | | Set Test Variable | ${dut1_vm_refs} | | Set Test Variable | ${dut2_vm_refs} -| | ${jumbo_frames}= | Set Variable If | ${get_framesize} < ${1522} -| | ... | ${False} | ${True} | | ... | | Given Add worker threads and rxqueues to all DUTs | ${phy_cores} | ${rxq} | | And Add PCI devices to all DUTs -| | And Run Keyword If | ${get_framesize} < ${1522} -| | ... | Add no multi seg to all DUTs +| | ${max_rate} | ${jumbo} = | Get Max Rate And Jumbo And Handle Multi Seg +| | ... | ${s_limit} | ${framesize} | | 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} | jumbo_frames=${jumbo_frames} +| | ... | ${dut1_vif2_mac} | jumbo_frames=${jumbo} | | 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} | jumbo_frames=${jumbo_frames} +| | ... | ${dut2_vif2_mac} | jumbo_frames=${jumbo} | | Set To Dictionary | ${dut2_vm_refs} | DUT2_VM1 | ${vm2} | | Then Traffic should pass with maximum rate | | ... | ${max_rate}pps | ${framesize} | ${traffic_profile} *** Test Cases *** -| tc01-64B-1t1c-ethip4-ip4base-eth-2vhostvr256-1vm-mrr +| tc01-64B-1c-ethip4-ip4base-eth-2vhostvr256-1vm-mrr | | [Tags] | 64B | 1C | | framesize=${64} | phy_cores=${1} -| tc02-1518B-1t1c-ethip4-ip4base-eth-2vhostvr256-1vm -| | [Tags] | 1518B | 1C -| | framesize=${1518} | phy_cores=${1} - -| tc03-9000B-1t1c-ethip4-ip4base-eth-2vhostvr256-1vm -| | [Tags] | 9000B | 1C -| | framesize=${9000} | phy_cores=${1} - -| tc04-IMIX-1t1c-ethip4-ip4base-eth-2vhostvr256-1vm-mrr -| | [Tags] | IMIX | 1C -| | framesize=IMIX_v4_1 | phy_cores=${1} - -| tc05-64B-2t2c-ethip4-ip4base-eth-2vhostvr256-1vm-mrr +| tc02-64B-2c-ethip4-ip4base-eth-2vhostvr256-1vm-mrr | | [Tags] | 64B | 2C | | framesize=${64} | phy_cores=${2} -| tc06-1518B-2t2c-ethip4-ip4base-eth-2vhostvr256-1vm-mrr -| | [Tags] | 1518B | 2C -| | framesize=${1518} | phy_cores=${2} - -| tc07-9000B-2t2c-ethip4-ip4base-eth-2vhostvr256-1vm-mrr -| | [Tags] | 9000B | 2C -| | framesize=${9000} | phy_cores=${2} - -| tc08-IMIX-2t2c-ethip4-ip4base-eth-2vhostvr256-1vm-mrr -| | [Tags] | IMIX | 2C -| | framesize=IMIX_v4_1 | phy_cores=${2} - -| tc09-64B-4t4c-ethip4-ip4base-eth-2vhostvr256-1vm-mrr +| tc03-64B-4c-ethip4-ip4base-eth-2vhostvr256-1vm-mrr | | [Tags] | 64B | 4C | | framesize=${64} | phy_cores=${4} -| tc10-1518B-4t4c-ethip4-ip4base-eth-2vhostvr256-1vm-mrr +| tc04-1518B-1c-ethip4-ip4base-eth-2vhostvr256-1vm-mrr +| | [Tags] | 1518B | 1C +| | framesize=${1518} | phy_cores=${1} + +| tc05-1518B-2c-ethip4-ip4base-eth-2vhostvr256-1vm-mrr +| | [Tags] | 1518B | 2C +| | framesize=${1518} | phy_cores=${2} + +| tc06-1518B-4c-ethip4-ip4base-eth-2vhostvr256-1vm-mrr | | [Tags] | 1518B | 4C | | framesize=${1518} | phy_cores=${4} -| tc11-9000B-4t4c-ethip4-ip4base-eth-2vhostvr256-1vm-mrr +| tc07-9000B-1c-ethip4-ip4base-eth-2vhostvr256-1vm-mrr +| | [Tags] | 9000B | 1C +| | framesize=${9000} | phy_cores=${1} + +| tc08-9000B-2c-ethip4-ip4base-eth-2vhostvr256-1vm-mrr +| | [Tags] | 9000B | 2C +| | framesize=${9000} | phy_cores=${2} + +| tc09-9000B-4c-ethip4-ip4base-eth-2vhostvr256-1vm-mrr | | [Tags] | 9000B | 4C | | framesize=${9000} | phy_cores=${4} -| tc12-IMIX-4t4c-ethip4-ip4base-eth-2vhostvr256-1vm-mrr +| tc10-IMIX-1c-ethip4-ip4base-eth-2vhostvr256-1vm-mrr +| | [Tags] | IMIX | 1C +| | framesize=IMIX_v4_1 | phy_cores=${1} + +| tc11-IMIX-2c-ethip4-ip4base-eth-2vhostvr256-1vm-mrr +| | [Tags] | IMIX | 2C +| | framesize=IMIX_v4_1 | phy_cores=${2} + +| tc12-IMIX-4c-ethip4-ip4base-eth-2vhostvr256-1vm-mrr | | [Tags] | IMIX | 4C | | framesize=IMIX_v4_1 | phy_cores=${4} diff --git a/tests/vpp/perf/vm_vhost/10ge2p1x520-ethip4-ip4base-eth-2vhostvr256-1vm-ndrpdr.robot b/tests/vpp/perf/vm_vhost/10ge2p1x520-ethip4-ip4base-eth-2vhostvr256-1vm-ndrpdr.robot new file mode 100644 index 0000000000..76072d9e66 --- /dev/null +++ b/tests/vpp/perf/vm_vhost/10ge2p1x520-ethip4-ip4base-eth-2vhostvr256-1vm-ndrpdr.robot @@ -0,0 +1,157 @@ +# Copyright (c) 2018 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 | NDRPDR +| ... | NIC_Intel-X520-DA2 | ETH | IP4FWD | BASE | VHOST | 1VM | VHOST_256 +| ... +| 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} +| ... +| Test Template | Local Template +| ... +| Documentation | *RFC2544: Pkt throughput IPv4 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 MLRsearch library. +| ... | 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. + +*** Variables *** +| ${perf_qemu_qsz}= | 256 +# Socket names +| ${sock1}= | /tmp/sock-1-1 +| ${sock2}= | /tmp/sock-1-2 +# FIB tables +| ${fib_table_1}= | 100 +| ${fib_table_2}= | 101 +# X520-DA2 bandwidth limit +| ${s_limit}= | ${10000000000} +# Traffic profile: +| ${traffic_profile}= | trex-sl-3n-ethip4-ip4src253 + +*** Keywords *** +| Local Template +| | [Documentation] +| | ... | [Cfg] DUT runs IPv4 routing config with. +| | ... | Each DUT uses ${phy_cores} physical core(s) for worker threads. +| | ... | [Ver] Measure NDR and PDR values using MLRsearch algorithm.\ +| | ... +| | ... | *Arguments:* +| | ... | - framesize - Framesize in Bytes in integer or string (IMIX_v4_1). +| | ... | Type: integer, string +| | ... | - phy_cores - Number of physical cores. Type: integer +| | ... | - rxq - Number of RX queues, default value: ${None}. Type: integer +| | ... +| | [Arguments] | ${framesize} | ${phy_cores} | ${rxq}=${None} +| | ... +| | Set Test Variable | ${framesize} +| | Set Test Variable | ${min_rate} | ${10000} +| | ${dut1_vm_refs}= | Create Dictionary +| | ${dut2_vm_refs}= | Create Dictionary +| | Set Test Variable | ${dut1_vm_refs} +| | Set Test Variable | ${dut2_vm_refs} +| | ... +| | Given Add worker threads and rxqueues to all DUTs | ${phy_cores} | ${rxq} +| | And Add PCI devices to all DUTs +| | ${max_rate} | ${jumbo} = | Get Max Rate And Jumbo And Handle Multi Seg +| | ... | ${s_limit} | ${framesize} +| | 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} | jumbo_frames=${jumbo} +| | 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} | jumbo_frames=${jumbo} +| | Set To Dictionary | ${dut2_vm_refs} | DUT2_VM1 | ${vm2} +| | Then Find NDR and PDR intervals using optimized search +| | ... | ${framesize} | ${traffic_profile} | ${min_rate} | ${max_rate} + +*** Test Cases *** +| tc01-64B-1c-ethip4-ip4base-eth-2vhostvr256-1vm-ndrpdr +| | [Tags] | 64B | 1C +| | framesize=${64} | phy_cores=${1} + +| tc02-64B-2c-ethip4-ip4base-eth-2vhostvr256-1vm-ndrpdr +| | [Tags] | 64B | 2C +| | framesize=${64} | phy_cores=${2} + +| tc03-64B-4c-ethip4-ip4base-eth-2vhostvr256-1vm-ndrpdr +| | [Tags] | 64B | 4C +| | framesize=${64} | phy_cores=${4} + +| tc04-1518B-1c-ethip4-ip4base-eth-2vhostvr256-1vm-ndrpdr +| | [Tags] | 1518B | 1C +| | framesize=${1518} | phy_cores=${1} + +| tc05-1518B-2c-ethip4-ip4base-eth-2vhostvr256-1vm-ndrpdr +| | [Tags] | 1518B | 2C +| | framesize=${1518} | phy_cores=${2} + +| tc06-1518B-4c-ethip4-ip4base-eth-2vhostvr256-1vm-ndrpdr +| | [Tags] | 1518B | 4C +| | framesize=${1518} | phy_cores=${4} + +| tc07-9000B-1c-ethip4-ip4base-eth-2vhostvr256-1vm-ndrpdr +| | [Tags] | 9000B | 1C +| | framesize=${9000} | phy_cores=${1} + +| tc08-9000B-2c-ethip4-ip4base-eth-2vhostvr256-1vm-ndrpdr +| | [Tags] | 9000B | 2C +| | framesize=${9000} | phy_cores=${2} + +| tc09-9000B-4c-ethip4-ip4base-eth-2vhostvr256-1vm-ndrpdr +| | [Tags] | 9000B | 4C +| | framesize=${9000} | phy_cores=${4} + +| tc10-IMIX-1c-ethip4-ip4base-eth-2vhostvr256-1vm-ndrpdr +| | [Tags] | IMIX | 1C +| | framesize=IMIX_v4_1 | phy_cores=${1} + +| tc11-IMIX-2c-ethip4-ip4base-eth-2vhostvr256-1vm-ndrpdr +| | [Tags] | IMIX | 2C +| | framesize=IMIX_v4_1 | phy_cores=${2} + +| tc12-IMIX-4c-ethip4-ip4base-eth-2vhostvr256-1vm-ndrpdr +| | [Tags] | IMIX | 4C +| | framesize=IMIX_v4_1 | phy_cores=${4} 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 deleted file mode 100644 index 86c1fd8132..0000000000 --- a/tests/vpp/perf/vm_vhost/10ge2p1x520-ethip4-ip4base-eth-2vhostvr256-1vm-ndrpdrdisc.robot +++ /dev/null @@ -1,187 +0,0 @@ -# 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 | ETH | IP4FWD | BASE | VHOST | VM | VHOST_256 -| ... -| 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} -| ... -| Test Template | Local template -| ... -| 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 *** -| ${perf_qemu_qsz}= | 256 -| ${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 *** -| Local template -| | [Arguments] | ${phy_cores} | ${framesize} | ${search_type} | ${rxq}=${None} -| | ... | ${min_rate}=${10000} -| | ... -| | 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 worker threads and rxqueues to all DUTs | ${phy_cores} | ${rxq} -| | And Add PCI devices to all DUTs -| | And Run Keyword If | ${get_framesize} < ${1522} | Add no multi seg to all DUTs -| | And Apply startup configuration on all VPP DUTs -| | When Initialize IPv4 forwarding 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 -| | [Tags] | 64B | 1C | NDRDISC -| | phy_cores=${1} | framesize=${64} | search_type=NDR - -| tc02-64B-1t1c-ethip4-ip4base-eth-2vhostvr256-1vm-pdrdisc -| | [Tags] | 64B | 1C | PDRDISC | SKIP_PATCH -| | phy_cores=${1} | framesize=${64} | search_type=PDR - -| tc03-1518B-1t1c-ethip4-ip4base-eth-2vhostvr256-1vm-ndrdisc -| | [Tags] | 1518B | 1C | NDRDISC -| | phy_cores=${1} | framesize=${1518} | search_type=NDR - -| tc04-1518B-1t1c-ethip4-ip4base-eth-2vhostvr256-1vm-pdrdisc -| | [Tags] | 1518B | 1C | PDRDISC | SKIP_PATCH -| | phy_cores=${1} | framesize=${1518} | search_type=PDR - -| tc05-IMIX-1t1c-ethip4-ip4base-eth-2vhostvr256-1vm-ndrdisc -| | [Tags] | IMIX | 1C | NDRDISC -| | phy_cores=${1} | framesize=IMIX_v4_1 | search_type=NDR - -| tc06-IMIX-1t1c-ethip4-ip4base-eth-2vhostvr256-1vm-pdrdisc -| | [Tags] | IMIX | 1C | PDRDISC | SKIP_PATCH -| | phy_cores=${1} | framesize=IMIX_v4_1 | search_type=PDR - -| tc07-64B-2t2c-ethip4-ip4base-eth-2vhostvr256-1vm-ndrdisc -| | [Tags] | 64B | 2C | NDRDISC -| | phy_cores=${2} | framesize=${64} | search_type=NDR - -| tc08-64B-2t2c-ethip4-ip4base-eth-2vhostvr256-1vm-pdrdisc -| | [Tags] | 64B | 2C | PDRDISC | SKIP_PATCH -| | phy_cores=${2} | framesize=${64} | search_type=PDR - -| tc09-1518B-2t2c-ethip4-ip4base-eth-2vhostvr256-1vm-ndrdisc -| | [Tags] | 1518B | 2C | NDRDISC | SKIP_PATCH -| | phy_cores=${2} | framesize=${1518} | search_type=NDR - -| tc10-1518B-2t2c-ethip4-ip4base-eth-2vhostvr256-1vm-pdrdisc -| | [Tags] | 1518B | 2C | PDRDISC | SKIP_PATCH -| | phy_cores=${2} | framesize=${1518} | search_type=PDR - -| tc11-IMIX-2t2c-ethip4-ip4base-eth-2vhostvr256-1vm-ndrdisc -| | [Tags] | IMIX | 2C | NDRDISC | SKIP_PATCH -| | phy_cores=${2} | framesize=IMIX_v4_1 | search_type=NDR - -| tc12-IMIX-2t2c-ethip4-ip4base-eth-2vhostvr256-1vm-pdrdisc -| | [Tags] | IMIX | 2C | PDRDISC | SKIP_PATCH -| | phy_cores=${2} | framesize=IMIX_v4_1 | search_type=PDR - -| tc13-64B-4t4c-ethip4-ip4base-eth-2vhostvr256-1vm-ndrdisc -| | [Tags] | 64B | 4C | NDRDISC -| | phy_cores=${4} | framesize=${64} | search_type=NDR - -| tc14-64B-4t4c-ethip4-ip4base-eth-2vhostvr256-1vm-pdrdisc -| | [Tags] | 64B | 4C | PDRDISC | SKIP_PATCH -| | phy_cores=${4} | framesize=${64} | search_type=PDR - -| tc15-1518B-4t4c-ethip4-ip4base-eth-2vhostvr256-1vm-ndrdisc -| | [Tags] | 1518B | 4C | NDRDISC | SKIP_PATCH -| | phy_cores=${4} | framesize=${1518} | search_type=NDR - -| tc16-1518B-4t4c-ethip4-ip4base-eth-2vhostvr256-1vm-pdrdisc -| | [Tags] | 1518B | 4C | PDRDISC | SKIP_PATCH -| | phy_cores=${4} | framesize=${1518} | search_type=PDR - -| tc17-IMIX-4t4c-ethip4-ip4base-eth-2vhostvr256-1vm-ndrdisc -| | [Tags] | IMIX | 4C | NDRDISC | SKIP_PATCH -| | phy_cores=${4} | framesize=IMIX_v4_1 | search_type=NDR - -| tc18-IMIX-4t4c-ethip4-ip4base-eth-2vhostvr256-1vm-pdrdisc -| | [Tags] | IMIX | 4C | PDRDISC | SKIP_PATCH -| | phy_cores=${4} | framesize=IMIX_v4_1 | search_type=PDR diff --git a/tests/vpp/perf/vm_vhost/10ge2p1x520-ethip4-ip4base-eth-4vhostvr1024-2vm-mrr.robot b/tests/vpp/perf/vm_vhost/10ge2p1x520-ethip4-ip4base-eth-4vhostvr1024-2vm-mrr.robot index 95455d022f..aad9605cd8 100644 --- a/tests/vpp/perf/vm_vhost/10ge2p1x520-ethip4-ip4base-eth-4vhostvr1024-2vm-mrr.robot +++ b/tests/vpp/perf/vm_vhost/10ge2p1x520-ethip4-ip4base-eth-4vhostvr1024-2vm-mrr.robot @@ -27,7 +27,7 @@ | ... | dut1_node=${dut1} | dut1_vm_refs=${dut1_vm_refs} | ... | dut2_node=${dut2} | dut2_vm_refs=${dut2_vm_refs} | ... -| Test Template | Local template +| Test Template | Local Template | ... | Documentation | *Raw results IPv4 test cases with vhost* | ... @@ -68,7 +68,7 @@ | ${traffic_profile}= | trex-sl-3n-ethip4-ip4src253 *** Keywords *** -| Local template +| Local Template | | [Documentation] | | ... | [Cfg] DUT runs IPv4 routing config. | | ... | Each DUT uses ${phy_cores} physical core(s) for worker threads. @@ -83,72 +83,67 @@ | | ... | | [Arguments] | ${framesize} | ${phy_cores} | ${rxq}=${None} | | ... -| | Set Test Variable | ${framesize} -| | ${get_framesize}= | Get Frame Size | ${framesize} -| | ${max_rate}= | Calculate pps | ${s_limit} | ${framesize} | | ${dut1_vm_refs}= | Create Dictionary | | ${dut2_vm_refs}= | Create Dictionary | | Set Test Variable | ${dut1_vm_refs} | | Set Test Variable | ${dut2_vm_refs} -| | ${jumbo_frames}= | Set Variable If | ${get_framesize} < ${1522} -| | ... | ${False} | ${True} -| | Set Test Variable | ${jumbo_frames} | | ... | | Given Add worker threads and rxqueues to all DUTs | ${phy_cores} | ${rxq} | | And Add PCI devices to all DUTs -| | And Run Keyword If | ${get_framesize} < ${1522} -| | ... | Add no multi seg to all DUTs +| | ${max_rate} | ${jumbo} = | Get Max Rate And Jumbo And Handle Multi Seg +| | ... | ${s_limit} | ${framesize} | | And Apply startup configuration on all VPP DUTs | | When Initialize IPv4 forwarding with vhost for '2' VMs in 3-node circular topology +| | Set Test Variable | \${jumbo_frames} | ${jumbo} | | And Configure '2' guest VMs with dpdk-testpmd-mac connected via vhost-user in 3-node circular topology | | Then Traffic should pass with maximum rate | | ... | ${max_rate}pps | ${framesize} | ${traffic_profile} *** Test Cases *** -| tc01-64B-1t1c-ethip4-ip4base-eth-4vhostvr1024-2vm-mrr +| tc01-64B-1c-ethip4-ip4base-eth-4vhostvr1024-2vm-mrr | | [Tags] | 64B | 1C | | framesize=${64} | phy_cores=${1} -| tc02-1518B-1t1c-ethip4-ip4base-eth-4vhostvr1024-2vm-mrr -| | [Tags] | 1518B | 1C -| | framesize=${1518} | phy_cores=${1} - -| tc03-9000B-1t1c-ethip4-ip4base-eth-4vhostvr1024-2vm-mrr -| | [Tags] | 9000B | 1C -| | framesize=${9000} | phy_cores=${1} - -| tc04-IMIX-1t1c-ethip4-ip4base-eth-4vhostvr1024-2vm-mrr -| | [Tags] | IMIX | 1C -| | framesize=IMIX_v4_1 | phy_cores=${1} - -| tc05-64B-2t2c-ethip4-ip4base-eth-4vhostvr1024-2vm-mrr +| tc02-64B-2c-ethip4-ip4base-eth-4vhostvr1024-2vm-mrr | | [Tags] | 64B | 2C | | framesize=${64} | phy_cores=${2} -| tc06-1518B-2t2c-ethip4-ip4base-eth-4vhostvr1024-2vm-mrr -| | [Tags] | 1518B | 2C -| | framesize=${1518} | phy_cores=${2} - -| tc07-9000B-2t2c-ethip4-ip4base-eth-4vhostvr1024-2vm-mrr -| | [Tags] | 9000B | 2C -| | framesize=${9000} | phy_cores=${2} - -| tc08-IMIX-2t2c-ethip4-ip4base-eth-4vhostvr1024-2vm-mrr -| | [Tags] | IMIX | 2C -| | framesize=IMIX_v4_1 | phy_cores=${2} - -| tc09-64B-4t4c-ethip4-ip4base-eth-4vhostvr1024-2vm-mrr +| tc03-64B-4c-ethip4-ip4base-eth-4vhostvr1024-2vm-mrr | | [Tags] | 64B | 4C | | framesize=${64} | phy_cores=${4} -| tc10-1518B-4t4c-ethip4-ip4base-eth-4vhostvr1024-2vm-mrr +| tc04-1518B-1c-ethip4-ip4base-eth-4vhostvr1024-2vm-mrr +| | [Tags] | 1518B | 1C +| | framesize=${1518} | phy_cores=${1} + +| tc05-1518B-2c-ethip4-ip4base-eth-4vhostvr1024-2vm-mrr +| | [Tags] | 1518B | 2C +| | framesize=${1518} | phy_cores=${2} + +| tc06-1518B-4c-ethip4-ip4base-eth-4vhostvr1024-2vm-mrr | | [Tags] | 1518B | 4C | | framesize=${1518} | phy_cores=${4} -| tc11-9000B-4t4c-ethip4-ip4base-eth-4vhostvr1024-2vm-mrr +| tc07-9000B-1c-ethip4-ip4base-eth-4vhostvr1024-2vm-mrr +| | [Tags] | 9000B | 1C +| | framesize=${9000} | phy_cores=${1} + +| tc08-9000B-2c-ethip4-ip4base-eth-4vhostvr1024-2vm-mrr +| | [Tags] | 9000B | 2C +| | framesize=${9000} | phy_cores=${2} + +| tc09-9000B-4c-ethip4-ip4base-eth-4vhostvr1024-2vm-mrr | | [Tags] | 9000B | 4C | | framesize=${9000} | phy_cores=${4} -| tc12-IMIX-4t4c-ethip4-ip4base-eth-4vhostvr1024-2vm-mrr +| tc10-IMIX-1c-ethip4-ip4base-eth-4vhostvr1024-2vm-mrr +| | [Tags] | IMIX | 1C +| | framesize=IMIX_v4_1 | phy_cores=${1} + +| tc11-IMIX-2c-ethip4-ip4base-eth-4vhostvr1024-2vm-mrr +| | [Tags] | IMIX | 2C +| | framesize=IMIX_v4_1 | phy_cores=${2} + +| tc12-IMIX-4c-ethip4-ip4base-eth-4vhostvr1024-2vm-mrr | | [Tags] | IMIX | 4C | | framesize=IMIX_v4_1 | phy_cores=${4} diff --git a/tests/vpp/perf/vm_vhost/10ge2p1x520-ethip4-ip4base-eth-4vhostvr1024-2vm-ndrpdr.robot b/tests/vpp/perf/vm_vhost/10ge2p1x520-ethip4-ip4base-eth-4vhostvr1024-2vm-ndrpdr.robot new file mode 100644 index 0000000000..4149fdfc82 --- /dev/null +++ b/tests/vpp/perf/vm_vhost/10ge2p1x520-ethip4-ip4base-eth-4vhostvr1024-2vm-ndrpdr.robot @@ -0,0 +1,154 @@ +# Copyright (c) 2018 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 | NDRPDR +| ... | NIC_Intel-X520-DA2 | ETH | IP4FWD | BASE | VHOST | 2VM | VHOST_1024 +| ... +| 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} +| ... +| Test Template | Local Template +| ... +| Documentation | *RFC2544: Pkt throughput IPv4 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 Guests are connected +| ... | to VPP via vhost-user interfaces. Guests are running DPDK testpmd +| ... | interconnectingvhost-user interfaces using 5 cores pinned to cpus 6-10 +| ... | and 11-15 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=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 +| ... | Rate) with non-zero packet loss tolerance (LT) expressed in percentage +| ... | of packets transmitted. NDR and PDR are discovered for different +| ... | Ethernet L2 frame sizes using MLRsearch library. +| ... | Test packets are generated by TG on links to DUTs. TG traffic profile +| ... | contains 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. + +*** Variables *** +| ${perf_qemu_qsz}= | 1024 +# Socket names +| ${sock1}= | /tmp/sock-1 +| ${sock2}= | /tmp/sock-2 +# FIB tables +| ${fib_table_1}= | 100 +| ${fib_table_2}= | 101 +# CPU settings +| ${system_cpus}= | ${1} +| ${vpp_cpus}= | ${5} +| ${vm_cpus}= | ${5} +# X520-DA2 bandwidth limit +| ${s_limit}= | ${10000000000} +# Traffic profile: +| ${traffic_profile}= | trex-sl-3n-ethip4-ip4src253 + +*** Keywords *** +| Local Template +| | [Documentation] +| | ... | [Cfg] DUT runs IPv4 routing config. +| | ... | Each DUT uses ${phy_cores} physical core(s) for worker threads. +| | ... | [Ver] Measure NDR and PDR values using MLRsearch algorithm.\ +| | ... +| | ... | *Arguments:* +| | ... | - framesize - Framesize in Bytes in integer or string (IMIX_v4_1). +| | ... | Type: integer, string +| | ... | - phy_cores - Number of physical cores. Type: integer +| | ... | - rxq - Number of RX queues, default value: ${None}. Type: integer +| | ... +| | [Arguments] | ${framesize} | ${phy_cores} | ${rxq}=${None} +| | ... +| | Set Test Variable | ${framesize} +| | Set Test Variable | ${min_rate} | ${10000} +| | ${dut1_vm_refs}= | Create Dictionary +| | ${dut2_vm_refs}= | Create Dictionary +| | Set Test Variable | ${dut1_vm_refs} +| | Set Test Variable | ${dut2_vm_refs} +| | ... +| | Given Add worker threads and rxqueues to all DUTs | ${phy_cores} | ${rxq} +| | And Add PCI devices to all DUTs +| | ${max_rate} | ${jumbo} = | Get Max Rate And Jumbo And Handle Multi Seg +| | ... | ${s_limit} | ${framesize} +| | And Apply startup configuration on all VPP DUTs +| | When Initialize IPv4 forwarding with vhost for '2' VMs in 3-node circular topology +| | Set Test Variable | \${jumbo_frames} | ${jumbo} +| | And Configure '2' guest VMs with dpdk-testpmd-mac connected via vhost-user in 3-node circular topology +| | Then Find NDR and PDR intervals using optimized search +| | ... | ${framesize} | ${traffic_profile} | ${min_rate} | ${max_rate} + +*** Test Cases *** +| tc01-64B-1c-ethip4-ip4base-eth-4vhostvr1024-2vm-ndrpdr +| | [Tags] | 64B | 1C +| | framesize=${64} | phy_cores=${1} + +| tc02-64B-2c-ethip4-ip4base-eth-4vhostvr1024-2vm-ndrpdr +| | [Tags] | 64B | 2C +| | framesize=${64} | phy_cores=${2} + +| tc03-64B-4c-ethip4-ip4base-eth-4vhostvr1024-2vm-ndrpdr +| | [Tags] | 64B | 4C +| | framesize=${64} | phy_cores=${4} + +| tc04-1518B-1c-ethip4-ip4base-eth-4vhostvr1024-2vm-ndrpdr +| | [Tags] | 1518B | 1C +| | framesize=${1518} | phy_cores=${1} + +| tc05-1518B-2c-ethip4-ip4base-eth-4vhostvr1024-2vm-ndrpdr +| | [Tags] | 1518B | 2C +| | framesize=${1518} | phy_cores=${2} + +| tc06-1518B-4c-ethip4-ip4base-eth-4vhostvr1024-2vm-ndrpdr +| | [Tags] | 1518B | 4C +| | framesize=${1518} | phy_cores=${4} + +| tc07-9000B-1c-ethip4-ip4base-eth-4vhostvr1024-2vm-ndrpdr +| | [Tags] | 9000B | 1C +| | framesize=${9000} | phy_cores=${1} + +| tc08-9000B-2c-ethip4-ip4base-eth-4vhostvr1024-2vm-ndrpdr +| | [Tags] | 9000B | 2C +| | framesize=${9000} | phy_cores=${2} + +| tc09-9000B-4c-ethip4-ip4base-eth-4vhostvr1024-2vm-ndrpdr +| | [Tags] | 9000B | 4C +| | framesize=${9000} | phy_cores=${4} + +| tc10-IMIX-1c-ethip4-ip4base-eth-4vhostvr1024-2vm-ndrpdr +| | [Tags] | IMIX | 1C +| | framesize=IMIX_v4_1 | phy_cores=${1} + +| tc11-IMIX-2c-ethip4-ip4base-eth-4vhostvr1024-2vm-ndrpdr +| | [Tags] | IMIX | 2C +| | framesize=IMIX_v4_1 | phy_cores=${2} + +| tc12-IMIX-4c-ethip4-ip4base-eth-4vhostvr1024-2vm-ndrpdr +| | [Tags] | IMIX | 4C +| | framesize=IMIX_v4_1 | phy_cores=${4} diff --git a/tests/vpp/perf/vm_vhost/10ge2p1x520-ethip4-ip4base-eth-4vhostvr1024-2vm-ndrpdrdisc.robot b/tests/vpp/perf/vm_vhost/10ge2p1x520-ethip4-ip4base-eth-4vhostvr1024-2vm-ndrpdrdisc.robot deleted file mode 100644 index 3b9959f439..0000000000 --- a/tests/vpp/perf/vm_vhost/10ge2p1x520-ethip4-ip4base-eth-4vhostvr1024-2vm-ndrpdrdisc.robot +++ /dev/null @@ -1,179 +0,0 @@ -# Copyright (c) 2018 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 | ETH | IP4FWD | BASE | VHOST | VM | VHOST_1024 -| ... -| 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} -| ... -| Test Template | Local template -| ... -| Documentation | *RFC2544: Pkt throughput IPv4 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 static IPv4 /24 route entries. Qemu Guests are connected -| ... | to VPP via vhost-user interfaces. Guests are running DPDK testpmd -| ... | interconnecting vhost-user interfaces using 5 cores pinned to cpus 6-10 -| ... | and 11-15 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 *** -| ${perf_qemu_qsz}= | 1024 -# X520-DA2 bandwidth limit -| ${s_limit}= | ${10000000000} -# CPU settings -| ${system_cpus}= | ${1} -| ${vpp_cpus}= | ${5} -| ${vm_cpus}= | ${5} -# Traffic profile: -| ${traffic_profile}= | trex-sl-3n-ethip4-ip4src253 - -*** Keywords *** -| Local template -| | [Arguments] | ${phy_cores} | ${framesize} | ${search_type} | ${rxq}=${None} -| | ... | ${min_rate}=${10000} -| | ... -| | Set Test Variable | ${framesize} -| | Set Test Variable | ${min_rate} -| | ${get_framesize}= | Get Frame Size | ${framesize} -| | ${max_rate}= | Calculate pps | ${s_limit} | ${get_framesize} -| | ${binary_min}= | Set Variable | ${min_rate} -| | ${binary_max}= | Set Variable | ${max_rate} -| | ${threshold}= | Set Variable | ${min_rate} -| | ${dut1_vm_refs}= | Create Dictionary -| | ${dut2_vm_refs}= | Create Dictionary -| | Set Test Variable | ${dut1_vm_refs} -| | Set Test Variable | ${dut2_vm_refs} -| | ${jumbo_frames}= | Set Variable If | ${get_framesize} < ${1522} -| | ... | ${False} | ${True} -| | Set Test Variable | ${jumbo_frames} -| | ... -| | Given Add worker threads and rxqueues to all DUTs | ${phy_cores} | ${rxq} -| | And Add PCI devices to all DUTs -| | And Run Keyword If | ${get_framesize} < ${1522} -| | ... | Add no multi seg to all DUTs -| | And Apply startup configuration on all VPP DUTs -| | When Initialize IPv4 forwarding with vhost for '2' VMs in 3-node circular topology -| | And Configure '2' guest VMs with dpdk-testpmd-mac connected via vhost-user in 3-node circular topology -| | Then Run Keyword If | '${search_type}' == 'NDR' -| | ... | Find NDR using binary search and pps -| | ... | ${framesize} | ${binary_min} | ${binary_max} | ${traffic_profile} -| | ... | ${min_rate} | ${max_rate} | ${threshold} -| | ... | ELSE IF | '${search_type}' == 'PDR' -| | ... | Find PDR using binary search and pps -| | ... | ${framesize} | ${binary_min} | ${binary_max} | ${traffic_profile} -| | ... | ${min_rate} | ${max_rate} | ${threshold} -| | ... | ${perf_pdr_loss_acceptance} | ${perf_pdr_loss_acceptance_type} - -*** Test Cases *** -| tc01-64B-1t1c-ethip4-ip4base-eth-4vhostvr1024-2vm-ndrdisc -| | [Tags] | 64B | 1C | NDRDISC -| | phy_cores=${1} | framesize=${64} | search_type=NDR - -| tc02-64B-1t1c-ethip4-ip4base-eth-4vhostvr1024-2vm-pdrdisc -| | [Tags] | 64B | 1C | PDRDISC | SKIP_PATCH -| | phy_cores=${1} | framesize=${64} | search_type=PDR - -| tc03-1518B-1t1c-ethip4-ip4base-eth-4vhostvr1024-2vm-ndrdisc -| | [Tags] | 1518B | 1C | NDRDISC -| | phy_cores=${1} | framesize=${1518} | search_type=NDR - -| tc04-1518B-1t1c-ethip4-ip4base-eth-4vhostvr1024-2vm-pdrdisc -| | [Tags] | 1518B | 1C | PDRDISC | SKIP_PATCH -| | phy_cores=${1} | framesize=${1518} | search_type=PDR - -| tc05-IMIX-1t1c-ethip4-ip4base-eth-4vhostvr1024-2vm-ndrdisc -| | [Tags] | IMIX | 1C | NDRDISC -| | phy_cores=${1} | framesize=IMIX_v4_1 | search_type=NDR - -| tc06-IMIX-1t1c-ethip4-ip4base-eth-4vhostvr1024-2vm-pdrdisc -| | [Tags] | IMIX | 1C | PDRDISC | SKIP_PATCH -| | phy_cores=${1} | framesize=IMIX_v4_1 | search_type=PDR - -| tc07-64B-2t2c-ethip4-ip4base-eth-4vhostvr1024-2vm-ndrdisc -| | [Tags] | 64B | 2C | NDRDISC -| | phy_cores=${2} | framesize=${64} | search_type=NDR - -| tc08-64B-2t2c-ethip4-ip4base-eth-4vhostvr1024-2vm-pdrdisc -| | [Tags] | 64B | 2C | PDRDISC | SKIP_PATCH -| | phy_cores=${2} | framesize=${64} | search_type=PDR - -| tc09-1518B-2t2c-ethip4-ip4base-eth-4vhostvr1024-2vm-ndrdisc -| | [Tags] | 1518B | 2C | NDRDISC | SKIP_PATCH -| | phy_cores=${2} | framesize=${1518} | search_type=NDR - -| tc10-1518B-2t2c-ethip4-ip4base-eth-4vhostvr1024-2vm-pdrdisc -| | [Tags] | 1518B | 2C | PDRDISC | SKIP_PATCH -| | phy_cores=${2} | framesize=${1518} | search_type=PDR - -| tc11-IMIX-2t2c-ethip4-ip4base-eth-4vhostvr1024-2vm-ndrdisc -| | [Tags] | IMIX | 2C | NDRDISC | SKIP_PATCH -| | phy_cores=${2} | framesize=IMIX_v4_1 | search_type=NDR - -| tc12-IMIX-2t2c-ethip4-ip4base-eth-4vhostvr1024-2vm-pdrdisc -| | [Tags] | IMIX | 2C | PDRDISC | SKIP_PATCH -| | phy_cores=${2} | framesize=IMIX_v4_1 | search_type=PDR - -| tc13-64B-4t4c-ethip4-ip4base-eth-4vhostvr1024-2vm-ndrdisc -| | [Tags] | 64B | 4C | NDRDISC -| | phy_cores=${4} | framesize=${64} | search_type=NDR - -| tc14-64B-4t4c-ethip4-ip4base-eth-4vhostvr1024-2vm-pdrdisc -| | [Tags] | 64B | 4C | PDRDISC | SKIP_PATCH -| | phy_cores=${4} | framesize=${64} | search_type=PDR - -| tc15-1518B-4t4c-ethip4-ip4base-eth-4vhostvr1024-2vm-ndrdisc -| | [Tags] | 1518B | 4C | NDRDISC | SKIP_PATCH -| | phy_cores=${4} | framesize=${1518} | search_type=NDR - -| tc16-1518B-4t4c-ethip4-ip4base-eth-4vhostvr1024-2vm-pdrdisc -| | [Tags] | 1518B | 4C | PDRDISC | SKIP_PATCH -| | phy_cores=${4} | framesize=${1518} | search_type=PDR - -| tc17-IMIX-4t4c-ethip4-ip4base-eth-4vhostvr1024-2vm-ndrdisc -| | [Tags] | IMIX | 4C | NDRDISC | SKIP_PATCH -| | phy_cores=${4} | framesize=IMIX_v4_1 | search_type=NDR - -| tc18-IMIX-4t4c-ethip4-ip4base-eth-4vhostvr1024-2vm-pdrdisc -| | [Tags] | IMIX | 4C | PDRDISC | SKIP_PATCH -| | phy_cores=${4} | framesize=IMIX_v4_1 | search_type=PDR diff --git a/tests/vpp/perf/vm_vhost/10ge2p1x520-ethip4vxlan-l2bdbasemaclrn-eth-2vhostvr1024-1vm-mrr.robot b/tests/vpp/perf/vm_vhost/10ge2p1x520-ethip4vxlan-l2bdbasemaclrn-eth-2vhostvr1024-1vm-mrr.robot index ddf22b6cc3..035e5dd42c 100644 --- a/tests/vpp/perf/vm_vhost/10ge2p1x520-ethip4vxlan-l2bdbasemaclrn-eth-2vhostvr1024-1vm-mrr.robot +++ b/tests/vpp/perf/vm_vhost/10ge2p1x520-ethip4vxlan-l2bdbasemaclrn-eth-2vhostvr1024-1vm-mrr.robot @@ -28,7 +28,7 @@ | ... | dut1_node=${dut1} | dut1_vm_refs=${dut1_vm_refs} | ... | dut2_node=${dut2} | dut2_vm_refs=${dut2_vm_refs} | ... -| Test Template | Local template +| Test Template | Local Template | ... | Documentation | *Raw results L2BD test cases with VXLANoIPv4 | ... | and vhost* @@ -63,12 +63,12 @@ | ${sock2}= | /tmp/sock-1-${bd_id2} # X520-DA2 bandwidth limit | ${s_limit}= | ${10000000000} -| ${vxlan_overhead} | ${50} +| ${overhead} | ${50} # Traffic profile: | ${traffic_profile}= | trex-sl-3n-ethip4-ip4src254 *** Keywords *** -| Local template +| Local Template | | [Documentation] | | ... | [Cfg] DUT runs L2BD switching config. | | ... | Each DUT uses ${phy_cores} physical core(s) for worker threads. @@ -83,80 +83,74 @@ | | ... | | [Arguments] | ${framesize} | ${phy_cores} | ${rxq}=${None} | | ... -| | Set Test Variable | ${framesize} -| | ${get_framesize}= | Get Frame Size | ${framesize} -| | ${max_rate}= | Calculate pps | ${s_limit} -| | ... | ${get_framesize} + ${vxlan_overhead} | | ${dut1_vm_refs}= | Create Dictionary | | ${dut2_vm_refs}= | Create Dictionary | | Set Test Variable | ${dut1_vm_refs} | | Set Test Variable | ${dut2_vm_refs} -| | ${jumbo_frames}= | Set Variable If | ${get_framesize} < ${1522} -| | ... | ${False} | ${True} | | ... | | Given Add worker threads and rxqueues to all DUTs | ${phy_cores} | ${rxq} | | And Add PCI devices to all DUTs -| | And Run Keyword If | ${get_framesize} < ${1522} -| | ... | Add no multi seg to all DUTs +| | ${max_rate} | ${jumbo} = | Get Max Rate And Jumbo And Handle Multi Seg +| | ... | ${s_limit} | ${framesize} | overhead=${overhead} | | And Apply startup configuration on all VPP DUTs | | When Initialize L2 bridge domains with Vhost-User and VXLANoIPv4 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 -| | ... | jumbo_frames=${jumbo_frames} +| | ... | jumbo_frames=${jumbo} | | 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 -| | ... | jumbo_frames=${jumbo_frames} +| | ... | jumbo_frames=${jumbo} | | Set To Dictionary | ${dut2_vm_refs} | DUT2_VM1 | ${vm2} | | Then Traffic should pass with maximum rate | | ... | ${max_rate}pps | ${framesize} | ${traffic_profile} *** Test Cases *** -| tc01-64B-1t1c-ethip4vxlan-l2bdbasemaclrn-eth-2vhostvr1024-1vm-mrr +| tc01-64B-1c-ethip4vxlan-l2bdbasemaclrn-eth-2vhostvr1024-1vm-mrr | | [Tags] | 64B | 1C | | framesize=${64} | phy_cores=${1} -| tc02-1518B-1t1c-ethip4vxlan-l2bdbasemaclrn-eth-2vhostvr1024-1vm-mrr -| | [Tags] | 1518B | 1C -| | framesize=${1518} | phy_cores=${1} - -| tc03-9000B-1t1c-ethip4vxlan-l2bdbasemaclrn-eth-2vhostvr1024-1vm-mrr -| | [Tags] | 9000B | 1C -| | framesize=${9000} | phy_cores=${1} - -| tc04-IMIX-1t1c-ethip4vxlan-l2bdbasemaclrn-eth-2vhostvr1024-1vm-mrr -| | [Tags] | IMIX | 1C -| | framesize=IMIX_v4_1 | phy_cores=${1} - -| tc05-64B-2t2c-ethip4vxlan-l2bdbasemaclrn-eth-2vhostvr1024-1vm-mrr +| tc02-64B-2c-ethip4vxlan-l2bdbasemaclrn-eth-2vhostvr1024-1vm-mrr | | [Tags] | 64B | 2C | | framesize=${64} | phy_cores=${2} -| tc06-1518B-2t2c-ethip4vxlan-l2bdbasemaclrn-eth-2vhostvr1024-1vm-mrr -| | [Tags] | 1518B | 2C -| | framesize=${1518} | phy_cores=${2} - -| tc07-9000B-2t2c-ethip4vxlan-l2bdbasemaclrn-eth-2vhostvr1024-1vm-mrr -| | [Tags] | 9000B | 2C -| | framesize=${9000} | phy_cores=${2} - -| tc08-IMIX-2t2c-ethip4vxlan-l2bdbasemaclrn-eth-2vhostvr1024-1vm-mrr -| | [Tags] | IMIX | 2C -| | framesize=IMIX_v4_1 | phy_cores=${2} - -| tc09-64B-4t4c-ethip4vxlan-l2bdbasemaclrn-eth-2vhostvr1024-1vm-mrr +| tc03-64B-4c-ethip4vxlan-l2bdbasemaclrn-eth-2vhostvr1024-1vm-mrr | | [Tags] | 64B | 4C | | framesize=${64} | phy_cores=${4} -| tc10-1518B-4t4c-ethip4vxlan-l2bdbasemaclrn-eth-2vhostvr1024-1vm-mrr +| tc04-1518B-1c-ethip4vxlan-l2bdbasemaclrn-eth-2vhostvr1024-1vm-mrr +| | [Tags] | 1518B | 1C +| | framesize=${1518} | phy_cores=${1} + +| tc05-1518B-2c-ethip4vxlan-l2bdbasemaclrn-eth-2vhostvr1024-1vm-mrr +| | [Tags] | 1518B | 2C +| | framesize=${1518} | phy_cores=${2} + +| tc06-1518B-4c-ethip4vxlan-l2bdbasemaclrn-eth-2vhostvr1024-1vm-mrr | | [Tags] | 1518B | 4C | | framesize=${1518} | phy_cores=${4} -| tc11-9000B-4t4c-ethip4vxlan-l2bdbasemaclrn-eth-2vhostvr1024-1vm-mrr +| tc07-9000B-1c-ethip4vxlan-l2bdbasemaclrn-eth-2vhostvr1024-1vm-mrr +| | [Tags] | 9000B | 1C +| | framesize=${9000} | phy_cores=${1} + +| tc08-9000B-2c-ethip4vxlan-l2bdbasemaclrn-eth-2vhostvr1024-1vm-mrr +| | [Tags] | 9000B | 2C +| | framesize=${9000} | phy_cores=${2} + +| tc09-9000B-4c-ethip4vxlan-l2bdbasemaclrn-eth-2vhostvr1024-1vm-mrr | | [Tags] | 9000B | 4C | | framesize=${9000} | phy_cores=${4} -| tc12-IMIX-4t4c-ethip4vxlan-l2bdbasemaclrn-eth-2vhostvr1024-1vm-mrr +| tc10-IMIX-1c-ethip4vxlan-l2bdbasemaclrn-eth-2vhostvr1024-1vm-mrr +| | [Tags] | IMIX | 1C +| | framesize=IMIX_v4_1 | phy_cores=${1} + +| tc11-IMIX-2c-ethip4vxlan-l2bdbasemaclrn-eth-2vhostvr1024-1vm-mrr +| | [Tags] | IMIX | 2C +| | framesize=IMIX_v4_1 | phy_cores=${2} + +| tc12-IMIX-4c-ethip4vxlan-l2bdbasemaclrn-eth-2vhostvr1024-1vm-mrr | | [Tags] | IMIX | 4C | | framesize=IMIX_v4_1 | phy_cores=${4} diff --git a/tests/vpp/perf/vm_vhost/10ge2p1x520-ethip4vxlan-l2bdbasemaclrn-eth-2vhostvr1024-1vm-ndrpdr.robot b/tests/vpp/perf/vm_vhost/10ge2p1x520-ethip4vxlan-l2bdbasemaclrn-eth-2vhostvr1024-1vm-ndrpdr.robot new file mode 100644 index 0000000000..12ef89b05a --- /dev/null +++ b/tests/vpp/perf/vm_vhost/10ge2p1x520-ethip4vxlan-l2bdbasemaclrn-eth-2vhostvr1024-1vm-ndrpdr.robot @@ -0,0 +1,161 @@ +# Copyright (c) 2018 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 | NDRPDR +| ... | NIC_Intel-X520-DA2 | L2BDMACLRN | ENCAP | VXLAN | L2OVRLAY | IP4UNRLAY +| ... | VHOST | 1VM | VHOST_1024 +| ... +| 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} +| ... +| Test Template | Local Template +| ... +| Documentation | *RFC2544: Pkt throughput L2BD test cases with VXLANoIPv4 +| ... | and 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. +| ... | Eth-IPv4-VXLAN-Eth-IPv4 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=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 +| ... | Rate) with non-zero packet loss tolerance (LT) expressed in percentage +| ... | of packets transmitted. NDR and PDR are discovered for different +| ... | Ethernet L2 frame sizes using MLRsearch library. +| ... | Test packets are generated by TG on links to DUTs. TG traffic profile +| ... | contains two L3 flow-groups (flow-group per direction, 254 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:* RFC7348. + +*** Variables *** +| ${perf_qemu_qsz}= | 1024 +# Socket names +| ${bd_id1}= | 1 +| ${bd_id2}= | 2 +| ${sock1}= | /tmp/sock-1-${bd_id1} +| ${sock2}= | /tmp/sock-1-${bd_id2} +# X520-DA2 bandwidth limit +| ${s_limit}= | ${10000000000} +| ${overhead} | ${50} +# Traffic profile: +| ${traffic_profile}= | trex-sl-3n-ethip4-ip4src254 + +*** Keywords *** +| Local Template +| | [Documentation] +| | ... | [Cfg] DUT runs L2BD switching config. +| | ... | Each DUT uses ${phy_cores} physical core(s) for worker threads. +| | ... | [Ver] Measure NDR and PDR values using MLRsearch algorithm.\ +| | ... +| | ... | *Arguments:* +| | ... | - framesize - Framesize in Bytes in integer or string (IMIX_v4_1). +| | ... | Type: integer, string +| | ... | - phy_cores - Number of physical cores. Type: integer +| | ... | - rxq - Number of RX queues, default value: ${None}. Type: integer +| | ... +| | [Arguments] | ${framesize} | ${phy_cores} | ${rxq}=${None} +| | ... +| | Set Test Variable | ${framesize} +| | Set Test Variable | ${min_rate} | ${10000} +| | ${dut1_vm_refs}= | Create Dictionary +| | ${dut2_vm_refs}= | Create Dictionary +| | Set Test Variable | ${dut1_vm_refs} +| | Set Test Variable | ${dut2_vm_refs} +| | ... +| | Given Add worker threads and rxqueues to all DUTs | ${phy_cores} | ${rxq} +| | And Add PCI devices to all DUTs +| | ${max_rate} | ${jumbo} = | Get Max Rate And Jumbo And Handle Multi Seg +| | ... | ${s_limit} | ${framesize} | overhead=${overhead} +| | And Apply startup configuration on all VPP DUTs +| | When Initialize L2 bridge domains with Vhost-User and VXLANoIPv4 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 +| | ... | jumbo_frames=${jumbo} +| | 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 +| | ... | jumbo_frames=${jumbo} +| | Set To Dictionary | ${dut2_vm_refs} | DUT2_VM1 | ${vm2} +| | Then Find NDR and PDR intervals using optimized search +| | ... | ${framesize} | ${traffic_profile} | ${min_rate} | ${max_rate} + +*** Test Cases *** +| tc01-64B-1c-ethip4vxlan-l2bdbasemaclrn-eth-2vhostvr1024-1vm-ndrpdr +| | [Tags] | 64B | 1C +| | framesize=${64} | phy_cores=${1} + +| tc02-64B-2c-ethip4vxlan-l2bdbasemaclrn-eth-2vhostvr1024-1vm-ndrpdr +| | [Tags] | 64B | 2C +| | framesize=${64} | phy_cores=${2} + +| tc03-64B-4c-ethip4vxlan-l2bdbasemaclrn-eth-2vhostvr1024-1vm-ndrpdr +| | [Tags] | 64B | 4C +| | framesize=${64} | phy_cores=${4} + +| tc04-1518B-1c-ethip4vxlan-l2bdbasemaclrn-eth-2vhostvr1024-1vm-ndrpdr +| | [Tags] | 1518B | 1C +| | framesize=${1518} | phy_cores=${1} + +| tc05-1518B-2c-ethip4vxlan-l2bdbasemaclrn-eth-2vhostvr1024-1vm-ndrpdr +| | [Tags] | 1518B | 2C +| | framesize=${1518} | phy_cores=${2} + +| tc06-1518B-4c-ethip4vxlan-l2bdbasemaclrn-eth-2vhostvr1024-1vm-ndrpdr +| | [Tags] | 1518B | 4C +| | framesize=${1518} | phy_cores=${4} + +| tc07-9000B-1c-ethip4vxlan-l2bdbasemaclrn-eth-2vhostvr1024-1vm-ndrpdr +| | [Tags] | 9000B | 1C +| | framesize=${9000} | phy_cores=${1} + +| tc08-9000B-2c-ethip4vxlan-l2bdbasemaclrn-eth-2vhostvr1024-1vm-ndrpdr +| | [Tags] | 9000B | 2C +| | framesize=${9000} | phy_cores=${2} + +| tc09-9000B-4c-ethip4vxlan-l2bdbasemaclrn-eth-2vhostvr1024-1vm-ndrpdr +| | [Tags] | 9000B | 4C +| | framesize=${9000} | phy_cores=${4} + +| tc10-IMIX-1c-ethip4vxlan-l2bdbasemaclrn-eth-2vhostvr1024-1vm-ndrpdr +| | [Tags] | IMIX | 1C +| | framesize=IMIX_v4_1 | phy_cores=${1} + +| tc11-IMIX-2c-ethip4vxlan-l2bdbasemaclrn-eth-2vhostvr1024-1vm-ndrpdr +| | [Tags] | IMIX | 2C +| | framesize=IMIX_v4_1 | phy_cores=${2} + +| tc12-IMIX-4c-ethip4vxlan-l2bdbasemaclrn-eth-2vhostvr1024-1vm-ndrpdr +| | [Tags] | IMIX | 4C +| | framesize=IMIX_v4_1 | phy_cores=${4} diff --git a/tests/vpp/perf/vm_vhost/10ge2p1x520-ethip4vxlan-l2bdbasemaclrn-eth-2vhostvr1024-1vm-ndrpdrdisc.robot b/tests/vpp/perf/vm_vhost/10ge2p1x520-ethip4vxlan-l2bdbasemaclrn-eth-2vhostvr1024-1vm-ndrpdrdisc.robot deleted file mode 100644 index 8ede0cf687..0000000000 --- a/tests/vpp/perf/vm_vhost/10ge2p1x520-ethip4vxlan-l2bdbasemaclrn-eth-2vhostvr1024-1vm-ndrpdrdisc.robot +++ /dev/null @@ -1,676 +0,0 @@ -# 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 | L2BDMACLRN | ENCAP | VXLAN | L2OVRLAY | IP4UNRLAY -| ... | VHOST | VM | VHOST_1024 -| ... -| 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 VXLANoIPv4 -| ... | and 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. -| ... | Eth-IPv4-VXLAN-Eth-IPv4 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=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 -| ... | 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, RFC7348. - -*** Variables *** -| ${perf_qemu_qsz}= | 1024 -# X520-DA2 bandwidth limit -| ${s_limit} | ${10000000000} -| ${vxlan_overhead} | ${50} -# 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 - -*** Test Cases *** -| tc01-64B-1t1c-ethip4vxlan-l2bdbasemaclrn-eth-2vhostvr1024-1vm-ndrdisc -| | [Documentation] -| | ... | [Cfg] DUT runs L2BD switching config with 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 | 1C | NDRDISC -| | ... -| | ${framesize}= | Set Variable | ${64} -| | ${min_rate}= | Set Variable | ${10000} -| | ${max_rate}= | Calculate pps | ${s_limit} | ${framesize + ${vxlan_overhead}} -| | ${binary_min}= | Set Variable | ${min_rate} -| | ${binary_max}= | Set Variable | ${max_rate} -| | ${threshold}= | Set Variable | ${min_rate} -| | ${dut1_vm_refs}= | Create Dictionary -| | ${dut2_vm_refs}= | Create Dictionary -| | Given Add worker threads and rxqueues to all DUTs | 1 -| | And Add PCI devices to all DUTs -| | And Add no multi seg to all DUTs -| | And Apply startup configuration on all VPP DUTs -| | When Initialize L2 bridge domains with Vhost-User and VXLANoIPv4 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} -| | Then Find NDR using binary search and pps | ${framesize} | ${binary_min} -| | ... | ${binary_max} | ${traffic_profile} -| | ... | ${min_rate} | ${max_rate} | ${threshold} - -| tc02-64B-1t1c-ethip4vxlan-l2bdbasemaclrn-eth-2vhostvr1024-1vm-pdrdisc -| | [Documentation] -| | ... | [Cfg] DUT runs L2BD switching config with 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 | 1C | PDRDISC | SKIP_PATCH -| | ... -| | ${framesize}= | Set Variable | ${64} -| | ${min_rate}= | Set Variable | ${10000} -| | ${max_rate}= | Calculate pps | ${s_limit} | ${framesize + ${vxlan_overhead}} -| | ${binary_min}= | Set Variable | ${min_rate} -| | ${binary_max}= | Set Variable | ${max_rate} -| | ${threshold}= | Set Variable | ${min_rate} -| | ${dut1_vm_refs}= | Create Dictionary -| | ${dut2_vm_refs}= | Create Dictionary -| | Given Add worker threads and rxqueues to all DUTs | 1 -| | And Add PCI devices to all DUTs -| | And Add no multi seg to all DUTs -| | And Apply startup configuration on all VPP DUTs -| | When Initialize L2 bridge domains with Vhost-User and VXLANoIPv4 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} -| | Then Find PDR using binary search and pps | ${framesize} | ${binary_min} -| | ... | ${binary_max} | ${traffic_profile} -| | ... | ${min_rate} | ${max_rate} | ${threshold} | ${perf_pdr_loss_acceptance} -| | ... | ${perf_pdr_loss_acceptance_type} - -| tc03-1518B-1t1c-ethip4vxlan-l2bdbasemaclrn-eth-2vhostvr1024-1vm-ndrdisc -| | [Documentation] -| | ... | [Cfg] DUT runs L2BD switching config with 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 | 1C | NDRDISC -| | ... -| | ${framesize}= | Set Variable | ${1518} -| | ${min_rate}= | Set Variable | ${10000} -| | ${max_rate}= | Calculate pps | ${s_limit} | ${framesize + ${vxlan_overhead}} -| | ${binary_min}= | Set Variable | ${min_rate} -| | ${binary_max}= | Set Variable | ${max_rate} -| | ${threshold}= | Set Variable | ${min_rate} -| | ${dut1_vm_refs}= | Create Dictionary -| | ${dut2_vm_refs}= | Create Dictionary -| | Given Add worker threads and rxqueues to all DUTs | 1 -| | And Add PCI devices to all DUTs -| | And Apply startup configuration on all VPP DUTs -| | When Initialize L2 bridge domains with Vhost-User and VXLANoIPv4 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} -| | Then Find NDR using binary search and pps | ${framesize} | ${binary_min} -| | ... | ${binary_max} | ${traffic_profile} -| | ... | ${min_rate} | ${max_rate} | ${threshold} - -| tc04-1518B-1t1c-ethip4vxlan-l2bdbasemaclrn-eth-2vhostvr1024-1vm-pdrdisc -| | [Documentation] -| | ... | [Cfg] DUT runs L2BD switching config with 1 phy core,\ -| | ... | 1 receive queue per NIC port. -| | ... | [Ver] Find PDR for 1518 Byte frames using binary search start at 10GE\ -| | ... | using binary search start at 10GE linerate, step 10kpps, LT=0.5%. -| | ... -| | [Tags] | 1518B | 1C | PDRDISC | SKIP_PATCH -| | ... -| | ${framesize}= | Set Variable | ${1518} -| | ${min_rate}= | Set Variable | ${10000} -| | ${max_rate}= | Calculate pps | ${s_limit} | ${framesize + ${vxlan_overhead}} -| | ${binary_min}= | Set Variable | ${min_rate} -| | ${binary_max}= | Set Variable | ${max_rate} -| | ${threshold}= | Set Variable | ${min_rate} -| | ${dut1_vm_refs}= | Create Dictionary -| | ${dut2_vm_refs}= | Create Dictionary -| | Given Add worker threads and rxqueues to all DUTs | 1 -| | And Add PCI devices to all DUTs -| | And Apply startup configuration on all VPP DUTs -| | When Initialize L2 bridge domains with Vhost-User and VXLANoIPv4 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} -| | Then Find PDR using binary search and pps | ${framesize} | ${binary_min} -| | ... | ${binary_max} | ${traffic_profile} -| | ... | ${min_rate} | ${max_rate} | ${threshold} | ${perf_pdr_loss_acceptance} -| | ... | ${perf_pdr_loss_acceptance_type} - -| tc05-IMIX-1t1c-ethip4vxlan-l2bdbasemaclrn-eth-2vhostvr1024-1vm-ndrdisc -| | [Documentation] -| | ... | [Cfg] DUT runs L2BD switching config with 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 | 1C | NDRDISC -| | ... -| | ${framesize}= | Set Variable | IMIX_v4_1 -| | ${avg_framesize}= | Set Variable | ${403.833} -| | ${min_rate}= | Set Variable | ${10000} -| | ${max_rate}= | Calculate pps | ${s_limit} | ${avg_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 -| | Given Add worker threads and rxqueues to all DUTs | 1 -| | And Add PCI devices to all DUTs -| | And Apply startup configuration on all VPP DUTs -| | When Initialize L2 bridge domains with Vhost-User and VXLANoIPv4 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} -| | Then Find NDR using binary search and pps | ${framesize} | ${binary_min} -| | ... | ${binary_max} | ${traffic_profile} -| | ... | ${min_rate} | ${max_rate} | ${threshold} - -| tc06-IMIX-1t1c-ethip4vxlan-l2bdbasemaclrn-eth-2vhostvr1024-1vm-pdrdisc -| | [Documentation] -| | ... | [Cfg] DUT runs L2BD switching config with 1 phy core,\ -| | ... | 1 receive queue per NIC port. -| | ... | [Ver] Find PDR for IMIX_v4_1 frame size using binary search start at\ -| | ... | 10GE linerate, step 10kpps, LT=0.5%. -| | ... | IMIX_v4_1 = (28x64B;16x570B;4x1518B) -| | ... -| | [Tags] | IMIX | 1C | PDRDISC | SKIP_PATCH -| | ... -| | ${framesize}= | Set Variable | IMIX_v4_1 -| | ${avg_framesize}= | Set Variable | ${403.833} -| | ${min_rate}= | Set Variable | ${10000} -| | ${max_rate}= | Calculate pps | ${s_limit} | ${avg_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 -| | Given Add worker threads and rxqueues to all DUTs | 1 -| | And Add PCI devices to all DUTs -| | And Apply startup configuration on all VPP DUTs -| | When Initialize L2 bridge domains with Vhost-User and VXLANoIPv4 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} -| | Then Find PDR using binary search and pps | ${framesize} | ${binary_min} -| | ... | ${binary_max} | ${traffic_profile} -| | ... | ${min_rate} | ${max_rate} | ${threshold} | ${perf_pdr_loss_acceptance} -| | ... | ${perf_pdr_loss_acceptance_type} - -| tc07-64B-2t2c-ethip4vxlan-l2bdbasemaclrn-eth-2vhostvr1024-1vm-ndrdisc -| | [Documentation] -| | ... | [Cfg] DUT runs L2BD switching config with 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 | 2C | NDRDISC -| | ... -| | ${framesize}= | Set Variable | ${64} -| | ${min_rate}= | Set Variable | ${10000} -| | ${max_rate}= | Calculate pps | ${s_limit} | ${framesize + ${vxlan_overhead}} -| | ${binary_min}= | Set Variable | ${min_rate} -| | ${binary_max}= | Set Variable | ${max_rate} -| | ${threshold}= | Set Variable | ${min_rate} -| | ${dut1_vm_refs}= | Create Dictionary -| | ${dut2_vm_refs}= | Create Dictionary -| | Given Add worker threads and rxqueues to all DUTs | 2 -| | And Add PCI devices to all DUTs -| | And Add no multi seg to all DUTs -| | And Apply startup configuration on all VPP DUTs -| | When Initialize L2 bridge domains with Vhost-User and VXLANoIPv4 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} -| | Then Find NDR using binary search and pps | ${framesize} | ${binary_min} -| | ... | ${binary_max} | ${traffic_profile} -| | ... | ${min_rate} | ${max_rate} | ${threshold} - -| tc08-64B-2t2c-ethip4vxlan-l2bdbasemaclrn-eth-2vhostvr1024-1vm-pdrdisc -| | [Documentation] -| | ... | [Cfg] DUT runs L2BD switching config with 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 | 2C | PDRDISC | SKIP_PATCH -| | ... -| | ${framesize}= | Set Variable | ${64} -| | ${min_rate}= | Set Variable | ${10000} -| | ${max_rate}= | Calculate pps | ${s_limit} | ${framesize + ${vxlan_overhead}} -| | ${binary_min}= | Set Variable | ${min_rate} -| | ${binary_max}= | Set Variable | ${max_rate} -| | ${threshold}= | Set Variable | ${min_rate} -| | ${dut1_vm_refs}= | Create Dictionary -| | ${dut2_vm_refs}= | Create Dictionary -| | Given Add worker threads and rxqueues to all DUTs | 2 -| | And Add PCI devices to all DUTs -| | And Add no multi seg to all DUTs -| | And Apply startup configuration on all VPP DUTs -| | When Initialize L2 bridge domains with Vhost-User and VXLANoIPv4 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} -| | Then Find PDR using binary search and pps | ${framesize} | ${binary_min} -| | ... | ${binary_max} | ${traffic_profile} -| | ... | ${min_rate} | ${max_rate} | ${threshold} | ${perf_pdr_loss_acceptance} -| | ... | ${perf_pdr_loss_acceptance_type} - -| tc09-1518B-2t2c-ethip4vxlan-l2bdbasemaclrn-eth-2vhostvr1024-1vm-ndrdisc -| | [Documentation] -| | ... | [Cfg] DUT runs L2BD switching config with 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 | 2C | NDRDISC | SKIP_PATCH -| | ... -| | ${framesize}= | Set Variable | ${1518} -| | ${min_rate}= | Set Variable | ${10000} -| | ${max_rate}= | Calculate pps | ${s_limit} | ${framesize + ${vxlan_overhead}} -| | ${binary_min}= | Set Variable | ${min_rate} -| | ${binary_max}= | Set Variable | ${max_rate} -| | ${threshold}= | Set Variable | ${min_rate} -| | ${dut1_vm_refs}= | Create Dictionary -| | ${dut2_vm_refs}= | Create Dictionary -| | Given Add worker threads and rxqueues to all DUTs | 2 -| | And Add PCI devices to all DUTs -| | And Apply startup configuration on all VPP DUTs -| | When Initialize L2 bridge domains with Vhost-User and VXLANoIPv4 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} -| | Then Find NDR using binary search and pps | ${framesize} | ${binary_min} -| | ... | ${binary_max} | ${traffic_profile} -| | ... | ${min_rate} | ${max_rate} | ${threshold} - -| tc10-1518B-2t2c-ethip4vxlan-l2bdbasemaclrn-eth-2vhostvr1024-1vm-pdrdisc -| | [Documentation] -| | ... | [Cfg] DUT runs L2BD switching config with 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 | 2C | PDRDISC | SKIP_PATCH -| | ... -| | ${framesize}= | Set Variable | ${1518} -| | ${min_rate}= | Set Variable | ${10000} -| | ${max_rate}= | Calculate pps | ${s_limit} | ${framesize + ${vxlan_overhead}} -| | ${binary_min}= | Set Variable | ${min_rate} -| | ${binary_max}= | Set Variable | ${max_rate} -| | ${threshold}= | Set Variable | ${min_rate} -| | ${dut1_vm_refs}= | Create Dictionary -| | ${dut2_vm_refs}= | Create Dictionary -| | Given Add worker threads and rxqueues to all DUTs | 2 -| | And Add PCI devices to all DUTs -| | And Apply startup configuration on all VPP DUTs -| | When Initialize L2 bridge domains with Vhost-User and VXLANoIPv4 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} -| | Then Find PDR using binary search and pps | ${framesize} | ${binary_min} -| | ... | ${binary_max} | ${traffic_profile} -| | ... | ${min_rate} | ${max_rate} | ${threshold} | ${perf_pdr_loss_acceptance} -| | ... | ${perf_pdr_loss_acceptance_type} - -| tc11-IMIX-2t2c-ethip4vxlan-l2bdbasemaclrn-eth-2vhostvr1024-1vm-ndrdisc -| | [Documentation] -| | ... | [Cfg] DUT runs L2BD switching config with 2 phy cores,\ -| | ... | 1 receive queue per NIC port. -| | ... | [Ver] Find NDR for IMIX_v4_1 frame size using binary search start at\ -| | ... | 10GE linerate, step 10kpps. -| | ... | IMIX_v4_1 = (28x64B;16x570B;4x1518B) -| | ... -| | [Tags] | IMIX | 2C | NDRDISC | SKIP_PATCH -| | ... -| | ${framesize}= | Set Variable | IMIX_v4_1 -| | ${avg_framesize}= | Set Variable | ${403.833} -| | ${min_rate}= | Set Variable | ${10000} -| | ${max_rate}= | Calculate pps | ${s_limit} | ${avg_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 -| | Given Add worker threads and rxqueues to all DUTs | 2 -| | And Add PCI devices to all DUTs -| | And Apply startup configuration on all VPP DUTs -| | When Initialize L2 bridge domains with Vhost-User and VXLANoIPv4 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} -| | Then Find NDR using binary search and pps | ${framesize} | ${binary_min} -| | ... | ${binary_max} | ${traffic_profile} -| | ... | ${min_rate} | ${max_rate} | ${threshold} - -| tc12-IMIX-2t2c-ethip4vxlan-l2bdbasemaclrn-eth-2vhostvr1024-1vm-pdrdisc -| | [Documentation] -| | ... | [Cfg] DUT runs L2BD switching config with 2 phy cores,\ -| | ... | 1 receive queue per NIC port. -| | ... | [Ver] Find PDR for IMIX_v4_1 frame size using binary search start at\ -| | ... | 10GE linerate, step 10kpps, LT=0.5%. -| | ... | IMIX_v4_1 = (28x64B;16x570B;4x1518B) -| | ... -| | [Tags] | IMIX | 2C | PDRDISC | SKIP_PATCH -| | ... -| | ${framesize}= | Set Variable | IMIX_v4_1 -| | ${avg_framesize}= | Set Variable | ${403.833} -| | ${min_rate}= | Set Variable | ${10000} -| | ${max_rate}= | Calculate pps | ${s_limit} | ${avg_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 -| | Given Add worker threads and rxqueues to all DUTs | 2 -| | And Add PCI devices to all DUTs -| | And Apply startup configuration on all VPP DUTs -| | When Initialize L2 bridge domains with Vhost-User and VXLANoIPv4 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} -| | Then Find PDR using binary search and pps | ${framesize} | ${binary_min} -| | ... | ${binary_max} | ${traffic_profile} -| | ... | ${min_rate} | ${max_rate} | ${threshold} | ${perf_pdr_loss_acceptance} -| | ... | ${perf_pdr_loss_acceptance_type} - -| tc13-64B-4t4c-ethip4vxlan-l2bdbasemaclrn-eth-2vhostvr1024-1vm-ndrdisc -| | [Documentation] -| | ... | [Cfg] DUT runs L2BD switching config with 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 | 4C | NDRDISC -| | ... -| | ${framesize}= | Set Variable | ${64} -| | ${min_rate}= | Set Variable | ${10000} -| | ${max_rate}= | Calculate pps | ${s_limit} | ${framesize + ${vxlan_overhead}} -| | ${binary_min}= | Set Variable | ${min_rate} -| | ${binary_max}= | Set Variable | ${max_rate} -| | ${threshold}= | Set Variable | ${min_rate} -| | ${dut1_vm_refs}= | Create Dictionary -| | ${dut2_vm_refs}= | Create Dictionary -| | Given Add worker threads and rxqueues to all DUTs | 4 -| | And Add PCI devices to all DUTs -| | And Add no multi seg to all DUTs -| | And Apply startup configuration on all VPP DUTs -| | When Initialize L2 bridge domains with Vhost-User and VXLANoIPv4 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} -| | Then Find NDR using binary search and pps | ${framesize} | ${binary_min} -| | ... | ${binary_max} | ${traffic_profile} -| | ... | ${min_rate} | ${max_rate} | ${threshold} - -| tc14-64B-4t4c-ethip4vxlan-l2bdbasemaclrn-eth-2vhostvr1024-1vm-pdrdisc -| | [Documentation] -| | ... | [Cfg] DUT runs L2BD switching config with 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 | 4C | PDRDISC | SKIP_PATCH -| | ... -| | ${framesize}= | Set Variable | ${64} -| | ${min_rate}= | Set Variable | ${10000} -| | ${max_rate}= | Calculate pps | ${s_limit} | ${framesize + ${vxlan_overhead}} -| | ${binary_min}= | Set Variable | ${min_rate} -| | ${binary_max}= | Set Variable | ${max_rate} -| | ${threshold}= | Set Variable | ${min_rate} -| | ${dut1_vm_refs}= | Create Dictionary -| | ${dut2_vm_refs}= | Create Dictionary -| | Given Add worker threads and rxqueues to all DUTs | 4 -| | And Add PCI devices to all DUTs -| | And Add no multi seg to all DUTs -| | And Apply startup configuration on all VPP DUTs -| | When Initialize L2 bridge domains with Vhost-User and VXLANoIPv4 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} -| | Then Find PDR using binary search and pps | ${framesize} | ${binary_min} -| | ... | ${binary_max} | ${traffic_profile} -| | ... | ${min_rate} | ${max_rate} | ${threshold} | ${perf_pdr_loss_acceptance} -| | ... | ${perf_pdr_loss_acceptance_type} - -| tc15-1518B-4t4c-ethip4vxlan-l2bdbasemaclrn-eth-2vhostvr1024-1vm-ndrdisc -| | [Documentation] -| | ... | [Cfg] DUT runs L2BD switching config with 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 | 4C | NDRDISC | SKIP_PATCH -| | ... -| | ${framesize}= | Set Variable | ${1518} -| | ${min_rate}= | Set Variable | ${10000} -| | ${max_rate}= | Calculate pps | ${s_limit} | ${framesize + ${vxlan_overhead}} -| | ${binary_min}= | Set Variable | ${min_rate} -| | ${binary_max}= | Set Variable | ${max_rate} -| | ${threshold}= | Set Variable | ${min_rate} -| | ${dut1_vm_refs}= | Create Dictionary -| | ${dut2_vm_refs}= | Create Dictionary -| | Given Add worker threads and rxqueues to all DUTs | 4 -| | And Add PCI devices to all DUTs -| | And Apply startup configuration on all VPP DUTs -| | When Initialize L2 bridge domains with Vhost-User and VXLANoIPv4 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} -| | Then Find NDR using binary search and pps | ${framesize} | ${binary_min} -| | ... | ${binary_max} | ${traffic_profile} -| | ... | ${min_rate} | ${max_rate} | ${threshold} - -| tc16-1518B-4t4c-ethip4vxlan-l2bdbasemaclrn-eth-2vhostvr1024-1vm-pdrdisc -| | [Documentation] -| | ... | [Cfg] DUT runs L2BD switching config with 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 | 4C | PDRDISC | SKIP_PATCH -| | ... -| | ${framesize}= | Set Variable | ${1518} -| | ${min_rate}= | Set Variable | ${10000} -| | ${max_rate}= | Calculate pps | ${s_limit} | ${framesize + ${vxlan_overhead}} -| | ${binary_min}= | Set Variable | ${min_rate} -| | ${binary_max}= | Set Variable | ${max_rate} -| | ${threshold}= | Set Variable | ${min_rate} -| | ${dut1_vm_refs}= | Create Dictionary -| | ${dut2_vm_refs}= | Create Dictionary -| | Given Add worker threads and rxqueues to all DUTs | 4 -| | And Add PCI devices to all DUTs -| | And Apply startup configuration on all VPP DUTs -| | When Initialize L2 bridge domains with Vhost-User and VXLANoIPv4 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} -| | Then Find PDR using binary search and pps | ${framesize} | ${binary_min} -| | ... | ${binary_max} | ${traffic_profile} -| | ... | ${min_rate} | ${max_rate} | ${threshold} | ${perf_pdr_loss_acceptance} -| | ... | ${perf_pdr_loss_acceptance_type} - -| tc17-IMIX-4t4c-ethip4vxlan-l2bdbasemaclrn-eth-2vhostvr1024-1vm-ndrdisc -| | [Documentation] -| | ... | [Cfg] DUT runs L2BD switching config with 4 phy cores,\ -| | ... | 2 receive queues per NIC port. -| | ... | [Ver] Find NDR for IMIX_v4_1 frame size using binary search start at\ -| | ... | 10GE linerate, step 10kpps. -| | ... | IMIX_v4_1 = (28x64B;16x570B;4x1518B) -| | ... -| | [Tags] | IMIX | 4C | NDRDISC | SKIP_PATCH -| | ... -| | ${framesize}= | Set Variable | IMIX_v4_1 -| | ${avg_framesize}= | Set Variable | ${403.833} -| | ${min_rate}= | Set Variable | ${10000} -| | ${max_rate}= | Calculate pps | ${s_limit} | ${avg_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 -| | Given Add worker threads and rxqueues to all DUTs | 4 -| | And Add PCI devices to all DUTs -| | And Apply startup configuration on all VPP DUTs -| | When Initialize L2 bridge domains with Vhost-User and VXLANoIPv4 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} -| | Then Find NDR using binary search and pps | ${framesize} | ${binary_min} -| | ... | ${binary_max} | ${traffic_profile} -| | ... | ${min_rate} | ${max_rate} | ${threshold} - -| tc18-IMIX-4t4c-ethip4vxlan-l2bdbasemaclrn-eth-2vhostvr1024-1vm-pdrdisc -| | [Documentation] -| | ... | [Cfg] DUT runs L2BD switching config with 4 phy cores,\ -| | ... | 2 receive queues per NIC port. -| | ... | [Ver] Find PDR for IMIX_v4_1 frame size using binary search start at\ -| | ... | 10GE linerate, step 10kpps, LT=0.5%. -| | ... | IMIX_v4_1 = (28x64B;16x570B;4x1518B) -| | ... -| | [Tags] | IMIX | 4C | PDRDISC | SKIP_PATCH -| | ... -| | ${framesize}= | Set Variable | IMIX_v4_1 -| | ${avg_framesize}= | Set Variable | ${403.833} -| | ${min_rate}= | Set Variable | ${10000} -| | ${max_rate}= | Calculate pps | ${s_limit} | ${avg_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 -| | Given Add worker threads and rxqueues to all DUTs | 4 -| | And Add PCI devices to all DUTs -| | And Apply startup configuration on all VPP DUTs -| | When Initialize L2 bridge domains with Vhost-User and VXLANoIPv4 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} -| | Then Find PDR using binary search and pps | ${framesize} | ${binary_min} -| | ... | ${binary_max} | ${traffic_profile} -| | ... | ${min_rate} | ${max_rate} | ${threshold} | ${perf_pdr_loss_acceptance} -| | ... | ${perf_pdr_loss_acceptance_type} diff --git a/tests/vpp/perf/vm_vhost/10ge2p1x710-1lbdpdk-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-mrr.robot b/tests/vpp/perf/vm_vhost/10ge2p1x710-1lbdpdk-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-mrr.robot index 2e46ee0976..743ca1b832 100644 --- a/tests/vpp/perf/vm_vhost/10ge2p1x710-1lbdpdk-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-mrr.robot +++ b/tests/vpp/perf/vm_vhost/10ge2p1x710-1lbdpdk-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-mrr.robot @@ -28,7 +28,7 @@ | ... | dut1_node=${dut1} | dut1_vm_refs=${dut1_vm_refs} | ... | dut2_node=${dut2} | dut2_vm_refs=${dut2_vm_refs} | ... -| Test Template | Local template +| Test Template | Local Template | ... | Documentation | *Raw results L2BD test cases with vhost and dpdk link bonding* | ... @@ -61,7 +61,7 @@ | ${perf_qemu_qsz}= | 1024 | ${subid}= | 10 | ${tag_rewrite}= | pop-1 -| ${vlan_overhead}= | ${4} +| ${overhead}= | ${4} # Socket names | ${bd_id1}= | 1 | ${bd_id2}= | 2 @@ -73,7 +73,7 @@ | ${traffic_profile}= | trex-sl-3n-ethip4-ip4src254 *** Keywords *** -| Local template +| Local Template | | [Documentation] | | ... | [Cfg] DUT runs L2BD switching config. | | ... | Each DUT uses ${phy_cores} physical core(s) for worker threads. @@ -88,23 +88,17 @@ | | ... | | [Arguments] | ${framesize} | ${phy_cores} | ${rxq}=${None} | | ... -| | Set Test Variable | ${framesize} -| | ${get_framesize}= | Get Frame Size | ${framesize} -| | ${max_rate}= | Calculate pps | ${s_limit} -| | ... | ${get_framesize + ${vlan_overhead}} | | ${dut1_vm_refs}= | Create Dictionary | | ${dut2_vm_refs}= | Create Dictionary | | Set Test Variable | ${dut1_vm_refs} | | Set Test Variable | ${dut2_vm_refs} -| | ${jumbo_frames}= | Set Variable If -| | ... | ${get_framesize + ${vlan_overhead}} < ${1522} | ${False} | ${True} | | ... | | Given Add worker threads and rxqueues to all DUTs | ${phy_cores} | ${rxq} | | And Add PCI devices to all DUTs | | And Add VLAN Strip Offload switch off between DUTs in 3-node single link topology | | And Add DPDK bonded Ethernet interfaces to DUTs in 3-node single link topology -| | And Run Keyword If | ${get_framesize + ${vlan_overhead}} < ${1522} -| | ... | Add no multi seg to all DUTs +| | ${max_rate} | ${jumbo} = | Get Max Rate And Jumbo And Handle Multi Seg +| | ... | ${s_limit} | ${framesize} | overhead=${overhead} | | And Apply startup configuration on all VPP DUTs | | And Add DPDK bonded ethernet interfaces to topology file in 3-node single link topology | | When Initialize L2 bridge domains with Vhost-User and VLAN with DPDK link bonding in a 3-node circular topology @@ -112,60 +106,60 @@ | | ... | ${tag_rewrite} | | ${vm1}= | And Configure guest VM with dpdk-testpmd connected via vhost-user | | ... | ${dut1} | ${sock1} | ${sock2} | DUT1_VM1 -| | ... | jumbo_frames=${jumbo_frames} +| | ... | jumbo_frames=${jumbo} | | And 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 -| | ... | jumbo_frames=${jumbo_frames} +| | ... | jumbo_frames=${jumbo} | | And Set To Dictionary | ${dut2_vm_refs} | DUT2_VM1 | ${vm2} | | Then Traffic should pass with maximum rate | | ... | ${max_rate}pps | ${framesize} | ${traffic_profile} *** Test Cases *** -| tc01-64B-1t1c-1lbdpdk-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-mrr +| tc01-64B-1c-1lbdpdk-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-mrr | | [Tags] | 64B | 1C | | framesize=${64} | phy_cores=${1} -| tc02-1518B-1t1c-1lbdpdk-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-mrr -| | [Tags] | 1518B | 1C -| | framesize=${1518} | phy_cores=${1} - -| tc03-9000B-1t1c-1lbdpdk-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-mrr -| | [Tags] | 9000B | 1C -| | framesize=${9000} | phy_cores=${1} - -| tc04-IMIX-1t1c-1lbdpdk-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-mrr -| | [Tags] | IMIX | 1C -| | framesize=IMIX_v4_1 | phy_cores=${1} - -| tc05-64B-2t2c-1lbdpdk-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-mrr +| tc02-64B-2c-1lbdpdk-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-mrr | | [Tags] | 64B | 2C | | framesize=${64} | phy_cores=${2} -| tc06-1518B-2t2c-1lbdpdk-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-mrr -| | [Tags] | 1518B | 2C -| | framesize=${1518} | phy_cores=${2} - -| tc07-9000B-2t2c-1lbdpdk-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-mrr -| | [Tags] | 9000B | 2C -| | framesize=${9000} | phy_cores=${2} - -| tc08-IMIX-2t2c-1lbdpdk-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-mrr -| | [Tags] | IMIX | 2C -| | framesize=IMIX_v4_1 | phy_cores=${2} - -| tc09-64B-4t4c-1lbdpdk-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-mrr +| tc03-64B-4c-1lbdpdk-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-mrr | | [Tags] | 64B | 4C | | framesize=${64} | phy_cores=${4} -| tc10-1518B-4t4c-1lbdpdk-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-mrr +| tc04-1518B-1c-1lbdpdk-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-mrr +| | [Tags] | 1518B | 1C +| | framesize=${1518} | phy_cores=${1} + +| tc05-1518B-2c-1lbdpdk-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-mrr +| | [Tags] | 1518B | 2C +| | framesize=${1518} | phy_cores=${2} + +| tc06-1518B-4c-1lbdpdk-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-mrr | | [Tags] | 1518B | 4C | | framesize=${1518} | phy_cores=${4} -| tc11-9000B-4t4c-1lbdpdk-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-mrr +| tc07-9000B-1c-1lbdpdk-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-mrr +| | [Tags] | 9000B | 1C +| | framesize=${9000} | phy_cores=${1} + +| tc08-9000B-2c-1lbdpdk-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-mrr +| | [Tags] | 9000B | 2C +| | framesize=${9000} | phy_cores=${2} + +| tc09-9000B-4c-1lbdpdk-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-mrr | | [Tags] | 9000B | 4C | | framesize=${9000} | phy_cores=${4} -| tc12-IMIX-4t4c-1lbdpdk-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-mrr +| tc10-IMIX-1c-1lbdpdk-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-mrr +| | [Tags] | IMIX | 1C +| | framesize=IMIX_v4_1 | phy_cores=${1} + +| tc11-IMIX-2c-1lbdpdk-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-mrr +| | [Tags] | IMIX | 2C +| | framesize=IMIX_v4_1 | phy_cores=${2} + +| tc12-IMIX-4c-1lbdpdk-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-mrr | | [Tags] | IMIX | 4C | | framesize=IMIX_v4_1 | phy_cores=${4} diff --git a/tests/vpp/perf/vm_vhost/10ge2p1x710-1lbdpdk-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-ndrpdr.robot b/tests/vpp/perf/vm_vhost/10ge2p1x710-1lbdpdk-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-ndrpdr.robot new file mode 100644 index 0000000000..0da750f981 --- /dev/null +++ b/tests/vpp/perf/vm_vhost/10ge2p1x710-1lbdpdk-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-ndrpdr.robot @@ -0,0 +1,170 @@ +# Copyright (c) 2018 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 | NDRPDR +| ... | NIC_Intel-X710 | DOT1Q | L2BDMACLRN | BASE | VHOST | 1VM +| ... | VHOST_1024 | LBOND | LBOND_DPDK | LBOND_MODE_XOR | LBOND_LB_L34 +| ... +| Suite Setup | Set up 3-node performance topology with DUT's NIC model +| ... | L2 | Intel-X710 +| 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} +| ... +| Test Template | Local Template +| ... +| Documentation | *RFC2544: Pkt throughput L2BD test cases with vhost and dpdk link bonding* +| ... +| ... | *[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 DPDK +| ... | link bonding (mode XOR, transmit policy l34) on link between DUT1 and +| ... | DUT2 and L2 bridge-domain with 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=1024, burst=64. DUT1, DUT2 are +| ... | tested with 2p10GE NIC X710 Fortville 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 MLRsearch library. +| ... | Test packets are generated by TG on links to DUTs. TG traffic profile +| ... | contains two L3 flow-groups (flow-group per direction, 254 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. + +*** Variables *** +| ${dut1_eth_bond_if1}= | eth_bond1 +| ${dut1_eth_bond_if1_name}= | BondEthernet0 +| ${dut2_eth_bond_if1}= | eth_bond1 +| ${dut2_eth_bond_if1_name}= | BondEthernet0 +| ${perf_qemu_qsz}= | 1024 +| ${subid}= | 10 +| ${tag_rewrite}= | pop-1 +| ${overhead}= | ${4} +# Socket names +| ${bd_id1}= | 1 +| ${bd_id2}= | 2 +| ${sock1}= | /tmp/sock-1-${bd_id1} +| ${sock2}= | /tmp/sock-1-${bd_id2} +# X710 bandwidth limit +| ${s_limit}= | ${10000000000} +# Traffic profile: +| ${traffic_profile}= | trex-sl-3n-ethip4-ip4src254 + +*** Keywords *** +| Local Template +| | [Documentation] +| | ... | [Cfg] DUT runs L2BD switching config. +| | ... | Each DUT uses ${phy_cores} physical core(s) for worker threads. +| | ... | [Ver] Measure NDR and PDR values using MLRsearch algorithm.\ +| | ... +| | ... | *Arguments:* +| | ... | - framesize - Framesize in Bytes in integer or string (IMIX_v4_1). +| | ... | Type: integer, string +| | ... | - phy_cores - Number of physical cores. Type: integer +| | ... | - rxq - Number of RX queues, default value: ${None}. Type: integer +| | ... +| | [Arguments] | ${framesize} | ${phy_cores} | ${rxq}=${None} +| | ... +| | Set Test Variable | ${framesize} +| | Set Test Variable | ${min_rate} | ${10000} +| | ${dut1_vm_refs}= | Create Dictionary +| | ${dut2_vm_refs}= | Create Dictionary +| | Set Test Variable | ${dut1_vm_refs} +| | Set Test Variable | ${dut2_vm_refs} +| | ... +| | Given Add worker threads and rxqueues to all DUTs | ${phy_cores} | ${rxq} +| | And Add PCI devices to all DUTs +| | And Add VLAN Strip Offload switch off between DUTs in 3-node single link topology +| | And Add DPDK bonded Ethernet interfaces to DUTs in 3-node single link topology +| | ${max_rate} | ${jumbo} = | Get Max Rate And Jumbo And Handle Multi Seg +| | ... | ${s_limit} | ${framesize} | overhead=${overhead} +| | And Apply startup configuration on all VPP DUTs +| | And Add DPDK bonded ethernet interfaces to topology file in 3-node single link topology +| | When Initialize L2 bridge domains with Vhost-User and VLAN with DPDK link bonding in a 3-node circular topology +| | ... | ${bd_id1} | ${bd_id2} | ${sock1} | ${sock2} | ${subid} +| | ... | ${tag_rewrite} +| | ${vm1}= | And Configure guest VM with dpdk-testpmd connected via vhost-user +| | ... | ${dut1} | ${sock1} | ${sock2} | DUT1_VM1 +| | ... | jumbo_frames=${jumbo} +| | And 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 +| | ... | jumbo_frames=${jumbo} +| | And Set To Dictionary | ${dut2_vm_refs} | DUT2_VM1 | ${vm2} +| | Then Find NDR and PDR intervals using optimized search +| | ... | ${framesize} | ${traffic_profile} | ${min_rate} | ${max_rate} + +*** Test Cases *** +| tc01-64B-1c-1lbdpdk-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-ndrpdr +| | [Tags] | 64B | 1C +| | framesize=${64} | phy_cores=${1} + +| tc02-64B-2c-1lbdpdk-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-ndrpdr +| | [Tags] | 64B | 2C +| | framesize=${64} | phy_cores=${2} + +| tc03-64B-4c-1lbdpdk-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-ndrpdr +| | [Tags] | 64B | 4C +| | framesize=${64} | phy_cores=${4} + +| tc04-1518B-1c-1lbdpdk-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-ndrpdr +| | [Tags] | 1518B | 1C +| | framesize=${1518} | phy_cores=${1} + +| tc05-1518B-2c-1lbdpdk-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-ndrpdr +| | [Tags] | 1518B | 2C +| | framesize=${1518} | phy_cores=${2} + +| tc06-1518B-4c-1lbdpdk-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-ndrpdr +| | [Tags] | 1518B | 4C +| | framesize=${1518} | phy_cores=${4} + +| tc07-9000B-1c-1lbdpdk-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-ndrpdr +| | [Tags] | 9000B | 1C +| | framesize=${9000} | phy_cores=${1} + +| tc08-9000B-2c-1lbdpdk-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-ndrpdr +| | [Tags] | 9000B | 2C +| | framesize=${9000} | phy_cores=${2} + +| tc09-9000B-4c-1lbdpdk-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-ndrpdr +| | [Tags] | 9000B | 4C +| | framesize=${9000} | phy_cores=${4} + +| tc10-IMIX-1c-1lbdpdk-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-ndrpdr +| | [Tags] | IMIX | 1C +| | framesize=IMIX_v4_1 | phy_cores=${1} + +| tc11-IMIX-2c-1lbdpdk-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-ndrpdr +| | [Tags] | IMIX | 2C +| | framesize=IMIX_v4_1 | phy_cores=${2} + +| tc12-IMIX-4c-1lbdpdk-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-ndrpdr +| | [Tags] | IMIX | 4C +| | framesize=IMIX_v4_1 | phy_cores=${4} diff --git a/tests/vpp/perf/vm_vhost/10ge2p1x710-1lbdpdk-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-ndrpdrdisc.robot b/tests/vpp/perf/vm_vhost/10ge2p1x710-1lbdpdk-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-ndrpdrdisc.robot deleted file mode 100644 index eba40b9017..0000000000 --- a/tests/vpp/perf/vm_vhost/10ge2p1x710-1lbdpdk-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-ndrpdrdisc.robot +++ /dev/null @@ -1,227 +0,0 @@ -# Copyright (c) 2018 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-X710 | DOT1Q | L2BDMACLRN | BASE | VHOST | VM -| ... | VHOST_1024 | LBOND | LBOND_DPDK | LBOND_MODE_XOR | LBOND_LB_L34 -| ... -| Suite Setup | Set up 3-node performance topology with DUT's NIC model -| ... | L2 | Intel-X710 -| 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} -| ... -| Test Template | Local template -| ... -| Documentation | *RFC2544: Packet throughput L2BD test cases with vhost and -| ... | dpdk link bonding* -| ... -| ... | *[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 DPDK -| ... | link bonding (mode XOR, transmit policy l34) on link between DUT1 and -| ... | DUT2 and L2 bridge-domain with 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=1024, burst=64. DUT1, DUT2 are -| ... | tested with 2p10GE NIC X710 Fortville 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 *** -| ${dut1_eth_bond_if1}= | eth_bond1 -| ${dut1_eth_bond_if1_name}= | BondEthernet0 -| ${dut2_eth_bond_if1}= | eth_bond1 -| ${dut2_eth_bond_if1_name}= | BondEthernet0 -| ${perf_qemu_qsz}= | 1024 -| ${subid}= | 10 -| ${tag_rewrite}= | pop-1 -| ${vlan_overhead}= | ${4} -# X710 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 *** -| Local template -| | [Arguments] | ${phy_cores} | ${framesize} | ${search_type} | ${rxq}=${None} -| | ... | ${min_rate}=${10000} -| | ... -| | Set Test Variable | ${framesize} -| | Set Test Variable | ${min_rate} -| | ${get_framesize}= | Get Frame Size | ${framesize} -| | ${max_rate}= | Calculate pps | ${s_limit} -| | ... | ${get_framesize + ${vlan_overhead}} -| | ${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} -| | ${jumbo_frames}= | Set Variable If -| | ... | ${get_framesize + ${vlan_overhead}} < ${1522} | ${False} | ${True} -| | ... -| | Given Add worker threads and rxqueues to all DUTs | ${phy_cores} | ${rxq} -| | And Add PCI devices to all DUTs -| | And Add VLAN Strip Offload switch off between DUTs in 3-node single link topology -| | And Add DPDK bonded Ethernet interfaces to DUTs in 3-node single link topology -| | And Run Keyword If | ${get_framesize + ${vlan_overhead}} < ${1522} -| | ... | Add no multi seg to all DUTs -| | And Apply startup configuration on all VPP DUTs -| | And Add DPDK bonded ethernet interfaces to topology file in 3-node single link topology -| | When Initialize L2 bridge domains with Vhost-User and VLAN with DPDK link bonding in a 3-node circular topology -| | ... | ${bd_id1} | ${bd_id2} | ${sock1} | ${sock2} | ${subid} -| | ... | ${tag_rewrite} -| | ${vm1}= | And Configure guest VM with dpdk-testpmd connected via vhost-user -| | ... | ${dut1} | ${sock1} | ${sock2} | DUT1_VM1 -| | ... | jumbo_frames=${jumbo_frames} -| | And 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 -| | ... | jumbo_frames=${jumbo_frames} -| | And Set To Dictionary | ${dut2_vm_refs} | DUT2_VM1 | ${vm2} -| | Then Run Keyword If | '${search_type}' == 'NDR' -| | ... | Find NDR using binary search and pps -| | ... | ${framesize} | ${binary_min} | ${binary_max} | ${traffic_profile} -| | ... | ${min_rate} | ${max_rate} | ${threshold} -| | ... | ELSE IF | '${search_type}' == 'PDR' -| | ... | Find PDR using binary search and pps -| | ... | ${framesize} | ${binary_min} | ${binary_max} | ${traffic_profile} -| | ... | ${min_rate} | ${max_rate} | ${threshold} -| | ... | ${perf_pdr_loss_acceptance} | ${perf_pdr_loss_acceptance_type} - -*** Test Cases *** -| tc01-64B-1t1c-1lbdpdk-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-ndrdisc -| | [Tags] | 64B | 1C | NDRDISC -| | phy_cores=${1} | framesize=${64} | search_type=NDR - -| tc02-64B-1t1c-1lbdpdk-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-pdrdisc -| | [Tags] | 64B | 1C | PDRDISC | SKIP_PATCH -| | phy_cores=${1} | framesize=${64} | search_type=PDR - -| tc03-1518B-1t1c-1lbdpdk-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-ndrdisc -| | [Tags] | 1518B | 1C | NDRDISC -| | phy_cores=${1} | framesize=${1518} | search_type=NDR - -| tc04-1518B-1t1c-1lbdpdk-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-pdrdisc -| | [Tags] | 1518B | 1C | PDRDISC | SKIP_PATCH -| | phy_cores=${1} | framesize=${1518} | search_type=PDR - -| tc05-9000B-1t1c-1lbdpdk-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-ndrdisc -| | [Tags] | 9000B | 1C | NDRDISC -| | phy_cores=${1} | framesize=${9000} | search_type=NDR - -| tc06-9000B-1t1c-1lbdpdk-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-pdrdisc -| | [Tags] | 9000B | 1C | PDRDISC | SKIP_PATCH -| | phy_cores=${1} | framesize=${9000} | search_type=PDR - -| tc07-IMIX-1t1c-1lbdpdk-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-ndrdisc -| | [Tags] | IMIX | 1C | NDRDISC -| | phy_cores=${1} | framesize=IMIX_v4_1 | search_type=NDR - -| tc08-IMIX-1t1c-1lbdpdk-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-pdrdisc -| | [Tags] | IMIX | 1C | PDRDISC | SKIP_PATCH -| | phy_cores=${1} | framesize=IMIX_v4_1 | search_type=PDR - -| tc09-64B-2t2c-1lbdpdk-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-ndrdisc -| | [Tags] | 64B | 2C | NDRDISC -| | phy_cores=${2} | framesize=${64} | search_type=NDR - -| tc10-64B-2t2c-1lbdpdk-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-pdrdisc -| | [Tags] | 64B | 2C | PDRDISC | SKIP_PATCH -| | phy_cores=${2} | framesize=${64} | search_type=PDR - -| tc11-1518B-2t2c-1lbdpdk-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-ndrdisc -| | [Tags] | 1518B | 2C | NDRDISC | SKIP_PATCH -| | phy_cores=${2} | framesize=${1518} | search_type=NDR - -| tc12-1518B-2t2c-1lbdpdk-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-pdrdisc -| | [Tags] | 1518B | 2C | PDRDISC | SKIP_PATCH -| | phy_cores=${2} | framesize=${1518} | search_type=PDR - -| tc13-9000B-2t2c-1lbdpdk-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-ndrdisc -| | [Tags] | 9000B | 2C | NDRDISC | SKIP_PATCH -| | phy_cores=${2} | framesize=${9000} | search_type=NDR - -| tc14-9000B-2t2c-1lbdpdk-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-pdrdisc -| | [Tags] | 9000B | 2C | PDRDISC | SKIP_PATCH -| | phy_cores=${2} | framesize=${9000} | search_type=PDR - -| tc15-IMIX-2t2c-1lbdpdk-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-ndrdisc -| | [Tags] | IMIX | 2C | NDRDISC | SKIP_PATCH -| | phy_cores=${2} | framesize=IMIX_v4_1 | search_type=NDR - -| tc16-IMIX-2t2c-1lbdpdk-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-pdrdisc -| | [Tags] | IMIX | 2C | PDRDISC | SKIP_PATCH -| | phy_cores=${2} | framesize=IMIX_v4_1 | search_type=PDR - -| tc17-64B-4t4c-1lbdpdk-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-ndrdisc -| | [Tags] | 64B | 4C | NDRDISC -| | phy_cores=${4} | framesize=${64} | search_type=NDR - -| tc18-64B-4t4c-1lbdpdk-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-pdrdisc -| | [Tags] | 64B | 4C | PDRDISC | SKIP_PATCH -| | phy_cores=${4} | framesize=${64} | search_type=PDR - -| tc19-1518B-4t4c-1lbdpdk-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-ndrdisc -| | [Tags] | 1518B | 4C | NDRDISC | SKIP_PATCH -| | phy_cores=${4} | framesize=${1518} | search_type=NDR - -| tc20-1518B-4t4c-1lbdpdk-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-pdrdisc -| | [Tags] | 1518B | 4C | PDRDISC | SKIP_PATCH -| | phy_cores=${4} | framesize=${1518} | search_type=PDR - -| tc21-9000B-4t4c-1lbdpdk-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-ndrdisc -| | [Tags] | 9000B | 4C | NDRDISC | SKIP_PATCH -| | phy_cores=${4} | framesize=${9000} | search_type=NDR - -| tc22-9000B-4t4c-1lbdpdk-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-pdrdisc -| | [Tags] | 9000B | 4C | PDRDISC | SKIP_PATCH -| | phy_cores=${4} | framesize=${9000} | search_type=PDR - -| tc23-IMIX-4t4c-1lbdpdk-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-ndrdisc -| | [Tags] | IMIX | 4C | NDRDISC | SKIP_PATCH -| | phy_cores=${4} | framesize=IMIX_v4_1 | search_type=NDR - -| tc24-IMIX-4t4c-1lbdpdk-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-pdrdisc -| | [Tags] | IMIX | 4C | PDRDISC | SKIP_PATCH -| | phy_cores=${4} | framesize=IMIX_v4_1 | search_type=PDR diff --git a/tests/vpp/perf/vm_vhost/10ge2p1x710-1lbdpdk-dot1q-l2xcbase-eth-2vhostvr1024-1vm-mrr.robot b/tests/vpp/perf/vm_vhost/10ge2p1x710-1lbdpdk-dot1q-l2xcbase-eth-2vhostvr1024-1vm-mrr.robot index 832e9e274a..f6b3411fcf 100644 --- a/tests/vpp/perf/vm_vhost/10ge2p1x710-1lbdpdk-dot1q-l2xcbase-eth-2vhostvr1024-1vm-mrr.robot +++ b/tests/vpp/perf/vm_vhost/10ge2p1x710-1lbdpdk-dot1q-l2xcbase-eth-2vhostvr1024-1vm-mrr.robot @@ -28,7 +28,7 @@ | ... | dut1_node=${dut1} | dut1_vm_refs=${dut1_vm_refs} | ... | dut2_node=${dut2} | dut2_vm_refs=${dut2_vm_refs} | ... -| Test Template | Local template +| Test Template | Local Template | ... | Documentation | *Raw results L2XC test cases with vhost and dpdk link bonding* | ... @@ -61,7 +61,7 @@ | ${perf_qemu_qsz}= | 1024 | ${subid}= | 10 | ${tag_rewrite}= | pop-1 -| ${vlan_overhead}= | ${4} +| ${overhead}= | ${4} # Socket names | ${sock1}= | /tmp/sock-1 | ${sock2}= | /tmp/sock-2 @@ -71,7 +71,7 @@ | ${traffic_profile}= | trex-sl-3n-ethip4-ip4src254 *** Keywords *** -| Local template +| Local Template | | [Documentation] | | ... | [Cfg] DUT runs L2XC switching config. | | ... | Each DUT uses ${phy_cores} physical core(s) for worker threads. @@ -86,83 +86,77 @@ | | ... | | [Arguments] | ${framesize} | ${phy_cores} | ${rxq}=${None} | | ... -| | Set Test Variable | ${framesize} -| | ${get_framesize}= | Get Frame Size | ${framesize} -| | ${max_rate}= | Calculate pps | ${s_limit} -| | ... | ${get_framesize + ${vlan_overhead}} | | ${dut1_vm_refs}= | Create Dictionary | | ${dut2_vm_refs}= | Create Dictionary | | Set Test Variable | ${dut1_vm_refs} | | Set Test Variable | ${dut2_vm_refs} -| | ${jumbo_frames}= | Set Variable If -| | ... | ${get_framesize + ${vlan_overhead}} < ${1522} | ${False} | ${True} | | ... | | Given Add worker threads and rxqueues to all DUTs | ${phy_cores} | ${rxq} | | And Add PCI devices to all DUTs | | And Add VLAN Strip Offload switch off between DUTs in 3-node single link topology | | And Add DPDK bonded Ethernet interfaces to DUTs in 3-node single link topology -| | And Run Keyword If | ${get_framesize + ${vlan_overhead}} < ${1522} -| | ... | Add no multi seg to all DUTs +| | ${max_rate} | ${jumbo} = | Get Max Rate And Jumbo And Handle Multi Seg +| | ... | ${s_limit} | ${framesize} | overhead=${overhead} | | And Apply startup configuration on all VPP DUTs | | And Add DPDK bonded ethernet interfaces to topology file in 3-node single link topology | | When Initialize L2 xconnect with Vhost-User and VLAN with DPDK link bonding in 3-node circular topology | | ... | ${sock1} | ${sock2} | ${subid} | ${tag_rewrite} | | ${vm1}= | And Configure guest VM with dpdk-testpmd connected via vhost-user | | ... | ${dut1} | ${sock1} | ${sock2} | DUT1_VM1 -| | ... | jumbo_frames=${jumbo_frames} +| | ... | jumbo_frames=${jumbo} | | And 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 -| | ... | jumbo_frames=${jumbo_frames} +| | ... | jumbo_frames=${jumbo} | | And Set To Dictionary | ${dut2_vm_refs} | DUT2_VM1 | ${vm2} | | Then Traffic should pass with maximum rate | | ... | ${max_rate}pps | ${framesize} | ${traffic_profile} *** Test Cases *** -| tc01-64B-1t1c-1lbdpdk-dot1q-l2xcbase-eth-2vhostvr1024-1vm-mrr +| tc01-64B-1c-1lbdpdk-dot1q-l2xcbase-eth-2vhostvr1024-1vm-mrr | | [Tags] | 64B | 1C | | framesize=${64} | phy_cores=${1} -| tc02-1518B-1t1c-1lbdpdk-dot1q-l2xcbase-eth-2vhostvr1024-1vm-mrr -| | [Tags] | 1518B | 1C -| | framesize=${1518} | phy_cores=${1} - -| tc03-9000B-1t1c-1lbdpdk-dot1q-l2xcbase-eth-2vhostvr1024-1vm-mrr -| | [Tags] | 9000B | 1C -| | framesize=${9000} | phy_cores=${1} - -| tc04-IMIX-1t1c-1lbdpdk-dot1q-l2xcbase-eth-2vhostvr1024-1vm-mrr -| | [Tags] | IMIX | 1C -| | framesize=IMIX_v4_1 | phy_cores=${1} - -| tc05-64B-2t2c-1lbdpdk-dot1q-l2xcbase-eth-2vhostvr1024-1vm-mrr +| tc02-64B-2c-1lbdpdk-dot1q-l2xcbase-eth-2vhostvr1024-1vm-mrr | | [Tags] | 64B | 2C | | framesize=${64} | phy_cores=${2} -| tc06-1518B-2t2c-1lbdpdk-dot1q-l2xcbase-eth-2vhostvr1024-1vm-mrr -| | [Tags] | 1518B | 2C -| | framesize=${1518} | phy_cores=${2} - -| tc07-9000B-2t2c-1lbdpdk-dot1q-l2xcbase-eth-2vhostvr1024-1vm-mrr -| | [Tags] | 9000B | 2C -| | framesize=${9000} | phy_cores=${2} - -| tc08-IMIX-2t2c-1lbdpdk-dot1q-l2xcbase-eth-2vhostvr1024-1vm-mrr -| | [Tags] | IMIX | 2C -| | framesize=IMIX_v4_1 | phy_cores=${2} - -| tc09-64B-4t4c-1lbdpdk-dot1q-l2xcbase-eth-2vhostvr1024-1vm-mrr +| tc03-64B-4c-1lbdpdk-dot1q-l2xcbase-eth-2vhostvr1024-1vm-mrr | | [Tags] | 64B | 4C | | framesize=${64} | phy_cores=${4} -| tc10-1518B-4t4c-1lbdpdk-dot1q-l2xcbase-eth-2vhostvr1024-1vm-mrr +| tc04-1518B-1c-1lbdpdk-dot1q-l2xcbase-eth-2vhostvr1024-1vm-mrr +| | [Tags] | 1518B | 1C +| | framesize=${1518} | phy_cores=${1} + +| tc05-1518B-2c-1lbdpdk-dot1q-l2xcbase-eth-2vhostvr1024-1vm-mrr +| | [Tags] | 1518B | 2C +| | framesize=${1518} | phy_cores=${2} + +| tc06-1518B-4c-1lbdpdk-dot1q-l2xcbase-eth-2vhostvr1024-1vm-mrr | | [Tags] | 1518B | 4C | | framesize=${1518} | phy_cores=${4} -| tc11-9000B-4t4c-1lbdpdk-dot1q-l2xcbase-eth-2vhostvr1024-1vm-mrr +| tc07-9000B-1c-1lbdpdk-dot1q-l2xcbase-eth-2vhostvr1024-1vm-mrr +| | [Tags] | 9000B | 1C +| | framesize=${9000} | phy_cores=${1} + +| tc08-9000B-2c-1lbdpdk-dot1q-l2xcbase-eth-2vhostvr1024-1vm-mrr +| | [Tags] | 9000B | 2C +| | framesize=${9000} | phy_cores=${2} + +| tc09-9000B-4c-1lbdpdk-dot1q-l2xcbase-eth-2vhostvr1024-1vm-mrr | | [Tags] | 9000B | 4C | | framesize=${9000} | phy_cores=${4} -| tc12-IMIX-4t4c-1lbdpdk-dot1q-l2xcbase-eth-2vhostvr1024-1vm-mrr +| tc10-IMIX-1c-1lbdpdk-dot1q-l2xcbase-eth-2vhostvr1024-1vm-mrr +| | [Tags] | IMIX | 1C +| | framesize=IMIX_v4_1 | phy_cores=${1} + +| tc11-IMIX-2c-1lbdpdk-dot1q-l2xcbase-eth-2vhostvr1024-1vm-mrr +| | [Tags] | IMIX | 2C +| | framesize=IMIX_v4_1 | phy_cores=${2} + +| tc12-IMIX-4c-1lbdpdk-dot1q-l2xcbase-eth-2vhostvr1024-1vm-mrr | | [Tags] | IMIX | 4C | | framesize=IMIX_v4_1 | phy_cores=${4} diff --git a/tests/vpp/perf/vm_vhost/10ge2p1x710-1lbdpdk-dot1q-l2xcbase-eth-2vhostvr1024-1vm-ndrpdr.robot b/tests/vpp/perf/vm_vhost/10ge2p1x710-1lbdpdk-dot1q-l2xcbase-eth-2vhostvr1024-1vm-ndrpdr.robot new file mode 100644 index 0000000000..a6d9b83981 --- /dev/null +++ b/tests/vpp/perf/vm_vhost/10ge2p1x710-1lbdpdk-dot1q-l2xcbase-eth-2vhostvr1024-1vm-ndrpdr.robot @@ -0,0 +1,167 @@ +# Copyright (c) 2018 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 | NDRPDR +| ... | NIC_Intel-X710 | DOT1Q | L2XCFWD | BASE | VHOST | 1VM +| ... | VHOST_1024 | LBOND | LBOND_DPDK | LBOND_MODE_XOR | LBOND_LB_L34 +| ... +| Suite Setup | Set up 3-node performance topology with DUT's NIC model +| ... | L2 | Intel-X710 +| 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} +| ... +| Test Template | Local Template +| ... +| Documentation | *RFC2544: Pkt throughput L2XC test cases with vhost and dpdk link bonding* +| ... +| ... | *[Top] Network Topologies:* TG-DUT1-DUT2-TG 3-node circular topology +| ... | with single links between nodes. +| ... | *[Enc] Packet Encapsulations:* Eth-IPv4 for L2 cross connect. 802.1q +| ... | tagging is applied on link between DUT1 and DUT2. +| ... | *[Cfg] DUT configuration:* DUT1 and DUT2 are configured with DPDK +| ... | link bonding (mode XOR, transmit policy l34) on link between DUT1 and +| ... | DUT2 and 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=1024, burst=64. DUT1, DUT2 are tested with 2p10GE NIC X710 +| ... | Fortville 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 MLRsearch library. +| ... | Test packets are generated by TG on links to DUTs. TG traffic profile +| ... | contains two L3 flow-groups (flow-group per direction, 254 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. + +*** Variables *** +| ${dut1_eth_bond_if1}= | eth_bond1 +| ${dut1_eth_bond_if1_name}= | BondEthernet0 +| ${dut2_eth_bond_if1}= | eth_bond1 +| ${dut2_eth_bond_if1_name}= | BondEthernet0 +| ${perf_qemu_qsz}= | 1024 +| ${subid}= | 10 +| ${tag_rewrite}= | pop-1 +| ${overhead}= | ${4} +# Socket names +| ${sock1}= | /tmp/sock-1 +| ${sock2}= | /tmp/sock-2 +# X710 bandwidth limit +| ${s_limit}= | ${10000000000} +# Traffic profile: +| ${traffic_profile}= | trex-sl-3n-ethip4-ip4src254 + +*** Keywords *** +| Local Template +| | [Documentation] +| | ... | [Cfg] DUT runs L2XC switching config. +| | ... | Each DUT uses ${phy_cores} physical core(s) for worker threads. +| | ... | [Ver] Measure NDR and PDR values using MLRsearch algorithm.\ +| | ... +| | ... | *Arguments:* +| | ... | - framesize - Framesize in Bytes in integer or string (IMIX_v4_1). +| | ... | Type: integer, string +| | ... | - phy_cores - Number of physical cores. Type: integer +| | ... | - rxq - Number of RX queues, default value: ${None}. Type: integer +| | ... +| | [Arguments] | ${framesize} | ${phy_cores} | ${rxq}=${None} +| | ... +| | Set Test Variable | ${framesize} +| | Set Test Variable | ${min_rate} | ${10000} +| | ${dut1_vm_refs}= | Create Dictionary +| | ${dut2_vm_refs}= | Create Dictionary +| | Set Test Variable | ${dut1_vm_refs} +| | Set Test Variable | ${dut2_vm_refs} +| | ... +| | Given Add worker threads and rxqueues to all DUTs | ${phy_cores} | ${rxq} +| | And Add PCI devices to all DUTs +| | And Add VLAN Strip Offload switch off between DUTs in 3-node single link topology +| | And Add DPDK bonded Ethernet interfaces to DUTs in 3-node single link topology +| | ${max_rate} | ${jumbo} = | Get Max Rate And Jumbo And Handle Multi Seg +| | ... | ${s_limit} | ${framesize} | overhead=${overhead} +| | And Apply startup configuration on all VPP DUTs +| | And Add DPDK bonded ethernet interfaces to topology file in 3-node single link topology +| | When Initialize L2 xconnect with Vhost-User and VLAN with DPDK link bonding in 3-node circular topology +| | ... | ${sock1} | ${sock2} | ${subid} | ${tag_rewrite} +| | ${vm1}= | And Configure guest VM with dpdk-testpmd connected via vhost-user +| | ... | ${dut1} | ${sock1} | ${sock2} | DUT1_VM1 +| | ... | jumbo_frames=${jumbo} +| | And 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 +| | ... | jumbo_frames=${jumbo} +| | And Set To Dictionary | ${dut2_vm_refs} | DUT2_VM1 | ${vm2} +| | Then Find NDR and PDR intervals using optimized search +| | ... | ${framesize} | ${traffic_profile} | ${min_rate} | ${max_rate} + +*** Test Cases *** +| tc01-64B-1c-1lbdpdk-dot1q-l2xcbase-eth-2vhostvr1024-1vm-ndrpdr +| | [Tags] | 64B | 1C +| | framesize=${64} | phy_cores=${1} + +| tc02-64B-2c-1lbdpdk-dot1q-l2xcbase-eth-2vhostvr1024-1vm-ndrpdr +| | [Tags] | 64B | 2C +| | framesize=${64} | phy_cores=${2} + +| tc03-64B-4c-1lbdpdk-dot1q-l2xcbase-eth-2vhostvr1024-1vm-ndrpdr +| | [Tags] | 64B | 4C +| | framesize=${64} | phy_cores=${4} + +| tc04-1518B-1c-1lbdpdk-dot1q-l2xcbase-eth-2vhostvr1024-1vm-ndrpdr +| | [Tags] | 1518B | 1C +| | framesize=${1518} | phy_cores=${1} + +| tc05-1518B-2c-1lbdpdk-dot1q-l2xcbase-eth-2vhostvr1024-1vm-ndrpdr +| | [Tags] | 1518B | 2C +| | framesize=${1518} | phy_cores=${2} + +| tc06-1518B-4c-1lbdpdk-dot1q-l2xcbase-eth-2vhostvr1024-1vm-ndrpdr +| | [Tags] | 1518B | 4C +| | framesize=${1518} | phy_cores=${4} + +| tc07-9000B-1c-1lbdpdk-dot1q-l2xcbase-eth-2vhostvr1024-1vm-ndrpdr +| | [Tags] | 9000B | 1C +| | framesize=${9000} | phy_cores=${1} + +| tc08-9000B-2c-1lbdpdk-dot1q-l2xcbase-eth-2vhostvr1024-1vm-ndrpdr +| | [Tags] | 9000B | 2C +| | framesize=${9000} | phy_cores=${2} + +| tc09-9000B-4c-1lbdpdk-dot1q-l2xcbase-eth-2vhostvr1024-1vm-ndrpdr +| | [Tags] | 9000B | 4C +| | framesize=${9000} | phy_cores=${4} + +| tc10-IMIX-1c-1lbdpdk-dot1q-l2xcbase-eth-2vhostvr1024-1vm-ndrpdr +| | [Tags] | IMIX | 1C +| | framesize=IMIX_v4_1 | phy_cores=${1} + +| tc11-IMIX-2c-1lbdpdk-dot1q-l2xcbase-eth-2vhostvr1024-1vm-ndrpdr +| | [Tags] | IMIX | 2C +| | framesize=IMIX_v4_1 | phy_cores=${2} + +| tc12-IMIX-4c-1lbdpdk-dot1q-l2xcbase-eth-2vhostvr1024-1vm-ndrpdr +| | [Tags] | IMIX | 4C +| | framesize=IMIX_v4_1 | phy_cores=${4} diff --git a/tests/vpp/perf/vm_vhost/10ge2p1x710-1lbdpdk-dot1q-l2xcbase-eth-2vhostvr1024-1vm-ndrpdrdisc.robot b/tests/vpp/perf/vm_vhost/10ge2p1x710-1lbdpdk-dot1q-l2xcbase-eth-2vhostvr1024-1vm-ndrpdrdisc.robot deleted file mode 100644 index 1ea5dd55e0..0000000000 --- a/tests/vpp/perf/vm_vhost/10ge2p1x710-1lbdpdk-dot1q-l2xcbase-eth-2vhostvr1024-1vm-ndrpdrdisc.robot +++ /dev/null @@ -1,226 +0,0 @@ -# Copyright (c) 2018 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-X710 | DOT1Q | L2XCFWD | BASE | VHOST | VM -| ... | VHOST_1024 | LBOND | LBOND_DPDK | LBOND_MODE_XOR | LBOND_LB_L34 -| ... -| Suite Setup | Set up 3-node performance topology with DUT's NIC model -| ... | L2 | Intel-X710 -| 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} -| ... -| Test Template | Local template -| ... -| Documentation | *RFC2544: Packet throughput L2XC test cases with vhost and -| ... | dpdk link bonding* -| ... -| ... | *[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 DPDK -| ... | link bonding (mode XOR, transmit policy l34) on link between DUT1 and -| ... | DUT2 and 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 -| ... | forwarding mode is set to io, rxd/txd=1024, burst=64. DUT1, DUT2 are -| ... | core and 4 cores dedicated for io), tested with 2p10GE NIC X710 -| ... | Fortville 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 *** -| ${dut1_eth_bond_if1}= | eth_bond1 -| ${dut1_eth_bond_if1_name}= | BondEthernet0 -| ${dut2_eth_bond_if1}= | eth_bond1 -| ${dut2_eth_bond_if1_name}= | BondEthernet0 -| ${perf_qemu_qsz}= | 1024 -| ${subid}= | 10 -| ${tag_rewrite}= | pop-1 -| ${vlan_overhead}= | ${4} -# X710 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 *** -| Local template -| | [Arguments] | ${phy_cores} | ${framesize} | ${search_type} | ${rxq}=${None} -| | ... | ${min_rate}=${10000} -| | ... -| | Set Test Variable | ${framesize} -| | Set Test Variable | ${min_rate} -| | ${get_framesize}= | Get Frame Size | ${framesize} -| | ${max_rate}= | Calculate pps | ${s_limit} -| | ... | ${get_framesize + ${vlan_overhead}} -| | ${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} -| | ${jumbo_frames}= | Set Variable If -| | ... | ${get_framesize + ${vlan_overhead}} < ${1522} | ${False} | ${True} -| | ... -| | Given Add worker threads and rxqueues to all DUTs | ${phy_cores} | ${rxq} -| | And Add PCI devices to all DUTs -| | And Add VLAN Strip Offload switch off between DUTs in 3-node single link topology -| | And Add DPDK bonded Ethernet interfaces to DUTs in 3-node single link topology -| | And Run Keyword If | ${get_framesize + ${vlan_overhead}} < ${1522} -| | ... | Add no multi seg to all DUTs -| | And Apply startup configuration on all VPP DUTs -| | And Add DPDK bonded ethernet interfaces to topology file in 3-node single link topology -| | When Initialize L2 xconnect with Vhost-User and VLAN with DPDK link bonding in 3-node circular topology -| | ... | ${sock1} | ${sock2} | ${subid} | ${tag_rewrite} -| | ${vm1}= | And Configure guest VM with dpdk-testpmd connected via vhost-user -| | ... | ${dut1} | ${sock1} | ${sock2} | DUT1_VM1 -| | ... | jumbo_frames=${jumbo_frames} -| | And 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 -| | ... | jumbo_frames=${jumbo_frames} -| | And 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-1lbdpdk-dot1q-l2xcbase-eth-2vhostvr1024-1vm-ndrdisc -| | [Tags] | 64B | 1C | NDRDISC -| | phy_cores=${1} | framesize=${64} | search_type=NDR - -| tc02-64B-1t1c-1lbdpdk-dot1q-l2xcbase-eth-2vhostvr1024-1vm-pdrdisc -| | [Tags] | 64B | 1C | PDRDISC | SKIP_PATCH -| | phy_cores=${1} | framesize=${64} | search_type=PDR - -| tc03-1518B-1t1c-1lbdpdk-dot1q-l2xcbase-eth-2vhostvr1024-1vm-ndrdisc -| | [Tags] | 1518B | 1C | NDRDISC -| | phy_cores=${1} | framesize=${1518} | search_type=NDR - -| tc04-1518B-1t1c-1lbdpdk-dot1q-l2xcbase-eth-2vhostvr1024-1vm-pdrdisc -| | [Tags] | 1518B | 1C | PDRDISC | SKIP_PATCH -| | phy_cores=${1} | framesize=${1518} | search_type=PDR - -| tc05-9000B-1t1c-1lbdpdk-dot1q-l2xcbase-eth-2vhostvr1024-1vm-ndrdisc -| | [Tags] | 9000B | 1C | NDRDISC -| | phy_cores=${1} | framesize=${9000} | search_type=NDR - -| tc06-9000B-1t1c-1lbdpdk-dot1q-l2xcbase-eth-2vhostvr1024-1vm-pdrdisc -| | [Tags] | 9000B | 1C | PDRDISC | SKIP_PATCH -| | phy_cores=${1} | framesize=${9000} | search_type=PDR - -| tc07-IMIX-1t1c-1lbdpdk-dot1q-l2xcbase-eth-2vhostvr1024-1vm-ndrdisc -| | [Tags] | IMIX | 1C | NDRDISC -| | phy_cores=${1} | framesize=IMIX_v4_1 | search_type=NDR - -| tc08-IMIX-1t1c-1lbdpdk-dot1q-l2xcbase-eth-2vhostvr1024-1vm-pdrdisc -| | [Tags] | IMIX | 1C | PDRDISC | SKIP_PATCH -| | phy_cores=${1} | framesize=IMIX_v4_1 | search_type=PDR - -| tc09-64B-2t2c-1lbdpdk-dot1q-l2xcbase-eth-2vhostvr1024-1vm-ndrdisc -| | [Tags] | 64B | 2C | NDRDISC -| | phy_cores=${2} | framesize=${64} | search_type=NDR - -| tc10-64B-2t2c-1lbdpdk-dot1q-l2xcbase-eth-2vhostvr1024-1vm-pdrdisc -| | [Tags] | 64B | 2C | PDRDISC | SKIP_PATCH -| | phy_cores=${2} | framesize=${64} | search_type=PDR - -| tc11-1518B-2t2c-1lbdpdk-dot1q-l2xcbase-eth-2vhostvr1024-1vm-ndrdisc -| | [Tags] | 1518B | 2C | NDRDISC | SKIP_PATCH -| | phy_cores=${2} | framesize=${1518} | search_type=NDR - -| tc12-1518B-2t2c-1lbdpdk-dot1q-l2xcbase-eth-2vhostvr1024-1vm-pdrdisc -| | [Tags] | 1518B | 2C | PDRDISC | SKIP_PATCH -| | phy_cores=${2} | framesize=${1518} | search_type=PDR - -| tc13-9000B-2t2c-1lbdpdk-dot1q-l2xcbase-eth-2vhostvr1024-1vm-ndrdisc -| | [Tags] | 9000B | 2C | NDRDISC | SKIP_PATCH -| | phy_cores=${2} | framesize=${9000} | search_type=NDR - -| tc14-9000B-2t2c-1lbdpdk-dot1q-l2xcbase-eth-2vhostvr1024-1vm-pdrdisc -| | [Tags] | 9000B | 2C | PDRDISC | SKIP_PATCH -| | phy_cores=${2} | framesize=${9000} | search_type=PDR - -| tc15-IMIX-2t2c-1lbdpdk-dot1q-l2xcbase-eth-2vhostvr1024-1vm-ndrdisc -| | [Tags] | IMIX | 2C | NDRDISC | SKIP_PATCH -| | phy_cores=${2} | framesize=IMIX_v4_1 | search_type=NDR - -| tc16-IMIX-2t2c-1lbdpdk-dot1q-l2xcbase-eth-2vhostvr1024-1vm-pdrdisc -| | [Tags] | IMIX | 2C | PDRDISC | SKIP_PATCH -| | phy_cores=${2} | framesize=IMIX_v4_1 | search_type=PDR - -| tc17-64B-4t4c-1lbdpdk-dot1q-l2xcbase-eth-2vhostvr1024-1vm-ndrdisc -| | [Tags] | 64B | 4C | NDRDISC -| | phy_cores=${4} | framesize=${64} | search_type=NDR - -| tc18-64B-4t4c-1lbdpdk-dot1q-l2xcbase-eth-2vhostvr1024-1vm-pdrdisc -| | [Tags] | 64B | 4C | PDRDISC | SKIP_PATCH -| | phy_cores=${4} | framesize=${64} | search_type=PDR - -| tc19-1518B-4t4c-1lbdpdk-dot1q-l2xcbase-eth-2vhostvr1024-1vm-ndrdisc -| | [Tags] | 1518B | 4C | NDRDISC | SKIP_PATCH -| | phy_cores=${4} | framesize=${1518} | search_type=NDR - -| tc20-1518B-4t4c-1lbdpdk-dot1q-l2xcbase-eth-2vhostvr1024-1vm-pdrdisc -| | [Tags] | 1518B | 4C | PDRDISC | SKIP_PATCH -| | phy_cores=${4} | framesize=${1518} | search_type=PDR - -| tc21-9000B-4t4c-1lbdpdk-dot1q-l2xcbase-eth-2vhostvr1024-1vm-ndrdisc -| | [Tags] | 9000B | 4C | NDRDISC | SKIP_PATCH -| | phy_cores=${4} | framesize=${9000} | search_type=NDR - -| tc22-9000B-4t4c-1lbdpdk-dot1q-l2xcbase-eth-2vhostvr1024-1vm-pdrdisc -| | [Tags] | 9000B | 4C | PDRDISC | SKIP_PATCH -| | phy_cores=${4} | framesize=${9000} | search_type=PDR - -| tc23-IMIX-4t4c-1lbdpdk-dot1q-l2xcbase-eth-2vhostvr1024-1vm-ndrdisc -| | [Tags] | IMIX | 4C | NDRDISC | SKIP_PATCH -| | phy_cores=${4} | framesize=IMIX_v4_1 | search_type=NDR - -| tc24-IMIX-4t4c-1lbdpdk-dot1q-l2xcbase-eth-2vhostvr1024-1vm-pdrdisc -| | [Tags] | IMIX | 4C | PDRDISC | SKIP_PATCH -| | phy_cores=${4} | framesize=IMIX_v4_1 | search_type=PDR diff --git a/tests/vpp/perf/vm_vhost/10ge2p1x710-1lbvpplacp-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-mrr.robot b/tests/vpp/perf/vm_vhost/10ge2p1x710-1lbvpplacp-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-mrr.robot index c712df4d73..2e27dc38b5 100644 --- a/tests/vpp/perf/vm_vhost/10ge2p1x710-1lbvpplacp-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-mrr.robot +++ b/tests/vpp/perf/vm_vhost/10ge2p1x710-1lbvpplacp-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-mrr.robot @@ -32,7 +32,7 @@ | ... | dut1_node=${dut1} | dut1_vm_refs=${dut1_vm_refs} | ... | dut2_node=${dut2} | dut2_vm_refs=${dut2_vm_refs} | ... -| Test Template | Local template +| Test Template | Local Template | ... | Documentation | *Raw results L2BD test cases with vhost and vpp link bonding* | ... @@ -61,7 +61,7 @@ | ${perf_qemu_qsz}= | 1024 | ${subid}= | 10 | ${tag_rewrite}= | pop-1 -| ${vlan_overhead}= | ${4} +| ${overhead}= | ${4} # Link bonding config | ${bond_mode}= | lacp | ${lb_mode}= | l34 @@ -76,7 +76,7 @@ | ${traffic_profile}= | trex-sl-3n-ethip4-ip4src254 *** Keywords *** -| Local template +| Local Template | | [Documentation] | | ... | [Cfg] DUT runs L2BD switching config. | | ... | Each DUT uses ${phy_cores} physical core(s) for worker threads. @@ -91,83 +91,77 @@ | | ... | | [Arguments] | ${framesize} | ${phy_cores} | ${rxq}=${None} | | ... -| | Set Test Variable | ${framesize} -| | ${get_framesize}= | Get Frame Size | ${framesize} -| | ${max_rate}= | Calculate pps | ${s_limit} -| | ... | ${get_framesize + ${vlan_overhead}} | | ${dut1_vm_refs}= | Create Dictionary | | ${dut2_vm_refs}= | Create Dictionary | | Set Test Variable | ${dut1_vm_refs} | | Set Test Variable | ${dut2_vm_refs} -| | ${jumbo_frames}= | Set Variable If -| | ... | ${get_framesize + ${vlan_overhead}} < ${1522} | ${False} | ${True} | | ... | | Given Add worker threads and rxqueues to all DUTs | ${phy_cores} | ${rxq} | | And Add PCI devices to all DUTs | | And Add VLAN Strip Offload switch off between DUTs in 3-node single link topology -| | And Run Keyword If | ${get_framesize + ${vlan_overhead}} < ${1522} -| | ... | Add no multi seg to all DUTs +| | ${max_rate} | ${jumbo} = | Get Max Rate And Jumbo And Handle Multi Seg +| | ... | ${s_limit} | ${framesize} | overhead=${overhead} | | And Apply startup configuration on all VPP DUTs | | When Initialize L2 bridge domains with Vhost-User and VLAN with VPP link bonding in a 3-node circular topology | | ... | ${bd_id1} | ${bd_id2} | ${sock1} | ${sock2} | ${subid} | | ... | ${tag_rewrite} | ${bond_mode} | ${lb_mode} | | ${vm1}= | And Configure guest VM with dpdk-testpmd connected via vhost-user | | ... | ${dut1} | ${sock1} | ${sock2} | DUT1_VM1 -| | ... | jumbo_frames=${jumbo_frames} +| | ... | jumbo_frames=${jumbo} | | And 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 -| | ... | jumbo_frames=${jumbo_frames} +| | ... | jumbo_frames=${jumbo} | | And Set To Dictionary | ${dut2_vm_refs} | DUT2_VM1 | ${vm2} | | And All Vpp Interfaces Ready Wait | ${nodes} | | Then Traffic should pass with maximum rate | | ... | ${max_rate}pps | ${framesize} | ${traffic_profile} *** Test Cases *** -| tc01-64B-1t1c-1lbvpplacp-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-mrr +| tc01-64B-1c-1lbvpplacp-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-mrr | | [Tags] | 64B | 1C | | framesize=${64} | phy_cores=${1} -| tc02-1518B-1t1c-1lbvpplacp-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-mrr -| | [Tags] | 1518B | 1C -| | framesize=${1518} | phy_cores=${1} - -| tc03-9000B-1t1c-1lbvpplacp-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-mrr -| | [Tags] | 9000B | 1C -| | framesize=${9000} | phy_cores=${1} - -| tc04-IMIX-1t1c-1lbvpplacp-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-mrr -| | [Tags] | IMIX | 1C -| | framesize=IMIX_v4_1 | phy_cores=${1} - -| tc05-64B-2t2c-1lbvpplacp-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-mrr +| tc02-64B-2c-1lbvpplacp-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-mrr | | [Tags] | 64B | 2C | | framesize=${64} | phy_cores=${2} -| tc06-1518B-2t2c-1lbvpplacp-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-mrr -| | [Tags] | 1518B | 2C -| | framesize=${1518} | phy_cores=${2} - -| tc07-9000B-2t2c-1lbvpplacp-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-mrr -| | [Tags] | 9000B | 2C -| | framesize=${9000} | phy_cores=${2} - -| tc08-IMIX-2t2c-1lbvpplacp-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-mrr -| | [Tags] | IMIX | 2C -| | framesize=IMIX_v4_1 | phy_cores=${2} - -| tc09-64B-4t4c-1lbvpplacp-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-mrr +| tc03-64B-4c-1lbvpplacp-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-mrr | | [Tags] | 64B | 4C | | framesize=${64} | phy_cores=${4} -| tc10-1518B-4t4c-1lbvpplacp-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-mrr +| tc04-1518B-1c-1lbvpplacp-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-mrr +| | [Tags] | 1518B | 1C +| | framesize=${1518} | phy_cores=${1} + +| tc05-1518B-2c-1lbvpplacp-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-mrr +| | [Tags] | 1518B | 2C +| | framesize=${1518} | phy_cores=${2} + +| tc06-1518B-4c-1lbvpplacp-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-mrr | | [Tags] | 1518B | 4C | | framesize=${1518} | phy_cores=${4} -| tc11-9000B-4t4c-1lbvpplacp-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-mrr +| tc07-9000B-1c-1lbvpplacp-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-mrr +| | [Tags] | 9000B | 1C +| | framesize=${9000} | phy_cores=${1} + +| tc08-9000B-2c-1lbvpplacp-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-mrr +| | [Tags] | 9000B | 2C +| | framesize=${9000} | phy_cores=${2} + +| tc09-9000B-4c-1lbvpplacp-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-mrr | | [Tags] | 9000B | 4C | | framesize=${9000} | phy_cores=${4} -| tc12-IMIX-4t4c-1lbvpplacp-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-mrr +| tc10-IMIX-1c-1lbvpplacp-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-mrr +| | [Tags] | IMIX | 1C +| | framesize=IMIX_v4_1 | phy_cores=${1} + +| tc11-IMIX-2c-1lbvpplacp-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-mrr +| | [Tags] | IMIX | 2C +| | framesize=IMIX_v4_1 | phy_cores=${2} + +| tc12-IMIX-4c-1lbvpplacp-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-mrr | | [Tags] | IMIX | 4C | | framesize=IMIX_v4_1 | phy_cores=${4} diff --git a/tests/vpp/perf/vm_vhost/10ge2p1x710-1lbvpplacp-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-ndrpdr.robot b/tests/vpp/perf/vm_vhost/10ge2p1x710-1lbvpplacp-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-ndrpdr.robot new file mode 100644 index 0000000000..dba1f3cca7 --- /dev/null +++ b/tests/vpp/perf/vm_vhost/10ge2p1x710-1lbvpplacp-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-ndrpdr.robot @@ -0,0 +1,171 @@ +# Copyright (c) 2018 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 | NDRPDR +| ... | NIC_Intel-X710 | DOT1Q | L2BDMACLRN | BASE | VHOST | 1VM +| ... | VHOST_1024 | LBOND | LBOND_VPP| LBOND_MODE_LACP | LBOND_LB_L34 +| ... +| Suite Setup | Run Keywords +| ... | Set up 3-node performance topology with DUT's NIC model | L2 +| ... | Intel-X520-DA2 +| ... | AND | Set up performance test suite with LACP mode link bonding +| ... +| 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} +| ... +| Test Template | Local Template +| ... +| Documentation | *RFC2544: Pkt throughput L2BD test cases with vhost and vpp link bonding* +| ... +| ... | *[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 VPP +| ... | link bonding (mode LACP, transmit policy l34) on link between DUT1 and +| ... | DUT2 and L2 bridge-domain with 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=1024, burst=64. DUT1, DUT2 are +| ... | tested with 2p10GE NIC X710 Fortville 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 MLRsearch library. +| ... | Test packets are generated by TG on links to DUTs. TG traffic profile +| ... | contains two L3 flow-groups (flow-group per direction, 254 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. + +*** Variables *** +| ${perf_qemu_qsz}= | 1024 +| ${subid}= | 10 +| ${tag_rewrite}= | pop-1 +| ${overhead}= | ${4} +# Link bonding config +| ${bond_mode}= | lacp +| ${lb_mode}= | l34 +# Socket names +| ${bd_id1}= | 1 +| ${bd_id2}= | 2 +| ${sock1}= | /tmp/sock-1-${bd_id1} +| ${sock2}= | /tmp/sock-1-${bd_id2} +# X710 bandwidth limit +| ${s_limit}= | ${10000000000} +# Traffic profile: +| ${traffic_profile}= | trex-sl-3n-ethip4-ip4src254 + +*** Keywords *** +| Local Template +| | [Documentation] +| | ... | [Cfg] DUT runs L2BD switching config. +| | ... | Each DUT uses ${phy_cores} physical core(s) for worker threads. +| | ... | [Ver] Measure NDR and PDR values using MLRsearch algorithm.\ +| | ... +| | ... | *Arguments:* +| | ... | - framesize - Framesize in Bytes in integer or string (IMIX_v4_1). +| | ... | Type: integer, string +| | ... | - phy_cores - Number of physical cores. Type: integer +| | ... | - rxq - Number of RX queues, default value: ${None}. Type: integer +| | ... +| | [Arguments] | ${framesize} | ${phy_cores} | ${rxq}=${None} +| | ... +| | Set Test Variable | ${framesize} +| | Set Test Variable | ${min_rate} | ${10000} +| | ${dut1_vm_refs}= | Create Dictionary +| | ${dut2_vm_refs}= | Create Dictionary +| | Set Test Variable | ${dut1_vm_refs} +| | Set Test Variable | ${dut2_vm_refs} +| | ... +| | Given Add worker threads and rxqueues to all DUTs | ${phy_cores} | ${rxq} +| | And Add PCI devices to all DUTs +| | And Add VLAN Strip Offload switch off between DUTs in 3-node single link topology +| | ${max_rate} | ${jumbo} = | Get Max Rate And Jumbo And Handle Multi Seg +| | ... | ${s_limit} | ${framesize} | overhead=${overhead} +| | And Apply startup configuration on all VPP DUTs +| | When Initialize L2 bridge domains with Vhost-User and VLAN with VPP link bonding in a 3-node circular topology +| | ... | ${bd_id1} | ${bd_id2} | ${sock1} | ${sock2} | ${subid} +| | ... | ${tag_rewrite} | ${bond_mode} | ${lb_mode} +| | ${vm1}= | And Configure guest VM with dpdk-testpmd connected via vhost-user +| | ... | ${dut1} | ${sock1} | ${sock2} | DUT1_VM1 +| | ... | jumbo_frames=${jumbo} +| | And 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 +| | ... | jumbo_frames=${jumbo} +| | And Set To Dictionary | ${dut2_vm_refs} | DUT2_VM1 | ${vm2} +| | And All Vpp Interfaces Ready Wait | ${nodes} +| | Then Find NDR and PDR intervals using optimized search +| | ... | ${framesize} | ${traffic_profile} | ${min_rate} | ${max_rate} + +*** Test Cases *** +| tc01-64B-1c-1lbvpplacp-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-ndrpdr +| | [Tags] | 64B | 1C +| | framesize=${64} | phy_cores=${1} + +| tc02-64B-2c-1lbvpplacp-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-ndrpdr +| | [Tags] | 64B | 2C +| | framesize=${64} | phy_cores=${2} + +| tc03-64B-4c-1lbvpplacp-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-ndrpdr +| | [Tags] | 64B | 4C +| | framesize=${64} | phy_cores=${4} + +| tc04-1518B-1c-1lbvpplacp-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-ndrpdr +| | [Tags] | 1518B | 1C +| | framesize=${1518} | phy_cores=${1} + +| tc05-1518B-2c-1lbvpplacp-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-ndrpdr +| | [Tags] | 1518B | 2C +| | framesize=${1518} | phy_cores=${2} + +| tc06-1518B-4c-1lbvpplacp-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-ndrpdr +| | [Tags] | 1518B | 4C +| | framesize=${1518} | phy_cores=${4} + +| tc07-9000B-1c-1lbvpplacp-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-ndrpdr +| | [Tags] | 9000B | 1C +| | framesize=${9000} | phy_cores=${1} + +| tc08-9000B-2c-1lbvpplacp-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-ndrpdr +| | [Tags] | 9000B | 2C +| | framesize=${9000} | phy_cores=${2} + +| tc09-9000B-4c-1lbvpplacp-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-ndrpdr +| | [Tags] | 9000B | 4C +| | framesize=${9000} | phy_cores=${4} + +| tc10-IMIX-1c-1lbvpplacp-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-ndrpdr +| | [Tags] | IMIX | 1C +| | framesize=IMIX_v4_1 | phy_cores=${1} + +| tc11-IMIX-2c-1lbvpplacp-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-ndrpdr +| | [Tags] | IMIX | 2C +| | framesize=IMIX_v4_1 | phy_cores=${2} + +| tc12-IMIX-4c-1lbvpplacp-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-ndrpdr +| | [Tags] | IMIX | 4C +| | framesize=IMIX_v4_1 | phy_cores=${4} diff --git a/tests/vpp/perf/vm_vhost/10ge2p1x710-1lbvpplacp-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-ndrpdrdisc.robot b/tests/vpp/perf/vm_vhost/10ge2p1x710-1lbvpplacp-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-ndrpdrdisc.robot deleted file mode 100644 index ba1a74eb0e..0000000000 --- a/tests/vpp/perf/vm_vhost/10ge2p1x710-1lbvpplacp-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-ndrpdrdisc.robot +++ /dev/null @@ -1,228 +0,0 @@ -# Copyright (c) 2018 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-X710 | DOT1Q | L2BDMACLRN | BASE | VHOST | VM -| ... | VHOST_1024 | LBOND | LBOND_VPP| LBOND_MODE_LACP | LBOND_LB_L34 -| ... -| Suite Setup | Run Keywords -| ... | Set up 3-node performance topology with DUT's NIC model | L2 -| ... | Intel-X520-DA2 -| ... | AND | Set up performance test suite with LACP mode link bonding -| ... -| 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} -| ... -| Test Template | Local template -| ... -| Documentation | *RFC2544: Packet throughput L2BD test cases with vhost and -| ... | vpp link bonding* -| ... -| ... | *[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 VPP -| ... | link bonding (mode LACP, transmit policy l34) on link between DUT1 and -| ... | DUT2 and L2 bridge-domain with 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=1024, burst=64. DUT1, DUT2 are -| ... | tested with 2p10GE NIC X710 Fortville 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 *** -| ${perf_qemu_qsz}= | 1024 -| ${subid}= | 10 -| ${tag_rewrite}= | pop-1 -| ${vlan_overhead}= | ${4} -# Link bonding config -| ${bond_mode}= | lacp -| ${lb_mode}= | l34 -# X710 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 *** -| Local template -| | [Arguments] | ${phy_cores} | ${framesize} | ${search_type} | ${rxq}=${None} -| | ... | ${min_rate}=${10000} -| | ... -| | Set Test Variable | ${framesize} -| | Set Test Variable | ${min_rate} -| | ${get_framesize}= | Get Frame Size | ${framesize} -| | ${max_rate}= | Calculate pps | ${s_limit} -| | ... | ${get_framesize + ${vlan_overhead}} -| | ${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} -| | ${jumbo_frames}= | Set Variable If -| | ... | ${get_framesize + ${vlan_overhead}} < ${1522} | ${False} | ${True} -| | ... -| | Given Add worker threads and rxqueues to all DUTs | ${phy_cores} | ${rxq} -| | And Add PCI devices to all DUTs -| | And Add VLAN Strip Offload switch off between DUTs in 3-node single link topology -| | And Run Keyword If | ${get_framesize + ${vlan_overhead}} < ${1522} -| | ... | Add no multi seg to all DUTs -| | And Apply startup configuration on all VPP DUTs -| | When Initialize L2 bridge domains with Vhost-User and VLAN with VPP link bonding in a 3-node circular topology -| | ... | ${bd_id1} | ${bd_id2} | ${sock1} | ${sock2} | ${subid} -| | ... | ${tag_rewrite} | ${bond_mode} | ${lb_mode} -| | ${vm1}= | And Configure guest VM with dpdk-testpmd connected via vhost-user -| | ... | ${dut1} | ${sock1} | ${sock2} | DUT1_VM1 -| | ... | jumbo_frames=${jumbo_frames} -| | And 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 -| | ... | jumbo_frames=${jumbo_frames} -| | And Set To Dictionary | ${dut2_vm_refs} | DUT2_VM1 | ${vm2} -| | And All Vpp Interfaces Ready Wait | ${nodes} -| | Then Run Keyword If | '${search_type}' == 'NDR' -| | ... | Find NDR using binary search and pps -| | ... | ${framesize} | ${binary_min} | ${binary_max} | ${traffic_profile} -| | ... | ${min_rate} | ${max_rate} | ${threshold} -| | ... | ELSE IF | '${search_type}' == 'PDR' -| | ... | Find PDR using binary search and pps -| | ... | ${framesize} | ${binary_min} | ${binary_max} | ${traffic_profile} -| | ... | ${min_rate} | ${max_rate} | ${threshold} -| | ... | ${perf_pdr_loss_acceptance} | ${perf_pdr_loss_acceptance_type} - -*** Test Cases *** -| tc01-64B-1t1c-1lbvpplacp-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-ndrdisc -| | [Tags] | 64B | 1C | NDRDISC -| | phy_cores=${1} | framesize=${64} | search_type=NDR - -| tc02-64B-1t1c-1lbvpplacp-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-pdrdisc -| | [Tags] | 64B | 1C | PDRDISC | SKIP_PATCH -| | phy_cores=${1} | framesize=${64} | search_type=PDR - -| tc03-1518B-1t1c-1lbvpplacp-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-ndrdisc -| | [Tags] | 1518B | 1C | NDRDISC -| | phy_cores=${1} | framesize=${1518} | search_type=NDR - -| tc04-1518B-1t1c-1lbvpplacp-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-pdrdisc -| | [Tags] | 1518B | 1C | PDRDISC | SKIP_PATCH -| | phy_cores=${1} | framesize=${1518} | search_type=PDR - -| tc05-9000B-1t1c-1lbvpplacp-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-ndrdisc -| | [Tags] | 9000B | 1C | NDRDISC -| | phy_cores=${1} | framesize=${9000} | search_type=NDR - -| tc06-9000B-1t1c-1lbvpplacp-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-pdrdisc -| | [Tags] | 9000B | 1C | PDRDISC | SKIP_PATCH -| | phy_cores=${1} | framesize=${9000} | search_type=PDR - -| tc07-IMIX-1t1c-1lbvpplacp-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-ndrdisc -| | [Tags] | IMIX | 1C | NDRDISC -| | phy_cores=${1} | framesize=IMIX_v4_1 | search_type=NDR - -| tc08-IMIX-1t1c-1lbvpplacp-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-pdrdisc -| | [Tags] | IMIX | 1C | PDRDISC | SKIP_PATCH -| | phy_cores=${1} | framesize=IMIX_v4_1 | search_type=PDR - -| tc09-64B-2t2c-1lbvpplacp-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-ndrdisc -| | [Tags] | 64B | 2C | NDRDISC -| | phy_cores=${2} | framesize=${64} | search_type=NDR - -| tc10-64B-2t2c-1lbvpplacp-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-pdrdisc -| | [Tags] | 64B | 2C | PDRDISC | SKIP_PATCH -| | phy_cores=${2} | framesize=${64} | search_type=PDR - -| tc11-1518B-2t2c-1lbvpplacp-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-ndrdisc -| | [Tags] | 1518B | 2C | NDRDISC | SKIP_PATCH -| | phy_cores=${2} | framesize=${1518} | search_type=NDR - -| tc12-1518B-2t2c-1lbvpplacp-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-pdrdisc -| | [Tags] | 1518B | 2C | PDRDISC | SKIP_PATCH -| | phy_cores=${2} | framesize=${1518} | search_type=PDR - -| tc13-9000B-2t2c-1lbvpplacp-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-ndrdisc -| | [Tags] | 9000B | 2C | NDRDISC | SKIP_PATCH -| | phy_cores=${2} | framesize=${9000} | search_type=NDR - -| tc14-9000B-2t2c-1lbvpplacp-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-pdrdisc -| | [Tags] | 9000B | 2C | PDRDISC | SKIP_PATCH -| | phy_cores=${2} | framesize=${9000} | search_type=PDR - -| tc15-IMIX-2t2c-1lbvpplacp-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-ndrdisc -| | [Tags] | IMIX | 2C | NDRDISC | SKIP_PATCH -| | phy_cores=${2} | framesize=IMIX_v4_1 | search_type=NDR - -| tc16-IMIX-2t2c-1lbvpplacp-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-pdrdisc -| | [Tags] | IMIX | 2C | PDRDISC | SKIP_PATCH -| | phy_cores=${2} | framesize=IMIX_v4_1 | search_type=PDR - -| tc17-64B-4t4c-1lbvpplacp-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-ndrdisc -| | [Tags] | 64B | 4C | NDRDISC -| | phy_cores=${4} | framesize=${64} | search_type=NDR - -| tc18-64B-4t4c-1lbvpplacp-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-pdrdisc -| | [Tags] | 64B | 4C | PDRDISC | SKIP_PATCH -| | phy_cores=${4} | framesize=${64} | search_type=PDR - -| tc19-1518B-4t4c-1lbvpplacp-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-ndrdisc -| | [Tags] | 1518B | 4C | NDRDISC | SKIP_PATCH -| | phy_cores=${4} | framesize=${1518} | search_type=NDR - -| tc20-1518B-4t4c-1lbvpplacp-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-pdrdisc -| | [Tags] | 1518B | 4C | PDRDISC | SKIP_PATCH -| | phy_cores=${4} | framesize=${1518} | search_type=PDR - -| tc21-9000B-4t4c-1lbvpplacp-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-ndrdisc -| | [Tags] | 9000B | 4C | NDRDISC | SKIP_PATCH -| | phy_cores=${4} | framesize=${9000} | search_type=NDR - -| tc22-9000B-4t4c-1lbvpplacp-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-pdrdisc -| | [Tags] | 9000B | 4C | PDRDISC | SKIP_PATCH -| | phy_cores=${4} | framesize=${9000} | search_type=PDR - -| tc23-IMIX-4t4c-1lbvpplacp-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-ndrdisc -| | [Tags] | IMIX | 4C | NDRDISC | SKIP_PATCH -| | phy_cores=${4} | framesize=IMIX_v4_1 | search_type=NDR - -| tc24-IMIX-4t4c-1lbvpplacp-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-pdrdisc -| | [Tags] | IMIX | 4C | PDRDISC | SKIP_PATCH -| | phy_cores=${4} | framesize=IMIX_v4_1 | search_type=PDR diff --git a/tests/vpp/perf/vm_vhost/10ge2p1x710-1lbvpplacp-dot1q-l2xcbase-eth-2vhostvr1024-1vm-mrr.robot b/tests/vpp/perf/vm_vhost/10ge2p1x710-1lbvpplacp-dot1q-l2xcbase-eth-2vhostvr1024-1vm-mrr.robot index eac5a35a2f..274cd53455 100644 --- a/tests/vpp/perf/vm_vhost/10ge2p1x710-1lbvpplacp-dot1q-l2xcbase-eth-2vhostvr1024-1vm-mrr.robot +++ b/tests/vpp/perf/vm_vhost/10ge2p1x710-1lbvpplacp-dot1q-l2xcbase-eth-2vhostvr1024-1vm-mrr.robot @@ -31,7 +31,7 @@ | ... | dut1_node=${dut1} | dut1_vm_refs=${dut1_vm_refs} | ... | dut2_node=${dut2} | dut2_vm_refs=${dut2_vm_refs} | ... -| Test Template | Local template +| Test Template | Local Template | ... | Documentation | *Raw results L2XC test cases with vhost and vpp link bonding* | ... @@ -60,7 +60,7 @@ | ${perf_qemu_qsz}= | 1024 | ${subid}= | 10 | ${tag_rewrite}= | pop-1 -| ${vlan_overhead}= | ${4} +| ${overhead}= | ${4} # Link bonding config | ${bond_mode}= | lacp | ${lb_mode}= | l34 @@ -73,7 +73,7 @@ | ${traffic_profile}= | trex-sl-3n-ethip4-ip4src254 *** Keywords *** -| Local template +| Local Template | | [Documentation] | | ... | [Cfg] DUT runs L2XC switching config. | | ... | Each DUT uses ${phy_cores} physical core(s) for worker threads. @@ -88,83 +88,77 @@ | | ... | | [Arguments] | ${framesize} | ${phy_cores} | ${rxq}=${None} | | ... -| | Set Test Variable | ${framesize} -| | ${get_framesize}= | Get Frame Size | ${framesize} -| | ${max_rate}= | Calculate pps | ${s_limit} -| | ... | ${get_framesize + ${vlan_overhead}} | | ${dut1_vm_refs}= | Create Dictionary | | ${dut2_vm_refs}= | Create Dictionary | | Set Test Variable | ${dut1_vm_refs} | | Set Test Variable | ${dut2_vm_refs} -| | ${jumbo_frames}= | Set Variable If -| | ... | ${get_framesize + ${vlan_overhead}} < ${1522} | ${False} | ${True} | | ... | | Given Add worker threads and rxqueues to all DUTs | ${phy_cores} | ${rxq} | | And Add PCI devices to all DUTs | | And Add VLAN Strip Offload switch off between DUTs in 3-node single link topology -| | And Run Keyword If | ${get_framesize + ${vlan_overhead}} < ${1522} -| | ... | Add no multi seg to all DUTs +| | ${max_rate} | ${jumbo} = | Get Max Rate And Jumbo And Handle Multi Seg +| | ... | ${s_limit} | ${framesize} | overhead=${overhead} | | And Apply startup configuration on all VPP DUTs | | When Initialize L2 xconnect with Vhost-User and VLAN with VPP link bonding in 3-node circular topology | | ... | ${sock1} | ${sock2} | ${subid} | ${tag_rewrite} | ${bond_mode} | | ... | ${lb_mode} | | ${vm1}= | And Configure guest VM with dpdk-testpmd connected via vhost-user | | ... | ${dut1} | ${sock1} | ${sock2} | DUT1_VM1 -| | ... | jumbo_frames=${jumbo_frames} +| | ... | jumbo_frames=${jumbo} | | And 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 -| | ... | jumbo_frames=${jumbo_frames} +| | ... | jumbo_frames=${jumbo} | | And Set To Dictionary | ${dut2_vm_refs} | DUT2_VM1 | ${vm2} | | And All Vpp Interfaces Ready Wait | ${nodes} | | Then Traffic should pass with maximum rate | | ... | ${max_rate}pps | ${framesize} | ${traffic_profile} *** Test Cases *** -| tc01-64B-1t1c-1lbvpplacp-dot1q-l2xcbase-eth-2vhostvr1024-1vm-mrr +| tc01-64B-1c-1lbvpplacp-dot1q-l2xcbase-eth-2vhostvr1024-1vm-mrr | | [Tags] | 64B | 1C | | framesize=${64} | phy_cores=${1} -| tc02-1518B-1t1c-1lbvpplacp-dot1q-l2xcbase-eth-2vhostvr1024-1vm-mrr -| | [Tags] | 1518B | 1C -| | framesize=${1518} | phy_cores=${1} - -| tc03-9000B-1t1c-1lbvpplacp-dot1q-l2xcbase-eth-2vhostvr1024-1vm-mrr -| | [Tags] | 9000B | 1C -| | framesize=${9000} | phy_cores=${1} - -| tc04-IMIX-1t1c-1lbvpplacp-dot1q-l2xcbase-eth-2vhostvr1024-1vm-mrr -| | [Tags] | IMIX | 1C -| | framesize=IMIX_v4_1 | phy_cores=${1} - -| tc05-64B-2t2c-1lbvpplacp-dot1q-l2xcbase-eth-2vhostvr1024-1vm-mrr +| tc02-64B-2c-1lbvpplacp-dot1q-l2xcbase-eth-2vhostvr1024-1vm-mrr | | [Tags] | 64B | 2C | | framesize=${64} | phy_cores=${2} -| tc06-1518B-2t2c-1lbvpplacp-dot1q-l2xcbase-eth-2vhostvr1024-1vm-mrr -| | [Tags] | 1518B | 2C -| | framesize=${1518} | phy_cores=${2} - -| tc07-9000B-2t2c-1lbvpplacp-dot1q-l2xcbase-eth-2vhostvr1024-1vm-mrr -| | [Tags] | 9000B | 2C -| | framesize=${9000} | phy_cores=${2} - -| tc08-IMIX-2t2c-1lbvpplacp-dot1q-l2xcbase-eth-2vhostvr1024-1vm-mrr -| | [Tags] | IMIX | 2C -| | framesize=IMIX_v4_1 | phy_cores=${2} - -| tc09-64B-4t4c-1lbvpplacp-dot1q-l2xcbase-eth-2vhostvr1024-1vm-mrr +| tc03-64B-4c-1lbvpplacp-dot1q-l2xcbase-eth-2vhostvr1024-1vm-mrr | | [Tags] | 64B | 4C | | framesize=${64} | phy_cores=${4} -| tc10-1518B-4t4c-1lbvpplacp-dot1q-l2xcbase-eth-2vhostvr1024-1vm-mrr +| tc04-1518B-1c-1lbvpplacp-dot1q-l2xcbase-eth-2vhostvr1024-1vm-mrr +| | [Tags] | 1518B | 1C +| | framesize=${1518} | phy_cores=${1} + +| tc05-1518B-2c-1lbvpplacp-dot1q-l2xcbase-eth-2vhostvr1024-1vm-mrr +| | [Tags] | 1518B | 2C +| | framesize=${1518} | phy_cores=${2} + +| tc06-1518B-4c-1lbvpplacp-dot1q-l2xcbase-eth-2vhostvr1024-1vm-mrr | | [Tags] | 1518B | 4C | | framesize=${1518} | phy_cores=${4} -| tc11-9000B-4t4c-1lbvpplacp-dot1q-l2xcbase-eth-2vhostvr1024-1vm-mrr +| tc07-9000B-1c-1lbvpplacp-dot1q-l2xcbase-eth-2vhostvr1024-1vm-mrr +| | [Tags] | 9000B | 1C +| | framesize=${9000} | phy_cores=${1} + +| tc08-9000B-2c-1lbvpplacp-dot1q-l2xcbase-eth-2vhostvr1024-1vm-mrr +| | [Tags] | 9000B | 2C +| | framesize=${9000} | phy_cores=${2} + +| tc09-9000B-4c-1lbvpplacp-dot1q-l2xcbase-eth-2vhostvr1024-1vm-mrr | | [Tags] | 9000B | 4C | | framesize=${9000} | phy_cores=${4} -| tc12-IMIX-4t4c-1lbvpplacp-dot1q-l2xcbase-eth-2vhostvr1024-1vm-mrr +| tc10-IMIX-1c-1lbvpplacp-dot1q-l2xcbase-eth-2vhostvr1024-1vm-mrr +| | [Tags] | IMIX | 1C +| | framesize=IMIX_v4_1 | phy_cores=${1} + +| tc11-IMIX-2c-1lbvpplacp-dot1q-l2xcbase-eth-2vhostvr1024-1vm-mrr +| | [Tags] | IMIX | 2C +| | framesize=IMIX_v4_1 | phy_cores=${2} + +| tc12-IMIX-4c-1lbvpplacp-dot1q-l2xcbase-eth-2vhostvr1024-1vm-mrr | | [Tags] | IMIX | 4C | | framesize=IMIX_v4_1 | phy_cores=${4} diff --git a/tests/vpp/perf/vm_vhost/10ge2p1x710-1lbvpplacp-dot1q-l2xcbase-eth-2vhostvr1024-1vm-ndrpdr.robot b/tests/vpp/perf/vm_vhost/10ge2p1x710-1lbvpplacp-dot1q-l2xcbase-eth-2vhostvr1024-1vm-ndrpdr.robot new file mode 100644 index 0000000000..c937dcfe93 --- /dev/null +++ b/tests/vpp/perf/vm_vhost/10ge2p1x710-1lbvpplacp-dot1q-l2xcbase-eth-2vhostvr1024-1vm-ndrpdr.robot @@ -0,0 +1,169 @@ +# Copyright (c) 2018 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 | NDRPDR +| ... | NIC_Intel-X710 | DOT1Q | L2XCFWD | BASE | VHOST | 1VM +| ... | VHOST_1024 | LBOND | LBOND_VPP| LBOND_MODE_LACP | LBOND_LB_L34 +| ... +| Suite Setup | Run Keywords +| ... | Set up 3-node performance topology with DUT's NIC model | L2 +| ... | Intel-X520-DA2 +| ... | AND | Set up performance test suite with LACP mode link bonding +| ... +| 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} +| ... +| Test Template | Local Template +| ... +| Documentation | *RFC2544: Pkt throughput L2XC test cases with vhost and vpp link bonding* +| ... +| ... | *[Top] Network Topologies:* TG-DUT1-DUT2-TG 3-node circular topology +| ... | with single links between nodes. +| ... | *[Enc] Packet Encapsulations:* Eth-IPv4 for L2 cross connect. 802.1q +| ... | tagging is applied on link between DUT1 and DUT2. +| ... | *[Cfg] DUT configuration:* DUT1 and DUT2 are configured with VPP +| ... | link bonding (mode LACP, transmit policy l34) on link between DUT1 and +| ... | DUT2 and 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=1024, burst=64. DUT1, DUT2 are tested with 2p10GE NIC X710 +| ... | Fortville 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 MLRsearch library. +| ... | Test packets are generated by TG on links to DUTs. TG traffic profile +| ... | contains two L3 flow-groups (flow-group per direction, 254 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. + +*** Variables *** +| ${perf_qemu_qsz}= | 1024 +| ${subid}= | 10 +| ${tag_rewrite}= | pop-1 +| ${overhead}= | ${4} +# Link bonding config +| ${bond_mode}= | lacp +| ${lb_mode}= | l34 +# Socket names +| ${sock1}= | /tmp/sock-1 +| ${sock2}= | /tmp/sock-2 +# X710 bandwidth limit +| ${s_limit}= | ${10000000000} +# Traffic profile: +| ${traffic_profile}= | trex-sl-3n-ethip4-ip4src254 + +*** Keywords *** +| Local Template +| | [Documentation] +| | ... | [Cfg] DUT runs L2XC switching config. +| | ... | Each DUT uses ${phy_cores} physical core(s) for worker threads. +| | ... | [Ver] Measure NDR and PDR values using MLRsearch algorithm.\ +| | ... +| | ... | *Arguments:* +| | ... | - framesize - Framesize in Bytes in integer or string (IMIX_v4_1). +| | ... | Type: integer, string +| | ... | - phy_cores - Number of physical cores. Type: integer +| | ... | - rxq - Number of RX queues, default value: ${None}. Type: integer +| | ... +| | [Arguments] | ${framesize} | ${phy_cores} | ${rxq}=${None} +| | ... +| | Set Test Variable | ${framesize} +| | Set Test Variable | ${min_rate} | ${10000} +| | ${dut1_vm_refs}= | Create Dictionary +| | ${dut2_vm_refs}= | Create Dictionary +| | Set Test Variable | ${dut1_vm_refs} +| | Set Test Variable | ${dut2_vm_refs} +| | ... +| | Given Add worker threads and rxqueues to all DUTs | ${phy_cores} | ${rxq} +| | And Add PCI devices to all DUTs +| | And Add VLAN Strip Offload switch off between DUTs in 3-node single link topology +| | ${max_rate} | ${jumbo} = | Get Max Rate And Jumbo And Handle Multi Seg +| | ... | ${s_limit} | ${framesize} | overhead=${overhead} +| | And Apply startup configuration on all VPP DUTs +| | When Initialize L2 xconnect with Vhost-User and VLAN with VPP link bonding in 3-node circular topology +| | ... | ${sock1} | ${sock2} | ${subid} | ${tag_rewrite} | ${bond_mode} +| | ... | ${lb_mode} +| | ${vm1}= | And Configure guest VM with dpdk-testpmd connected via vhost-user +| | ... | ${dut1} | ${sock1} | ${sock2} | DUT1_VM1 +| | ... | jumbo_frames=${jumbo} +| | And 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 +| | ... | jumbo_frames=${jumbo} +| | And Set To Dictionary | ${dut2_vm_refs} | DUT2_VM1 | ${vm2} +| | And All Vpp Interfaces Ready Wait | ${nodes} +| | Then Find NDR and PDR intervals using optimized search +| | ... | ${framesize} | ${traffic_profile} | ${min_rate} | ${max_rate} + +*** Test Cases *** +| tc01-64B-1c-1lbvpplacp-dot1q-l2xcbase-eth-2vhostvr1024-1vm-ndrpdr +| | [Tags] | 64B | 1C +| | framesize=${64} | phy_cores=${1} + +| tc02-64B-2c-1lbvpplacp-dot1q-l2xcbase-eth-2vhostvr1024-1vm-ndrpdr +| | [Tags] | 64B | 2C +| | framesize=${64} | phy_cores=${2} + +| tc03-64B-4c-1lbvpplacp-dot1q-l2xcbase-eth-2vhostvr1024-1vm-ndrpdr +| | [Tags] | 64B | 4C +| | framesize=${64} | phy_cores=${4} + +| tc04-1518B-1c-1lbvpplacp-dot1q-l2xcbase-eth-2vhostvr1024-1vm-ndrpdr +| | [Tags] | 1518B | 1C +| | framesize=${1518} | phy_cores=${1} + +| tc05-1518B-2c-1lbvpplacp-dot1q-l2xcbase-eth-2vhostvr1024-1vm-ndrpdr +| | [Tags] | 1518B | 2C +| | framesize=${1518} | phy_cores=${2} + +| tc06-1518B-4c-1lbvpplacp-dot1q-l2xcbase-eth-2vhostvr1024-1vm-ndrpdr +| | [Tags] | 1518B | 4C +| | framesize=${1518} | phy_cores=${4} + +| tc07-9000B-1c-1lbvpplacp-dot1q-l2xcbase-eth-2vhostvr1024-1vm-ndrpdr +| | [Tags] | 9000B | 1C +| | framesize=${9000} | phy_cores=${1} + +| tc08-9000B-2c-1lbvpplacp-dot1q-l2xcbase-eth-2vhostvr1024-1vm-ndrpdr +| | [Tags] | 9000B | 2C +| | framesize=${9000} | phy_cores=${2} + +| tc09-9000B-4c-1lbvpplacp-dot1q-l2xcbase-eth-2vhostvr1024-1vm-ndrpdr +| | [Tags] | 9000B | 4C +| | framesize=${9000} | phy_cores=${4} + +| tc10-IMIX-1c-1lbvpplacp-dot1q-l2xcbase-eth-2vhostvr1024-1vm-ndrpdr +| | [Tags] | IMIX | 1C +| | framesize=IMIX_v4_1 | phy_cores=${1} + +| tc11-IMIX-2c-1lbvpplacp-dot1q-l2xcbase-eth-2vhostvr1024-1vm-ndrpdr +| | [Tags] | IMIX | 2C +| | framesize=IMIX_v4_1 | phy_cores=${2} + +| tc12-IMIX-4c-1lbvpplacp-dot1q-l2xcbase-eth-2vhostvr1024-1vm-ndrpdr +| | [Tags] | IMIX | 4C +| | framesize=IMIX_v4_1 | phy_cores=${4} diff --git a/tests/vpp/perf/vm_vhost/10ge2p1x710-1lbvpplacp-dot1q-l2xcbase-eth-2vhostvr1024-1vm-ndrpdrdisc.robot b/tests/vpp/perf/vm_vhost/10ge2p1x710-1lbvpplacp-dot1q-l2xcbase-eth-2vhostvr1024-1vm-ndrpdrdisc.robot deleted file mode 100644 index c2e9bd9583..0000000000 --- a/tests/vpp/perf/vm_vhost/10ge2p1x710-1lbvpplacp-dot1q-l2xcbase-eth-2vhostvr1024-1vm-ndrpdrdisc.robot +++ /dev/null @@ -1,228 +0,0 @@ -# Copyright (c) 2018 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-X710 | DOT1Q | L2XCFWD | BASE | VHOST | VM -| ... | VHOST_1024 | LBOND | LBOND_VPP| LBOND_MODE_LACP | LBOND_LB_L34 -| ... -| Suite Setup | Run Keywords -| ... | Set up 3-node performance topology with DUT's NIC model | L2 -| ... | Intel-X520-DA2 -| ... | AND | Set up performance test suite with LACP mode link bonding -| ... -| 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} -| ... -| Test Template | Local template -| ... -| Documentation | *RFC2544: Packet throughput L2XC test cases with vhost and -| ... | vpp link bonding* -| ... -| ... | *[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 VPP -| ... | link bonding (mode LACP, transmit policy l34) on link between DUT1 and -| ... | DUT2 and 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=1024, burst=64. DUT1, DUT2 are tested with 2p10GE NIC X710 -| ... | Fortville 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 *** -| ${perf_qemu_qsz}= | 1024 -| ${subid}= | 10 -| ${tag_rewrite}= | pop-1 -| ${vlan_overhead}= | ${4} -# Link bonding config -| ${bond_mode}= | lacp -| ${lb_mode}= | l34 -# X710 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 *** -| Local template -| | [Arguments] | ${phy_cores} | ${framesize} | ${search_type} | ${rxq}=${None} -| | ... | ${min_rate}=${10000} -| | ... -| | Set Test Variable | ${framesize} -| | Set Test Variable | ${min_rate} -| | ${get_framesize}= | Get Frame Size | ${framesize} -| | ${max_rate}= | Calculate pps | ${s_limit} -| | ... | ${get_framesize + ${vlan_overhead}} -| | ${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} -| | ${jumbo_frames}= | Set Variable If -| | ... | ${get_framesize + ${vlan_overhead}} < ${1522} | ${False} | ${True} -| | ... -| | Given Add worker threads and rxqueues to all DUTs | ${phy_cores} | ${rxq} -| | And Add PCI devices to all DUTs -| | And Add VLAN Strip Offload switch off between DUTs in 3-node single link topology -| | And Run Keyword If | ${get_framesize + ${vlan_overhead}} < ${1522} -| | ... | Add no multi seg to all DUTs -| | And Apply startup configuration on all VPP DUTs -| | When Initialize L2 xconnect with Vhost-User and VLAN with VPP link bonding in 3-node circular topology -| | ... | ${sock1} | ${sock2} | ${subid} | ${tag_rewrite} | ${bond_mode} -| | ... | ${lb_mode} -| | ${vm1}= | And Configure guest VM with dpdk-testpmd connected via vhost-user -| | ... | ${dut1} | ${sock1} | ${sock2} | DUT1_VM1 -| | ... | jumbo_frames=${jumbo_frames} -| | And 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 -| | ... | jumbo_frames=${jumbo_frames} -| | And Set To Dictionary | ${dut2_vm_refs} | DUT2_VM1 | ${vm2} -| | And All Vpp Interfaces Ready Wait | ${nodes} -| | Then Run Keyword If | '${search_type}' == 'NDR' -| | ... | Find NDR using binary search and pps -| | ... | ${framesize} | ${binary_min} | ${binary_max} | ${traffic_profile} -| | ... | ${min_rate} | ${max_rate} | ${threshold} -| | ... | ELSE IF | '${search_type}' == 'PDR' -| | ... | Find PDR using binary search and pps -| | ... | ${framesize} | ${binary_min} | ${binary_max} | ${traffic_profile} -| | ... | ${min_rate} | ${max_rate} | ${threshold} -| | ... | ${perf_pdr_loss_acceptance} | ${perf_pdr_loss_acceptance_type} - -*** Test Cases *** -| tc01-64B-1t1c-1lbvpplacp-dot1q-l2xcbase-eth-2vhostvr1024-1vm-ndrdisc -| | [Tags] | 64B | 1C | NDRDISC | TEST -| | phy_cores=${1} | framesize=${64} | search_type=NDR - -| tc02-64B-1t1c-1lbvpplacp-dot1q-l2xcbase-eth-2vhostvr1024-1vm-pdrdisc -| | [Tags] | 64B | 1C | PDRDISC | SKIP_PATCH -| | phy_cores=${1} | framesize=${64} | search_type=PDR - -| tc03-1518B-1t1c-1lbvpplacp-dot1q-l2xcbase-eth-2vhostvr1024-1vm-ndrdisc -| | [Tags] | 1518B | 1C | NDRDISC -| | phy_cores=${1} | framesize=${1518} | search_type=NDR - -| tc04-1518B-1t1c-1lbvpplacp-dot1q-l2xcbase-eth-2vhostvr1024-1vm-pdrdisc -| | [Tags] | 1518B | 1C | PDRDISC | SKIP_PATCH -| | phy_cores=${1} | framesize=${1518} | search_type=PDR - -| tc05-9000B-1t1c-1lbvpplacp-dot1q-l2xcbase-eth-2vhostvr1024-1vm-ndrdisc -| | [Tags] | 9000B | 1C | NDRDISC -| | phy_cores=${1} | framesize=${9000} | search_type=NDR - -| tc06-9000B-1t1c-1lbvpplacp-dot1q-l2xcbase-eth-2vhostvr1024-1vm-pdrdisc -| | [Tags] | 9000B | 1C | PDRDISC | SKIP_PATCH -| | phy_cores=${1} | framesize=${9000} | search_type=PDR - -| tc07-IMIX-1t1c-1lbvpplacp-dot1q-l2xcbase-eth-2vhostvr1024-1vm-ndrdisc -| | [Tags] | IMIX | 1C | NDRDISC -| | phy_cores=${1} | framesize=IMIX_v4_1 | search_type=NDR - -| tc08-IMIX-1t1c-1lbvpplacp-dot1q-l2xcbase-eth-2vhostvr1024-1vm-pdrdisc -| | [Tags] | IMIX | 1C | PDRDISC | SKIP_PATCH -| | phy_cores=${1} | framesize=IMIX_v4_1 | search_type=PDR - -| tc09-64B-2t2c-1lbvpplacp-dot1q-l2xcbase-eth-2vhostvr1024-1vm-ndrdisc -| | [Tags] | 64B | 2C | NDRDISC -| | phy_cores=${2} | framesize=${64} | search_type=NDR - -| tc10-64B-2t2c-1lbvpplacp-dot1q-l2xcbase-eth-2vhostvr1024-1vm-pdrdisc -| | [Tags] | 64B | 2C | PDRDISC | SKIP_PATCH -| | phy_cores=${2} | framesize=${64} | search_type=PDR - -| tc11-1518B-2t2c-1lbvpplacp-dot1q-l2xcbase-eth-2vhostvr1024-1vm-ndrdisc -| | [Tags] | 1518B | 2C | NDRDISC | SKIP_PATCH -| | phy_cores=${2} | framesize=${1518} | search_type=NDR - -| tc12-1518B-2t2c-1lbvpplacp-dot1q-l2xcbase-eth-2vhostvr1024-1vm-pdrdisc -| | [Tags] | 1518B | 2C | PDRDISC | SKIP_PATCH -| | phy_cores=${2} | framesize=${1518} | search_type=PDR - -| tc13-9000B-2t2c-1lbvpplacp-dot1q-l2xcbase-eth-2vhostvr1024-1vm-ndrdisc -| | [Tags] | 9000B | 2C | NDRDISC | SKIP_PATCH -| | phy_cores=${2} | framesize=${9000} | search_type=NDR - -| tc14-9000B-2t2c-1lbvpplacp-dot1q-l2xcbase-eth-2vhostvr1024-1vm-pdrdisc -| | [Tags] | 9000B | 2C | PDRDISC | SKIP_PATCH -| | phy_cores=${2} | framesize=${9000} | search_type=PDR - -| tc15-IMIX-2t2c-1lbvpplacp-dot1q-l2xcbase-eth-2vhostvr1024-1vm-ndrdisc -| | [Tags] | IMIX | 2C | NDRDISC | SKIP_PATCH -| | phy_cores=${2} | framesize=IMIX_v4_1 | search_type=NDR - -| tc16-IMIX-2t2c-1lbvpplacp-dot1q-l2xcbase-eth-2vhostvr1024-1vm-pdrdisc -| | [Tags] | IMIX | 2C | PDRDISC | SKIP_PATCH -| | phy_cores=${2} | framesize=IMIX_v4_1 | search_type=PDR - -| tc17-64B-4t4c-1lbvpplacp-dot1q-l2xcbase-eth-2vhostvr1024-1vm-ndrdisc -| | [Tags] | 64B | 4C | NDRDISC -| | phy_cores=${4} | framesize=${64} | search_type=NDR - -| tc18-64B-4t4c-1lbvpplacp-dot1q-l2xcbase-eth-2vhostvr1024-1vm-pdrdisc -| | [Tags] | 64B | 4C | PDRDISC | SKIP_PATCH -| | phy_cores=${4} | framesize=${64} | search_type=PDR - -| tc19-1518B-4t4c-1lbvpplacp-dot1q-l2xcbase-eth-2vhostvr1024-1vm-ndrdisc -| | [Tags] | 1518B | 4C | NDRDISC | SKIP_PATCH -| | phy_cores=${4} | framesize=${1518} | search_type=NDR - -| tc20-1518B-4t4c-1lbvpplacp-dot1q-l2xcbase-eth-2vhostvr1024-1vm-pdrdisc -| | [Tags] | 1518B | 4C | PDRDISC | SKIP_PATCH -| | phy_cores=${4} | framesize=${1518} | search_type=PDR - -| tc21-9000B-4t4c-1lbvpplacp-dot1q-l2xcbase-eth-2vhostvr1024-1vm-ndrdisc -| | [Tags] | 9000B | 4C | NDRDISC | SKIP_PATCH -| | phy_cores=${4} | framesize=${9000} | search_type=NDR - -| tc22-9000B-4t4c-1lbvpplacp-dot1q-l2xcbase-eth-2vhostvr1024-1vm-pdrdisc -| | [Tags] | 9000B | 4C | PDRDISC | SKIP_PATCH -| | phy_cores=${4} | framesize=${9000} | search_type=PDR - -| tc23-IMIX-4t4c-1lbvpplacp-dot1q-l2xcbase-eth-2vhostvr1024-1vm-ndrdisc -| | [Tags] | IMIX | 4C | NDRDISC | SKIP_PATCH -| | phy_cores=${4} | framesize=IMIX_v4_1 | search_type=NDR - -| tc24-IMIX-4t4c-1lbvpplacp-dot1q-l2xcbase-eth-2vhostvr1024-1vm-pdrdisc -| | [Tags] | IMIX | 4C | PDRDISC | SKIP_PATCH -| | phy_cores=${4} | framesize=IMIX_v4_1 | search_type=PDR diff --git a/tests/vpp/perf/vm_vhost/10ge2p1x710-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-mrr.robot b/tests/vpp/perf/vm_vhost/10ge2p1x710-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-mrr.robot index 8c795fa76d..7d81e63ce4 100644 --- a/tests/vpp/perf/vm_vhost/10ge2p1x710-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-mrr.robot +++ b/tests/vpp/perf/vm_vhost/10ge2p1x710-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-mrr.robot @@ -28,7 +28,7 @@ | ... | dut1_node=${dut1} | dut1_vm_refs=${dut1_vm_refs} | ... | dut2_node=${dut2} | dut2_vm_refs=${dut2_vm_refs} | ... -| Test Template | Local template +| Test Template | Local Template | ... | Documentation | *Raw results L2BD test cases with vhost* | ... @@ -67,7 +67,7 @@ | ${traffic_profile}= | trex-sl-3n-ethip4-ip4src254 *** Keywords *** -| Local template +| Local Template | | [Documentation] | | ... | [Cfg] DUT runs L2BD switching config. | | ... | Each DUT uses ${phy_cores} physical core(s) for worker threads. @@ -82,80 +82,75 @@ | | ... | | [Arguments] | ${framesize} | ${phy_cores} | ${rxq}=${None} | | ... -| | Set Test Variable | ${framesize} -| | ${get_framesize}= | Get Frame Size | ${framesize} -| | ${max_rate}= | Calculate pps | ${s_limit} | ${get_framesize} | | ${dut1_vm_refs}= | Create Dictionary | | ${dut2_vm_refs}= | Create Dictionary | | Set Test Variable | ${dut1_vm_refs} | | Set Test Variable | ${dut2_vm_refs} -| | ${jumbo_frames}= | Set Variable If | ${get_framesize} < ${1522} -| | ... | ${False} | ${True} | | ... | | Given Add worker threads and rxqueues to all DUTs | ${phy_cores} | ${rxq} | | And Add PCI devices to all DUTs -| | And Run Keyword If | ${get_framesize} < ${1522} -| | ... | Add no multi seg to all DUTs +| | ${max_rate} | ${jumbo} = | Get Max Rate And Jumbo And Handle Multi Seg +| | ... | ${s_limit} | ${framesize} | | And Apply startup configuration on all VPP DUTs | | When Initialize L2 bridge domains with Vhost-User and VLAN in a 3-node circular topology | | ... | ${bd_id1} | ${bd_id2} | ${sock1} | ${sock2} | ${subid} | | ... | ${tag_rewrite} | | ${vm1}= | And Configure guest VM with dpdk-testpmd connected via vhost-user | | ... | ${dut1} | ${sock1} | ${sock2} | DUT1_VM1 -| | ... | jumbo_frames=${jumbo_frames} +| | ... | jumbo_frames=${jumbo} | | 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 -| | ... | jumbo_frames=${jumbo_frames} +| | ... | jumbo_frames=${jumbo} | | Set To Dictionary | ${dut2_vm_refs} | DUT2_VM1 | ${vm2} | | Then Traffic should pass with maximum rate | | ... | ${max_rate}pps | ${framesize} | ${traffic_profile} *** Test Cases *** -| tc01-64B-1t1c-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-mrr +| tc01-64B-1c-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-mrr | | [Tags] | 64B | 1C | | framesize=${64} | phy_cores=${1} -| tc02-1518B-1t1c-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-mrr -| | [Tags] | 1518B | 1C -| | framesize=${1518} | phy_cores=${1} - -| tc03-9000B-1t1c-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-mrr -| | [Tags] | 9000B | 1C -| | framesize=${9000} | phy_cores=${1} - -| tc04-IMIX-1t1c-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-mrr -| | [Tags] | IMIX | 1C -| | framesize=IMIX_v4_1 | phy_cores=${1} - -| tc05-64B-2t2c-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-mrr +| tc02-64B-2c-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-mrr | | [Tags] | 64B | 2C | | framesize=${64} | phy_cores=${2} -| tc06-1518B-2t2c-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-mrr -| | [Tags] | 1518B | 2C -| | framesize=${1518} | phy_cores=${2} - -| tc07-9000B-2t2c-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-mrr -| | [Tags] | 9000B | 2C -| | framesize=${9000} | phy_cores=${2} - -| tc08-IMIX-2t2c-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-mrr -| | [Tags] | IMIX | 2C -| | framesize=IMIX_v4_1 | phy_cores=${2} - -| tc09-64B-4t4c-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-mrr +| tc03-64B-4c-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-mrr | | [Tags] | 64B | 4C | | framesize=${64} | phy_cores=${4} -| tc10-1518B-4t4c-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-mrr +| tc04-1518B-1c-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-mrr +| | [Tags] | 1518B | 1C +| | framesize=${1518} | phy_cores=${1} + +| tc05-1518B-2c-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-mrr +| | [Tags] | 1518B | 2C +| | framesize=${1518} | phy_cores=${2} + +| tc06-1518B-4c-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-mrr | | [Tags] | 1518B | 4C | | framesize=${1518} | phy_cores=${4} -| tc11-9000B-4t4c-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-mrr +| tc07-9000B-1c-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-mrr +| | [Tags] | 9000B | 1C +| | framesize=${9000} | phy_cores=${1} + +| tc08-9000B-2c-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-mrr +| | [Tags] | 9000B | 2C +| | framesize=${9000} | phy_cores=${2} + +| tc09-9000B-4c-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-mrr | | [Tags] | 9000B | 4C | | framesize=${9000} | phy_cores=${4} -| tc12-IMIX-4t4c-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-mrr +| tc10-IMIX-1c-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-mrr +| | [Tags] | IMIX | 1C +| | framesize=IMIX_v4_1 | phy_cores=${1} + +| tc11-IMIX-2c-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-mrr +| | [Tags] | IMIX | 2C +| | framesize=IMIX_v4_1 | phy_cores=${2} + +| tc12-IMIX-4c-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-mrr | | [Tags] | IMIX | 4C | | framesize=IMIX_v4_1 | phy_cores=${4} diff --git a/tests/vpp/perf/vm_vhost/10ge2p1x710-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-ndrpdr.robot b/tests/vpp/perf/vm_vhost/10ge2p1x710-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-ndrpdr.robot new file mode 100644 index 0000000000..f878319055 --- /dev/null +++ b/tests/vpp/perf/vm_vhost/10ge2p1x710-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-ndrpdr.robot @@ -0,0 +1,161 @@ +# Copyright (c) 2018 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 | NDRPDR +| ... | NIC_Intel-X710 | DOT1Q | L2BDMACLRN | BASE | VHOST | 1VM +| ... | VHOST_1024 +| ... +| Suite Setup | Set up 3-node performance topology with DUT's NIC model +| ... | L2 | Intel-X710 +| 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} +| ... +| Test Template | Local Template +| ... +| Documentation | *RFC2544: Pkt 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=1024, burst=64. DUT1, DUT2 are tested with 2p10GE NIC X710 +| ... | 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 MLRsearch library. +| ... | Test packets are generated by TG on links to DUTs. TG traffic profile +| ... | contains two L3 flow-groups (flow-group per direction, 254 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. + +*** Variables *** +| ${perf_qemu_qsz}= | 1024 +| ${subid}= | 10 +| ${tag_rewrite}= | pop-1 +# Socket names +| ${bd_id1}= | 1 +| ${bd_id2}= | 2 +| ${sock1}= | /tmp/sock-1-${bd_id1} +| ${sock2}= | /tmp/sock-1-${bd_id2} +# X710 bandwidth limit +| ${s_limit}= | ${10000000000} +# Traffic profile: +| ${traffic_profile}= | trex-sl-3n-ethip4-ip4src254 + +*** Keywords *** +| Local Template +| | [Documentation] +| | ... | [Cfg] DUT runs L2BD switching config. +| | ... | Each DUT uses ${phy_cores} physical core(s) for worker threads. +| | ... | [Ver] Measure NDR and PDR values using MLRsearch algorithm.\ +| | ... +| | ... | *Arguments:* +| | ... | - framesize - Framesize in Bytes in integer or string (IMIX_v4_1). +| | ... | Type: integer, string +| | ... | - phy_cores - Number of physical cores. Type: integer +| | ... | - rxq - Number of RX queues, default value: ${None}. Type: integer +| | ... +| | [Arguments] | ${framesize} | ${phy_cores} | ${rxq}=${None} +| | ... +| | Set Test Variable | ${framesize} +| | Set Test Variable | ${min_rate} | ${10000} +| | ${dut1_vm_refs}= | Create Dictionary +| | ${dut2_vm_refs}= | Create Dictionary +| | Set Test Variable | ${dut1_vm_refs} +| | Set Test Variable | ${dut2_vm_refs} +| | ... +| | Given Add worker threads and rxqueues to all DUTs | ${phy_cores} | ${rxq} +| | And Add PCI devices to all DUTs +| | ${max_rate} | ${jumbo} = | Get Max Rate And Jumbo And Handle Multi Seg +| | ... | ${s_limit} | ${framesize} +| | And Apply startup configuration on all VPP DUTs +| | When Initialize L2 bridge domains with Vhost-User and VLAN in a 3-node circular topology +| | ... | ${bd_id1} | ${bd_id2} | ${sock1} | ${sock2} | ${subid} +| | ... | ${tag_rewrite} +| | ${vm1}= | And Configure guest VM with dpdk-testpmd connected via vhost-user +| | ... | ${dut1} | ${sock1} | ${sock2} | DUT1_VM1 +| | ... | jumbo_frames=${jumbo} +| | 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 +| | ... | jumbo_frames=${jumbo} +| | Set To Dictionary | ${dut2_vm_refs} | DUT2_VM1 | ${vm2} +| | Then Find NDR and PDR intervals using optimized search +| | ... | ${framesize} | ${traffic_profile} | ${min_rate} | ${max_rate} + +*** Test Cases *** +| tc01-64B-1c-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-ndrpdr +| | [Tags] | 64B | 1C +| | framesize=${64} | phy_cores=${1} + +| tc02-64B-2c-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-ndrpdr +| | [Tags] | 64B | 2C +| | framesize=${64} | phy_cores=${2} + +| tc03-64B-4c-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-ndrpdr +| | [Tags] | 64B | 4C +| | framesize=${64} | phy_cores=${4} + +| tc04-1518B-1c-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-ndrpdr +| | [Tags] | 1518B | 1C +| | framesize=${1518} | phy_cores=${1} + +| tc05-1518B-2c-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-ndrpdr +| | [Tags] | 1518B | 2C +| | framesize=${1518} | phy_cores=${2} + +| tc06-1518B-4c-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-ndrpdr +| | [Tags] | 1518B | 4C +| | framesize=${1518} | phy_cores=${4} + +| tc07-9000B-1c-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-ndrpdr +| | [Tags] | 9000B | 1C +| | framesize=${9000} | phy_cores=${1} + +| tc08-9000B-2c-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-ndrpdr +| | [Tags] | 9000B | 2C +| | framesize=${9000} | phy_cores=${2} + +| tc09-9000B-4c-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-ndrpdr +| | [Tags] | 9000B | 4C +| | framesize=${9000} | phy_cores=${4} + +| tc10-IMIX-1c-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-ndrpdr +| | [Tags] | IMIX | 1C +| | framesize=IMIX_v4_1 | phy_cores=${1} + +| tc11-IMIX-2c-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-ndrpdr +| | [Tags] | IMIX | 2C +| | framesize=IMIX_v4_1 | phy_cores=${2} + +| tc12-IMIX-4c-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-ndrpdr +| | [Tags] | IMIX | 4C +| | framesize=IMIX_v4_1 | phy_cores=${4} diff --git a/tests/vpp/perf/vm_vhost/10ge2p1x710-dot1q-l2xcbase-eth-2vhostvr1024-1vm-mrr.robot b/tests/vpp/perf/vm_vhost/10ge2p1x710-dot1q-l2xcbase-eth-2vhostvr1024-1vm-mrr.robot index da3dc137bb..a88fb892cf 100644 --- a/tests/vpp/perf/vm_vhost/10ge2p1x710-dot1q-l2xcbase-eth-2vhostvr1024-1vm-mrr.robot +++ b/tests/vpp/perf/vm_vhost/10ge2p1x710-dot1q-l2xcbase-eth-2vhostvr1024-1vm-mrr.robot @@ -27,7 +27,7 @@ | ... | dut1_node=${dut1} | dut1_vm_refs=${dut1_vm_refs} | ... | dut2_node=${dut2} | dut2_vm_refs=${dut2_vm_refs} | ... -| Test Template | Local template +| Test Template | Local Template | ... | Documentation | *Raw results L2XC test cases with vhost* | ... @@ -64,7 +64,7 @@ | ${traffic_profile}= | trex-sl-3n-ethip4-ip4src254 *** Keywords *** -| Local template +| Local Template | | [Documentation] | | ... | [Cfg] DUT runs L2XC switching config. | | ... | Each DUT uses ${phy_cores} physical core(s) for worker threads. @@ -79,79 +79,74 @@ | | ... | | [Arguments] | ${framesize} | ${phy_cores} | ${rxq}=${None} | | ... -| | Set Test Variable | ${framesize} -| | ${get_framesize}= | Get Frame Size | ${framesize} -| | ${max_rate}= | Calculate pps | ${s_limit} | ${get_framesize} | | ${dut1_vm_refs}= | Create Dictionary | | ${dut2_vm_refs}= | Create Dictionary | | Set Test Variable | ${dut1_vm_refs} | | Set Test Variable | ${dut2_vm_refs} -| | ${jumbo_frames}= | Set Variable If | ${get_framesize} < ${1522} -| | ... | ${False} | ${True} | | ... | | Given Add worker threads and rxqueues to all DUTs | ${phy_cores} | ${rxq} | | And Add PCI devices to all DUTs -| | And Run Keyword If | ${get_framesize} < ${1522} -| | ... | Add no multi seg to all DUTs +| | ${max_rate} | ${jumbo} = | Get Max Rate And Jumbo And Handle Multi Seg +| | ... | ${s_limit} | ${framesize} | | And Apply startup configuration on all VPP DUTs | | When Initialize L2 xconnect with Vhost-User and VLAN in 3-node circular topology | | ... | ${sock1} | ${sock2} | ${subid} | ${tag_rewrite} | | ${vm1}= | And Configure guest VM with dpdk-testpmd connected via vhost-user | | ... | ${dut1} | ${sock1} | ${sock2} | DUT1_VM1 -| | ... | jumbo_frames=${jumbo_frames} +| | ... | jumbo_frames=${jumbo} | | 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 -| | ... | jumbo_frames=${jumbo_frames} +| | ... | jumbo_frames=${jumbo} | | Set To Dictionary | ${dut2_vm_refs} | DUT2_VM1 | ${vm2} | | Then Traffic should pass with maximum rate | | ... | ${max_rate}pps | ${framesize} | ${traffic_profile} *** Test Cases *** -| tc01-64B-1t1c-dot1q-l2xcbase-eth-2vhostvr1024-1vm-mrr +| tc01-64B-1c-dot1q-l2xcbase-eth-2vhostvr1024-1vm-mrr | | [Tags] | 64B | 1C | | framesize=${64} | phy_cores=${1} -| tc02-1518B-1t1c-dot1q-l2xcbase-eth-2vhostvr1024-1vm-mrr -| | [Tags] | 1518B | 1C -| | framesize=${1518} | phy_cores=${1} - -| tc03-9000B-1t1c-dot1q-l2xcbase-eth-2vhostvr1024-1vm-mrr -| | [Tags] | 9000B | 1C -| | framesize=${9000} | phy_cores=${1} - -| tc04-IMIX-1t1c-dot1q-l2xcbase-eth-2vhostvr1024-1vm-mrr -| | [Tags] | IMIX | 1C -| | framesize=IMIX_v4_1 | phy_cores=${1} - -| tc05-64B-2t2c-dot1q-l2xcbase-eth-2vhostvr1024-1vm-mrr +| tc02-64B-2c-dot1q-l2xcbase-eth-2vhostvr1024-1vm-mrr | | [Tags] | 64B | 2C | | framesize=${64} | phy_cores=${2} -| tc06-1518B-2t2c-dot1q-l2xcbase-eth-2vhostvr1024-1vm-mrr -| | [Tags] | 1518B | 2C -| | framesize=${1518} | phy_cores=${2} - -| tc07-9000B-2t2c-dot1q-l2xcbase-eth-2vhostvr1024-1vm-mrr -| | [Tags] | 9000B | 2C -| | framesize=${9000} | phy_cores=${2} - -| tc08-IMIX-2t2c-dot1q-l2xcbase-eth-2vhostvr1024-1vm-mrr -| | [Tags] | IMIX | 2C -| | framesize=IMIX_v4_1 | phy_cores=${2} - -| tc09-64B-4t4c-dot1q-l2xcbase-eth-2vhostvr1024-1vm-mrr +| tc03-64B-4c-dot1q-l2xcbase-eth-2vhostvr1024-1vm-mrr | | [Tags] | 64B | 4C | | framesize=${64} | phy_cores=${4} -| tc10-1518B-4t4c-dot1q-l2xcbase-eth-2vhostvr1024-1vm-mrr +| tc04-1518B-1c-dot1q-l2xcbase-eth-2vhostvr1024-1vm-mrr +| | [Tags] | 1518B | 1C +| | framesize=${1518} | phy_cores=${1} + +| tc05-1518B-2c-dot1q-l2xcbase-eth-2vhostvr1024-1vm-mrr +| | [Tags] | 1518B | 2C +| | framesize=${1518} | phy_cores=${2} + +| tc06-1518B-4c-dot1q-l2xcbase-eth-2vhostvr1024-1vm-mrr | | [Tags] | 1518B | 4C | | framesize=${1518} | phy_cores=${4} -| tc11-9000B-4t4c-dot1q-l2xcbase-eth-2vhostvr1024-1vm-mrr +| tc07-9000B-1c-dot1q-l2xcbase-eth-2vhostvr1024-1vm-mrr +| | [Tags] | 9000B | 1C +| | framesize=${9000} | phy_cores=${1} + +| tc08-9000B-2c-dot1q-l2xcbase-eth-2vhostvr1024-1vm-mrr +| | [Tags] | 9000B | 2C +| | framesize=${9000} | phy_cores=${2} + +| tc09-9000B-4c-dot1q-l2xcbase-eth-2vhostvr1024-1vm-mrr | | [Tags] | 9000B | 4C | | framesize=${9000} | phy_cores=${4} -| tc12-IMIX-4t4c-dot1q-l2xcbase-eth-2vhostvr1024-1vm-mrr +| tc10-IMIX-1c-dot1q-l2xcbase-eth-2vhostvr1024-1vm-mrr +| | [Tags] | IMIX | 1C +| | framesize=IMIX_v4_1 | phy_cores=${1} + +| tc11-IMIX-2c-dot1q-l2xcbase-eth-2vhostvr1024-1vm-mrr +| | [Tags] | IMIX | 2C +| | framesize=IMIX_v4_1 | phy_cores=${2} + +| tc12-IMIX-4c-dot1q-l2xcbase-eth-2vhostvr1024-1vm-mrr | | [Tags] | IMIX | 4C | | framesize=IMIX_v4_1 | phy_cores=${4} diff --git a/tests/vpp/perf/vm_vhost/10ge2p1x710-dot1q-l2xcbase-eth-2vhostvr1024-1vm-ndrpdr.robot b/tests/vpp/perf/vm_vhost/10ge2p1x710-dot1q-l2xcbase-eth-2vhostvr1024-1vm-ndrpdr.robot new file mode 100644 index 0000000000..85498428f1 --- /dev/null +++ b/tests/vpp/perf/vm_vhost/10ge2p1x710-dot1q-l2xcbase-eth-2vhostvr1024-1vm-ndrpdr.robot @@ -0,0 +1,157 @@ +# Copyright (c) 2018 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 | NDRPDR +| ... | NIC_Intel-X710 | DOT1Q | L2XCFWD | BASE | VHOST | 1VM | VHOST_1024 +| ... +| Suite Setup | Set up 3-node performance topology with DUT's NIC model +| ... | L2 | Intel-X710 +| 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} +| ... +| Test Template | Local Template +| ... +| Documentation | *RFC2544: Pkt 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 cross connect. 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=1024, burst=64. DUT1, DUT2 are tested with 2p10GE NIC X710 +| ... | 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 MLRsearch library. +| ... | Test packets are generated by TG on links to DUTs. TG traffic profile +| ... | contains two L3 flow-groups (flow-group per direction, 254 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. + +*** Variables *** +| ${perf_qemu_qsz}= | 1024 +| ${subid}= | 10 +| ${tag_rewrite}= | pop-1 +# Socket names +| ${sock1}= | /tmp/sock-1 +| ${sock2}= | /tmp/sock-2 +# X710 bandwidth limit +| ${s_limit}= | ${10000000000} +# Traffic profile: +| ${traffic_profile}= | trex-sl-3n-ethip4-ip4src254 + +*** Keywords *** +| Local Template +| | [Documentation] +| | ... | [Cfg] DUT runs L2XC switching config. +| | ... | Each DUT uses ${phy_cores} physical core(s) for worker threads. +| | ... | [Ver] Measure NDR and PDR values using MLRsearch algorithm.\ +| | ... +| | ... | *Arguments:* +| | ... | - framesize - Framesize in Bytes in integer or string (IMIX_v4_1). +| | ... | Type: integer, string +| | ... | - phy_cores - Number of physical cores. Type: integer +| | ... | - rxq - Number of RX queues, default value: ${None}. Type: integer +| | ... +| | [Arguments] | ${framesize} | ${phy_cores} | ${rxq}=${None} +| | ... +| | Set Test Variable | ${framesize} +| | Set Test Variable | ${min_rate} | ${10000} +| | ${dut1_vm_refs}= | Create Dictionary +| | ${dut2_vm_refs}= | Create Dictionary +| | Set Test Variable | ${dut1_vm_refs} +| | Set Test Variable | ${dut2_vm_refs} +| | ... +| | Given Add worker threads and rxqueues to all DUTs | ${phy_cores} | ${rxq} +| | And Add PCI devices to all DUTs +| | ${max_rate} | ${jumbo} = | Get Max Rate And Jumbo And Handle Multi Seg +| | ... | ${s_limit} | ${framesize} +| | And Apply startup configuration on all VPP DUTs +| | When Initialize L2 xconnect with Vhost-User and VLAN in 3-node circular topology +| | ... | ${sock1} | ${sock2} | ${subid} | ${tag_rewrite} +| | ${vm1}= | And Configure guest VM with dpdk-testpmd connected via vhost-user +| | ... | ${dut1} | ${sock1} | ${sock2} | DUT1_VM1 +| | ... | jumbo_frames=${jumbo} +| | 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 +| | ... | jumbo_frames=${jumbo} +| | Set To Dictionary | ${dut2_vm_refs} | DUT2_VM1 | ${vm2} +| | Then Find NDR and PDR intervals using optimized search +| | ... | ${framesize} | ${traffic_profile} | ${min_rate} | ${max_rate} + +*** Test Cases *** +| tc01-64B-1c-dot1q-l2xcbase-eth-2vhostvr1024-1vm-ndrpdr +| | [Tags] | 64B | 1C +| | framesize=${64} | phy_cores=${1} + +| tc02-64B-2c-dot1q-l2xcbase-eth-2vhostvr1024-1vm-ndrpdr +| | [Tags] | 64B | 2C +| | framesize=${64} | phy_cores=${2} + +| tc03-64B-4c-dot1q-l2xcbase-eth-2vhostvr1024-1vm-ndrpdr +| | [Tags] | 64B | 4C +| | framesize=${64} | phy_cores=${4} + +| tc04-1518B-1c-dot1q-l2xcbase-eth-2vhostvr1024-1vm-ndrpdr +| | [Tags] | 1518B | 1C +| | framesize=${1518} | phy_cores=${1} + +| tc05-1518B-2c-dot1q-l2xcbase-eth-2vhostvr1024-1vm-ndrpdr +| | [Tags] | 1518B | 2C +| | framesize=${1518} | phy_cores=${2} + +| tc06-1518B-4c-dot1q-l2xcbase-eth-2vhostvr1024-1vm-ndrpdr +| | [Tags] | 1518B | 4C +| | framesize=${1518} | phy_cores=${4} + +| tc07-9000B-1c-dot1q-l2xcbase-eth-2vhostvr1024-1vm-ndrpdr +| | [Tags] | 9000B | 1C +| | framesize=${9000} | phy_cores=${1} + +| tc08-9000B-2c-dot1q-l2xcbase-eth-2vhostvr1024-1vm-ndrpdr +| | [Tags] | 9000B | 2C +| | framesize=${9000} | phy_cores=${2} + +| tc09-9000B-4c-dot1q-l2xcbase-eth-2vhostvr1024-1vm-ndrpdr +| | [Tags] | 9000B | 4C +| | framesize=${9000} | phy_cores=${4} + +| tc10-IMIX-1c-dot1q-l2xcbase-eth-2vhostvr1024-1vm-ndrpdr +| | [Tags] | IMIX | 1C +| | framesize=IMIX_v4_1 | phy_cores=${1} + +| tc11-IMIX-2c-dot1q-l2xcbase-eth-2vhostvr1024-1vm-ndrpdr +| | [Tags] | IMIX | 2C +| | framesize=IMIX_v4_1 | phy_cores=${2} + +| tc12-IMIX-4c-dot1q-l2xcbase-eth-2vhostvr1024-1vm-ndrpdr +| | [Tags] | IMIX | 4C +| | framesize=IMIX_v4_1 | phy_cores=${4} diff --git a/tests/vpp/perf/vm_vhost/10ge2p1x710-eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-mrr.robot b/tests/vpp/perf/vm_vhost/10ge2p1x710-eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-mrr.robot new file mode 100644 index 0000000000..66032d6165 --- /dev/null +++ b/tests/vpp/perf/vm_vhost/10ge2p1x710-eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-mrr.robot @@ -0,0 +1,153 @@ +# Copyright (c) 2018 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 | MRR +| ... | NIC_Intel-X710 | ETH | L2BDMACLRN | BASE | VHOST | VM | VHOST_1024 +| ... +| Suite Setup | Set up 3-node performance topology with DUT's NIC model +| ... | L2 | Intel-X710 +| Suite Teardown | Tear down 3-node performance topology +| ... +| Test Setup | Set up performance test +| Test Teardown | Tear down performance mrr test with vhost and VM with dpdk-testpmd +| ... | dut1_node=${dut1} | dut1_vm_refs=${dut1_vm_refs} +| ... | dut2_node=${dut2} | dut2_vm_refs=${dut2_vm_refs} +| ... +| Test Template | Local Template +| ... +| Documentation | *Raw results 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. +| ... | *[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 on NUMA1 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=1024, burst=64. DUT1, DUT2 are tested with 2p10GE NIC X710 +| ... | by Intel. +| ... | *[Ver] TG verification:* In MaxReceivedRate test TG sends traffic +| ... | at line rate and reports total received/sent packets over trial period. +| ... | 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 *** +| ${perf_qemu_qsz}= | 1024 +# X710 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 *** +| Local Template +| | [Documentation] +| | ... | [Cfg] DUT runs L2BD switching config. +| | ... | Each DUT uses ${phy_cores} physical core(s) for worker threads. +| | ... | [Ver] Measure MaxReceivedRate for ${framesize}B frames using single\ +| | ... | trial throughput test. +| | ... +| | ... | *Arguments:* +| | ... | - framesize - Framesize in Bytes in integer or string (IMIX_v4_1). +| | ... | Type: integer, string +| | ... | - phy_cores - Number of physical cores. Type: integer +| | ... | - rxq - Number of RX queues, default value: ${None}. Type: integer +| | ... +| | [Arguments] | ${framesize} | ${phy_cores} | ${rxq}=${None} +| | ... +| | ${dut1_vm_refs}= | Create Dictionary +| | ${dut2_vm_refs}= | Create Dictionary +| | Set Test Variable | ${dut1_vm_refs} +| | Set Test Variable | ${dut2_vm_refs} +| | ... +| | Given Add worker threads and rxqueues to all DUTs | ${phy_cores} | ${rxq} +| | And Add PCI devices to all DUTs +| | ${max_rate} | ${jumbo} = | Get Max Rate And Jumbo And Handle Multi Seg +| | ... | ${s_limit} | ${framesize} +| | 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 +| | ... | jumbo_frames=${jumbo} +| | 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 +| | ... | jumbo_frames=${jumbo} +| | Set To Dictionary | ${dut2_vm_refs} | DUT2_VM1 | ${vm2} +| | Then Traffic should pass with maximum rate +| | ... | ${max_rate}pps | ${framesize} | ${traffic_profile} + +*** Test Cases *** +| tc01-64B-1c-eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-mrr +| | [Tags] | 64B | 1C +| | framesize=${64} | phy_cores=${1} + +| tc02-64B-2c-eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-mrr +| | [Tags] | 64B | 2C +| | framesize=${64} | phy_cores=${2} + +| tc03-64B-4c-eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-mrr +| | [Tags] | 64B | 4C +| | framesize=${64} | phy_cores=${4} + +| tc04-1518B-1c-eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-mrr +| | [Tags] | 1518B | 1C +| | framesize=${1518} | phy_cores=${1} + +| tc05-1518B-2c-eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-mrr +| | [Tags] | 1518B | 2C +| | framesize=${1518} | phy_cores=${2} + +| tc06-1518B-4c-eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-mrr +| | [Tags] | 1518B | 4C +| | framesize=${1518} | phy_cores=${4} + +| tc07-9000B-1c-eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-mrr +| | [Tags] | 9000B | 1C +| | framesize=${9000} | phy_cores=${1} + +| tc08-9000B-2c-eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-mrr +| | [Tags] | 9000B | 2C +| | framesize=${9000} | phy_cores=${2} + +| tc09-9000B-4c-eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-mrr +| | [Tags] | 9000B | 4C +| | framesize=${9000} | phy_cores=${4} + +| tc10-IMIX-1c-eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-mrr +| | [Tags] | IMIX | 1C +| | framesize=IMIX_v4_1 | phy_cores=${1} + +| tc11-IMIX-2c-eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-mrr +| | [Tags] | IMIX | 2C +| | framesize=IMIX_v4_1 | phy_cores=${2} + +| tc12-IMIX-4c-eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-mrr +| | [Tags] | IMIX | 4C +| | framesize=IMIX_v4_1 | phy_cores=${4} diff --git a/tests/vpp/perf/vm_vhost/10ge2p1x710-eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-ndrpdr.robot b/tests/vpp/perf/vm_vhost/10ge2p1x710-eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-ndrpdr.robot new file mode 100644 index 0000000000..a956e91895 --- /dev/null +++ b/tests/vpp/perf/vm_vhost/10ge2p1x710-eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-ndrpdr.robot @@ -0,0 +1,158 @@ +# Copyright (c) 2018 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 | NDRPDR +| ... | NIC_Intel-X710 | ETH | L2BDMACLRN | BASE | VHOST | VM | VHOST_1024 +| ... +| Suite Setup | Set up 3-node performance topology with DUT's NIC model +| ... | L2 | Intel-X710 +| 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} +| ... +| Test Template | Local Template +| ... +| Documentation | *RFC2544: Pkt 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. +| ... | *[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 on NUMA1 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=1024, burst=64. DUT1, DUT2 are tested with 2p10GE NIC X710 +| ... | 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 MLRsearch library. +| ... | 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 *** +| ${perf_qemu_qsz}= | 1024 +# X710 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 *** +| Local Template +| | [Documentation] +| | ... | [Cfg] DUT runs L2BD switching config. +| | ... | Each DUT uses ${phy_cores} physical core(s) for worker threads. +| | ... | [Ver] Measure NDR and PDR values using MLRsearch algorithm.\ +| | ... +| | ... | *Arguments:* +| | ... | - framesize - Framesize in Bytes in integer or string (IMIX_v4_1). +| | ... | Type: integer, string +| | ... | - phy_cores - Number of physical cores. Type: integer +| | ... | - rxq - Number of RX queues, default value: ${None}. Type: integer +| | ... +| | [Arguments] | ${framesize} | ${phy_cores} | ${rxq}=${None} +| | ... +| | Set Test Variable | ${framesize} +| | Set Test Variable | ${min_rate} | ${10000} +| | ${dut1_vm_refs}= | Create Dictionary +| | ${dut2_vm_refs}= | Create Dictionary +| | Set Test Variable | ${dut1_vm_refs} +| | Set Test Variable | ${dut2_vm_refs} +| | ... +| | Given Add worker threads and rxqueues to all DUTs | ${phy_cores} | ${rxq} +| | And Add PCI devices to all DUTs +| | ${max_rate} | ${jumbo} = | Get Max Rate And Jumbo And Handle Multi Seg +| | ... | ${s_limit} | ${framesize} +| | 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 +| | ... | jumbo_frames=${jumbo} +| | 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 +| | ... | jumbo_frames=${jumbo} +| | Set To Dictionary | ${dut2_vm_refs} | DUT2_VM1 | ${vm2} +| | Then Find NDR and PDR intervals using optimized search +| | ... | ${framesize} | ${traffic_profile} | ${min_rate} | ${max_rate} + +*** Test Cases *** +| tc01-64B-1c-eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-ndrpdr +| | [Tags] | 64B | 1C +| | framesize=${64} | phy_cores=${1} + +| tc02-64B-2c-eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-ndrpdr +| | [Tags] | 64B | 2C +| | framesize=${64} | phy_cores=${2} + +| tc03-64B-4c-eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-ndrpdr +| | [Tags] | 64B | 4C +| | framesize=${64} | phy_cores=${4} + +| tc04-1518B-1c-eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-ndrpdr +| | [Tags] | 1518B | 1C +| | framesize=${1518} | phy_cores=${1} + +| tc05-1518B-2c-eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-ndrpdr +| | [Tags] | 1518B | 2C +| | framesize=${1518} | phy_cores=${2} + +| tc06-1518B-4c-eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-ndrpdr +| | [Tags] | 1518B | 4C +| | framesize=${1518} | phy_cores=${4} + +| tc07-9000B-1c-eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-ndrpdr +| | [Tags] | 9000B | 1C +| | framesize=${9000} | phy_cores=${1} + +| tc08-9000B-2c-eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-ndrpdr +| | [Tags] | 9000B | 2C +| | framesize=${9000} | phy_cores=${2} + +| tc09-9000B-4c-eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-ndrpdr +| | [Tags] | 9000B | 4C +| | framesize=${9000} | phy_cores=${4} + +| tc10-IMIX-1c-eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-ndrpdr +| | [Tags] | IMIX | 1C +| | framesize=IMIX_v4_1 | phy_cores=${1} + +| tc11-IMIX-2c-eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-ndrpdr +| | [Tags] | IMIX | 2C +| | framesize=IMIX_v4_1 | phy_cores=${2} + +| tc12-IMIX-4c-eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-ndrpdr +| | [Tags] | IMIX | 4C +| | framesize=IMIX_v4_1 | phy_cores=${4} diff --git a/tests/vpp/perf/vm_vhost/10ge2p1x710-eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-ndrpdrdisc.robot b/tests/vpp/perf/vm_vhost/10ge2p1x710-eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-ndrpdrdisc.robot deleted file mode 100644 index baab00384c..0000000000 --- a/tests/vpp/perf/vm_vhost/10ge2p1x710-eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-ndrpdrdisc.robot +++ /dev/null @@ -1,659 +0,0 @@ -# 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-X710 | ETH | L2BDMACLRN | BASE | VHOST | VM | VHOST_1024 -| ... -| Suite Setup | Set up 3-node performance topology with DUT's NIC model -| ... | L2 | Intel-X710 -| 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: Pkt 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. -| ... | *[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 on NUMA1 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=1024, burst=64. DUT1, DUT2 are tested with 2p10GE NIC X710 -| ... | 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 *** -| ${perf_qemu_qsz}= | 1024 -# X710 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 - -*** Test Cases *** -| tc01-64B-1t1c-eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-ndrdisc -| | [Documentation] -| | ... | [Cfg] DUT runs L2BD switching config with 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 | 1C | NDRDISC -| | ... -| | ${framesize}= | Set Variable | ${64} -| | ${min_rate}= | Set Variable | ${10000} -| | ${max_rate}= | Calculate pps | ${s_limit} | ${framesize} -| | ${binary_min}= | Set Variable | ${min_rate} -| | ${binary_max}= | Set Variable | ${max_rate} -| | ${threshold}= | Set Variable | ${min_rate} -| | ${dut1_vm_refs}= | Create Dictionary -| | ${dut2_vm_refs}= | Create Dictionary -| | Given Add worker threads and rxqueues to all DUTs | 1 -| | And Add PCI devices to all DUTs -| | And 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} -| | Then Find NDR using binary search and pps | ${framesize} | ${binary_min} -| | ... | ${binary_max} | ${traffic_profile} -| | ... | ${min_rate} | ${max_rate} | ${threshold} - -| tc02-64B-1t1c-eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-pdrdisc -| | [Documentation] -| | ... | [Cfg] DUT runs L2BD switching config with 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 | 1C | PDRDISC | SKIP_PATCH -| | ... -| | ${framesize}= | Set Variable | ${64} -| | ${min_rate}= | Set Variable | ${10000} -| | ${max_rate}= | Calculate pps | ${s_limit} | ${framesize} -| | ${binary_min}= | Set Variable | ${min_rate} -| | ${binary_max}= | Set Variable | ${max_rate} -| | ${threshold}= | Set Variable | ${min_rate} -| | ${dut1_vm_refs}= | Create Dictionary -| | ${dut2_vm_refs}= | Create Dictionary -| | Given Add worker threads and rxqueues to all DUTs | 1 -| | And Add PCI devices to all DUTs -| | And 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} -| | Then Find PDR using binary search and pps | ${framesize} | ${binary_min} -| | ... | ${binary_max} | ${traffic_profile} -| | ... | ${min_rate} | ${max_rate} | ${threshold} | ${perf_pdr_loss_acceptance} -| | ... | ${perf_pdr_loss_acceptance_type} - -| tc03-1518B-1t1c-eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-ndrdisc -| | [Documentation] -| | ... | [Cfg] DUT runs L2BD switching config with 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 | 1C | NDRDISC -| | ... -| | ${framesize}= | Set Variable | ${1518} -| | ${min_rate}= | Set Variable | ${10000} -| | ${max_rate}= | Calculate pps | ${s_limit} | ${framesize} -| | ${binary_min}= | Set Variable | ${min_rate} -| | ${binary_max}= | Set Variable | ${max_rate} -| | ${threshold}= | Set Variable | ${min_rate} -| | ${dut1_vm_refs}= | Create Dictionary -| | ${dut2_vm_refs}= | Create Dictionary -| | Given Add worker threads and rxqueues to all DUTs | 1 -| | And Add PCI devices to all DUTs -| | And 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} -| | Then Find NDR using binary search and pps | ${framesize} | ${binary_min} -| | ... | ${binary_max} | ${traffic_profile} -| | ... | ${min_rate} | ${max_rate} | ${threshold} - -| tc04-1518B-1t1c-eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-pdrdisc -| | [Documentation] -| | ... | [Cfg] DUT runs L2BD switching config with 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 | 1C | PDRDISC | SKIP_PATCH -| | ... -| | ${framesize}= | Set Variable | ${1518} -| | ${min_rate}= | Set Variable | ${10000} -| | ${max_rate}= | Calculate pps | ${s_limit} | ${framesize} -| | ${binary_min}= | Set Variable | ${min_rate} -| | ${binary_max}= | Set Variable | ${max_rate} -| | ${threshold}= | Set Variable | ${min_rate} -| | ${dut1_vm_refs}= | Create Dictionary -| | ${dut2_vm_refs}= | Create Dictionary -| | Given Add worker threads and rxqueues to all DUTs | 1 -| | And Add PCI devices to all DUTs -| | And 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} -| | Then Find PDR using binary search and pps | ${framesize} | ${binary_min} -| | ... | ${binary_max} | ${traffic_profile} -| | ... | ${min_rate} | ${max_rate} | ${threshold} | ${perf_pdr_loss_acceptance} -| | ... | ${perf_pdr_loss_acceptance_type} - -| tc05-IMIX-1t1c-eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-ndrdisc -| | [Documentation] -| | ... | [Cfg] DUT runs L2BD switching config with 1 phy core,\ -| | ... | 1 receive queue per NIC port. [Ver] Find NDR for IMIX_v4_1 frame\ -| | ... | size using binary search start at 10GE linerate, step 10kpps. -| | ... | IMIX_v4_1 = (28x64B; 16x570B; 4x1518B) -| | ... -| | [Tags] | IMIX | 1C | NDRDISC -| | ... -| | ${framesize}= | Set Variable | IMIX_v4_1 -| | ${min_rate}= | Set Variable | ${10000} -| | ${max_rate}= | Calculate pps | ${s_limit} | ${framesize} -| | ${binary_min}= | Set Variable | ${min_rate} -| | ${binary_max}= | Set Variable | ${max_rate} -| | ${threshold}= | Set Variable | ${min_rate} -| | ${dut1_vm_refs}= | Create Dictionary -| | ${dut2_vm_refs}= | Create Dictionary -| | Given Add worker threads and rxqueues to all DUTs | 1 -| | And Add PCI devices to all DUTs -| | And 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} -| | Then Find NDR using binary search and pps | ${framesize} | ${binary_min} -| | ... | ${binary_max} | ${traffic_profile} -| | ... | ${min_rate} | ${max_rate} | ${threshold} - -| tc06-IMIX-1t1c-eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-pdrdisc -| | [Documentation] -| | ... | [Cfg] DUT runs L2BD switching config with 1 phy core,\ -| | ... | 1 receive queue per NIC port. [Ver] Find PDR for IMIX_v4_1 frame\ -| | ... | size using binary search start at 10GE linerate, step 10kpps, LT=0.5%. -| | ... | IMIX_v4_1 = (28x64B; 16x570B; 4x1518B) -| | ... -| | [Tags] | IMIX | 1C | PDRDISC | SKIP_PATCH -| | ... -| | ${framesize}= | Set Variable | IMIX_v4_1 -| | ${min_rate}= | Set Variable | ${10000} -| | ${max_rate}= | Calculate pps | ${s_limit} | ${framesize} -| | ${binary_min}= | Set Variable | ${min_rate} -| | ${binary_max}= | Set Variable | ${max_rate} -| | ${threshold}= | Set Variable | ${min_rate} -| | ${dut1_vm_refs}= | Create Dictionary -| | ${dut2_vm_refs}= | Create Dictionary -| | Given Add worker threads and rxqueues to all DUTs | 1 -| | And Add PCI devices 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} -| | Then Find PDR using binary search and pps | ${framesize} | ${binary_min} -| | ... | ${binary_max} | ${traffic_profile} -| | ... | ${min_rate} | ${max_rate} | ${threshold} | ${perf_pdr_loss_acceptance} -| | ... | ${perf_pdr_loss_acceptance_type} - -| tc07-64B-2t2c-eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-ndrdisc -| | [Documentation] -| | ... | [Cfg] DUT runs L2BD switching config with 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 | 2C | NDRDISC -| | ... -| | ${framesize}= | Set Variable | ${64} -| | ${min_rate}= | Set Variable | ${10000} -| | ${max_rate}= | Calculate pps | ${s_limit} | ${framesize} -| | ${binary_min}= | Set Variable | ${min_rate} -| | ${binary_max}= | Set Variable | ${max_rate} -| | ${threshold}= | Set Variable | ${min_rate} -| | ${dut1_vm_refs}= | Create Dictionary -| | ${dut2_vm_refs}= | Create Dictionary -| | Given Add worker threads and rxqueues to all DUTs | 2 -| | And Add PCI devices to all DUTs -| | And 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} -| | Then Find NDR using binary search and pps | ${framesize} | ${binary_min} -| | ... | ${binary_max} | ${traffic_profile} -| | ... | ${min_rate} | ${max_rate} | ${threshold} - -| tc08-64B-2t2c-eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-pdrdisc -| | [Documentation] -| | ... | [Cfg] DUT runs L2BD switching config with 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 | 2C | PDRDISC | SKIP_PATCH -| | ... -| | ${framesize}= | Set Variable | ${64} -| | ${min_rate}= | Set Variable | ${10000} -| | ${max_rate}= | Calculate pps | ${s_limit} | ${framesize} -| | ${binary_min}= | Set Variable | ${min_rate} -| | ${binary_max}= | Set Variable | ${max_rate} -| | ${threshold}= | Set Variable | ${min_rate} -| | ${dut1_vm_refs}= | Create Dictionary -| | ${dut2_vm_refs}= | Create Dictionary -| | Given Add worker threads and rxqueues to all DUTs | 2 -| | And Add PCI devices to all DUTs -| | And 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} -| | Then Find PDR using binary search and pps | ${framesize} | ${binary_min} -| | ... | ${binary_max} | ${traffic_profile} -| | ... | ${min_rate} | ${max_rate} | ${threshold} | ${perf_pdr_loss_acceptance} -| | ... | ${perf_pdr_loss_acceptance_type} - -| tc09-1518B-2t2c-eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-ndrdisc -| | [Documentation] -| | ... | [Cfg] DUT runs L2BD switching config with 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 | 2C | NDRDISC | SKIP_PATCH -| | ... -| | ${framesize}= | Set Variable | ${1518} -| | ${min_rate}= | Set Variable | ${10000} -| | ${max_rate}= | Calculate pps | ${s_limit} | ${framesize} -| | ${binary_min}= | Set Variable | ${min_rate} -| | ${binary_max}= | Set Variable | ${max_rate} -| | ${threshold}= | Set Variable | ${min_rate} -| | ${dut1_vm_refs}= | Create Dictionary -| | ${dut2_vm_refs}= | Create Dictionary -| | Given Add worker threads and rxqueues to all DUTs | 2 -| | And Add PCI devices to all DUTs -| | And 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} -| | Then Find NDR using binary search and pps | ${framesize} | ${binary_min} -| | ... | ${binary_max} | ${traffic_profile} -| | ... | ${min_rate} | ${max_rate} | ${threshold} - -| tc10-1518B-2t2c-eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-pdrdisc -| | [Documentation] -| | ... | [Cfg] DUT runs L2BD switching config with 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 | 2C | PDRDISC | SKIP_PATCH -| | ... -| | ${framesize}= | Set Variable | ${1518} -| | ${min_rate}= | Set Variable | ${10000} -| | ${max_rate}= | Calculate pps | ${s_limit} | ${framesize} -| | ${binary_min}= | Set Variable | ${min_rate} -| | ${binary_max}= | Set Variable | ${max_rate} -| | ${threshold}= | Set Variable | ${min_rate} -| | ${dut1_vm_refs}= | Create Dictionary -| | ${dut2_vm_refs}= | Create Dictionary -| | Given Add worker threads and rxqueues to all DUTs | 2 -| | And Add PCI devices to all DUTs -| | And 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} -| | Then Find PDR using binary search and pps | ${framesize} | ${binary_min} -| | ... | ${binary_max} | ${traffic_profile} -| | ... | ${min_rate} | ${max_rate} | ${threshold} | ${perf_pdr_loss_acceptance} -| | ... | ${perf_pdr_loss_acceptance_type} - -| tc11-IMIX-2t2c-eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-ndrdisc -| | [Documentation] -| | ... | [Cfg] DUT runs L2BD switching config with 2 phy cores,\ -| | ... | 1 receive queue per NIC port. [Ver] Find NDR for IMIX_v4_1 frame\ -| | ... | size using binary search start at 10GE linerate, step 10kpps. -| | ... | IMIX_v4_1 = (28x64B; 16x570B; 4x1518B) -| | ... -| | [Tags] | IMIX | 2C | NDRDISC | SKIP_PATCH -| | ... -| | ${framesize}= | Set Variable | IMIX_v4_1 -| | ${min_rate}= | Set Variable | ${10000} -| | ${max_rate}= | Calculate pps | ${s_limit} | ${framesize} -| | ${binary_min}= | Set Variable | ${min_rate} -| | ${binary_max}= | Set Variable | ${max_rate} -| | ${threshold}= | Set Variable | ${min_rate} -| | ${dut1_vm_refs}= | Create Dictionary -| | ${dut2_vm_refs}= | Create Dictionary -| | Given Add worker threads and rxqueues to all DUTs | 2 -| | And Add PCI devices to all DUTs -| | And 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} -| | Then Find NDR using binary search and pps | ${framesize} | ${binary_min} -| | ... | ${binary_max} | ${traffic_profile} -| | ... | ${min_rate} | ${max_rate} | ${threshold} - -| tc12-IMIX-2t2c-eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-pdrdisc -| | [Documentation] -| | ... | [Cfg] DUT runs L2BD switching config with 2 phy cores,\ -| | ... | 1 receive queue per NIC port. [Ver] Find PDR for IMIX_v4_1 frame\ -| | ... | size using binary search start at 10GE linerate, step 10kpps, LT=0.5%. -| | ... | IMIX_v4_1 = (28x64B; 16x570B; 4x1518B) -| | ... -| | [Tags] | IMIX | 2C | PDRDISC | SKIP_PATCH -| | ... -| | ${framesize}= | Set Variable | IMIX_v4_1 -| | ${min_rate}= | Set Variable | ${10000} -| | ${max_rate}= | Calculate pps | ${s_limit} | ${framesize} -| | ${binary_min}= | Set Variable | ${min_rate} -| | ${binary_max}= | Set Variable | ${max_rate} -| | ${threshold}= | Set Variable | ${min_rate} -| | ${dut1_vm_refs}= | Create Dictionary -| | ${dut2_vm_refs}= | Create Dictionary -| | Given Add worker threads and rxqueues to all DUTs | 2 -| | And Add PCI devices to all DUTs -| | And 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} -| | Then Find PDR using binary search and pps | ${framesize} | ${binary_min} -| | ... | ${binary_max} | ${traffic_profile} -| | ... | ${min_rate} | ${max_rate} | ${threshold} | ${perf_pdr_loss_acceptance} -| | ... | ${perf_pdr_loss_acceptance_type} - -| tc13-64B-4t4c-eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-ndrdisc -| | [Documentation] -| | ... | [Cfg] DUT runs L2BD switching config with 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 | 4C | NDRDISC -| | ... -| | ${framesize}= | Set Variable | ${64} -| | ${min_rate}= | Set Variable | ${10000} -| | ${max_rate}= | Calculate pps | ${s_limit} | ${framesize} -| | ${binary_min}= | Set Variable | ${min_rate} -| | ${binary_max}= | Set Variable | ${max_rate} -| | ${threshold}= | Set Variable | ${min_rate} -| | ${dut1_vm_refs}= | Create Dictionary -| | ${dut2_vm_refs}= | Create Dictionary -| | Given Add worker threads and rxqueues to all DUTs | 4 -| | And Add PCI devices to all DUTs -| | And 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} -| | Then Find NDR using binary search and pps | ${framesize} | ${binary_min} -| | ... | ${binary_max} | ${traffic_profile} -| | ... | ${min_rate} | ${max_rate} | ${threshold} - -| tc14-64B-4t4c-eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-pdrdisc -| | [Documentation] -| | ... | [Cfg] DUT runs L2BD switching config with 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 | 4C | PDRDISC | SKIP_PATCH -| | ... -| | ${framesize}= | Set Variable | ${64} -| | ${min_rate}= | Set Variable | ${10000} -| | ${max_rate}= | Calculate pps | ${s_limit} | ${framesize} -| | ${binary_min}= | Set Variable | ${min_rate} -| | ${binary_max}= | Set Variable | ${max_rate} -| | ${threshold}= | Set Variable | ${min_rate} -| | ${dut1_vm_refs}= | Create Dictionary -| | ${dut2_vm_refs}= | Create Dictionary -| | Given Add worker threads and rxqueues to all DUTs | 4 -| | And Add PCI devices to all DUTs -| | And 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} -| | Then Find PDR using binary search and pps | ${framesize} | ${binary_min} -| | ... | ${binary_max} | ${traffic_profile} -| | ... | ${min_rate} | ${max_rate} | ${threshold} | ${perf_pdr_loss_acceptance} -| | ... | ${perf_pdr_loss_acceptance_type} - -| tc15-1518B-4t4c-eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-ndrdisc -| | [Documentation] -| | ... | [Cfg] DUT runs L2BD switching config with 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 | 4C | NDRDISC | SKIP_PATCH -| | ... -| | ${framesize}= | Set Variable | ${1518} -| | ${min_rate}= | Set Variable | ${10000} -| | ${max_rate}= | Calculate pps | ${s_limit} | ${framesize} -| | ${binary_min}= | Set Variable | ${min_rate} -| | ${binary_max}= | Set Variable | ${max_rate} -| | ${threshold}= | Set Variable | ${min_rate} -| | ${dut1_vm_refs}= | Create Dictionary -| | ${dut2_vm_refs}= | Create Dictionary -| | Given Add worker threads and rxqueues to all DUTs | 4 -| | And Add PCI devices to all DUTs -| | And 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} -| | Then Find NDR using binary search and pps | ${framesize} | ${binary_min} -| | ... | ${binary_max} | ${traffic_profile} -| | ... | ${min_rate} | ${max_rate} | ${threshold} - -| tc16-1518B-4t4c-eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-pdrdisc -| | [Documentation] -| | ... | [Cfg] DUT runs L2BD switching config with 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 | 4C | PDRDISC | SKIP_PATCH -| | ... -| | ${framesize}= | Set Variable | ${1518} -| | ${min_rate}= | Set Variable | ${10000} -| | ${max_rate}= | Calculate pps | ${s_limit} | ${framesize} -| | ${binary_min}= | Set Variable | ${min_rate} -| | ${binary_max}= | Set Variable | ${max_rate} -| | ${threshold}= | Set Variable | ${min_rate} -| | ${dut1_vm_refs}= | Create Dictionary -| | ${dut2_vm_refs}= | Create Dictionary -| | Given Add worker threads and rxqueues to all DUTs | 4 -| | And Add PCI devices to all DUTs -| | And 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} -| | Then Find PDR using binary search and pps | ${framesize} | ${binary_min} -| | ... | ${binary_max} | ${traffic_profile} -| | ... | ${min_rate} | ${max_rate} | ${threshold} | ${perf_pdr_loss_acceptance} -| | ... | ${perf_pdr_loss_acceptance_type} - -| tc17-IMIX-4t4c-eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-ndrdisc -| | [Documentation] -| | ... | [Cfg] DUT runs L2BD switching config with 4 phy cores,\ -| | ... | 2 receive queues per NIC port. [Ver] Find NDR for IMIX_v4_1 frame\ -| | ... | size using binary search start at 10GE linerate, step 10kpps. -| | ... | IMIX_v4_1 = (28x64B; 16x570B; 4x1518B) -| | ... -| | [Tags] | IMIX | 4C | NDRDISC | SKIP_PATCH -| | ... -| | ${framesize}= | Set Variable | IMIX_v4_1 -| | ${min_rate}= | Set Variable | ${10000} -| | ${max_rate}= | Calculate pps | ${s_limit} | ${framesize} -| | ${binary_min}= | Set Variable | ${min_rate} -| | ${binary_max}= | Set Variable | ${max_rate} -| | ${threshold}= | Set Variable | ${min_rate} -| | ${dut1_vm_refs}= | Create Dictionary -| | ${dut2_vm_refs}= | Create Dictionary -| | Given Add worker threads and rxqueues to all DUTs | 4 -| | And Add PCI devices to all DUTs -| | And 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} -| | Then Find NDR using binary search and pps | ${framesize} | ${binary_min} -| | ... | ${binary_max} | ${traffic_profile} -| | ... | ${min_rate} | ${max_rate} | ${threshold} - -| tc18-IMIX-4t4c-eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-pdrdisc -| | [Documentation] -| | ... | [Cfg] DUT runs L2BD switching config with 4 phy cores,\ -| | ... | 2 receive queues per NIC port. [Ver] Find PDR for IMIX_v4_1 frame\ -| | ... | size using binary search start at 10GE linerate, step 10kpps, LT=0.5%. -| | ... | IMIX_v4_1 = (28x64B; 16x570B; 4x1518B) -| | ... -| | [Tags] | IMIX | 4C | PDRDISC | SKIP_PATCH -| | ... -| | ${framesize}= | Set Variable | IMIX_v4_1 -| | ${min_rate}= | Set Variable | ${10000} -| | ${max_rate}= | Calculate pps | ${s_limit} | ${framesize} -| | ${binary_min}= | Set Variable | ${min_rate} -| | ${binary_max}= | Set Variable | ${max_rate} -| | ${threshold}= | Set Variable | ${min_rate} -| | ${dut1_vm_refs}= | Create Dictionary -| | ${dut2_vm_refs}= | Create Dictionary -| | Given Add worker threads and rxqueues to all DUTs | 4 -| | And Add PCI devices to all DUTs -| | And 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} -| | Then Find PDR using binary search and pps | ${framesize} | ${binary_min} -| | ... | ${binary_max} | ${traffic_profile} -| | ... | ${min_rate} | ${max_rate} | ${threshold} | ${perf_pdr_loss_acceptance} -| | ... | ${perf_pdr_loss_acceptance_type} diff --git a/tests/vpp/perf/vm_vhost/10ge2p1x710-eth-l2bdbasemaclrn-eth-2vhostvr256-1vm-mrr.robot b/tests/vpp/perf/vm_vhost/10ge2p1x710-eth-l2bdbasemaclrn-eth-2vhostvr256-1vm-mrr.robot index b8332bb58d..5f56f82fc2 100644 --- a/tests/vpp/perf/vm_vhost/10ge2p1x710-eth-l2bdbasemaclrn-eth-2vhostvr256-1vm-mrr.robot +++ b/tests/vpp/perf/vm_vhost/10ge2p1x710-eth-l2bdbasemaclrn-eth-2vhostvr256-1vm-mrr.robot @@ -27,7 +27,7 @@ | ... | dut1_node=${dut1} | dut1_vm_refs=${dut1_vm_refs} | ... | dut2_node=${dut2} | dut2_vm_refs=${dut2_vm_refs} | ... -| Test Template | Local template +| Test Template | Local Template | ... | Documentation | *Raw results L2BD test cases with vhost* | ... @@ -64,7 +64,7 @@ | ${traffic_profile}= | trex-sl-3n-ethip4-ip4src254 *** Keywords *** -| Local template +| Local Template | | [Documentation] | | ... | [Cfg] DUT runs IPv4 routing config. | | ... | Each DUT uses ${phy_cores} physical core(s) for worker threads. @@ -79,79 +79,74 @@ | | ... | | [Arguments] | ${framesize} | ${phy_cores} | ${rxq}=${None} | | ... -| | Set Test Variable | ${framesize} -| | ${get_framesize}= | Get Frame Size | ${framesize} -| | ${max_rate}= | Calculate pps | ${s_limit} | ${get_framesize} | | ${dut1_vm_refs}= | Create Dictionary | | ${dut2_vm_refs}= | Create Dictionary | | Set Test Variable | ${dut1_vm_refs} | | Set Test Variable | ${dut2_vm_refs} -| | ${jumbo_frames}= | Set Variable If | ${get_framesize} < ${1522} -| | ... | ${False} | ${True} | | ... | | Given Add worker threads and rxqueues to all DUTs | ${phy_cores} | ${rxq} | | And Add PCI devices to all DUTs -| | And Run Keyword If | ${get_framesize} < ${1522} -| | ... | Add no multi seg to all DUTs +| | ${max_rate} | ${jumbo} = | Get Max Rate And Jumbo And Handle Multi Seg +| | ... | ${s_limit} | ${framesize} | | 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 -| | ... | jumbo_frames=${jumbo_frames} +| | ... | jumbo_frames=${jumbo} | | 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 -| | ... | jumbo_frames=${jumbo_frames} +| | ... | jumbo_frames=${jumbo} | | Set To Dictionary | ${dut2_vm_refs} | DUT2_VM1 | ${vm2} | | Then Traffic should pass with maximum rate | | ... | ${max_rate}pps | ${framesize} | ${traffic_profile} *** Test Cases *** -| tc01-64B-1t1c-eth-l2bdbasemaclrn-eth-2vhostvr256-1vm-mrr +| tc01-64B-1c-eth-l2bdbasemaclrn-eth-2vhostvr256-1vm-mrr | | [Tags] | 64B | 1C | | framesize=${64} | phy_cores=${1} -| tc02-1518B-1t1c-eth-l2bdbasemaclrn-eth-2vhostvr256-1vm -| | [Tags] | 1518B | 1C -| | framesize=${1518} | phy_cores=${1} - -| tc03-9000B-1t1c-eth-l2bdbasemaclrn-eth-2vhostvr256-1vm -| | [Tags] | 9000B | 1C -| | framesize=${9000} | phy_cores=${1} - -| tc04-IMIX-1t1c-eth-l2bdbasemaclrn-eth-2vhostvr256-1vm-mrr -| | [Tags] | IMIX | 1C -| | framesize=IMIX_v4_1 | phy_cores=${1} - -| tc05-64B-2t2c-eth-l2bdbasemaclrn-eth-2vhostvr256-1vm-mrr +| tc02-64B-2c-eth-l2bdbasemaclrn-eth-2vhostvr256-1vm-mrr | | [Tags] | 64B | 2C | | framesize=${64} | phy_cores=${2} -| tc06-1518B-2t2c-eth-l2bdbasemaclrn-eth-2vhostvr256-1vm-mrr -| | [Tags] | 1518B | 2C -| | framesize=${1518} | phy_cores=${2} - -| tc07-9000B-2t2c-eth-l2bdbasemaclrn-eth-2vhostvr256-1vm-mrr -| | [Tags] | 9000B | 2C -| | framesize=${9000} | phy_cores=${2} - -| tc08-IMIX-2t2c-eth-l2bdbasemaclrn-eth-2vhostvr256-1vm-mrr -| | [Tags] | IMIX | 2C -| | framesize=IMIX_v4_1 | phy_cores=${2} - -| tc09-64B-4t4c-eth-l2bdbasemaclrn-eth-2vhostvr256-1vm-mrr +| tc03-64B-4c-eth-l2bdbasemaclrn-eth-2vhostvr256-1vm-mrr | | [Tags] | 64B | 4C | | framesize=${64} | phy_cores=${4} -| tc10-1518B-4t4c-eth-l2bdbasemaclrn-eth-2vhostvr256-1vm-mrr +| tc04-1518B-1c-eth-l2bdbasemaclrn-eth-2vhostvr256-1vm-mrr +| | [Tags] | 1518B | 1C +| | framesize=${1518} | phy_cores=${1} + +| tc05-1518B-2c-eth-l2bdbasemaclrn-eth-2vhostvr256-1vm-mrr +| | [Tags] | 1518B | 2C +| | framesize=${1518} | phy_cores=${2} + +| tc06-1518B-4c-eth-l2bdbasemaclrn-eth-2vhostvr256-1vm-mrr | | [Tags] | 1518B | 4C | | framesize=${1518} | phy_cores=${4} -| tc11-9000B-4t4c-eth-l2bdbasemaclrn-eth-2vhostvr256-1vm-mrr +| tc07-9000B-1c-eth-l2bdbasemaclrn-eth-2vhostvr256-1vm-mrr +| | [Tags] | 9000B | 1C +| | framesize=${9000} | phy_cores=${1} + +| tc08-9000B-2c-eth-l2bdbasemaclrn-eth-2vhostvr256-1vm-mrr +| | [Tags] | 9000B | 2C +| | framesize=${9000} | phy_cores=${2} + +| tc09-9000B-4c-eth-l2bdbasemaclrn-eth-2vhostvr256-1vm-mrr | | [Tags] | 9000B | 4C | | framesize=${9000} | phy_cores=${4} -| tc12-IMIX-4t4c-eth-l2bdbasemaclrn-eth-2vhostvr256-1vm-mrr +| tc10-IMIX-1c-eth-l2bdbasemaclrn-eth-2vhostvr256-1vm-mrr +| | [Tags] | IMIX | 1C +| | framesize=IMIX_v4_1 | phy_cores=${1} + +| tc11-IMIX-2c-eth-l2bdbasemaclrn-eth-2vhostvr256-1vm-mrr +| | [Tags] | IMIX | 2C +| | framesize=IMIX_v4_1 | phy_cores=${2} + +| tc12-IMIX-4c-eth-l2bdbasemaclrn-eth-2vhostvr256-1vm-mrr | | [Tags] | IMIX | 4C | | framesize=IMIX_v4_1 | phy_cores=${4} diff --git a/tests/vpp/perf/vm_vhost/10ge2p1x710-eth-l2bdbasemaclrn-eth-2vhostvr256-1vm-ndrpdr.robot b/tests/vpp/perf/vm_vhost/10ge2p1x710-eth-l2bdbasemaclrn-eth-2vhostvr256-1vm-ndrpdr.robot new file mode 100644 index 0000000000..56fd29f89e --- /dev/null +++ b/tests/vpp/perf/vm_vhost/10ge2p1x710-eth-l2bdbasemaclrn-eth-2vhostvr256-1vm-ndrpdr.robot @@ -0,0 +1,157 @@ +# Copyright (c) 2018 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 | NDRPDR +| ... | NIC_Intel-X710 | ETH | L2BDMACLRN | BASE | VHOST | 1VM | VHOST_256 +| ... +| Suite Setup | Set up 3-node performance topology with DUT's NIC model +| ... | L2 | Intel-X710 +| 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} +| ... +| Test Template | Local Template +| ... +| Documentation | *RFC2544: Pkt 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. +| ... | *[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 X710 +| ... | 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 MLRsearch library. +| ... | Test packets are generated by TG on links to DUTs. TG traffic profile +| ... | contains two L3 flow-groups (flow-group per direction, 254 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. + +*** Variables *** +| ${perf_qemu_qsz}= | 256 +# Socket names +| ${bd_id1}= | 1 +| ${bd_id2}= | 2 +| ${sock1}= | /tmp/sock-1-${bd_id1} +| ${sock2}= | /tmp/sock-1-${bd_id2} +# X710 bandwidth limit +| ${s_limit}= | ${10000000000} +# Traffic profile: +| ${traffic_profile}= | trex-sl-3n-ethip4-ip4src254 + +*** Keywords *** +| Local Template +| | [Documentation] +| | ... | [Cfg] DUT runs IPv4 routing config. +| | ... | Each DUT uses ${phy_cores} physical core(s) for worker threads. +| | ... | [Ver] Measure NDR and PDR values using MLRsearch algorithm.\ +| | ... +| | ... | *Arguments:* +| | ... | - framesize - Framesize in Bytes in integer or string (IMIX_v4_1). +| | ... | Type: integer, string +| | ... | - phy_cores - Number of physical cores. Type: integer +| | ... | - rxq - Number of RX queues, default value: ${None}. Type: integer +| | ... +| | [Arguments] | ${framesize} | ${phy_cores} | ${rxq}=${None} +| | ... +| | Set Test Variable | ${framesize} +| | Set Test Variable | ${min_rate} | ${10000} +| | ${dut1_vm_refs}= | Create Dictionary +| | ${dut2_vm_refs}= | Create Dictionary +| | Set Test Variable | ${dut1_vm_refs} +| | Set Test Variable | ${dut2_vm_refs} +| | ... +| | Given Add worker threads and rxqueues to all DUTs | ${phy_cores} | ${rxq} +| | And Add PCI devices to all DUTs +| | ${max_rate} | ${jumbo} = | Get Max Rate And Jumbo And Handle Multi Seg +| | ... | ${s_limit} | ${framesize} +| | 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 +| | ... | jumbo_frames=${jumbo} +| | 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 +| | ... | jumbo_frames=${jumbo} +| | Set To Dictionary | ${dut2_vm_refs} | DUT2_VM1 | ${vm2} +| | Then Find NDR and PDR intervals using optimized search +| | ... | ${framesize} | ${traffic_profile} | ${min_rate} | ${max_rate} + +*** Test Cases *** +| tc01-64B-1c-eth-l2bdbasemaclrn-eth-2vhostvr256-1vm-ndrpdr +| | [Tags] | 64B | 1C +| | framesize=${64} | phy_cores=${1} + +| tc02-64B-2c-eth-l2bdbasemaclrn-eth-2vhostvr256-1vm-ndrpdr +| | [Tags] | 64B | 2C +| | framesize=${64} | phy_cores=${2} + +| tc03-64B-4c-eth-l2bdbasemaclrn-eth-2vhostvr256-1vm-ndrpdr +| | [Tags] | 64B | 4C +| | framesize=${64} | phy_cores=${4} + +| tc04-1518B-1c-eth-l2bdbasemaclrn-eth-2vhostvr256-1vm-ndrpdr +| | [Tags] | 1518B | 1C +| | framesize=${1518} | phy_cores=${1} + +| tc05-1518B-2c-eth-l2bdbasemaclrn-eth-2vhostvr256-1vm-ndrpdr +| | [Tags] | 1518B | 2C +| | framesize=${1518} | phy_cores=${2} + +| tc06-1518B-4c-eth-l2bdbasemaclrn-eth-2vhostvr256-1vm-ndrpdr +| | [Tags] | 1518B | 4C +| | framesize=${1518} | phy_cores=${4} + +| tc07-9000B-1c-eth-l2bdbasemaclrn-eth-2vhostvr256-1vm-ndrpdr +| | [Tags] | 9000B | 1C +| | framesize=${9000} | phy_cores=${1} + +| tc08-9000B-2c-eth-l2bdbasemaclrn-eth-2vhostvr256-1vm-ndrpdr +| | [Tags] | 9000B | 2C +| | framesize=${9000} | phy_cores=${2} + +| tc09-9000B-4c-eth-l2bdbasemaclrn-eth-2vhostvr256-1vm-ndrpdr +| | [Tags] | 9000B | 4C +| | framesize=${9000} | phy_cores=${4} + +| tc10-IMIX-1c-eth-l2bdbasemaclrn-eth-2vhostvr256-1vm-ndrpdr +| | [Tags] | IMIX | 1C +| | framesize=IMIX_v4_1 | phy_cores=${1} + +| tc11-IMIX-2c-eth-l2bdbasemaclrn-eth-2vhostvr256-1vm-ndrpdr +| | [Tags] | IMIX | 2C +| | framesize=IMIX_v4_1 | phy_cores=${2} + +| tc12-IMIX-4c-eth-l2bdbasemaclrn-eth-2vhostvr256-1vm-ndrpdr +| | [Tags] | IMIX | 4C +| | framesize=IMIX_v4_1 | phy_cores=${4} diff --git a/tests/vpp/perf/vm_vhost/10ge2p1x710-eth-l2bdbasemaclrn-eth-4vhostvr1024-2vm-mrr.robot b/tests/vpp/perf/vm_vhost/10ge2p1x710-eth-l2bdbasemaclrn-eth-4vhostvr1024-2vm-mrr.robot index d6c867d9d2..6ca141cfb3 100644 --- a/tests/vpp/perf/vm_vhost/10ge2p1x710-eth-l2bdbasemaclrn-eth-4vhostvr1024-2vm-mrr.robot +++ b/tests/vpp/perf/vm_vhost/10ge2p1x710-eth-l2bdbasemaclrn-eth-4vhostvr1024-2vm-mrr.robot @@ -27,7 +27,7 @@ | ... | dut1_node=${dut1} | dut1_vm_refs=${dut1_vm_refs} | ... | dut2_node=${dut2} | dut2_vm_refs=${dut2_vm_refs} | ... -| Test Template | Local template +| Test Template | Local Template | ... | Documentation | *Raw results L2BD test cases with vhost* | ... @@ -62,7 +62,7 @@ | ${traffic_profile}= | trex-sl-3n-ethip4-ip4src254 *** Keywords *** -| Local template +| Local Template | | [Documentation] | | ... | [Cfg] DUT runs L2BD switching config. | | ... | Each DUT uses ${phy_cores} physical core(s) for worker threads. @@ -77,72 +77,67 @@ | | ... | | [Arguments] | ${framesize} | ${phy_cores} | ${rxq}=${None} | | ... -| | Set Test Variable | ${framesize} -| | ${get_framesize}= | Get Frame Size | ${framesize} -| | ${max_rate}= | Calculate pps | ${s_limit} | ${get_framesize} | | ${dut1_vm_refs}= | Create Dictionary | | ${dut2_vm_refs}= | Create Dictionary | | Set Test Variable | ${dut1_vm_refs} | | Set Test Variable | ${dut2_vm_refs} -| | ${jumbo_frames}= | Set Variable If | ${get_framesize} < ${1522} -| | ... | ${False} | ${True} -| | Set Test Variable | ${jumbo_frames} | | ... | | Given Add worker threads and rxqueues to all DUTs | ${phy_cores} | ${rxq} | | And Add PCI devices to all DUTs -| | And Run Keyword If | ${get_framesize} < ${1522} -| | ... | Add no multi seg to all DUTs +| | ${max_rate} | ${jumbo} = | Get Max Rate And Jumbo And Handle Multi Seg +| | ... | ${s_limit} | ${framesize} | | And Apply startup configuration on all VPP DUTs | | When Initialize L2 bridge domains with Vhost-User for '2' VMs in 3-node circular topology +| | Set Test Variable | \${jumbo_frames} | ${jumbo} | | And Configure '2' guest VMs with dpdk-testpmd connected via vhost-user in 3-node circular topology | | Then Traffic should pass with maximum rate | | ... | ${max_rate}pps | ${framesize} | ${traffic_profile} *** Test Cases *** -| tc01-64B-1t1c-eth-l2bdbasemaclrn-eth-4vhostvr1024-2vm-mrr +| tc01-64B-1c-eth-l2bdbasemaclrn-eth-4vhostvr1024-2vm-mrr | | [Tags] | 64B | 1C | | framesize=${64} | phy_cores=${1} -| tc02-1518B-1t1c-eth-l2bdbasemaclrn-eth-4vhostvr1024-2vm-mrr -| | [Tags] | 1518B | 1C -| | framesize=${1518} | phy_cores=${1} - -| tc03-9000B-1t1c-eth-l2bdbasemaclrn-eth-4vhostvr1024-2vm-mrr -| | [Tags] | 9000B | 1C -| | framesize=${9000} | phy_cores=${1} - -| tc04-IMIX-1t1c-eth-l2bdbasemaclrn-eth-4vhostvr1024-2vm-mrr -| | [Tags] | IMIX | 1C -| | framesize=IMIX_v4_1 | phy_cores=${1} - -| tc05-64B-2t2c-eth-l2bdbasemaclrn-eth-4vhostvr1024-2vm-mrr +| tc02-64B-2c-eth-l2bdbasemaclrn-eth-4vhostvr1024-2vm-mrr | | [Tags] | 64B | 2C | | framesize=${64} | phy_cores=${2} -| tc06-1518B-2t2c-eth-l2bdbasemaclrn-eth-4vhostvr1024-2vm-mrr -| | [Tags] | 1518B | 2C -| | framesize=${1518} | phy_cores=${2} - -| tc07-9000B-2t2c-eth-l2bdbasemaclrn-eth-4vhostvr1024-2vm-mrr -| | [Tags] | 9000B | 2C -| | framesize=${9000} | phy_cores=${2} - -| tc08-IMIX-2t2c-eth-l2bdbasemaclrn-eth-4vhostvr1024-2vm-mrr -| | [Tags] | IMIX | 2C -| | framesize=IMIX_v4_1 | phy_cores=${2} - -| tc09-64B-4t4c-eth-l2bdbasemaclrn-eth-4vhostvr1024-2vm-mrr +| tc03-64B-4c-eth-l2bdbasemaclrn-eth-4vhostvr1024-2vm-mrr | | [Tags] | 64B | 4C | | framesize=${64} | phy_cores=${4} -| tc10-1518B-4t4c-eth-l2bdbasemaclrn-eth-4vhostvr1024-2vm-mrr +| tc04-1518B-1c-eth-l2bdbasemaclrn-eth-4vhostvr1024-2vm-mrr +| | [Tags] | 1518B | 1C +| | framesize=${1518} | phy_cores=${1} + +| tc05-1518B-2c-eth-l2bdbasemaclrn-eth-4vhostvr1024-2vm-mrr +| | [Tags] | 1518B | 2C +| | framesize=${1518} | phy_cores=${2} + +| tc06-1518B-4c-eth-l2bdbasemaclrn-eth-4vhostvr1024-2vm-mrr | | [Tags] | 1518B | 4C | | framesize=${1518} | phy_cores=${4} -| tc11-9000B-4t4c-eth-l2bdbasemaclrn-eth-4vhostvr1024-2vm-mrr +| tc07-9000B-1c-eth-l2bdbasemaclrn-eth-4vhostvr1024-2vm-mrr +| | [Tags] | 9000B | 1C +| | framesize=${9000} | phy_cores=${1} + +| tc08-9000B-2c-eth-l2bdbasemaclrn-eth-4vhostvr1024-2vm-mrr +| | [Tags] | 9000B | 2C +| | framesize=${9000} | phy_cores=${2} + +| tc09-9000B-4c-eth-l2bdbasemaclrn-eth-4vhostvr1024-2vm-mrr | | [Tags] | 9000B | 4C | | framesize=${9000} | phy_cores=${4} -| tc12-IMIX-4t4c-eth-l2bdbasemaclrn-eth-4vhostvr1024-2vm-mrr +| tc10-IMIX-1c-eth-l2bdbasemaclrn-eth-4vhostvr1024-2vm-mrr +| | [Tags] | IMIX | 1C +| | framesize=IMIX_v4_1 | phy_cores=${1} + +| tc11-IMIX-2c-eth-l2bdbasemaclrn-eth-4vhostvr1024-2vm-mrr +| | [Tags] | IMIX | 2C +| | framesize=IMIX_v4_1 | phy_cores=${2} + +| tc12-IMIX-4c-eth-l2bdbasemaclrn-eth-4vhostvr1024-2vm-mrr | | [Tags] | IMIX | 4C | | framesize=IMIX_v4_1 | phy_cores=${4} diff --git a/tests/vpp/perf/vm_vhost/10ge2p1x710-eth-l2bdbasemaclrn-eth-4vhostvr1024-2vm-ndrpdr.robot b/tests/vpp/perf/vm_vhost/10ge2p1x710-eth-l2bdbasemaclrn-eth-4vhostvr1024-2vm-ndrpdr.robot new file mode 100644 index 0000000000..b63dc564a5 --- /dev/null +++ b/tests/vpp/perf/vm_vhost/10ge2p1x710-eth-l2bdbasemaclrn-eth-4vhostvr1024-2vm-ndrpdr.robot @@ -0,0 +1,148 @@ +# Copyright (c) 2018 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 | NDRPDR +| ... | NIC_Intel-X710 | ETH | L2BDMACLRN | BASE | VHOST | 2VM | VHOST_1024 +| ... +| Suite Setup | Set up 3-node performance topology with DUT's NIC model +| ... | L2 | Intel-X710 +| 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} +| ... +| Test Template | Local Template +| ... +| Documentation | *RFC2544: Pkt 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. +| ... | *[Cfg] DUT configuration:* DUT1 and DUT2 are configured with L2 bridge- +| ... | domains and MAC learning enabled. Qemu Guests are connected to VPP via +| ... | vhost-user interfaces. Guests are running DPDK testpmd interconnecting +| ... | vhost-user interfaces using 5 cores pinned to cpus 6-10 and 11-15 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=1024, burst=64. DUT1, DUT2 are tested with 2p10GE NIC +| ... | X710 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 MLRsearch library. +| ... | Test packets are generated by TG on links to DUTs. TG traffic profile +| ... | contains two L3 flow-groups (flow-group per direction, 254 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. + +*** Variables *** +| ${perf_qemu_qsz}= | 1024 +# CPU settings +| ${system_cpus}= | ${1} +| ${vpp_cpus}= | ${5} +| ${vm_cpus}= | ${5} +# X710 bandwidth limit +| ${s_limit}= | ${10000000000} +# Traffic profile: +| ${traffic_profile}= | trex-sl-3n-ethip4-ip4src254 + +*** Keywords *** +| Local Template +| | [Documentation] +| | ... | [Cfg] DUT runs L2BD switching config. +| | ... | Each DUT uses ${phy_cores} physical core(s) for worker threads. +| | ... | [Ver] Measure NDR and PDR values using MLRsearch algorithm.\ +| | ... +| | ... | *Arguments:* +| | ... | - framesize - Framesize in Bytes in integer or string (IMIX_v4_1). +| | ... | Type: integer, string +| | ... | - phy_cores - Number of physical cores. Type: integer +| | ... | - rxq - Number of RX queues, default value: ${None}. Type: integer +| | ... +| | [Arguments] | ${framesize} | ${phy_cores} | ${rxq}=${None} +| | ... +| | Set Test Variable | ${framesize} +| | Set Test Variable | ${min_rate} | ${10000} +| | ${dut1_vm_refs}= | Create Dictionary +| | ${dut2_vm_refs}= | Create Dictionary +| | Set Test Variable | ${dut1_vm_refs} +| | Set Test Variable | ${dut2_vm_refs} +| | ... +| | Given Add worker threads and rxqueues to all DUTs | ${phy_cores} | ${rxq} +| | And Add PCI devices to all DUTs +| | ${max_rate} | ${jumbo} = | Get Max Rate And Jumbo And Handle Multi Seg +| | ... | ${s_limit} | ${framesize} +| | And Apply startup configuration on all VPP DUTs +| | When Initialize L2 bridge domains with Vhost-User for '2' VMs in 3-node circular topology +| | Set Test Variable | \${jumbo_frames} | ${jumbo} +| | And Configure '2' guest VMs with dpdk-testpmd connected via vhost-user in 3-node circular topology +| | Then Find NDR and PDR intervals using optimized search +| | ... | ${framesize} | ${traffic_profile} | ${min_rate} | ${max_rate} + +*** Test Cases *** +| tc01-64B-1c-eth-l2bdbasemaclrn-eth-4vhostvr1024-2vm-ndrpdr +| | [Tags] | 64B | 1C +| | framesize=${64} | phy_cores=${1} + +| tc02-64B-2c-eth-l2bdbasemaclrn-eth-4vhostvr1024-2vm-ndrpdr +| | [Tags] | 64B | 2C +| | framesize=${64} | phy_cores=${2} + +| tc03-64B-4c-eth-l2bdbasemaclrn-eth-4vhostvr1024-2vm-ndrpdr +| | [Tags] | 64B | 4C +| | framesize=${64} | phy_cores=${4} + +| tc04-1518B-1c-eth-l2bdbasemaclrn-eth-4vhostvr1024-2vm-ndrpdr +| | [Tags] | 1518B | 1C +| | framesize=${1518} | phy_cores=${1} + +| tc05-1518B-2c-eth-l2bdbasemaclrn-eth-4vhostvr1024-2vm-ndrpdr +| | [Tags] | 1518B | 2C +| | framesize=${1518} | phy_cores=${2} + +| tc06-1518B-4c-eth-l2bdbasemaclrn-eth-4vhostvr1024-2vm-ndrpdr +| | [Tags] | 1518B | 4C +| | framesize=${1518} | phy_cores=${4} + +| tc07-9000B-1c-eth-l2bdbasemaclrn-eth-4vhostvr1024-2vm-ndrpdr +| | [Tags] | 9000B | 1C +| | framesize=${9000} | phy_cores=${1} + +| tc08-9000B-2c-eth-l2bdbasemaclrn-eth-4vhostvr1024-2vm-ndrpdr +| | [Tags] | 9000B | 2C +| | framesize=${9000} | phy_cores=${2} + +| tc09-9000B-4c-eth-l2bdbasemaclrn-eth-4vhostvr1024-2vm-ndrpdr +| | [Tags] | 9000B | 4C +| | framesize=${9000} | phy_cores=${4} + +| tc10-IMIX-1c-eth-l2bdbasemaclrn-eth-4vhostvr1024-2vm-ndrpdr +| | [Tags] | IMIX | 1C +| | framesize=IMIX_v4_1 | phy_cores=${1} + +| tc11-IMIX-2c-eth-l2bdbasemaclrn-eth-4vhostvr1024-2vm-ndrpdr +| | [Tags] | IMIX | 2C +| | framesize=IMIX_v4_1 | phy_cores=${2} + +| tc12-IMIX-4c-eth-l2bdbasemaclrn-eth-4vhostvr1024-2vm-ndrpdr +| | [Tags] | IMIX | 4C +| | framesize=IMIX_v4_1 | phy_cores=${4} diff --git a/tests/vpp/perf/vm_vhost/10ge2p1x710-eth-l2xcbase-eth-2vhostvr1024-1vm-mrr.robot b/tests/vpp/perf/vm_vhost/10ge2p1x710-eth-l2xcbase-eth-2vhostvr1024-1vm-mrr.robot index 2768a44d2f..7c27b547a0 100644 --- a/tests/vpp/perf/vm_vhost/10ge2p1x710-eth-l2xcbase-eth-2vhostvr1024-1vm-mrr.robot +++ b/tests/vpp/perf/vm_vhost/10ge2p1x710-eth-l2xcbase-eth-2vhostvr1024-1vm-mrr.robot @@ -27,7 +27,7 @@ | ... | dut1_node=${dut1} | dut1_vm_refs=${dut1_vm_refs} | ... | dut2_node=${dut2} | dut2_vm_refs=${dut2_vm_refs} | ... -| Test Template | Local template +| Test Template | Local Template | ... | Documentation | *Raw results L2XC test cases with vhost* | ... @@ -61,7 +61,7 @@ | ${traffic_profile}= | trex-sl-3n-ethip4-ip4src254 *** Keywords *** -| Local template +| Local Template | | [Documentation] | | ... | [Cfg] DUT runs L2XC switching config. | | ... | Each DUT uses ${phy_cores} physical core(s) for worker threads. @@ -76,79 +76,74 @@ | | ... | | [Arguments] | ${framesize} | ${phy_cores} | ${rxq}=${None} | | ... -| | Set Test Variable | ${framesize} -| | ${get_framesize}= | Get Frame Size | ${framesize} -| | ${max_rate}= | Calculate pps | ${s_limit} | ${get_framesize} | | ${dut1_vm_refs}= | Create Dictionary | | ${dut2_vm_refs}= | Create Dictionary | | Set Test Variable | ${dut1_vm_refs} | | Set Test Variable | ${dut2_vm_refs} -| | ${jumbo_frames}= | Set Variable If | ${get_framesize} < ${1522} -| | ... | ${False} | ${True} | | ... | | Given Add worker threads and rxqueues to all DUTs | ${phy_cores} | ${rxq} | | And Add PCI devices to all DUTs -| | And Run Keyword If | ${get_framesize} < ${1522} -| | ... | Add no multi seg to all DUTs +| | ${max_rate} | ${jumbo} = | Get Max Rate And Jumbo And Handle Multi Seg +| | ... | ${s_limit} | ${framesize} | | 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 -| | ... | jumbo_frames=${jumbo_frames} +| | ... | jumbo_frames=${jumbo} | | 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 -| | ... | jumbo_frames=${jumbo_frames} +| | ... | jumbo_frames=${jumbo} | | Set To Dictionary | ${dut2_vm_refs} | DUT2_VM1 | ${vm2} | | Then Traffic should pass with maximum rate | | ... | ${max_rate}pps | ${framesize} | ${traffic_profile} *** Test Cases *** -| tc01-64B-1t1c-eth-l2xcbase-eth-2vhostvr1024-1vm-mrr +| tc01-64B-1c-eth-l2xcbase-eth-2vhostvr1024-1vm-mrr | | [Tags] | 64B | 1C | | framesize=${64} | phy_cores=${1} -| tc02-1518B-1t1c-eth-l2xcbase-eth-2vhostvr1024-1vm-mrr -| | [Tags] | 1518B | 1C -| | framesize=${1518} | phy_cores=${1} - -| tc03-9000B-1t1c-eth-l2xcbase-eth-2vhostvr1024-1vm-mrr -| | [Tags] | 9000B | 1C -| | framesize=${9000} | phy_cores=${1} - -| tc04-IMIX-1t1c-eth-l2xcbase-eth-2vhostvr1024-1vm-mrr -| | [Tags] | IMIX | 1C -| | framesize=IMIX_v4_1 | phy_cores=${1} - -| tc05-64B-2t2c-eth-l2xcbase-eth-2vhostvr1024-1vm-mrr +| tc02-64B-2c-eth-l2xcbase-eth-2vhostvr1024-1vm-mrr | | [Tags] | 64B | 2C | | framesize=${64} | phy_cores=${2} -| tc06-1518B-2t2c-eth-l2xcbase-eth-2vhostvr1024-1vm-mrr -| | [Tags] | 1518B | 2C -| | framesize=${1518} | phy_cores=${2} - -| tc07-9000B-2t2c-eth-l2xcbase-eth-2vhostvr1024-1vm-mrr -| | [Tags] | 9000B | 2C -| | framesize=${9000} | phy_cores=${2} - -| tc08-IMIX-2t2c-eth-l2xcbase-eth-2vhostvr1024-1vm-mrr -| | [Tags] | IMIX | 2C -| | framesize=IMIX_v4_1 | phy_cores=${2} - -| tc09-64B-4t4c-eth-l2xcbase-eth-2vhostvr1024-1vm-mrr +| tc03-64B-4c-eth-l2xcbase-eth-2vhostvr1024-1vm-mrr | | [Tags] | 64B | 4C | | framesize=${64} | phy_cores=${4} -| tc10-1518B-4t4c-eth-l2xcbase-eth-2vhostvr1024-1vm-mrr +| tc04-1518B-1c-eth-l2xcbase-eth-2vhostvr1024-1vm-mrr +| | [Tags] | 1518B | 1C +| | framesize=${1518} | phy_cores=${1} + +| tc05-1518B-2c-eth-l2xcbase-eth-2vhostvr1024-1vm-mrr +| | [Tags] | 1518B | 2C +| | framesize=${1518} | phy_cores=${2} + +| tc06-1518B-4c-eth-l2xcbase-eth-2vhostvr1024-1vm-mrr | | [Tags] | 1518B | 4C | | framesize=${1518} | phy_cores=${4} -| tc11-9000B-4t4c-eth-l2xcbase-eth-2vhostvr1024-1vm-mrr +| tc07-9000B-1c-eth-l2xcbase-eth-2vhostvr1024-1vm-mrr +| | [Tags] | 9000B | 1C +| | framesize=${9000} | phy_cores=${1} + +| tc08-9000B-2c-eth-l2xcbase-eth-2vhostvr1024-1vm-mrr +| | [Tags] | 9000B | 2C +| | framesize=${9000} | phy_cores=${2} + +| tc09-9000B-4c-eth-l2xcbase-eth-2vhostvr1024-1vm-mrr | | [Tags] | 9000B | 4C | | framesize=${9000} | phy_cores=${4} -| tc12-IMIX-4t4c-eth-l2xcbase-eth-2vhostvr1024-1vm-mrr +| tc10-IMIX-1c-eth-l2xcbase-eth-2vhostvr1024-1vm-mrr +| | [Tags] | IMIX | 1C +| | framesize=IMIX_v4_1 | phy_cores=${1} + +| tc11-IMIX-2c-eth-l2xcbase-eth-2vhostvr1024-1vm-mrr +| | [Tags] | IMIX | 2C +| | framesize=IMIX_v4_1 | phy_cores=${2} + +| tc12-IMIX-4c-eth-l2xcbase-eth-2vhostvr1024-1vm-mrr | | [Tags] | IMIX | 4C | | framesize=IMIX_v4_1 | phy_cores=${4} diff --git a/tests/vpp/perf/vm_vhost/10ge2p1x710-eth-l2xcbase-eth-2vhostvr1024-1vm-ndrpdr.robot b/tests/vpp/perf/vm_vhost/10ge2p1x710-eth-l2xcbase-eth-2vhostvr1024-1vm-ndrpdr.robot new file mode 100644 index 0000000000..832a452b48 --- /dev/null +++ b/tests/vpp/perf/vm_vhost/10ge2p1x710-eth-l2xcbase-eth-2vhostvr1024-1vm-ndrpdr.robot @@ -0,0 +1,154 @@ +# Copyright (c) 2018 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 | NDRPDR +| ... | NIC_Intel-X710 | ETH | L2XCFWD | BASE | VHOST | 1VM | VHOST_1024 +| ... +| Suite Setup | Set up 3-node performance topology with DUT's NIC model +| ... | L2 | Intel-X710 +| 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} +| ... +| Test Template | Local Template +| ... +| Documentation | *RFC2544: Pkt 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=1024, +| ... | burst=64. DUT1, DUT2 are tested with 2p10GE NIC X710 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 MLRsearch library. +| ... | Test packets are generated by TG on links to DUTs. TG traffic profile +| ... | contains two L3 flow-groups (flow-group per direction, 254 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. + +*** Variables *** +| ${perf_qemu_qsz}= | 1024 +# Socket names +| ${sock1}= | /tmp/sock-1-1 +| ${sock2}= | /tmp/sock-1-2 +# X710 bandwidth limit +| ${s_limit}= | ${10000000000} +# Traffic profile: +| ${traffic_profile}= | trex-sl-3n-ethip4-ip4src254 + +*** Keywords *** +| Local Template +| | [Documentation] +| | ... | [Cfg] DUT runs L2XC switching config. +| | ... | Each DUT uses ${phy_cores} physical core(s) for worker threads. +| | ... | [Ver] Measure NDR and PDR values using MLRsearch algorithm.\ +| | ... +| | ... | *Arguments:* +| | ... | - framesize - Framesize in Bytes in integer or string (IMIX_v4_1). +| | ... | Type: integer, string +| | ... | - phy_cores - Number of physical cores. Type: integer +| | ... | - rxq - Number of RX queues, default value: ${None}. Type: integer +| | ... +| | [Arguments] | ${framesize} | ${phy_cores} | ${rxq}=${None} +| | ... +| | Set Test Variable | ${framesize} +| | Set Test Variable | ${min_rate} | ${10000} +| | ${dut1_vm_refs}= | Create Dictionary +| | ${dut2_vm_refs}= | Create Dictionary +| | Set Test Variable | ${dut1_vm_refs} +| | Set Test Variable | ${dut2_vm_refs} +| | ... +| | Given Add worker threads and rxqueues to all DUTs | ${phy_cores} | ${rxq} +| | And Add PCI devices to all DUTs +| | ${max_rate} | ${jumbo} = | Get Max Rate And Jumbo And Handle Multi Seg +| | ... | ${s_limit} | ${framesize} +| | 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 +| | ... | jumbo_frames=${jumbo} +| | 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 +| | ... | jumbo_frames=${jumbo} +| | Set To Dictionary | ${dut2_vm_refs} | DUT2_VM1 | ${vm2} +| | Then Find NDR and PDR intervals using optimized search +| | ... | ${framesize} | ${traffic_profile} | ${min_rate} | ${max_rate} + +*** Test Cases *** +| tc01-64B-1c-eth-l2xcbase-eth-2vhostvr1024-1vm-ndrpdr +| | [Tags] | 64B | 1C +| | framesize=${64} | phy_cores=${1} + +| tc02-64B-2c-eth-l2xcbase-eth-2vhostvr1024-1vm-ndrpdr +| | [Tags] | 64B | 2C +| | framesize=${64} | phy_cores=${2} + +| tc03-64B-4c-eth-l2xcbase-eth-2vhostvr1024-1vm-ndrpdr +| | [Tags] | 64B | 4C +| | framesize=${64} | phy_cores=${4} + +| tc04-1518B-1c-eth-l2xcbase-eth-2vhostvr1024-1vm-ndrpdr +| | [Tags] | 1518B | 1C +| | framesize=${1518} | phy_cores=${1} + +| tc05-1518B-2c-eth-l2xcbase-eth-2vhostvr1024-1vm-ndrpdr +| | [Tags] | 1518B | 2C +| | framesize=${1518} | phy_cores=${2} + +| tc06-1518B-4c-eth-l2xcbase-eth-2vhostvr1024-1vm-ndrpdr +| | [Tags] | 1518B | 4C +| | framesize=${1518} | phy_cores=${4} + +| tc07-9000B-1c-eth-l2xcbase-eth-2vhostvr1024-1vm-ndrpdr +| | [Tags] | 9000B | 1C +| | framesize=${9000} | phy_cores=${1} + +| tc08-9000B-2c-eth-l2xcbase-eth-2vhostvr1024-1vm-ndrpdr +| | [Tags] | 9000B | 2C +| | framesize=${9000} | phy_cores=${2} + +| tc09-9000B-4c-eth-l2xcbase-eth-2vhostvr1024-1vm-ndrpdr +| | [Tags] | 9000B | 4C +| | framesize=${9000} | phy_cores=${4} + +| tc10-IMIX-1c-eth-l2xcbase-eth-2vhostvr1024-1vm-ndrpdr +| | [Tags] | IMIX | 1C +| | framesize=IMIX_v4_1 | phy_cores=${1} + +| tc11-IMIX-2c-eth-l2xcbase-eth-2vhostvr1024-1vm-ndrpdr +| | [Tags] | IMIX | 2C +| | framesize=IMIX_v4_1 | phy_cores=${2} + +| tc12-IMIX-4c-eth-l2xcbase-eth-2vhostvr1024-1vm-ndrpdr +| | [Tags] | IMIX | 4C +| | framesize=IMIX_v4_1 | phy_cores=${4} diff --git a/tests/vpp/perf/vm_vhost/10ge2p1x710-eth-l2xcbase-eth-2vhostvr256-1vm-mrr.robot b/tests/vpp/perf/vm_vhost/10ge2p1x710-eth-l2xcbase-eth-2vhostvr256-1vm-mrr.robot index e3c852e511..98024a4c48 100644 --- a/tests/vpp/perf/vm_vhost/10ge2p1x710-eth-l2xcbase-eth-2vhostvr256-1vm-mrr.robot +++ b/tests/vpp/perf/vm_vhost/10ge2p1x710-eth-l2xcbase-eth-2vhostvr256-1vm-mrr.robot @@ -27,7 +27,7 @@ | ... | dut1_node=${dut1} | dut1_vm_refs=${dut1_vm_refs} | ... | dut2_node=${dut2} | dut2_vm_refs=${dut2_vm_refs} | ... -| Test Template | Local template +| Test Template | Local Template | ... | Documentation | *Raw results L2XC test cases with vhost* | ... @@ -61,7 +61,7 @@ | ${traffic_profile}= | trex-sl-3n-ethip4-ip4src254 *** Keywords *** -| Local template +| Local Template | | [Documentation] | | ... | [Cfg] DUT runs L2XC switching config. | | ... | Each DUT uses ${phy_cores} physical core(s) for worker threads. @@ -76,79 +76,74 @@ | | ... | | [Arguments] | ${framesize} | ${phy_cores} | ${rxq}=${None} | | ... -| | Set Test Variable | ${framesize} -| | ${get_framesize}= | Get Frame Size | ${framesize} -| | ${max_rate}= | Calculate pps | ${s_limit} | ${get_framesize} | | ${dut1_vm_refs}= | Create Dictionary | | ${dut2_vm_refs}= | Create Dictionary | | Set Test Variable | ${dut1_vm_refs} | | Set Test Variable | ${dut2_vm_refs} -| | ${jumbo_frames}= | Set Variable If | ${get_framesize} < ${1522} -| | ... | ${False} | ${True} | | ... | | Given Add worker threads and rxqueues to all DUTs | ${phy_cores} | ${rxq} | | And Add PCI devices to all DUTs -| | And Run Keyword If | ${get_framesize} < ${1522} -| | ... | Add no multi seg to all DUTs +| | ${max_rate} | ${jumbo} = | Get Max Rate And Jumbo And Handle Multi Seg +| | ... | ${s_limit} | ${framesize} | | 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 -| | ... | jumbo_frames=${jumbo_frames} +| | ... | jumbo_frames=${jumbo} | | 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 -| | ... | jumbo_frames=${jumbo_frames} +| | ... | jumbo_frames=${jumbo} | | Set To Dictionary | ${dut2_vm_refs} | DUT2_VM1 | ${vm2} | | Then Traffic should pass with maximum rate | | ... | ${max_rate}pps | ${framesize} | ${traffic_profile} *** Test Cases *** -| tc01-64B-1t1c-eth-l2xcbase-eth-2vhostvr256-1vm-mrr +| tc01-64B-1c-eth-l2xcbase-eth-2vhostvr256-1vm-mrr | | [Tags] | 64B | 1C | | framesize=${64} | phy_cores=${1} -| tc02-1518B-1t1c-eth-l2xcbase-eth-2vhostvr256-1vm-mrr -| | [Tags] | 1518B | 1C -| | framesize=${1518} | phy_cores=${1} - -| tc03-9000B-1t1c-eth-l2xcbase-eth-2vhostvr256-1vm-mrr -| | [Tags] | 9000B | 1C -| | framesize=${9000} | phy_cores=${1} - -| tc04-IMIX-1t1c-eth-l2xcbase-eth-2vhostvr256-1vm-mrr -| | [Tags] | IMIX | 1C -| | framesize=IMIX_v4_1 | phy_cores=${1} - -| tc05-64B-2t2c-eth-l2xcbase-eth-2vhostvr256-1vm-mrr +| tc02-64B-2c-eth-l2xcbase-eth-2vhostvr256-1vm-mrr | | [Tags] | 64B | 2C | | framesize=${64} | phy_cores=${2} -| tc06-1518B-2t2c-eth-l2xcbase-eth-2vhostvr256-1vm-mrr -| | [Tags] | 1518B | 2C -| | framesize=${1518} | phy_cores=${2} - -| tc07-9000B-2t2c-eth-l2xcbase-eth-2vhostvr256-1vm-mrr -| | [Tags] | 9000B | 2C -| | framesize=${9000} | phy_cores=${2} - -| tc08-IMIX-2t2c-eth-l2xcbase-eth-2vhostvr256-1vm-mrr -| | [Tags] | IMIX | 2C -| | framesize=IMIX_v4_1 | phy_cores=${2} - -| tc09-64B-4t4c-eth-l2xcbase-eth-2vhostvr256-1vm-mrr +| tc03-64B-4c-eth-l2xcbase-eth-2vhostvr256-1vm-mrr | | [Tags] | 64B | 4C | | framesize=${64} | phy_cores=${4} -| tc10-1518B-4t4c-eth-l2xcbase-eth-2vhostvr256-1vm-mrr +| tc04-1518B-1c-eth-l2xcbase-eth-2vhostvr256-1vm-mrr +| | [Tags] | 1518B | 1C +| | framesize=${1518} | phy_cores=${1} + +| tc05-1518B-2c-eth-l2xcbase-eth-2vhostvr256-1vm-mrr +| | [Tags] | 1518B | 2C +| | framesize=${1518} | phy_cores=${2} + +| tc06-1518B-4c-eth-l2xcbase-eth-2vhostvr256-1vm-mrr | | [Tags] | 1518B | 4C | | framesize=${1518} | phy_cores=${4} -| tc11-9000B-4t4c-eth-l2xcbase-eth-2vhostvr256-1vm-mrr +| tc07-9000B-1c-eth-l2xcbase-eth-2vhostvr256-1vm-mrr +| | [Tags] | 9000B | 1C +| | framesize=${9000} | phy_cores=${1} + +| tc08-9000B-2c-eth-l2xcbase-eth-2vhostvr256-1vm-mrr +| | [Tags] | 9000B | 2C +| | framesize=${9000} | phy_cores=${2} + +| tc09-9000B-4c-eth-l2xcbase-eth-2vhostvr256-1vm-mrr | | [Tags] | 9000B | 4C | | framesize=${9000} | phy_cores=${4} -| tc12-IMIX-4t4c-eth-l2xcbase-eth-2vhostvr256-1vm-mrr +| tc10-IMIX-1c-eth-l2xcbase-eth-2vhostvr256-1vm-mrr +| | [Tags] | IMIX | 1C +| | framesize=IMIX_v4_1 | phy_cores=${1} + +| tc11-IMIX-2c-eth-l2xcbase-eth-2vhostvr256-1vm-mrr +| | [Tags] | IMIX | 2C +| | framesize=IMIX_v4_1 | phy_cores=${2} + +| tc12-IMIX-4c-eth-l2xcbase-eth-2vhostvr256-1vm-mrr | | [Tags] | IMIX | 4C | | framesize=IMIX_v4_1 | phy_cores=${4} diff --git a/tests/vpp/perf/vm_vhost/10ge2p1x710-eth-l2xcbase-eth-2vhostvr256-1vm-ndrpdr.robot b/tests/vpp/perf/vm_vhost/10ge2p1x710-eth-l2xcbase-eth-2vhostvr256-1vm-ndrpdr.robot new file mode 100644 index 0000000000..961a9e8029 --- /dev/null +++ b/tests/vpp/perf/vm_vhost/10ge2p1x710-eth-l2xcbase-eth-2vhostvr256-1vm-ndrpdr.robot @@ -0,0 +1,154 @@ +# Copyright (c) 2018 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 | NDRPDR +| ... | NIC_Intel-X710 | ETH | L2XCFWD | BASE | VHOST | 1VM | VHOST_256 +| ... +| Suite Setup | Set up 3-node performance topology with DUT's NIC model +| ... | L2 | Intel-X710 +| 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} +| ... +| Test Template | Local Template +| ... +| Documentation | *RFC2544: Pkt 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 X710 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 MLRsearch library. +| ... | Test packets are generated by TG on links to DUTs. TG traffic profile +| ... | contains two L3 flow-groups (flow-group per direction, 254 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. + +*** Variables *** +| ${perf_qemu_qsz}= | 256 +# Socket names +| ${sock1}= | /tmp/sock-1-1 +| ${sock2}= | /tmp/sock-1-2 +# X710 bandwidth limit +| ${s_limit}= | ${10000000000} +# Traffic profile: +| ${traffic_profile}= | trex-sl-3n-ethip4-ip4src254 + +*** Keywords *** +| Local Template +| | [Documentation] +| | ... | [Cfg] DUT runs L2XC switching config. +| | ... | Each DUT uses ${phy_cores} physical core(s) for worker threads. +| | ... | [Ver] Measure NDR and PDR values using MLRsearch algorithm.\ +| | ... +| | ... | *Arguments:* +| | ... | - framesize - Framesize in Bytes in integer or string (IMIX_v4_1). +| | ... | Type: integer, string +| | ... | - phy_cores - Number of physical cores. Type: integer +| | ... | - rxq - Number of RX queues, default value: ${None}. Type: integer +| | ... +| | [Arguments] | ${framesize} | ${phy_cores} | ${rxq}=${None} +| | ... +| | Set Test Variable | ${framesize} +| | Set Test Variable | ${min_rate} | ${10000} +| | ${dut1_vm_refs}= | Create Dictionary +| | ${dut2_vm_refs}= | Create Dictionary +| | Set Test Variable | ${dut1_vm_refs} +| | Set Test Variable | ${dut2_vm_refs} +| | ... +| | Given Add worker threads and rxqueues to all DUTs | ${phy_cores} | ${rxq} +| | And Add PCI devices to all DUTs +| | ${max_rate} | ${jumbo} = | Get Max Rate And Jumbo And Handle Multi Seg +| | ... | ${s_limit} | ${framesize} +| | 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 +| | ... | jumbo_frames=${jumbo} +| | 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 +| | ... | jumbo_frames=${jumbo} +| | Set To Dictionary | ${dut2_vm_refs} | DUT2_VM1 | ${vm2} +| | Then Find NDR and PDR intervals using optimized search +| | ... | ${framesize} | ${traffic_profile} | ${min_rate} | ${max_rate} + +*** Test Cases *** +| tc01-64B-1c-eth-l2xcbase-eth-2vhostvr256-1vm-ndrpdr +| | [Tags] | 64B | 1C +| | framesize=${64} | phy_cores=${1} + +| tc02-64B-2c-eth-l2xcbase-eth-2vhostvr256-1vm-ndrpdr +| | [Tags] | 64B | 2C +| | framesize=${64} | phy_cores=${2} + +| tc03-64B-4c-eth-l2xcbase-eth-2vhostvr256-1vm-ndrpdr +| | [Tags] | 64B | 4C +| | framesize=${64} | phy_cores=${4} + +| tc04-1518B-1c-eth-l2xcbase-eth-2vhostvr256-1vm-ndrpdr +| | [Tags] | 1518B | 1C +| | framesize=${1518} | phy_cores=${1} + +| tc05-1518B-2c-eth-l2xcbase-eth-2vhostvr256-1vm-ndrpdr +| | [Tags] | 1518B | 2C +| | framesize=${1518} | phy_cores=${2} + +| tc06-1518B-4c-eth-l2xcbase-eth-2vhostvr256-1vm-ndrpdr +| | [Tags] | 1518B | 4C +| | framesize=${1518} | phy_cores=${4} + +| tc07-9000B-1c-eth-l2xcbase-eth-2vhostvr256-1vm-ndrpdr +| | [Tags] | 9000B | 1C +| | framesize=${9000} | phy_cores=${1} + +| tc08-9000B-2c-eth-l2xcbase-eth-2vhostvr256-1vm-ndrpdr +| | [Tags] | 9000B | 2C +| | framesize=${9000} | phy_cores=${2} + +| tc09-9000B-4c-eth-l2xcbase-eth-2vhostvr256-1vm-ndrpdr +| | [Tags] | 9000B | 4C +| | framesize=${9000} | phy_cores=${4} + +| tc10-IMIX-1c-eth-l2xcbase-eth-2vhostvr256-1vm-ndrpdr +| | [Tags] | IMIX | 1C +| | framesize=IMIX_v4_1 | phy_cores=${1} + +| tc11-IMIX-2c-eth-l2xcbase-eth-2vhostvr256-1vm-ndrpdr +| | [Tags] | IMIX | 2C +| | framesize=IMIX_v4_1 | phy_cores=${2} + +| tc12-IMIX-4c-eth-l2xcbase-eth-2vhostvr256-1vm-ndrpdr +| | [Tags] | IMIX | 4C +| | framesize=IMIX_v4_1 | phy_cores=${4} diff --git a/tests/vpp/perf/vm_vhost/10ge2p1x710-eth-l2xcbase-eth-4vhostvr1024-2vm-mrr.robot b/tests/vpp/perf/vm_vhost/10ge2p1x710-eth-l2xcbase-eth-4vhostvr1024-2vm-mrr.robot index 37ab60e039..b1b54ff6af 100644 --- a/tests/vpp/perf/vm_vhost/10ge2p1x710-eth-l2xcbase-eth-4vhostvr1024-2vm-mrr.robot +++ b/tests/vpp/perf/vm_vhost/10ge2p1x710-eth-l2xcbase-eth-4vhostvr1024-2vm-mrr.robot @@ -27,7 +27,7 @@ | ... | dut1_node=${dut1} | dut1_vm_refs=${dut1_vm_refs} | ... | dut2_node=${dut2} | dut2_vm_refs=${dut2_vm_refs} | ... -| Test Template | Local template +| Test Template | Local Template | ... | Documentation | *Raw results L2XC test cases with vhost* | ... @@ -62,7 +62,7 @@ | ${traffic_profile}= | trex-sl-3n-ethip4-ip4src254 *** Keywords *** -| Local template +| Local Template | | [Documentation] | | ... | [Cfg] DUT runs L2XC switching config. | | ... | Each DUT uses ${phy_cores} physical core(s) for worker threads. @@ -77,72 +77,67 @@ | | ... | | [Arguments] | ${framesize} | ${phy_cores} | ${rxq}=${None} | | ... -| | Set Test Variable | ${framesize} -| | ${get_framesize}= | Get Frame Size | ${framesize} -| | ${max_rate}= | Calculate pps | ${s_limit} | ${get_framesize} | | ${dut1_vm_refs}= | Create Dictionary | | ${dut2_vm_refs}= | Create Dictionary | | Set Test Variable | ${dut1_vm_refs} | | Set Test Variable | ${dut2_vm_refs} -| | ${jumbo_frames}= | Set Variable If | ${get_framesize} < ${1522} -| | ... | ${False} | ${True} -| | Set Test Variable | ${jumbo_frames} | | ... | | Given Add worker threads and rxqueues to all DUTs | ${phy_cores} | ${rxq} | | And Add PCI devices to all DUTs -| | And Run Keyword If | ${get_framesize} < ${1522} -| | ... | Add no multi seg to all DUTs +| | ${max_rate} | ${jumbo} = | Get Max Rate And Jumbo And Handle Multi Seg +| | ... | ${s_limit} | ${framesize} | | And Apply startup configuration on all VPP DUTs | | When Initialize L2 xconnect with Vhost-User for '2' in 3-node circular topology +| | Set Test Variable | \${jumbo_frames} | ${jumbo} | | And Configure '2' guest VMs with dpdk-testpmd connected via vhost-user in 3-node circular topology | | Then Traffic should pass with maximum rate | | ... | ${max_rate}pps | ${framesize} | ${traffic_profile} *** Test Cases *** -| tc01-64B-1t1c-eth-l2xcbase-eth-4vhostvr1024-2vm-ndrdisc-mrr +| tc01-64B-1c-eth-l2xcbase-eth-4vhostvr1024-2vm-mrr | | [Tags] | 64B | 1C | | framesize=${64} | phy_cores=${1} -| tc02-1518B-1t1c-eth-l2xcbase-eth-4vhostvr1024-2vm-ndrdisc-mrr -| | [Tags] | 1518B | 1C -| | framesize=${1518} | phy_cores=${1} - -| tc03-9000B-1t1c-eth-l2xcbase-eth-4vhostvr1024-2vm-ndrdisc-mrr -| | [Tags] | 9000B | 1C -| | framesize=${9000} | phy_cores=${1} - -| tc04-IMIX-1t1c-eth-l2xcbase-eth-4vhostvr1024-2vm-ndrdisc-mrr -| | [Tags] | IMIX | 1C -| | framesize=IMIX_v4_1 | phy_cores=${1} - -| tc05-64B-2t2c-eth-l2xcbase-eth-4vhostvr1024-2vm-ndrdisc-mrr +| tc02-64B-2c-eth-l2xcbase-eth-4vhostvr1024-2vm-mrr | | [Tags] | 64B | 2C | | framesize=${64} | phy_cores=${2} -| tc06-1518B-2t2c-eth-l2xcbase-eth-4vhostvr1024-2vm-ndrdisc-mrr -| | [Tags] | 1518B | 2C -| | framesize=${1518} | phy_cores=${2} - -| tc07-9000B-2t2c-eth-l2xcbase-eth-4vhostvr1024-2vm-ndrdisc-mrr -| | [Tags] | 9000B | 2C -| | framesize=${9000} | phy_cores=${2} - -| tc08-IMIX-2t2c-eth-l2xcbase-eth-4vhostvr1024-2vm-ndrdisc-mrr -| | [Tags] | IMIX | 2C -| | framesize=IMIX_v4_1 | phy_cores=${2} - -| tc09-64B-4t4c-eth-l2xcbase-eth-4vhostvr1024-2vm-ndrdisc-mrr +| tc03-64B-4c-eth-l2xcbase-eth-4vhostvr1024-2vm-mrr | | [Tags] | 64B | 4C | | framesize=${64} | phy_cores=${4} -| tc10-1518B-4t4c-eth-l2xcbase-eth-4vhostvr1024-2vm-ndrdisc-mrr +| tc04-1518B-1c-eth-l2xcbase-eth-4vhostvr1024-2vm-mrr +| | [Tags] | 1518B | 1C +| | framesize=${1518} | phy_cores=${1} + +| tc05-1518B-2c-eth-l2xcbase-eth-4vhostvr1024-2vm-mrr +| | [Tags] | 1518B | 2C +| | framesize=${1518} | phy_cores=${2} + +| tc06-1518B-4c-eth-l2xcbase-eth-4vhostvr1024-2vm-mrr | | [Tags] | 1518B | 4C | | framesize=${1518} | phy_cores=${4} -| tc11-9000B-4t4c-eth-l2xcbase-eth-4vhostvr1024-2vm-ndrdisc-mrr +| tc07-9000B-1c-eth-l2xcbase-eth-4vhostvr1024-2vm-mrr +| | [Tags] | 9000B | 1C +| | framesize=${9000} | phy_cores=${1} + +| tc08-9000B-2c-eth-l2xcbase-eth-4vhostvr1024-2vm-mrr +| | [Tags] | 9000B | 2C +| | framesize=${9000} | phy_cores=${2} + +| tc09-9000B-4c-eth-l2xcbase-eth-4vhostvr1024-2vm-mrr | | [Tags] | 9000B | 4C | | framesize=${9000} | phy_cores=${4} -| tc12-IMIX-4t4c-eth-l2xcbase-eth-4vhostvr1024-2vm-ndrdisc-mrr +| tc10-IMIX-1c-eth-l2xcbase-eth-4vhostvr1024-2vm-mrr +| | [Tags] | IMIX | 1C +| | framesize=IMIX_v4_1 | phy_cores=${1} + +| tc11-IMIX-2c-eth-l2xcbase-eth-4vhostvr1024-2vm-mrr +| | [Tags] | IMIX | 2C +| | framesize=IMIX_v4_1 | phy_cores=${2} + +| tc12-IMIX-4c-eth-l2xcbase-eth-4vhostvr1024-2vm-mrr | | [Tags] | IMIX | 4C | | framesize=IMIX_v4_1 | phy_cores=${4} diff --git a/tests/vpp/perf/vm_vhost/10ge2p1x710-eth-l2xcbase-eth-4vhostvr1024-2vm-ndrpdr.robot b/tests/vpp/perf/vm_vhost/10ge2p1x710-eth-l2xcbase-eth-4vhostvr1024-2vm-ndrpdr.robot new file mode 100644 index 0000000000..988d2068b4 --- /dev/null +++ b/tests/vpp/perf/vm_vhost/10ge2p1x710-eth-l2xcbase-eth-4vhostvr1024-2vm-ndrpdr.robot @@ -0,0 +1,148 @@ +# Copyright (c) 2018 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 | NDRPDR +| ... | NIC_Intel-X710 | ETH | L2XCFWD | BASE | VHOST | 2VM | VHOST_1024 +| ... +| Suite Setup | Set up 3-node performance topology with DUT's NIC model +| ... | L2 | Intel-X710 +| 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} +| ... +| Test Template | Local Template +| ... +| Documentation | *RFC2544: Pkt 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- +| ... | connects. Qemu Guests are connected to VPP via vhost-user interfaces. +| ... | Guests are running DPDK testpmd interconnecting vhost-user interfaces +| ... | using 5 cores pinned to cpus 6-10 and 11-15 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=1024, +| ... | burst=64. DUT1, DUT2 are tested with 2p10GE NIC X710 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 MLRsearch library. +| ... | Test packets are generated by TG on links to DUTs. TG traffic profile +| ... | contains two L3 flow-groups (flow-group per direction, 254 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. + +*** Variables *** +| ${perf_qemu_qsz}= | 1024 +#CPU settings +| ${system_cpus}= | ${1} +| ${vpp_cpus}= | ${5} +| ${vm_cpus}= | ${5} +# X710 bandwidth limit +| ${s_limit}= | ${10000000000} +# Traffic profile: +| ${traffic_profile}= | trex-sl-3n-ethip4-ip4src254 + +*** Keywords *** +| Local Template +| | [Documentation] +| | ... | [Cfg] DUT runs L2XC switching config. +| | ... | Each DUT uses ${phy_cores} physical core(s) for worker threads. +| | ... | [Ver] Measure NDR and PDR values using MLRsearch algorithm.\ +| | ... +| | ... | *Arguments:* +| | ... | - framesize - Framesize in Bytes in integer or string (IMIX_v4_1). +| | ... | Type: integer, string +| | ... | - phy_cores - Number of physical cores. Type: integer +| | ... | - rxq - Number of RX queues, default value: ${None}. Type: integer +| | ... +| | [Arguments] | ${framesize} | ${phy_cores} | ${rxq}=${None} +| | ... +| | Set Test Variable | ${framesize} +| | Set Test Variable | ${min_rate} | ${10000} +| | ${dut1_vm_refs}= | Create Dictionary +| | ${dut2_vm_refs}= | Create Dictionary +| | Set Test Variable | ${dut1_vm_refs} +| | Set Test Variable | ${dut2_vm_refs} +| | ... +| | Given Add worker threads and rxqueues to all DUTs | ${phy_cores} | ${rxq} +| | And Add PCI devices to all DUTs +| | ${max_rate} | ${jumbo} = | Get Max Rate And Jumbo And Handle Multi Seg +| | ... | ${s_limit} | ${framesize} +| | And Apply startup configuration on all VPP DUTs +| | When Initialize L2 xconnect with Vhost-User for '2' in 3-node circular topology +| | Set Test Variable | \${jumbo_frames} | ${jumbo} +| | And Configure '2' guest VMs with dpdk-testpmd connected via vhost-user in 3-node circular topology +| | Then Find NDR and PDR intervals using optimized search +| | ... | ${framesize} | ${traffic_profile} | ${min_rate} | ${max_rate} + +*** Test Cases *** +| tc01-64B-1c-eth-l2xcbase-eth-4vhostvr1024-2vm-ndrpdr +| | [Tags] | 64B | 1C +| | framesize=${64} | phy_cores=${1} + +| tc02-64B-2c-eth-l2xcbase-eth-4vhostvr1024-2vm-ndrpdr +| | [Tags] | 64B | 2C +| | framesize=${64} | phy_cores=${2} + +| tc03-64B-4c-eth-l2xcbase-eth-4vhostvr1024-2vm-ndrpdr +| | [Tags] | 64B | 4C +| | framesize=${64} | phy_cores=${4} + +| tc04-1518B-1c-eth-l2xcbase-eth-4vhostvr1024-2vm-ndrpdr +| | [Tags] | 1518B | 1C +| | framesize=${1518} | phy_cores=${1} + +| tc05-1518B-2c-eth-l2xcbase-eth-4vhostvr1024-2vm-ndrpdr +| | [Tags] | 1518B | 2C +| | framesize=${1518} | phy_cores=${2} + +| tc06-1518B-4c-eth-l2xcbase-eth-4vhostvr1024-2vm-ndrpdr +| | [Tags] | 1518B | 4C +| | framesize=${1518} | phy_cores=${4} + +| tc07-9000B-1c-eth-l2xcbase-eth-4vhostvr1024-2vm-ndrpdr +| | [Tags] | 9000B | 1C +| | framesize=${9000} | phy_cores=${1} + +| tc08-9000B-2c-eth-l2xcbase-eth-4vhostvr1024-2vm-ndrpdr +| | [Tags] | 9000B | 2C +| | framesize=${9000} | phy_cores=${2} + +| tc09-9000B-4c-eth-l2xcbase-eth-4vhostvr1024-2vm-ndrpdr +| | [Tags] | 9000B | 4C +| | framesize=${9000} | phy_cores=${4} + +| tc10-IMIX-1c-eth-l2xcbase-eth-4vhostvr1024-2vm-ndrpdr +| | [Tags] | IMIX | 1C +| | framesize=IMIX_v4_1 | phy_cores=${1} + +| tc11-IMIX-2c-eth-l2xcbase-eth-4vhostvr1024-2vm-ndrpdr +| | [Tags] | IMIX | 2C +| | framesize=IMIX_v4_1 | phy_cores=${2} + +| tc12-IMIX-4c-eth-l2xcbase-eth-4vhostvr1024-2vm-ndrpdr +| | [Tags] | IMIX | 4C +| | framesize=IMIX_v4_1 | phy_cores=${4} diff --git a/tests/vpp/perf/vm_vhost/10ge2p1x710-ethip4-ip4base-eth-2vhostvr1024-1vm-mrr.robot b/tests/vpp/perf/vm_vhost/10ge2p1x710-ethip4-ip4base-eth-2vhostvr1024-1vm-mrr.robot index 5129b9a5f1..38d00f913c 100644 --- a/tests/vpp/perf/vm_vhost/10ge2p1x710-ethip4-ip4base-eth-2vhostvr1024-1vm-mrr.robot +++ b/tests/vpp/perf/vm_vhost/10ge2p1x710-ethip4-ip4base-eth-2vhostvr1024-1vm-mrr.robot @@ -27,7 +27,7 @@ | ... | dut1_node=${dut1} | dut1_vm_refs=${dut1_vm_refs} | ... | dut2_node=${dut2} | dut2_vm_refs=${dut2_vm_refs} | ... -| Test Template | Local template +| Test Template | Local Template | ... | Documentation | *Raw results IPv4 test cases with vhost* | ... @@ -64,7 +64,7 @@ | ${traffic_profile} | trex-sl-3n-ethip4-ip4src253 *** Keywords *** -| Local template +| Local Template | | [Documentation] | | ... | [Cfg] DUT runs IPv4 routing config. | | ... | Each DUT uses ${phy_cores} physical core(s) for worker threads. @@ -79,79 +79,74 @@ | | ... | | [Arguments] | ${framesize} | ${phy_cores} | ${rxq}=${None} | | ... -| | Set Test Variable | ${framesize} -| | ${get_framesize}= | Get Frame Size | ${framesize} -| | ${max_rate}= | Calculate pps | ${s_limit} | ${framesize} | | ${dut1_vm_refs}= | Create Dictionary | | ${dut2_vm_refs}= | Create Dictionary | | Set Test Variable | ${dut1_vm_refs} | | Set Test Variable | ${dut2_vm_refs} -| | ${jumbo_frames}= | Set Variable If | ${get_framesize} < ${1522} -| | ... | ${False} | ${True} | | ... | | Given Add worker threads and rxqueues to all DUTs | ${phy_cores} | ${rxq} | | And Add PCI devices to all DUTs -| | And Run Keyword If | ${get_framesize} < ${1522} -| | ... | Add no multi seg to all DUTs +| | ${max_rate} | ${jumbo} = | Get Max Rate And Jumbo And Handle Multi Seg +| | ... | ${s_limit} | ${framesize} | | 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} | jumbo_frames=${jumbo_frames} +| | ... | ${dut1_vif2_mac} | jumbo_frames=${jumbo} | | 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} | jumbo_frames=${jumbo_frames} +| | ... | ${dut2_vif2_mac} | jumbo_frames=${jumbo} | | Set To Dictionary | ${dut2_vm_refs} | DUT2_VM1 | ${vm2} | | Then Traffic should pass with maximum rate | | ... | ${max_rate}pps | ${framesize} | ${traffic_profile} *** Test Cases *** -| tc01-64B-1t1c-ethip4-ip4base-eth-2vhostvr1024-1vm-mrr +| tc01-64B-1c-ethip4-ip4base-eth-2vhostvr1024-1vm-mrr | | [Tags] | 64B | 1C | | framesize=${64} | phy_cores=${1} -| tc02-1518B-1t1c-ethip4-ip4base-eth-2vhostvr1024-1vm-mrr -| | [Tags] | 1518B | 1C -| | framesize=${1518} | phy_cores=${1} - -| tc03-9000B-1t1c-ethip4-ip4base-eth-2vhostvr1024-1vm-mrr -| | [Tags] | 9000B | 1C -| | framesize=${9000} | phy_cores=${1} - -| tc04-IMIX-1t1c-ethip4-ip4base-eth-2vhostvr1024-1vm-mrr -| | [Tags] | IMIX | 1C -| | framesize=IMIX_v4_1 | phy_cores=${1} - -| tc05-64B-2t2c-ethip4-ip4base-eth-2vhostvr1024-1vm-mrr +| tc02-64B-2c-ethip4-ip4base-eth-2vhostvr1024-1vm-mrr | | [Tags] | 64B | 2C | | framesize=${64} | phy_cores=${2} -| tc06-1518B-2t2c-ethip4-ip4base-eth-2vhostvr1024-1vm-mrr -| | [Tags] | 1518B | 2C -| | framesize=${1518} | phy_cores=${2} - -| tc07-9000B-2t2c-ethip4-ip4base-eth-2vhostvr1024-1vm-mrr -| | [Tags] | 9000B | 2C -| | framesize=${9000} | phy_cores=${2} - -| tc08-IMIX-2t2c-ethip4-ip4base-eth-2vhostvr1024-1vm-mrr -| | [Tags] | IMIX | 2C -| | framesize=IMIX_v4_1 | phy_cores=${2} - -| tc09-64B-4t4c-ethip4-ip4base-eth-2vhostvr1024-1vm-mrr +| tc03-64B-4c-ethip4-ip4base-eth-2vhostvr1024-1vm-mrr | | [Tags] | 64B | 4C | | framesize=${64} | phy_cores=${4} -| tc10-1518B-4t4c-ethip4-ip4base-eth-2vhostvr1024-1vm-mrr +| tc04-1518B-1c-ethip4-ip4base-eth-2vhostvr1024-1vm-mrr +| | [Tags] | 1518B | 1C +| | framesize=${1518} | phy_cores=${1} + +| tc05-1518B-2c-ethip4-ip4base-eth-2vhostvr1024-1vm-mrr +| | [Tags] | 1518B | 2C +| | framesize=${1518} | phy_cores=${2} + +| tc06-1518B-4c-ethip4-ip4base-eth-2vhostvr1024-1vm-mrr | | [Tags] | 1518B | 4C | | framesize=${1518} | phy_cores=${4} -| tc11-9000B-4t4c-ethip4-ip4base-eth-2vhostvr1024-1vm-mrr +| tc07-9000B-1c-ethip4-ip4base-eth-2vhostvr1024-1vm-mrr +| | [Tags] | 9000B | 1C +| | framesize=${9000} | phy_cores=${1} + +| tc08-9000B-2c-ethip4-ip4base-eth-2vhostvr1024-1vm-mrr +| | [Tags] | 9000B | 2C +| | framesize=${9000} | phy_cores=${2} + +| tc09-9000B-4c-ethip4-ip4base-eth-2vhostvr1024-1vm-mrr | | [Tags] | 9000B | 4C | | framesize=${9000} | phy_cores=${4} -| tc12-IMIX-4t4c-ethip4-ip4base-eth-2vhostvr1024-1vm-mrr +| tc10-IMIX-1c-ethip4-ip4base-eth-2vhostvr1024-1vm-mrr +| | [Tags] | IMIX | 1C +| | framesize=IMIX_v4_1 | phy_cores=${1} + +| tc11-IMIX-2c-ethip4-ip4base-eth-2vhostvr1024-1vm-mrr +| | [Tags] | IMIX | 2C +| | framesize=IMIX_v4_1 | phy_cores=${2} + +| tc12-IMIX-4c-ethip4-ip4base-eth-2vhostvr1024-1vm-mrr | | [Tags] | IMIX | 4C | | framesize=IMIX_v4_1 | phy_cores=${4} diff --git a/tests/vpp/perf/vm_vhost/10ge2p1x710-ethip4-ip4base-eth-2vhostvr1024-1vm-ndrpdr.robot b/tests/vpp/perf/vm_vhost/10ge2p1x710-ethip4-ip4base-eth-2vhostvr1024-1vm-ndrpdr.robot new file mode 100644 index 0000000000..5a0081d36d --- /dev/null +++ b/tests/vpp/perf/vm_vhost/10ge2p1x710-ethip4-ip4base-eth-2vhostvr1024-1vm-ndrpdr.robot @@ -0,0 +1,157 @@ +# Copyright (c) 2018 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 | NDRPDR +| ... | NIC_Intel-X710 | ETH | IP4FWD | BASE | VHOST | 1VM | VHOST_1024 +| ... +| Suite Setup | Set up 3-node performance topology with DUT's NIC model +| ... | L3 | Intel-X710 +| 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} +| ... +| Test Template | Local Template +| ... +| Documentation | *RFC2544: Pkt throughput IPv4 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=1024, burst=64. DUT1, DUT2 are tested with 2p10GE +| ... | NIC X710 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 MLRsearch library. +| ... | 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. + +*** Variables *** +| ${perf_qemu_qsz}= | 1024 +# Socket names +| ${sock1}= | /tmp/sock-1 +| ${sock2}= | /tmp/sock-2 +# FIB tables +| ${fib_table_1}= | 100 +| ${fib_table_2}= | 101 +# X710 bandwidth limit +| ${s_limit}= | ${10000000000} +# Traffic profile: +| ${traffic_profile} | trex-sl-3n-ethip4-ip4src253 + +*** Keywords *** +| Local Template +| | [Documentation] +| | ... | [Cfg] DUT runs IPv4 routing config. +| | ... | Each DUT uses ${phy_cores} physical core(s) for worker threads. +| | ... | [Ver] Measure NDR and PDR values using MLRsearch algorithm.\ +| | ... +| | ... | *Arguments:* +| | ... | - framesize - Framesize in Bytes in integer or string (IMIX_v4_1). +| | ... | Type: integer, string +| | ... | - phy_cores - Number of physical cores. Type: integer +| | ... | - rxq - Number of RX queues, default value: ${None}. Type: integer +| | ... +| | [Arguments] | ${framesize} | ${phy_cores} | ${rxq}=${None} +| | ... +| | Set Test Variable | ${framesize} +| | Set Test Variable | ${min_rate} | ${10000} +| | ${dut1_vm_refs}= | Create Dictionary +| | ${dut2_vm_refs}= | Create Dictionary +| | Set Test Variable | ${dut1_vm_refs} +| | Set Test Variable | ${dut2_vm_refs} +| | ... +| | Given Add worker threads and rxqueues to all DUTs | ${phy_cores} | ${rxq} +| | And Add PCI devices to all DUTs +| | ${max_rate} | ${jumbo} = | Get Max Rate And Jumbo And Handle Multi Seg +| | ... | ${s_limit} | ${framesize} +| | 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} | jumbo_frames=${jumbo} +| | 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} | jumbo_frames=${jumbo} +| | Set To Dictionary | ${dut2_vm_refs} | DUT2_VM1 | ${vm2} +| | Then Find NDR and PDR intervals using optimized search +| | ... | ${framesize} | ${traffic_profile} | ${min_rate} | ${max_rate} + +*** Test Cases *** +| tc01-64B-1c-ethip4-ip4base-eth-2vhostvr1024-1vm-ndrpdr +| | [Tags] | 64B | 1C +| | framesize=${64} | phy_cores=${1} + +| tc02-64B-2c-ethip4-ip4base-eth-2vhostvr1024-1vm-ndrpdr +| | [Tags] | 64B | 2C +| | framesize=${64} | phy_cores=${2} + +| tc03-64B-4c-ethip4-ip4base-eth-2vhostvr1024-1vm-ndrpdr +| | [Tags] | 64B | 4C +| | framesize=${64} | phy_cores=${4} + +| tc04-1518B-1c-ethip4-ip4base-eth-2vhostvr1024-1vm-ndrpdr +| | [Tags] | 1518B | 1C +| | framesize=${1518} | phy_cores=${1} + +| tc05-1518B-2c-ethip4-ip4base-eth-2vhostvr1024-1vm-ndrpdr +| | [Tags] | 1518B | 2C +| | framesize=${1518} | phy_cores=${2} + +| tc06-1518B-4c-ethip4-ip4base-eth-2vhostvr1024-1vm-ndrpdr +| | [Tags] | 1518B | 4C +| | framesize=${1518} | phy_cores=${4} + +| tc07-9000B-1c-ethip4-ip4base-eth-2vhostvr1024-1vm-ndrpdr +| | [Tags] | 9000B | 1C +| | framesize=${9000} | phy_cores=${1} + +| tc08-9000B-2c-ethip4-ip4base-eth-2vhostvr1024-1vm-ndrpdr +| | [Tags] | 9000B | 2C +| | framesize=${9000} | phy_cores=${2} + +| tc09-9000B-4c-ethip4-ip4base-eth-2vhostvr1024-1vm-ndrpdr +| | [Tags] | 9000B | 4C +| | framesize=${9000} | phy_cores=${4} + +| tc10-IMIX-1c-ethip4-ip4base-eth-2vhostvr1024-1vm-ndrpdr +| | [Tags] | IMIX | 1C +| | framesize=IMIX_v4_1 | phy_cores=${1} + +| tc11-IMIX-2c-ethip4-ip4base-eth-2vhostvr1024-1vm-ndrpdr +| | [Tags] | IMIX | 2C +| | framesize=IMIX_v4_1 | phy_cores=${2} + +| tc12-IMIX-4c-ethip4-ip4base-eth-2vhostvr1024-1vm-ndrpdr +| | [Tags] | IMIX | 4C +| | framesize=IMIX_v4_1 | phy_cores=${4} diff --git a/tests/vpp/perf/vm_vhost/10ge2p1x710-ethip4-ip4base-eth-2vhostvr256-1vm-mrr.robot b/tests/vpp/perf/vm_vhost/10ge2p1x710-ethip4-ip4base-eth-2vhostvr256-1vm-mrr.robot index 594a110ee6..f493cf9aa8 100644 --- a/tests/vpp/perf/vm_vhost/10ge2p1x710-ethip4-ip4base-eth-2vhostvr256-1vm-mrr.robot +++ b/tests/vpp/perf/vm_vhost/10ge2p1x710-ethip4-ip4base-eth-2vhostvr256-1vm-mrr.robot @@ -27,7 +27,7 @@ | ... | dut1_node=${dut1} | dut1_vm_refs=${dut1_vm_refs} | ... | dut2_node=${dut2} | dut2_vm_refs=${dut2_vm_refs} | ... -| Test Template | Local template +| Test Template | Local Template | ... | Documentation | *Raw results IPv4 test cases with vhost* | ... @@ -64,7 +64,7 @@ | ${traffic_profile}= | trex-sl-3n-ethip4-ip4src253 *** Keywords *** -| Local template +| Local Template | | [Documentation] | | ... | [Cfg] DUT runs IPv4 routing config. | | ... | Each DUT uses ${phy_cores} physical core(s) for worker threads. @@ -79,79 +79,74 @@ | | ... | | [Arguments] | ${framesize} | ${phy_cores} | ${rxq}=${None} | | ... -| | Set Test Variable | ${framesize} -| | ${get_framesize}= | Get Frame Size | ${framesize} -| | ${max_rate}= | Calculate pps | ${s_limit} | ${get_framesize} | | ${dut1_vm_refs}= | Create Dictionary | | ${dut2_vm_refs}= | Create Dictionary | | Set Test Variable | ${dut1_vm_refs} | | Set Test Variable | ${dut2_vm_refs} -| | ${jumbo_frames}= | Set Variable If | ${get_framesize} < ${1522} -| | ... | ${False} | ${True} | | ... | | Given Add worker threads and rxqueues to all DUTs | ${phy_cores} | ${rxq} | | And Add PCI devices to all DUTs -| | And Run Keyword If | ${get_framesize} < ${1522} -| | ... | Add no multi seg to all DUTs +| | ${max_rate} | ${jumbo} = | Get Max Rate And Jumbo And Handle Multi Seg +| | ... | ${s_limit} | ${framesize} | | 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} | jumbo_frames=${jumbo_frames} +| | ... | ${dut1_vif2_mac} | jumbo_frames=${jumbo} | | 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} | jumbo_frames=${jumbo_frames} +| | ... | ${dut2_vif2_mac} | jumbo_frames=${jumbo} | | Set To Dictionary | ${dut2_vm_refs} | DUT2_VM1 | ${vm2} | | Then Traffic should pass with maximum rate | | ... | ${max_rate}pps | ${framesize} | ${traffic_profile} *** Test Cases *** -| tc01-64B-1t1c-ethip4-ip4base-eth-2vhostvr256-1vm-mrr +| tc01-64B-1c-ethip4-ip4base-eth-2vhostvr256-1vm-mrr | | [Tags] | 64B | 1C | | framesize=${64} | phy_cores=${1} -| tc02-1518B-1t1c-ethip4-ip4base-eth-2vhostvr256-1vm -| | [Tags] | 1518B | 1C -| | framesize=${1518} | phy_cores=${1} - -| tc03-9000B-1t1c-ethip4-ip4base-eth-2vhostvr256-1vm -| | [Tags] | 9000B | 1C -| | framesize=${9000} | phy_cores=${1} - -| tc04-IMIX-1t1c-ethip4-ip4base-eth-2vhostvr256-1vm-mrr -| | [Tags] | IMIX | 1C -| | framesize=IMIX_v4_1 | phy_cores=${1} - -| tc05-64B-2t2c-ethip4-ip4base-eth-2vhostvr256-1vm-mrr +| tc02-64B-2c-ethip4-ip4base-eth-2vhostvr256-1vm-mrr | | [Tags] | 64B | 2C | | framesize=${64} | phy_cores=${2} -| tc06-1518B-2t2c-ethip4-ip4base-eth-2vhostvr256-1vm-mrr -| | [Tags] | 1518B | 2C -| | framesize=${1518} | phy_cores=${2} - -| tc07-9000B-2t2c-ethip4-ip4base-eth-2vhostvr256-1vm-mrr -| | [Tags] | 9000B | 2C -| | framesize=${9000} | phy_cores=${2} - -| tc08-IMIX-2t2c-ethip4-ip4base-eth-2vhostvr256-1vm-mrr -| | [Tags] | IMIX | 2C -| | framesize=IMIX_v4_1 | phy_cores=${2} - -| tc09-64B-4t4c-ethip4-ip4base-eth-2vhostvr256-1vm-mrr +| tc03-64B-4c-ethip4-ip4base-eth-2vhostvr256-1vm-mrr | | [Tags] | 64B | 4C | | framesize=${64} | phy_cores=${4} -| tc10-1518B-4t4c-ethip4-ip4base-eth-2vhostvr256-1vm-mrr +| tc04-1518B-1c-ethip4-ip4base-eth-2vhostvr256-1vm-mrr +| | [Tags] | 1518B | 1C +| | framesize=${1518} | phy_cores=${1} + +| tc05-1518B-2c-ethip4-ip4base-eth-2vhostvr256-1vm-mrr +| | [Tags] | 1518B | 2C +| | framesize=${1518} | phy_cores=${2} + +| tc06-1518B-4c-ethip4-ip4base-eth-2vhostvr256-1vm-mrr | | [Tags] | 1518B | 4C | | framesize=${1518} | phy_cores=${4} -| tc11-9000B-4t4c-ethip4-ip4base-eth-2vhostvr256-1vm-mrr +| tc07-9000B-1c-ethip4-ip4base-eth-2vhostvr256-1vm-mrr +| | [Tags] | 9000B | 1C +| | framesize=${9000} | phy_cores=${1} + +| tc08-9000B-2c-ethip4-ip4base-eth-2vhostvr256-1vm-mrr +| | [Tags] | 9000B | 2C +| | framesize=${9000} | phy_cores=${2} + +| tc09-9000B-4c-ethip4-ip4base-eth-2vhostvr256-1vm-mrr | | [Tags] | 9000B | 4C | | framesize=${9000} | phy_cores=${4} -| tc12-IMIX-4t4c-ethip4-ip4base-eth-2vhostvr256-1vm-mrr +| tc10-IMIX-1c-ethip4-ip4base-eth-2vhostvr256-1vm-mrr +| | [Tags] | IMIX | 1C +| | framesize=IMIX_v4_1 | phy_cores=${1} + +| tc11-IMIX-2c-ethip4-ip4base-eth-2vhostvr256-1vm-mrr +| | [Tags] | IMIX | 2C +| | framesize=IMIX_v4_1 | phy_cores=${2} + +| tc12-IMIX-4c-ethip4-ip4base-eth-2vhostvr256-1vm-mrr | | [Tags] | IMIX | 4C | | framesize=IMIX_v4_1 | phy_cores=${4} diff --git a/tests/vpp/perf/vm_vhost/10ge2p1x710-ethip4-ip4base-eth-2vhostvr256-1vm-ndrpdr.robot b/tests/vpp/perf/vm_vhost/10ge2p1x710-ethip4-ip4base-eth-2vhostvr256-1vm-ndrpdr.robot new file mode 100644 index 0000000000..e706751f01 --- /dev/null +++ b/tests/vpp/perf/vm_vhost/10ge2p1x710-ethip4-ip4base-eth-2vhostvr256-1vm-ndrpdr.robot @@ -0,0 +1,157 @@ +# Copyright (c) 2018 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 | NDRPDR +| ... | NIC_Intel-X710 | ETH | IP4FWD | BASE | VHOST | 1VM | VHOST_256 +| ... +| Suite Setup | Set up 3-node performance topology with DUT's NIC model +| ... | L3 | Intel-X710 +| 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} +| ... +| Test Template | Local Template +| ... +| Documentation | *RFC2544: Pkt throughput IPv4 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 X710 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 MLRsearch library. +| ... | 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. + +*** Variables *** +| ${perf_qemu_qsz}= | 256 +# Socket names +| ${sock1}= | /tmp/sock-1-1 +| ${sock2}= | /tmp/sock-1-2 +# FIB tables +| ${fib_table_1}= | 100 +| ${fib_table_2}= | 101 +# X710 bandwidth limit +| ${s_limit}= | ${10000000000} +# Traffic profile: +| ${traffic_profile}= | trex-sl-3n-ethip4-ip4src253 + +*** Keywords *** +| Local Template +| | [Documentation] +| | ... | [Cfg] DUT runs IPv4 routing config. +| | ... | Each DUT uses ${phy_cores} physical core(s) for worker threads. +| | ... | [Ver] Measure NDR and PDR values using MLRsearch algorithm.\ +| | ... +| | ... | *Arguments:* +| | ... | - framesize - Framesize in Bytes in integer or string (IMIX_v4_1). +| | ... | Type: integer, string +| | ... | - phy_cores - Number of physical cores. Type: integer +| | ... | - rxq - Number of RX queues, default value: ${None}. Type: integer +| | ... +| | [Arguments] | ${framesize} | ${phy_cores} | ${rxq}=${None} +| | ... +| | Set Test Variable | ${framesize} +| | Set Test Variable | ${min_rate} | ${10000} +| | ${dut1_vm_refs}= | Create Dictionary +| | ${dut2_vm_refs}= | Create Dictionary +| | Set Test Variable | ${dut1_vm_refs} +| | Set Test Variable | ${dut2_vm_refs} +| | ... +| | Given Add worker threads and rxqueues to all DUTs | ${phy_cores} | ${rxq} +| | And Add PCI devices to all DUTs +| | ${max_rate} | ${jumbo} = | Get Max Rate And Jumbo And Handle Multi Seg +| | ... | ${s_limit} | ${framesize} +| | 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} | jumbo_frames=${jumbo} +| | 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} | jumbo_frames=${jumbo} +| | Set To Dictionary | ${dut2_vm_refs} | DUT2_VM1 | ${vm2} +| | Then Find NDR and PDR intervals using optimized search +| | ... | ${framesize} | ${traffic_profile} | ${min_rate} | ${max_rate} + +*** Test Cases *** +| tc01-64B-1c-ethip4-ip4base-eth-2vhostvr256-1vm-ndrpdr +| | [Tags] | 64B | 1C +| | framesize=${64} | phy_cores=${1} + +| tc02-64B-2c-ethip4-ip4base-eth-2vhostvr256-1vm-ndrpdr +| | [Tags] | 64B | 2C +| | framesize=${64} | phy_cores=${2} + +| tc03-64B-4c-ethip4-ip4base-eth-2vhostvr256-1vm-ndrpdr +| | [Tags] | 64B | 4C +| | framesize=${64} | phy_cores=${4} + +| tc04-1518B-1c-ethip4-ip4base-eth-2vhostvr256-1vm-ndrpdr +| | [Tags] | 1518B | 1C +| | framesize=${1518} | phy_cores=${1} + +| tc05-1518B-2c-ethip4-ip4base-eth-2vhostvr256-1vm-ndrpdr +| | [Tags] | 1518B | 2C +| | framesize=${1518} | phy_cores=${2} + +| tc06-1518B-4c-ethip4-ip4base-eth-2vhostvr256-1vm-ndrpdr +| | [Tags] | 1518B | 4C +| | framesize=${1518} | phy_cores=${4} + +| tc07-9000B-1c-ethip4-ip4base-eth-2vhostvr256-1vm-ndrpdr +| | [Tags] | 9000B | 1C +| | framesize=${9000} | phy_cores=${1} + +| tc08-9000B-2c-ethip4-ip4base-eth-2vhostvr256-1vm-ndrpdr +| | [Tags] | 9000B | 2C +| | framesize=${9000} | phy_cores=${2} + +| tc09-9000B-4c-ethip4-ip4base-eth-2vhostvr256-1vm-ndrpdr +| | [Tags] | 9000B | 4C +| | framesize=${9000} | phy_cores=${4} + +| tc10-IMIX-1c-ethip4-ip4base-eth-2vhostvr256-1vm-ndrpdr +| | [Tags] | IMIX | 1C +| | framesize=IMIX_v4_1 | phy_cores=${1} + +| tc11-IMIX-2c-ethip4-ip4base-eth-2vhostvr256-1vm-ndrpdr +| | [Tags] | IMIX | 2C +| | framesize=IMIX_v4_1 | phy_cores=${2} + +| tc12-IMIX-4c-ethip4-ip4base-eth-2vhostvr256-1vm-ndrpdr +| | [Tags] | IMIX | 4C +| | framesize=IMIX_v4_1 | phy_cores=${4} diff --git a/tests/vpp/perf/vm_vhost/10ge2p1x710-ethip4-ip4base-eth-4vhostvr1024-2vm-mrr.robot b/tests/vpp/perf/vm_vhost/10ge2p1x710-ethip4-ip4base-eth-4vhostvr1024-2vm-mrr.robot index d67e1f4af0..664f4344a6 100644 --- a/tests/vpp/perf/vm_vhost/10ge2p1x710-ethip4-ip4base-eth-4vhostvr1024-2vm-mrr.robot +++ b/tests/vpp/perf/vm_vhost/10ge2p1x710-ethip4-ip4base-eth-4vhostvr1024-2vm-mrr.robot @@ -27,7 +27,7 @@ | ... | dut1_node=${dut1} | dut1_vm_refs=${dut1_vm_refs} | ... | dut2_node=${dut2} | dut2_vm_refs=${dut2_vm_refs} | ... -| Test Template | Local template +| Test Template | Local Template | ... | Documentation | *Raw results IPv4 test cases with vhost* | ... @@ -68,7 +68,7 @@ | ${traffic_profile}= | trex-sl-3n-ethip4-ip4src253 *** Keywords *** -| Local template +| Local Template | | [Documentation] | | ... | [Cfg] DUT runs IPv4 routing config. | | ... | Each DUT uses ${phy_cores} physical core(s) for worker threads. @@ -83,72 +83,67 @@ | | ... | | [Arguments] | ${framesize} | ${phy_cores} | ${rxq}=${None} | | ... -| | Set Test Variable | ${framesize} -| | ${get_framesize}= | Get Frame Size | ${framesize} -| | ${max_rate}= | Calculate pps | ${s_limit} | ${framesize} | | ${dut1_vm_refs}= | Create Dictionary | | ${dut2_vm_refs}= | Create Dictionary | | Set Test Variable | ${dut1_vm_refs} | | Set Test Variable | ${dut2_vm_refs} -| | ${jumbo_frames}= | Set Variable If | ${get_framesize} < ${1522} -| | ... | ${False} | ${True} -| | Set Test Variable | ${jumbo_frames} | | ... | | Given Add worker threads and rxqueues to all DUTs | ${phy_cores} | ${rxq} | | And Add PCI devices to all DUTs -| | And Run Keyword If | ${get_framesize} < ${1522} -| | ... | Add no multi seg to all DUTs +| | ${max_rate} | ${jumbo} = | Get Max Rate And Jumbo And Handle Multi Seg +| | ... | ${s_limit} | ${framesize} | | And Apply startup configuration on all VPP DUTs | | When Initialize IPv4 forwarding with vhost for '2' VMs in 3-node circular topology +| | Set Test Variable | \${jumbo_frames} | ${jumbo} | | And Configure '2' guest VMs with dpdk-testpmd-mac connected via vhost-user in 3-node circular topology | | Then Traffic should pass with maximum rate | | ... | ${max_rate}pps | ${framesize} | ${traffic_profile} *** Test Cases *** -| tc01-64B-1t1c-ethip4-ip4base-eth-4vhostvr1024-2vm-mrr +| tc01-64B-1c-ethip4-ip4base-eth-4vhostvr1024-2vm-mrr | | [Tags] | 64B | 1C | | framesize=${64} | phy_cores=${1} -| tc02-1518B-1t1c-ethip4-ip4base-eth-4vhostvr1024-2vm-mrr -| | [Tags] | 1518B | 1C -| | framesize=${1518} | phy_cores=${1} - -| tc03-9000B-1t1c-ethip4-ip4base-eth-4vhostvr1024-2vm-mrr -| | [Tags] | 9000B | 1C -| | framesize=${9000} | phy_cores=${1} - -| tc04-IMIX-1t1c-ethip4-ip4base-eth-4vhostvr1024-2vm-mrr -| | [Tags] | IMIX | 1C -| | framesize=IMIX_v4_1 | phy_cores=${1} - -| tc05-64B-2t2c-ethip4-ip4base-eth-4vhostvr1024-2vm-mrr +| tc02-64B-2c-ethip4-ip4base-eth-4vhostvr1024-2vm-mrr | | [Tags] | 64B | 2C | | framesize=${64} | phy_cores=${2} -| tc06-1518B-2t2c-ethip4-ip4base-eth-4vhostvr1024-2vm-mrr -| | [Tags] | 1518B | 2C -| | framesize=${1518} | phy_cores=${2} - -| tc07-9000B-2t2c-ethip4-ip4base-eth-4vhostvr1024-2vm-mrr -| | [Tags] | 9000B | 2C -| | framesize=${9000} | phy_cores=${2} - -| tc08-IMIX-2t2c-ethip4-ip4base-eth-4vhostvr1024-2vm-mrr -| | [Tags] | IMIX | 2C -| | framesize=IMIX_v4_1 | phy_cores=${2} - -| tc09-64B-4t4c-ethip4-ip4base-eth-4vhostvr1024-2vm-mrr +| tc03-64B-4c-ethip4-ip4base-eth-4vhostvr1024-2vm-mrr | | [Tags] | 64B | 4C | | framesize=${64} | phy_cores=${4} -| tc10-1518B-4t4c-ethip4-ip4base-eth-4vhostvr1024-2vm-mrr +| tc04-1518B-1c-ethip4-ip4base-eth-4vhostvr1024-2vm-mrr +| | [Tags] | 1518B | 1C +| | framesize=${1518} | phy_cores=${1} + +| tc05-1518B-2c-ethip4-ip4base-eth-4vhostvr1024-2vm-mrr +| | [Tags] | 1518B | 2C +| | framesize=${1518} | phy_cores=${2} + +| tc06-1518B-4c-ethip4-ip4base-eth-4vhostvr1024-2vm-mrr | | [Tags] | 1518B | 4C | | framesize=${1518} | phy_cores=${4} -| tc11-9000B-4t4c-ethip4-ip4base-eth-4vhostvr1024-2vm-mrr +| tc07-9000B-1c-ethip4-ip4base-eth-4vhostvr1024-2vm-mrr +| | [Tags] | 9000B | 1C +| | framesize=${9000} | phy_cores=${1} + +| tc08-9000B-2c-ethip4-ip4base-eth-4vhostvr1024-2vm-mrr +| | [Tags] | 9000B | 2C +| | framesize=${9000} | phy_cores=${2} + +| tc09-9000B-4c-ethip4-ip4base-eth-4vhostvr1024-2vm-mrr | | [Tags] | 9000B | 4C | | framesize=${9000} | phy_cores=${4} -| tc12-IMIX-4t4c-ethip4-ip4base-eth-4vhostvr1024-2vm-mrr +| tc10-IMIX-1c-ethip4-ip4base-eth-4vhostvr1024-2vm-mrr +| | [Tags] | IMIX | 1C +| | framesize=IMIX_v4_1 | phy_cores=${1} + +| tc11-IMIX-2c-ethip4-ip4base-eth-4vhostvr1024-2vm-mrr +| | [Tags] | IMIX | 2C +| | framesize=IMIX_v4_1 | phy_cores=${2} + +| tc12-IMIX-4c-ethip4-ip4base-eth-4vhostvr1024-2vm-mrr | | [Tags] | IMIX | 4C | | framesize=IMIX_v4_1 | phy_cores=${4} diff --git a/tests/vpp/perf/vm_vhost/10ge2p1x710-ethip4-ip4base-eth-4vhostvr1024-2vm-ndrpdr.robot b/tests/vpp/perf/vm_vhost/10ge2p1x710-ethip4-ip4base-eth-4vhostvr1024-2vm-ndrpdr.robot new file mode 100644 index 0000000000..742fbf30e3 --- /dev/null +++ b/tests/vpp/perf/vm_vhost/10ge2p1x710-ethip4-ip4base-eth-4vhostvr1024-2vm-ndrpdr.robot @@ -0,0 +1,154 @@ +# Copyright (c) 2018 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 | NDRPDR +| ... | NIC_Intel-X710 | ETH | IP4FWD | BASE | VHOST | 2VM | VHOST_1024 +| ... +| Suite Setup | Set up 3-node performance topology with DUT's NIC model +| ... | L3 | Intel-X710 +| 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} +| ... +| Test Template | Local Template +| ... +| Documentation | *RFC2544: Pkt throughput IPv4 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 Guests are connected +| ... | to VPP via vhost-user interfaces. Guests are running DPDK testpmd +| ... | interconnectingvhost-user interfaces using 5 cores pinned to cpus 6-10 +| ... | and 11-15 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=1024, burst=64. DUT1, DUT2 are +| ... | tested with 2p10GE NIC X710 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 MLRsearch library. +| ... | 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. + +*** Variables *** +| ${perf_qemu_qsz}= | 1024 +# Socket names +| ${sock1}= | /tmp/sock-1 +| ${sock2}= | /tmp/sock-2 +# FIB tables +| ${fib_table_1}= | 100 +| ${fib_table_2}= | 101 +# CPU settings +| ${system_cpus}= | ${1} +| ${vpp_cpus}= | ${5} +| ${vm_cpus}= | ${5} +# X710 bandwidth limit +| ${s_limit}= | ${10000000000} +# Traffic profile: +| ${traffic_profile}= | trex-sl-3n-ethip4-ip4src253 + +*** Keywords *** +| Local Template +| | [Documentation] +| | ... | [Cfg] DUT runs IPv4 routing config. +| | ... | Each DUT uses ${phy_cores} physical core(s) for worker threads. +| | ... | [Ver] Measure NDR and PDR values using MLRsearch algorithm.\ +| | ... +| | ... | *Arguments:* +| | ... | - framesize - Framesize in Bytes in integer or string (IMIX_v4_1). +| | ... | Type: integer, string +| | ... | - phy_cores - Number of physical cores. Type: integer +| | ... | - rxq - Number of RX queues, default value: ${None}. Type: integer +| | ... +| | [Arguments] | ${framesize} | ${phy_cores} | ${rxq}=${None} +| | ... +| | Set Test Variable | ${framesize} +| | Set Test Variable | ${min_rate} | ${10000} +| | ${dut1_vm_refs}= | Create Dictionary +| | ${dut2_vm_refs}= | Create Dictionary +| | Set Test Variable | ${dut1_vm_refs} +| | Set Test Variable | ${dut2_vm_refs} +| | ... +| | Given Add worker threads and rxqueues to all DUTs | ${phy_cores} | ${rxq} +| | And Add PCI devices to all DUTs +| | ${max_rate} | ${jumbo} = | Get Max Rate And Jumbo And Handle Multi Seg +| | ... | ${s_limit} | ${framesize} +| | And Apply startup configuration on all VPP DUTs +| | When Initialize IPv4 forwarding with vhost for '2' VMs in 3-node circular topology +| | Set Test Variable | \${jumbo_frames} | ${jumbo} +| | And Configure '2' guest VMs with dpdk-testpmd-mac connected via vhost-user in 3-node circular topology +| | Then Find NDR and PDR intervals using optimized search +| | ... | ${framesize} | ${traffic_profile} | ${min_rate} | ${max_rate} + +*** Test Cases *** +| tc01-64B-1c-ethip4-ip4base-eth-4vhostvr1024-2vm-ndrpdr +| | [Tags] | 64B | 1C +| | framesize=${64} | phy_cores=${1} + +| tc02-64B-2c-ethip4-ip4base-eth-4vhostvr1024-2vm-ndrpdr +| | [Tags] | 64B | 2C +| | framesize=${64} | phy_cores=${2} + +| tc03-64B-4c-ethip4-ip4base-eth-4vhostvr1024-2vm-ndrpdr +| | [Tags] | 64B | 4C +| | framesize=${64} | phy_cores=${4} + +| tc04-1518B-1c-ethip4-ip4base-eth-4vhostvr1024-2vm-ndrpdr +| | [Tags] | 1518B | 1C +| | framesize=${1518} | phy_cores=${1} + +| tc05-1518B-2c-ethip4-ip4base-eth-4vhostvr1024-2vm-ndrpdr +| | [Tags] | 1518B | 2C +| | framesize=${1518} | phy_cores=${2} + +| tc06-1518B-4c-ethip4-ip4base-eth-4vhostvr1024-2vm-ndrpdr +| | [Tags] | 1518B | 4C +| | framesize=${1518} | phy_cores=${4} + +| tc07-9000B-1c-ethip4-ip4base-eth-4vhostvr1024-2vm-ndrpdr +| | [Tags] | 9000B | 1C +| | framesize=${9000} | phy_cores=${1} + +| tc08-9000B-2c-ethip4-ip4base-eth-4vhostvr1024-2vm-ndrpdr +| | [Tags] | 9000B | 2C +| | framesize=${9000} | phy_cores=${2} + +| tc09-9000B-4c-ethip4-ip4base-eth-4vhostvr1024-2vm-ndrpdr +| | [Tags] | 9000B | 4C +| | framesize=${9000} | phy_cores=${4} + +| tc10-IMIX-1c-ethip4-ip4base-eth-4vhostvr1024-2vm-ndrpdr +| | [Tags] | IMIX | 1C +| | framesize=IMIX_v4_1 | phy_cores=${1} + +| tc11-IMIX-2c-ethip4-ip4base-eth-4vhostvr1024-2vm-ndrpdr +| | [Tags] | IMIX | 2C +| | framesize=IMIX_v4_1 | phy_cores=${2} + +| tc12-IMIX-4c-ethip4-ip4base-eth-4vhostvr1024-2vm-ndrpdr +| | [Tags] | IMIX | 4C +| | framesize=IMIX_v4_1 | phy_cores=${4} diff --git a/tests/vpp/perf/vm_vhost/10ge2p1x710-ethip4vxlan-l2bdbasemaclrn-eth-2vhostvr1024-1vm-mrr.robot b/tests/vpp/perf/vm_vhost/10ge2p1x710-ethip4vxlan-l2bdbasemaclrn-eth-2vhostvr1024-1vm-mrr.robot index e4480b49e0..c399947914 100644 --- a/tests/vpp/perf/vm_vhost/10ge2p1x710-ethip4vxlan-l2bdbasemaclrn-eth-2vhostvr1024-1vm-mrr.robot +++ b/tests/vpp/perf/vm_vhost/10ge2p1x710-ethip4vxlan-l2bdbasemaclrn-eth-2vhostvr1024-1vm-mrr.robot @@ -28,7 +28,7 @@ | ... | dut1_node=${dut1} | dut1_vm_refs=${dut1_vm_refs} | ... | dut2_node=${dut2} | dut2_vm_refs=${dut2_vm_refs} | ... -| Test Template | Local template +| Test Template | Local Template | ... | Documentation | *Raw results L2BD test cases with VXLANoIPv4 | ... | and vhost* @@ -63,12 +63,12 @@ | ${sock2}= | /tmp/sock-1-${bd_id2} # X710 bandwidth limit | ${s_limit}= | ${10000000000} -| ${vxlan_overhead} | ${50} +| ${overhead} | ${50} # Traffic profile: | ${traffic_profile}= | trex-sl-3n-ethip4-ip4src254 *** Keywords *** -| Local template +| Local Template | | [Documentation] | | ... | [Cfg] DUT runs L2BD switching config. | | ... | Each DUT uses ${phy_cores} physical core(s) for worker threads. @@ -83,80 +83,74 @@ | | ... | | [Arguments] | ${framesize} | ${phy_cores} | ${rxq}=${None} | | ... -| | Set Test Variable | ${framesize} -| | ${get_framesize}= | Get Frame Size | ${framesize} -| | ${max_rate}= | Calculate pps | ${s_limit} -| | ... | ${get_framesize} + ${vxlan_overhead} | | ${dut1_vm_refs}= | Create Dictionary | | ${dut2_vm_refs}= | Create Dictionary | | Set Test Variable | ${dut1_vm_refs} | | Set Test Variable | ${dut2_vm_refs} -| | ${jumbo_frames}= | Set Variable If | ${get_framesize} < ${1522} -| | ... | ${False} | ${True} | | ... | | Given Add worker threads and rxqueues to all DUTs | ${phy_cores} | ${rxq} | | And Add PCI devices to all DUTs -| | And Run Keyword If | ${get_framesize} < ${1522} -| | ... | Add no multi seg to all DUTs +| | ${max_rate} | ${jumbo} = | Get Max Rate And Jumbo And Handle Multi Seg +| | ... | ${s_limit} | ${framesize} | overhead=${overhead} | | And Apply startup configuration on all VPP DUTs | | When Initialize L2 bridge domains with Vhost-User and VXLANoIPv4 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 -| | ... | jumbo_frames=${jumbo_frames} +| | ... | jumbo_frames=${jumbo} | | 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 -| | ... | jumbo_frames=${jumbo_frames} +| | ... | jumbo_frames=${jumbo} | | Set To Dictionary | ${dut2_vm_refs} | DUT2_VM1 | ${vm2} | | Then Traffic should pass with maximum rate | | ... | ${max_rate}pps | ${framesize} | ${traffic_profile} *** Test Cases *** -| tc01-64B-1t1c-ethip4vxlan-l2bdbasemaclrn-eth-2vhostvr1024-1vm-mrr +| tc01-64B-1c-ethip4vxlan-l2bdbasemaclrn-eth-2vhostvr1024-1vm-mrr | | [Tags] | 64B | 1C | | framesize=${64} | phy_cores=${1} -| tc02-1518B-1t1c-ethip4vxlan-l2bdbasemaclrn-eth-2vhostvr1024-1vm-mrr -| | [Tags] | 1518B | 1C -| | framesize=${1518} | phy_cores=${1} - -| tc03-9000B-1t1c-ethip4vxlan-l2bdbasemaclrn-eth-2vhostvr1024-1vm-mrr -| | [Tags] | 9000B | 1C -| | framesize=${9000} | phy_cores=${1} - -| tc04-IMIX-1t1c-ethip4vxlan-l2bdbasemaclrn-eth-2vhostvr1024-1vm-mrr -| | [Tags] | IMIX | 1C -| | framesize=IMIX_v4_1 | phy_cores=${1} - -| tc05-64B-2t2c-ethip4vxlan-l2bdbasemaclrn-eth-2vhostvr1024-1vm-mrr +| tc02-64B-2c-ethip4vxlan-l2bdbasemaclrn-eth-2vhostvr1024-1vm-mrr | | [Tags] | 64B | 2C | | framesize=${64} | phy_cores=${2} -| tc06-1518B-2t2c-ethip4vxlan-l2bdbasemaclrn-eth-2vhostvr1024-1vm-mrr -| | [Tags] | 1518B | 2C -| | framesize=${1518} | phy_cores=${2} - -| tc07-9000B-2t2c-ethip4vxlan-l2bdbasemaclrn-eth-2vhostvr1024-1vm-mrr -| | [Tags] | 9000B | 2C -| | framesize=${9000} | phy_cores=${2} - -| tc08-IMIX-2t2c-ethip4vxlan-l2bdbasemaclrn-eth-2vhostvr1024-1vm-mrr -| | [Tags] | IMIX | 2C -| | framesize=IMIX_v4_1 | phy_cores=${2} - -| tc09-64B-4t4c-ethip4vxlan-l2bdbasemaclrn-eth-2vhostvr1024-1vm-mrr +| tc03-64B-4c-ethip4vxlan-l2bdbasemaclrn-eth-2vhostvr1024-1vm-mrr | | [Tags] | 64B | 4C | | framesize=${64} | phy_cores=${4} -| tc10-1518B-4t4c-ethip4vxlan-l2bdbasemaclrn-eth-2vhostvr1024-1vm-mrr +| tc04-1518B-1c-ethip4vxlan-l2bdbasemaclrn-eth-2vhostvr1024-1vm-mrr +| | [Tags] | 1518B | 1C +| | framesize=${1518} | phy_cores=${1} + +| tc05-1518B-2c-ethip4vxlan-l2bdbasemaclrn-eth-2vhostvr1024-1vm-mrr +| | [Tags] | 1518B | 2C +| | framesize=${1518} | phy_cores=${2} + +| tc06-1518B-4c-ethip4vxlan-l2bdbasemaclrn-eth-2vhostvr1024-1vm-mrr | | [Tags] | 1518B | 4C | | framesize=${1518} | phy_cores=${4} -| tc11-9000B-4t4c-ethip4vxlan-l2bdbasemaclrn-eth-2vhostvr1024-1vm-mrr +| tc07-9000B-1c-ethip4vxlan-l2bdbasemaclrn-eth-2vhostvr1024-1vm-mrr +| | [Tags] | 9000B | 1C +| | framesize=${9000} | phy_cores=${1} + +| tc08-9000B-2c-ethip4vxlan-l2bdbasemaclrn-eth-2vhostvr1024-1vm-mrr +| | [Tags] | 9000B | 2C +| | framesize=${9000} | phy_cores=${2} + +| tc09-9000B-4c-ethip4vxlan-l2bdbasemaclrn-eth-2vhostvr1024-1vm-mrr | | [Tags] | 9000B | 4C | | framesize=${9000} | phy_cores=${4} -| tc12-IMIX-4t4c-ethip4vxlan-l2bdbasemaclrn-eth-2vhostvr1024-1vm-mrr +| tc10-IMIX-1c-ethip4vxlan-l2bdbasemaclrn-eth-2vhostvr1024-1vm-mrr +| | [Tags] | IMIX | 1C +| | framesize=IMIX_v4_1 | phy_cores=${1} + +| tc11-IMIX-2c-ethip4vxlan-l2bdbasemaclrn-eth-2vhostvr1024-1vm-mrr +| | [Tags] | IMIX | 2C +| | framesize=IMIX_v4_1 | phy_cores=${2} + +| tc12-IMIX-4c-ethip4vxlan-l2bdbasemaclrn-eth-2vhostvr1024-1vm-mrr | | [Tags] | IMIX | 4C | | framesize=IMIX_v4_1 | phy_cores=${4} diff --git a/tests/vpp/perf/vm_vhost/10ge2p1x710-ethip4vxlan-l2bdbasemaclrn-eth-2vhostvr1024-1vm-ndrpdr.robot b/tests/vpp/perf/vm_vhost/10ge2p1x710-ethip4vxlan-l2bdbasemaclrn-eth-2vhostvr1024-1vm-ndrpdr.robot new file mode 100644 index 0000000000..f19b7fc5a0 --- /dev/null +++ b/tests/vpp/perf/vm_vhost/10ge2p1x710-ethip4vxlan-l2bdbasemaclrn-eth-2vhostvr1024-1vm-ndrpdr.robot @@ -0,0 +1,161 @@ +# Copyright (c) 2018 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 | NDRPDR +| ... | NIC_Intel-X710 | L2BDMACLRN | ENCAP | VXLAN | L2OVRLAY | IP4UNRLAY +| ... | VHOST | 1VM | VHOST_1024 +| ... +| Suite Setup | Set up 3-node performance topology with DUT's NIC model +| ... | L2 | Intel-X710 +| 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} +| ... +| Test Template | Local Template +| ... +| Documentation | *RFC2544: Pkt throughput L2BD test cases with VXLANoIPv4 +| ... | and 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. +| ... | Eth-IPv4-VXLAN-Eth-IPv4 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=1024, burst=64. DUT1, DUT2 are tested with 2p10GE NIC X710 +| ... | 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 MLRsearch library. +| ... | Test packets are generated by TG on links to DUTs. TG traffic profile +| ... | contains two L3 flow-groups (flow-group per direction, 254 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:* RFC7348. + +*** Variables *** +| ${perf_qemu_qsz}= | 1024 +# Socket names +| ${bd_id1}= | 1 +| ${bd_id2}= | 2 +| ${sock1}= | /tmp/sock-1-${bd_id1} +| ${sock2}= | /tmp/sock-1-${bd_id2} +# X710 bandwidth limit +| ${s_limit}= | ${10000000000} +| ${overhead} | ${50} +# Traffic profile: +| ${traffic_profile}= | trex-sl-3n-ethip4-ip4src254 + +*** Keywords *** +| Local Template +| | [Documentation] +| | ... | [Cfg] DUT runs L2BD switching config. +| | ... | Each DUT uses ${phy_cores} physical core(s) for worker threads. +| | ... | [Ver] Measure NDR and PDR values using MLRsearch algorithm.\ +| | ... +| | ... | *Arguments:* +| | ... | - framesize - Framesize in Bytes in integer or string (IMIX_v4_1). +| | ... | Type: integer, string +| | ... | - phy_cores - Number of physical cores. Type: integer +| | ... | - rxq - Number of RX queues, default value: ${None}. Type: integer +| | ... +| | [Arguments] | ${framesize} | ${phy_cores} | ${rxq}=${None} +| | ... +| | Set Test Variable | ${framesize} +| | Set Test Variable | ${min_rate} | ${10000} +| | ${dut1_vm_refs}= | Create Dictionary +| | ${dut2_vm_refs}= | Create Dictionary +| | Set Test Variable | ${dut1_vm_refs} +| | Set Test Variable | ${dut2_vm_refs} +| | ... +| | Given Add worker threads and rxqueues to all DUTs | ${phy_cores} | ${rxq} +| | And Add PCI devices to all DUTs +| | ${max_rate} | ${jumbo} = | Get Max Rate And Jumbo And Handle Multi Seg +| | ... | ${s_limit} | ${framesize} | overhead=${overhead} +| | And Apply startup configuration on all VPP DUTs +| | When Initialize L2 bridge domains with Vhost-User and VXLANoIPv4 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 +| | ... | jumbo_frames=${jumbo} +| | 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 +| | ... | jumbo_frames=${jumbo} +| | Set To Dictionary | ${dut2_vm_refs} | DUT2_VM1 | ${vm2} +| | Then Find NDR and PDR intervals using optimized search +| | ... | ${framesize} | ${traffic_profile} | ${min_rate} | ${max_rate} + +*** Test Cases *** +| tc01-64B-1c-ethip4vxlan-l2bdbasemaclrn-eth-2vhostvr1024-1vm-ndrpdr +| | [Tags] | 64B | 1C +| | framesize=${64} | phy_cores=${1} + +| tc02-64B-2c-ethip4vxlan-l2bdbasemaclrn-eth-2vhostvr1024-1vm-ndrpdr +| | [Tags] | 64B | 2C +| | framesize=${64} | phy_cores=${2} + +| tc03-64B-4c-ethip4vxlan-l2bdbasemaclrn-eth-2vhostvr1024-1vm-ndrpdr +| | [Tags] | 64B | 4C +| | framesize=${64} | phy_cores=${4} + +| tc04-1518B-1c-ethip4vxlan-l2bdbasemaclrn-eth-2vhostvr1024-1vm-ndrpdr +| | [Tags] | 1518B | 1C +| | framesize=${1518} | phy_cores=${1} + +| tc05-1518B-2c-ethip4vxlan-l2bdbasemaclrn-eth-2vhostvr1024-1vm-ndrpdr +| | [Tags] | 1518B | 2C +| | framesize=${1518} | phy_cores=${2} + +| tc06-1518B-4c-ethip4vxlan-l2bdbasemaclrn-eth-2vhostvr1024-1vm-ndrpdr +| | [Tags] | 1518B | 4C +| | framesize=${1518} | phy_cores=${4} + +| tc07-9000B-1c-ethip4vxlan-l2bdbasemaclrn-eth-2vhostvr1024-1vm-ndrpdr +| | [Tags] | 9000B | 1C +| | framesize=${9000} | phy_cores=${1} + +| tc08-9000B-2c-ethip4vxlan-l2bdbasemaclrn-eth-2vhostvr1024-1vm-ndrpdr +| | [Tags] | 9000B | 2C +| | framesize=${9000} | phy_cores=${2} + +| tc09-9000B-4c-ethip4vxlan-l2bdbasemaclrn-eth-2vhostvr1024-1vm-ndrpdr +| | [Tags] | 9000B | 4C +| | framesize=${9000} | phy_cores=${4} + +| tc10-IMIX-1c-ethip4vxlan-l2bdbasemaclrn-eth-2vhostvr1024-1vm-ndrpdr +| | [Tags] | IMIX | 1C +| | framesize=IMIX_v4_1 | phy_cores=${1} + +| tc11-IMIX-2c-ethip4vxlan-l2bdbasemaclrn-eth-2vhostvr1024-1vm-ndrpdr +| | [Tags] | IMIX | 2C +| | framesize=IMIX_v4_1 | phy_cores=${2} + +| tc12-IMIX-4c-ethip4vxlan-l2bdbasemaclrn-eth-2vhostvr1024-1vm-ndrpdr +| | [Tags] | IMIX | 4C +| | framesize=IMIX_v4_1 | phy_cores=${4} diff --git a/tests/vpp/perf/vm_vhost/40ge2p1x710-eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-mrr.robot b/tests/vpp/perf/vm_vhost/40ge2p1x710-eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-mrr.robot index 26a6c7d775..181c0f63a9 100644 --- a/tests/vpp/perf/vm_vhost/40ge2p1x710-eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-mrr.robot +++ b/tests/vpp/perf/vm_vhost/40ge2p1x710-eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-mrr.robot @@ -16,7 +16,7 @@ | Library | resources.libraries.python.QemuUtils | ... | Force Tags | 3_NODE_SINGLE_LINK_TOPO | PERFTEST | HW_ENV | MRR -| ... | NIC_Intel-X710 | ETH | L2BDMACLRN | BASE | VHOST | 1VM | VHOST_1024 +| ... | NIC_Intel-XL710 | ETH | L2BDMACLRN | BASE | VHOST | 1VM | VHOST_1024 | ... | Suite Setup | Set up 3-node performance topology with DUT's NIC model | ... | L2 | Intel-XL710 @@ -27,7 +27,7 @@ | ... | dut1_node=${dut1} | dut1_vm_refs=${dut1_vm_refs} | ... | dut2_node=${dut2} | dut2_vm_refs=${dut2_vm_refs} | ... -| Test Template | Local template +| Test Template | Local Template | ... | Documentation | *Raw results L2BD test cases with vhost* | ... @@ -57,13 +57,15 @@ | ${bd_id2}= | 2 | ${sock1}= | /tmp/sock-1-${bd_id1} | ${sock2}= | /tmp/sock-1-${bd_id2} -# X710 bandwidth limit -| ${s_limit} | ${10000000000} +# XL710-DA2 bandwidth limit ~49Gbps/2=24.5Gbps +| ${s_24.5G}= | ${24500000000} +# XL710-DA2 Mpps limit 37.5Mpps/2=18.75Mpps +| ${s_18.75Mpps}= | ${18750000} # Traffic profile: | ${traffic_profile}= | trex-sl-3n-ethip4-ip4src254 *** Keywords *** -| Local template +| Local Template | | [Documentation] | | ... | [Cfg] DUT runs L2BD switching config. | | ... | Each DUT uses ${phy_cores} physical core(s) for worker threads. @@ -78,79 +80,74 @@ | | ... | | [Arguments] | ${framesize} | ${phy_cores} | ${rxq}=${None} | | ... -| | Set Test Variable | ${framesize} -| | ${get_framesize}= | Get Frame Size | ${framesize} -| | ${max_rate}= | Calculate pps | ${s_limit} | ${get_framesize} | | ${dut1_vm_refs}= | Create Dictionary | | ${dut2_vm_refs}= | Create Dictionary | | Set Test Variable | ${dut1_vm_refs} | | Set Test Variable | ${dut2_vm_refs} -| | ${jumbo_frames}= | Set Variable If | ${get_framesize} < ${1522} -| | ... | ${False} | ${True} | | ... | | Given Add worker threads and rxqueues to all DUTs | ${phy_cores} | ${rxq} | | And Add PCI devices to all DUTs -| | And Run Keyword If | ${get_framesize} < ${1522} -| | ... | Add no multi seg to all DUTs +| | ${max_rate} | ${jumbo} = | Get Max Rate And Jumbo And Handle Multi Seg +| | ... | ${s_24.5G} | ${framesize} | pps_limit=${s_18.75Mpps} | | 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 -| | ... | jumbo_frames=${jumbo_frames} +| | ... | jumbo_frames=${jumbo} | | 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 -| | ... | jumbo_frames=${jumbo_frames} +| | ... | jumbo_frames=${jumbo} | | Set To Dictionary | ${dut2_vm_refs} | DUT2_VM1 | ${vm2} | | Then Traffic should pass with maximum rate | | ... | ${max_rate}pps | ${framesize} | ${traffic_profile} *** Test Cases *** -| tc01-64B-1t1c-eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-mrr +| tc01-64B-1c-eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-mrr | | [Tags] | 64B | 1C | | framesize=${64} | phy_cores=${1} -| tc02-1518B-1t1c-eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-mrr -| | [Tags] | 1518B | 1C -| | framesize=${1518} | phy_cores=${1} - -| tc03-9000B-1t1c-eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-mrr -| | [Tags] | 9000B | 1C -| | framesize=${9000} | phy_cores=${1} - -| tc04-IMIX-1t1c-eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-mrr -| | [Tags] | IMIX | 1C -| | framesize=IMIX_v4_1 | phy_cores=${1} - -| tc05-64B-2t2c-eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-mrr +| tc02-64B-2c-eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-mrr | | [Tags] | 64B | 2C | | framesize=${64} | phy_cores=${2} -| tc06-1518B-2t2c-eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-mrr -| | [Tags] | 1518B | 2C -| | framesize=${1518} | phy_cores=${2} - -| tc07-9000B-2t2c-eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-mrr -| | [Tags] | 9000B | 2C -| | framesize=${9000} | phy_cores=${2} - -| tc08-IMIX-2t2c-eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-mrr -| | [Tags] | IMIX | 2C -| | framesize=IMIX_v4_1 | phy_cores=${2} - -| tc09-64B-4t4c-eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-mrr +| tc03-64B-4c-eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-mrr | | [Tags] | 64B | 4C | | framesize=${64} | phy_cores=${4} -| tc10-1518B-4t4c-eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-mrr +| tc04-1518B-1c-eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-mrr +| | [Tags] | 1518B | 1C +| | framesize=${1518} | phy_cores=${1} + +| tc05-1518B-2c-eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-mrr +| | [Tags] | 1518B | 2C +| | framesize=${1518} | phy_cores=${2} + +| tc06-1518B-4c-eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-mrr | | [Tags] | 1518B | 4C | | framesize=${1518} | phy_cores=${4} -| tc11-9000B-4t4c-eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-mrr +| tc07-9000B-1c-eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-mrr +| | [Tags] | 9000B | 1C +| | framesize=${9000} | phy_cores=${1} + +| tc08-9000B-2c-eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-mrr +| | [Tags] | 9000B | 2C +| | framesize=${9000} | phy_cores=${2} + +| tc09-9000B-4c-eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-mrr | | [Tags] | 9000B | 4C | | framesize=${9000} | phy_cores=${4} -| tc12-IMIX-4t4c-eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-mrr +| tc10-IMIX-1c-eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-mrr +| | [Tags] | IMIX | 1C +| | framesize=IMIX_v4_1 | phy_cores=${1} + +| tc11-IMIX-2c-eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-mrr +| | [Tags] | IMIX | 2C +| | framesize=IMIX_v4_1 | phy_cores=${2} + +| tc12-IMIX-4c-eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-mrr | | [Tags] | IMIX | 4C | | framesize=IMIX_v4_1 | phy_cores=${4} diff --git a/tests/vpp/perf/vm_vhost/40ge2p1x710-eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-ndrpdr.robot b/tests/vpp/perf/vm_vhost/40ge2p1x710-eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-ndrpdr.robot new file mode 100644 index 0000000000..d244dccb9a --- /dev/null +++ b/tests/vpp/perf/vm_vhost/40ge2p1x710-eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-ndrpdr.robot @@ -0,0 +1,158 @@ +# Copyright (c) 2018 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 | NDRPDR +| ... | NIC_Intel-XL710 | ETH | L2BDMACLRN | BASE | VHOST | 1VM | VHOST_1024 +| ... +| Suite Setup | Set up 3-node performance topology with DUT's NIC model +| ... | L2 | Intel-XL710 +| 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} +| ... +| Test Template | Local Template +| ... +| Documentation | *RFC2544: Pkt 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. +| ... | *[Cfg] DUT configuration:* DUT1 and DUT2 are configured with L2 bridge- +| ... | domain and MAC learning enabled. Qemu Guests are connected to VPP via +| ... | vhost-user interfaces. Guests are running DPDK testpmd interconnecting +| ... | vhost-user interfaces using 5 cores pinned to cpus on NUMA1 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=1024, burst=64. DUT1, DUT2 are tested with 2p10GE NIC X710 +| ... | 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 MLRsearch library. +| ... | 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. + +*** Variables *** +| ${perf_qemu_qsz}= | 1024 +# Socket names +| ${bd_id1}= | 1 +| ${bd_id2}= | 2 +| ${sock1}= | /tmp/sock-1-${bd_id1} +| ${sock2}= | /tmp/sock-1-${bd_id2} +# XL710-DA2 bandwidth limit ~49Gbps/2=24.5Gbps +| ${s_24.5G}= | ${24500000000} +# XL710-DA2 Mpps limit 37.5Mpps/2=18.75Mpps +| ${s_18.75Mpps}= | ${18750000} +# Traffic profile: +| ${traffic_profile}= | trex-sl-3n-ethip4-ip4src254 + +*** Keywords *** +| Local Template +| | [Documentation] +| | ... | [Cfg] DUT runs L2BD switching config. +| | ... | Each DUT uses ${phy_cores} physical core(s) for worker threads. +| | ... | [Ver] Measure NDR and PDR values using MLRsearch algorithm.\ +| | ... +| | ... | *Arguments:* +| | ... | - framesize - Framesize in Bytes in integer or string (IMIX_v4_1). +| | ... | Type: integer, string +| | ... | - phy_cores - Number of physical cores. Type: integer +| | ... | - rxq - Number of RX queues, default value: ${None}. Type: integer +| | ... +| | [Arguments] | ${framesize} | ${phy_cores} | ${rxq}=${None} +| | ... +| | Set Test Variable | ${framesize} +| | Set Test Variable | ${min_rate} | ${10000} +| | ${dut1_vm_refs}= | Create Dictionary +| | ${dut2_vm_refs}= | Create Dictionary +| | Set Test Variable | ${dut1_vm_refs} +| | Set Test Variable | ${dut2_vm_refs} +| | ... +| | Given Add worker threads and rxqueues to all DUTs | ${phy_cores} | ${rxq} +| | And Add PCI devices to all DUTs +| | ${max_rate} | ${jumbo} = | Get Max Rate And Jumbo And Handle Multi Seg +| | ... | ${s_24.5G} | ${framesize} | pps_limit=${s_18.75Mpps} +| | 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 +| | ... | jumbo_frames=${jumbo} +| | 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 +| | ... | jumbo_frames=${jumbo} +| | Set To Dictionary | ${dut2_vm_refs} | DUT2_VM1 | ${vm2} +| | Then Find NDR and PDR intervals using optimized search +| | ... | ${framesize} | ${traffic_profile} | ${min_rate} | ${max_rate} + +*** Test Cases *** +| tc01-64B-1c-eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-ndrpdr +| | [Tags] | 64B | 1C +| | framesize=${64} | phy_cores=${1} + +| tc02-64B-2c-eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-ndrpdr +| | [Tags] | 64B | 2C +| | framesize=${64} | phy_cores=${2} + +| tc03-64B-4c-eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-ndrpdr +| | [Tags] | 64B | 4C +| | framesize=${64} | phy_cores=${4} + +| tc04-1518B-1c-eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-ndrpdr +| | [Tags] | 1518B | 1C +| | framesize=${1518} | phy_cores=${1} + +| tc05-1518B-2c-eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-ndrpdr +| | [Tags] | 1518B | 2C +| | framesize=${1518} | phy_cores=${2} + +| tc06-1518B-4c-eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-ndrpdr +| | [Tags] | 1518B | 4C +| | framesize=${1518} | phy_cores=${4} + +| tc07-9000B-1c-eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-ndrpdr +| | [Tags] | 9000B | 1C +| | framesize=${9000} | phy_cores=${1} + +| tc08-9000B-2c-eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-ndrpdr +| | [Tags] | 9000B | 2C +| | framesize=${9000} | phy_cores=${2} + +| tc09-9000B-4c-eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-ndrpdr +| | [Tags] | 9000B | 4C +| | framesize=${9000} | phy_cores=${4} + +| tc10-IMIX-1c-eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-ndrpdr +| | [Tags] | IMIX | 1C +| | framesize=IMIX_v4_1 | phy_cores=${1} + +| tc11-IMIX-2c-eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-ndrpdr +| | [Tags] | IMIX | 2C +| | framesize=IMIX_v4_1 | phy_cores=${2} + +| tc12-IMIX-4c-eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-ndrpdr +| | [Tags] | IMIX | 4C +| | framesize=IMIX_v4_1 | phy_cores=${4} diff --git a/tests/vpp/perf/vm_vhost/40ge2p1xl710-eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-mrr.robot b/tests/vpp/perf/vm_vhost/40ge2p1xl710-eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-mrr.robot index 68aaf9c749..08f1f1c839 100644 --- a/tests/vpp/perf/vm_vhost/40ge2p1xl710-eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-mrr.robot +++ b/tests/vpp/perf/vm_vhost/40ge2p1xl710-eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-mrr.robot @@ -27,7 +27,7 @@ | ... | dut1_node=${dut1} | dut1_vm_refs=${dut1_vm_refs} | ... | dut2_node=${dut2} | dut2_vm_refs=${dut2_vm_refs} | ... -| Test Template | Local template +| Test Template | Local Template | ... | Documentation | *Raw results L2BD test cases with vhost* | ... @@ -65,7 +65,7 @@ | ${traffic_profile}= | trex-sl-3n-ethip4-ip4src254 *** Keywords *** -| Local template +| Local Template | | [Documentation] | | ... | [Cfg] DUT runs L2BD switching config. | | ... | Each DUT uses ${phy_cores} physical core(s) for worker threads. @@ -80,81 +80,74 @@ | | ... | | [Arguments] | ${framesize} | ${phy_cores} | ${rxq}=${None} | | ... -| | Set Test Variable | ${framesize} -| | ${get_framesize}= | Get Frame Size | ${framesize} -| | ${max_rate}= | Calculate pps | ${s_24.5G} | ${get_framesize} -| | ${max_rate}= | Set Variable If -| | ... | ${max_rate} > ${s_18.75Mpps} | ${s_18.75Mpps} | ${max_rate} | | ${dut1_vm_refs}= | Create Dictionary | | ${dut2_vm_refs}= | Create Dictionary | | Set Test Variable | ${dut1_vm_refs} | | Set Test Variable | ${dut2_vm_refs} -| | ${jumbo_frames}= | Set Variable If | ${get_framesize} < ${1522} -| | ... | ${False} | ${True} | | ... | | Given Add worker threads and rxqueues to all DUTs | ${phy_cores} | ${rxq} | | And Add PCI devices to all DUTs -| | And Run Keyword If | ${get_framesize} < ${1522} -| | ... | Add no multi seg to all DUTs +| | ${max_rate} | ${jumbo} = | Get Max Rate And Jumbo And Handle Multi Seg +| | ... | ${s_24.5G} | ${framesize} | pps_limit=${s_18.75Mpps} | | 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 -| | ... | jumbo_frames=${jumbo_frames} +| | ... | jumbo_frames=${jumbo} | | 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 -| | ... | jumbo_frames=${jumbo_frames} +| | ... | jumbo_frames=${jumbo} | | Set To Dictionary | ${dut2_vm_refs} | DUT2_VM1 | ${vm2} | | Then Traffic should pass with maximum rate | | ... | ${max_rate}pps | ${framesize} | ${traffic_profile} *** Test Cases *** -| tc01-64B-1t1c-eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-mrr +| tc01-64B-1c-eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-mrr | | [Tags] | 64B | 1C | | framesize=${64} | phy_cores=${1} -| tc02-1518B-1t1c-eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-mrr -| | [Tags] | 1518B | 1C -| | framesize=${1518} | phy_cores=${1} - -| tc03-9000B-1t1c-eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-mrr -| | [Tags] | 9000B | 1C -| | framesize=${9000} | phy_cores=${1} - -| tc04-IMIX-1t1c-eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-mrr -| | [Tags] | IMIX | 1C -| | framesize=IMIX_v4_1 | phy_cores=${1} - -| tc05-64B-2t2c-eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-mrr +| tc02-64B-2c-eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-mrr | | [Tags] | 64B | 2C | | framesize=${64} | phy_cores=${2} -| tc06-1518B-2t2c-eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-mrr -| | [Tags] | 1518B | 2C -| | framesize=${1518} | phy_cores=${2} - -| tc07-9000B-2t2c-eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-mrr -| | [Tags] | 9000B | 2C -| | framesize=${9000} | phy_cores=${2} - -| tc08-IMIX-2t2c-eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-mrr -| | [Tags] | IMIX | 2C -| | framesize=IMIX_v4_1 | phy_cores=${2} - -| tc09-64B-4t4c-eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-mrr +| tc03-64B-4c-eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-mrr | | [Tags] | 64B | 4C | | framesize=${64} | phy_cores=${4} -| tc10-1518B-4t4c-eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-mrr +| tc04-1518B-1c-eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-mrr +| | [Tags] | 1518B | 1C +| | framesize=${1518} | phy_cores=${1} + +| tc05-1518B-2c-eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-mrr +| | [Tags] | 1518B | 2C +| | framesize=${1518} | phy_cores=${2} + +| tc06-1518B-4c-eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-mrr | | [Tags] | 1518B | 4C | | framesize=${1518} | phy_cores=${4} -| tc11-9000B-4t4c-eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-mrr +| tc07-9000B-1c-eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-mrr +| | [Tags] | 9000B | 1C +| | framesize=${9000} | phy_cores=${1} + +| tc08-9000B-2c-eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-mrr +| | [Tags] | 9000B | 2C +| | framesize=${9000} | phy_cores=${2} + +| tc09-9000B-4c-eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-mrr | | [Tags] | 9000B | 4C | | framesize=${9000} | phy_cores=${4} -| tc12-IMIX-4t4c-eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-mrr +| tc10-IMIX-1c-eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-mrr +| | [Tags] | IMIX | 1C +| | framesize=IMIX_v4_1 | phy_cores=${1} + +| tc11-IMIX-2c-eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-mrr +| | [Tags] | IMIX | 2C +| | framesize=IMIX_v4_1 | phy_cores=${2} + +| tc12-IMIX-4c-eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-mrr | | [Tags] | IMIX | 4C | | framesize=IMIX_v4_1 | phy_cores=${4} diff --git a/tests/vpp/perf/vm_vhost/40ge2p1xl710-eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-ndrpdr.robot b/tests/vpp/perf/vm_vhost/40ge2p1xl710-eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-ndrpdr.robot new file mode 100644 index 0000000000..1d8e6ef277 --- /dev/null +++ b/tests/vpp/perf/vm_vhost/40ge2p1xl710-eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-ndrpdr.robot @@ -0,0 +1,158 @@ +# Copyright (c) 2018 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 | NDRPDR +| ... | NIC_Intel-XL710 | ETH | L2BDMACLRN | BASE | VHOST | 1VM | VHOST_1024 +| ... +| Suite Setup | Set up 3-node performance topology with DUT's NIC model +| ... | L2 | Intel-XL710 +| 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} +| ... +| Test Template | Local Template +| ... +| Documentation | *RFC2544: Pkt 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. +| ... | *[Cfg] DUT configuration:* DUT1 and DUT2 are configured with L2 bridge- +| ... | domain and MAC learning enabled. Qemu Guests are connected to VPP via +| ... | vhost-user interfaces. Guests are running DPDK testpmd interconnecting +| ... | vhost-user interfaces using 5 cores pinned to cpus on NUMA1 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=1024, burst=64. DUT1, DUT2 are tested with 2p40GE NIC XL710 +| ... | 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 MLRsearch library. +| ... | 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. + +*** Variables *** +| ${perf_qemu_qsz}= | 1024 +# Socket names +| ${bd_id1}= | 1 +| ${bd_id2}= | 2 +| ${sock1}= | /tmp/sock-1-${bd_id1} +| ${sock2}= | /tmp/sock-1-${bd_id2} +# XL710-DA2 bandwidth limit ~49Gbps/2=24.5Gbps +| ${s_24.5G}= | ${24500000000} +# XL710-DA2 Mpps limit 37.5Mpps/2=18.75Mpps +| ${s_18.75Mpps}= | ${18750000} +# Traffic profile: +| ${traffic_profile}= | trex-sl-3n-ethip4-ip4src254 + +*** Keywords *** +| Local Template +| | [Documentation] +| | ... | [Cfg] DUT runs L2BD switching config. +| | ... | Each DUT uses ${phy_cores} physical core(s) for worker threads. +| | ... | [Ver] Measure NDR and PDR values using MLRsearch algorithm.\ +| | ... +| | ... | *Arguments:* +| | ... | - framesize - Framesize in Bytes in integer or string (IMIX_v4_1). +| | ... | Type: integer, string +| | ... | - phy_cores - Number of physical cores. Type: integer +| | ... | - rxq - Number of RX queues, default value: ${None}. Type: integer +| | ... +| | [Arguments] | ${framesize} | ${phy_cores} | ${rxq}=${None} +| | ... +| | Set Test Variable | ${framesize} +| | Set Test Variable | ${min_rate} | ${10000} +| | ${dut1_vm_refs}= | Create Dictionary +| | ${dut2_vm_refs}= | Create Dictionary +| | Set Test Variable | ${dut1_vm_refs} +| | Set Test Variable | ${dut2_vm_refs} +| | ... +| | Given Add worker threads and rxqueues to all DUTs | ${phy_cores} | ${rxq} +| | And Add PCI devices to all DUTs +| | ${max_rate} | ${jumbo} = | Get Max Rate And Jumbo And Handle Multi Seg +| | ... | ${s_24.5G} | ${framesize} | pps_limit=${s_18.75Mpps} +| | 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 +| | ... | jumbo_frames=${jumbo} +| | 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 +| | ... | jumbo_frames=${jumbo} +| | Set To Dictionary | ${dut2_vm_refs} | DUT2_VM1 | ${vm2} +| | Then Find NDR and PDR intervals using optimized search +| | ... | ${framesize} | ${traffic_profile} | ${min_rate} | ${max_rate} + +*** Test Cases *** +| tc01-64B-1c-eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-ndrpdr +| | [Tags] | 64B | 1C +| | framesize=${64} | phy_cores=${1} + +| tc02-64B-2c-eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-ndrpdr +| | [Tags] | 64B | 2C +| | framesize=${64} | phy_cores=${2} + +| tc03-64B-4c-eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-ndrpdr +| | [Tags] | 64B | 4C +| | framesize=${64} | phy_cores=${4} + +| tc04-1518B-1c-eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-ndrpdr +| | [Tags] | 1518B | 1C +| | framesize=${1518} | phy_cores=${1} + +| tc05-1518B-2c-eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-ndrpdr +| | [Tags] | 1518B | 2C +| | framesize=${1518} | phy_cores=${2} + +| tc06-1518B-4c-eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-ndrpdr +| | [Tags] | 1518B | 4C +| | framesize=${1518} | phy_cores=${4} + +| tc07-9000B-1c-eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-ndrpdr +| | [Tags] | 9000B | 1C +| | framesize=${9000} | phy_cores=${1} + +| tc08-9000B-2c-eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-ndrpdr +| | [Tags] | 9000B | 2C +| | framesize=${9000} | phy_cores=${2} + +| tc09-9000B-4c-eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-ndrpdr +| | [Tags] | 9000B | 4C +| | framesize=${9000} | phy_cores=${4} + +| tc10-IMIX-1c-eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-ndrpdr +| | [Tags] | IMIX | 1C +| | framesize=IMIX_v4_1 | phy_cores=${1} + +| tc11-IMIX-2c-eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-ndrpdr +| | [Tags] | IMIX | 2C +| | framesize=IMIX_v4_1 | phy_cores=${2} + +| tc12-IMIX-4c-eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-ndrpdr +| | [Tags] | IMIX | 4C +| | framesize=IMIX_v4_1 | phy_cores=${4} diff --git a/tests/vpp/perf/vm_vhost/40ge2p1xl710-eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-ndrpdrdisc.robot b/tests/vpp/perf/vm_vhost/40ge2p1xl710-eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-ndrpdrdisc.robot deleted file mode 100644 index 96ad6c5e86..0000000000 --- a/tests/vpp/perf/vm_vhost/40ge2p1xl710-eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-ndrpdrdisc.robot +++ /dev/null @@ -1,661 +0,0 @@ -# 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-XL710 | ETH | L2BDMACLRN | BASE | VHOST | VM | VHOST_1024 -| ... -| Suite Setup | Set up 3-node performance topology with DUT's NIC model -| ... | L2 | Intel-XL710 -| 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. -| ... | *[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 on NUMA1 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=1024, burst=64. DUT1, DUT2 are tested with 2p40GE NIC XL710 -| ... | 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 *** -| ${perf_qemu_qsz}= | 1024 -# XL710-DA2 bandwidth limit ~49Gbps/2=24.5Gbps -| ${s_24.5G}= | ${24500000000} -# XL710-DA2 Mpps limit 37.5Mpps/2=18.75Mpps -| ${s_18.75Mpps}= | ${18750000} -# 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 - -*** Test Cases *** -| tc01-64B-1t1c-eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-ndrdisc -| | [Documentation] -| | ... | [Cfg] DUT runs L2BD switching config with 1 phy core,\ -| | ... | 1 receive queue per NIC port. [Ver] Find NDR for 64 Byte frames\ -| | ... | using binary search start at 40GE linerate, step 10kpps. -| | ... -| | [Tags] | 64B | 1C | NDRDISC -| | ... -| | ${framesize}= | Set Variable | ${64} -| | ${min_rate}= | Set Variable | ${10000} -| | ${max_rate}= | Set Variable | ${s_18.75Mpps} -| | ${binary_min}= | Set Variable | ${min_rate} -| | ${binary_max}= | Set Variable | ${max_rate} -| | ${threshold}= | Set Variable | ${min_rate} -| | ${dut1_vm_refs}= | Create Dictionary -| | ${dut2_vm_refs}= | Create Dictionary -| | Given Add worker threads and rxqueues to all DUTs | 1 -| | And Add PCI devices to all DUTs -| | And 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} -| | Then Find NDR using binary search and pps | ${framesize} | ${binary_min} -| | ... | ${binary_max} | ${traffic_profile} -| | ... | ${min_rate} | ${max_rate} | ${threshold} - -| tc02-64B-1t1c-eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-pdrdisc -| | [Documentation] -| | ... | [Cfg] DUT runs L2BD switching config with 1 phy core,\ -| | ... | 1 receive queue per NIC port. [Ver] Find PDR for 64 Byte frames\ -| | ... | using binary search start at 40GE linerate, step 10kpps, LT=0.5%. -| | ... -| | [Tags] | 64B | 1C | PDRDISC | SKIP_PATCH -| | ... -| | ${framesize}= | Set Variable | ${64} -| | ${min_rate}= | Set Variable | ${10000} -| | ${max_rate}= | Set Variable | ${s_18.75Mpps} -| | ${binary_min}= | Set Variable | ${min_rate} -| | ${binary_max}= | Set Variable | ${max_rate} -| | ${threshold}= | Set Variable | ${min_rate} -| | ${dut1_vm_refs}= | Create Dictionary -| | ${dut2_vm_refs}= | Create Dictionary -| | Given Add worker threads and rxqueues to all DUTs | 1 -| | And Add PCI devices to all DUTs -| | And 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} -| | Then Find PDR using binary search and pps | ${framesize} | ${binary_min} -| | ... | ${binary_max} | ${traffic_profile} -| | ... | ${min_rate} | ${max_rate} | ${threshold} | ${perf_pdr_loss_acceptance} -| | ... | ${perf_pdr_loss_acceptance_type} - -| tc03-1518B-1t1c-eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-ndrdisc -| | [Documentation] -| | ... | [Cfg] DUT runs L2BD switching config with 1 phy core,\ -| | ... | 1 receive queue per NIC port. [Ver] Find NDR for 1518 Byte frames\ -| | ... | using binary search start at 40GE linerate, step 10kpps. -| | ... -| | [Tags] | 1518B | 1C | NDRDISC -| | ... -| | ${framesize}= | Set Variable | ${1518} -| | ${min_rate}= | Set Variable | ${10000} -| | ${max_rate}= | Calculate pps | ${s_24.5G} | ${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 -| | Given Add worker threads and rxqueues to all DUTs | 1 -| | And Add PCI devices to all DUTs -| | And 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} -| | Then Find NDR using binary search and pps | ${framesize} | ${binary_min} -| | ... | ${binary_max} | ${traffic_profile} -| | ... | ${min_rate} | ${max_rate} | ${threshold} - -| tc04-1518B-1t1c-eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-pdrdisc -| | [Documentation] -| | ... | [Cfg] DUT runs L2BD switching config with 1 phy core,\ -| | ... | 1 receive queue per NIC port. [Ver] Find PDR for 1518 Byte frames\ -| | ... | using binary search start at 40GE linerate, step 10kpps, LT=0.5%. -| | ... -| | [Tags] | 1518B | 1C | PDRDISC | SKIP_PATCH -| | ... -| | ${framesize}= | Set Variable | ${1518} -| | ${min_rate}= | Set Variable | ${10000} -| | ${max_rate}= | Calculate pps | ${s_24.5G} | ${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 -| | Given Add worker threads and rxqueues to all DUTs | 1 -| | And Add PCI devices to all DUTs -| | And 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} -| | Then Find PDR using binary search and pps | ${framesize} | ${binary_min} -| | ... | ${binary_max} | ${traffic_profile} -| | ... | ${min_rate} | ${max_rate} | ${threshold} | ${perf_pdr_loss_acceptance} -| | ... | ${perf_pdr_loss_acceptance_type} - -| tc05-IMIX-1t1c-eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-ndrdisc -| | [Documentation] -| | ... | [Cfg] DUT runs L2BD switching config with 1 phy core,\ -| | ... | 1 receive queue per NIC port. [Ver] Find NDR for IMIX_v4_1 frame\ -| | ... | size using binary search start at 40GE linerate, step 10kpps. -| | ... | IMIX_v4_1 = (28x64B; 16x570B; 4x1518B) -| | ... -| | [Tags] | IMIX | 1C | NDRDISC -| | ... -| | ${framesize}= | Set Variable | IMIX_v4_1 -| | ${min_rate}= | Set Variable | ${10000} -| | ${max_rate}= | Calculate pps | ${s_24.5G} | ${353.83333} -| | ${binary_min}= | Set Variable | ${min_rate} -| | ${binary_max}= | Set Variable | ${max_rate} -| | ${threshold}= | Set Variable | ${min_rate} -| | ${dut1_vm_refs}= | Create Dictionary -| | ${dut2_vm_refs}= | Create Dictionary -| | Given Add worker threads and rxqueues to all DUTs | 1 -| | And Add PCI devices to all DUTs -| | And 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} -| | Then Find NDR using binary search and pps | ${framesize} | ${binary_min} -| | ... | ${binary_max} | ${traffic_profile} -| | ... | ${min_rate} | ${max_rate} | ${threshold} - -| tc06-IMIX-1t1c-eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-pdrdisc -| | [Documentation] -| | ... | [Cfg] DUT runs L2BD switching config with 1 phy core,\ -| | ... | 1 receive queue per NIC port. [Ver] Find PDR for IMIX_v4_1 frame\ -| | ... | size using binary search start at 40GE linerate, step 10kpps, LT=0.5%. -| | ... | IMIX_v4_1 = (28x64B; 16x570B; 4x1518B) -| | ... -| | [Tags] | IMIX | 1C | PDRDISC | SKIP_PATCH -| | ... -| | ${framesize}= | Set Variable | IMIX_v4_1 -| | ${min_rate}= | Set Variable | ${10000} -| | ${max_rate}= | Calculate pps | ${s_24.5G} | ${353.83333} -| | ${binary_min}= | Set Variable | ${min_rate} -| | ${binary_max}= | Set Variable | ${max_rate} -| | ${threshold}= | Set Variable | ${min_rate} -| | ${dut1_vm_refs}= | Create Dictionary -| | ${dut2_vm_refs}= | Create Dictionary -| | Given Add worker threads and rxqueues to all DUTs | 1 -| | And Add PCI devices 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} -| | Then Find PDR using binary search and pps | ${framesize} | ${binary_min} -| | ... | ${binary_max} | ${traffic_profile} -| | ... | ${min_rate} | ${max_rate} | ${threshold} | ${perf_pdr_loss_acceptance} -| | ... | ${perf_pdr_loss_acceptance_type} - -| tc07-64B-2t2c-eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-ndrdisc -| | [Documentation] -| | ... | [Cfg] DUT runs L2BD switching config with 2 phy cores,\ -| | ... | 1 receive queue per NIC port. [Ver] Find NDR for 64 Byte frames\ -| | ... | using binary search start at 40GE linerate, step 10kpps. -| | ... -| | [Tags] | 64B | 2C | NDRDISC -| | ... -| | ${framesize}= | Set Variable | ${64} -| | ${min_rate}= | Set Variable | ${10000} -| | ${max_rate}= | Set Variable | ${s_18.75Mpps} -| | ${binary_min}= | Set Variable | ${min_rate} -| | ${binary_max}= | Set Variable | ${max_rate} -| | ${threshold}= | Set Variable | ${min_rate} -| | ${dut1_vm_refs}= | Create Dictionary -| | ${dut2_vm_refs}= | Create Dictionary -| | Given Add worker threads and rxqueues to all DUTs | 2 -| | And Add PCI devices to all DUTs -| | And 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} -| | Then Find NDR using binary search and pps | ${framesize} | ${binary_min} -| | ... | ${binary_max} | ${traffic_profile} -| | ... | ${min_rate} | ${max_rate} | ${threshold} - -| tc08-64B-2t2c-eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-pdrdisc -| | [Documentation] -| | ... | [Cfg] DUT runs L2BD switching config with 2 phy cores,\ -| | ... | 1 receive queue per NIC port. [Ver] Find PDR for 64 Byte frames\ -| | ... | using binary search start at 40GE linerate, step 10kpps, LT=0.5%. -| | ... -| | [Tags] | 64B | 2C | PDRDISC | SKIP_PATCH -| | ... -| | ${framesize}= | Set Variable | ${64} -| | ${min_rate}= | Set Variable | ${10000} -| | ${max_rate}= | Set Variable | ${s_18.75Mpps} -| | ${binary_min}= | Set Variable | ${min_rate} -| | ${binary_max}= | Set Variable | ${max_rate} -| | ${threshold}= | Set Variable | ${min_rate} -| | ${dut1_vm_refs}= | Create Dictionary -| | ${dut2_vm_refs}= | Create Dictionary -| | Given Add worker threads and rxqueues to all DUTs | 2 -| | And Add PCI devices to all DUTs -| | And 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} -| | Then Find PDR using binary search and pps | ${framesize} | ${binary_min} -| | ... | ${binary_max} | ${traffic_profile} -| | ... | ${min_rate} | ${max_rate} | ${threshold} | ${perf_pdr_loss_acceptance} -| | ... | ${perf_pdr_loss_acceptance_type} - -| tc09-1518B-2t2c-eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-ndrdisc -| | [Documentation] -| | ... | [Cfg] DUT runs L2BD switching config with 2 phy cores,\ -| | ... | 1 receive queue per NIC port. [Ver] Find NDR for 1518 Byte frames\ -| | ... | using binary search start at 40GE linerate, step 10kpps. -| | ... -| | [Tags] | 1518B | 2C | NDRDISC | SKIP_PATCH -| | ... -| | ${framesize}= | Set Variable | ${1518} -| | ${min_rate}= | Set Variable | ${10000} -| | ${max_rate}= | Calculate pps | ${s_24.5G} | ${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 -| | Given Add worker threads and rxqueues to all DUTs | 2 -| | And Add PCI devices to all DUTs -| | And 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} -| | Then Find NDR using binary search and pps | ${framesize} | ${binary_min} -| | ... | ${binary_max} | ${traffic_profile} -| | ... | ${min_rate} | ${max_rate} | ${threshold} - -| tc10-1518B-2t2c-eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-pdrdisc -| | [Documentation] -| | ... | [Cfg] DUT runs L2BD switching config with 2 phy cores,\ -| | ... | 1 receive queue per NIC port. [Ver] Find PDR for 1518 Byte frames\ -| | ... | using binary search start at 40GE linerate, step 10kpps, LT=0.5%. -| | ... -| | [Tags] | 1518B | 2C | PDRDISC | SKIP_PATCH -| | ... -| | ${framesize}= | Set Variable | ${1518} -| | ${min_rate}= | Set Variable | ${10000} -| | ${max_rate}= | Calculate pps | ${s_24.5G} | ${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 -| | Given Add worker threads and rxqueues to all DUTs | 2 -| | And Add PCI devices to all DUTs -| | And 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} -| | Then Find PDR using binary search and pps | ${framesize} | ${binary_min} -| | ... | ${binary_max} | ${traffic_profile} -| | ... | ${min_rate} | ${max_rate} | ${threshold} | ${perf_pdr_loss_acceptance} -| | ... | ${perf_pdr_loss_acceptance_type} - -| tc11-IMIX-2t2c-eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-ndrdisc -| | [Documentation] -| | ... | [Cfg] DUT runs L2BD switching config with 2 phy cores,\ -| | ... | 1 receive queue per NIC port. [Ver] Find NDR for IMIX_v4_1 frame\ -| | ... | size using binary search start at 40GE linerate, step 10kpps. -| | ... | IMIX_v4_1 = (28x64B; 16x570B; 4x1518B) -| | ... -| | [Tags] | IMIX | 2C | NDRDISC | SKIP_PATCH -| | ... -| | ${framesize}= | Set Variable | IMIX_v4_1 -| | ${min_rate}= | Set Variable | ${10000} -| | ${max_rate}= | Calculate pps | ${s_24.5G} | ${353.83333} -| | ${binary_min}= | Set Variable | ${min_rate} -| | ${binary_max}= | Set Variable | ${max_rate} -| | ${threshold}= | Set Variable | ${min_rate} -| | ${dut1_vm_refs}= | Create Dictionary -| | ${dut2_vm_refs}= | Create Dictionary -| | Given Add worker threads and rxqueues to all DUTs | 2 -| | And Add PCI devices to all DUTs -| | And 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} -| | Then Find NDR using binary search and pps | ${framesize} | ${binary_min} -| | ... | ${binary_max} | ${traffic_profile} -| | ... | ${min_rate} | ${max_rate} | ${threshold} - -| tc12-IMIX-2t2c-eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-pdrdisc -| | [Documentation] -| | ... | [Cfg] DUT runs L2BD switching config with 2 phy cores,\ -| | ... | 1 receive queue per NIC port. [Ver] Find PDR for IMIX_v4_1 frame\ -| | ... | size using binary search start at 40GE linerate, step 10kpps, LT=0.5%. -| | ... | IMIX_v4_1 = (28x64B; 16x570B; 4x1518B) -| | ... -| | [Tags] | IMIX | 2C | PDRDISC | SKIP_PATCH -| | ... -| | ${framesize}= | Set Variable | IMIX_v4_1 -| | ${min_rate}= | Set Variable | ${10000} -| | ${max_rate}= | Calculate pps | ${s_24.5G} | ${353.83333} -| | ${binary_min}= | Set Variable | ${min_rate} -| | ${binary_max}= | Set Variable | ${max_rate} -| | ${threshold}= | Set Variable | ${min_rate} -| | ${dut1_vm_refs}= | Create Dictionary -| | ${dut2_vm_refs}= | Create Dictionary -| | Given Add worker threads and rxqueues to all DUTs | 2 -| | And Add PCI devices to all DUTs -| | And 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} -| | Then Find PDR using binary search and pps | ${framesize} | ${binary_min} -| | ... | ${binary_max} | ${traffic_profile} -| | ... | ${min_rate} | ${max_rate} | ${threshold} | ${perf_pdr_loss_acceptance} -| | ... | ${perf_pdr_loss_acceptance_type} - -| tc13-64B-4t4c-eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-ndrdisc -| | [Documentation] -| | ... | [Cfg] DUT runs L2BD switching config with 4 phy cores,\ -| | ... | 2 receive queues per NIC port. [Ver] Find NDR for 64 Byte frames\ -| | ... | using binary search start at 40GE linerate, step 10kpps. -| | ... -| | [Tags] | 64B | 4C | NDRDISC -| | ... -| | ${framesize}= | Set Variable | ${64} -| | ${min_rate}= | Set Variable | ${10000} -| | ${max_rate}= | Set Variable | ${s_18.75Mpps} -| | ${binary_min}= | Set Variable | ${min_rate} -| | ${binary_max}= | Set Variable | ${max_rate} -| | ${threshold}= | Set Variable | ${min_rate} -| | ${dut1_vm_refs}= | Create Dictionary -| | ${dut2_vm_refs}= | Create Dictionary -| | Given Add worker threads and rxqueues to all DUTs | 4 -| | And Add PCI devices to all DUTs -| | And 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} -| | Then Find NDR using binary search and pps | ${framesize} | ${binary_min} -| | ... | ${binary_max} | ${traffic_profile} -| | ... | ${min_rate} | ${max_rate} | ${threshold} - -| tc14-64B-4t4c-eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-pdrdisc -| | [Documentation] -| | ... | [Cfg] DUT runs L2BD switching config with 4 phy cores,\ -| | ... | 2 receive queues per NIC port. [Ver] Find PDR for 64 Byte frames\ -| | ... | using binary search start at 40GE linerate, step 10kpps, LT=0.5%. -| | ... -| | [Tags] | 64B | 4C | PDRDISC | SKIP_PATCH -| | ... -| | ${framesize}= | Set Variable | ${64} -| | ${min_rate}= | Set Variable | ${10000} -| | ${max_rate}= | Set Variable | ${s_18.75Mpps} -| | ${binary_min}= | Set Variable | ${min_rate} -| | ${binary_max}= | Set Variable | ${max_rate} -| | ${threshold}= | Set Variable | ${min_rate} -| | ${dut1_vm_refs}= | Create Dictionary -| | ${dut2_vm_refs}= | Create Dictionary -| | Given Add worker threads and rxqueues to all DUTs | 4 -| | And Add PCI devices to all DUTs -| | And 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} -| | Then Find PDR using binary search and pps | ${framesize} | ${binary_min} -| | ... | ${binary_max} | ${traffic_profile} -| | ... | ${min_rate} | ${max_rate} | ${threshold} | ${perf_pdr_loss_acceptance} -| | ... | ${perf_pdr_loss_acceptance_type} - -| tc15-1518B-4t4c-eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-ndrdisc -| | [Documentation] -| | ... | [Cfg] DUT runs L2BD switching config with 4 phy cores,\ -| | ... | 2 receive queues per NIC port. [Ver] Find NDR for 1518 Byte frames\ -| | ... | using binary search start at 40GE linerate, step 10kpps. -| | ... -| | [Tags] | 1518B | 4C | NDRDISC | SKIP_PATCH -| | ... -| | ${framesize}= | Set Variable | ${1518} -| | ${min_rate}= | Set Variable | ${10000} -| | ${max_rate}= | Calculate pps | ${s_24.5G} | ${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 -| | Given Add worker threads and rxqueues to all DUTs | 4 -| | And Add PCI devices to all DUTs -| | And 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} -| | Then Find NDR using binary search and pps | ${framesize} | ${binary_min} -| | ... | ${binary_max} | ${traffic_profile} -| | ... | ${min_rate} | ${max_rate} | ${threshold} - -| tc16-1518B-4t4c-eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-pdrdisc -| | [Documentation] -| | ... | [Cfg] DUT runs L2BD switching config with 4 phy cores,\ -| | ... | 2 receive queues per NIC port. [Ver] Find PDR for 1518 Byte frames\ -| | ... | using binary search start at 40GE linerate, step 10kpps, LT=0.5%. -| | ... -| | [Tags] | 1518B | 4C | PDRDISC | SKIP_PATCH -| | ... -| | ${framesize}= | Set Variable | ${1518} -| | ${min_rate}= | Set Variable | ${10000} -| | ${max_rate}= | Calculate pps | ${s_24.5G} | ${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 -| | Given Add worker threads and rxqueues to all DUTs | 4 -| | And Add PCI devices to all DUTs -| | And 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} -| | Then Find PDR using binary search and pps | ${framesize} | ${binary_min} -| | ... | ${binary_max} | ${traffic_profile} -| | ... | ${min_rate} | ${max_rate} | ${threshold} | ${perf_pdr_loss_acceptance} -| | ... | ${perf_pdr_loss_acceptance_type} - -| tc17-IMIX-4t4c-eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-ndrdisc -| | [Documentation] -| | ... | [Cfg] DUT runs L2BD switching config with 4 phy cores,\ -| | ... | 2 receive queues per NIC port. [Ver] Find NDR for IMIX_v4_1 frame\ -| | ... | size using binary search start at 40GE linerate, step 10kpps. -| | ... | IMIX_v4_1 = (28x64B; 16x570B; 4x1518B) -| | ... -| | [Tags] | IMIX | 4C | NDRDISC | SKIP_PATCH -| | ... -| | ${framesize}= | Set Variable | IMIX_v4_1 -| | ${min_rate}= | Set Variable | ${10000} -| | ${max_rate}= | Calculate pps | ${s_24.5G} | ${353.83333} -| | ${binary_min}= | Set Variable | ${min_rate} -| | ${binary_max}= | Set Variable | ${max_rate} -| | ${threshold}= | Set Variable | ${min_rate} -| | ${dut1_vm_refs}= | Create Dictionary -| | ${dut2_vm_refs}= | Create Dictionary -| | Given Add worker threads and rxqueues to all DUTs | 4 -| | And Add PCI devices to all DUTs -| | And 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} -| | Then Find NDR using binary search and pps | ${framesize} | ${binary_min} -| | ... | ${binary_max} | ${traffic_profile} -| | ... | ${min_rate} | ${max_rate} | ${threshold} - -| tc18-IMIX-4t4c-eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-pdrdisc -| | [Documentation] -| | ... | [Cfg] DUT runs L2BD switching config with 4 phy cores,\ -| | ... | 2 receive queues per NIC port. [Ver] Find PDR for IMIX_v4_1 frame\ -| | ... | size using binary search start at 40GE linerate, step 10kpps, LT=0.5%. -| | ... | IMIX_v4_1 = (28x64B; 16x570B; 4x1518B) -| | ... -| | [Tags] | IMIX | 4C | PDRDISC | SKIP_PATCH -| | ... -| | ${framesize}= | Set Variable | IMIX_v4_1 -| | ${min_rate}= | Set Variable | ${10000} -| | ${max_rate}= | Calculate pps | ${s_24.5G} | ${353.83333} -| | ${binary_min}= | Set Variable | ${min_rate} -| | ${binary_max}= | Set Variable | ${max_rate} -| | ${threshold}= | Set Variable | ${min_rate} -| | ${dut1_vm_refs}= | Create Dictionary -| | ${dut2_vm_refs}= | Create Dictionary -| | Given Add worker threads and rxqueues to all DUTs | 4 -| | And Add PCI devices to all DUTs -| | And 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} -| | Then Find PDR using binary search and pps | ${framesize} | ${binary_min} -| | ... | ${binary_max} | ${traffic_profile} -| | ... | ${min_rate} | ${max_rate} | ${threshold} | ${perf_pdr_loss_acceptance} -| | ... | ${perf_pdr_loss_acceptance_type} diff --git a/tests/vpp/perf/vm_vhost/40ge2p1xl710-eth-l2bdbasemaclrn-eth-4vhostvr1024-2vm-mrr.robot b/tests/vpp/perf/vm_vhost/40ge2p1xl710-eth-l2bdbasemaclrn-eth-4vhostvr1024-2vm-mrr.robot index c65e4f9ffe..aa5657b705 100644 --- a/tests/vpp/perf/vm_vhost/40ge2p1xl710-eth-l2bdbasemaclrn-eth-4vhostvr1024-2vm-mrr.robot +++ b/tests/vpp/perf/vm_vhost/40ge2p1xl710-eth-l2bdbasemaclrn-eth-4vhostvr1024-2vm-mrr.robot @@ -27,7 +27,7 @@ | ... | dut1_node=${dut1} | dut1_vm_refs=${dut1_vm_refs} | ... | dut2_node=${dut2} | dut2_vm_refs=${dut2_vm_refs} | ... -| Test Template | Local template +| Test Template | Local Template | ... | Documentation | *Raw results L2BD test cases with vhost* | ... @@ -64,7 +64,7 @@ | ${traffic_profile}= | trex-sl-3n-ethip4-ip4src254 *** Keywords *** -| Local template +| Local Template | | [Documentation] | | ... | [Cfg] DUT runs L2BD switching config. | | ... | Each DUT uses ${phy_cores} physical core(s) for worker threads. @@ -79,74 +79,67 @@ | | ... | | [Arguments] | ${framesize} | ${phy_cores} | ${rxq}=${None} | | ... -| | Set Test Variable | ${framesize} -| | ${get_framesize}= | Get Frame Size | ${framesize} -| | ${max_rate}= | Calculate pps | ${s_24.5G} | ${get_framesize} -| | ${max_rate}= | Set Variable If -| | ... | ${max_rate} > ${s_18.75Mpps} | ${s_18.75Mpps} | ${max_rate} | | ${dut1_vm_refs}= | Create Dictionary | | ${dut2_vm_refs}= | Create Dictionary | | Set Test Variable | ${dut1_vm_refs} | | Set Test Variable | ${dut2_vm_refs} -| | ${jumbo_frames}= | Set Variable If | ${get_framesize} < ${1522} -| | ... | ${False} | ${True} -| | Set Test Variable | ${jumbo_frames} | | ... | | Given Add worker threads and rxqueues to all DUTs | ${phy_cores} | ${rxq} | | And Add PCI devices to all DUTs -| | And Run Keyword If | ${get_framesize} < ${1522} -| | ... | Add no multi seg to all DUTs +| | ${max_rate} | ${jumbo} = | Get Max Rate And Jumbo And Handle Multi Seg +| | ... | ${s_24.5G} | ${framesize} | pps_limit=${s_18.75Mpps} | | And Apply startup configuration on all VPP DUTs | | When Initialize L2 bridge domains with Vhost-User for '2' VMs in 3-node circular topology +| | Set Test Variable | \${jumbo_frames} | ${jumbo} | | And Configure '2' guest VMs with dpdk-testpmd connected via vhost-user in 3-node circular topology | | Then Traffic should pass with maximum rate | | ... | ${max_rate}pps | ${framesize} | ${traffic_profile} *** Test Cases *** -| tc01-64B-1t1c-eth-l2bdbasemaclrn-eth-4vhostvr1024-2vm-mrr +| tc01-64B-1c-eth-l2bdbasemaclrn-eth-4vhostvr1024-2vm-mrr | | [Tags] | 64B | 1C | | framesize=${64} | phy_cores=${1} -| tc02-1518B-1t1c-eth-l2bdbasemaclrn-eth-4vhostvr1024-2vm-mrr -| | [Tags] | 1518B | 1C -| | framesize=${1518} | phy_cores=${1} - -| tc03-9000B-1t1c-eth-l2bdbasemaclrn-eth-4vhostvr1024-2vm-mrr -| | [Tags] | 9000B | 1C -| | framesize=${9000} | phy_cores=${1} - -| tc04-IMIX-1t1c-eth-l2bdbasemaclrn-eth-4vhostvr1024-2vm-mrr -| | [Tags] | IMIX | 1C -| | framesize=IMIX_v4_1 | phy_cores=${1} - -| tc05-64B-2t2c-eth-l2bdbasemaclrn-eth-4vhostvr1024-2vm-mrr +| tc02-64B-2c-eth-l2bdbasemaclrn-eth-4vhostvr1024-2vm-mrr | | [Tags] | 64B | 2C | | framesize=${64} | phy_cores=${2} -| tc06-1518B-2t2c-eth-l2bdbasemaclrn-eth-4vhostvr1024-2vm-mrr -| | [Tags] | 1518B | 2C -| | framesize=${1518} | phy_cores=${2} - -| tc07-9000B-2t2c-eth-l2bdbasemaclrn-eth-4vhostvr1024-2vm-mrr -| | [Tags] | 9000B | 2C -| | framesize=${9000} | phy_cores=${2} - -| tc08-IMIX-2t2c-eth-l2bdbasemaclrn-eth-4vhostvr1024-2vm-mrr -| | [Tags] | IMIX | 2C -| | framesize=IMIX_v4_1 | phy_cores=${2} - -| tc09-64B-4t4c-eth-l2bdbasemaclrn-eth-4vhostvr1024-2vm-mrr +| tc03-64B-4c-eth-l2bdbasemaclrn-eth-4vhostvr1024-2vm-mrr | | [Tags] | 64B | 4C | | framesize=${64} | phy_cores=${4} -| tc10-1518B-4t4c-eth-l2bdbasemaclrn-eth-4vhostvr1024-2vm-mrr +| tc04-1518B-1c-eth-l2bdbasemaclrn-eth-4vhostvr1024-2vm-mrr +| | [Tags] | 1518B | 1C +| | framesize=${1518} | phy_cores=${1} + +| tc05-1518B-2c-eth-l2bdbasemaclrn-eth-4vhostvr1024-2vm-mrr +| | [Tags] | 1518B | 2C +| | framesize=${1518} | phy_cores=${2} + +| tc06-1518B-4c-eth-l2bdbasemaclrn-eth-4vhostvr1024-2vm-mrr | | [Tags] | 1518B | 4C | | framesize=${1518} | phy_cores=${4} -| tc11-9000B-4t4c-eth-l2bdbasemaclrn-eth-4vhostvr1024-2vm-mrr +| tc07-9000B-1c-eth-l2bdbasemaclrn-eth-4vhostvr1024-2vm-mrr +| | [Tags] | 9000B | 1C +| | framesize=${9000} | phy_cores=${1} + +| tc08-9000B-2c-eth-l2bdbasemaclrn-eth-4vhostvr1024-2vm-mrr +| | [Tags] | 9000B | 2C +| | framesize=${9000} | phy_cores=${2} + +| tc09-9000B-4c-eth-l2bdbasemaclrn-eth-4vhostvr1024-2vm-mrr | | [Tags] | 9000B | 4C | | framesize=${9000} | phy_cores=${4} -| tc12-IMIX-4t4c-eth-l2bdbasemaclrn-eth-4vhostvr1024-2vm-mrr +| tc10-IMIX-1c-eth-l2bdbasemaclrn-eth-4vhostvr1024-2vm-mrr +| | [Tags] | IMIX | 1C +| | framesize=IMIX_v4_1 | phy_cores=${1} + +| tc11-IMIX-2c-eth-l2bdbasemaclrn-eth-4vhostvr1024-2vm-mrr +| | [Tags] | IMIX | 2C +| | framesize=IMIX_v4_1 | phy_cores=${2} + +| tc12-IMIX-4c-eth-l2bdbasemaclrn-eth-4vhostvr1024-2vm-mrr | | [Tags] | IMIX | 4C | | framesize=IMIX_v4_1 | phy_cores=${4} diff --git a/tests/vpp/perf/vm_vhost/40ge2p1xl710-eth-l2bdbasemaclrn-eth-4vhostvr1024-2vm-ndrpdr.robot b/tests/vpp/perf/vm_vhost/40ge2p1xl710-eth-l2bdbasemaclrn-eth-4vhostvr1024-2vm-ndrpdr.robot new file mode 100644 index 0000000000..6917303248 --- /dev/null +++ b/tests/vpp/perf/vm_vhost/40ge2p1xl710-eth-l2bdbasemaclrn-eth-4vhostvr1024-2vm-ndrpdr.robot @@ -0,0 +1,150 @@ +# Copyright (c) 2018 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 | NDRPDR +| ... | NIC_Intel-XL710 | ETH | L2BDMACLRN | BASE | VHOST | 2VM | VHOST_1024 +| ... +| Suite Setup | Set up 3-node performance topology with DUT's NIC model +| ... | L2 | Intel-XL710 +| 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} +| ... +| Test Template | Local Template +| ... +| Documentation | *RFC2544: Pkt 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. +| ... | *[Cfg] DUT configuration:* DUT1 and DUT2 are configured with L2 bridge- +| ... | domain and MAC learning enabled. Qemu Guests are connected to VPP via +| ... | vhost-user interfaces. Guests are running DPDK testpmd interconnecting +| ... | vhost-user interfaces using 5 cores pinned to cpus on NUMA1 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=1024, burst=64. DUT1, DUT2 are tested with 2p40GE NIC XL710 +| ... | 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 MLRsearch library. +| ... | 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. + +*** Variables *** +| ${perf_qemu_qsz}= | 1024 +# CPU settings +| ${system_cpus}= | ${1} +| ${vpp_cpus}= | ${5} +| ${vm_cpus}= | ${5} +# XL710-DA2 bandwidth limit ~49Gbps/2=24.5Gbps +| ${s_24.5G}= | ${24500000000} +# XL710-DA2 Mpps limit 37.5Mpps/2=18.75Mpps +| ${s_18.75Mpps}= | ${18750000} +# Traffic profile: +| ${traffic_profile}= | trex-sl-3n-ethip4-ip4src254 + +*** Keywords *** +| Local Template +| | [Documentation] +| | ... | [Cfg] DUT runs L2BD switching config. +| | ... | Each DUT uses ${phy_cores} physical core(s) for worker threads. +| | ... | [Ver] Measure NDR and PDR values using MLRsearch algorithm.\ +| | ... +| | ... | *Arguments:* +| | ... | - framesize - Framesize in Bytes in integer or string (IMIX_v4_1). +| | ... | Type: integer, string +| | ... | - phy_cores - Number of physical cores. Type: integer +| | ... | - rxq - Number of RX queues, default value: ${None}. Type: integer +| | ... +| | [Arguments] | ${framesize} | ${phy_cores} | ${rxq}=${None} +| | ... +| | Set Test Variable | ${framesize} +| | Set Test Variable | ${min_rate} | ${10000} +| | ${dut1_vm_refs}= | Create Dictionary +| | ${dut2_vm_refs}= | Create Dictionary +| | Set Test Variable | ${dut1_vm_refs} +| | Set Test Variable | ${dut2_vm_refs} +| | ... +| | Given Add worker threads and rxqueues to all DUTs | ${phy_cores} | ${rxq} +| | And Add PCI devices to all DUTs +| | ${max_rate} | ${jumbo} = | Get Max Rate And Jumbo And Handle Multi Seg +| | ... | ${s_24.5G} | ${framesize} | pps_limit=${s_18.75Mpps} +| | And Apply startup configuration on all VPP DUTs +| | When Initialize L2 bridge domains with Vhost-User for '2' VMs in 3-node circular topology +| | Set Test Variable | \${jumbo_frames} | ${jumbo} +| | And Configure '2' guest VMs with dpdk-testpmd connected via vhost-user in 3-node circular topology +| | Then Find NDR and PDR intervals using optimized search +| | ... | ${framesize} | ${traffic_profile} | ${min_rate} | ${max_rate} + +*** Test Cases *** +| tc01-64B-1c-eth-l2bdbasemaclrn-eth-4vhostvr1024-2vm-ndrpdr +| | [Tags] | 64B | 1C +| | framesize=${64} | phy_cores=${1} + +| tc02-64B-2c-eth-l2bdbasemaclrn-eth-4vhostvr1024-2vm-ndrpdr +| | [Tags] | 64B | 2C +| | framesize=${64} | phy_cores=${2} + +| tc03-64B-4c-eth-l2bdbasemaclrn-eth-4vhostvr1024-2vm-ndrpdr +| | [Tags] | 64B | 4C +| | framesize=${64} | phy_cores=${4} + +| tc04-1518B-1c-eth-l2bdbasemaclrn-eth-4vhostvr1024-2vm-ndrpdr +| | [Tags] | 1518B | 1C +| | framesize=${1518} | phy_cores=${1} + +| tc05-1518B-2c-eth-l2bdbasemaclrn-eth-4vhostvr1024-2vm-ndrpdr +| | [Tags] | 1518B | 2C +| | framesize=${1518} | phy_cores=${2} + +| tc06-1518B-4c-eth-l2bdbasemaclrn-eth-4vhostvr1024-2vm-ndrpdr +| | [Tags] | 1518B | 4C +| | framesize=${1518} | phy_cores=${4} + +| tc07-9000B-1c-eth-l2bdbasemaclrn-eth-4vhostvr1024-2vm-ndrpdr +| | [Tags] | 9000B | 1C +| | framesize=${9000} | phy_cores=${1} + +| tc08-9000B-2c-eth-l2bdbasemaclrn-eth-4vhostvr1024-2vm-ndrpdr +| | [Tags] | 9000B | 2C +| | framesize=${9000} | phy_cores=${2} + +| tc09-9000B-4c-eth-l2bdbasemaclrn-eth-4vhostvr1024-2vm-ndrpdr +| | [Tags] | 9000B | 4C +| | framesize=${9000} | phy_cores=${4} + +| tc10-IMIX-1c-eth-l2bdbasemaclrn-eth-4vhostvr1024-2vm-ndrpdr +| | [Tags] | IMIX | 1C +| | framesize=IMIX_v4_1 | phy_cores=${1} + +| tc11-IMIX-2c-eth-l2bdbasemaclrn-eth-4vhostvr1024-2vm-ndrpdr +| | [Tags] | IMIX | 2C +| | framesize=IMIX_v4_1 | phy_cores=${2} + +| tc12-IMIX-4c-eth-l2bdbasemaclrn-eth-4vhostvr1024-2vm-ndrpdr +| | [Tags] | IMIX | 4C +| | framesize=IMIX_v4_1 | phy_cores=${4} diff --git a/tests/vpp/perf/vm_vhost/40ge2p1xl710-eth-l2bdbasemaclrn-eth-4vhostvr1024-2vm-ndrpdrdisc.robot b/tests/vpp/perf/vm_vhost/40ge2p1xl710-eth-l2bdbasemaclrn-eth-4vhostvr1024-2vm-ndrpdrdisc.robot deleted file mode 100644 index 1b350e5fcd..0000000000 --- a/tests/vpp/perf/vm_vhost/40ge2p1xl710-eth-l2bdbasemaclrn-eth-4vhostvr1024-2vm-ndrpdrdisc.robot +++ /dev/null @@ -1,183 +0,0 @@ -# Copyright (c) 2018 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-XL710 | ETH | L2BDMACLRN | BASE | VHOST | VM | VHOST_1024 -| ... -| Suite Setup | Set up 3-node performance topology with DUT's NIC model -| ... | L2 | Intel-XL710 -| 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} -| ... -| Test Template | Local template -| ... -| 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. -| ... | *[Cfg] DUT configuration:* DUT1 and DUT2 are configured with L2 bridge- -| ... | domain and MAC learning enabled. Qemu Guests are connected to VPP via -| ... | vhost-user interfaces. Guests are running DPDK testpmd interconnecting -| ... | vhost-user interfaces using 5 cores pinned to cpus on NUMA1 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=1024, burst=64. DUT1, DUT2 are tested with 2p40GE NIC XL710 -| ... | 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 *** -| ${perf_qemu_qsz}= | 1024 -# XL710-DA2 bandwidth limit ~49Gbps/2=24.5Gbps -| ${s_24.5G}= | ${24500000000} -# XL710-DA2 Mpps limit 37.5Mpps/2=18.75Mpps -| ${s_18.75Mpps}= | ${18750000} -# CPU settings -| ${system_cpus}= | ${1} -| ${vpp_cpus}= | ${5} -| ${vm_cpus}= | ${5} -# Traffic profile: -| ${traffic_profile}= | trex-sl-3n-ethip4-ip4src254 - -*** Keywords *** -| Local template -| | [Arguments] | ${phy_cores} | ${framesize} | ${search_type} | ${rxq}=${None} -| | ... | ${min_rate}=${10000} -| | ... -| | Set Test Variable | ${framesize} -| | Set Test Variable | ${min_rate} -| | ${get_framesize}= | Get Frame Size | ${framesize} -| | ${max_rate}= | Calculate pps | ${s_24.5G} | ${get_framesize} -| | ${max_rate}= | Set Variable If -| | ... | ${max_rate} > ${s_18.75Mpps} | ${s_18.75Mpps} | ${max_rate} -| | ${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} -| | ${jumbo_frames}= | Set Variable If | ${get_framesize} < ${1522} -| | ... | ${False} | ${True} -| | Set Test Variable | ${jumbo_frames} -| | ... -| | Given Add worker threads and rxqueues to all DUTs | ${phy_cores} | ${rxq} -| | And Add PCI devices to all DUTs -| | And Run Keyword If | ${get_framesize} < ${1522} -| | ... | Add no multi seg to all DUTs -| | And Apply startup configuration on all VPP DUTs -| | When Initialize L2 bridge domains with Vhost-User for '2' VMs in 3-node circular topology -| | And Configure '2' guest VMs with dpdk-testpmd connected via vhost-user in 3-node circular topology -| | Then Run Keyword If | '${search_type}' == 'NDR' -| | ... | Find NDR using binary search and pps -| | ... | ${framesize} | ${binary_min} | ${binary_max} | ${traffic_profile} -| | ... | ${min_rate} | ${max_rate} | ${threshold} -| | ... | ELSE IF | '${search_type}' == 'PDR' -| | ... | Find PDR using binary search and pps -| | ... | ${framesize} | ${binary_min} | ${binary_max} | ${traffic_profile} -| | ... | ${min_rate} | ${max_rate} | ${threshold} -| | ... | ${perf_pdr_loss_acceptance} | ${perf_pdr_loss_acceptance_type} - -*** Test Cases *** -| tc01-64B-1t1c-eth-l2bdbasemaclrn-eth-4vhostvr1024-2vm-ndrdisc -| | [Tags] | 64B | 1C | NDRDISC -| | phy_cores=${1} | framesize=${64} | search_type=NDR - -| tc02-64B-1t1c-eth-l2bdbasemaclrn-eth-4vhostvr1024-2vm-pdrdisc -| | [Tags] | 64B | 1C | PDRDISC | SKIP_PATCH -| | phy_cores=${1} | framesize=${64} | search_type=PDR - -| tc03-1518B-1t1c-eth-l2bdbasemaclrn-eth-4vhostvr1024-2vm-ndrdisc -| | [Tags] | 1518B | 1C | NDRDISC -| | phy_cores=${1} | framesize=${1518} | search_type=NDR - -| tc04-1518B-1t1c-eth-l2bdbasemaclrn-eth-4vhostvr1024-2vm-pdrdisc -| | [Tags] | 1518B | 1C | PDRDISC | SKIP_PATCH -| | phy_cores=${1} | framesize=${1518} | search_type=PDR - -| tc05-IMIX-1t1c-eth-l2bdbasemaclrn-eth-4vhostvr1024-2vm-ndrdisc -| | [Tags] | IMIX | 1C | NDRDISC -| | phy_cores=${1} | framesize=IMIX_v4_1 | search_type=NDR - -| tc06-IMIX-1t1c-eth-l2bdbasemaclrn-eth-4vhostvr1024-2vm-pdrdisc -| | [Tags] | IMIX | 1C | PDRDISC | SKIP_PATCH -| | phy_cores=${1} | framesize=IMIX_v4_1 | search_type=PDR - -| tc07-64B-2t2c-eth-l2bdbasemaclrn-eth-4vhostvr1024-2vm-ndrdisc -| | [Tags] | 64B | 2C | NDRDISC -| | phy_cores=${2} | framesize=${64} | search_type=NDR - -| tc08-64B-2t2c-eth-l2bdbasemaclrn-eth-4vhostvr1024-2vm-pdrdisc -| | [Tags] | 64B | 2C | PDRDISC | SKIP_PATCH -| | phy_cores=${2} | framesize=${64} | search_type=PDR - -| tc09-1518B-2t2c-eth-l2bdbasemaclrn-eth-4vhostvr1024-2vm-ndrdisc -| | [Tags] | 1518B | 2C | NDRDISC | SKIP_PATCH -| | phy_cores=${2} | framesize=${1518} | search_type=NDR - -| tc10-1518B-2t2c-eth-l2bdbasemaclrn-eth-4vhostvr1024-2vm-pdrdisc -| | [Tags] | 1518B | 2C | PDRDISC | SKIP_PATCH -| | phy_cores=${2} | framesize=${1518} | search_type=PDR - -| tc11-IMIX-2t2c-eth-l2bdbasemaclrn-eth-4vhostvr1024-2vm-ndrdisc -| | [Tags] | IMIX | 2C | NDRDISC | SKIP_PATCH -| | phy_cores=${2} | framesize=IMIX_v4_1 | search_type=NDR - -| tc12-IMIX-2t2c-eth-l2bdbasemaclrn-eth-4vhostvr1024-2vm-pdrdisc -| | [Tags] | IMIX | 2C | PDRDISC | SKIP_PATCH -| | phy_cores=${2} | framesize=IMIX_v4_1 | search_type=PDR - -| tc13-64B-4t4c-eth-l2bdbasemaclrn-eth-4vhostvr1024-2vm-ndrdisc -| | [Tags] | 64B | 4C | NDRDISC -| | phy_cores=${4} | framesize=${64} | search_type=NDR - -| tc14-64B-4t4c-eth-l2bdbasemaclrn-eth-4vhostvr1024-2vm-pdrdisc -| | [Tags] | 64B | 4C | PDRDISC | SKIP_PATCH -| | phy_cores=${4} | framesize=${64} | search_type=PDR - -| tc15-1518B-4t4c-eth-l2bdbasemaclrn-eth-4vhostvr1024-2vm-ndrdisc -| | [Tags] | 1518B | 4C | NDRDISC | SKIP_PATCH -| | phy_cores=${4} | framesize=${1518} | search_type=NDR - -| tc16-1518B-4t4c-eth-l2bdbasemaclrn-eth-4vhostvr1024-2vm-pdrdisc -| | [Tags] | 1518B | 4C | PDRDISC | SKIP_PATCH -| | phy_cores=${4} | framesize=${1518} | search_type=PDR - -| tc17-IMIX-4t4c-eth-l2bdbasemaclrn-eth-4vhostvr1024-2vm-ndrdisc -| | [Tags] | IMIX | 4C | NDRDISC | SKIP_PATCH -| | phy_cores=${4} | framesize=IMIX_v4_1 | search_type=NDR - -| tc18-IMIX-4t4c-eth-l2bdbasemaclrn-eth-4vhostvr1024-2vm-pdrdisc -| | [Tags] | IMIX | 4C | PDRDISC | SKIP_PATCH -| | phy_cores=${4} | framesize=IMIX_v4_1 | search_type=PDR diff --git a/tests/vpp/perf/vm_vhost/40ge2p1xl710-eth-l2xcbase-eth-4vhostvr1024-2vm-mrr.robot b/tests/vpp/perf/vm_vhost/40ge2p1xl710-eth-l2xcbase-eth-4vhostvr1024-2vm-mrr.robot new file mode 100644 index 0000000000..55cca6777f --- /dev/null +++ b/tests/vpp/perf/vm_vhost/40ge2p1xl710-eth-l2xcbase-eth-4vhostvr1024-2vm-mrr.robot @@ -0,0 +1,138 @@ +# Copyright (c) 2018 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 | MRR +| ... | NIC_Intel-XL710 | ETH | L2XCFWD | BASE | VHOST | VM | VHOST_1024 +| ... +| Suite Setup | Set up 3-node performance topology with DUT's NIC model +| ... | L2 | Intel-XL710 +| Suite Teardown | Tear down 3-node performance topology +| ... +| Test Setup | Set up performance test +| Test Teardown | Tear down performance mrr test with vhost and VM with dpdk-testpmd +| ... | dut1_node=${dut1} | dut1_vm_refs=${dut1_vm_refs} +| ... | dut2_node=${dut2} | dut2_vm_refs=${dut2_vm_refs} +| ... +| Test Template | Local Template +| ... +| Documentation | *Raw results 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. +| ... | *[Cfg] DUT configuration:* DUT1 and DUT2 are configured with L2 cross- +| ... | connects. Qemu Guests are connected to VPP via vhost-user interfaces. +| ... | Guests are running DPDK testpmd interconnecting vhost-user interfaces +| ... | using 5 cores pinned to cpus on NUMA1 (cpus 24-28 and 29-34) 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=1024, burst=64. DUT1, DUT2 are tested with 2p40GE NIC XL710 +| ... | by Intel. +| ... | *[Ver] TG verification:* In MaxReceivedRate test TG sends traffic +| ... | at line rate and reports total received/sent packets over trial period. +| ... | 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 *** +| ${perf_qemu_qsz}= | 1024 +# XL710-DA2 bandwidth limit ~49Gbps/2=24.5Gbps +| ${s_24.5G}= | ${24500000000} +# XL710-DA2 Mpps limit 37.5Mpps/2=18.75Mpps +| ${s_18.75Mpps}= | ${18750000} +# CPU settings +| ${system_cpus}= | ${1} +| ${vpp_cpus}= | ${5} +| ${vm_cpus}= | ${5} +# Traffic profile: +| ${traffic_profile}= | trex-sl-3n-ethip4-ip4src254 + +*** Keywords *** +| Local Template +| | [Documentation] | FIXME. +| | [Arguments] | ${framesize} | ${phy_cores} | ${rxq}=${None} +| | ... +| | Set Test Variable | ${framesize} +| | Set Test Variable | ${min_rate} | ${10000} +| | ${dut1_vm_refs}= | Create Dictionary +| | ${dut2_vm_refs}= | Create Dictionary +| | Set Test Variable | ${dut1_vm_refs} +| | Set Test Variable | ${dut2_vm_refs} +| | ... +| | Given Add worker threads and rxqueues to all DUTs | ${phy_cores} | ${rxq} +| | And Add PCI devices to all DUTs +| | ${max_rate} | ${jumbo} = | Get Max Rate And Jumbo And Handle Multi Seg +| | ... | ${s_24.5G} | ${framesize} | pps_limit=${s_18.75Mpps} +| | And Apply startup configuration on all VPP DUTs +| | When Initialize L2 xconnect with Vhost-User for '2' in 3-node circular topology +| | Set Test Variable | \${jumbo_frames} | ${jumbo} +| | And Configure '2' guest VMs with dpdk-testpmd connected via vhost-user in 3-node circular topology +| | Then Traffic should pass with maximum rate +| | ... | ${max_rate}pps | ${framesize} | ${traffic_profile} + +*** Test Cases *** +| tc01-64B-1c-eth-l2xcbase-eth-4vhostvr1024-2vm-mrr +| | [Tags] | 64B | 1C +| | framesize=${64} | phy_cores=${1} + +| tc02-64B-2c-eth-l2xcbase-eth-4vhostvr1024-2vm-mrr +| | [Tags] | 64B | 2C +| | framesize=${64} | phy_cores=${2} + +| tc03-64B-4c-eth-l2xcbase-eth-4vhostvr1024-2vm-mrr +| | [Tags] | 64B | 4C +| | framesize=${64} | phy_cores=${4} + +| tc04-1518B-1c-eth-l2xcbase-eth-4vhostvr1024-2vm-mrr +| | [Tags] | 1518B | 1C +| | framesize=${1518} | phy_cores=${1} + +| tc05-1518B-2c-eth-l2xcbase-eth-4vhostvr1024-2vm-mrr +| | [Tags] | 1518B | 2C +| | framesize=${1518} | phy_cores=${2} + +| tc06-1518B-4c-eth-l2xcbase-eth-4vhostvr1024-2vm-mrr +| | [Tags] | 1518B | 4C +| | framesize=${1518} | phy_cores=${4} + +| tc07-9000B-1c-eth-l2xcbase-eth-4vhostvr1024-2vm-mrr +| | [Tags] | 9000B | 1C +| | framesize=${9000} | phy_cores=${1} + +| tc08-9000B-2c-eth-l2xcbase-eth-4vhostvr1024-2vm-mrr +| | [Tags] | 9000B | 2C +| | framesize=${9000} | phy_cores=${2} + +| tc09-9000B-4c-eth-l2xcbase-eth-4vhostvr1024-2vm-mrr +| | [Tags] | 9000B | 4C +| | framesize=${9000} | phy_cores=${4} + +| tc10-IMIX-1c-eth-l2xcbase-eth-4vhostvr1024-2vm-mrr +| | [Tags] | IMIX | 1C +| | framesize=IMIX_v4_1 | phy_cores=${1} + +| tc11-IMIX-2c-eth-l2xcbase-eth-4vhostvr1024-2vm-mrr +| | [Tags] | IMIX | 2C +| | framesize=IMIX_v4_1 | phy_cores=${2} + +| tc12-IMIX-4c-eth-l2xcbase-eth-4vhostvr1024-2vm-mrr +| | [Tags] | IMIX | 4C +| | framesize=IMIX_v4_1 | phy_cores=${4} diff --git a/tests/vpp/perf/vm_vhost/40ge2p1xl710-eth-l2xcbase-eth-4vhostvr1024-2vm-ndrpdr.robot b/tests/vpp/perf/vm_vhost/40ge2p1xl710-eth-l2xcbase-eth-4vhostvr1024-2vm-ndrpdr.robot new file mode 100644 index 0000000000..3a85649ec5 --- /dev/null +++ b/tests/vpp/perf/vm_vhost/40ge2p1xl710-eth-l2xcbase-eth-4vhostvr1024-2vm-ndrpdr.robot @@ -0,0 +1,142 @@ +# Copyright (c) 2018 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 | NDRPDR +| ... | NIC_Intel-XL710 | ETH | L2XCFWD | BASE | VHOST | VM | VHOST_1024 +| ... +| Suite Setup | Set up 3-node performance topology with DUT's NIC model +| ... | L2 | Intel-XL710 +| 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} +| ... +| Test Template | Local Template +| ... +| 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. +| ... | *[Cfg] DUT configuration:* DUT1 and DUT2 are configured with L2 cross- +| ... | connects. Qemu Guests are connected to VPP via vhost-user interfaces. +| ... | Guests are running DPDK testpmd interconnecting vhost-user interfaces +| ... | using 5 cores pinned to cpus on NUMA1 (cpus 24-28 and 29-34) 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=1024, burst=64. DUT1, DUT2 are tested with 2p40GE NIC XL710 +| ... | 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 MLRsearch library. +| ... | 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 *** +| ${perf_qemu_qsz}= | 1024 +# XL710-DA2 bandwidth limit ~49Gbps/2=24.5Gbps +| ${s_24.5G}= | ${24500000000} +# XL710-DA2 Mpps limit 37.5Mpps/2=18.75Mpps +| ${s_18.75Mpps}= | ${18750000} +# CPU settings +| ${system_cpus}= | ${1} +| ${vpp_cpus}= | ${5} +| ${vm_cpus}= | ${5} +# Traffic profile: +| ${traffic_profile}= | trex-sl-3n-ethip4-ip4src254 + +*** Keywords *** +| Local Template +| | [Documentation] | FIXME. +| | [Arguments] | ${framesize} | ${phy_cores} | ${rxq}=${None} +| | ... +| | Set Test Variable | ${framesize} +| | Set Test Variable | ${min_rate} | ${10000} +| | ${dut1_vm_refs}= | Create Dictionary +| | ${dut2_vm_refs}= | Create Dictionary +| | Set Test Variable | ${dut1_vm_refs} +| | Set Test Variable | ${dut2_vm_refs} +| | ... +| | Given Add worker threads and rxqueues to all DUTs | ${phy_cores} | ${rxq} +| | And Add PCI devices to all DUTs +| | ${max_rate} | ${jumbo} = | Get Max Rate And Jumbo And Handle Multi Seg +| | ... | ${s_24.5G} | ${framesize} | pps_limit=${s_18.75Mpps} +| | And Apply startup configuration on all VPP DUTs +| | When Initialize L2 xconnect with Vhost-User for '2' in 3-node circular topology +| | Set Test Variable | \${jumbo_frames} | ${jumbo} +| | And Configure '2' guest VMs with dpdk-testpmd connected via vhost-user in 3-node circular topology +| | Then Find NDR and PDR intervals using optimized search +| | ... | ${framesize} | ${traffic_profile} | ${min_rate} | ${max_rate} + +*** Test Cases *** +| tc01-64B-1c-eth-l2xcbase-eth-4vhostvr1024-2vm-ndrpdr +| | [Tags] | 64B | 1C +| | framesize=${64} | phy_cores=${1} + +| tc02-64B-2c-eth-l2xcbase-eth-4vhostvr1024-2vm-ndrpdr +| | [Tags] | 64B | 2C +| | framesize=${64} | phy_cores=${2} + +| tc03-64B-4c-eth-l2xcbase-eth-4vhostvr1024-2vm-ndrpdr +| | [Tags] | 64B | 4C +| | framesize=${64} | phy_cores=${4} + +| tc04-1518B-1c-eth-l2xcbase-eth-4vhostvr1024-2vm-ndrpdr +| | [Tags] | 1518B | 1C +| | framesize=${1518} | phy_cores=${1} + +| tc05-1518B-2c-eth-l2xcbase-eth-4vhostvr1024-2vm-ndrpdr +| | [Tags] | 1518B | 2C +| | framesize=${1518} | phy_cores=${2} + +| tc06-1518B-4c-eth-l2xcbase-eth-4vhostvr1024-2vm-ndrpdr +| | [Tags] | 1518B | 4C +| | framesize=${1518} | phy_cores=${4} + +| tc07-9000B-1c-eth-l2xcbase-eth-4vhostvr1024-2vm-ndrpdr +| | [Tags] | 9000B | 1C +| | framesize=${9000} | phy_cores=${1} + +| tc08-9000B-2c-eth-l2xcbase-eth-4vhostvr1024-2vm-ndrpdr +| | [Tags] | 9000B | 2C +| | framesize=${9000} | phy_cores=${2} + +| tc09-9000B-4c-eth-l2xcbase-eth-4vhostvr1024-2vm-ndrpdr +| | [Tags] | 9000B | 4C +| | framesize=${9000} | phy_cores=${4} + +| tc10-IMIX-1c-eth-l2xcbase-eth-4vhostvr1024-2vm-ndrpdr +| | [Tags] | IMIX | 1C +| | framesize=IMIX_v4_1 | phy_cores=${1} + +| tc11-IMIX-2c-eth-l2xcbase-eth-4vhostvr1024-2vm-ndrpdr +| | [Tags] | IMIX | 2C +| | framesize=IMIX_v4_1 | phy_cores=${2} + +| tc12-IMIX-4c-eth-l2xcbase-eth-4vhostvr1024-2vm-ndrpdr +| | [Tags] | IMIX | 4C +| | framesize=IMIX_v4_1 | phy_cores=${4} diff --git a/tests/vpp/perf/vm_vhost/40ge2p1xl710-eth-l2xcbase-eth-4vhostvr1024-2vm-ndrpdrdisc.robot b/tests/vpp/perf/vm_vhost/40ge2p1xl710-eth-l2xcbase-eth-4vhostvr1024-2vm-ndrpdrdisc.robot deleted file mode 100644 index f1f7877fde..0000000000 --- a/tests/vpp/perf/vm_vhost/40ge2p1xl710-eth-l2xcbase-eth-4vhostvr1024-2vm-ndrpdrdisc.robot +++ /dev/null @@ -1,183 +0,0 @@ -# Copyright (c) 2018 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-XL710 | ETH | L2XCFWD | BASE | VHOST | VM | VHOST_1024 -| ... -| Suite Setup | Set up 3-node performance topology with DUT's NIC model -| ... | L2 | Intel-XL710 -| 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} -| ... -| Test Template | Local template -| ... -| 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. -| ... | *[Cfg] DUT configuration:* DUT1 and DUT2 are configured with L2 cross- -| ... | connects. Qemu Guests are connected to VPP via vhost-user interfaces. -| ... | Guests are running DPDK testpmd interconnecting vhost-user interfaces -| ... | using 5 cores pinned to cpus on NUMA1 (cpus 24-28 and 29-34) 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=1024, burst=64. DUT1, DUT2 are tested with 2p40GE NIC XL710 -| ... | 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 *** -| ${perf_qemu_qsz}= | 1024 -# XL710-DA2 bandwidth limit ~49Gbps/2=24.5Gbps -| ${s_24.5G}= | ${24500000000} -# XL710-DA2 Mpps limit 37.5Mpps/2=18.75Mpps -| ${s_18.75Mpps}= | ${18750000} -# CPU settings -| ${system_cpus}= | ${1} -| ${vpp_cpus}= | ${5} -| ${vm_cpus}= | ${5} -# Traffic profile: -| ${traffic_profile}= | trex-sl-3n-ethip4-ip4src254 - -*** Keywords *** -| Local template -| | [Arguments] | ${phy_cores} | ${framesize} | ${search_type} | ${rxq}=${None} -| | ... | ${min_rate}=${10000} -| | ... -| | Set Test Variable | ${framesize} -| | Set Test Variable | ${min_rate} -| | ${get_framesize}= | Get Frame Size | ${framesize} -| | ${max_rate}= | Calculate pps | ${s_24.5G} | ${get_framesize} -| | ${max_rate}= | Set Variable If -| | ... | ${max_rate} > ${s_18.75Mpps} | ${s_18.75Mpps} | ${max_rate} -| | ${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} -| | ${jumbo_frames}= | Set Variable If | ${get_framesize} < ${1522} -| | ... | ${False} | ${True} -| | Set Test Variable | ${jumbo_frames} -| | ... -| | Given Add worker threads and rxqueues to all DUTs | ${phy_cores} | ${rxq} -| | And Add PCI devices to all DUTs -| | And Run Keyword If | ${get_framesize} < ${1522} -| | ... | Add no multi seg to all DUTs -| | And Apply startup configuration on all VPP DUTs -| | When Initialize L2 xconnect with Vhost-User for '2' in 3-node circular topology -| | And Configure '2' guest VMs with dpdk-testpmd connected via vhost-user in 3-node circular topology -| | Then Run Keyword If | '${search_type}' == 'NDR' -| | ... | Find NDR using binary search and pps -| | ... | ${framesize} | ${binary_min} | ${binary_max} | ${traffic_profile} -| | ... | ${min_rate} | ${max_rate} | ${threshold} -| | ... | ELSE IF | '${search_type}' == 'PDR' -| | ... | Find PDR using binary search and pps -| | ... | ${framesize} | ${binary_min} | ${binary_max} | ${traffic_profile} -| | ... | ${min_rate} | ${max_rate} | ${threshold} -| | ... | ${perf_pdr_loss_acceptance} | ${perf_pdr_loss_acceptance_type} - -*** Test Cases *** -| tc01-64B-1t1c-eth-l2xcbase-eth-4vhostvr1024-2vm-ndrdisc -| | [Tags] | 64B | 1C | NDRDISC -| | phy_cores=${1} | framesize=${64} | search_type=NDR - -| tc02-64B-1t1c-eth-l2xcbase-eth-4vhostvr1024-2vm-pdrdisc -| | [Tags] | 64B | 1C | PDRDISC | SKIP_PATCH -| | phy_cores=${1} | framesize=${64} | search_type=PDR - -| tc03-1518B-1t1c-eth-l2xcbase-eth-4vhostvr1024-2vm-ndrdisc -| | [Tags] | 1518B | 1C | NDRDISC -| | phy_cores=${1} | framesize=${1518} | search_type=NDR - -| tc04-1518B-1t1c-eth-l2xcbase-eth-4vhostvr1024-2vm-pdrdisc -| | [Tags] | 1518B | 1C | PDRDISC | SKIP_PATCH -| | phy_cores=${1} | framesize=${1518} | search_type=PDR - -| tc05-IMIX-1t1c-eth-l2xcbase-eth-4vhostvr1024-2vm-ndrdisc -| | [Tags] | IMIX | 1C | NDRDISC -| | phy_cores=${1} | framesize=IMIX_v4_1 | search_type=NDR - -| tc06-IMIX-1t1c-eth-l2xcbase-eth-4vhostvr1024-2vm-pdrdisc -| | [Tags] | IMIX | 1C | PDRDISC | SKIP_PATCH -| | phy_cores=${1} | framesize=IMIX_v4_1 | search_type=PDR - -| tc07-64B-2t2c-eth-l2xcbase-eth-4vhostvr1024-2vm-ndrdisc -| | [Tags] | 64B | 2C | NDRDISC -| | phy_cores=${2} | framesize=${64} | search_type=NDR - -| tc08-64B-2t2c-eth-l2xcbase-eth-4vhostvr1024-2vm-pdrdisc -| | [Tags] | 64B | 2C | PDRDISC | SKIP_PATCH -| | phy_cores=${2} | framesize=${64} | search_type=PDR - -| tc09-1518B-2t2c-eth-l2xcbase-eth-4vhostvr1024-2vm-ndrdisc -| | [Tags] | 1518B | 2C | NDRDISC | SKIP_PATCH -| | phy_cores=${2} | framesize=${1518} | search_type=NDR - -| tc10-1518B-2t2c-eth-l2xcbase-eth-4vhostvr1024-2vm-pdrdisc -| | [Tags] | 1518B | 2C | PDRDISC | SKIP_PATCH -| | phy_cores=${2} | framesize=${1518} | search_type=PDR - -| tc11-IMIX-2t2c-eth-l2xcbase-eth-4vhostvr1024-2vm-ndrdisc -| | [Tags] | IMIX | 2C | NDRDISC | SKIP_PATCH -| | phy_cores=${2} | framesize=IMIX_v4_1 | search_type=NDR - -| tc12-IMIX-2t2c-eth-l2xcbase-eth-4vhostvr1024-2vm-pdrdisc -| | [Tags] | IMIX | 2C | PDRDISC | SKIP_PATCH -| | phy_cores=${2} | framesize=IMIX_v4_1 | search_type=PDR - -| tc13-64B-4t4c-eth-l2xcbase-eth-4vhostvr1024-2vm-ndrdisc -| | [Tags] | 64B | 4C | NDRDISC -| | phy_cores=${4} | framesize=${64} | search_type=NDR - -| tc14-64B-4t4c-eth-l2xcbase-eth-4vhostvr1024-2vm-pdrdisc -| | [Tags] | 64B | 4C | PDRDISC | SKIP_PATCH -| | phy_cores=${4} | framesize=${64} | search_type=PDR - -| tc15-1518B-4t4c-eth-l2xcbase-eth-4vhostvr1024-2vm-ndrdisc -| | [Tags] | 1518B | 4C | NDRDISC | SKIP_PATCH -| | phy_cores=${4} | framesize=${1518} | search_type=NDR - -| tc16-1518B-4t4c-eth-l2xcbase-eth-4vhostvr1024-2vm-pdrdisc -| | [Tags] | 1518B | 4C | PDRDISC | SKIP_PATCH -| | phy_cores=${4} | framesize=${1518} | search_type=PDR - -| tc17-IMIX-4t4c-eth-l2xcbase-eth-4vhostvr1024-2vm-ndrdisc -| | [Tags] | IMIX | 4C | NDRDISC | SKIP_PATCH -| | phy_cores=${4} | framesize=IMIX_v4_1 | search_type=NDR - -| tc18-IMIX-4t4c-eth-l2xcbase-eth-4vhostvr1024-2vm-pdrdisc -| | [Tags] | IMIX | 4C | PDRDISC | SKIP_PATCH -| | phy_cores=${4} | framesize=IMIX_v4_1 | search_type=PDR diff --git a/tests/vpp/perf/vm_vhost/40ge2p1xl710-ethip4-ip4base-eth-4vhostvr1024-2vm-mrr.robot b/tests/vpp/perf/vm_vhost/40ge2p1xl710-ethip4-ip4base-eth-4vhostvr1024-2vm-mrr.robot new file mode 100644 index 0000000000..694de887c6 --- /dev/null +++ b/tests/vpp/perf/vm_vhost/40ge2p1xl710-ethip4-ip4base-eth-4vhostvr1024-2vm-mrr.robot @@ -0,0 +1,138 @@ +# Copyright (c) 2018 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 | MRR +| ... | NIC_Intel-XL710 | ETH | IP4FWD | BASE | VHOST | VM | VHOST_1024 +| ... +| Suite Setup | Set up 3-node performance topology with DUT's NIC model +| ... | L3 | Intel-XL710 +| Suite Teardown | Tear down 3-node performance topology +| ... +| Test Setup | Set up performance test +| Test Teardown | Tear down performance mrr test with vhost and VM with dpdk-testpmd +| ... | dut1_node=${dut1} | dut1_vm_refs=${dut1_vm_refs} +| ... | dut2_node=${dut2} | dut2_vm_refs=${dut2_vm_refs} +| ... +| Test Template | Local Template +| ... +| Documentation | *Raw results IP14 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 forIPv4 routing. +| ... | *[Cfg] DUT configuration:* DUT1 and DUT2 are configured with IPv4 +| ... | routing and static IPv4 /24 route entries. Qemu Guests are connected to +| ... | VPP via vhost-user interfaces. Guests are running DPDK testpmd +| ... | interconnecting vhost-user interfaces using 5 cores pinned to cpus on +| ... | NUMA1 (cpus 24-28 and 29-34) 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=1024, burst=64. +| ... | DUT1, DUT2 are tested with 2p40GE NIC XL710 by Intel. +| ... | *[Ver] TG verification:* In MaxReceivedRate test TG sends traffic +| ... | at line rate and reports total received/sent packets over trial period. +| ... | 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 *** +| ${perf_qemu_qsz}= | 1024 +# XL710-DA2 bandwidth limit ~49Gbps/2=24.5Gbps +| ${s_24.5G}= | ${24500000000} +# XL710-DA2 Mpps limit 37.5Mpps/2=18.75Mpps +| ${s_18.75Mpps}= | ${18750000} +# CPU settings +| ${system_cpus}= | ${1} +| ${vpp_cpus}= | ${5} +| ${vm_cpus}= | ${5} +# Traffic profile: +| ${traffic_profile}= | trex-sl-3n-ethip4-ip4src253 + +*** Keywords *** +| Local Template +| | [Documentation] | FIXME. +| | [Arguments] | ${framesize} | ${phy_cores} | ${rxq}=${None} +| | ... +| | Set Test Variable | ${framesize} +| | Set Test Variable | ${min_rate} | ${10000} +| | ${dut1_vm_refs}= | Create Dictionary +| | ${dut2_vm_refs}= | Create Dictionary +| | Set Test Variable | ${dut1_vm_refs} +| | Set Test Variable | ${dut2_vm_refs} +| | ... +| | Given Add worker threads and rxqueues to all DUTs | ${phy_cores} | ${rxq} +| | And Add PCI devices to all DUTs +| | ${max_rate} | ${jumbo} = | Get Max Rate And Jumbo And Handle Multi Seg +| | ... | ${s_24.5G} | ${framesize} | pps_limit=${s_18.75Mpps} +| | And Apply startup configuration on all VPP DUTs +| | When Initialize IPv4 forwarding with vhost for '2' VMs in 3-node circular topology +| | Set Test Variable | \${jumbo_frames} | ${jumbo} +| | And Configure '2' guest VMs with dpdk-testpmd-mac connected via vhost-user in 3-node circular topology +| | Then Traffic should pass with maximum rate +| | ... | ${max_rate}pps | ${framesize} | ${traffic_profile} + +*** Test Cases *** +| tc01-64B-1c-ethip4-ip4base-eth-4vhostvr1024-2vm-mrr +| | [Tags] | 64B | 1C +| | framesize=${64} | phy_cores=${1} + +| tc02-64B-2c-ethip4-ip4base-eth-4vhostvr1024-2vm-mrr +| | [Tags] | 64B | 2C +| | framesize=${64} | phy_cores=${2} + +| tc03-64B-4c-ethip4-ip4base-eth-4vhostvr1024-2vm-mrr +| | [Tags] | 64B | 4C +| | framesize=${64} | phy_cores=${4} + +| tc04-1518B-1c-ethip4-ip4base-eth-4vhostvr1024-2vm-mrr +| | [Tags] | 1518B | 1C +| | framesize=${1518} | phy_cores=${1} + +| tc05-1518B-2c-ethip4-ip4base-eth-4vhostvr1024-2vm-mrr +| | [Tags] | 1518B | 2C +| | framesize=${1518} | phy_cores=${2} + +| tc06-1518B-4c-ethip4-ip4base-eth-4vhostvr1024-2vm-mrr +| | [Tags] | 1518B | 4C +| | framesize=${1518} | phy_cores=${4} + +| tc07-9000B-1c-ethip4-ip4base-eth-4vhostvr1024-2vm-mrr +| | [Tags] | 9000B | 1C +| | framesize=${9000} | phy_cores=${1} + +| tc08-9000B-2c-ethip4-ip4base-eth-4vhostvr1024-2vm-mrr +| | [Tags] | 9000B | 2C +| | framesize=${9000} | phy_cores=${2} + +| tc09-9000B-4c-ethip4-ip4base-eth-4vhostvr1024-2vm-mrr +| | [Tags] | 9000B | 4C +| | framesize=${9000} | phy_cores=${4} + +| tc10-IMIX-1c-ethip4-ip4base-eth-4vhostvr1024-2vm-mrr +| | [Tags] | IMIX | 1C +| | framesize=IMIX_v4_1 | phy_cores=${1} + +| tc11-IMIX-2c-ethip4-ip4base-eth-4vhostvr1024-2vm-mrr +| | [Tags] | IMIX | 2C +| | framesize=IMIX_v4_1 | phy_cores=${2} + +| tc12-IMIX-4c-ethip4-ip4base-eth-4vhostvr1024-2vm-mrr +| | [Tags] | IMIX | 4C +| | framesize=IMIX_v4_1 | phy_cores=${4} diff --git a/tests/vpp/perf/vm_vhost/40ge2p1xl710-ethip4-ip4base-eth-4vhostvr1024-2vm-ndrpdr.robot b/tests/vpp/perf/vm_vhost/40ge2p1xl710-ethip4-ip4base-eth-4vhostvr1024-2vm-ndrpdr.robot new file mode 100644 index 0000000000..0fb2de1216 --- /dev/null +++ b/tests/vpp/perf/vm_vhost/40ge2p1xl710-ethip4-ip4base-eth-4vhostvr1024-2vm-ndrpdr.robot @@ -0,0 +1,142 @@ +# Copyright (c) 2018 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 | NDRPDR +| ... | NIC_Intel-XL710 | ETH | IP4FWD | BASE | VHOST | VM | VHOST_1024 +| ... +| Suite Setup | Set up 3-node performance topology with DUT's NIC model +| ... | L3 | Intel-XL710 +| 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} +| ... +| Test Template | Local Template +| ... +| Documentation | *RFC2544: Packet throughput IP14 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 forIPv4 routing. +| ... | *[Cfg] DUT configuration:* DUT1 and DUT2 are configured with IPv4 +| ... | routing and static IPv4 /24 route entries. Qemu Guests are connected to +| ... | VPP via vhost-user interfaces. Guests are running DPDK testpmd +| ... | interconnecting vhost-user interfaces using 5 cores pinned to cpus on +| ... | NUMA1 (cpus 24-28 and 29-34) 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=1024, burst=64. +| ... | DUT1, DUT2 are tested with 2p40GE NIC XL710 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 MLRsearch library. +| ... | 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 *** +| ${perf_qemu_qsz}= | 1024 +# XL710-DA2 bandwidth limit ~49Gbps/2=24.5Gbps +| ${s_24.5G}= | ${24500000000} +# XL710-DA2 Mpps limit 37.5Mpps/2=18.75Mpps +| ${s_18.75Mpps}= | ${18750000} +# CPU settings +| ${system_cpus}= | ${1} +| ${vpp_cpus}= | ${5} +| ${vm_cpus}= | ${5} +# Traffic profile: +| ${traffic_profile}= | trex-sl-3n-ethip4-ip4src253 + +*** Keywords *** +| Local Template +| | [Documentation] | FIXME. +| | [Arguments] | ${framesize} | ${phy_cores} | ${rxq}=${None} +| | ... +| | Set Test Variable | ${framesize} +| | Set Test Variable | ${min_rate} | ${10000} +| | ${dut1_vm_refs}= | Create Dictionary +| | ${dut2_vm_refs}= | Create Dictionary +| | Set Test Variable | ${dut1_vm_refs} +| | Set Test Variable | ${dut2_vm_refs} +| | ... +| | Given Add worker threads and rxqueues to all DUTs | ${phy_cores} | ${rxq} +| | And Add PCI devices to all DUTs +| | ${max_rate} | ${jumbo} = | Get Max Rate And Jumbo And Handle Multi Seg +| | ... | ${s_24.5G} | ${framesize} | pps_limit=${s_18.75Mpps} +| | And Apply startup configuration on all VPP DUTs +| | When Initialize IPv4 forwarding with vhost for '2' VMs in 3-node circular topology +| | Set Test Variable | \${jumbo_frames} | ${jumbo} +| | And Configure '2' guest VMs with dpdk-testpmd-mac connected via vhost-user in 3-node circular topology +| | Then Find NDR and PDR intervals using optimized search +| | ... | ${framesize} | ${traffic_profile} | ${min_rate} | ${max_rate} + +*** Test Cases *** +| tc01-64B-1c-ethip4-ip4base-eth-4vhostvr1024-2vm-ndrpdr +| | [Tags] | 64B | 1C +| | framesize=${64} | phy_cores=${1} + +| tc02-64B-2c-ethip4-ip4base-eth-4vhostvr1024-2vm-ndrpdr +| | [Tags] | 64B | 2C +| | framesize=${64} | phy_cores=${2} + +| tc03-64B-4c-ethip4-ip4base-eth-4vhostvr1024-2vm-ndrpdr +| | [Tags] | 64B | 4C +| | framesize=${64} | phy_cores=${4} + +| tc04-1518B-1c-ethip4-ip4base-eth-4vhostvr1024-2vm-ndrpdr +| | [Tags] | 1518B | 1C +| | framesize=${1518} | phy_cores=${1} + +| tc05-1518B-2c-ethip4-ip4base-eth-4vhostvr1024-2vm-ndrpdr +| | [Tags] | 1518B | 2C +| | framesize=${1518} | phy_cores=${2} + +| tc06-1518B-4c-ethip4-ip4base-eth-4vhostvr1024-2vm-ndrpdr +| | [Tags] | 1518B | 4C +| | framesize=${1518} | phy_cores=${4} + +| tc07-9000B-1c-ethip4-ip4base-eth-4vhostvr1024-2vm-ndrpdr +| | [Tags] | 9000B | 1C +| | framesize=${9000} | phy_cores=${1} + +| tc08-9000B-2c-ethip4-ip4base-eth-4vhostvr1024-2vm-ndrpdr +| | [Tags] | 9000B | 2C +| | framesize=${9000} | phy_cores=${2} + +| tc09-9000B-4c-ethip4-ip4base-eth-4vhostvr1024-2vm-ndrpdr +| | [Tags] | 9000B | 4C +| | framesize=${9000} | phy_cores=${4} + +| tc10-IMIX-1c-ethip4-ip4base-eth-4vhostvr1024-2vm-ndrpdr +| | [Tags] | IMIX | 1C +| | framesize=IMIX_v4_1 | phy_cores=${1} + +| tc11-IMIX-2c-ethip4-ip4base-eth-4vhostvr1024-2vm-ndrpdr +| | [Tags] | IMIX | 2C +| | framesize=IMIX_v4_1 | phy_cores=${2} + +| tc12-IMIX-4c-ethip4-ip4base-eth-4vhostvr1024-2vm-ndrpdr +| | [Tags] | IMIX | 4C +| | framesize=IMIX_v4_1 | phy_cores=${4} diff --git a/tests/vpp/perf/vm_vhost/40ge2p1xl710-ethip4-ip4base-eth-4vhostvr1024-2vm-ndrpdrdisc.robot b/tests/vpp/perf/vm_vhost/40ge2p1xl710-ethip4-ip4base-eth-4vhostvr1024-2vm-ndrpdrdisc.robot deleted file mode 100644 index 26abb87c6f..0000000000 --- a/tests/vpp/perf/vm_vhost/40ge2p1xl710-ethip4-ip4base-eth-4vhostvr1024-2vm-ndrpdrdisc.robot +++ /dev/null @@ -1,183 +0,0 @@ -# Copyright (c) 2018 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-XL710 | ETH | IP4FWD | BASE | VHOST | VM | VHOST_1024 -| ... -| Suite Setup | Set up 3-node performance topology with DUT's NIC model -| ... | L3 | Intel-XL710 -| 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} -| ... -| Test Template | Local template -| ... -| Documentation | *RFC2544: Packet throughput IP14 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 forIPv4 routing. -| ... | *[Cfg] DUT configuration:* DUT1 and DUT2 are configured with IPv4 -| ... | routing and static IPv4 /24 route entries. Qemu Guests are connected to -| ... | VPP via vhost-user interfaces. Guests are running DPDK testpmd -| ... | interconnecting vhost-user interfaces using 5 cores pinned to cpus on -| ... | NUMA1 (cpus 24-28 and 29-34) 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=1024, burst=64. -| ... | DUT1, DUT2 are tested with 2p40GE NIC XL710 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 *** -| ${perf_qemu_qsz}= | 1024 -# XL710-DA2 bandwidth limit ~49Gbps/2=24.5Gbps -| ${s_24.5G}= | ${24500000000} -# XL710-DA2 Mpps limit 37.5Mpps/2=18.75Mpps -| ${s_18.75Mpps}= | ${18750000} -# CPU settings -| ${system_cpus}= | ${1} -| ${vpp_cpus}= | ${5} -| ${vm_cpus}= | ${5} -# Traffic profile: -| ${traffic_profile}= | trex-sl-3n-ethip4-ip4src253 - -*** Keywords *** -| Local template -| | [Arguments] | ${phy_cores} | ${framesize} | ${search_type} | ${rxq}=${None} -| | ... | ${min_rate}=${10000} -| | ... -| | Set Test Variable | ${framesize} -| | Set Test Variable | ${min_rate} -| | ${get_framesize}= | Get Frame Size | ${framesize} -| | ${max_rate}= | Calculate pps | ${s_24.5G} | ${get_framesize} -| | ${max_rate}= | Set Variable If -| | ... | ${max_rate} > ${s_18.75Mpps} | ${s_18.75Mpps} | ${max_rate} -| | ${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} -| | ${jumbo_frames}= | Set Variable If | ${get_framesize} < ${1522} -| | ... | ${False} | ${True} -| | Set Test Variable | ${jumbo_frames} -| | ... -| | Given Add worker threads and rxqueues to all DUTs | ${phy_cores} | ${rxq} -| | And Add PCI devices to all DUTs -| | And Run Keyword If | ${get_framesize} < ${1522} -| | ... | Add no multi seg to all DUTs -| | And Apply startup configuration on all VPP DUTs -| | When Initialize IPv4 forwarding with vhost for '2' VMs in 3-node circular topology -| | And Configure '2' guest VMs with dpdk-testpmd-mac connected via vhost-user in 3-node circular topology -| | Then Run Keyword If | '${search_type}' == 'NDR' -| | ... | Find NDR using binary search and pps -| | ... | ${framesize} | ${binary_min} | ${binary_max} | ${traffic_profile} -| | ... | ${min_rate} | ${max_rate} | ${threshold} -| | ... | ELSE IF | '${search_type}' == 'PDR' -| | ... | Find PDR using binary search and pps -| | ... | ${framesize} | ${binary_min} | ${binary_max} | ${traffic_profile} -| | ... | ${min_rate} | ${max_rate} | ${threshold} -| | ... | ${perf_pdr_loss_acceptance} | ${perf_pdr_loss_acceptance_type} - -*** Test Cases *** -| tc01-64B-1t1c-ethip4-ip4base-eth-4vhostvr1024-2vm-ndrdisc -| | [Tags] | 64B | 1C | NDRDISC -| | phy_cores=${1} | framesize=${64} | search_type=NDR - -| tc02-64B-1t1c-ethip4-ip4base-eth-4vhostvr1024-2vm-pdrdisc -| | [Tags] | 64B | 1C | PDRDISC | SKIP_PATCH -| | phy_cores=${1} | framesize=${64} | search_type=PDR - -| tc03-1518B-1t1c-ethip4-ip4base-eth-4vhostvr1024-2vm-ndrdisc -| | [Tags] | 1518B | 1C | NDRDISC -| | phy_cores=${1} | framesize=${1518} | search_type=NDR - -| tc04-1518B-1t1c-ethip4-ip4base-eth-4vhostvr1024-2vm-pdrdisc -| | [Tags] | 1518B | 1C | PDRDISC | SKIP_PATCH -| | phy_cores=${1} | framesize=${1518} | search_type=PDR - -| tc05-IMIX-1t1c-ethip4-ip4base-eth-4vhostvr1024-2vm-ndrdisc -| | [Tags] | IMIX | 1C | NDRDISC -| | phy_cores=${1} | framesize=IMIX_v4_1 | search_type=NDR - -| tc06-IMIX-1t1c-ethip4-ip4base-eth-4vhostvr1024-2vm-pdrdisc -| | [Tags] | IMIX | 1C | PDRDISC | SKIP_PATCH -| | phy_cores=${1} | framesize=IMIX_v4_1 | search_type=PDR - -| tc07-64B-2t2c-ethip4-ip4base-eth-4vhostvr1024-2vm-ndrdisc -| | [Tags] | 64B | 2C | NDRDISC -| | phy_cores=${2} | framesize=${64} | search_type=NDR - -| tc08-64B-2t2c-ethip4-ip4base-eth-4vhostvr1024-2vm-pdrdisc -| | [Tags] | 64B | 2C | PDRDISC | SKIP_PATCH -| | phy_cores=${2} | framesize=${64} | search_type=PDR - -| tc09-1518B-2t2c-ethip4-ip4base-eth-4vhostvr1024-2vm-ndrdisc -| | [Tags] | 1518B | 2C | NDRDISC | SKIP_PATCH -| | phy_cores=${2} | framesize=${1518} | search_type=NDR - -| tc10-1518B-2t2c-ethip4-ip4base-eth-4vhostvr1024-2vm-pdrdisc -| | [Tags] | 1518B | 2C | PDRDISC | SKIP_PATCH -| | phy_cores=${2} | framesize=${1518} | search_type=PDR - -| tc11-IMIX-2t2c-ethip4-ip4base-eth-4vhostvr1024-2vm-ndrdisc -| | [Tags] | IMIX | 2C | NDRDISC | SKIP_PATCH -| | phy_cores=${2} | framesize=IMIX_v4_1 | search_type=NDR - -| tc12-IMIX-2t2c-ethip4-ip4base-eth-4vhostvr1024-2vm-pdrdisc -| | [Tags] | IMIX | 2C | PDRDISC | SKIP_PATCH -| | phy_cores=${2} | framesize=IMIX_v4_1 | search_type=PDR - -| tc13-64B-4t4c-ethip4-ip4base-eth-4vhostvr1024-2vm-ndrdisc -| | [Tags] | 64B | 4C | NDRDISC -| | phy_cores=${4} | framesize=${64} | search_type=NDR - -| tc14-64B-4t4c-ethip4-ip4base-eth-4vhostvr1024-2vm-pdrdisc -| | [Tags] | 64B | 4C | PDRDISC | SKIP_PATCH -| | phy_cores=${4} | framesize=${64} | search_type=PDR - -| tc15-1518B-4t4c-ethip4-ip4base-eth-4vhostvr1024-2vm-ndrdisc -| | [Tags] | 1518B | 4C | NDRDISC | SKIP_PATCH -| | phy_cores=${4} | framesize=${1518} | search_type=NDR - -| tc16-1518B-4t4c-ethip4-ip4base-eth-4vhostvr1024-2vm-pdrdisc -| | [Tags] | 1518B | 4C | PDRDISC | SKIP_PATCH -| | phy_cores=${4} | framesize=${1518} | search_type=PDR - -| tc17-IMIX-4t4c-ethip4-ip4base-eth-4vhostvr1024-2vm-ndrdisc -| | [Tags] | IMIX | 4C | NDRDISC | SKIP_PATCH -| | phy_cores=${4} | framesize=IMIX_v4_1 | search_type=NDR - -| tc18-IMIX-4t4c-ethip4-ip4base-eth-4vhostvr1024-2vm-pdrdisc -| | [Tags] | IMIX | 4C | PDRDISC | SKIP_PATCH -| | phy_cores=${4} | framesize=IMIX_v4_1 | search_type=PDR diff --git a/tests/vpp/perf/vm_vhost/regenerate_testcases.py b/tests/vpp/perf/vm_vhost/regenerate_testcases.py new file mode 100755 index 0000000000..5fabf8b89d --- /dev/null +++ b/tests/vpp/perf/vm_vhost/regenerate_testcases.py @@ -0,0 +1,18 @@ +#!/usr/bin/env python + +# Copyright (c) 2018 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. + +from resources.libraries.python.autogen.Regenerator import Regenerator + +Regenerator().regenerate_glob("*.robot") |