From: Dave Wallace Date: Tue, 6 Aug 2019 22:26:00 +0000 (+0000) Subject: VAT-to-PAPI: Fix HTTP/TCP tests X-Git-Url: https://gerrit.fd.io/r/gitweb?p=csit.git;a=commitdiff_plain;h=6da7266754c28754c04cf37d1974e39766a261f6 VAT-to-PAPI: Fix HTTP/TCP tests Change-Id: Ie728bc73eb7429d246e82dd195fc63191c3ac51d Signed-off-by: Dave Wallace --- diff --git a/resources/libraries/bash/entry/check/tc_naming.sh b/resources/libraries/bash/entry/check/tc_naming.sh index 1101fa5a16..b8a2775035 100644 --- a/resources/libraries/bash/entry/check/tc_naming.sh +++ b/resources/libraries/bash/entry/check/tc_naming.sh @@ -66,7 +66,7 @@ r_testc_rules=( #'(ipsec[[:digit:]]+tnlhw|ipsec[[:digit:]]+tnlsw|' #'srhip6|tcp|udp|lispip6|lispip4|vxlan){0,1}' #'(http){0,1}-' - '(.*)-(dev|ndrpdr|cps)$' + '(.*)-(dev|ndrpdr|cps|rps)$' ) s_suite_rules=( 'number of SUT nodes' @@ -85,7 +85,7 @@ r_suite_rules=( #'(ipsec[[:digit:]]+tnlhw|ipsec[[:digit:]]+tnlsw|' #'srhip6|tcp|udp|lispip6|lispip4|vxlan){0,1}' #'(http){0,1}-' - '(.*)-(dev|ndrpdr|cps)$' + '(.*)-(dev|ndrpdr|cps|rps)$' ) rm -f "tc_naming.log" || die diff --git a/resources/libraries/python/Constants.py b/resources/libraries/python/Constants.py index c970d19027..e8209544e8 100644 --- a/resources/libraries/python/Constants.py +++ b/resources/libraries/python/Constants.py @@ -43,6 +43,9 @@ class Constants(object): # Container templates location RESOURCES_TPL_CONTAINER = 'resources/templates/container' + # HTTP Server www root directory + RESOURCES_TP_WRK_WWW = 'resources/traffic_profiles/wrk/www' + # OpenVPP VAT binary name VAT_BIN_NAME = 'vpp_api_test' diff --git a/resources/libraries/python/tcp.py b/resources/libraries/python/tcp.py index e013a65539..1b08912b7e 100644 --- a/resources/libraries/python/tcp.py +++ b/resources/libraries/python/tcp.py @@ -1,4 +1,4 @@ -# Copyright (c) 2018 Cisco and/or its affiliates. +# 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: @@ -14,36 +14,35 @@ """TCP util library. """ -from resources.libraries.python.VatExecutor import VatTerminal +from resources.libraries.python.PapiExecutor import PapiSocketExecutor +from resources.libraries.python.Constants import Constants class TCPUtils(object): """Implementation of the TCP utilities. """ + www_root_dir = '{rmt_fw_dir}/{wrk_www}'\ + .format(rmt_fw_dir=Constants.REMOTE_FW_DIR, + wrk_www=Constants.RESOURCES_TP_WRK_WWW) def __init__(self): pass - @staticmethod - def start_http_server(node): - """Start HTTP server on the given node. - - :param node: Node to start HTTP server on. - :type node: dict - """ - - with VatTerminal(node) as vat: - vat.vat_terminal_exec_cmd_from_template( - "start_http_server.vat") - - @staticmethod - def start_http_server_params(node, prealloc_fifos, fifo_size, - private_segment_size): - """Start HTTP server on the given node. + @classmethod + def start_vpp_http_server_params(cls, node, http_static_plugin, + prealloc_fifos, fifo_size, + private_segment_size): + """Start the test HTTP server internal application or + the HTTP static server plugin internal applicatoin on the given node. + http static server www-root prealloc-fifos + fifo-size + private-segment-size + -- or -- test http server static prealloc-fifos fifo-size private-segment-size + Where N is the max number of connections you expect to handle at one time and should be small if you test for CPS and exchange few bytes, say 4, if each connection just exchanges few packets. Or it @@ -55,28 +54,36 @@ class TCPUtils(object): Example: For CPS - test http server static prealloc-fifos 10000 fifo-size 64 - private-segment-size 4000m + http static server www-root prealloc-fifos 10000 + fifo-size 64 private-segment-size 4000m For RPS test http server static prealloc-fifos 500000 fifo-size 4 - test http server static prealloc-fifos 500000 fifo-size 4 private-segment-size 4000m :param node: Node to start HTTP server on. + :param http_static_plugin: Run HTTP static server plugin :param prealloc_fifos: Max number of connections you expect to handle at one time. :param fifo_size: FIFO size in kB. :param private_segment_size: Private segment size. Number + unit. :type node: dict + :type http_static_plugin: boolean :type prealloc_fifos: str :type fifo_size: str :type private_segment_size: str """ + if http_static_plugin == True: + cmd='http static server www-root {www_root} '\ + 'prealloc-fifos {prealloc_fifos} fifo-size {fifo_size}'\ + ' private-segment-size {pvt_seg_size}'\ + .format(www_root=cls.www_root_dir, + prealloc_fifos=prealloc_fifos, fifo_size=fifo_size, + pvt_seg_size=private_segment_size) + else: + cmd='test http server static prealloc-fifos {prealloc_fifos} '\ + 'fifo-size {fifo_size} private-segment-size {pvt_seg_size}'\ + .format(prealloc_fifos=prealloc_fifos, fifo_size=fifo_size, + pvt_seg_size=private_segment_size) + PapiSocketExecutor.run_cli_cmd(node, cmd) - with VatTerminal(node, json_param=False) as vat: - vat.vat_terminal_exec_cmd_from_template( - "start_http_server_params.vat", - prealloc_fifos=prealloc_fifos, - fifo_size=fifo_size, - private_segment_size=private_segment_size) diff --git a/resources/libraries/robot/tcp/tcp_setup.robot b/resources/libraries/robot/tcp/tcp_setup.robot index 39a570c20a..91192639c1 100644 --- a/resources/libraries/robot/tcp/tcp_setup.robot +++ b/resources/libraries/robot/tcp/tcp_setup.robot @@ -21,24 +21,27 @@ | Documentation | L2 keywords to set up VPP to test tcp. *** Keywords *** -| Set up HTTP server with paramters on the VPP node +| Set up HTTP server with parameters on the VPP node | | [Documentation] | | ... | Configure IP address on the port, set it up and start HTTP server on | | ... | the VPP. | | ... | | ... | *Arguments:* -| | ... | - ${prealloc_fifos} - Max number of connections you expect to handle +| | ... | - http_static_plugin - Use the HTTP static plugin http server. +| | ... | Type: boolean +| | ... | - prealloc_fifos - Max number of connections you expect to handle | | ... | at one time. Type: string -| | ... | - ${fifo_size} - FIFO size in kB. Type: string -| | ... | - ${private_segment_size} - Private segment size. Number + unit. +| | ... | - fifo_size - FIFO size in kB. Type: string +| | ... | - private_segment_size - Private segment size. Number + unit. | | ... | Type: string | | ... | | ... | *Example:* | | ... -| | ... | \| Set up HTTP server with paramters on the VPP node \| 400 \| 4096\ -| | ... | \| 2g \| +| | ... | \| Set up HTTP server with paramters on the VPP node \| ${true}\ +| | ... | \| 400 \| 4096 \| 2g \| | | ... -| | [Arguments] | ${prealloc_fifos} | ${fifo_size} | ${private_segment_size} +| | [Arguments] | ${http_static_plugin} | ${prealloc_fifos} | ${fifo_size} +| | ... | ${private_segment_size} | | ... | | Set Interface State | ${dut1} | ${dut1_if1} | up | | VPP Interface Set IP Address | ${dut1} | ${dut1_if1} | 192.168.10.2 | 24 @@ -50,6 +53,5 @@ | | VPP Interface Set IP Address | ${dut1} | ${dut1_if1} | 192.168.70.2 | 24 | | VPP Interface Set IP Address | ${dut1} | ${dut1_if1} | 192.168.80.2 | 24 | | Vpp Node Interfaces Ready Wait | ${dut1} -| | Start HTTP server params | ${dut1} | ${prealloc_fifos} | ${fifo_size} -| | ... | ${private_segment_size} -| | Sleep | 30 +| | Start VPP HTTP server params | ${dut1} | ${http_static_plugin} +| | ... | ${prealloc_fifos} | ${fifo_size} | ${private_segment_size} diff --git a/resources/libraries/robot/wrk/wrk_utils.robot b/resources/libraries/robot/wrk/wrk_utils.robot index fd18a5d686..1c65228130 100644 --- a/resources/libraries/robot/wrk/wrk_utils.robot +++ b/resources/libraries/robot/wrk/wrk_utils.robot @@ -1,4 +1,4 @@ -# Copyright (c) 2018 Cisco and/or its affiliates. +# 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: @@ -17,7 +17,6 @@ | Library | resources.libraries.python.DUTSetup | Library | resources.libraries.python.TrafficGenerator | Library | resources.libraries.python.topology.Topology -| Resource | resources/libraries/robot/performance/performance_setup.robot | ... | Documentation | L2 keywords to set up wrk and to measure performance | ... | parameters using wrk. diff --git a/resources/templates/vat/start_http_server.vat b/resources/templates/vat/start_http_server.vat deleted file mode 100644 index 1d00285a91..0000000000 --- a/resources/templates/vat/start_http_server.vat +++ /dev/null @@ -1 +0,0 @@ -exec test http server static \ No newline at end of file diff --git a/resources/templates/vat/start_http_server_params.vat b/resources/templates/vat/start_http_server_params.vat deleted file mode 100644 index 28c4403079..0000000000 --- a/resources/templates/vat/start_http_server_params.vat +++ /dev/null @@ -1 +0,0 @@ -exec test http server static prealloc-fifos {prealloc_fifos} fifo-size {fifo_size} private-segment-size {private_segment_size} \ No newline at end of file diff --git a/resources/tools/wrk/wrk.py b/resources/tools/wrk/wrk.py index b7989b8852..84d17ee7a1 100644 --- a/resources/tools/wrk/wrk.py +++ b/resources/tools/wrk/wrk.py @@ -1,4 +1,4 @@ -# Copyright (c) 2018 Cisco and/or its affiliates. +# 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: diff --git a/resources/tools/wrk/wrk_utils.sh b/resources/tools/wrk/wrk_utils.sh index 1c77fea731..16af61416b 100755 --- a/resources/tools/wrk/wrk_utils.sh +++ b/resources/tools/wrk/wrk_utils.sh @@ -74,7 +74,7 @@ function wrk_utils.traffic_1_url_1_core { if [ "${header}" != "None" ]; then header="${header}" else - header="" + header="''" fi taskset --cpu-list ${cpu} \ @@ -134,7 +134,7 @@ function wrk_utils.traffic_n_urls_n_cores { if [ "${header}" != "None" ]; then header="${header}" else - header="" + header="''" fi urls=$(echo ${urls} | tr ";" "\n") @@ -204,7 +204,7 @@ function wrk_utils.traffic_n_urls_m_cores { if [ "${header}" != "None" ]; then header="${header}" else - header="" + header="''" fi urls=$(echo ${urls} | tr ";" "\n") diff --git a/resources/traffic_profiles/wrk/wrk-sf-2n-ethip4tcphttp-8u8c50con-cps.yaml b/resources/traffic_profiles/wrk/wrk-sf-2n-ethip4tcphttp-8u8c50con-cps.yaml index 706cda01b5..2d059e7b6e 100644 --- a/resources/traffic_profiles/wrk/wrk-sf-2n-ethip4tcphttp-8u8c50con-cps.yaml +++ b/resources/traffic_profiles/wrk/wrk-sf-2n-ethip4tcphttp-8u8c50con-cps.yaml @@ -1,18 +1,17 @@ -# This is an example wrk traffic profile. +# wrk-sf-2n-ethip4tcphttp-8u8c50con-cps traffic profile. # List of urls for requests. Each url is requested in a separate instance of # wrk. # Type: list urls: - # There must be an empty file (0B) requested but vpp does not support it. - - "http://192.168.10.2" - - "http://192.168.20.2" - - "http://192.168.30.2" - - "http://192.168.40.2" - - "http://192.168.50.2" - - "http://192.168.60.2" - - "http://192.168.70.2" - - "http://192.168.80.2" + - "http://192.168.10.2/empty.html" + - "http://192.168.20.2/empty.html" + - "http://192.168.30.2/empty.html" + - "http://192.168.40.2/empty.html" + - "http://192.168.50.2/empty.html" + - "http://192.168.60.2/empty.html" + - "http://192.168.70.2/empty.html" + - "http://192.168.80.2/empty.html" # Index of the first CPU on the numa used to run wrk. # Type: integer diff --git a/resources/traffic_profiles/wrk/wrk-sf-2n-ethip4tcphttp-8u8c50con-rps.yaml b/resources/traffic_profiles/wrk/wrk-sf-2n-ethip4tcphttp-8u8c50con-rps.yaml index c1ad9e4217..d997e16ed2 100644 --- a/resources/traffic_profiles/wrk/wrk-sf-2n-ethip4tcphttp-8u8c50con-rps.yaml +++ b/resources/traffic_profiles/wrk/wrk-sf-2n-ethip4tcphttp-8u8c50con-rps.yaml @@ -1,18 +1,17 @@ -# This is an example wrk traffic profile. +# wrk-sf-2n-ethip4tcphttp-8u8c50con-rps traffic profile. # List of urls for requests. Each url is requested in a separate instance of # wrk. # Type: list urls: - # There must be a file (1kB - 1MB) requested but vpp does not support it. - - "http://192.168.10.2" - - "http://192.168.20.2" - - "http://192.168.30.2" - - "http://192.168.40.2" - - "http://192.168.50.2" - - "http://192.168.60.2" - - "http://192.168.70.2" - - "http://192.168.80.2" + - "http://192.168.10.2/empty.html" + - "http://192.168.20.2/empty.html" + - "http://192.168.30.2/empty.html" + - "http://192.168.40.2/empty.html" + - "http://192.168.50.2/empty.html" + - "http://192.168.60.2/empty.html" + - "http://192.168.70.2/empty.html" + - "http://192.168.80.2/empty.html" # Index of the first CPU on the numa used to run wrk. # Type: integer diff --git a/resources/traffic_profiles/wrk/www/empty.html b/resources/traffic_profiles/wrk/www/empty.html new file mode 100644 index 0000000000..e69de29bb2 diff --git a/tests/vpp/perf/tcp/10ge2p1x520-ethip4tcphttp-httpserver.robot b/tests/vpp/perf/tcp/2n1l-10ge2p1x710-eth-ip4tcphttp-cps.robot similarity index 52% rename from tests/vpp/perf/tcp/10ge2p1x520-ethip4tcphttp-httpserver.robot rename to tests/vpp/perf/tcp/2n1l-10ge2p1x710-eth-ip4tcphttp-cps.robot index c995a586af..7dd6a5d132 100644 --- a/tests/vpp/perf/tcp/10ge2p1x520-ethip4tcphttp-httpserver.robot +++ b/tests/vpp/perf/tcp/2n1l-10ge2p1x710-eth-ip4tcphttp-cps.robot @@ -1,4 +1,4 @@ -# Copyright (c) 2018 Cisco and/or its affiliates. +# 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: @@ -18,7 +18,8 @@ | Resource | resources/libraries/robot/shared/default.robot | Resource | resources/libraries/robot/tcp/tcp_setup.robot | ... -| Force Tags | 3_NODE_SINGLE_LINK_TOPO | PERFTEST | HW_ENV | HTTP | TCP +| Force Tags | 2_NODE_SINGLE_LINK_TOPO | PERFTEST | HW_ENV +| ... | HTTP | TCP | TCP_CPS | NIC_Intel-X710 | ... | Suite Setup | Setup suite single link | wrk | Suite Teardown | Tear down suite @@ -27,27 +28,28 @@ | ... | Test Template | Local template | ... -| Documentation | *HTTP requests per seconds, connections per seconds and -| ... | throughput measurement.* +| Documentation | *HTTP connections per seconds.* | ... | ... | *[Top] Network Topologies:* TG-DUT-TG 2-node topology | ... | with single link between nodes. -| ... | *[Enc] Packet Encapsulations:* Eth-IPv4 for IPv4 routing. +| ... | *[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 +| @{plugins_to_enable}= | dpdk_plugin.so | http_static_plugin.so +| ... | hs_apps_plugin.so +| ${nic_name}= | Intel-X710 +| ${traffic_profile}= | wrk-sf-2n-ethip4tcphttp-8u8c50con-cps +| ${http_static_plugin}= | ${false} *** Keywords *** | Local template -| | [Arguments] | ${traffic_profile} | ${phy_cores} | ${test_type} -| | ... | ${rxq}=${None} +| | [Arguments] | ${phy_cores} | ${rxq}=${None} | | ... | | Add worker threads and rxqueues to all DUTs | ${phy_cores} | ${rxq} | | Add PCI devices to all DUTs -| | ${duts}= | Get Matches | ${nodes} | DUT* | | :FOR | ${dut} | IN | @{duts} | | | Import Library | resources.libraries.python.VppConfigGenerator | | | ... | WITH NAME | ${dut} @@ -64,67 +66,28 @@ | | | Run keyword | ${dut}.Add session local endpoints table buckets | 2500000 | | | Run keyword | ${dut}.Add session local endpoints table memory | 3g | | Apply startup configuration on all VPP DUTs -| | Run Keyword If | '${test_type}' == 'bw' -| | ... | Run keywords -| | ... | Set up HTTP server with paramters on the VPP node -| | ... | 500000 | 4 | 4000m | AND -| | ... | Measure throughput | ${traffic_profile} -| | ... | ELSE IF | '${test_type}' == 'rps' -| | ... | Run keywords -| | ... | Set up HTTP server with paramters on the VPP node -| | ... | 500000 | 4 | 4000m | AND -| | ... | Measure requests per second | ${traffic_profile} -| | ... | ELSE IF | '${test_type}' == 'cps' -| | ... | Run keywords -| | ... | Set up HTTP server with paramters on the VPP node -| | ... | 31000 | 64 | 4000m | AND -| | ... | Measure connections per second | ${traffic_profile} +| | When 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-1t1c-ethip4tcphttp-httpserver-cps +| tc01-IMIX-1c-eth-ip4tcphttp-wrk8u8c50con-cps | | [Documentation] | | ... | Measure number of connections per second using wrk. | | ... -| | [Tags] | 1C | TCP_CPS -| | traffic_profile=wrk-sf-2n-ethip4tcphttp-8u8c50con-cps | phy_cores=${1} -| | ... | test_type=cps +| | [Tags] | 1C +| | phy_cores=${1} -| tc02-2t2c-ethip4tcphttp-httpserver-cps +| tc02-IMIX-2c-eth-ip4tcphttp-wrk8u8c50con-cps | | [Documentation] | | ... | Measure number of connections per second using wrk. | | ... -| | [Tags] | 2C | TCP_CPS -| | traffic_profile=wrk-sf-2n-ethip4tcphttp-8u8c50con-cps | phy_cores=${2} -| | ... | test_type=cps +| | [Tags] | 2C +| | phy_cores=${2} -| tc03-4t4c-ethip4tcphttp-httpserver-cps +| tc03-IMIX-4c-eth-ip4tcphttp-wrk8u8c50con-cps | | [Documentation] | | ... | Measure number of connections per second using wrk. | | ... -| | [Tags] | 4C | TCP_CPS -| | traffic_profile=wrk-sf-2n-ethip4tcphttp-8u8c50con-cps | phy_cores=${4} -| | ... | test_type=cps - -| tc04-1t1c-ethip4tcphttp-httpserver-rps -| | [Documentation] -| | ... | Measure and report number of requests per second using wrk. -| | ... -| | [Tags] | 1C | TCP_RPS -| | traffic_profile=wrk-sf-2n-ethip4tcphttp-8u8c50con-rps | phy_cores=${1} -| | ... | test_type=rps - -| tc05-2t2c-ethip4tcphttp-httpserver-rps -| | [Documentation] -| | ... | Measure and report number of requests per second using wrk. -| | ... -| | [Tags] | 2C | TCP_RPS -| | traffic_profile=wrk-sf-2n-ethip4tcphttp-8u8c50con-rps | phy_cores=${2} -| | ... | test_type=rps - -| tc06-4t4c-ethip4tcphttp-httpserver-rps -| | [Documentation] -| | ... | Measure and report number of requests per second using wrk. -| | ... -| | [Tags] | 4C | TCP_RPS -| | traffic_profile=wrk-sf-2n-ethip4tcphttp-8u8c50con-rps | phy_cores=${4} -| | ... | test_type=rps +| | [Tags] | 4C +| | phy_cores=${4} diff --git a/tests/vpp/perf/tcp/2n1l-10ge2p1x710-eth-ip4tcphttp-rps.robot b/tests/vpp/perf/tcp/2n1l-10ge2p1x710-eth-ip4tcphttp-rps.robot new file mode 100644 index 0000000000..b5f405d738 --- /dev/null +++ b/tests/vpp/perf/tcp/2n1l-10ge2p1x710-eth-ip4tcphttp-rps.robot @@ -0,0 +1,93 @@ +# 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. + +*** 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/tcp/tcp_setup.robot +| ... +| Force Tags | 2_NODE_SINGLE_LINK_TOPO | PERFTEST | HW_ENV +| ... | HTTP | TCP | TCP_RPS | NIC_Intel-X710 +| ... +| Suite Setup | Setup suite single link | wrk +| Suite Teardown | Tear down suite +| 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 +| ${nic_name}= | Intel-X710 +| ${traffic_profile}= | wrk-sf-2n-ethip4tcphttp-8u8c50con-rps +| ${http_static_plugin}= | ${true} + +*** Keywords *** +| Local template +| | [Arguments] | ${phy_cores} | ${rxq}=${None} +| | ... +| | Add worker threads and rxqueues to all DUTs | ${phy_cores} | ${rxq} +| | Add PCI devices to all DUTs +| | :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 +| | Apply startup configuration on all VPP DUTs +| | When 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 +| | [Documentation] +| | ... | Measure number of requests per second using wrk. +| | ... +| | [Tags] | 1C +| | phy_cores=${1} + +| tc02-IMIX-2c-eth-ip4tcphttp-wrk8u8c50con-rps +| | [Documentation] +| | ... | Measure number of requests per second using wrk. +| | ... +| | [Tags] | 2C +| | phy_cores=${2} + +| tc03-IMIX-4c-eth-ip4tcphttp-wrk8u8c50con-rps +| | [Documentation] +| | ... | Measure number of requests per second using wrk. +| | ... +| | [Tags] | 4C +| | phy_cores=${4}