hoststack perf: iperf3 udp hoststack performance tests. 83/31983/6
authorDave Wallace <dwallacelf@gmail.com>
Thu, 15 Apr 2021 00:58:12 +0000 (00:58 +0000)
committerDave Wallace <dwallacelf@gmail.com>
Thu, 20 May 2021 14:41:37 +0000 (10:41 -0400)
Change-Id: Ie2e735971934d8aeac2d436505c120f09ce67ac7
Signed-off-by: Dave Wallace <dwallacelf@gmail.com>
resources/libraries/python/HoststackUtil.py
resources/libraries/robot/hoststack/hoststack.robot
tests/vpp/perf/hoststack/10ge2p1x710-eth-ip4udpbase-ldpreload-iperf3-bps.robot [new file with mode: 0644]
tests/vpp/perf/hoststack/10ge2p1x710-eth-ip4udpscale1cl10s-ldpreload-iperf3-bps.robot [new file with mode: 0644]

index e797c3c..2f093ce 100644 (file)
@@ -100,6 +100,11 @@ class HoststackUtil():
             if u"time" in iperf3_attributes:
                 iperf3_cmd[u"args"] += \
                     f" --time {iperf3_attributes[u'time']}"
+            if iperf3_attributes[u"udp"]:
+                iperf3_cmd[u"args"] += u" --udp"
+                iperf3_cmd[u"args"] += f" --bandwidth {iperf3_attributes[u'bandwidth']}"
+            if iperf3_attributes[u"length"] > 0:
+                iperf3_cmd[u"args"] += f" --length {iperf3_attributes[u'length']}"
         return iperf3_cmd
 
     @staticmethod
index 30363f9..e16ad99 100644 (file)
 | ... | ip_address=${EMPTY}
 | ... | parallel=${1}
 | ... | time=${20}
+| ... | udp=${False}
+| ... | bandwidth=10000000
+| ... | length=${0}
 | &{nginx_server_attr}=
 | ... | role=server
 | ... | cpu_cnt=${1}
 | | ... | - ${transparent_tls} - Use VCL Transparent-TLS mode Type: boolean
 | | ... | - ${ip_version} - IP version (4 or 6) Type: int
 | | ... | - ${parallel} - Number of parallel streams Type: int
+| | ... | - ${bandwidth} - Target bandwidth in bits/sec Type: int
+| | ... | - ${udp} - UDP or TCP protocol Type: boolean
+| | ... | - ${length} - Packet Length Type: int
 | |
 | | ... | *Example:*
 | |
 | | ... | \| Set Iperf3 Client Attributes \| vcl_config=${vcl_config} \|
 | | ... | \| ip_version=${ip_version} \| parallel=${streams} \|
+| | ... | \| bandwidth=${bandwidth} | udp=${True} \|
 | |
 | | [Arguments]
 | | ... | ${vcl_config}=${iperf3_client_attr}[vcl_config]
 | | ... | ${transparent_tls}=${iperf3_client_attr}[transparent_tls]
 | | ... | ${ip_version}=${iperf3_client_attr}[ip_version]
 | | ... | ${parallel}=${iperf3_client_attr}[parallel]
+| | ... | ${bandwidth}=${iperf3_client_attr}[bandwidth]
+| | ... | ${udp}=${iperf3_client_attr}[udp]
+| | ... | ${length}=${iperf3_client_attr}[length]
 | |
 | | Set To Dictionary | ${iperf3_client_attr} | vcl_config | ${vcl_config}
 | | Set To Dictionary | ${iperf3_client_attr} | ld_preload | ${ld_preload}
 | | ... | ${transparent_tls}
 | | Set To Dictionary | ${iperf3_client_attr} | ip_version | ${ip_version}
 | | Set To Dictionary | ${iperf3_client_attr} | parallel | ${parallel}
+| | Set To Dictionary | ${iperf3_client_attr} | bandwidth | ${bandwidth}
+| | Set To Dictionary | ${iperf3_client_attr} | udp | ${udp}
+| | Set To Dictionary | ${iperf3_client_attr} | length | ${length}
 
 | Run hoststack test program on DUT
 | | [Documentation]
