aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorDave Wallace <dwallacelf@gmail.com>2021-04-15 00:58:12 +0000
committerDave Wallace <dwallacelf@gmail.com>2021-05-20 10:41:37 -0400
commitf2de7c48d20c2944a5b31a907ecef566e05aeaeb (patch)
tree610a48b4aa771abd429d246b3b06f943e984d70d
parent9377c956a86e42727039d9dab8879c10c9399f4c (diff)
hoststack perf: iperf3 udp hoststack performance tests.
Change-Id: Ie2e735971934d8aeac2d436505c120f09ce67ac7 Signed-off-by: Dave Wallace <dwallacelf@gmail.com>
-rw-r--r--resources/libraries/python/HoststackUtil.py5
-rw-r--r--resources/libraries/robot/hoststack/hoststack.robot13
-rw-r--r--tests/vpp/perf/hoststack/10ge2p1x710-eth-ip4udpbase-ldpreload-iperf3-bps.robot70
-rw-r--r--tests/vpp/perf/hoststack/10ge2p1x710-eth-ip4udpscale1cl10s-ldpreload-iperf3-bps.robot71
4 files changed, 159 insertions, 0 deletions
diff --git a/resources/libraries/python/HoststackUtil.py b/resources/libraries/python/HoststackUtil.py
index e797c3c206..2f093ce843 100644
--- a/resources/libraries/python/HoststackUtil.py
+++ b/resources/libraries/python/HoststackUtil.py
@@ -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
diff --git a/resources/libraries/robot/hoststack/hoststack.robot b/resources/libraries/robot/hoststack/hoststack.robot
index 30363f9b91..e16ad997db 100644
--- a/resources/libraries/robot/hoststack/hoststack.robot
+++ b/resources/libraries/robot/hoststack/hoststack.robot
@@ -109,6 +109,9 @@
| ... | ip_address=${EMPTY}
| ... | parallel=${1}
| ... | time=${20}
+| ... | udp=${False}
+| ... | bandwidth=10000000
+| ... | length=${0}
| &{nginx_server_attr}=
| ... | role=server
| ... | cpu_cnt=${1}
@@ -353,11 +356,15 @@
| | ... | - ${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]
@@ -365,6 +372,9 @@
| | ... | ${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}
@@ -372,6 +382,9 @@
| | ... | ${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
index 0000000000..d255cd165b
--- /dev/null
+++ b/tests/vpp/perf/hoststack/10ge2p1x710-eth-ip4udpbase-ldpreload-iperf3-bps.robot
@@ -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
index 0000000000..f748706b17
--- /dev/null
+++ b/tests/vpp/perf/hoststack/10ge2p1x710-eth-ip4udpscale1cl10s-ldpreload-iperf3-bps.robot
@@ -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}