aboutsummaryrefslogtreecommitdiffstats
path: root/tests/vpp/perf/hoststack
diff options
context:
space:
mode:
authorDave Wallace <dwallacelf@gmail.com>2019-12-20 22:46:51 +0000
committerPeter Mikus <pmikus@cisco.com>2020-01-15 07:01:56 +0000
commit2da2aa12260143bc513b4dff5e2b2ef6755172ab (patch)
tree8bbd4b177bc7e12cd942b7a91a4af8641af24935 /tests/vpp/perf/hoststack
parent6ae8614cf1459f977508f9f4ba3548ac0a16b231 (diff)
Hoststack perf infrastructure refactoring
- DUT only topology (hoststack test apps are co-located with vpp) - Make vpp app specific keywords generic where applicable - Add IP4 Prefix to topology file - Support running wrk in linux namespace - Refactor namespace cleanup - Remove redundant namespace creation code - Refactor test/keyword dirs: tcp -> hoststack - Add hoststack utility keywords - Refactor wrk suite setup/teardown - Update tests with recent perf infra changes Change-Id: Ia1cf07978d579393eef94923819a87c8c1f36f34 Signed-off-by: Dave Wallace <dwallacelf@gmail.com>
Diffstat (limited to 'tests/vpp/perf/hoststack')
-rw-r--r--tests/vpp/perf/hoststack/2n1l-10ge2p1x710-eth-ip4tcphttp-wrk8u8c50con-cps.robot92
-rw-r--r--tests/vpp/perf/hoststack/2n1l-10ge2p1x710-eth-ip4tcphttp-wrk8u8c50con-rps.robot92
-rwxr-xr-xtests/vpp/perf/hoststack/regenerate_testcases.py18
3 files changed, 202 insertions, 0 deletions
diff --git a/tests/vpp/perf/hoststack/2n1l-10ge2p1x710-eth-ip4tcphttp-wrk8u8c50con-cps.robot b/tests/vpp/perf/hoststack/2n1l-10ge2p1x710-eth-ip4tcphttp-wrk8u8c50con-cps.robot
new file mode 100644
index 0000000000..e5e8126166
--- /dev/null
+++ b/tests/vpp/perf/hoststack/2n1l-10ge2p1x710-eth-ip4tcphttp-wrk8u8c50con-cps.robot
@@ -0,0 +1,92 @@
+# Copyright (c) 2020 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.tools.wrk.wrk
+| Resource | resources/libraries/robot/wrk/wrk_utils.robot
+| Resource | resources/libraries/robot/shared/default.robot
+| Resource | resources/libraries/robot/hoststack/tcp_setup.robot
+|
+| Force Tags | 2_NODE_SINGLE_LINK_TOPO | PERFTEST | HW_ENV
+| ... | HTTP | TCP | TCP_CPS | NIC_Intel-X710 | DRV_VFIO_PCI
+|
+| Suite Setup | Setup suite single link | wrk
+| Suite Teardown | Tear down suite | wrk
+| Test Setup | Setup test
+| Test Teardown | Tear down test
+|
+| Test Template | Local template
+|
+| Documentation | *HTTP connections per seconds.*
+|
+| ... | *[Top] Network Topologies:* TG-DUT-TG 2-node topology
+| ... | with single link between nodes.
+| ... | *[Enc] Packet Encapsulations:* Eth-IPv4-TCP-HTTP for TCP Host Stack
+| ... | *[Cfg] DUT configuration:*
+| ... | *[Ver] TG verification:*
+| ... | *[Ref] Applicable standard specifications:*
+
+*** Variables ***
+| @{plugins_to_enable}= | dpdk_plugin.so | http_static_plugin.so
+| ... | hs_apps_plugin.so
+| ${crypto_type}= | ${None}
+| ${nic_name}= | Intel-X710
+| ${nic_driver}= | vfio-pci
+| ${overhead}= | ${0}
+| ${frame_size}= | IMIX_v4_1
+| ${traffic_profile}= | wrk-sf-2n-ethip4tcphttp-8u8c50con-cps
+| ${http_static_plugin}= | ${false}
+
+*** Keywords ***
+| Local template
+| | [Arguments] | ${phy_cores} | ${rxq}=${None}
+| |
+| | Given Set Max Rate And Jumbo
+| | And Add worker threads to all DUTs | ${phy_cores} | ${rxq}
+| | And Pre-initialize layer driver | ${nic_driver}
+| | FOR | ${dut} | IN | @{duts}
+| | | Import Library | resources.libraries.python.VppConfigGenerator
+| | | ... | WITH NAME | ${dut}
+| | | Run keyword | ${dut}.Add api segment global size | 2G
+| | | Run keyword | ${dut}.Add api segment api size | 1G
+| | | Run keyword | ${dut}.Add TCP preallocated connections | 1000000
+| | | Run keyword | ${dut}.Add TCP preallocated half open connections | 1000000
+| | | Run keyword | ${dut}.Add session event queue length | 1000000
+| | | Run keyword | ${dut}.Add session preallocated sessions | 1000000
+| | | Run keyword | ${dut}.Add session v4 session table buckets | 500000
+| | | Run keyword | ${dut}.Add session v4 session table memory | 1g
+| | | Run keyword | ${dut}.Add session v4 halfopen table buckets | 2500000
+| | | Run keyword | ${dut}.Add session v4 halfopen table memory | 3g
+| | | Run keyword | ${dut}.Add session local endpoints table buckets | 2500000
+| | | Run keyword | ${dut}.Add session local endpoints table memory | 3g
+| | END
+| | And Apply startup configuration on all VPP DUTs
+| | When Initialize layer driver | ${nic_driver}
+| | And Initialize layer interface
+| | And Set up HTTP server with parameters on the VPP node
+| | ... | ${http_static_plugin} | 31000 | 64 | 4000m
+| | Then Measure connections per second | ${traffic_profile}
+
+*** Test Cases ***
+| tc01-IMIX-1c-eth-ip4tcphttp-wrk8u8c50con-cps
+| | [Tags] | 1C
+| | phy_cores=${1}
+
+| tc02-IMIX-2c-eth-ip4tcphttp-wrk8u8c50con-cps
+| | [Tags] | 2C
+| | phy_cores=${2}
+
+| tc03-IMIX-4c-eth-ip4tcphttp-wrk8u8c50con-cps
+| | [Tags] | 4C
+| | phy_cores=${4}
diff --git a/tests/vpp/perf/hoststack/2n1l-10ge2p1x710-eth-ip4tcphttp-wrk8u8c50con-rps.robot b/tests/vpp/perf/hoststack/2n1l-10ge2p1x710-eth-ip4tcphttp-wrk8u8c50con-rps.robot
new file mode 100644
index 0000000000..059ad7172d
--- /dev/null
+++ b/tests/vpp/perf/hoststack/2n1l-10ge2p1x710-eth-ip4tcphttp-wrk8u8c50con-rps.robot
@@ -0,0 +1,92 @@
+# Copyright (c) 2020 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.tools.wrk.wrk
+| Resource | resources/libraries/robot/wrk/wrk_utils.robot
+| Resource | resources/libraries/robot/shared/default.robot
+| Resource | resources/libraries/robot/hoststack/tcp_setup.robot
+|
+| Force Tags | 2_NODE_SINGLE_LINK_TOPO | PERFTEST | HW_ENV
+| ... | HTTP | TCP | TCP_RPS | NIC_Intel-X710 | DRV_VFIO_PCI
+|
+| Suite Setup | Setup suite single link | wrk
+| Suite Teardown | Tear down suite | wrk
+| Test Setup | Setup test
+| Test Teardown | Tear down test
+|
+| Test Template | Local template
+|
+| Documentation | *HTTP requests per seconds.*
+|
+| ... | *[Top] Network Topologies:* TG-DUT-TG 2-node topology
+| ... | with single link between nodes.
+| ... | *[Enc] Packet Encapsulations:* Eth-IPv4-TCP-HTTP for TCP Host Stack
+| ... | *[Cfg] DUT configuration:*
+| ... | *[Ver] TG verification:*
+| ... | *[Ref] Applicable standard specifications:*
+
+*** Variables ***
+| @{plugins_to_enable}= | dpdk_plugin.so | http_static_plugin.so
+| ... | hs_apps_plugin.so
+| ${crypto_type}= | ${None}
+| ${nic_name}= | Intel-X710
+| ${nic_driver}= | vfio-pci
+| ${overhead}= | ${0}
+| ${frame_size}= | IMIX_v4_1
+| ${traffic_profile}= | wrk-sf-2n-ethip4tcphttp-8u8c50con-rps
+| ${http_static_plugin}= | ${true}
+
+*** Keywords ***
+| Local template
+| | [Arguments] | ${phy_cores} | ${rxq}=${None}
+| |
+| | Given Set Max Rate And Jumbo
+| | And Add worker threads to all DUTs | ${phy_cores} | ${rxq}
+| | And Pre-initialize layer driver | ${nic_driver}
+| | FOR | ${dut} | IN | @{duts}
+| | | Import Library | resources.libraries.python.VppConfigGenerator
+| | | ... | WITH NAME | ${dut}
+| | | Run keyword | ${dut}.Add api segment global size | 2G
+| | | Run keyword | ${dut}.Add api segment api size | 1G
+| | | Run keyword | ${dut}.Add TCP preallocated connections | 1000000
+| | | Run keyword | ${dut}.Add TCP preallocated half open connections | 1000000
+| | | Run keyword | ${dut}.Add session event queue length | 1000000
+| | | Run keyword | ${dut}.Add session preallocated sessions | 1000000
+| | | Run keyword | ${dut}.Add session v4 session table buckets | 500000
+| | | Run keyword | ${dut}.Add session v4 session table memory | 1g
+| | | Run keyword | ${dut}.Add session v4 halfopen table buckets | 2500000
+| | | Run keyword | ${dut}.Add session v4 halfopen table memory | 3g
+| | | Run keyword | ${dut}.Add session local endpoints table buckets | 2500000
+| | | Run keyword | ${dut}.Add session local endpoints table memory | 3g
+| | END
+| | And Apply startup configuration on all VPP DUTs
+| | When Initialize layer driver | ${nic_driver}
+| | And Initialize layer interface
+| | And Set up HTTP server with parameters on the VPP node
+| | ... | ${http_static_plugin} | 500000 | 4 | 4000m
+| | Then Measure requests per second | ${traffic_profile}
+
+*** Test Cases ***
+| tc01-IMIX-1c-eth-ip4tcphttp-wrk8u8c50con-rps
+| | [Tags] | 1C
+| | phy_cores=${1}
+
+| tc02-IMIX-2c-eth-ip4tcphttp-wrk8u8c50con-rps
+| | [Tags] | 2C
+| | phy_cores=${2}
+
+| tc03-IMIX-4c-eth-ip4tcphttp-wrk8u8c50con-rps
+| | [Tags] | 4C
+| | phy_cores=${4}
diff --git a/tests/vpp/perf/hoststack/regenerate_testcases.py b/tests/vpp/perf/hoststack/regenerate_testcases.py
new file mode 100755
index 0000000000..dda55e9121
--- /dev/null
+++ b/tests/vpp/perf/hoststack/regenerate_testcases.py
@@ -0,0 +1,18 @@
+#!/usr/bin/env python
+
+# Copyright (c) 2019 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(u"*.robot")