diff --git a/tests/vpp/perf/hoststack/10ge2p1x710-eth-ip4udpbase-ldpreload-iperf3-bps.robot b/tests/vpp/perf/hoststack/10ge2p1x710-eth-ip4udpbase-ldpreload-iperf3-bps.robot
new file mode 100644 (file)
index 0000000..d255cd1
--- /dev/null
@@ -0,0 +1,70 @@
+# Copyright (c) 2021 Cisco and/or its affiliates.
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at:
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+*** Settings ***
+| Library  | resources.libraries.python.HoststackUtil
+| Resource | resources/libraries/robot/shared/default.robot
+| Resource | resources/libraries/robot/hoststack/hoststack.robot
+|
+| Force Tags | 3_NODE_SINGLE_LINK_TOPO | PERFTEST | HW_ENV
+| ... | UDP | NIC_Intel-X710 | DRV_VFIO_PCI
+| ... | RXQ_SIZE_0 | TXQ_SIZE_0 | HOSTSTACK
+| ... | LDPRELOAD | IPERF3 | 1CLIENT | 1STREAM | 1460B
+| ... | eth-ip4udpbase-ldpreload-iperf3
+|
+| Suite Setup | Setup suite topology interfaces with no TG
+| Suite Teardown | Tear down suite | hoststack
+| Test Setup | Setup test
+| Test Teardown | Tear down test
+|
+| Test Template | Local template
+|
+| Documentation | *Iperf3 client -> Iperf3 server goodput.
+|
+| ... | *[Top] Network Topologies:* DUT-DUT 2-node topology
+| ... | with single link between nodes.
+| ... | *[Enc] Packet Encapsulations:* Eth-IPv4-UDP
+| ... | *[Cfg] DUT configuration:*
+| ... | *[Ref] Applicable standard specifications:*
+
+*** Variables ***
+| @{plugins_to_enable}= | dpdk_plugin.so
+| ${nic_name}= | Intel-X710
+| ${nic_driver}= | vfio-pci
+| ${nic_rxq_size}= | 0
+| ${nic_txq_size}= | 0
+| ${nic_pfs}= | 2
+| ${nic_vfs}= | 0
+| ${overhead}= | ${0}
+| ${frame_size}= | ${9000}
+| ${crypto_type}= | ${None}
+| ${iperf3_packet_length}= | ${1460}
+
+*** Keywords ***
+| Local template
+| | [Arguments] | ${phy_cores}
+| |
+| | Set Test Variable | ${dpdk_no_tx_checksum_offload} | ${False}
+| | Set VPP Hoststack Attributes | phy_cores=${phy_cores}
+| | ${bandwidth} = | Get From Dictionary
+| | ... | ${NIC_NAME_TO_BPS_LIMIT} | ${nic_name}
+| | Set Iperf3 Client Attributes | udp=${True} | bandwidth=${bandwidth}
+| | ... | length=${iperf3_packet_length}
+| | ${defer_fail}= | Get Test Results From Hoststack Iperf3 Test
+| | Run Keyword If | ${defer_fail}==True | FAIL
+| | ... | Defered Failure From Hoststack Iperf3 Test Program
+
+*** Test Cases ***
+| 1460B-1c-eth-ip4udpbase-ldpreload-iperf3-bps
+| | [Tags] | 1C
+| | phy_cores=${1}
diff --git a/tests/vpp/perf/hoststack/10ge2p1x710-eth-ip4udpscale1cl10s-ldpreload-iperf3-bps.robot b/tests/vpp/perf/hoststack/10ge2p1x710-eth-ip4udpscale1cl10s-ldpreload-iperf3-bps.robot
new file mode 100644 (file)
index 0000000..f748706
--- /dev/null
@@ -0,0 +1,71 @@
+# Copyright (c) 2021 Cisco and/or its affiliates.
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at:
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+*** Settings ***
+| Library  | resources.libraries.python.HoststackUtil
+| Resource | resources/libraries/robot/shared/default.robot
+| Resource | resources/libraries/robot/hoststack/hoststack.robot
+|
+| Force Tags | 3_NODE_SINGLE_LINK_TOPO | PERFTEST | HW_ENV
+| ... | UDP | NIC_Intel-X710 | DRV_VFIO_PCI
+| ... | RXQ_SIZE_0 | TXQ_SIZE_0 | HOSTSTACK
+| ... | LDPRELOAD | IPERF3 | 1CLIENT | 10STREAM | 1460B
+| ... | eth-ip4udpscale1cl10s-ldpreload-iperf3
+|
+| Suite Setup | Setup suite topology interfaces with no TG
+| Suite Teardown | Tear down suite | hoststack
+| Test Setup | Setup test
+| Test Teardown | Tear down test
+|
+| Test Template | Local template
+|
+| Documentation | *Iperf3 client -> Iperf3 server goodput.
+|
+| ... | *[Top] Network Topologies:* DUT-DUT 2-node topology
+| ... | with single link between nodes.
+| ... | *[Enc] Packet Encapsulations:* Eth-IPv4-UDP
+| ... | *[Cfg] DUT configuration:*
+| ... | *[Ref] Applicable standard specifications:*
+
+*** Variables ***
+| @{plugins_to_enable}= | dpdk_plugin.so
+| ${nic_name}= | Intel-X710
+| ${nic_driver}= | vfio-pci
+| ${nic_rxq_size}= | 0
+| ${nic_txq_size}= | 0
+| ${nic_pfs}= | 2
+| ${nic_vfs}= | 0
+| ${overhead}= | ${0}
+| ${frame_size}= | ${9000}
+| ${crypto_type}= | ${None}
+| ${streams} | ${10}
+| ${iperf3_packet_length}= | ${1460}
+
+*** Keywords ***
+| Local template
+| | [Arguments] | ${phy_cores}
+| |
+| | Set Test Variable | ${dpdk_no_tx_checksum_offload} | ${False}
+| | Set VPP Hoststack Attributes | phy_cores=${phy_cores}
+| | ${bandwidth} = | Get From Dictionary
+| | ... | ${NIC_NAME_TO_BPS_LIMIT} | ${nic_name}
+| | Set Iperf3 Client Attributes | udp=${True} | bandwidth=${bandwidth}
+| | ... | parallel=${streams} | length=${iperf3_packet_length}
+| | ${defer_fail}= | Get Test Results From Hoststack Iperf3 Test
+| | Run Keyword If | ${defer_fail}==True | FAIL
+| | ... | Defered Failure From Hoststack Iperf3 Test Program
+
+*** Test Cases ***
+| 1460B-1c-eth-ip4udpscale1cl10s-ldpreload-iperf3-bps
+| | [Tags] | 1C
+| | phy_cores=${1}