aboutsummaryrefslogtreecommitdiffstats
path: root/resources
diff options
context:
space:
mode:
Diffstat (limited to 'resources')
-rw-r--r--resources/api/vpp/supported_crcs.yaml4
-rw-r--r--resources/libraries/bash/entry/bootstrap_verify_perf.sh4
-rwxr-xr-xresources/libraries/bash/entry/bootstrap_vpp_device.sh4
-rw-r--r--resources/libraries/bash/entry/per_patch_device.sh6
-rw-r--r--resources/libraries/bash/entry/per_patch_perf.sh8
-rw-r--r--resources/libraries/bash/function/branch.sh6
-rw-r--r--resources/libraries/bash/function/common.sh165
-rw-r--r--resources/libraries/bash/function/device.sh14
-rw-r--r--resources/libraries/bash/function/per_patch.sh31
-rw-r--r--resources/libraries/python/Constants.py3
-rw-r--r--resources/libraries/python/MLRsearch/AbstractMeasurer.py4
-rw-r--r--resources/libraries/python/MLRsearch/AbstractSearchAlgorithm.py15
-rw-r--r--resources/libraries/python/MLRsearch/MultipleLossRatioSearch.py36
-rw-r--r--resources/libraries/python/MLRsearch/ReceiveRateMeasurement.py66
-rw-r--r--resources/libraries/python/NATUtil.py36
-rw-r--r--resources/libraries/python/PLRsearch/PLRsearch.py27
-rw-r--r--resources/libraries/python/PapiExecutor.py12
-rw-r--r--resources/libraries/python/TrafficGenerator.py960
-rw-r--r--resources/libraries/python/autogen/Regenerator.py3
-rw-r--r--resources/libraries/robot/ip/nat.robot24
-rw-r--r--resources/libraries/robot/performance/performance_actions.robot92
-rw-r--r--resources/libraries/robot/performance/performance_display.robot240
-rw-r--r--resources/libraries/robot/performance/performance_limits.robot153
-rw-r--r--resources/libraries/robot/performance/performance_utils.robot922
-rw-r--r--resources/libraries/robot/performance/performance_vars.robot522
-rw-r--r--resources/libraries/robot/shared/default.robot21
-rw-r--r--resources/libraries/robot/shared/test_teardown.robot20
-rw-r--r--resources/tools/presentation/conf.py7
-rw-r--r--resources/tools/presentation/generator_alerts.py11
-rw-r--r--resources/tools/presentation/generator_plots.py168
-rw-r--r--resources/tools/presentation/generator_report.py6
-rw-r--r--resources/tools/presentation/input_data_parser.py121
-rwxr-xr-xresources/tools/presentation/run_report.sh2
-rw-r--r--resources/tools/presentation/specification.yaml4401
-rw-r--r--resources/tools/testbed-setup/ansible/inventories/lf_inventory/host_vars/10.30.51.16.yaml12
-rw-r--r--resources/tools/testbed-setup/ansible/inventories/lf_inventory/host_vars/10.30.51.17.yaml12
-rw-r--r--resources/tools/testbed-setup/ansible/inventories/lf_inventory/host_vars/10.30.51.18.yaml12
-rw-r--r--resources/tools/testbed-setup/ansible/inventories/lf_inventory/host_vars/10.30.51.20.yaml12
-rw-r--r--resources/tools/testbed-setup/ansible/inventories/lf_inventory/host_vars/10.30.51.21.yaml12
-rw-r--r--resources/tools/testbed-setup/ansible/inventories/lf_inventory/host_vars/10.30.51.22.yaml12
-rw-r--r--resources/tools/testbed-setup/ansible/inventories/lf_inventory/host_vars/10.30.51.24.yaml12
-rw-r--r--resources/tools/testbed-setup/ansible/inventories/lf_inventory/host_vars/10.30.51.25.yaml12
-rw-r--r--resources/tools/testbed-setup/ansible/inventories/lf_inventory/host_vars/10.30.51.26.yaml12
-rw-r--r--resources/tools/testbed-setup/ansible/inventories/lf_inventory/host_vars/10.30.51.28.yaml19
-rw-r--r--resources/tools/testbed-setup/ansible/inventories/lf_inventory/host_vars/10.30.51.29.yaml19
-rw-r--r--resources/tools/testbed-setup/ansible/inventories/lf_inventory/host_vars/10.30.51.30.yaml18
-rw-r--r--resources/tools/testbed-setup/ansible/inventories/lf_inventory/host_vars/10.30.51.32.yaml18
-rw-r--r--resources/tools/testbed-setup/ansible/inventories/lf_inventory/host_vars/10.30.51.33.yaml18
-rw-r--r--resources/tools/testbed-setup/ansible/inventories/lf_inventory/host_vars/10.30.51.34.yaml19
-rw-r--r--resources/tools/testbed-setup/ansible/inventories/lf_inventory/host_vars/10.30.51.35.yaml19
-rw-r--r--resources/tools/testbed-setup/ansible/inventories/lf_inventory/host_vars/10.30.51.36.yaml10
-rw-r--r--resources/tools/testbed-setup/ansible/inventories/lf_inventory/host_vars/10.30.51.37.yaml10
-rw-r--r--resources/tools/testbed-setup/ansible/inventories/lf_inventory/host_vars/10.30.51.39.yaml24
-rw-r--r--resources/tools/testbed-setup/ansible/inventories/lf_inventory/host_vars/10.30.51.40.yaml24
-rw-r--r--resources/tools/testbed-setup/ansible/inventories/lf_inventory/host_vars/10.30.51.44.yaml12
-rw-r--r--resources/tools/testbed-setup/ansible/inventories/lf_inventory/host_vars/10.30.51.45.yaml12
-rw-r--r--resources/tools/testbed-setup/ansible/inventories/lf_inventory/host_vars/10.30.51.46.yaml12
-rw-r--r--resources/tools/testbed-setup/ansible/inventories/lf_inventory/host_vars/10.30.51.47.yaml12
-rw-r--r--resources/tools/testbed-setup/ansible/inventories/lf_inventory/host_vars/10.30.51.48.yaml12
-rw-r--r--resources/tools/testbed-setup/ansible/inventories/lf_inventory/host_vars/10.30.51.49.yaml12
-rw-r--r--resources/tools/testbed-setup/ansible/inventories/lf_inventory/host_vars/10.30.51.50.yaml35
-rw-r--r--resources/tools/testbed-setup/ansible/inventories/lf_inventory/host_vars/10.30.51.51.yaml35
-rw-r--r--resources/tools/testbed-setup/ansible/inventories/lf_inventory/host_vars/10.30.51.52.yaml12
-rw-r--r--resources/tools/testbed-setup/ansible/inventories/lf_inventory/host_vars/10.30.51.53.yaml12
-rw-r--r--resources/tools/testbed-setup/ansible/inventories/lf_inventory/host_vars/10.30.51.54.yaml12
-rw-r--r--resources/tools/testbed-setup/ansible/inventories/lf_inventory/host_vars/10.30.51.55.yaml12
-rw-r--r--resources/tools/testbed-setup/ansible/inventories/lf_inventory/host_vars/10.30.51.56.yaml12
-rw-r--r--resources/tools/testbed-setup/ansible/inventories/lf_inventory/host_vars/10.30.51.57.yaml12
-rw-r--r--resources/tools/testbed-setup/ansible/inventories/lf_inventory/host_vars/10.30.51.58.yaml12
-rw-r--r--resources/tools/testbed-setup/ansible/inventories/lf_inventory/host_vars/10.30.51.59.yaml12
-rw-r--r--resources/tools/testbed-setup/ansible/inventories/lf_inventory/host_vars/10.30.51.60.yaml12
-rw-r--r--resources/tools/testbed-setup/ansible/inventories/lf_inventory/host_vars/10.30.51.65.yaml21
-rw-r--r--resources/tools/testbed-setup/ansible/inventories/lf_inventory/host_vars/10.30.51.66.yaml21
-rw-r--r--resources/tools/testbed-setup/ansible/inventories/lf_inventory/host_vars/10.30.51.67.yaml21
-rw-r--r--resources/tools/testbed-setup/ansible/inventories/lf_inventory/host_vars/10.30.51.68.yaml19
-rw-r--r--resources/tools/testbed-setup/ansible/inventories/lf_inventory/host_vars/10.30.51.69.yaml19
-rw-r--r--resources/tools/testbed-setup/ansible/inventories/lf_inventory/host_vars/10.30.51.70.yaml19
-rw-r--r--resources/tools/testbed-setup/ansible/inventories/lf_inventory/host_vars/10.30.51.71.yaml19
-rw-r--r--resources/tools/testbed-setup/ansible/inventories/lf_inventory/host_vars/10.32.8.10.yaml12
-rw-r--r--resources/tools/testbed-setup/ansible/inventories/lf_inventory/host_vars/10.32.8.11.yaml12
-rw-r--r--resources/tools/testbed-setup/ansible/inventories/lf_inventory/host_vars/10.32.8.12.yaml12
-rw-r--r--resources/tools/testbed-setup/ansible/inventories/lf_inventory/host_vars/10.32.8.13.yaml12
-rw-r--r--resources/tools/testbed-setup/ansible/inventories/lf_inventory/host_vars/10.32.8.14.yaml25
-rw-r--r--resources/tools/testbed-setup/ansible/inventories/lf_inventory/host_vars/10.32.8.15.yaml25
-rw-r--r--resources/tools/testbed-setup/ansible/inventories/lf_inventory/host_vars/10.32.8.16.yaml21
-rw-r--r--resources/tools/testbed-setup/ansible/inventories/lf_inventory/host_vars/10.32.8.17.yaml59
-rw-r--r--resources/tools/testbed-setup/ansible/inventories/lf_inventory/host_vars/10.32.8.18.yaml12
-rw-r--r--resources/tools/testbed-setup/ansible/inventories/lf_inventory/host_vars/10.32.8.19.yaml12
-rw-r--r--resources/tools/testbed-setup/ansible/inventories/lf_inventory/host_vars/10.32.8.20.yaml12
-rw-r--r--resources/tools/testbed-setup/ansible/inventories/lf_inventory/host_vars/10.32.8.21.yaml12
-rw-r--r--resources/tools/testbed-setup/ansible/inventories/lf_inventory/host_vars/10.32.8.22.yaml12
-rw-r--r--resources/tools/testbed-setup/ansible/inventories/lf_inventory/host_vars/10.32.8.23.yaml12
-rw-r--r--resources/tools/testbed-setup/ansible/inventories/lf_inventory/host_vars/10.32.8.24.yaml26
-rw-r--r--resources/tools/testbed-setup/ansible/inventories/lf_inventory/host_vars/10.32.8.25.yaml26
-rw-r--r--resources/tools/testbed-setup/ansible/inventories/lf_inventory/hosts5
-rw-r--r--resources/tools/testbed-setup/ansible/nomad.yaml4
-rw-r--r--resources/tools/testbed-setup/ansible/roles/calibration/tasks/main.yaml59
-rw-r--r--resources/tools/testbed-setup/ansible/roles/cleanup/tasks/kill_containers.yaml21
-rw-r--r--resources/tools/testbed-setup/ansible/roles/cleanup/tasks/kill_process.yaml1
-rw-r--r--resources/tools/testbed-setup/ansible/roles/cleanup/tasks/sut.yaml24
-rw-r--r--resources/tools/testbed-setup/ansible/roles/common/defaults/main.yaml1
-rw-r--r--resources/tools/testbed-setup/ansible/roles/consul/defaults/main.yaml110
-rw-r--r--resources/tools/testbed-setup/ansible/roles/consul/handlers/main.yaml23
-rw-r--r--resources/tools/testbed-setup/ansible/roles/consul/meta/main.yaml9
-rw-r--r--resources/tools/testbed-setup/ansible/roles/consul/tasks/main.yaml174
-rw-r--r--resources/tools/testbed-setup/ansible/roles/consul/templates/base.hcl.j243
-rw-r--r--resources/tools/testbed-setup/ansible/roles/consul/templates/consul.hcl.j212
-rw-r--r--resources/tools/testbed-setup/ansible/roles/consul/templates/consul_systemd.service.j221
-rw-r--r--resources/tools/testbed-setup/ansible/roles/consul/templates/ports.hcl.j29
-rw-r--r--resources/tools/testbed-setup/ansible/roles/consul/templates/services.json.j213
-rw-r--r--resources/tools/testbed-setup/ansible/roles/consul/templates/telemetry.hcl.j23
-rw-r--r--resources/tools/testbed-setup/ansible/roles/consul/vars/main.yaml5
-rw-r--r--resources/tools/testbed-setup/ansible/roles/csit_shim_image/files/Dockerfile61
-rw-r--r--resources/tools/testbed-setup/ansible/roles/csit_shim_image/files/files/badkeypub1
-rw-r--r--resources/tools/testbed-setup/ansible/roles/csit_shim_image/files/files/sshconfig3
-rw-r--r--resources/tools/testbed-setup/ansible/roles/csit_shim_image/files/files/wrapdocker113
-rw-r--r--resources/tools/testbed-setup/ansible/roles/csit_shim_image/tasks/main.yaml32
-rw-r--r--resources/tools/testbed-setup/ansible/roles/csit_sut_image/files/Dockerfile173
-rw-r--r--resources/tools/testbed-setup/ansible/roles/csit_sut_image/files/supervisord.conf24
-rw-r--r--resources/tools/testbed-setup/ansible/roles/csit_sut_image/tasks/main.yaml27
-rw-r--r--resources/tools/testbed-setup/ansible/roles/docker/defaults/main.yaml15
-rw-r--r--resources/tools/testbed-setup/ansible/roles/docker/meta/main.yaml4
-rw-r--r--resources/tools/testbed-setup/ansible/roles/docker/tasks/main.yaml4
-rw-r--r--resources/tools/testbed-setup/ansible/roles/docker/tasks/ubuntu_bionic.yaml4
-rw-r--r--resources/tools/testbed-setup/ansible/roles/nomad/defaults/main.yaml1
-rw-r--r--resources/tools/testbed-setup/ansible/roles/nomad/templates/client.hcl.j29
-rw-r--r--resources/tools/testbed-setup/ansible/roles/nomad/templates/nomad_systemd.service.j22
-rw-r--r--resources/tools/testbed-setup/ansible/roles/performance_tuning/defaults/main.yaml8
-rw-r--r--resources/tools/testbed-setup/ansible/roles/performance_tuning/tasks/main.yaml2
-rw-r--r--resources/tools/testbed-setup/ansible/roles/trex/defaults/main.yaml6
-rw-r--r--resources/tools/testbed-setup/ansible/roles/trex/tasks/deploy_block.yaml55
-rw-r--r--resources/tools/testbed-setup/ansible/roles/trex/tasks/main.yaml79
-rw-r--r--resources/tools/testbed-setup/ansible/roles/vpp_device/tasks/main.yaml2
-rw-r--r--resources/tools/testbed-setup/ansible/sut.yaml2
-rw-r--r--resources/tools/testbed-setup/ansible/tg.yaml8
-rw-r--r--resources/tools/testbed-setup/ansible/tg_aws.yaml2
-rw-r--r--resources/tools/testbed-setup/ansible/tg_azure.yaml2
-rw-r--r--resources/tools/testbed-setup/ansible/vault.yml1289
-rw-r--r--resources/tools/testbed-setup/ansible/vpp_device.yaml12
139 files changed, 8901 insertions, 2687 deletions
diff --git a/resources/api/vpp/supported_crcs.yaml b/resources/api/vpp/supported_crcs.yaml
index c3eb03226b..7e73a1fcca 100644
--- a/resources/api/vpp/supported_crcs.yaml
+++ b/resources/api/vpp/supported_crcs.yaml
@@ -88,6 +88,7 @@
det44_plugin_enable_disable: '0xfc4b5d73' # perf
det44_plugin_enable_disable_reply: '0xe8d4e804' # perf
det44_session_dump: '0xe45a3af7' # perf teardown
+ # TODO: Which test to run to verify det44_* messages?
# dhcp_proxy_dump / details # honeycomb
gbp_bridge_domain_add: '0x8454bfdf' # dev
gbp_bridge_domain_add_reply: '0xe8d4e804' # dev
@@ -208,8 +209,7 @@
nat_show_config_reply: '0x7903ef06' # dev teardown
nat_worker_details: '0x84bf06fc' # dev teardown
nat_worker_dump: '0x51077d14' # dev teardown
- # 6x^ tc01-64B-1c-ethip4udp-snat44det-h1-p1-s1-mrr
- # ^ nat44NOTscaleNOTsrc_user_1
+ # TODO: Which test to run to verify nat* messages?
nsim_configure: '0x16ed400f' # perf
nsim_configure_reply: '0xe8d4e804' # perf
nsim_output_feature_enable_disable: '0x3865946c' # perf
diff --git a/resources/libraries/bash/entry/bootstrap_verify_perf.sh b/resources/libraries/bash/entry/bootstrap_verify_perf.sh
index 2098f789cf..fc3344010b 100644
--- a/resources/libraries/bash/entry/bootstrap_verify_perf.sh
+++ b/resources/libraries/bash/entry/bootstrap_verify_perf.sh
@@ -1,4 +1,4 @@
-# Copyright (c) 2019 Cisco and/or its affiliates.
+# 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:
@@ -48,5 +48,5 @@ select_tags || die
compose_pybot_arguments || die
run_pybot || die
untrap_and_unreserve_testbed || die
-copy_archives || die
+move_archives || die
die_on_pybot_error || die
diff --git a/resources/libraries/bash/entry/bootstrap_vpp_device.sh b/resources/libraries/bash/entry/bootstrap_vpp_device.sh
index ce887f4b5b..ef7bb08dfa 100755
--- a/resources/libraries/bash/entry/bootstrap_vpp_device.sh
+++ b/resources/libraries/bash/entry/bootstrap_vpp_device.sh
@@ -1,6 +1,6 @@
#!/usr/bin/env bash
-# Copyright (c) 2019 Cisco and/or its affiliates.
+# 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:
@@ -46,5 +46,5 @@ activate_docker_topology || die
select_vpp_device_tags || die
compose_pybot_arguments || die
run_pybot || die
-copy_archives || die
+move_archives || die
die_on_pybot_error || die
diff --git a/resources/libraries/bash/entry/per_patch_device.sh b/resources/libraries/bash/entry/per_patch_device.sh
index 65577c2909..01e4de0089 100644
--- a/resources/libraries/bash/entry/per_patch_device.sh
+++ b/resources/libraries/bash/entry/per_patch_device.sh
@@ -1,6 +1,6 @@
#!/usr/bin/env bash
-# Copyright (c) 2019 Cisco and/or its affiliates.
+# 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:
@@ -24,7 +24,7 @@ set -exuo pipefail
# + Everything needed to build VPP is already installed locally.
# Consequences:
# + The following directories (relative to VPP repo) are (re)created:
-# ++ csit_current, build_current, archive, csit/archive, csit_download_dir.
+# ++ csit_current, build_current, archives, csit/archives, csit_download_dir.
# TODO: Implement some kind of VPP build caching.
@@ -56,6 +56,6 @@ activate_docker_topology || die
select_vpp_device_tags || die
compose_pybot_arguments || die
run_pybot || die
-copy_archives || die
+move_archives || die
archive_test_results "csit_current" || die
die_on_pybot_error || die
diff --git a/resources/libraries/bash/entry/per_patch_perf.sh b/resources/libraries/bash/entry/per_patch_perf.sh
index deae8b0bd3..7b64aea67f 100644
--- a/resources/libraries/bash/entry/per_patch_perf.sh
+++ b/resources/libraries/bash/entry/per_patch_perf.sh
@@ -1,6 +1,6 @@
#!/usr/bin/env bash
-# Copyright (c) 2018 Cisco and/or its affiliates.
+# 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:
@@ -27,7 +27,7 @@ set -exuo pipefail
# + Directories build_root, build and csit are reset during the run.
# + The following directories (relative to VPP repo) are (re)created:
# ++ csit_new, csit_parent, build_new, build_parent,
-# ++ archive, csit/archive, csit_download_dir.
+# ++ archives, csit/archives, csit_download_dir.
# TODO: Implement some kind of VPP build caching.
@@ -48,8 +48,6 @@ build_vpp_ubuntu_amd64 "CURRENT" || die
set_aside_commit_build_artifacts || die
build_vpp_ubuntu_amd64 "PARENT" || die
set_aside_parent_build_artifacts || die
-## Replace previous 4 lines with this to speed up testing.
-#download_builds "REPLACE_WITH_URL" || die
initialize_csit_dirs || die
get_test_code "${1-}" || die
get_test_tag_string || die
@@ -74,7 +72,6 @@ for ((iter=0; iter<iterations; iter++)); do
select_build "build_current" || die
check_download_dir || die
run_pybot || die
- copy_archives || die
archive_parse_test_results "csit_current/${iter}" || die
die_on_pybot_error || die
# TODO: Use less heavy way to avoid apt remove failures.
@@ -82,7 +79,6 @@ for ((iter=0; iter<iterations; iter++)); do
select_build "build_parent" || die
check_download_dir || die
run_pybot || die
- copy_archives || die
archive_parse_test_results "csit_parent/${iter}" || die
die_on_pybot_error || die
done
diff --git a/resources/libraries/bash/function/branch.sh b/resources/libraries/bash/function/branch.sh
index 96609c8227..ba9cc39c67 100644
--- a/resources/libraries/bash/function/branch.sh
+++ b/resources/libraries/bash/function/branch.sh
@@ -1,4 +1,4 @@
-# Copyright (c) 2020 Cisco and/or its affiliates.
+# 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:
@@ -57,6 +57,10 @@ function checkout_csit_for_vpp () {
set -exuo pipefail
case "${1}" in
+ "stable/2009")
+ # LTS branch
+ branch_id="origin/${1/stable\//oper-rls}_lts"
+ ;;
"stable/"*)
branch_id="origin/${1/stable\//oper-rls}"
;;
diff --git a/resources/libraries/bash/function/common.sh b/resources/libraries/bash/function/common.sh
index 8e0ee97be1..15b7921bb3 100644
--- a/resources/libraries/bash/function/common.sh
+++ b/resources/libraries/bash/function/common.sh
@@ -145,7 +145,7 @@ function archive_tests () {
set -exuo pipefail
- tar c "${GENERATED_DIR}/tests" | xz -9e > "${ARCHIVE_DIR}/tests.tar.xz" || {
+ tar c "${GENERATED_DIR}/tests" | xz -3 > "${ARCHIVE_DIR}/tests.tar.xz" || {
die "Error creating archive of generated tests."
}
}
@@ -198,7 +198,8 @@ function common_dirs () {
# - RESOURCES_DIR - Path to existing CSIT subdirectory "resources".
# - TOOLS_DIR - Path to existing resources subdirectory "tools".
# - PYTHON_SCRIPTS_DIR - Path to existing tools subdirectory "scripts".
- # - ARCHIVE_DIR - Path to created CSIT subdirectory "archive".
+ # - ARCHIVE_DIR - Path to created CSIT subdirectory "archives".
+ # The name is chosen to match what ci-management expects.
# - DOWNLOAD_DIR - Path to created CSIT subdirectory "download_dir".
# - GENERATED_DIR - Path to created CSIT subdirectory "generated".
# Directories created if not present:
@@ -240,7 +241,7 @@ function common_dirs () {
die "Readlink failed."
}
- ARCHIVE_DIR=$(readlink -f "${CSIT_DIR}/archive") || {
+ ARCHIVE_DIR=$(readlink -f "${CSIT_DIR}/archives") || {
die "Readlink failed."
}
mkdir -p "${ARCHIVE_DIR}" || die "Mkdir failed."
@@ -263,6 +264,7 @@ function compose_pybot_arguments () {
# - TAGS - Array variable holding selected tag boolean expressions.
# - TOPOLOGIES_TAGS - Tag boolean expression filtering tests for topology.
# - TEST_CODE - The test selection string from environment or argument.
+ # - SELECTION_MODE - Selection criteria [test, suite, include, exclude].
# Variables set:
# - PYBOT_ARGS - String holding part of all arguments for pybot.
# - EXPANDED_TAGS - Array of strings pybot arguments compiled from tags.
@@ -289,33 +291,16 @@ function compose_pybot_arguments () {
if [[ ${tag} == "!"* ]]; then
EXPANDED_TAGS+=("--exclude" "${tag#$"!"}")
else
- EXPANDED_TAGS+=("--include" "${TOPOLOGIES_TAGS}AND${tag}")
+ if [[ ${SELECTION_MODE} == "--test" ]]; then
+ EXPANDED_TAGS+=("--test" "${tag}")
+ else
+ EXPANDED_TAGS+=("--include" "${TOPOLOGIES_TAGS}AND${tag}")
+ fi
fi
done
-}
-
-function copy_archives () {
-
- # Create additional archive if workspace variable is set.
- # This way if script is running in jenkins all will be
- # automatically archived to logs.fd.io.
- #
- # Variables read:
- # - WORKSPACE - Jenkins workspace, copy only if the value is not empty.
- # Can be unset, then it speeds up manual testing.
- # - ARCHIVE_DIR - Path to directory with content to be copied.
- # Directories updated:
- # - ${WORKSPACE}/archives/ - Created if does not exist.
- # Content of ${ARCHIVE_DIR}/ is copied here.
- # Functions called:
- # - die - Print to stderr and exit.
-
- set -exuo pipefail
-
- if [[ -n "${WORKSPACE-}" ]]; then
- mkdir -p "${WORKSPACE}/archives/" || die "Archives dir create failed."
- cp -rf "${ARCHIVE_DIR}"/* "${WORKSPACE}/archives" || die "Copy failed."
+ if [[ ${SELECTION_MODE} == "--test" ]]; then
+ EXPANDED_TAGS+=("--include" "${TOPOLOGIES_TAGS}")
fi
}
@@ -460,6 +445,10 @@ function get_test_code () {
NODENESS="2n"
FLAVOR="skx"
;;
+ *"2n-zn2"*)
+ NODENESS="2n"
+ FLAVOR="zn2"
+ ;;
*"3n-skx"*)
NODENESS="3n"
FLAVOR="skx"
@@ -515,14 +504,20 @@ function get_test_tag_string () {
die "Unknown specification: ${TEST_CODE}"
esac
# Ignore lines not containing the trigger word.
- comment=$(fgrep "${trigger}" <<< "${GERRIT_EVENT_COMMENT_TEXT}") || true
+ comment=$(fgrep "${trigger}" <<< "${GERRIT_EVENT_COMMENT_TEXT}" || true)
# The vpp-csit triggers trail stuff we are not interested in.
# Removing them and trigger word: https://unix.stackexchange.com/a/13472
# (except relying on \s whitespace, \S non-whitespace and . both).
# The last string is concatenated, only the middle part is expanded.
cmd=("grep" "-oP" '\S*'"${trigger}"'\S*\s\K.+$') || die "Unset trigger?"
# On parsing error, TEST_TAG_STRING probably stays empty.
- TEST_TAG_STRING=$("${cmd[@]}" <<< "${comment}") || true
+ TEST_TAG_STRING=$("${cmd[@]}" <<< "${comment}" || true)
+ if [[ -z "${TEST_TAG_STRING-}" ]]; then
+ # Probably we got a base64 encoded comment.
+ comment=$(base64 --decode <<< "${GERRIT_EVENT_COMMENT_TEXT}" || true)
+ comment=$(fgrep "${trigger}" <<< "${comment}" || true)
+ TEST_TAG_STRING=$("${cmd[@]}" <<< "${comment}" || true)
+ fi
if [[ -n "${TEST_TAG_STRING-}" ]]; then
test_tag_array=(${TEST_TAG_STRING})
if [[ "${test_tag_array[0]}" == "icl" ]]; then
@@ -558,6 +553,47 @@ function installed () {
}
+function move_archives () {
+
+ # Move archive directory to top of workspace, if not already there.
+ #
+ # ARCHIVE_DIR is positioned relative to CSIT_DIR,
+ # but in some jobs CSIT_DIR is not same as WORKSPACE
+ # (e.g. under VPP_DIR). To simplify ci-management settings,
+ # we want to move the data to the top. We do not want simple copy,
+ # as ci-management is eager with recursive search.
+ #
+ # As some scripts may call this function multiple times,
+ # the actual implementation use copying and deletion,
+ # so the workspace gets "union" of contents (except overwrites on conflict).
+ # The consequence is empty ARCHIVE_DIR remaining after this call.
+ #
+ # As the source directory is emptied,
+ # the check for dirs being different is essential.
+ #
+ # Variables read:
+ # - WORKSPACE - Jenkins workspace, move only if the value is not empty.
+ # Can be unset, then it speeds up manual testing.
+ # - ARCHIVE_DIR - Path to directory with content to be moved.
+ # Directories updated:
+ # - ${WORKSPACE}/archives/ - Created if does not exist.
+ # Content of ${ARCHIVE_DIR}/ is moved.
+ # Functions called:
+ # - die - Print to stderr and exit.
+
+ set -exuo pipefail
+
+ if [[ -n "${WORKSPACE-}" ]]; then
+ target=$(readlink -f "${WORKSPACE}/archives")
+ if [[ "${target}" != "${ARCHIVE_DIR}" ]]; then
+ mkdir -p "${target}" || die "Archives dir create failed."
+ cp -rf "${ARCHIVE_DIR}"/* "${target}" || die "Copy failed."
+ rm -rf "${ARCHIVE_DIR}"/* || die "Delete failed."
+ fi
+ fi
+}
+
+
function reserve_and_cleanup_testbed () {
# Reserve physical testbed, perform cleanup, register trap to unreserve.
@@ -729,6 +765,7 @@ function select_tags () {
# - BASH_FUNCTION_DIR - Directory with input files to process.
# Variables set:
# - TAGS - Array of processed tag boolean expressions.
+ # - SELECTION_MODE - Selection criteria [test, suite, include, exclude].
set -exuo pipefail
@@ -756,7 +793,7 @@ function select_tags () {
*"3n-tsh"*)
default_nic="nic_intel-x520-da2"
;;
- *"3n-skx"* | *"2n-skx"* | *"2n-clx"*)
+ *"3n-skx"* | *"2n-skx"* | *"2n-clx"* | *"2n-zn2"*)
default_nic="nic_intel-xxv710"
;;
*"3n-hsw"* | *"mrr-daily-master")
@@ -768,48 +805,59 @@ function select_tags () {
esac
sed_nic_sub_cmd="sed s/\${default_nic}/${default_nic}/"
- sed_nics_sub_cmd="sed -e s/ANDxxv710/ANDnic_intel-xxv710/"
- sed_nics_sub_cmd+=" | sed -e s/ANDx710/ANDnic_intel-x710/"
- sed_nics_sub_cmd+=" | sed -e s/ANDxl710/ANDnic_intel-xl710/"
- sed_nics_sub_cmd+=" | sed -e s/ANDx520-da2/ANDnic_intel-x520-da2/"
- sed_nics_sub_cmd+=" | sed -e s/ANDx553/ANDnic_intel-x553/"
- sed_nics_sub_cmd+=" | sed -e s/ANDcx556a/ANDnic_mellanox-cx556a/"
- sed_nics_sub_cmd+=" | sed -e s/ANDvic1227/ANDnic_cisco-vic-1227/"
- sed_nics_sub_cmd+=" | sed -e s/ANDvic1385/ANDnic_cisco-vic-1385/"
+ awk_nics_sub_cmd=""
+ awk_nics_sub_cmd+='gsub("xxv710","25ge2p1xxv710");'
+ awk_nics_sub_cmd+='gsub("x710","10ge2p1x710");'
+ awk_nics_sub_cmd+='gsub("xl710","40ge2p1xl710");'
+ awk_nics_sub_cmd+='gsub("x520-da2","10ge2p1x520");'
+ awk_nics_sub_cmd+='gsub("x553","10ge2p1x553");'
+ awk_nics_sub_cmd+='gsub("cx556a","10ge2p1cx556a");'
+ awk_nics_sub_cmd+='gsub("vic1227","10ge2p1vic1227");'
+ awk_nics_sub_cmd+='gsub("vic1385","10ge2p1vic1385");'
+ awk_nics_sub_cmd+='if ($9 =="drv_avf") drv="avf-";'
+ awk_nics_sub_cmd+='else if ($9 =="drv_rdma_core") drv ="rdma-";'
+ awk_nics_sub_cmd+='else drv="";'
+ awk_nics_sub_cmd+='print "*"$7"-" drv $11"-"$5"."$3"-"$1"-" drv $11"-"$5'
+
# Tag file directory shorthand.
tfd="${JOB_SPECS_DIR}"
case "${TEST_CODE}" in
# Select specific performance tests based on jenkins job type variable.
*"ndrpdr-weekly"* )
- readarray -t test_tag_array <<< $(sed 's/ //g' \
+ readarray -t test_tag_array <<< $(grep -v "#" \
${tfd}/mlr_weekly/${DUT}-${NODENESS}-${FLAVOR}.md |
- eval ${sed_nics_sub_cmd} || echo "perftest") || die
+ awk {"$awk_nics_sub_cmd"} || echo "perftest") || die
+ SELECTION_MODE="--test"
;;
*"mrr-daily"* )
- readarray -t test_tag_array <<< $(sed 's/ //g' \
+ readarray -t test_tag_array <<< $(grep -v "#" \
${tfd}/mrr_daily/${DUT}-${NODENESS}-${FLAVOR}.md |
- eval ${sed_nics_sub_cmd} || echo "perftest") || die
+ awk {"$awk_nics_sub_cmd"} || echo "perftest") || die
+ SELECTION_MODE="--test"
;;
*"mrr-weekly"* )
- readarray -t test_tag_array <<< $(sed 's/ //g' \
+ readarray -t test_tag_array <<< $(grep -v "#" \
${tfd}/mrr_weekly/${DUT}-${NODENESS}-${FLAVOR}.md |
- eval ${sed_nics_sub_cmd} || echo "perftest") || die
+ awk {"$awk_nics_sub_cmd"} || echo "perftest") || die
+ SELECTION_MODE="--test"
;;
*"report-iterative"* )
test_sets=(${TEST_TAG_STRING//:/ })
# Run only one test set per run
report_file=${test_sets[0]}.md
- readarray -t test_tag_array <<< $(sed 's/ //g' \
+ readarray -t test_tag_array <<< $(grep -v "#" \
${tfd}/report_iterative/${NODENESS}-${FLAVOR}/${report_file} |
- eval ${sed_nics_sub_cmd} || echo "perftest") || die
+ awk {"$awk_nics_sub_cmd"} || echo "perftest") || die
+ SELECTION_MODE="--test"
;;
*"report-coverage"* )
test_sets=(${TEST_TAG_STRING//:/ })
# Run only one test set per run
report_file=${test_sets[0]}.md
- readarray -t test_tag_array <<< $(sed 's/ //g' \
+ readarray -t test_tag_array <<< $(grep -v "#" \
${tfd}/report_coverage/${NODENESS}-${FLAVOR}/${report_file} |
- eval ${sed_nics_sub_cmd} || echo "perftest") || die
+ awk {"$awk_nics_sub_cmd"} || echo "perftest") || die
+ SELECTION_MODE="--test"
;;
* )
if [[ -z "${TEST_TAG_STRING-}" ]]; then
@@ -824,6 +872,7 @@ function select_tags () {
# If trigger contains tags, split them into array.
test_tag_array=(${TEST_TAG_STRING//:/ })
fi
+ SELECTION_MODE="--include"
;;
esac
@@ -834,7 +883,7 @@ function select_tags () {
# TODO: Add missing reasons here (if general) or where used (if specific).
case "${TEST_CODE}" in
*"2n-skx"*)
- test_tag_array+=("!ipsechw")
+ test_tag_array+=("!ipsec")
;;
*"3n-skx"*)
test_tag_array+=("!ipsechw")
@@ -842,7 +891,10 @@ function select_tags () {
test_tag_array+=("!3_node_double_link_topoANDnic_intel-xxv710")
;;
*"2n-clx"*)
- test_tag_array+=("!ipsechw")
+ test_tag_array+=("!ipsec")
+ ;;
+ *"2n-zn2"*)
+ test_tag_array+=("!ipsec")
;;
*"2n-dnv"*)
test_tag_array+=("!ipsechw")
@@ -865,10 +917,6 @@ function select_tags () {
test_tag_array+=("!ipsechw")
;;
*"3n-hsw"*)
- # TODO: Introduce NOIOMMU version of AVF tests.
- # TODO: Make (both) AVF tests work on Haswell,
- # or document why (some of) it is not possible.
- # https://github.com/FDio/vpp/blob/master/src/plugins/avf/README.md
test_tag_array+=("!drv_avf")
# All cards have access to QAT. But only one card (xl710)
# resides in same NUMA as QAT. Other cards must go over QPI
@@ -886,10 +934,8 @@ function select_tags () {
test_tag_array+=("${exclude_nics[@]/#/!NIC_}")
TAGS=()
+ prefix=""
- # We will prefix with perftest to prevent running other tests
- # (e.g. Functional).
- prefix="perftestAND"
set +x
if [[ "${TEST_CODE}" == "vpp-"* ]]; then
# Automatic prefixing for VPP jobs to limit the NIC used and
@@ -958,6 +1004,10 @@ function select_topology () {
TOPOLOGIES=( "${TOPOLOGIES_DIR}"/*2n_skx*.yaml )
TOPOLOGIES_TAGS="2_node_*_link_topo"
;;
+ "2n_zn2")
+ TOPOLOGIES=( "${TOPOLOGIES_DIR}"/*2n_zn2*.yaml )
+ TOPOLOGIES_TAGS="2_node_*_link_topo"
+ ;;
"3n_skx")
TOPOLOGIES=( "${TOPOLOGIES_DIR}"/*3n_skx*.yaml )
TOPOLOGIES_TAGS="3_node_*_link_topo"
@@ -1017,6 +1067,7 @@ function select_vpp_device_tags () {
# If trigger contains tags, split them into array.
test_tag_array=(${TEST_TAG_STRING//:/ })
fi
+ SELECTION_MODE="--include"
;;
esac
diff --git a/resources/libraries/bash/function/device.sh b/resources/libraries/bash/function/device.sh
index a94244e52c..8eb0702bbd 100644
--- a/resources/libraries/bash/function/device.sh
+++ b/resources/libraries/bash/function/device.sh
@@ -98,15 +98,11 @@ function bind_interfaces_to_driver () {
pci_path="/sys/bus/pci/devices/${ADDR}"
drv_path="/sys/bus/pci/drivers/${DRIVER}"
- vd=$(cat ${pci_path}/vendor ${pci_path}/device) || {
- die "Failed to retrieve interface details!"
- }
- set +e
- echo ${vd} | sudo tee ${drv_path}/new_id
- set -e
- echo ${ADDR} | sudo tee ${pci_path}/driver/unbind || {
- die "Failed to unbind interface ${ADDR}!"
- }
+ if [ -d "${pci_path}/driver" ]; then
+ echo ${ADDR} | sudo tee ${pci_path}/driver/unbind || {
+ die "Failed to unbind interface ${ADDR}!"
+ }
+ fi
echo ${ADDR} | sudo tee ${drv_path}/bind || {
die "Failed to bind interface ${ADDR}!"
}
diff --git a/resources/libraries/bash/function/per_patch.sh b/resources/libraries/bash/function/per_patch.sh
index 8b97780cec..43a3f971bf 100644
--- a/resources/libraries/bash/function/per_patch.sh
+++ b/resources/libraries/bash/function/per_patch.sh
@@ -128,39 +128,10 @@ function compare_test_results () {
}
-function download_builds () {
-
- # This is mostly useful only for Sandbox testing, to avoid recompilation.
- #
- # Arguments:
- # - ${1} - URL to download VPP builds from.
- # Variables read:
- # - VPP_DIR - Path to WORKSPACE, parent of created directories.
- # Directories created:
- # - archive - Ends up empty, not to be confused with ${ARCHIVE_DIR}.
- # - build_current - Holding built artifacts of the patch under test (PUT).
- # - built_parent - Holding built artifacts of parent of PUT.
- # Functions called:
- # - die - Print to stderr and exit, defined in common.sh
+function initialize_csit_dirs () {
set -exuo pipefail
- cd "${VPP_DIR}" || die "Change directory operation failed."
- dirs=("build-root" "build_parent" "build_current" "archive" "csit_current")
- rm -rf ${dirs[@]} || {
- die "Directory removal failed."
- }
- wget -N --progress=dot:giga "${1}" || die "Wget download failed."
- unzip "archive.zip" || die "Archive extraction failed."
- mv "archive/build_parent" ./ || die "Move operation failed."
- mv "archive/build_current" ./ || die "Move operation failed."
-}
-
-
-function initialize_csit_dirs () {
-
- # This could be in prepare_test, but download_builds also needs this.
- #
# Variables read:
# - VPP_DIR - Path to WORKSPACE, parent of created directories.
# Directories created:
diff --git a/resources/libraries/python/Constants.py b/resources/libraries/python/Constants.py
index 3775d98377..faf861d89d 100644
--- a/resources/libraries/python/Constants.py
+++ b/resources/libraries/python/Constants.py
@@ -232,6 +232,9 @@ class Constants:
# Duration of one trial in MRR test.
PERF_TRIAL_DURATION = get_float_from_env(u"PERF_TRIAL_DURATION", 1.0)
+ # Whether to use latency streams in main search trials.
+ PERF_USE_LATENCY = get_pessimistic_bool_from_env(u"PERF_USE_LATENCY")
+
# Duration of one latency-specific trial in NDRPDR test.
PERF_TRIAL_LATENCY_DURATION = get_float_from_env(
u"PERF_TRIAL_LATENCY_DURATION", 5.0)
diff --git a/resources/libraries/python/MLRsearch/AbstractMeasurer.py b/resources/libraries/python/MLRsearch/AbstractMeasurer.py
index 622b8fdba6..82116f2e43 100644
--- a/resources/libraries/python/MLRsearch/AbstractMeasurer.py
+++ b/resources/libraries/python/MLRsearch/AbstractMeasurer.py
@@ -1,4 +1,4 @@
-# Copyright (c) 2019 Cisco and/or its affiliates.
+# 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:
@@ -24,7 +24,7 @@ class AbstractMeasurer(metaclass=ABCMeta):
"""Perform trial measurement and return the result.
:param duration: Trial duration [s].
- :param transmit_rate: Target transmit rate [pps].
+ :param transmit_rate: Target transmit rate [tps].
:type duration: float
:type transmit_rate: float
:returns: Structure containing the result of the measurement.
diff --git a/resources/libraries/python/MLRsearch/AbstractSearchAlgorithm.py b/resources/libraries/python/MLRsearch/AbstractSearchAlgorithm.py
index f4f2d3f096..f2bf04e1b1 100644
--- a/resources/libraries/python/MLRsearch/AbstractSearchAlgorithm.py
+++ b/resources/libraries/python/MLRsearch/AbstractSearchAlgorithm.py
@@ -1,4 +1,4 @@
-# Copyright (c) 2019 Cisco and/or its affiliates.
+# 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:
@@ -30,16 +30,19 @@ class AbstractSearchAlgorithm(metaclass=ABCMeta):
@abstractmethod
def narrow_down_ndr_and_pdr(
- self, fail_rate, line_rate, packet_loss_ratio):
+ self, min_rate, max_rate, packet_loss_ratio):
"""Perform measurements to narrow down intervals, return them.
This will be renamed when custom loss ratio lists are supported.
- :param fail_rate: Minimal target transmit rate [pps].
- :param line_rate: Maximal target transmit rate [pps].
+ :param min_rate: Minimal target transmit rate [tps].
+ Usually, tests are set to fail if search reaches this or below.
+ :param max_rate: Maximal target transmit rate [tps].
+ Usually computed from line rate and various other limits,
+ to prevent failures or duration stretching in Traffic Generator.
:param packet_loss_ratio: Fraction of packets lost, for PDR [1].
- :type fail_rate: float
- :type line_rate: float
+ :type min_rate: float
+ :type max_rate: float
:type packet_loss_ratio: float
:returns: Structure containing narrowed down intervals
and their measurements.
diff --git a/resources/libraries/python/MLRsearch/MultipleLossRatioSearch.py b/resources/libraries/python/MLRsearch/MultipleLossRatioSearch.py
index 2db65ef755..87dc784cbc 100644
--- a/resources/libraries/python/MLRsearch/MultipleLossRatioSearch.py
+++ b/resources/libraries/python/MLRsearch/MultipleLossRatioSearch.py
@@ -157,7 +157,7 @@ class MultipleLossRatioSearch(AbstractSearchAlgorithm):
:returns: The relative width of double logarithmic size.
:rtype: float
"""
- return 1.999 * relative_width - relative_width * relative_width
+ return 1.99999 * relative_width - relative_width * relative_width
# The number should be 2.0, but we want to avoid rounding errors,
# and ensure half of double is not larger than the original value.
@@ -255,52 +255,50 @@ class MultipleLossRatioSearch(AbstractSearchAlgorithm):
1.0 - MultipleLossRatioSearch.half_relative_width(relative_width)
)
- def narrow_down_ndr_and_pdr(
- self, minimum_transmit_rate, maximum_transmit_rate,
- packet_loss_ratio):
+ def narrow_down_ndr_and_pdr(self, min_rate, max_rate, packet_loss_ratio):
"""Perform initial phase, create state object, proceed with next phases.
- :param minimum_transmit_rate: Minimal target transmit rate [pps].
- :param maximum_transmit_rate: Maximal target transmit rate [pps].
+ :param min_rate: Minimal target transmit rate [tps].
+ :param max_rate: Maximal target transmit rate [tps].
:param packet_loss_ratio: Fraction of packets lost, for PDR [1].
- :type minimum_transmit_rate: float
- :type maximum_transmit_rate: float
+ :type min_rate: float
+ :type max_rate: float
:type packet_loss_ratio: float
:returns: Structure containing narrowed down intervals
and their measurements.
:rtype: NdrPdrResult.NdrPdrResult
:raises RuntimeError: If total duration is larger than timeout.
"""
- minimum_transmit_rate = float(minimum_transmit_rate)
- maximum_transmit_rate = float(maximum_transmit_rate)
+ minimum_transmit_rate = float(min_rate)
+ maximum_transmit_rate = float(max_rate)
packet_loss_ratio = float(packet_loss_ratio)
- line_measurement = self.measurer.measure(
+ max_measurement = self.measurer.measure(
self.initial_trial_duration, maximum_transmit_rate)
initial_width_goal = self.final_relative_width
for _ in range(self.number_of_intermediate_phases):
initial_width_goal = self.double_relative_width(initial_width_goal)
max_lo = maximum_transmit_rate * (1.0 - initial_width_goal)
- mrr = max(
- minimum_transmit_rate, min(max_lo, line_measurement.receive_rate)
- )
+ mrr = max(minimum_transmit_rate, min(
+ max_lo, max_measurement.relative_receive_rate
+ ))
mrr_measurement = self.measurer.measure(
self.initial_trial_duration, mrr
)
# Attempt to get narrower width.
if mrr_measurement.loss_fraction > 0.0:
max2_lo = mrr * (1.0 - initial_width_goal)
- mrr2 = min(max2_lo, mrr_measurement.receive_rate)
+ mrr2 = min(max2_lo, mrr_measurement.relative_receive_rate)
else:
mrr2 = mrr / (1.0 - initial_width_goal)
if minimum_transmit_rate < mrr2 < maximum_transmit_rate:
- line_measurement = mrr_measurement
+ max_measurement = mrr_measurement
mrr_measurement = self.measurer.measure(
self.initial_trial_duration, mrr2)
if mrr2 > mrr:
- line_measurement, mrr_measurement = \
- (mrr_measurement, line_measurement)
+ max_measurement, mrr_measurement = \
+ (mrr_measurement, max_measurement)
starting_interval = ReceiveRateInterval(
- mrr_measurement, line_measurement)
+ mrr_measurement, max_measurement)
starting_result = NdrPdrResult(starting_interval, starting_interval)
state = self.ProgressState(
starting_result, self.number_of_intermediate_phases,
diff --git a/resources/libraries/python/MLRsearch/ReceiveRateMeasurement.py b/resources/libraries/python/MLRsearch/ReceiveRateMeasurement.py
index 31a6f8202e..c732e66026 100644
--- a/resources/libraries/python/MLRsearch/ReceiveRateMeasurement.py
+++ b/resources/libraries/python/MLRsearch/ReceiveRateMeasurement.py
@@ -1,4 +1,4 @@
-# Copyright (c) 2019 Cisco and/or its affiliates.
+# 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:
@@ -17,18 +17,39 @@
class ReceiveRateMeasurement:
"""Structure defining the result of single Rr measurement."""
- def __init__(self, duration, target_tr, transmit_count, loss_count):
+ def __init__(
+ self, duration, target_tr, transmit_count, loss_count,
+ approximated_duration=0.0, partial_transmit_count=0):
"""Constructor, normalize primary and compute secondary quantities.
+ If approximated_duration is nonzero, it is stored.
+ If approximated_duration is zero, duration value is stored.
+ Either way, additional secondary quantities are computed
+ from the store value.
+
+ If there is zero transmit_count, fractions are set to zero.
+
+ In some cases, traffic generator does not attempt all the needed
+ transactions. In that case, nonzero partial_transmit_count
+ holds (an estimate of) count of the actually attempted transactions.
+ This is used to populate some secondary quantities.
+
+ TODO: Use None instead of zero?
+
:param duration: Measurement duration [s].
:param target_tr: Target transmit rate [pps].
If bidirectional traffic is measured, this is bidirectional rate.
:param transmit_count: Number of packets transmitted [1].
:param loss_count: Number of packets transmitted but not received [1].
+ :param approximated_duration: Estimate of the actual time of the trial.
+ :param partial_transmit_count: Estimate count of actually attempted
+ transactions.
:type duration: float
:type target_tr: float
:type transmit_count: int
:type loss_count: int
+ :type approximated_duration: float
+ :type partial_transmit_count: int
"""
self.duration = float(duration)
self.target_tr = float(target_tr)
@@ -38,8 +59,41 @@ class ReceiveRateMeasurement:
self.transmit_rate = transmit_count / self.duration
self.loss_rate = loss_count / self.duration
self.receive_rate = self.receive_count / self.duration
- self.loss_fraction = float(self.loss_count) / self.transmit_count
- # TODO: Do we want to store also the real time (duration + overhead)?
+ self.loss_fraction = (
+ float(self.loss_count) / self.transmit_count
+ if self.transmit_count > 0 else 1.0
+ )
+ self.receive_fraction = (
+ float(self.receive_count) / self.transmit_count
+ if self.transmit_count > 0 else 0.0
+ )
+ self.approximated_duration = (
+ float(approximated_duration) if approximated_duration
+ else self.duration
+ )
+ self.approximated_receive_rate = (
+ self.receive_count / self.approximated_duration
+ if self.approximated_duration > 0.0 else 0.0
+ )
+ # If the traffic generator is unreliable and sends less packets,
+ # the absolute receive rate might be too low for next target.
+ self.partial_transmit_count = (
+ int(partial_transmit_count) if partial_transmit_count
+ else self.transmit_count
+ )
+ self.partial_receive_fraction = (
+ float(self.receive_count) / self.partial_transmit_count
+ if self.partial_transmit_count > 0 else 0.0
+ )
+ self.partial_receive_rate = (
+ self.target_tr * self.partial_receive_fraction
+ )
+ # We use relative packet ratios in order to support cases
+ # where target_tr is in transactions per second,
+ # but there are multiple packets per transaction.
+ self.relative_receive_rate = (
+ self.target_tr * self.receive_count / self.transmit_count
+ )
def __str__(self):
"""Return string reporting input and loss fraction."""
@@ -51,4 +105,6 @@ class ReceiveRateMeasurement:
return f"ReceiveRateMeasurement(duration={self.duration!r}," \
f"target_tr={self.target_tr!r}," \
f"transmit_count={self.transmit_count!r}," \
- f"loss_count={self.loss_count!r})"
+ f"loss_count={self.loss_count!r}," \
+ f"approximated_duration={self.approximated_duration!r}," \
+ f"partial_transmit_count={self.partial_transmit_count!r})"
diff --git a/resources/libraries/python/NATUtil.py b/resources/libraries/python/NATUtil.py
index 620e14aea1..36f9da3994 100644
--- a/resources/libraries/python/NATUtil.py
+++ b/resources/libraries/python/NATUtil.py
@@ -96,6 +96,10 @@ class NATUtil:
flag=u"NAT_IS_NONE"):
"""Set NAT44 address range.
+ The return value is a callable (zero argument Python function)
+ which can be used to reset NAT state, so repeated trial measurements
+ hit the same slow path.
+
:param node: DUT node.
:param start_ip: IP range start.
:param end_ip: IP range end.
@@ -106,6 +110,8 @@ class NATUtil:
:type end_ip: str
:type vrf_id: int
:type flag: str
+ :returns: Resetter of the NAT state.
+ :rtype: Callable[[], None]
"""
cmd = u"nat44_add_del_address_range"
err_msg = f"Failed to set NAT44 address range on host {node[u'host']}"
@@ -120,6 +126,18 @@ class NATUtil:
with PapiSocketExecutor(node) as papi_exec:
papi_exec.add(cmd, **args_in).get_reply(err_msg)
+ # A closure, accessing the variables above.
+ def resetter():
+ """Delete and re-add the NAT range setting."""
+ with PapiSocketExecutor(node) as papi_exec:
+ args_in[u"is_add"] = False
+ papi_exec.add(cmd, **args_in)
+ args_in[u"is_add"] = True
+ papi_exec.add(cmd, **args_in)
+ papi_exec.get_replies(err_msg)
+
+ return resetter
+
@staticmethod
def show_nat_config(node):
"""Show the NAT configuration.
@@ -279,6 +297,10 @@ class NATUtil:
def set_det44_mapping(node, ip_in, subnet_in, ip_out, subnet_out):
"""Set DET44 mapping.
+ The return value is a callable (zero argument Python function)
+ which can be used to reset NAT state, so repeated trial measurements
+ hit the same slow path.
+
:param node: DUT node.
:param ip_in: Inside IP.
:param subnet_in: Inside IP subnet.
@@ -303,6 +325,18 @@ class NATUtil:
with PapiSocketExecutor(node) as papi_exec:
papi_exec.add(cmd, **args_in).get_reply(err_msg)
+ # A closure, accessing the variables above.
+ def resetter():
+ """Delete and re-add the deterministic NAT mapping."""
+ with PapiSocketExecutor(node) as papi_exec:
+ args_in[u"is_add"] = False
+ papi_exec.add(cmd, **args_in)
+ args_in[u"is_add"] = True
+ papi_exec.add(cmd, **args_in)
+ papi_exec.get_replies(err_msg)
+
+ return resetter
+
@staticmethod
def get_det44_mapping(node):
"""Get DET44 mapping data.
@@ -325,14 +359,12 @@ class NATUtil:
def get_det44_sessions_number(node):
"""Get number of established DET44 sessions from actual DET44 mapping
data.
-
:param node: DUT node.
:type node: dict
:returns: Number of established DET44 sessions.
:rtype: int
"""
det44_data = NATUtil.get_det44_mapping(node)
-
return det44_data.get(u"ses_num", 0)
@staticmethod
diff --git a/resources/libraries/python/PLRsearch/PLRsearch.py b/resources/libraries/python/PLRsearch/PLRsearch.py
index ec58fbd10f..226b482d76 100644
--- a/resources/libraries/python/PLRsearch/PLRsearch.py
+++ b/resources/libraries/python/PLRsearch/PLRsearch.py
@@ -54,7 +54,7 @@ class PLRsearch:
def __init__(
self, measurer, trial_duration_per_trial, packet_loss_ratio_target,
- trial_number_offset=0, timeout=1800.0, trace_enabled=False):
+ trial_number_offset=0, timeout=7200.0, trace_enabled=False):
"""Store rate measurer and additional parameters.
The measurer must never report negative loss count.
@@ -205,7 +205,7 @@ class PLRsearch:
if (trial_number - self.trial_number_offset) <= 1:
next_load = max_rate
elif (trial_number - self.trial_number_offset) <= 3:
- next_load = (measurement.receive_rate / (
+ next_load = (measurement.relative_receive_rate / (
1.0 - self.packet_loss_ratio_target))
else:
next_load = (avg1 + avg2) / 2.0
@@ -439,7 +439,7 @@ class PLRsearch:
:param lfit_func: Fitting function, typically lfit_spread or lfit_erf.
:param trial_result_list: List of trial measurement results.
:param mrr: The mrr parameter for the fitting function.
- :param spread: The spread parameter for the fittinmg function.
+ :param spread: The spread parameter for the fitting function.
:type trace: function (str, object) -> None
:type lfit_func: Function from 3 floats to float.
:type trial_result_list: list of MLRsearch.ReceiveRateMeasurement
@@ -455,20 +455,21 @@ class PLRsearch:
trace(u"for tr", result.target_tr)
trace(u"lc", result.loss_count)
trace(u"d", result.duration)
- log_avg_loss_per_second = lfit_func(
+ # _rel_ values use units of target_tr (transactions per second).
+ log_avg_rel_loss_per_second = lfit_func(
trace, result.target_tr, mrr, spread
)
- log_avg_loss_per_trial = (
- log_avg_loss_per_second + math.log(result.duration)
+ # _abs_ values use units of loss count (maybe packets).
+ # There can be multiple packets per transaction.
+ log_avg_abs_loss_per_trial = log_avg_rel_loss_per_second + math.log(
+ result.transmit_count / result.target_tr
)
- # Poisson probability computation works nice for logarithms.
- log_trial_likelihood = (
- result.loss_count * log_avg_loss_per_trial
- - math.exp(log_avg_loss_per_trial)
- )
- log_trial_likelihood -= math.lgamma(1 + result.loss_count)
+ # Geometric probability computation for logarithms.
+ log_trial_likelihood = log_plus(0.0, -log_avg_abs_loss_per_trial)
+ log_trial_likelihood *= -result.loss_count
+ log_trial_likelihood -= log_plus(0.0, +log_avg_abs_loss_per_trial)
log_likelihood += log_trial_likelihood
- trace(u"avg_loss_per_trial", math.exp(log_avg_loss_per_trial))
+ trace(u"avg_loss_per_trial", math.exp(log_avg_abs_loss_per_trial))
trace(u"log_trial_likelihood", log_trial_likelihood)
return log_likelihood
diff --git a/resources/libraries/python/PapiExecutor.py b/resources/libraries/python/PapiExecutor.py
index 46fe5d583b..f4d01704b3 100644
--- a/resources/libraries/python/PapiExecutor.py
+++ b/resources/libraries/python/PapiExecutor.py
@@ -1,4 +1,4 @@
-# Copyright (c) 2020 Cisco and/or its affiliates.
+# 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:
@@ -23,6 +23,8 @@ import subprocess
import sys
import tempfile
import time
+from collections import UserDict
+
from pprint import pformat
from robot.api import logger
@@ -63,11 +65,11 @@ def dictize(obj):
"""
if not hasattr(obj, u"_asdict"):
return obj
- ret = obj._asdict()
- old_get = ret.__getitem__
+ overriden = UserDict(obj._asdict())
+ old_get = overriden.__getitem__
new_get = lambda self, key: dictize(old_get(self, key))
- ret.__getitem__ = new_get
- return ret
+ overriden.__getitem__ = new_get
+ return overriden
class PapiSocketExecutor:
diff --git a/resources/libraries/python/TrafficGenerator.py b/resources/libraries/python/TrafficGenerator.py
index 12c5271873..23337b2848 100644
--- a/resources/libraries/python/TrafficGenerator.py
+++ b/resources/libraries/python/TrafficGenerator.py
@@ -67,7 +67,7 @@ class TGDropRateSearchImpl(DropRateSearch):
def measure_loss(
self, rate, frame_size, loss_acceptance, loss_acceptance_type,
- traffic_profile, skip_warmup=False):
+ traffic_profile):
"""Runs the traffic and evaluate the measured results.
:param rate: Offered traffic load.
@@ -76,13 +76,11 @@ class TGDropRateSearchImpl(DropRateSearch):
:param loss_acceptance_type: Type of permitted loss.
:param traffic_profile: Module name as a traffic profile identifier.
See GPL/traffic_profiles/trex for implemented modules.
- :param skip_warmup: Start TRex without warmup traffic if true.
:type rate: float
:type frame_size: str
:type loss_acceptance: float
:type loss_acceptance_type: LossAcceptanceType
:type traffic_profile: str
- :type skip_warmup: bool
:returns: Drop threshold exceeded? (True/False)
:rtype: bool
:raises NotImplementedError: If TG is not supported.
@@ -96,15 +94,9 @@ class TGDropRateSearchImpl(DropRateSearch):
subtype = check_subtype(tg_instance.node)
if subtype == NodeSubTypeTG.TREX:
unit_rate = str(rate) + self.get_rate_type_str()
- if skip_warmup:
- tg_instance.trex_stl_start_remote_exec(
- self.get_duration(), unit_rate, frame_size, traffic_profile,
- warmup_time=0.0
- )
- else:
- tg_instance.trex_stl_start_remote_exec(
- self.get_duration(), unit_rate, frame_size, traffic_profile
- )
+ tg_instance.trex_stl_start_remote_exec(
+ self.get_duration(), unit_rate, frame_size, traffic_profile
+ )
loss = tg_instance.get_loss()
sent = tg_instance.get_sent()
if self.loss_acceptance_type_is_percentage():
@@ -145,6 +137,8 @@ class TrafficGenerator(AbstractMeasurer):
ROBOT_LIBRARY_SCOPE = u"TEST SUITE"
def __init__(self):
+ # TODO: Separate into few dataclasses/dicts.
+ # Pylint dislikes large unstructured state, and it is right.
self._node = None
self._mode = None
# TG interface order mapping
@@ -160,14 +154,23 @@ class TrafficGenerator(AbstractMeasurer):
self._l7_data = None
# Measurement input fields, needed for async stop result.
self._start_time = None
+ self._stop_time = None
self._rate = None
+ self._target_duration = None
+ self._duration = None
# Other input parameters, not knowable from measure() signature.
self.frame_size = None
self.traffic_profile = None
- self.warmup_time = None
self.traffic_directions = None
self.negative_loss = None
self.use_latency = None
+ self.ppta = None
+ self.resetter = None
+ self.transaction_scale = None
+ self.transaction_duration = None
+ self.sleep_till_duration = None
+ self.transaction_type = None
+ self.duration_limit = None
# Transient data needed for async measurements.
self._xstats = (None, None)
# TODO: Rename "xstats" to something opaque, so T-Rex is not privileged?
@@ -244,7 +247,6 @@ class TrafficGenerator(AbstractMeasurer):
)
# TODO: pylint says disable=too-many-locals.
- # A fix is developed in https://gerrit.fd.io/r/c/csit/+/22221
def initialize_traffic_generator(
self, tg_node, tg_if1, tg_if2, tg_if1_adj_node, tg_if1_adj_if,
tg_if2_adj_node, tg_if2_adj_if, osi_layer, tg_if1_dst_mac=None,
@@ -369,7 +371,8 @@ class TrafficGenerator(AbstractMeasurer):
# Configure TRex.
ports = ''
for port in tg_node[u"interfaces"].values():
- ports += f" {port.get(u'pci_address')}"
+ if u'Mellanox' not in port.get(u'model'):
+ ports += f" {port.get(u'pci_address')}"
cmd = f"sh -c \"cd {Constants.TREX_INSTALL_DIR}/scripts/ && " \
f"./dpdk_nic_bind.py -u {ports} || true\""
@@ -454,108 +457,6 @@ class TrafficGenerator(AbstractMeasurer):
message=u"T-Rex kill failed!"
)
- def _parse_traffic_results(self, stdout):
- """Parse stdout of scripts into fields of self.
-
- Block of code to reuse, by sync start, or stop after async.
-
- :param stdout: Text containing the standard output.
- :type stdout: str
- """
- subtype = check_subtype(self._node)
- if subtype == NodeSubTypeTG.TREX:
- # Last line from console output
- line = stdout.splitlines()[-1]
- results = line.split(u",")
- if results[-1] in (u" ", u""):
- results.pop(-1)
- self._result = dict()
- for result in results:
- key, value = result.split(u"=", maxsplit=1)
- self._result[key.strip()] = value
- logger.info(f"TrafficGen results:\n{self._result}")
- self._received = self._result.get(u"total_received")
- self._sent = self._result.get(u"total_sent")
- self._loss = self._result.get(u"frame_loss")
- self._approximated_duration = \
- self._result.get(u"approximated_duration")
- self._approximated_rate = self._result.get(u"approximated_rate")
- self._latency = list()
- self._latency.append(self._result.get(u"latency_stream_0(usec)"))
- self._latency.append(self._result.get(u"latency_stream_1(usec)"))
- if self._mode == TrexMode.ASTF:
- self._l7_data = dict()
- self._l7_data[u"client"] = dict()
- self._l7_data[u"client"][u"active_flows"] = \
- self._result.get(u"client_active_flows")
- self._l7_data[u"client"][u"established_flows"] = \
- self._result.get(u"client_established_flows")
- self._l7_data[u"client"][u"err_rx_throttled"] = \
- self._result.get(u"client_err_rx_throttled")
- self._l7_data[u"client"][u"err_c_nf_throttled"] = \
- self._result.get(u"client_err_nf_throttled")
- self._l7_data[u"client"][u"err_flow_overflow"] = \
- self._result.get(u"client_err_flow_overflow")
- self._l7_data[u"server"] = dict()
- self._l7_data[u"server"][u"active_flows"] = \
- self._result.get(u"server_active_flows")
- self._l7_data[u"server"][u"established_flows"] = \
- self._result.get(u"server_established_flows")
- self._l7_data[u"server"][u"err_rx_throttled"] = \
- self._result.get(u"client_err_rx_throttled")
- if u"udp" in self.traffic_profile:
- self._l7_data[u"client"][u"udp"] = dict()
- self._l7_data[u"client"][u"udp"][u"established_flows"] = \
- self._result.get(u"client_udp_connects")
- self._l7_data[u"client"][u"udp"][u"closed_flows"] = \
- self._result.get(u"client_udp_closed")
- self._l7_data[u"client"][u"udp"][u"tx_bytes"] = \
- self._result.get(u"client_udp_tx_bytes")
- self._l7_data[u"client"][u"udp"][u"rx_bytes"] = \
- self._result.get(u"client_udp_rx_bytes")
- self._l7_data[u"client"][u"udp"][u"tx_packets"] = \
- self._result.get(u"client_udp_tx_packets")
- self._l7_data[u"client"][u"udp"][u"rx_packets"] = \
- self._result.get(u"client_udp_rx_packets")
- self._l7_data[u"client"][u"udp"][u"keep_drops"] = \
- self._result.get(u"client_udp_keep_drops")
- self._l7_data[u"server"][u"udp"] = dict()
- self._l7_data[u"server"][u"udp"][u"accepted_flows"] = \
- self._result.get(u"server_udp_accepts")
- self._l7_data[u"server"][u"udp"][u"closed_flows"] = \
- self._result.get(u"server_udp_closed")
- self._l7_data[u"server"][u"udp"][u"tx_bytes"] = \
- self._result.get(u"server_udp_tx_bytes")
- self._l7_data[u"server"][u"udp"][u"rx_bytes"] = \
- self._result.get(u"server_udp_rx_bytes")
- self._l7_data[u"server"][u"udp"][u"tx_packets"] = \
- self._result.get(u"server_udp_tx_packets")
- self._l7_data[u"server"][u"udp"][u"rx_packets"] = \
- self._result.get(u"server_udp_rx_packets")
- elif u"tcp" in self.traffic_profile:
- self._l7_data[u"client"][u"tcp"] = dict()
- self._l7_data[u"client"][u"tcp"][u"initiated_flows"] = \
- self._result.get(u"client_tcp_connect_inits")
- self._l7_data[u"client"][u"tcp"][u"established_flows"] = \
- self._result.get(u"client_tcp_connects")
- self._l7_data[u"client"][u"tcp"][u"closed_flows"] = \
- self._result.get(u"client_tcp_closed")
- self._l7_data[u"client"][u"tcp"][u"tx_bytes"] = \
- self._result.get(u"client_tcp_tx_bytes")
- self._l7_data[u"client"][u"tcp"][u"rx_bytes"] = \
- self._result.get(u"client_tcp_rx_bytes")
- self._l7_data[u"server"][u"tcp"] = dict()
- self._l7_data[u"server"][u"tcp"][u"accepted_flows"] = \
- self._result.get(u"server_tcp_accepts")
- self._l7_data[u"server"][u"tcp"][u"established_flows"] = \
- self._result.get(u"server_tcp_connects")
- self._l7_data[u"server"][u"tcp"][u"closed_flows"] = \
- self._result.get(u"server_tcp_closed")
- self._l7_data[u"server"][u"tcp"][u"tx_bytes"] = \
- self._result.get(u"server_tcp_tx_bytes")
- self._l7_data[u"server"][u"tcp"][u"rx_bytes"] = \
- self._result.get(u"server_tcp_rx_bytes")
-
def trex_astf_stop_remote_exec(self, node):
"""Execute T-Rex ASTF script on remote node over ssh to stop running
traffic.
@@ -612,59 +513,77 @@ class TrafficGenerator(AbstractMeasurer):
:raises ValueError: If TG traffic profile is not supported.
"""
subtype = check_subtype(self._node)
- if subtype == NodeSubTypeTG.TREX:
- if u"trex-astf" in self.traffic_profile:
- self.trex_astf_stop_remote_exec(self._node)
- elif u"trex-stl" in self.traffic_profile:
- self.trex_stl_stop_remote_exec(self._node)
- else:
- raise ValueError(u"Unsupported T-Rex traffic profile!")
+ if subtype != NodeSubTypeTG.TREX:
+ raise ValueError(f"Unsupported TG subtype: {subtype!r}")
+ if u"trex-astf" in self.traffic_profile:
+ self.trex_astf_stop_remote_exec(self._node)
+ elif u"trex-stl" in self.traffic_profile:
+ self.trex_stl_stop_remote_exec(self._node)
+ else:
+ raise ValueError(u"Unsupported T-Rex traffic profile!")
+ self._stop_time = time.monotonic()
return self.get_measurement_result()
def trex_astf_start_remote_exec(
- self, duration, mult, frame_size, traffic_profile, async_call=False,
- latency=True, warmup_time=5.0, traffic_directions=2, tx_port=0,
- rx_port=1):
+ self, duration, multiplier, async_call=False):
"""Execute T-Rex ASTF script on remote node over ssh to start running
traffic.
In sync mode, measurement results are stored internally.
In async mode, initial data including xstats are stored internally.
- :param duration: Time expresed in seconds for how long to send traffic.
- :param mult: Traffic rate expressed with units (pps, %)
- :param frame_size: L2 frame size to send (without padding and IPG).
- :param traffic_profile: Module name as a traffic profile identifier.
- See GPL/traffic_profiles/trex for implemented modules.
+ This method contains the logic to compute duration as maximum time
+ if transaction_scale is nonzero.
+ The transaction_scale argument defines (limits) how many transactions
+ will be started in total. As that amount of transaction can take
+ considerable time (sometimes due to explicit delays in the profile),
+ the real time a trial needs to finish is computed here. For now,
+ in that case the duration argument is ignored, assuming it comes
+ from ASTF-unaware search algorithm. The overall time a single
+ transaction needs is given in parameter transaction_duration,
+ it includes both explicit delays and implicit time it takes
+ to transfer data (or whatever the transaction does).
+
+ Currently it is observed TRex does not start the ASTF traffic
+ immediately, an ad-hoc constant is added to the computed duration
+ to compensate for that.
+
+ If transaction_scale is zero, duration is not recomputed.
+ It is assumed the subsequent result parsing gets the real duration
+ if the traffic stops sooner for any reason.
+
+ Currently, it is assumed traffic profile defines a single transaction.
+ To avoid heavy logic here, the input rate is expected to be in
+ transactions per second, as that directly translates to TRex multiplier,
+ (assuming the profile does not override the default cps value of one).
+
+ :param duration: Time expressed in seconds for how long to send traffic.
+ :param multiplier: Traffic rate in transactions per second.
:param async_call: If enabled then don't wait for all incoming traffic.
- :param latency: With latency measurement.
- :param warmup_time: Warmup time period.
- :param traffic_directions: Traffic is bi- (2) or uni- (1) directional.
- Default: 2
- :param tx_port: Traffic generator transmit port for first flow.
- Default: 0
- :param rx_port: Traffic generator receive port for first flow.
- Default: 1
:type duration: float
- :type mult: int
- :type frame_size: str
- :type traffic_profile: str
+ :type multiplier: int
:type async_call: bool
- :type latency: bool
- :type warmup_time: float
- :type traffic_directions: int
- :type tx_port: int
- :type rx_port: int
:raises RuntimeError: In case of T-Rex driver issue.
"""
self.check_mode(TrexMode.ASTF)
- p_0, p_1 = (rx_port, tx_port) if self._ifaces_reordered \
- else (tx_port, rx_port)
+ p_0, p_1 = (1, 0) if self._ifaces_reordered else (0, 1)
if not isinstance(duration, (float, int)):
duration = float(duration)
- if not isinstance(warmup_time, (float, int)):
- warmup_time = float(warmup_time)
+
+ # Duration logic.
+ computed_duration = duration
+ if duration > 0.0:
+ if self.transaction_scale:
+ computed_duration = self.transaction_scale / multiplier
+ # Log the computed duration,
+ # so we can compare with what telemetry suggests
+ # the real duration was.
+ logger.debug(f"Expected duration {computed_duration}")
+ computed_duration += 0.1115
+ # Else keep -1.
+ if self.duration_limit:
+ computed_duration = min(computed_duration, self.duration_limit)
command_line = OptionString().add(u"python3")
dirname = f"{Constants.REMOTE_FW_DIR}/GPL/tools/trex"
@@ -672,31 +591,31 @@ class TrafficGenerator(AbstractMeasurer):
command_line.change_prefix(u"--")
dirname = f"{Constants.REMOTE_FW_DIR}/GPL/traffic_profiles/trex"
command_line.add_with_value(
- u"profile", f"'{dirname}/{traffic_profile}.py'"
+ u"profile", f"'{dirname}/{self.traffic_profile}.py'"
)
- command_line.add_with_value(u"duration", f"{duration!r}")
- command_line.add_with_value(u"frame_size", frame_size)
- command_line.add_with_value(u"mult", int(mult))
- command_line.add_with_value(u"warmup_time", f"{warmup_time!r}")
+ command_line.add_with_value(u"duration", f"{computed_duration!r}")
+ command_line.add_with_value(u"frame_size", self.frame_size)
+ command_line.add_with_value(u"multiplier", multiplier)
command_line.add_with_value(u"port_0", p_0)
command_line.add_with_value(u"port_1", p_1)
- command_line.add_with_value(u"traffic_directions", traffic_directions)
+ command_line.add_with_value(
+ u"traffic_directions", self.traffic_directions
+ )
command_line.add_if(u"async_start", async_call)
- command_line.add_if(u"latency", latency)
+ command_line.add_if(u"latency", self.use_latency)
command_line.add_if(u"force", Constants.TREX_SEND_FORCE)
+ self._start_time = time.monotonic()
+ self._rate = multiplier
stdout, _ = exec_cmd_no_error(
- self._node, command_line,
- timeout=int(duration) + 600 if u"tcp" in self.traffic_profile
- else 60,
+ self._node, command_line, timeout=computed_duration + 10.0,
message=u"T-Rex ASTF runtime error!"
)
- self.traffic_directions = traffic_directions
if async_call:
# no result
- self._start_time = time.time()
- self._rate = float(mult)
+ self._target_duration = None
+ self._duration = None
self._received = None
self._sent = None
self._loss = None
@@ -706,24 +625,28 @@ class TrafficGenerator(AbstractMeasurer):
self._l7_data[u"client"] = dict()
self._l7_data[u"client"][u"active_flows"] = None
self._l7_data[u"client"][u"established_flows"] = None
+ self._l7_data[u"client"][u"traffic_duration"] = None
self._l7_data[u"server"] = dict()
self._l7_data[u"server"][u"active_flows"] = None
self._l7_data[u"server"][u"established_flows"] = None
+ self._l7_data[u"server"][u"traffic_duration"] = None
if u"udp" in self.traffic_profile:
self._l7_data[u"client"][u"udp"] = dict()
- self._l7_data[u"client"][u"udp"][u"established_flows"] = None
+ self._l7_data[u"client"][u"udp"][u"connects"] = None
self._l7_data[u"client"][u"udp"][u"closed_flows"] = None
+ self._l7_data[u"client"][u"udp"][u"err_cwf"] = None
self._l7_data[u"server"][u"udp"] = dict()
self._l7_data[u"server"][u"udp"][u"accepted_flows"] = None
self._l7_data[u"server"][u"udp"][u"closed_flows"] = None
elif u"tcp" in self.traffic_profile:
self._l7_data[u"client"][u"tcp"] = dict()
self._l7_data[u"client"][u"tcp"][u"initiated_flows"] = None
- self._l7_data[u"client"][u"tcp"][u"established_flows"] = None
+ self._l7_data[u"client"][u"tcp"][u"connects"] = None
self._l7_data[u"client"][u"tcp"][u"closed_flows"] = None
+ self._l7_data[u"client"][u"tcp"][u"connattempt"] = None
self._l7_data[u"server"][u"tcp"] = dict()
self._l7_data[u"server"][u"tcp"][u"accepted_flows"] = None
- self._l7_data[u"server"][u"tcp"][u"established_flows"] = None
+ self._l7_data[u"server"][u"tcp"][u"connects"] = None
self._l7_data[u"server"][u"tcp"][u"closed_flows"] = None
else:
logger.warn(u"Unsupported T-Rex ASTF traffic profile!")
@@ -736,53 +659,36 @@ class TrafficGenerator(AbstractMeasurer):
break
self._xstats = tuple(xstats)
else:
+ self._target_duration = duration
+ self._duration = computed_duration
self._parse_traffic_results(stdout)
- self._start_time = None
- self._rate = None
- def trex_stl_start_remote_exec(
- self, duration, rate, frame_size, traffic_profile, async_call=False,
- latency=False, warmup_time=5.0, traffic_directions=2, tx_port=0,
- rx_port=1):
+ def trex_stl_start_remote_exec(self, duration, rate, async_call=False):
"""Execute T-Rex STL script on remote node over ssh to start running
traffic.
In sync mode, measurement results are stored internally.
In async mode, initial data including xstats are stored internally.
+ Mode-unaware code (e.g. in search algorithms) works with transactions.
+ To keep the logic simple, multiplier is set to that value.
+ As bidirectional traffic profiles send packets in both directions,
+ they are treated as transactions with two packets (one per direction).
+
:param duration: Time expressed in seconds for how long to send traffic.
- :param rate: Traffic rate expressed with units (pps, %)
- :param frame_size: L2 frame size to send (without padding and IPG).
- :param traffic_profile: Module name as a traffic profile identifier.
- See GPL/traffic_profiles/trex for implemented modules.
+ :param rate: Traffic rate in transactions per second.
:param async_call: If enabled then don't wait for all incoming traffic.
- :param latency: With latency measurement.
- :param warmup_time: Warmup time period.
- :param traffic_directions: Traffic is bi- (2) or uni- (1) directional.
- Default: 2
- :param tx_port: Traffic generator transmit port for first flow.
- Default: 0
- :param rx_port: Traffic generator receive port for first flow.
- Default: 1
:type duration: float
:type rate: str
- :type frame_size: str
- :type traffic_profile: str
:type async_call: bool
- :type latency: bool
- :type warmup_time: float
- :type traffic_directions: int
- :type tx_port: int
- :type rx_port: int
:raises RuntimeError: In case of T-Rex driver issue.
"""
self.check_mode(TrexMode.STL)
- p_0, p_1 = (rx_port, tx_port) if self._ifaces_reordered \
- else (tx_port, rx_port)
+ p_0, p_1 = (1, 0) if self._ifaces_reordered else (0, 1)
if not isinstance(duration, (float, int)):
duration = float(duration)
- if not isinstance(warmup_time, (float, int)):
- warmup_time = float(warmup_time)
+ if self.duration_limit:
+ duration = min(duration, self.duration_limit)
command_line = OptionString().add(u"python3")
dirname = f"{Constants.REMOTE_FW_DIR}/GPL/tools/trex"
@@ -790,29 +696,32 @@ class TrafficGenerator(AbstractMeasurer):
command_line.change_prefix(u"--")
dirname = f"{Constants.REMOTE_FW_DIR}/GPL/traffic_profiles/trex"
command_line.add_with_value(
- u"profile", f"'{dirname}/{traffic_profile}.py'"
+ u"profile", f"'{dirname}/{self.traffic_profile}.py'"
)
command_line.add_with_value(u"duration", f"{duration!r}")
- command_line.add_with_value(u"frame_size", frame_size)
+ command_line.add_with_value(u"frame_size", self.frame_size)
command_line.add_with_value(u"rate", f"{rate!r}")
- command_line.add_with_value(u"warmup_time", f"{warmup_time!r}")
command_line.add_with_value(u"port_0", p_0)
command_line.add_with_value(u"port_1", p_1)
- command_line.add_with_value(u"traffic_directions", traffic_directions)
+ command_line.add_with_value(
+ u"traffic_directions", self.traffic_directions
+ )
command_line.add_if(u"async_start", async_call)
- command_line.add_if(u"latency", latency)
+ command_line.add_if(u"latency", self.use_latency)
command_line.add_if(u"force", Constants.TREX_SEND_FORCE)
+ # TODO: This is ugly. Handle parsing better.
+ self._start_time = time.monotonic()
+ self._rate = float(rate[:-3]) if u"pps" in rate else float(rate)
stdout, _ = exec_cmd_no_error(
self._node, command_line, timeout=int(duration) + 60,
message=u"T-Rex STL runtime error"
)
- self.traffic_directions = traffic_directions
if async_call:
# no result
- self._start_time = time.time()
- self._rate = float(rate[:-3]) if u"pps" in rate else float(rate)
+ self._target_duration = None
+ self._duration = None
self._received = None
self._sent = None
self._loss = None
@@ -828,14 +737,25 @@ class TrafficGenerator(AbstractMeasurer):
break
self._xstats = tuple(xstats)
else:
+ self._target_duration = duration
+ self._duration = duration
self._parse_traffic_results(stdout)
- self._start_time = None
- self._rate = None
def send_traffic_on_tg(
- self, duration, rate, frame_size, traffic_profile, warmup_time=5,
- async_call=False, latency=False, traffic_directions=2, tx_port=0,
- rx_port=1):
+ self,
+ duration,
+ rate,
+ frame_size,
+ traffic_profile,
+ async_call=False,
+ ppta=1,
+ traffic_directions=2,
+ transaction_duration=0.0,
+ transaction_scale=0,
+ transaction_type=u"packet",
+ duration_limit=0.0,
+ use_latency=False,
+ ):
"""Send traffic from all configured interfaces on TG.
In async mode, xstats is stored internally,
@@ -843,61 +763,102 @@ class TrafficGenerator(AbstractMeasurer):
In both modes, stdout is returned,
but _parse_traffic_results only works in sync output.
- Note that bidirectional traffic also contains flows
- transmitted from rx_port and received in tx_port.
- But some tests use asymmetric traffic, so those arguments are relevant.
-
- Also note that traffic generator uses DPDK driver which might
+ Note that traffic generator uses DPDK driver which might
reorder port numbers based on wiring and PCI numbering.
This method handles that, so argument values are invariant,
but you can see swapped valued in debug logs.
+ When transaction_scale is specified, the duration value is ignored
+ and the needed time is computed. For cases where this results in
+ to too long measurement (e.g. teardown trial with small rate),
+ duration_limit is applied (of non-zero), so the trial is stopped sooner.
+
+ Bidirectional STL profiles are treated as transactions with two packets.
+
:param duration: Duration of test traffic generation in seconds.
- :param rate: Traffic rate.
- - T-Rex stateless mode => Offered load per interface in pps,
- - T-Rex advanced stateful mode => multiplier of profile CPS.
+ :param rate: Traffic rate in transactions per second.
:param frame_size: Frame size (L2) in Bytes.
:param traffic_profile: Module name as a traffic profile identifier.
See GPL/traffic_profiles/trex for implemented modules.
- :param warmup_time: Warmup phase in seconds.
:param async_call: Async mode.
- :param latency: With latency measurement.
+ :param ppta: Packets per transaction, aggregated over directions.
+ Needed for udp_pps which does not have a good transaction counter,
+ so we need to compute expected number of packets.
+ Default: 1.
:param traffic_directions: Traffic is bi- (2) or uni- (1) directional.
Default: 2
- :param tx_port: Traffic generator transmit port for first flow.
- Default: 0
- :param rx_port: Traffic generator receive port for first flow.
- Default: 1
+ :param transaction_duration: Total expected time to close transaction.
+ :param transaction_scale: Number of transactions to perform.
+ 0 (default) means unlimited.
+ :param transaction_type: An identifier specifying which counters
+ and formulas to use when computing attempted and failed
+ transactions. Default: "packet".
+ :param duration_limit: Zero or maximum limit for computed (or given)
+ duration.
+ :param use_latency: Whether to measure latency during the trial.
+ Default: False.
:type duration: float
:type rate: float
:type frame_size: str
:type traffic_profile: str
- :type warmup_time: float
:type async_call: bool
- :type latency: bool
+ :type ppta: int
:type traffic_directions: int
- :type tx_port: int
- :type rx_port: int
+ :type transaction_duration: float
+ :type transaction_scale: int
+ :type transaction_type: str
+ :type duration_limit: float
+ :type use_latency: bool
+ :returns: TG results.
+ :rtype: str
+ :raises ValueError: If TG traffic profile is not supported.
+ """
+ self.set_rate_provider_defaults(
+ frame_size=frame_size,
+ traffic_profile=traffic_profile,
+ ppta=ppta,
+ traffic_directions=traffic_directions,
+ transaction_duration=transaction_duration,
+ transaction_scale=transaction_scale,
+ transaction_type=transaction_type,
+ duration_limit=duration_limit,
+ use_latency=use_latency,
+ )
+ self._send_traffic_on_tg_internal(duration, rate, async_call)
+
+ def _send_traffic_on_tg_internal(self, duration, rate, async_call=False):
+ """Send traffic from all configured interfaces on TG.
+
+ This is an internal function, it assumes set_rate_provider_defaults
+ has been called to remember most values.
+ The reason why need to remember various values is that
+ the traffic can be asynchronous, and parsing needs those values.
+ The reason why this is is a separate function from the one
+ which calls set_rate_provider_defaults is that some search algorithms
+ need to specify their own values, and we do not want the measure call
+ to overwrite them with defaults.
+
+ :param duration: Duration of test traffic generation in seconds.
+ :param rate: Traffic rate in transactions per second.
+ :param async_call: Async mode.
+ :type duration: float
+ :type rate: float
+ :type async_call: bool
:returns: TG results.
:rtype: str
:raises ValueError: If TG traffic profile is not supported.
"""
subtype = check_subtype(self._node)
if subtype == NodeSubTypeTG.TREX:
- if self.traffic_profile != str(traffic_profile):
- self.traffic_profile = str(traffic_profile)
if u"trex-astf" in self.traffic_profile:
self.trex_astf_start_remote_exec(
- duration, int(rate), frame_size, self.traffic_profile,
- async_call, latency, warmup_time, traffic_directions,
- tx_port, rx_port
+ duration, float(rate), async_call
)
elif u"trex-stl" in self.traffic_profile:
unit_rate_str = str(rate) + u"pps"
+ # TODO: Suport transaction_scale et al?
self.trex_stl_start_remote_exec(
- duration, unit_rate_str, frame_size, self.traffic_profile,
- async_call, latency, warmup_time, traffic_directions,
- tx_port, rx_port
+ duration, unit_rate_str, async_call
)
else:
raise ValueError(u"Unsupported T-Rex traffic profile!")
@@ -918,6 +879,8 @@ class TrafficGenerator(AbstractMeasurer):
def fail_if_no_traffic_forwarded(self):
"""Fail if no traffic forwarded.
+ TODO: Check number of passed transactions instead.
+
:returns: nothing
:raises Exception: If no traffic forwarded.
"""
@@ -952,74 +915,236 @@ class TrafficGenerator(AbstractMeasurer):
f"Traffic loss {loss} above loss acceptance: {loss_acceptance}"
)
- def set_rate_provider_defaults(
- self, frame_size, traffic_profile, warmup_time=0.0,
- traffic_directions=2, negative_loss=True, latency=False):
- """Store values accessed by measure().
+ def _parse_traffic_results(self, stdout):
+ """Parse stdout of scripts into fields of self.
- :param frame_size: Frame size identifier or value [B].
- :param traffic_profile: Module name as a traffic profile identifier.
- See GPL/traffic_profiles/trex for implemented modules.
- :param warmup_time: Traffic duration before measurement starts [s].
- :param traffic_directions: Traffic is bi- (2) or uni- (1) directional.
- Default: 2
- :param negative_loss: If false, negative loss is reported as zero loss.
- :param latency: Whether to measure latency during the trial.
- Default: False.
- :type frame_size: str or int
- :type traffic_profile: str
- :type warmup_time: float
- :type traffic_directions: int
- :type negative_loss: bool
- :type latency: bool
+ Block of code to reuse, by sync start, or stop after async.
+
+ :param stdout: Text containing the standard output.
+ :type stdout: str
"""
- self.frame_size = frame_size
- self.traffic_profile = str(traffic_profile)
- self.warmup_time = float(warmup_time)
- self.traffic_directions = traffic_directions
- self.negative_loss = negative_loss
- self.use_latency = latency
+ subtype = check_subtype(self._node)
+ if subtype == NodeSubTypeTG.TREX:
+ # Last line from console output
+ line = stdout.splitlines()[-1]
+ results = line.split(u";")
+ if results[-1] in (u" ", u""):
+ results.pop(-1)
+ self._result = dict()
+ for result in results:
+ key, value = result.split(u"=", maxsplit=1)
+ self._result[key.strip()] = value
+ logger.info(f"TrafficGen results:\n{self._result}")
+ self._received = int(self._result.get(u"total_received"), 0)
+ self._sent = int(self._result.get(u"total_sent", 0))
+ self._loss = int(self._result.get(u"frame_loss", 0))
+ self._approximated_duration = \
+ self._result.get(u"approximated_duration", 0.0)
+ if u"manual" not in str(self._approximated_duration):
+ self._approximated_duration = float(self._approximated_duration)
+ self._latency = list()
+ self._latency.append(self._result.get(u"latency_stream_0(usec)"))
+ self._latency.append(self._result.get(u"latency_stream_1(usec)"))
+ if self._mode == TrexMode.ASTF:
+ self._l7_data = dict()
+ self._l7_data[u"client"] = dict()
+ self._l7_data[u"client"][u"sent"] = \
+ int(self._result.get(u"client_sent", 0))
+ self._l7_data[u"client"][u"received"] = \
+ int(self._result.get(u"client_received", 0))
+ self._l7_data[u"client"][u"active_flows"] = \
+ int(self._result.get(u"client_active_flows", 0))
+ self._l7_data[u"client"][u"established_flows"] = \
+ int(self._result.get(u"client_established_flows", 0))
+ self._l7_data[u"client"][u"traffic_duration"] = \
+ float(self._result.get(u"client_traffic_duration", 0.0))
+ self._l7_data[u"client"][u"err_rx_throttled"] = \
+ int(self._result.get(u"client_err_rx_throttled", 0))
+ self._l7_data[u"client"][u"err_c_nf_throttled"] = \
+ int(self._result.get(u"client_err_nf_throttled", 0))
+ self._l7_data[u"client"][u"err_flow_overflow"] = \
+ int(self._result.get(u"client_err_flow_overflow", 0))
+ self._l7_data[u"server"] = dict()
+ self._l7_data[u"server"][u"active_flows"] = \
+ int(self._result.get(u"server_active_flows", 0))
+ self._l7_data[u"server"][u"established_flows"] = \
+ int(self._result.get(u"server_established_flows", 0))
+ self._l7_data[u"server"][u"traffic_duration"] = \
+ float(self._result.get(u"server_traffic_duration", 0.0))
+ self._l7_data[u"server"][u"err_rx_throttled"] = \
+ int(self._result.get(u"client_err_rx_throttled", 0))
+ if u"udp" in self.traffic_profile:
+ self._l7_data[u"client"][u"udp"] = dict()
+ self._l7_data[u"client"][u"udp"][u"connects"] = \
+ int(self._result.get(u"client_udp_connects", 0))
+ self._l7_data[u"client"][u"udp"][u"closed_flows"] = \
+ int(self._result.get(u"client_udp_closed", 0))
+ self._l7_data[u"client"][u"udp"][u"tx_bytes"] = \
+ int(self._result.get(u"client_udp_tx_bytes", 0))
+ self._l7_data[u"client"][u"udp"][u"rx_bytes"] = \
+ int(self._result.get(u"client_udp_rx_bytes", 0))
+ self._l7_data[u"client"][u"udp"][u"tx_packets"] = \
+ int(self._result.get(u"client_udp_tx_packets", 0))
+ self._l7_data[u"client"][u"udp"][u"rx_packets"] = \
+ int(self._result.get(u"client_udp_rx_packets", 0))
+ self._l7_data[u"client"][u"udp"][u"keep_drops"] = \
+ int(self._result.get(u"client_udp_keep_drops", 0))
+ self._l7_data[u"client"][u"udp"][u"err_cwf"] = \
+ int(self._result.get(u"client_err_cwf", 0))
+ self._l7_data[u"server"][u"udp"] = dict()
+ self._l7_data[u"server"][u"udp"][u"accepted_flows"] = \
+ int(self._result.get(u"server_udp_accepts", 0))
+ self._l7_data[u"server"][u"udp"][u"closed_flows"] = \
+ int(self._result.get(u"server_udp_closed", 0))
+ self._l7_data[u"server"][u"udp"][u"tx_bytes"] = \
+ int(self._result.get(u"server_udp_tx_bytes", 0))
+ self._l7_data[u"server"][u"udp"][u"rx_bytes"] = \
+ int(self._result.get(u"server_udp_rx_bytes", 0))
+ self._l7_data[u"server"][u"udp"][u"tx_packets"] = \
+ int(self._result.get(u"server_udp_tx_packets", 0))
+ self._l7_data[u"server"][u"udp"][u"rx_packets"] = \
+ int(self._result.get(u"server_udp_rx_packets", 0))
+ elif u"tcp" in self.traffic_profile:
+ self._l7_data[u"client"][u"tcp"] = dict()
+ self._l7_data[u"client"][u"tcp"][u"initiated_flows"] = \
+ int(self._result.get(u"client_tcp_connect_inits", 0))
+ self._l7_data[u"client"][u"tcp"][u"connects"] = \
+ int(self._result.get(u"client_tcp_connects", 0))
+ self._l7_data[u"client"][u"tcp"][u"closed_flows"] = \
+ int(self._result.get(u"client_tcp_closed", 0))
+ self._l7_data[u"client"][u"tcp"][u"connattempt"] = \
+ int(self._result.get(u"client_tcp_connattempt", 0))
+ self._l7_data[u"client"][u"tcp"][u"tx_bytes"] = \
+ int(self._result.get(u"client_tcp_tx_bytes", 0))
+ self._l7_data[u"client"][u"tcp"][u"rx_bytes"] = \
+ int(self._result.get(u"client_tcp_rx_bytes", 0))
+ self._l7_data[u"server"][u"tcp"] = dict()
+ self._l7_data[u"server"][u"tcp"][u"accepted_flows"] = \
+ int(self._result.get(u"server_tcp_accepts", 0))
+ self._l7_data[u"server"][u"tcp"][u"connects"] = \
+ int(self._result.get(u"server_tcp_connects", 0))
+ self._l7_data[u"server"][u"tcp"][u"closed_flows"] = \
+ int(self._result.get(u"server_tcp_closed", 0))
+ self._l7_data[u"server"][u"tcp"][u"tx_bytes"] = \
+ int(self._result.get(u"server_tcp_tx_bytes", 0))
+ self._l7_data[u"server"][u"tcp"][u"rx_bytes"] = \
+ int(self._result.get(u"server_tcp_rx_bytes", 0))
- def get_measurement_result(self, duration=None, transmit_rate=None):
+ def get_measurement_result(self):
"""Return the result of last measurement as ReceiveRateMeasurement.
Separate function, as measurements can end either by time
or by explicit call, this is the common block at the end.
+ The target_tr field of ReceiveRateMeasurement is in
+ transactions per second. Transmit count and loss count units
+ depend on the transaction type. Usually they are in transactions
+ per second, or aggregate packets per second.
+
TODO: Fail on running or already reported measurement.
- :param duration: Measurement duration [s] if known beforehand.
- For explicitly stopped measurement it is estimated.
- :param transmit_rate: Target aggregate transmit rate [pps].
- If not given, computed assuming it was bidirectional.
- :type duration: float or NoneType
- :type transmit_rate: float or NoneType
:returns: Structure containing the result of the measurement.
:rtype: ReceiveRateMeasurement
"""
- if duration is None:
- duration = time.time() - self._start_time
- self._start_time = None
- if transmit_rate is None:
- transmit_rate = self._rate * self.traffic_directions
- transmit_count = int(self.get_sent())
- loss_count = int(self.get_loss())
- if loss_count < 0 and not self.negative_loss:
- loss_count = 0
+ try:
+ # Client duration seems to include a setup period
+ # where TRex does not send any packets yet.
+ # Server duration does not include it.
+ server_data = self._l7_data[u"server"]
+ approximated_duration = float(server_data[u"traffic_duration"])
+ except (KeyError, AttributeError, ValueError, TypeError):
+ approximated_duration = None
+ try:
+ if not approximated_duration:
+ approximated_duration = float(self._approximated_duration)
+ except ValueError: # "manual"
+ approximated_duration = None
+ if not approximated_duration:
+ if self._duration and self._duration > 0:
+ # Known recomputed or target duration.
+ approximated_duration = self._duration
+ else:
+ # It was an explicit stop.
+ if not self._stop_time:
+ raise RuntimeError(u"Unable to determine duration.")
+ approximated_duration = self._stop_time - self._start_time
+ target_duration = self._target_duration
+ if not target_duration:
+ target_duration = approximated_duration
+ transmit_rate = self._rate
+ if self.transaction_type == u"packet":
+ partial_attempt_count = self._sent
+ expected_attempt_count = self._sent
+ fail_count = self._loss
+ elif self.transaction_type == u"udp_cps":
+ if not self.transaction_scale:
+ raise RuntimeError(u"Add support for no-limit udp_cps.")
+ partial_attempt_count = self._l7_data[u"client"][u"sent"]
+ # We do not care whether TG is slow, it should have attempted all.
+ expected_attempt_count = self.transaction_scale
+ pass_count = self._l7_data[u"client"][u"received"]
+ fail_count = expected_attempt_count - pass_count
+ elif self.transaction_type == u"tcp_cps":
+ if not self.transaction_scale:
+ raise RuntimeError(u"Add support for no-limit tcp_cps.")
+ ctca = self._l7_data[u"client"][u"tcp"][u"connattempt"]
+ partial_attempt_count = ctca
+ # We do not care whether TG is slow, it should have attempted all.
+ expected_attempt_count = self.transaction_scale
+ # From TCP point of view, server/connects counts full connections,
+ # but we are testing NAT session so client/connects counts that
+ # (half connections from TCP point of view).
+ pass_count = self._l7_data[u"client"][u"tcp"][u"connects"]
+ fail_count = expected_attempt_count - pass_count
+ elif self.transaction_type == u"udp_pps":
+ if not self.transaction_scale:
+ raise RuntimeError(u"Add support for no-limit udp_pps.")
+ partial_attempt_count = self._sent
+ expected_attempt_count = self.transaction_scale * self.ppta
+ fail_count = self._loss + (expected_attempt_count - self._sent)
+ elif self.transaction_type == u"tcp_pps":
+ if not self.transaction_scale:
+ raise RuntimeError(u"Add support for no-limit tcp_pps.")
+ partial_attempt_count = self._sent
+ expected_attempt_count = self.transaction_scale * self.ppta
+ # One loss-like scenario happens when TRex receives all packets
+ # on L2 level, but is not fast enough to process them all
+ # at L7 level, which leads to retransmissions.
+ # Those manifest as opackets larger than expected.
+ # A simple workaround is to add absolute difference.
+ # Probability of retransmissions exactly cancelling
+ # packets unsent due to duration stretching is quite low.
+ fail_count = self._loss + abs(expected_attempt_count - self._sent)
+ else:
+ raise RuntimeError(f"Unknown parsing {self.transaction_type!r}")
+ if fail_count < 0 and not self.negative_loss:
+ fail_count = 0
measurement = ReceiveRateMeasurement(
- duration, transmit_rate, transmit_count, loss_count
+ duration=target_duration,
+ target_tr=transmit_rate,
+ transmit_count=expected_attempt_count,
+ loss_count=fail_count,
+ approximated_duration=approximated_duration,
+ partial_transmit_count=partial_attempt_count,
)
measurement.latency = self.get_latency_int()
return measurement
def measure(self, duration, transmit_rate):
- """Run trial measurement, parse and return aggregate results.
+ """Run trial measurement, parse and return results.
- Aggregate means sum over traffic directions.
+ The input rate is for transactions. Stateles bidirectional traffic
+ is understood as sequence of (asynchronous) transactions,
+ two packets each.
+
+ The result units depend on test type, generally
+ the count either transactions or packets (aggregated over directions).
+
+ Optionally, this method sleeps if measurement finished before
+ the time specified as duration.
:param duration: Trial duration [s].
- :param transmit_rate: Target aggregate transmit rate [pps] / Connections
- per second (CPS) for UDP/TCP flows.
+ :param transmit_rate: Target rate in transactions per second.
:type duration: float
:type transmit_rate: float
:returns: Structure containing the result of the measurement.
@@ -1029,18 +1154,93 @@ class TrafficGenerator(AbstractMeasurer):
:raises NotImplementedError: If TG is not supported.
"""
duration = float(duration)
- # TG needs target Tr per stream, but reports aggregate Tx and Dx.
- unit_rate_int = transmit_rate / float(self.traffic_directions)
- self.send_traffic_on_tg(
- duration,
- unit_rate_int,
- self.frame_size,
- self.traffic_profile,
- warmup_time=self.warmup_time,
- latency=self.use_latency,
- traffic_directions=self.traffic_directions
+ time_start = time.monotonic()
+ time_stop = time_start + duration
+ if self.resetter:
+ self.resetter()
+ self._send_traffic_on_tg_internal(
+ duration=duration,
+ rate=transmit_rate,
+ async_call=False,
)
- return self.get_measurement_result(duration, transmit_rate)
+ result = self.get_measurement_result()
+ logger.debug(f"trial measurement result: {result!r}")
+ # In PLRsearch, computation needs the specified time to complete.
+ if self.sleep_till_duration:
+ sleeptime = time_stop - time.monotonic()
+ if sleeptime > 0.0:
+ # TODO: Sometimes we have time to do additional trials here,
+ # adapt PLRsearch to accept all the results.
+ time.sleep(sleeptime)
+ return result
+
+ def set_rate_provider_defaults(
+ self,
+ frame_size,
+ traffic_profile,
+ ppta=1,
+ resetter=None,
+ traffic_directions=2,
+ transaction_duration=0.0,
+ transaction_scale=0,
+ transaction_type=u"packet",
+ duration_limit=0.0,
+ negative_loss=True,
+ sleep_till_duration=False,
+ use_latency=False,
+ ):
+ """Store values accessed by measure().
+
+ :param frame_size: Frame size identifier or value [B].
+ :param traffic_profile: Module name as a traffic profile identifier.
+ See GPL/traffic_profiles/trex for implemented modules.
+ :param ppta: Packets per transaction, aggregated over directions.
+ Needed for udp_pps which does not have a good transaction counter,
+ so we need to compute expected number of packets.
+ Default: 1.
+ :param resetter: Callable to reset DUT state for repeated trials.
+ :param traffic_directions: Traffic from packet counting point of view
+ is bi- (2) or uni- (1) directional.
+ Default: 2
+ :param transaction_duration: Total expected time to close transaction.
+ :param transaction_scale: Number of transactions to perform.
+ 0 (default) means unlimited.
+ :param transaction_type: An identifier specifying which counters
+ and formulas to use when computing attempted and failed
+ transactions. Default: "packet".
+ TODO: Does this also specify parsing for the measured duration?
+ :param duration_limit: Zero or maximum limit for computed (or given)
+ duration.
+ :param negative_loss: If false, negative loss is reported as zero loss.
+ :param sleep_till_duration: If true and measurement returned faster,
+ sleep until it matches duration. Needed for PLRsearch.
+ :param use_latency: Whether to measure latency during the trial.
+ Default: False.
+ :type frame_size: str or int
+ :type traffic_profile: str
+ :type ppta: int
+ :type resetter: Optional[Callable[[], None]]
+ :type traffic_directions: int
+ :type transaction_duration: float
+ :type transaction_scale: int
+ :type transaction_type: str
+ :type duration_limit: float
+ :type negative_loss: bool
+ :type sleep_till_duration: bool
+ :type use_latency: bool
+ """
+ self.frame_size = frame_size
+ self.traffic_profile = str(traffic_profile)
+ self.resetter = resetter
+ self.ppta = ppta
+ self.traffic_directions = int(traffic_directions)
+ self.transaction_duration = float(transaction_duration)
+ self.transaction_scale = int(transaction_scale)
+ self.transaction_type = str(transaction_type)
+ self.duration_limit = float(duration_limit)
+ self.negative_loss = bool(negative_loss)
+ self.sleep_till_duration = bool(sleep_till_duration)
+ self.use_latency = bool(use_latency)
class OptimizedSearch:
@@ -1052,20 +1252,38 @@ class OptimizedSearch:
@staticmethod
def perform_optimized_ndrpdr_search(
- frame_size, traffic_profile, minimum_transmit_rate,
- maximum_transmit_rate, packet_loss_ratio=0.005,
- final_relative_width=0.005, final_trial_duration=30.0,
- initial_trial_duration=1.0, number_of_intermediate_phases=2,
- timeout=720.0, doublings=1, traffic_directions=2, latency=False):
+ frame_size,
+ traffic_profile,
+ minimum_transmit_rate,
+ maximum_transmit_rate,
+ packet_loss_ratio=0.005,
+ final_relative_width=0.005,
+ final_trial_duration=30.0,
+ initial_trial_duration=1.0,
+ number_of_intermediate_phases=2,
+ timeout=720.0,
+ doublings=1,
+ ppta=1,
+ resetter=None,
+ traffic_directions=2,
+ transaction_duration=0.0,
+ transaction_scale=0,
+ transaction_type=u"packet",
+ use_latency=False,
+ ):
"""Setup initialized TG, perform optimized search, return intervals.
+ If transaction_scale is nonzero, all non-init trial durations
+ are set to 2.0 (as they do not affect the real trial duration)
+ and zero intermediate phases are used.
+ The initial phase still uses 1.0 seconds, to force remeasurement.
+ That makes initial phase act as a warmup.
+
:param frame_size: Frame size identifier or value [B].
:param traffic_profile: Module name as a traffic profile identifier.
See GPL/traffic_profiles/trex for implemented modules.
- :param minimum_transmit_rate: Minimal uni-directional
- target transmit rate [pps].
- :param maximum_transmit_rate: Maximal uni-directional
- target transmit rate [pps].
+ :param minimum_transmit_rate: Minimal load in transactions per second.
+ :param maximum_transmit_rate: Maximal load in transactions per second.
:param packet_loss_ratio: Fraction of packets lost, for PDR [1].
:param final_relative_width: Final lower bound transmit rate
cannot be more distant that this multiple of upper bound [1].
@@ -1079,9 +1297,20 @@ class OptimizedSearch:
:param doublings: How many doublings to do in external search step.
Default 1 is suitable for fairly stable tests,
less stable tests might get better overal duration with 2 or more.
+ :param ppta: Packets per transaction, aggregated over directions.
+ Needed for udp_pps which does not have a good transaction counter,
+ so we need to compute expected number of packets.
+ Default: 1.
+ :param resetter: Callable to reset DUT state for repeated trials.
:param traffic_directions: Traffic is bi- (2) or uni- (1) directional.
Default: 2
- :param latency: Whether to measure latency during the trial.
+ :param transaction_duration: Total expected time to close transaction.
+ :param transaction_scale: Number of transactions to perform.
+ 0 (default) means unlimited.
+ :param transaction_type: An identifier specifying which counters
+ and formulas to use when computing attempted and failed
+ transactions. Default: "packet".
+ :param use_latency: Whether to measure latency during the trial.
Default: False.
:type frame_size: str or int
:type traffic_profile: str
@@ -1094,53 +1323,85 @@ class OptimizedSearch:
:type number_of_intermediate_phases: int
:type timeout: float
:type doublings: int
+ :type ppta: int
+ :type resetter: Optional[Callable[[], None]]
:type traffic_directions: int
- :type latency: bool
+ :type transaction_duration: float
+ :type transaction_scale: int
+ :type transaction_type: str
+ :type use_latency: bool
:returns: Structure containing narrowed down NDR and PDR intervals
and their measurements.
:rtype: NdrPdrResult
:raises RuntimeError: If total duration is larger than timeout.
"""
- minimum_transmit_rate *= traffic_directions
- maximum_transmit_rate *= traffic_directions
# we need instance of TrafficGenerator instantiated by Robot Framework
# to be able to use trex_stl-*()
tg_instance = BuiltIn().get_library_instance(
u"resources.libraries.python.TrafficGenerator"
)
+ # Overrides for fixed transaction amount.
+ # TODO: Move to robot code? We have two call sites, so this saves space,
+ # even though this is surprising for log readers.
+ if transaction_scale:
+ initial_trial_duration = 1.0
+ final_trial_duration = 2.0
+ number_of_intermediate_phases = 0
+ timeout = 3600.0
tg_instance.set_rate_provider_defaults(
- frame_size,
- traffic_profile,
+ frame_size=frame_size,
+ traffic_profile=traffic_profile,
+ sleep_till_duration=False,
+ ppta=ppta,
+ resetter=resetter,
traffic_directions=traffic_directions,
- latency=latency
+ transaction_duration=transaction_duration,
+ transaction_scale=transaction_scale,
+ transaction_type=transaction_type,
+ use_latency=use_latency,
)
algorithm = MultipleLossRatioSearch(
- measurer=tg_instance, final_trial_duration=final_trial_duration,
+ measurer=tg_instance,
+ final_trial_duration=final_trial_duration,
final_relative_width=final_relative_width,
number_of_intermediate_phases=number_of_intermediate_phases,
- initial_trial_duration=initial_trial_duration, timeout=timeout,
- doublings=doublings
+ initial_trial_duration=initial_trial_duration,
+ timeout=timeout,
+ doublings=doublings,
)
result = algorithm.narrow_down_ndr_and_pdr(
- minimum_transmit_rate, maximum_transmit_rate, packet_loss_ratio
+ min_rate=minimum_transmit_rate,
+ max_rate=maximum_transmit_rate,
+ packet_loss_ratio=packet_loss_ratio,
)
return result
@staticmethod
def perform_soak_search(
- frame_size, traffic_profile, minimum_transmit_rate,
- maximum_transmit_rate, plr_target=1e-7, tdpt=0.1,
- initial_count=50, timeout=1800.0, trace_enabled=False,
- traffic_directions=2, latency=False):
+ frame_size,
+ traffic_profile,
+ minimum_transmit_rate,
+ maximum_transmit_rate,
+ plr_target=1e-7,
+ tdpt=0.1,
+ initial_count=50,
+ timeout=7200.0,
+ ppta=1,
+ resetter=None,
+ trace_enabled=False,
+ traffic_directions=2,
+ transaction_duration=0.0,
+ transaction_scale=0,
+ transaction_type=u"packet",
+ use_latency=False,
+ ):
"""Setup initialized TG, perform soak search, return avg and stdev.
:param frame_size: Frame size identifier or value [B].
:param traffic_profile: Module name as a traffic profile identifier.
See GPL/traffic_profiles/trex for implemented modules.
- :param minimum_transmit_rate: Minimal uni-directional
- target transmit rate [pps].
- :param maximum_transmit_rate: Maximal uni-directional
- target transmit rate [pps].
+ :param minimum_transmit_rate: Minimal load in transactions per second.
+ :param maximum_transmit_rate: Maximal load in transactions per second.
:param plr_target: Fraction of packets lost to achieve [1].
:param tdpt: Trial duration per trial.
The algorithm linearly increases trial duration with trial number,
@@ -1150,10 +1411,24 @@ class OptimizedSearch:
This is needed because initial "search" phase of integrator
takes significant time even without any trial results.
:param timeout: The search will stop after this overall time [s].
+ :param ppta: Packets per transaction, aggregated over directions.
+ Needed for udp_pps which does not have a good transaction counter,
+ so we need to compute expected number of packets.
+ Default: 1.
+ :param resetter: Callable to reset DUT state for repeated trials.
:param trace_enabled: True if trace enabled else False.
+ This is very verbose tracing on numeric computations,
+ do not use in production.
+ Default: False
:param traffic_directions: Traffic is bi- (2) or uni- (1) directional.
Default: 2
- :param latency: Whether to measure latency during the trial.
+ :param transaction_duration: Total expected time to close transaction.
+ :param transaction_scale: Number of transactions to perform.
+ 0 (default) means unlimited.
+ :param transaction_type: An identifier specifying which counters
+ and formulas to use when computing attempted and failed
+ transactions. Default: "packet".
+ :param use_latency: Whether to measure latency during the trial.
Default: False.
:type frame_size: str or int
:type traffic_profile: str
@@ -1162,29 +1437,48 @@ class OptimizedSearch:
:type plr_target: float
:type initial_count: int
:type timeout: float
+ :type ppta: int
+ :type resetter: Optional[Callable[[], None]]
:type trace_enabled: bool
:type traffic_directions: int
- :type latency: bool
+ :type transaction_duration: float
+ :type transaction_scale: int
+ :type transaction_type: str
+ :type use_latency: bool
:returns: Average and stdev of estimated aggregate rate giving PLR.
:rtype: 2-tuple of float
"""
- minimum_transmit_rate *= traffic_directions
- maximum_transmit_rate *= traffic_directions
tg_instance = BuiltIn().get_library_instance(
u"resources.libraries.python.TrafficGenerator"
)
+ # Overrides for fixed transaction amount.
+ # TODO: Move to robot code? We have a single call site
+ # but MLRsearch has two and we want the two to be used similarly.
+ if transaction_scale:
+ timeout = 7200.0
tg_instance.set_rate_provider_defaults(
- frame_size,
- traffic_profile,
- traffic_directions=traffic_directions,
+ frame_size=frame_size,
+ traffic_profile=traffic_profile,
negative_loss=False,
- latency=latency
+ sleep_till_duration=True,
+ ppta=ppta,
+ resetter=resetter,
+ traffic_directions=traffic_directions,
+ transaction_duration=transaction_duration,
+ transaction_scale=transaction_scale,
+ transaction_type=transaction_type,
+ use_latency=use_latency,
)
algorithm = PLRsearch(
- measurer=tg_instance, trial_duration_per_trial=tdpt,
+ measurer=tg_instance,
+ trial_duration_per_trial=tdpt,
packet_loss_ratio_target=plr_target,
- trial_number_offset=initial_count, timeout=timeout,
- trace_enabled=trace_enabled
+ trial_number_offset=initial_count,
+ timeout=timeout,
+ trace_enabled=trace_enabled,
+ )
+ result = algorithm.search(
+ min_rate=minimum_transmit_rate,
+ max_rate=maximum_transmit_rate,
)
- result = algorithm.search(minimum_transmit_rate, maximum_transmit_rate)
return result
diff --git a/resources/libraries/python/autogen/Regenerator.py b/resources/libraries/python/autogen/Regenerator.py
index e6474e566d..76501d6ad0 100644
--- a/resources/libraries/python/autogen/Regenerator.py
+++ b/resources/libraries/python/autogen/Regenerator.py
@@ -160,6 +160,9 @@ def add_default_testcases(testcase, iface, suite_id, file_out, tc_kwargs_list):
emit = False
if kwargs[u"frame_size"] not in MIN_FRAME_SIZE_VALUES:
emit = False
+ if u"-cps-" in suite_id or u"-pps-" in suite_id:
+ if kwargs[u"frame_size"] not in MIN_FRAME_SIZE_VALUES:
+ emit = False
if emit:
file_out.write(testcase.generate(**kwargs))
diff --git a/resources/libraries/robot/ip/nat.robot b/resources/libraries/robot/ip/nat.robot
index e80e1e1c85..0ebb58c2a0 100644
--- a/resources/libraries/robot/ip/nat.robot
+++ b/resources/libraries/robot/ip/nat.robot
@@ -40,10 +40,20 @@
| Initialize NAT44 endpoint-dependent mode in circular topology
| | [Documentation] | Initialization of NAT44 endpoint-dependent mode on DUT1
| |
+| | ... | This keyword also sets a test variable \${resetter}
+| | ... | to hold a callable which resets VPP state.
+| | ... | Keywords performing search will call it to get consistent trials.
+| | ... | Tests which do not wish to reset NAT state should use ramp-up,
+| | ... | so the resetter is not set if \${ramp_up_duration} variable
+| | ... | is (defined and) nonzero.
+| |
| | Configure inside and outside interfaces
| | ... | ${dut1} | ${DUT1_${int}1}[0] | ${DUT1_${int}2}[0]
-| | Set NAT44 Address Range
+| | ${resetter} = | Set NAT44 Address Range
| | ... | ${dut1} | ${out_net} | ${out_net_end}
+| | ${ramp_up_duration} = | Get Ramp Up Duration
+| | Return From Keyword If | ${ramp_up_duration}
+| | Set Test Variable | \${resetter}
# TODO: Remove when 'ip4.Initialize IPv4 forwarding in circular topology' KW
# adapted to use IP values from variables
@@ -181,6 +191,13 @@
| Configure deterministic mode for NAT44
| | [Documentation] | Set deterministic behaviour of NAT44 (DET44).
| |
+| | ... | This keyword also sets a test variable \${resetter}
+| | ... | to hold a callable which resets VPP state.
+| | ... | Keywords performing search will call it to get consistent trials.
+| | ... | Tests which do not wish to reset NAT state should use ramp-up,
+| | ... | so the resetter is not set if \${ramp_up_duration} variable
+| | ... | is (defined and) nonzero.
+| |
| | ... | *Arguments:*
| | ... | - node - DUT node to set deterministic mode for NAT44 on.
| | ... | Type: dictionary
@@ -196,8 +213,11 @@
| |
| | [Arguments] | ${node} | ${ip_in} | ${subnet_in} | ${ip_out} | ${subnet_out}
| |
-| | Set DET44 Mapping
+| | ${resetter} = | Set DET44 Mapping
| | ... | ${node} | ${ip_in} | ${subnet_in} | ${ip_out} | ${subnet_out}
+| | ${ramp_up_duration} = | Get Ramp Up Duration
+| | Return From Keyword If | ${ramp_up_duration}
+| | Set Test Variable | \${resetter}
| Initialize NAT44 deterministic mode in circular topology
| | [Documentation] | Initialization of NAT44 deterministic mode (DET44)
diff --git a/resources/libraries/robot/performance/performance_actions.robot b/resources/libraries/robot/performance/performance_actions.robot
new file mode 100644
index 0000000000..2cf954a5b3
--- /dev/null
+++ b/resources/libraries/robot/performance/performance_actions.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 ***
+| Variables | resources/libraries/python/Constants.py
+| Resource | resources/libraries/robot/performance/performance_utils.robot
+|
+| Documentation
+| ... | Performance suite keywords - Actions related to performance tests.
+
+*** Keywords ***
+| Additional Statistics Action For bash-perf-stat
+| | [Documentation]
+| | ... | Additional Statistics Action for bash command "perf stat".
+| |
+| | Run Keyword If | ${extended_debug}==${True}
+| | ... | Perf Stat On All DUTs | ${nodes} | cpu_list=${cpu_alloc_str}
+
+| Additional Statistics Action For clear-show-runtime-with-traffic
+| | [Documentation]
+| | ... | Additional Statistics Action for clear and show runtime counters with
+| | ... | running traffic.
+| |
+| | ... | See documentation of the called keyword for required test variables.
+| |
+| | Clear and show runtime counters with running traffic
+
+| Additional Statistics Action For noop
+| | [Documentation]
+| | ... | Additional Statistics Action for no operation.
+| |
+| | No operation
+
+| Additional Statistics Action For vpp-clear-runtime
+| | [Documentation]
+| | ... | Additional Statistics Action for clear VPP runtime.
+| |
+| | VPP Clear Runtime On All DUTs | ${nodes}
+
+| Additional Statistics Action For vpp-clear-stats
+| | [Documentation]
+| | ... | Additional Statistics Action for clear VPP statistics.
+| |
+| | Clear Statistics On All DUTs | ${nodes}
+
+| Additional Statistics Action For vpp-enable-elog
+| | [Documentation]
+| | ... | Additional Statistics Action for enable VPP elog trace.
+| |
+| | VPP Enable Elog Traces On All DUTs | ${nodes}
+
+| Additional Statistics Action For vpp-enable-packettrace
+| | [Documentation]
+| | ... | Additional Statistics Action for enable VPP packet trace.
+| |
+| | Run Keyword If | ${extended_debug}==${True}
+| | ... | VPP Enable Traces On All DUTs | ${nodes} | fail_on_error=${False}
+
+| Additional Statistics Action For vpp-show-elog
+| | [Documentation]
+| | ... | Additional Statistics Action for show VPP elog trace.
+| |
+| | Show Event Logger On All DUTs | ${nodes}
+
+| Additional Statistics Action For vpp-show-packettrace
+| | [Documentation]
+| | ... | Additional Statistics Action for show VPP packet trace.
+| |
+| | Run Keyword If | ${extended_debug}==${True}
+| | ... | Show Packet Trace On All Duts | ${nodes} | maximum=${100}
+
+| Additional Statistics Action For vpp-show-runtime
+| | [Documentation]
+| | ... | Additional Statistics Action for show VPP runtime.
+| |
+| | VPP Show Runtime On All DUTs | ${nodes}
+
+| Additional Statistics Action For vpp-show-stats
+| | [Documentation]
+| | ... | Additional Statistics Action for show VPP statistics.
+| |
+| | Show Statistics On All DUTs | ${nodes}
diff --git a/resources/libraries/robot/performance/performance_display.robot b/resources/libraries/robot/performance/performance_display.robot
new file mode 100644
index 0000000000..e8dfdbbfbd
--- /dev/null
+++ b/resources/libraries/robot/performance/performance_display.robot
@@ -0,0 +1,240 @@
+# 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 ***
+| Documentation
+| ... | Performance suite keywords - Displaying results as test messages.
+| ... | This includes checks to fail test.
+
+*** Keywords ***
+| Check NDRPDR interval validity
+| | [Documentation]
+| | ... | Extract loss ratio of lower bound of the interval.
+| | ... | Fail if it does not reach the allowed value.
+| |
+| | ... | *Arguments:*
+| | ... | - interval - Measured interval. Type: ReceiveRateInterval
+| | ... | - packet_loss_ratio - Accepted loss (0.0 for NDR). Type: float
+| |
+| | ... | *Example:*
+| |
+| | ... | \| Check NDRPDR interval validity \| \${result.pdr_interval} \
+| | ... | \| \${0.005} \|
+| |
+| | [Arguments] | ${interval} | ${packet_loss_ratio}=${0.0}
+| |
+| | ${lower_bound} = | Set Variable | ${interval.measured_low}
+| | ${lower_bound_lf} = | Set Variable | ${lower_bound.loss_fraction}
+| | Return From Keyword If | ${lower_bound_lf} <= ${packet_loss_ratio}
+| | Set Test Variable | \${rate_for_teardown} | ${lower_bound_lf}
+| | ${message}= | Catenate | SEPARATOR=${SPACE}
+| | ... | Minimal rate loss fraction ${lower_bound_lf}
+| | ... | does not reach target ${packet_loss_ratio}.
+| | ${message_zero} = | Set Variable | Zero packets forwarded!
+| | ${message_other} = | Set Variable | ${lower_bound.loss_count} packets lost.
+| | ${message} = | Set Variable If | ${lower_bound_lf} >= 1.0
+| | ... | ${message}${\n}${message_zero} | ${message}${\n}${message_other}
+| | Fail | ${message}
+
+| Display Reconfig Test Message
+| | [Documentation]
+| | ... | Display the number of packets lost (bidirectionally)
+| | ... | due to reconfiguration under traffic.
+| |
+| | ... | *Arguments:*
+| | ... | - result - Result of bidirectional measurtement.
+| | ... | Type: ReceiveRateMeasurement
+| |
+| | ... | *Example:*
+| |
+| | ... | \| Display Reconfig Test Message \| \${result} \|
+| |
+| | [Arguments] | ${result}
+| |
+| | ${ppta} = | Get Packets Per Transaction Aggregated
+| | ${packet_rate} = | Evaluate | ${result.target_tr} * ${ppta}
+| | ${packet_loss} = | Set Variable | ${result.loss_count}
+| | ${time_loss} = | Evaluate | ${packet_loss} / ${packet_rate}
+| | Set Test Message | Packets lost due to reconfig: ${packet_loss}
+| | Set Test Message | ${\n}Implied time lost: ${time_loss} | append=yes
+
+| Display result of NDRPDR search
+| | [Documentation]
+| | ... | Display result of NDR+PDR search, both quantities, both bounds,
+| | ... | aggregate in units given by trasaction type, e.g. by default
+| | ... | in packet per seconds and Gbps total bandwidth
+| | ... | (for initial packet size).
+| | ... |
+| | ... | The bound to display is encoded as target rate, it is assumed
+| | ... | it is in transactions per second. Bidirectional traffic
+| | ... | transaction is understood as having 2 packets, for this purpose.
+| | ... |
+| | ... | Througput is calculated as:
+| | ... | Sum of measured rate over streams
+| | ... | Bandwidth is calculated as:
+| | ... | (Throughput * (L2 Frame Size + IPG) * 8)
+| | ... | If the results contain latency data, display them for lower bounds.
+| |
+| | ... | *Test (or broader scope) variables read:*
+| | ... | - frame_size_num - L2 Frame Size [B]. Type: integer or float
+| | ... | - transaction_type - String identifier to determine how to count
+| | ... | transactions. Default is "packet".
+| | ... | *Arguments:*
+| | ... | - result - Measured result data. Aggregate rate, tps or pps.
+| | ... | Type: NdrPdrResult
+| |
+| | ... | *Example:*
+| |
+| | ... | \| Display result of NDRPDR search \| \${result} \|
+| |
+| | [Arguments] | ${result}
+| |
+| | Display single bound | NDR_LOWER
+| | ... | ${result.ndr_interval.measured_low.target_tr}
+| | ... | ${result.ndr_interval.measured_low.latency}
+| | Display single bound | NDR_UPPER
+| | ... | ${result.ndr_interval.measured_high.target_tr}
+| | Display single bound | PDR_LOWER
+| | ... | ${result.pdr_interval.measured_low.target_tr}
+| | ... | ${result.pdr_interval.measured_low.latency}
+| | Display single bound | PDR_UPPER
+| | ... | ${result.pdr_interval.measured_high.target_tr}
+
+| Display result of soak search
+| | [Documentation]
+| | ... | Display result of soak search, avg+-stdev, as upper/lower bounds.
+| | ... | See Display single bound for units used.
+| |
+| | ... | *Test (or broader scope) variables read:*
+| | ... | - frame_size - L2 Frame Size [B] or IMIX string. Type: integer or
+| | ... | string
+| | ... | - transaction_type - String identifier to determine how to count
+| | ... | transactions. Default is "packet".
+| | ... | *Arguments:*
+| | ... | - avg - Estimated average critical load [pps]. Type: float
+| | ... | - stdev - Standard deviation of critical load [pps]. Type: float
+| |
+| | ... | *Returns:*
+| | ... | - Lower and upper bound of critical load [pps]. Type: 2-tuple of float
+| |
+| | ... | *Example:*
+| |
+| | ... | \| Display result of soak search \| \${100000} \| \${100} \|
+| |
+| | [Arguments] | ${avg} | ${stdev}
+| |
+| | ${avg} = | Convert To Number | ${avg}
+| | ${stdev} = | Convert To Number | ${stdev}
+| | ${lower} = | Evaluate | ${avg} - ${stdev}
+| | ${upper} = | Evaluate | ${avg} + ${stdev}
+| | Display single bound | PLRsearch lower bound | ${lower}
+| | Display single bound | PLRsearch upper bound | ${upper}
+| | Return From Keyword | ${lower} | ${upper}
+
+| Display single bound
+| | [Documentation]
+| | ... | Compute and display one bound of NDR+PDR (or soak) search result.
+| | ... | If the latency string is present, it is displayed as well.
+| | ... |
+| | ... | The bound to display is given as target transfer rate, it is assumed
+| | ... | it is in transactions per second. Bidirectional traffic
+| | ... | transaction is understood as having 2 packets, for this purpose.
+| | ... |
+| | ... | Pps values are aggregate in packet per seconds,
+| | ... | and Gbps total bandwidth (for initial packet size).
+| | ... |
+| | ... | Througput is calculated as:
+| | ... | Sum of measured rate over streams
+| | ... | Bandwidth is calculated as:
+| | ... | (Throughput * (L2 Frame Size + IPG) * 8)
+| | ... | If the results contain latency data, display them for lower bounds.
+| |
+| | ... | *Test (or broader scope) variables read:*
+| | ... | - transaction_type - String identifier to determine how to count
+| | ... | transactions. Default is "packet".
+| | ... | *Arguments:*
+| | ... | - text - Flavor text describing which bound is this. Type: string
+| | ... | - tps - Transaction rate [tps]. Type: float
+| | ... | - latency - Latency data to display if non-empty. Type: string
+| |
+| | ... | *Example:*
+| |
+| | ... | \| Display single bound \| NDR lower bound \| \${12345.67} \
+| | ... | \| latency=\${EMPTY} \|
+| |
+| | [Arguments] | ${text} | ${tps} | ${latency}=${EMPTY}
+| |
+| | ${transaction_type} = | Get Transaction Type
+| | Run Keyword And Return If | """_cps""" in """${transaction_type}"""
+| | ... | Display single cps bound | ${text} | ${tps} | ${latency}
+| | Display single pps bound | ${text} | ${tps} | ${latency}
+
+| Display single cps bound
+| | [Documentation]
+| | ... | Display one bound of NDR+PDR search for CPS tests.
+| | ... | The bounds are expressed as transactions per second.
+| | ... | If the latency string is present, it is displayed as well.
+| |
+| | ... | *Arguments:*
+| | ... | - text - Flavor text describing which bound is this. Type: string
+| | ... | - tps - Transaction rate [tps]. Type: float
+| | ... | - latency - Latency data to display if non-empty. Type: string
+| |
+| | ... | *Example:*
+| |
+| | ... | \| Display single cps bound \| NDR lower bound \| \${12345.67} \
+| | ... | \| latency=\${EMPTY} \|
+| |
+| | [Arguments] | ${text} | ${tps} | ${latency}=${EMPTY}
+| |
+| | Set Test Message | ${\n}${text}: ${tps} CPS | append=yes
+| | Return From Keyword If | not """${latency}"""
+| | Set Test Message | ${\n}LATENCY [min/avg/max/hdrh] per stream: ${latency}
+| | ... | append=yes
+
+| Display single pps bound
+| | [Documentation]
+| | ... | Display one pps bound of NDR+PDR search,
+| | ... | aggregate in packet per seconds and Gbps total bandwidth
+| | ... | (for initial packet size).
+| | ... |
+| | ... | The bound to display is given as target transfer rate, it is assumed
+| | ... | it is in transactions per second. Bidirectional traffic
+| | ... | transaction is understood as having 2 packets, for this purpose.
+| | ... |
+| | ... | Througput is calculated as:
+| | ... | Sum of measured rates over streams
+| | ... | Bandwidth is calculated as:
+| | ... | (Throughput * (L2 Frame Size + IPG) * 8)
+| | ... | If the latency string is present, it is displayed as well.
+| |
+| | ... | *Arguments:*
+| | ... | - text - Flavor text describing which bound is this. Type: string
+| | ... | - tps - Transaction rate [tps]. Type: float
+| | ... | - latency - Latency data to display if non-empty. Type: string
+| |
+| | ... | *Example:*
+| |
+| | ... | \| Display single pps bound \| NDR lower bound \| \${12345.67} \
+| | ... | \| latency=\${EMPTY} \|
+| |
+| | [Arguments] | ${text} | ${tps} | ${latency}=${EMPTY}
+| |
+| | ${ppta} = | Get Packets Per Transaction Aggregated
+| | ${pps} = | Evaluate | ${tps} * ${ppta}
+| | ${bandwidth} = | Evaluate | ${pps} * (${avg_frame_size}+20)*8 / 1e9
+| | Set Test Message | ${\n}${text}: ${pps} pps, | append=yes
+| | Set Test Message | ${bandwidth} Gbps (initial) | append=yes
+| | Return From Keyword If | not """${latency}"""
+| | Set Test Message | ${\n}LATENCY [min/avg/max/hdrh] per stream: ${latency}
+| | ... | append=yes
diff --git a/resources/libraries/robot/performance/performance_limits.robot b/resources/libraries/robot/performance/performance_limits.robot
deleted file mode 100644
index 332ed9368b..0000000000
--- a/resources/libraries/robot/performance/performance_limits.robot
+++ /dev/null
@@ -1,153 +0,0 @@
-# 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 ***
-| Documentation | Performance suite keywords - Handling NIC and TG limits.
-| Library | Collections
-| Variables | ${CURDIR}/../../python/Constants.py
-
-*** Keywords ***
-| Get Average Frame Size
-| | [Documentation]
-| | ... | Framesize can be either integer in case of a single packet
-| | ... | in stream, or set of packets in case of IMIX type or simmilar.
-| |
-| | ... | *Arguments:*
-| | ... | - frame_size - Framesize. Type: integer or string
-| | ... | - overhead - Overhead in bytes; default value: ${0}. Type: integer
-| |
-| | ... | *Returns:*
-| | ... | Average frame size including overhead. Type: float
-| |
-| | ... | *Example:*
-| |
-| | ... | \| Get Average Frame Size \| IMIX_v4_1 \|
-| |
-| | [Arguments] | ${frame_size} | ${overhead}=${0}
-| |
-| | ${frame_size} = | Run Keyword If | '${frame_size}' == 'IMIX_v4_1'
-| | ... | Set Variable | ${353.83333}
-| | ... | ELSE
-| | ... | Convert To Number | ${frame_size}
-| | ${avg_frame_size} = | Evaluate | ${frame_size} + ${overhead}
-| | Return From Keyword | ${avg_frame_size}
-
-| Get Maximum Frame Size
-| | [Documentation]
-| | ... | Framesize can be either integer in case of a single packet
-| | ... | in stream, or set of packets in case of IMIX type or simmilar.
-| |
-| | ... | *Arguments:*
-| | ... | - frame_size - Framesize. Type: integer or string
-| | ... | - overhead - Overhead in bytes; default value: ${0}. Type: integer
-| |
-| | ... | *Returns:*
-| | ... | Maximum frame size including overhead. Type: float
-| |
-| | ... | *Example:*
-| |
-| | ... | \| Get Maximum Frame Size \| IMIX_v4_1 \|
-| |
-| | [Arguments] | ${frame_size} | ${overhead}=${0}
-| |
-| | ${frame_size} = | Run Keyword If | '${frame_size}' == 'IMIX_v4_1'
-| | ... | Set Variable | ${1518}
-| | ... | ELSE
-| | ... | Convert To Number | ${frame_size}
-| | ${max_frame_size} = | Evaluate | ${frame_size} + ${overhead}
-| | Return From Keyword | ${max_frame_size}
-
-| Set Max Rate And Jumbo
-| | [Documentation]
-| | ... | Input framesize can be either integer in case of a single packet
-| | ... | in stream, or IMIX string defining mix of packets.
-| | ... | For jumbo frames detection, the maximal packet size is relevant.
-| | ... | For maximal transmit rate, the average packet size is relevant.
-| | ... | In both cases, encapsulation overhead (if any) has effect.
-| | ... | The maximal rate is computed from NIC name.
-| | ... | The implementation works by mapping from exact
-| | ... | whitelisted NIC names.
-| | ... | The mapping is hardcoded in nic_limits.yaml
-| | ... | TODO: Make the mapping from NIC names case insensistive.
-| |
-| | ... | TODO: Make pps limit also definable per NIC.
-| |
-| | ... | This keyword computes maximal unidirectional transmit rate
-| | ... | and jumbo boolean (some suites need that for configuration decisions).
-| | ... | To streamline suite autogeneration, both input and output values
-| | ... | are communicated as test (or broader scope) variables,
-| | ... | instead of explicit arguments and return values.
-| |
-| | ... | *Test (or broader scope) variables read:*
-| | ... | - nic_name - Name of bottleneck NIC. Type: string
-| | ... | - overhead - Overhead in bytes; default value: 0. Type: integer
-| | ... | - frame_size - L2 Frame Size [B] or IMIX string. Type: integer or
-| | ... | string
-| |
-| | ... | *Test variables set:*
-| | ... | - max_rate - Calculated unidirectional maximal transmit rate [pps].
-| | ... | Type: float
-| | ... | - jumbo - Jumbo boolean, true if jumbo packet support has to be
-| | ... | enabled. Type: boolean
-| |
-| | ... | *Example:*
-| |
-| | ... | \| Set Test Variable \| \${frame_size} \| IMIX_v4_1 \|
-| | ... | \| Set Max Rate And Jumbo \|
-| |
-| | # Negative overhead is possible, if DUT-DUT traffic is less encapsulated
-| | # than TG-DUT traffic.
-| | # TODO: Re-check overhead values in suites with both traffics encapsulated.
-| | # TODO: Improve layered setup to detect encap/decap and update overhead.
-| | ${overhead} = | Set Variable If | ${overhead} >= 0 | ${overhead} | ${0}
-| | ${pps_limit} = | Get From Dictionary
-| | ... | ${NIC_NAME_TO_PPS_LIMIT} | ${nic_name}
-| | ${bps_limit} = | Get From Dictionary
-| | ... | ${NIC_NAME_TO_BPS_LIMIT} | ${nic_name}
-| | # swo := size_with_overhead
-| | ${avg_swo} = | Get Average Frame Size | ${frame_size} | ${overhead}
-| | ${rate} = | Evaluate | ${bps_limit} / ((${avg_swo} + 20.0) * 8)
-| | ${max_rate} = | Set Variable If | ${rate} > ${pps_limit}
-| | ... | ${pps_limit} | ${rate}
-| | Set Test Variable | \${max_rate}
-| | Set Jumbo
-
-| Set Jumbo
-| | [Documentation]
-| | ... | For jumbo frames detection, the maximal packet size is relevant,
-| | ... | encapsulation overhead (if any) has effect.
-| |
-| | ... | This keyword computes jumbo boolean (some suites need that for
-| | ... | configuration decisions).
-| | ... | To streamline suite autogeneration, both input and output values
-| | ... | are communicated as test (or broader scope) variables,
-| | ... | instead of explicit arguments and return values.
-| |
-| | ... | *Test (or broader scope) variables read:*
-| | ... | - overhead - Overhead in bytes; default value: 0. Type: integer
-| | ... | - frame_size - L2 Frame Size [B] or IMIX string. Type: integer or
-| | ... | string
-| |
-| | ... | *Test variables set:*
-| | ... | - jumbo - Jumbo boolean, true if jumbo packet support has to be
-| | ... | enabled. Type: boolean
-| |
-| | ... | *Example:*
-| |
-| | ... | \| Set Jumnbo \|
-| |
-| | ${overhead} = | Set Variable If | ${overhead} >= 0 | ${overhead} | ${0}
-| | ${max_swo} = | Get Maximum Frame Size | ${frame_size} | ${overhead}
-| | ${jumbo} = | Set Variable If | ${max_swo} < 1522
-| | ... | ${False} | ${True}
-| | Set Test Variable | \${jumbo}
diff --git a/resources/libraries/robot/performance/performance_utils.robot b/resources/libraries/robot/performance/performance_utils.robot
index b9c4dc08d1..ffafd40854 100644
--- a/resources/libraries/robot/performance/performance_utils.robot
+++ b/resources/libraries/robot/performance/performance_utils.robot
@@ -22,16 +22,116 @@
| Library | resources.libraries.python.TrafficGenerator.TGDropRateSearchImpl
| Library | resources.libraries.python.Trace
| Variables | resources/libraries/python/Constants.py
+| Resource | resources/libraries/robot/performance/performance_actions.robot
+| Resource | resources/libraries/robot/performance/performance_display.robot
+| Resource | resources/libraries/robot/performance/performance_vars.robot
|
| Documentation
| ... | Performance suite keywords - utilities to find and verify NDR and PDR.
+| ... | See performance_vars.robot for values accessed via there.
-*** Variables ***
-| ${trial_duration}= | ${PERF_TRIAL_DURATION}
-| ${trial_multiplicity}= | ${PERF_TRIAL_MULTIPLICITY}
-| ${extended_debug}= | ${EXTENDED_DEBUG}
+# Library/suite scope variables are maybe defined in performance_vars.robot.
*** Keywords ***
+| Clear and show runtime counters with running traffic
+| | [Documentation]
+| | ... | Start traffic at specified rate then clear runtime counters on all
+| | ... | DUTs. Wait for specified amount of time and capture runtime counters
+| | ... | on all DUTs. Finally stop traffic.
+| |
+| | ... | TODO: Support resetter if this is not the first trial-ish action?
+| |
+| | ... | *Example:*
+| |
+| | ... | \| Clear and show runtime counters with running traffic \|
+| |
+| | ${ppta} = | Get Packets Per Transaction Aggregated
+| | ${runtime_duration} = | Get Runtime Duration
+| | ${runtime_rate} = | Get Runtime Rate
+| | ${traffic_directions} = | Get Traffic Directions
+| | ${transaction_duration} = | Get Transaction Duration
+| | ${transaction_scale} = | Get Transaction Scale
+| | ${transaction_type} = | Get Transaction Type
+| | ${use_latency} = | Get Use Latency
+| | # Duration of -1 means we will stop traffic manually.
+| | Send traffic on tg
+| | ... | duration=${-1}
+| | ... | rate=${runtime_rate}
+| | ... | frame_size=${frame_size}
+| | ... | traffic_profile=${traffic_profile}
+| | ... | async_call=${True}
+| | ... | ppta=${ppta}
+| | ... | use_latency=${use_latency}
+| | ... | traffic_directions=${traffic_directions}
+| | ... | transaction_duration=${transaction_duration}
+| | ... | transaction_scale=${transaction_scale}
+| | ... | transaction_type=${transaction_type}
+| | ... | duration_limit=${0.0}
+| | FOR | ${action} | IN | @{pre_run_stats}
+| | | Run Keyword | Additional Statistics Action For ${action}
+| | END
+| | Sleep | ${runtime_duration}
+| | FOR | ${action} | IN | @{post_run_stats}
+| | | Run Keyword | Additional Statistics Action For ${action}
+| | END
+| | Stop traffic on tg
+
+| Find critical load using PLRsearch
+| | [Documentation]
+| | ... | Find boundaries for troughput (of hardcoded target loss ratio)
+| | ... | using PLRsearch algorithm.
+| | ... | Display results as formatted test message.
+| | ... | Fail if computed lower bound is 110% of the minimal rate or less.
+| | ... | Input rates are understood as uni-directional,
+| | ... | reported result contains aggregate rates.
+| | ... | Currently, the min_rate value is hardcoded to match test teardowns.
+| | ... | Call \${resetter} (if defined) to reset DUT state before each trial.
+| |
+| | ... | *Test (or broader scope) variables read:*
+| | ... | - traffic_profile - Name of module defining traffc for measurements.
+| | ... | Type: string
+| | ... | - frame_size - L2 Frame Size [B] or IMIX string. Type: integer or
+| | ... | string
+| | ... | - max_rate - Calculated unidirectional maximal transmit rate [pps].
+| | ... | Type: float
+| |
+| | ... | *Example:*
+| |
+| | ... | \| Find critical load using PLR search \|
+| |
+| | # Get values via performance_vars.
+| | ${max_rate} = | Get Max Rate
+| | ${min_rate} = | Get Min Rate
+| | ${ppta} = | Get Packets Per Transaction Aggregated
+| | ${resetter} = | Get Resetter
+| | ${traffic_directions} = | Get Traffic Directions
+| | ${transaction_duration} = | Get Transaction Duration
+| | ${transaction_scale} = | Get Transaction Scale
+| | ${transaction_type} = | Get Transaction Type
+| | ${use_latency} = | Get Use Latency
+| | ${average} | ${stdev} = | Perform soak search
+| | ... | frame_size=${frame_size}
+| | ... | traffic_profile=${traffic_profile}
+| | ... | minimum_transmit_rate=${min_rate}
+| | ... | maximum_transmit_rate=${max_rate}
+| | ... | plr_target=${1e-7}
+| | ... | tdpt=${0.1}
+| | ... | initial_count=${50}
+| | ... | ppta=${ppta}
+| | ... | resetter=${resetter}
+| | ... | timeout=${1800.0}
+| | ... | trace_enabled=${False}
+| | ... | traffic_directions=${traffic_directions}
+| | ... | transaction_scale=${transaction_scale}
+| | ... | transaction_duration=${transaction_duration}
+| | ... | transaction_type=${transaction_type}
+| | ... | use_latency=${use_latency}
+| | ${lower} | ${upper} = | Display result of soak search
+| | ... | ${average} | ${stdev}
+| | Set Test Variable | \${rate for teardown} | ${lower}
+| | Should Not Be True | 1.1 * ${min_rate} > ${lower}
+| | ... | Lower bound ${lower} too small for unidirectional minimum ${min_rate}.
+
| Find NDR and PDR intervals using optimized search
| | [Documentation]
| | ... | Find boundaries for RFC2544 compatible NDR and PDR values
@@ -41,386 +141,243 @@
| | ... | Input rates are understood as uni-directional,
| | ... | reported result contains aggregate rates.
| | ... | Additional latency measurements are performed for smaller loads,
-| | ... | their results are also displayed.
+| | ... | even if latency stream is disabled in search. Their results
+| | ... | are also displayed.
| | ... | Finally, two measurements for runtime stats are done (not displayed).
| | ... | Currently, the min_rate value is hardcoded to 90kpps,
| | ... | allowing measurement at 10% of the discovered rate
| | ... | without breaking latency streams.
+| | ... | Call \${resetter} (if defined) to reset DUT state before each trial.
| |
| | ... | *Test (or broader scope) variables read:*
| | ... | - traffic_profile - Name of module defining traffc for measurements.
| | ... | Type: string
| | ... | - frame_size - L2 Frame Size [B] or IMIX string. Type: integer or
| | ... | string
-| | ... | - max_rate - Calculated unidirectional maximal transmit rate [pps].
+| | ... | - max_rate - Calculated maximal transmit rate [tps].
| | ... | Type: float
-| |
-| | ... | *Arguments:*
-| | ... | - packet_loss_ratio - Accepted loss during search. Type: float
-| | ... | - final_relative_width - Maximal width multiple of upper. Type: float
-| | ... | - final_trial_duration - Duration of final trials [s]. Type: float
-| | ... | - initial_trial_duration - Duration of initial trials [s]. Type: float
-| | ... | - intermediate phases - Number of intermediate phases [1].
-| | ... | Type: integer
-| | ... | - timeout - Fail if search duration is longer [s]. Type: float
-| | ... | - doublings - How many doublings to do when expanding [1].
-| | ... | Type: integer
-| | ... | - traffic_directions - Bi- (2) or uni- (1) directional traffic.
-| | ... | Type: integer
-| | ... | - latency_duration - Duration for latency-specific trials. Type: float
-| | ... | - latency - False to disable latency measurement; default value: True.
-| | ... | Type: boolean
+| | ... | - resetter - Callable to reset DUT state before each trial.
+| | ... | - transaction_scale - Number of ASTF transaction (zero if unlimited).
+| | ... | - transaction_type - String identifier to determine how to count
+| | ... | transactions. Default is "packet".
+| | ... | - disable_latency - If true, skip anything related to latency.
+| | ... | Useful if transaction_scale is high and TPS is low. Default: false.
| |
| | ... | *Example:*
| |
-| | ... | \| Find NDR and PDR intervals using optimized search \| \${0.005} \
-| | ... | \| \${0.005} \| \${30.0} \| \${1.0} \| \${2} \| \${600.0} \| \${2} \
-| | ... | \| \${2} \| ${5.0} \|
-| |
-| | [Arguments] | ${packet_loss_ratio}=${0.005}
-| | ... | ${final_relative_width}=${0.005} | ${final_trial_duration}=${30.0}
-| | ... | ${initial_trial_duration}=${1.0}
-| | ... | ${number_of_intermediate_phases}=${2} | ${timeout}=${720.0}
-| | ... | ${doublings}=${2} | ${traffic_directions}=${2}
-| | ... | ${latency_duration}=${PERF_TRIAL_LATENCY_DURATION}
-| | ... | ${latency}=${True}
-| |
-| | # Latency measurements will need more than 9000 pps.
-| | ${result} = | Perform optimized ndrpdr search | ${frame_size}
-| | ... | ${traffic_profile} | ${9001} | ${max_rate}
-| | ... | ${packet_loss_ratio} | ${final_relative_width}
-| | ... | ${final_trial_duration} | ${initial_trial_duration}
-| | ... | ${number_of_intermediate_phases} | timeout=${timeout}
-| | ... | doublings=${doublings} | traffic_directions=${traffic_directions}
-| | ... | latency=${latency}
+| | ... | \| Find NDR and PDR intervals using optimized search \|
+| |
+| | # Get values via performance_vars.
+| | ${disable_latency} = | Get Disable Latency
+| | ${max_rate} = | Get Max Rate
+| | ${min_rate} = | Get Min Rate
+| | # \${packet_loss_ratio} is used twice so it is worth a variable.
+| | ${packet_loss_ratio} = | Get Packet Loss Ratio
+| | ${ppta} = | Get Packets Per Transaction Aggregated
+| | ${resetter} = | Get Resetter
+| | ${traffic_directions} = | Get Traffic Directions
+| | ${transaction_duration} = | Get Transaction Duration
+| | ${transaction_scale} = | Get Transaction Scale
+| | ${transaction_type} = | Get Transaction Type
+| | ${use_latency} = | Get Use Latency
+| | ${result} = | Perform optimized ndrpdr search
+| | ... | frame_size=${frame_size}
+| | ... | traffic_profile=${traffic_profile}
+| | ... | minimum_transmit_rate=${min_rate}
+| | ... | maximum_transmit_rate=${max_rate}
+| | ... | packet_loss_ratio=${packet_loss_ratio}
+| | ... | final_relative_width=${0.005}
+| | ... | final_trial_duration=${30.0}
+| | ... | initial_trial_duration=${1.0}
+| | ... | number_of_intermediate_phases=${2}
+| | ... | timeout=${720.0}
+| | ... | doublings=${2}
+| | ... | ppta=${ppta}
+| | ... | resetter=${resetter}
+| | ... | traffic_directions=${traffic_directions}
+| | ... | transaction_duration=${transaction_duration}
+| | ... | transaction_scale=${transaction_scale}
+| | ... | transaction_type=${transaction_type}
+| | ... | use_latency=${use_latency}
| | Display result of NDRPDR search | ${result}
| | Check NDRPDR interval validity | ${result.pdr_interval}
| | ... | ${packet_loss_ratio}
| | Check NDRPDR interval validity | ${result.ndr_interval}
-| | ${pdr_sum}= | Set Variable | ${result.pdr_interval.measured_low.target_tr}
-| | ${pdr_per_stream}= | Evaluate | ${pdr_sum} / float(${traffic_directions})
-| | ${ndr_sum}= | Set Variable | ${result.ndr_interval.measured_low.target_tr}
-| | ${ndr_per_stream}= | Evaluate | ${ndr_sum} / float(${traffic_directions})
-| | ${rate}= | Evaluate | 0.9 * ${pdr_per_stream}
-| | Run Keyword If | ${latency}
-| | ... | Measure and show latency at specified rate | Latency at 90% PDR:
-| | ... | ${latency_duration} | ${rate} | ${framesize}
-| | ... | ${traffic_profile} | ${traffic_directions}
-| | ${rate}= | Evaluate | 0.5 * ${pdr_per_stream}
-| | Run Keyword If | ${latency}
-| | ... | Measure and show latency at specified rate | Latency at 50% PDR:
-| | ... | ${latency_duration} | ${rate} | ${framesize}
-| | ... | ${traffic_profile} | ${traffic_directions}
-| | ${rate}= | Evaluate | 0.1 * ${pdr_per_stream}
-| | Run Keyword If | ${latency}
-| | ... | Measure and show latency at specified rate | Latency at 10% PDR:
-| | ... | ${latency_duration} | ${rate} | ${framesize}
-| | ... | ${traffic_profile} | ${traffic_directions}
-| | Run Keyword If | ${latency}
-| | ... | Measure and show latency at specified rate | Latency at 0% PDR:
-| | ... | ${latency_duration} | ${0} | ${framesize}
-| | ... | ${traffic_profile} | ${traffic_directions}
-| | # Finally, trials with runtime and other stats.
+| | ${pdr} = | Set Variable | ${result.pdr_interval.measured_low.target_tr}
+| | ${ndr} = | Set Variable | ${result.ndr_interval.measured_low.target_tr}
| | # We expect NDR and PDR to have different-looking stats.
| | Send traffic at specified rate
-| | ... | ${1.0} | ${pdr_per_stream} | ${framesize} | ${traffic_profile}
-| | ... | traffic_directions=${traffic_directions}
-| | Send traffic at specified rate
-| | ... | ${1.0} | ${ndr_per_stream} | ${framesize} | ${traffic_profile}
-| | ... | traffic_directions=${traffic_directions}
+| | ... | rate=${pdr}
+| | ... | trial_duration=${1.0}
+| | ... | trial_multiplicity=${1}
+| | ... | use_latency=${use_latency}
+| | ... | duration_limit=${1.0}
+| | Run Keyword If | ${ndr} != ${pdr}
+| | ... | Send traffic at specified rate
+| | ... | rate=${ndr}
+| | ... | trial_duration=${1.0}
+| | ... | trial_multiplicity=${1}
+| | ... | use_latency=${use_latency}
+| | ... | duration_limit=${1.0}
+| | Return From Keyword If | ${disable_latency}
+| | ${rate} = | Evaluate | 0.9 * ${pdr}
+| | Measure and show latency at specified rate | Latency at 90% PDR: | ${rate}
+| | ${rate} = | Evaluate | 0.5 * ${pdr}
+| | Measure and show latency at specified rate | Latency at 50% PDR: | ${rate}
+| | ${rate} = | Evaluate | 0.1 * ${pdr}
+| | Measure and show latency at specified rate | Latency at 10% PDR: | ${rate}
+| | Measure and show latency at specified rate | Latency at 0% PDR: | ${0.0}
| Find Throughput Using MLRsearch
| | [Documentation]
-| | ... | Find and return lower bound PDR (zero PLR by default)
+| | ... | Find and return lower bound NDR (zero PLR)
| | ... | aggregate throughput using MLRsearch algorithm.
| | ... | Input rates are understood as uni-directional.
| | ... | Currently, the min_rate value is hardcoded to match test teardowns.
+| | ... | Call \${resetter} (if defined) to reset DUT state before each trial.
| |
| | ... | *Test (or broader scope) variables read:*
| | ... | - traffic_profile - Name of module defining traffc for measurements.
| | ... | Type: string
| | ... | - frame_size - L2 Frame Size [B] or IMIX string. Type: integer or
| | ... | string
-| | ... | - max_rate - Calculated unidirectional maximal transmit rate [pps].
+| | ... | - max_rate - Calculated maximal transmit rate [tps].
| | ... | Type: float
-| |
-| | ... | *Arguments:*
-| | ... | - packet_loss_ratio - Accepted loss during search. Type: float
-| | ... | - final_relative_width - Maximal width multiple of upper. Type: float
-| | ... | - final_trial_duration - Duration of final trials [s]. Type: float
-| | ... | - initial_trial_duration - Duration of initial trials [s]. Type: float
-| | ... | - intermediate phases - Number of intermediate phases [1].
-| | ... | Type: integer
-| | ... | - timeout - Fail if search duration is longer [s]. Type: float
-| | ... | - doublings - How many doublings to do when expanding [1].
-| | ... | Type: integer
-| | ... | - traffic_directions - Bi- (2) or uni- (1) directional traffic.
-| | ... | Type: integer
-| | ... | - latency - True to enable latency measurement; default value: False.
-| | ... | Type: boolean
+| | ... | - resetter - Callable to reset DUT state before each trial.
+| | ... | - transaction_scale - Number of ASTF transaction (zero if unlimited).
+| | ... | - transaction_type - String identifier to determine how to count
+| | ... | transactions. Default is "packet".
| |
| | ... | *Returns:*
| | ... | - Lower bound for bi-directional throughput at given PLR. Type: float
| |
| | ... | *Example:*
| |
-| | ... | \| \${throughpt}= \| Find Throughput Using MLRsearch \| \${0} \
-| | ... | \| \${0.001} \| \${10.0}\| \${1.0} \| \${1} \| \${720.0} \| \${2} \
-| | ... | \| \${2} \|
-| |
-| | [Arguments] | ${packet_loss_ratio}=${0.0}
-| | ... | ${final_relative_width}=${0.001} | ${final_trial_duration}=${10.0}
-| | ... | ${initial_trial_duration}=${1.0}
-| | ... | ${number_of_intermediate_phases}=${1} | ${timeout}=${720.0}
-| | ... | ${doublings}=${2} | ${traffic_directions}=${2} | ${latency}=${False}
-| |
-| | ${result} = | Perform optimized ndrpdr search | ${frame_size}
-| | ... | ${traffic_profile} | ${10000} | ${max_rate}
-| | ... | ${packet_loss_ratio} | ${final_relative_width}
-| | ... | ${final_trial_duration} | ${initial_trial_duration}
-| | ... | ${number_of_intermediate_phases} | timeout=${timeout}
-| | ... | doublings=${doublings} | traffic_directions=${traffic_directions}
-| | ... | latency=${latency}
+| | ... | \| \${throughpt}= \| Find Throughput Using MLRsearch \|
+| |
+| | ${max_rate} = | Get Max Rate
+| | ${min_rate} = | Get Min Rate
+| | ${ppta} = | Get Packets Per Transaction Aggregated
+| | ${resetter} = | Get Resetter
+| | ${traffic_directions} = | Get Traffic Directions
+| | ${transaction_duration} = | Get Transaction Duration
+| | ${transaction_scale} = | Get Transaction Scale
+| | ${transaction_type} = | Get Transaction Type
+| | ${use_latency} = | Get Use Latency
+| | ${result} = | Perform optimized ndrpdr search
+| | ... | frame_size=${frame_size}
+| | ... | traffic_profile=${traffic_profile}
+| | ... | minimum_transmit_rate=${min_rate}
+| | ... | maximum_transmit_rate=${max_rate}
+| | ... | packet_loss_ratio=${0.0}
+| | ... | final_relative_width=${0.001}
+| | ... | final_trial_duration=${10.0}
+| | ... | initial_trial_duration=${1.0}
+| | ... | number_of_intermediate_phases=${1}
+| | ... | timeout=${720}
+| | ... | doublings=${2}
+| | ... | ppta=${ppta}
+| | ... | resetter=${resetter}
+| | ... | traffic_directions=${traffic_directions}
+| | ... | transaction_duration=${transaction_duration}
+| | ... | transaction_scale=${transaction_scale}
+| | ... | transaction_type=${transaction_type}
+| | ... | use_latency=${use_latency}
| | Check NDRPDR interval validity | ${result.pdr_interval}
-| | ... | ${packet_loss_ratio}
+| | ... | ${0.0}
| | Return From Keyword | ${result.pdr_interval.measured_low.target_tr}
-| Find critical load using PLRsearch
-| | [Documentation]
-| | ... | Find boundaries for troughput (of given target loss ratio)
-| | ... | using PLRsearch algorithm.
-| | ... | Display results as formatted test message.
-| | ... | Fail if computed lower bound 110% of the minimal rate or less.
-| | ... | Input rates are understood as uni-directional,
-| | ... | reported result contains aggregate rates.
-| | ... | Currently, the min_rate value is hardcoded to match test teardowns.
-| |
-| | ... | *Test (or broader scope) variables read:*
-| | ... | - traffic_profile - Name of module defining traffc for measurements.
-| | ... | Type: string
-| | ... | - frame_size - L2 Frame Size [B] or IMIX string. Type: integer or
-| | ... | string
-| | ... | - max_rate - Calculated unidirectional maximal transmit rate [pps].
-| | ... | Type: float
-| |
-| | ... | *Arguments:*
-| | ... | - packet_loss_ratio - Accepted loss during search. Type: float
-| | ... | - timeout - Stop when search duration is longer [s]. Type: float
-| | ... | - traffic_directions - Bi- (2) or uni- (1) directional traffic.
-| | ... | Type: integer
-| | ... | - latency - True to enable latency measurement; default value: False.
-| | ... | Type: boolean
-| |
-| | ... | *Example:*
-| |
-| | ... | \| Find critical load using PLR search \| \${1e-7} \| \${120} \
-| | ... | \| \${2} \|
-| |
-| | [Arguments] | ${packet_loss_ratio}=${1e-7} | ${timeout}=${1800.0}
-| | ... | ${traffic_directions}=${2} | ${latency}=${False}
-| |
-| | ${min_rate} = | Set Variable | ${10000}
-| | ${average} | ${stdev} = | Perform soak search | ${frame_size}
-| | ... | ${traffic_profile} | ${min_rate} | ${max_rate}
-| | ... | ${packet_loss_ratio} | timeout=${timeout}
-| | ... | traffic_directions=${traffic_directions} | latency=${latency}
-| | ${lower} | ${upper} = | Display result of soak search
-| | ... | ${average} | ${stdev}
-| | Should Not Be True | 1.1 * ${traffic_directions} * ${min_rate} > ${lower}
-| | ... | Lower bound ${lower} too small for unidirectional minimum ${min_rate}.
-
-| Display single bound
-| | [Documentation]
-| | ... | Display one bound of NDR+PDR search,
-| | ... | in packet per seconds (total and per stream)
-| | ... | and Gbps total bandwidth (for initial packet size).
-| | ... | Througput is calculated as:
-| | ... | Sum of measured rates over streams
-| | ... | Bandwidth is calculated as:
-| | ... | (Throughput * (L2 Frame Size + IPG) * 8)
-| | ... | The given result should contain latency data as well.
-| |
-| | ... | *Arguments:*
-| | ... | - text - Flavor text describing which bound is this. Type: string
-| | ... | - rate_total - Total (not per stream) measured Tr [pps]. Type: float
-| | ... | - frame_size - L2 Frame Size [B]. Type: integer
-| | ... | - latency - Latency data to display if non-empty. Type: string
-| |
-| | ... | *Example:*
-| |
-| | ... | \| Display single bound \| NDR lower bound \| \${12345.67} \
-| | ... | \| \${64} \| latency=\${EMPTY} \|
-| |
-| | [Arguments] | ${text} | ${rate_total} | ${frame_size} | ${latency}=${EMPTY}
-| |
-| | ${bandwidth_total} = | Evaluate | ${rate_total} * (${frame_size}+20)*8 / 1e9
-| | Set Test Message | ${\n}${text}: ${rate_total} pps, | append=yes
-| | Set Test Message | ${bandwidth_total} Gbps (initial) | append=yes
-| | Return From Keyword If | not """${latency}"""
-| | Set Test Message | ${\n}LATENCY [min/avg/max/hdrh] per stream: ${latency}
-| | ... | append=yes
-
-| Display Reconfig Test Message
-| | [Documentation]
-| | ... | Display the number of packets lost (bidirectionally)
-| | ... | due to reconfiguration under traffic.
-| |
-| | ... | *Arguments:*
-| | ... | - result - Result of bidirectional measurtement.
-| | ... | Type: ReceiveRateMeasurement
-| |
-| | ... | *Example:*
-| |
-| | ... | \| Display Reconfig Test Message \| \${result} \|
-| |
-| | [Arguments] | ${result}
-| |
-| | Set Test Message | Packets lost due to reconfig: ${result.loss_count}
-| | ${time_lost} = | Evaluate | ${result.loss_count} / ${result.target_tr}
-| | Set Test Message | ${\n}Implied time lost: ${time_lost} | append=yes
-
-| Display result of NDRPDR search
-| | [Documentation]
-| | ... | Display result of NDR+PDR search, both quantities, both bounds,
-| | ... | aggregate in packet per seconds
-| | ... | and Gbps total bandwidth (for initial packet size).
-| | ... | Througput is calculated as:
-| | ... | Sum of measured rate over streams
-| | ... | Bandwidth is calculated as:
-| | ... | (Throughput * (L2 Frame Size + IPG) * 8)
-| | ... | The given result should contain latency data as well.
-| |
-| | ... | *Test (or broader scope) variables read:*
-| | ... | - frame_size - L2 Frame Size [B] or IMIX string. Type: integer or
-| | ... | string
-| | ... | *Arguments:*
-| | ... | - result - Measured result data per stream [pps]. Type: NdrPdrResult
-| |
-| | ... | *Example:*
-| |
-| | ... | \| Display result of NDRPDR search \| \${result} \|
-| |
-| | [Arguments] | ${result}
-| |
-| | ${frame_size} = | Get Average Frame Size | ${frame_size}
-| | Display single bound | NDR_LOWER
-| | ... | ${result.ndr_interval.measured_low.target_tr} | ${frame_size}
-| | ... | ${result.ndr_interval.measured_low.latency}
-| | Display single bound | NDR_UPPER
-| | ... | ${result.ndr_interval.measured_high.target_tr} | ${frame_size}
-| | Display single bound | PDR_LOWER
-| | ... | ${result.pdr_interval.measured_low.target_tr} | ${frame_size}
-| | ... | ${result.pdr_interval.measured_low.latency}
-| | Display single bound | PDR_UPPER
-| | ... | ${result.pdr_interval.measured_high.target_tr} | ${frame_size}
-
-| Display result of soak search
-| | [Documentation]
-| | ... | Display result of soak search, avg+-stdev, as upper/lower bounds,
-| | ... | in aggregate packets per seconds
-| | ... | and Gbps total bandwidth (for initial packet size).
-| | ... | Througput is calculated as:
-| | ... | Sum of measured rates over streams
-| | ... | Bandwidth is calculated as:
-| | ... | (Throughput * (L2 Frame Size + IPG) * 8)
-| |
-| | ... | *Test (or broader scope) variables read:*
-| | ... | - frame_size - L2 Frame Size [B] or IMIX string. Type: integer or
-| | ... | string
-| | ... | *Arguments:*
-| | ... | - avg - Estimated average critical load [pps]. Type: float
-| | ... | - stdev - Standard deviation of critical load [pps]. Type: float
-| |
-| | ... | *Returns:*
-| | ... | - Lower and upper bound of critical load [pps]. Type: 2-tuple of float
-| |
-| | ... | *Example:*
-| |
-| | ... | \| Display result of soak search \| \${100000} \| \${100} \|
-| |
-| | [Arguments] | ${avg} | ${stdev}
-| |
-| | ${frame_size} = | Get Average Frame Size | ${frame_size}
-| | ${avg} = | Convert To Number | ${avg}
-| | ${stdev} = | Convert To Number | ${stdev}
-| | ${lower} = | Evaluate | ${avg} - ${stdev}
-| | ${upper} = | Evaluate | ${avg} + ${stdev}
-| | Display single bound | PLRsearch lower bound | ${lower} | ${frame_size}
-| | Display single bound | PLRsearch upper bound | ${upper} | ${frame_size}
-| | Return From Keyword | ${lower} | ${upper}
-
-| Check NDRPDR interval validity
+| Measure and show latency at specified rate
| | [Documentation]
-| | ... | Extract loss ratio of lower bound of the interval.
-| | ... | Fail if it does not reach the allowed value.
+| | ... | Send traffic at specified rate, single trial.
+| | ... | Extract latency information and append it to text message.
+| | ... | The rate argument is int, so should not include "pps".
+| | ... | If the given rate is too low, a safe value is used instead.
+| | ... | Call \${resetter} (if defined) to reset DUT state before each trial.
| |
| | ... | *Arguments:*
-| | ... | - interval - Measured interval. Type: ReceiveRateInterval
-| | ... | - packet_loss_ratio - Accepted loss (0.0 for NDR). Type: float
+| | ... | - message_prefix - Preface to test message addition. Type: string
+| | ... | - rate - Rate [tps] for sending packets.
+| | ... | Type: float
| |
| | ... | *Example:*
| |
-| | ... | \| Check NDRPDR interval validity \| \${result.pdr_interval} \
-| | ... | \| \${0.005} \|
-| |
-| | [Arguments] | ${interval} | ${packet_loss_ratio}=${0.0}
-| |
-| | ${lower_bound} = | Set Variable | ${interval.measured_low}
-| | ${lower_bound_lf} = | Set Variable | ${lower_bound.loss_fraction}
-| | Return From Keyword If | ${lower_bound_lf} <= ${packet_loss_ratio}
-| | ${message}= | Catenate | SEPARATOR=${SPACE}
-| | ... | Minimal rate loss fraction ${lower_bound_lf}
-| | ... | does not reach target ${packet_loss_ratio}.
-| | ${message_zero} = | Set Variable | Zero packets forwarded!
-| | ${message_other} = | Set Variable | ${lower_bound.loss_count} packets lost.
-| | ${message} = | Set Variable If | ${lower_bound_lf} >= 1.0
-| | ... | ${message}${\n}${message_zero} | ${message}${\n}${message_other}
-| | Fail | ${message}
+| | ... | \| Measure and show latency at specified rate \| Latency at 90% NDR \
+| | ... | \| ${10000000} \|
+| |
+| | [Arguments] | ${message_prefix} | ${rate}
+| |
+| | ${min_rate} = | Get Min Rate
+| | ${ppta} = | Get Packets Per Transaction Aggregated
+| | ${real_rate} = | Evaluate | max(${rate}, ${min_rate})
+| | ${traffic_directions} = | Get Traffic Directions
+| | ${transaction_duration} = | Get Transaction Duration
+| | ${transaction_scale} = | Get Transaction Scale
+| | ${transaction_type} = | Get Transaction Type
+| | Call Resetter
+| | Send traffic on tg
+| | ... | duration=${PERF_TRIAL_LATENCY_DURATION}
+| | ... | rate=${real_rate}
+| | ... | frame_size=${frame_size}
+| | ... | traffic_profile=${traffic_profile}
+| | ... | async_call=${False}
+| | ... | duration_limit=${PERF_TRIAL_LATENCY_DURATION}
+| | ... | ppta=${ppta}
+| | ... | traffic_directions=${traffic_directions}
+| | ... | transaction_duration=${transaction_duration}
+| | ... | transaction_scale=${transaction_scale}
+| | ... | transaction_type=${transaction_type}
+| | ... | use_latency=${True}
+| | ${latency} = | Get Latency Int
+| | Set Test Message | ${\n}${message_prefix} ${latency} | append=${True}
-| Traffic should pass with maximum rate
+| Send ramp-up traffic
| | [Documentation]
-| | ... | Send traffic at maximum rate.
+| | ... | Do nothing unless positive ramp-up duration is specified.
+| | ... | Else perform one trial with appropriate rate and duration.
+| | ... | This is useful for tests that set DUT state via traffic.
+| | ... | Rate has to bee low enough so packets are not lost,
+| | ... | Duration has to be long enough to set all the state.
+| | ... | The trial results are discarded.
| |
| | ... | *Test (or broader scope) variables read:*
| | ... | - traffic_profile - Name of module defining traffic for measurements.
| | ... | Type: string
| | ... | - frame_size - L2 Frame Size [B] or IMIX string. Type: integer or
| | ... | string
-| | ... | - max_rate - Calculated unidirectional maximal transmit rate [pps].
+| | ... | - ramp_up_duration - Suitable traffic duration [s].
| | ... | Type: float
-| |
-| | ... | *Arguments:*
-| | ... | - trial_duration - Duration of single trial [s]. Type: float
-| | ... | - fail_no_traffic - Whether to fail on zero receive count;
-| | ... | default value: True. Type: boolean
-| | ... | - trial_multiplicity - How many trials in this measurement.
-| | ... | Type: integer
-| | ... | - traffic_directions - Bi- (2) or uni- (1) directional traffic;
-| | ... | default value: 2. Type: integer
-| | ... | - tx_port - TX port of TG; default value: 0. Type: integer
-| | ... | - rx_port - RX port of TG; default value: 1. Type: integer
-| | ... | - latency - True to enable latency measurement; default value: False.
-| | ... | Type: boolean
+| | ... | - ramp_up_rate - Suitable transmit rate [tps].
+| | ... | Type: float
+| | ... | - transaction_type - String identifier to determine how to count
+| | ... | transactions. Default is "packet".
| |
| | ... | *Example:*
| |
-| | ... | \| Traffic should pass with maximum rate \| \${1} \| \${False} \
-| | ... | \| \${10.0} \| \${2} \| \${0} \| \${1} \| \${True} \|
-| |
-| | [Arguments] | ${trial_duration}=${trial_duration}
-| | ... | ${fail_no_traffic}=${True}
-| | ... | ${trial_multiplicity}=${trial_multiplicity}
-| | ... | ${traffic_directions}=${2} | ${tx_port}=${0} | ${rx_port}=${1}
-| | ... | ${latency}=${False}
-| |
-| | ${results}= | Send traffic at specified rate
-| | ... | ${trial_duration} | ${max_rate} | ${frame_size}
-| | ... | ${traffic_profile} | ${trial_multiplicity}
-| | ... | ${traffic_directions} | ${tx_port} | ${rx_port} | latency=${latency}
-| | Set Test Message | ${\n}Maximum Receive Rate trial results
-| | Set Test Message | in packets per second: ${results}
-| | ... | append=yes
-| | Run Keyword If | ${fail_no_traffic} | Fail if no traffic forwarded
+| | ... | \| Send ramp-up traffic \|
+| |
+| | ${ramp_up_duration} = | Get Ramp Up Duration
+| | Run Keyword Unless | ${ramp_up_duration} > 0.0 | Return From Keyword
+| | ${ramp_up_rate} = | Get Ramp Up Rate
+| | ${ppta} = | Get Packets Per Transaction Aggregated
+| | ${traffic_directions} = | Get Traffic Directions
+| | ${transaction_duration} = | Get Transaction Duration
+| | ${transaction_scale} = | Get Transaction Scale
+| | ${transaction_type} = | Get Transaction Type
+| | ${use_latency} = | Get Use Latency
+| | Send traffic on tg
+| | ... | duration=${ramp_up_duration}
+| | ... | rate=${ramp_up_rate}
+| | ... | frame_size=${frame_size}
+| | ... | traffic_profile=${traffic_profile}
+| | ... | async_call=${False}
+| | ... | duration_limit=${0.0}
+| | ... | ppta=${ppta}
+| | ... | use_latency=${use_latency}
+| | ... | traffic_directions=${traffic_directions}
+| | ... | transaction_duration=${transaction_duration}
+| | ... | transaction_scale=${transaction_scale}
+| | ... | transaction_type=${transaction_type}
| Send traffic at specified rate
| | [Documentation]
@@ -428,178 +385,62 @@
| | ... | Then send traffic at specified rate, possibly multiple trials.
| | ... | Show various DUT stats, optionally also packet trace.
| | ... | Return list of measured receive rates.
+| | ... | Call \${resetter} (if defined) to reset DUT state before each trial.
| |
| | ... | *Arguments:*
| | ... | - trial_duration - Duration of single trial [s]. Type: float
-| | ... | - rate - Target aggregate transmit rate [pps] / Connections per second
-| | ... | (CPS) for UDP/TCP flows. Type: float
-| | ... | - frame_size - L2 Frame Size [B]. Type: integer or string
-| | ... | - traffic_profile - Name of module defining traffc for measurements.
+| | ... | - rate - Target transmit rate [tps]. Type: float
| | ... | Type: string
| | ... | - trial_multiplicity - How many trials in this measurement.
-| | ... | Type: integer
-| | ... | - traffic_directions - Bi- (2) or uni- (1) directional traffic.
-| | ... | Type: integer
-| | ... | - tx_port - TX port of TG; default value: 0. Type: integer
-| | ... | - rx_port - RX port of TG; default value: 1. Type: integer
-| | ... | - extended_debug - True to enable extended debug.
| | ... | Type: boolean
-| | ... | - latency - True to enable latency measurement; default value: False.
+| | ... | - use_latency - Use latency stream in search; default value: False.
| | ... | Type: boolean
+| | ... | - duration_limit - Hard limit for trial duration, overriding duration
+| | ... | computed from transaction_scale. Default 0.0 means no limit.
| |
| | ... | *Example:*
| |
| | ... | \| Send traffic at specified rate \| \${1.0} \| ${4000000.0} \
-| | ... | \| \${64} \| 3-node-IPv4 \| \${10} \| \${2} \| \${0} \| \${1} \
-| | ... | \| ${False} \| ${True} \|
+| | ... | \| \${10} \| ${False} \| ${1.0} \|
| |
-| | [Arguments] | ${trial_duration} | ${rate} | ${frame_size}
-| | ... | ${traffic_profile} | ${trial_multiplicity}=${trial_multiplicity}
-| | ... | ${traffic_directions}=${2} | ${tx_port}=${0} | ${rx_port}=${1}
-| | ... | ${extended_debug}=${extended_debug} | ${latency}=${False}
-| |
-| | Set Test Variable | ${extended_debug}
-| | # Following setting of test variables is needed for some pre_stats actions.
-| | Set Test Variable | ${rate}
-| | Set Test Variable | ${traffic_directions}
-| | Set Test Variable | ${tx_port}
-| | Set Test Variable | ${rx_port}
+| | [Arguments] | ${trial_duration} | ${rate} | ${trial_multiplicity}
+| | ... | ${use_latency}=${False} | ${duration_limit}=${0.0}
| |
+| | ${ppta} = | Get Packets Per Transaction Aggregated
+| | ${traffic_directions} = | Get Traffic Directions
+| | ${transaction_duration} = | Get Transaction Duration
+| | ${transaction_scale} = | Get Transaction Scale
+| | ${transaction_type} = | Get Transaction Type
+| | Set Test Variable | \${rate_for_teardown} | ${rate}
| | FOR | ${action} | IN | @{pre_stats}
| | | Run Keyword | Additional Statistics Action For ${action}
| | END
| | ${results} = | Create List
| | FOR | ${i} | IN RANGE | ${trial_multiplicity}
-| | | # The following line is skipping some default arguments,
-| | | # that is why subsequent arguments have to be named.
+| | | Call Resetter
| | | Send traffic on tg
-| | | ... | ${trial_duration} | ${rate} | ${frame_size} | ${traffic_profile}
-| | | ... | warmup_time=${0} | traffic_directions=${traffic_directions}
-| | | ... | tx_port=${tx_port} | rx_port=${rx_port} | latency=${latency}
-| | | ${rx} = | Get Received
-| | | ${rr} = | Evaluate | ${rx} / ${trial_duration}
-| | | Append To List | ${results} | ${rr}
+| | | ... | duration=${trial_duration}
+| | | ... | rate=${rate}
+| | | ... | frame_size=${frame_size}
+| | | ... | traffic_profile=${traffic_profile}
+| | | ... | async_call=${False}
+| | | ... | duration_limit=${duration_limit}
+| | | ... | ppta=${ppta}
+| | | ... | traffic_directions=${traffic_directions}
+| | | ... | transaction_duration=${transaction_duration}
+| | | ... | transaction_scale=${transaction_scale}
+| | | ... | transaction_type=${transaction_type}
+| | | ... | use_latency=${use_latency}
+| | | ${result}= | Get Measurement Result
+| | | # Out of several quantities for aborted traffic (duration stretching),
+| | | # the approximated receive rate is the best estimate we have.
+| | | Append To List | ${results} | ${result.approximated_receive_rate}
| | END
| | FOR | ${action} | IN | @{post_stats}
| | | Run Keyword | Additional Statistics Action For ${action}
| | END
| | Return From Keyword | ${results}
-| Measure and show latency at specified rate
-| | [Documentation]
-| | ... | Send traffic at specified rate, single trial.
-| | ... | Extract latency information and append it to text message.
-| | ... | The rate argument is int, so should not include "pps".
-| | ... | If the given rate is too low, a safe value is used instead.
-| |
-| | ... | *Arguments:*
-| | ... | - message_prefix - Preface to test message addition. Type: string
-| | ... | - trial_duration - Duration of single trial [s]. Type: float
-| | ... | - rate - Rate [pps] for sending packets in case of T-Rex stateless
-| | ... | mode or multiplier of profile CPS in case of T-Rex astf mode.
-| | ... | Type: float
-| | ... | - frame_size - L2 Frame Size [B]. Type: integer or string
-| | ... | - traffic_profile - Name of module defining traffic for measurements.
-| | ... | Type: string
-| | ... | - traffic_directions - Bi- (2) or uni- (1) directional traffic.
-| | ... | Type: integer
-| | ... | - tx_port - TX port of TG; default value: 0. Type: integer
-| | ... | - rx_port - RX port of TG; default value: 1. Type: integer
-| | ... | - safe_rate - To apply if rate is below this, as latency pps is fixed.
-| | ... | In pps. Type: integer.
-| |
-| | ... | *Example:*
-| |
-| | ... | \| Measure and show latency at specified rate \| Latency at 90% NDR \
-| | ... | \| \${1.0} \| ${10000000} \| \${64} \| 3-node-IPv4 \| \${2} \
-| | ... | \| \${0} \| \${1} \| ${9500} \|
-| |
-| | [Arguments] | ${message_prefix} | ${trial_duration} | ${rate}
-| | ... | ${frame_size} | ${traffic_profile} | ${traffic_directions}=${2}
-| | ... | ${tx_port}=${0} | ${rx_port}=${1} | ${safe_rate}=${9001}
-| |
-| | ${real_rate} = | Evaluate | max(${rate}, ${safe_rate})
-| | # The following line is skipping some default arguments,
-| | # that is why subsequent arguments have to be named.
-| | Send traffic on tg | ${trial_duration} | ${real_rate} | ${frame_size}
-| | ... | ${traffic_profile} | warmup_time=${0}
-| | ... | traffic_directions=${traffic_directions} | tx_port=${tx_port}
-| | ... | rx_port=${rx_port} | latency=${True}
-| | ${latency} = | Get Latency Int
-| | Set Test Message | ${\n}${message_prefix} ${latency} | append=${True}
-
-| Clear and show runtime counters with running traffic
-| | [Documentation]
-| | ... | Start traffic at specified rate then clear runtime counters on all
-| | ... | DUTs. Wait for specified amount of time and capture runtime counters
-| | ... | on all DUTs. Finally stop traffic
-| |
-| | ... | *Arguments:*
-| | ... | - duration - Duration of traffic run [s]. Type: integer
-| | ... | - rate - Rate [pps] for sending packets in case of T-Rex stateless
-| | ... | mode or multiplier of profile CPS in case of T-Rex astf mode.
-| | ... | Type: float
-| | ... | - frame_size - L2 Frame Size [B] or IMIX_v4_1. Type: integer or string
-| | ... | - traffic_profile - Name of module defining traffc for measurements.
-| | ... | Type: string
-| | ... | - traffic_directions - Bi- (2) or uni- (1) directional traffic.
-| | ... | Type: integer
-| | ... | - tx_port - TX port of TG; default value: 0. Type: integer
-| | ... | - rx_port - RX port of TG, default value: 1. Type: integer
-| |
-| | ... | *Example:*
-| |
-| | ... | \| Clear and show runtime counters with running traffic \| \${10} \
-| | ... | \| ${4000000.0} \| \${64} \| 3-node-IPv4 \| \${2} \| \${0} \| \${1} \|
-| |
-| | [Arguments] | ${duration} | ${rate} | ${frame_size} | ${traffic_profile}
-| | ... | ${traffic_directions}=${2} | ${tx_port}=${0} | ${rx_port}=${1}
-| |
-| | # Duration of -1 means we will stop traffic manually.
-| | Send traffic on tg | ${-1} | ${rate} | ${frame_size} | ${traffic_profile}
-| | ... | warmup_time=${0} | async_call=${True} | latency=${False}
-| | ... | traffic_directions=${traffic_directions} | tx_port=${tx_port}
-| | ... | rx_port=${rx_port}
-| | FOR | ${action} | IN | @{pre_run_stats}
-| | | Run Keyword | Additional Statistics Action For ${action}
-| | END
-| | Sleep | ${duration}
-| | FOR | ${action} | IN | @{post_run_stats}
-| | | Run Keyword | Additional Statistics Action For ${action}
-| | END
-| | Stop traffic on tg
-
-| Send ramp-up traffic
-| | [Documentation]
-| | ... | Start ramp-up traffic at specified rate for defined duration.
-| |
-| | ... | *Arguments:*
-| | ... | - duration - Duration of traffic run [s]. Type: integer
-| | ... | - rate - Rate [pps] for sending packets in case of T-Rex stateless
-| | ... | mode or multiplier of profile CPS in case of T-Rex astf mode.
-| | ... | Type: float
-| | ... | - frame_size - L2 Frame Size [B] or IMIX_v4_1. Type: integer or string
-| | ... | - traffic_profile - Name of module defining traffc for measurements.
-| | ... | Type: string
-| | ... | - traffic_directions - Bi- (2) or uni- (1) directional traffic.
-| | ... | Type: integer
-| | ... | - tx_port - TX port of TG; default value: 0. Type: integer
-| | ... | - rx_port - RX port of TG, default value: 1. Type: integer
-| |
-| | ... | *Example:*
-| |
-| | ... | \| Send ramp-up traffic \| \${10} \| ${400000.0} \| ${64} \
-| | ... | \| ${2} \| ${0} \| ${1} \|
-| |
-| | [Arguments] | ${duration}=${ramp_up_duration} | ${rate}=${ramp_up_rate}
-| | ... | ${frame_size}=${frame_size} | ${traffic_profile}=${traffic_profile}
-| | ... | ${traffic_directions}=${2} | ${tx_port}=${0} | ${rx_port}=${1}
-| |
-| | Send traffic on tg
-| | ... | ${duration} | ${rate} | ${frame_size} | ${traffic_profile}
-| | ... | warmup_time=${0} | traffic_directions=${traffic_directions}
-| | ... | tx_port=${tx_port} | rx_port=${rx_port} | latency=${False}
-
| Start Traffic on Background
| | [Documentation]
| | ... | Start traffic at specified rate then return control to Robot.
@@ -612,27 +453,36 @@
| | ... | - frame_size - L2 Frame Size [B] or IMIX string. Type: integer or
| | ... | string
| | ... | *Arguments:*
-| | ... | - rate - Rate [pps] for sending packets in case of T-Rex stateless
-| | ... | mode or multiplier of profile CPS in case of T-Rex astf mode.
+| | ... | - rate - Rate [tps] for sending packets.
| | ... | Type: float
-| | ... | - traffic_directions - Bi- (2) or uni- (1) directional traffic.
-| | ... | Type: integer
-| | ... | - tx_port - TX port of TG; default value: 0. Type: integer
-| | ... | - rx_port - RX port of TG; default value: 1. Type: integer
| |
| | ... | *Example:*
| |
-| | ... | \| Start Traffic on Background \| ${4000000.0} \| \${2} \| \${0} \
-| | ... | \| \${1} \|
+| | ... | \| Start Traffic on Background \| ${4000000.0} \|
| |
-| | [Arguments] | ${rate} | ${traffic_directions}=${2} | ${tx_port}=${0}
-| | ... | ${rx_port}=${1}
+| | [Arguments] | ${rate}
| |
+| | ${ppta} = | Get Packets Per Transaction Aggregated
+| | ${traffic_directions} = | Get Traffic Directions
+| | ${transaction_duration} = | Get Transaction Duration
+| | ${transaction_scale} = | Get Transaction Scale
+| | ${transaction_type} = | Get Transaction Type
+| | ${use_latency} = | Get Use Latency
+| | Call Resetter
| | # Duration of -1 means we will stop traffic manually.
-| | Send traffic on tg | ${-1} | ${rate} | ${frame_size} | ${traffic_profile}
-| | ... | warmup_time=${0} | async_call=${True} | latency=${False}
-| | ... | traffic_directions=${traffic_directions} | tx_port=${tx_port}
-| | ... | rx_port=${rx_port}
+| | Send traffic on tg
+| | ... | duration=${-1}
+| | ... | rate=${rate}
+| | ... | frame_size=${frame_size}
+| | ... | traffic_profile=${traffic_profile}
+| | ... | async_call=${True}
+| | ... | duration_limit=${0.0}
+| | ... | ppta=${ppta}
+| | ... | traffic_directions=${traffic_directions}
+| | ... | transaction_duration=${transaction_duration}
+| | ... | transaction_scale=${transaction_scale}
+| | ... | transaction_type=${transaction_type}
+| | ... | use_latency=${use_latency}
| Stop Running Traffic
| | [Documentation]
@@ -649,75 +499,41 @@
| | ${result}= | Stop traffic on tg
| | Return From Keyword | ${result}
-| Additional Statistics Action For vpp-clear-stats
-| | [Documentation]
-| | ... | Additional Statistics Action for clear VPP statistics.
-| |
-| | Clear Statistics On All DUTs | ${nodes}
-
-| Additional Statistics Action For vpp-show-stats
-| | [Documentation]
-| | ... | Additional Statistics Action for show VPP statistics.
-| |
-| | Show Statistics On All DUTs | ${nodes}
-
-| Additional Statistics Action For vpp-clear-runtime
-| | [Documentation]
-| | ... | Additional Statistics Action for clear VPP runtime.
-| |
-| | VPP Clear Runtime On All DUTs | ${nodes}
-
-| Additional Statistics Action For vpp-show-runtime
-| | [Documentation]
-| | ... | Additional Statistics Action for show VPP runtime.
-| |
-| | VPP Show Runtime On All DUTs | ${nodes}
-
-| Additional Statistics Action For vpp-enable-packettrace
-| | [Documentation]
-| | ... | Additional Statistics Action for enable VPP packet trace.
-| |
-| | Run Keyword If | ${extended_debug}==${True}
-| | ... | VPP Enable Traces On All DUTs | ${nodes} | fail_on_error=${False}
-
-| Additional Statistics Action For vpp-show-packettrace
-| | [Documentation]
-| | ... | Additional Statistics Action for show VPP packet trace.
-| |
-| | Run Keyword If | ${extended_debug}==${True}
-| | ... | Show Packet Trace On All Duts | ${nodes} | maximum=${100}
-
-| Additional Statistics Action For vpp-enable-elog
-| | [Documentation]
-| | ... | Additional Statistics Action for enable VPP elog trace.
-| |
-| | VPP Enable Elog Traces On All DUTs | ${nodes}
-
-| Additional Statistics Action For vpp-show-elog
-| | [Documentation]
-| | ... | Additional Statistics Action for show VPP elog trace.
-| |
-| | Show Event Logger On All DUTs | ${nodes}
-
-| Additional Statistics Action For bash-perf-stat
+| Traffic should pass with maximum rate
| | [Documentation]
-| | ... | Additional Statistics Action for bash command "perf stat".
+| | ... | Send traffic at maximum rate.
+| | ... | Call \${resetter} (if defined) to reset DUT state before each trial.
+| | ... | Fail if no packets were forwarded.
| |
-| | Run Keyword If | ${extended_debug}==${True}
-| | ... | Perf Stat On All DUTs | ${nodes} | cpu_list=${cpu_alloc_str}
-
-| Additional Statistics Action For clear-show-runtime-with-traffic
-| | [Documentation]
-| | ... | Additional Statistics Action for clear and show runtime counters with
-| | ... | running traffic.
+| | ... | *Test (or broader scope) variables read:*
+| | ... | - traffic_profile - Name of module defining traffic for measurements.
+| | ... | Type: string
+| | ... | - frame_size - L2 Frame Size [B] or IMIX string. Type: integer or
+| | ... | string
+| | ... | - max_rate - Calculated maximal transmit rate [tps].
+| | ... | Type: float
+| | ... | - transaction_type - String identifier to determine how to count
+| | ... | transactions. Default is "packet".
| |
-| | Clear and show runtime counters with running traffic
-| | ... | ${trial_duration} | ${rate}
-| | ... | ${frame_size} | ${traffic_profile} | ${traffic_directions}
-| | ... | ${tx_port} | ${rx_port}
-
-| Additional Statistics Action For noop
-| | [Documentation]
-| | ... | Additional Statistics Action for no operation.
+| | ... | *Example:*
| |
-| | No operation
+| | ... | \| Traffic should pass with maximum rate \|
+| |
+| | ${max_rate} = | Get Max Rate
+| | ${transaction_type} = | Get Transaction Type
+| | ${trial_duration} = | Get Mrr Trial Duration
+| | ${trial_multiplicity} = | Get Mrr Trial Multiplicity
+| | ${use_latency} = | Get Use Latency
+| | # The following also sets \${rate_for_teardown}
+| | ${results} = | Send traffic at specified rate
+| | ... | rate=${max_rate}
+| | ... | trial_duration=${trial_duration}
+| | ... | trial_multiplicity=${trial_multiplicity}
+| | ... | use_latency=${use_latency}
+| | ... | duration_limit=${0.0}
+| | ${unit} = | Set Variable If | """_cps""" in """${transaction_type}"""
+| | ... | estimated connections per second | packets per second
+| | Set Test Message | ${\n}Maximum Receive Rate trial results
+| | Set Test Message | in ${unit}: ${results}
+| | ... | append=yes
+| | Fail if no traffic forwarded
diff --git a/resources/libraries/robot/performance/performance_vars.robot b/resources/libraries/robot/performance/performance_vars.robot
new file mode 100644
index 0000000000..130237ed82
--- /dev/null
+++ b/resources/libraries/robot/performance/performance_vars.robot
@@ -0,0 +1,522 @@
+# 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 ***
+| Documentation | Performance suite keywords - Handling of various values
+| ... | to allow autodetection, computation and overriding by suite variables.
+| Library | Collections
+| Variables | ${CURDIR}/../../python/Constants.py
+
+*** Variables ***
+| ${extended_debug}= | ${EXTENDED_DEBUG}
+
+*** Keywords ***
+| Get Disable Latency
+| | [Documentation]
+| | ... | If Get Use Latency returns true, return false.
+| | ... | Otherwise return value of \${disable_latency} variable,
+| | ... | or \${False} if not defined.
+| |
+| | ... | The return value controls whether latency trials in NDRPDR tests
+| | ... | are executed. For example, ASTF tests do not support latency
+| | ... | measurements yet, so executing the trials just wastes time.
+| | ... | Return type: bool.
+| |
+| | ... | *Example:*
+| |
+| | ... | \| \${disable_latency} = \| Get Disable Latency \|
+| |
+| | ${use_latency} = | Get Use Latency
+| | Return From Keyword If | ${use_latency} | ${False}
+| | ${disable_latency} = | Get Variable Value | \${disable_latency} | ${False}
+| | Return From Keyword | ${disable_latency}
+
+| Get Max Rate
+| | [Documentation]
+| | ... | Return value of \${max_rate} variable,
+| | ... | fail if it is not defined.
+| | ... | Call this just before calling a Python keyword,
+| | ... | as those have restricted access to Robot variables.
+| |
+| | ... | The return value controls the maximal unidirectional packet rate.
+| | ... | The value is also usable for minimal TPS value for ASTF tests.
+| | ... | Return type: float.
+| |
+| | ... | *Example:*
+| |
+| | ... | \| \${max_rate} = \| Get Max Rate \|
+| |
+| | ${max_rate} = | Get Variable Value | \${max_rate} | ${0.0}
+| | Return From Keyword If | ${max_rate} | ${max_rate}
+| | Fail | \${max_rate} is not defined. Call Set Max Rate And Jumbo keyword.
+
+| Get Min Rate
+| | [Documentation]
+| | ... | Return a hardcoded value. This is an abstraction, useful in case
+| | ... | we start allowing various other overrides or computations.
+| | ... | Call this just before calling a Python keyword,
+| | ... | as those have restricted access to Robot variables.
+| |
+| | ... | The return value controls the minimal unidirectional packet rate.
+| | ... | The value is also usable for minimal TPS value for ASTF tests.
+| | ... | The current value is the smallest one permitted
+| | ... | by STL profiles with latency streams.
+| | ... | Return type: float.
+| |
+| | ... | *Example:*
+| |
+| | ... | \| \${min_rate} = \| Get Min Rate \|
+| |
+| | Return From Keyword | ${9001.0}
+
+| Get Mrr Trial Duration
+| | [Documentation]
+| | ... | Return value from Constants. This is an abstraction, useful in case
+| | ... | we start allowing various other overrides or computations.
+| | ... | Call this just before calling a Python keyword,
+| | ... | as those have restricted access to Robot variables.
+| |
+| | ... | The return value controls the duration of main trial measurement
+| | ... | for MRR type tests.
+| | ... | Return type: float.
+| |
+| | ... | *Example:*
+| |
+| | ... | \| \${mrr_trial_duration} = \| Get Mrr Trial Duration \|
+| |
+| | Return From Keyword | ${PERF_TRIAL_DURATION}
+
+| Get Mrr Trial Multiplicity
+| | [Documentation]
+| | ... | Return value from Constants. This is an abstraction, useful in case
+| | ... | we start allowing various other overrides or computations.
+| | ... | Call this just before calling a Python keyword,
+| | ... | as those have restricted access to Robot variables.
+| |
+| | ... | The return value controls the number of main trial measurement
+| | ... | for (B)MRR type tests.
+| | ... | Return type: integer.
+| |
+| | ... | *Example:*
+| |
+| | ... | \| \${mrr_trial_multiplicity} = \| Get Mrr Trial Multiplicity \|
+| |
+| | Return From Keyword | ${PERF_TRIAL_MULTIPLICITY}
+
+| Get Packet Loss Ratio
+| | [Documentation]
+| | ... | Return a hardcoded value. This is an abstraction, useful in case
+| | ... | we start allowing various other overrides or computations.
+| | ... | Call this just before calling a Python keyword,
+| | ... | as those have restricted access to Robot variables.
+| |
+| | ... | The return value controls the default packet loss ration for PDR
+| | ... | in NDRPDR tests. Some other usages of MLRsearch (e.g. reconf tests)
+| | ... | may use a different value.
+| | ... | Return type: float.
+| |
+| | ... | *Example:*
+| |
+| | ... | \| \${packet_loss_ratio} = \| Get Packet Loss Ratio \|
+| |
+| | Return From Keyword | ${0.005}
+
+| Get Packets Per Transaction Aggregated
+| | [Documentation]
+| | ... | Return value of \${packets_per_transaction_aggregated};
+| | ... | if not defined, assume traffic is symmetric and compute
+| | ... | from unidirectional values.
+| |
+| | ... | The return value is used when reporting PPS values from TPS found
+| | ... | by some search (e.g. NDRPDR).
+| | ... | Return type: integer.
+| |
+| | ... | *Example:*
+| |
+| | ... | \| \${ppta} = \| Get Packets Per Transaction Aggregated \|
+| |
+| | ${ppta} = | Get Variable Value | \${packets_per_transaction_aggregated}
+| | ... | ${0}
+| | Return From Keyword If | "${ppta}" != "0" | ${ppta}
+| | # TODO: Insert TCP computation from packet size here.
+| | ${pptad} = | Get Packets Per Transaction And Direction
+| | ${traffic_directions} = | Get Traffic Directions
+| | # We do not support ASTF profiles with multiple transactions, yet.
+| | ${ppta} = | Evaluate | ${pptad} * ${traffic_directions}
+| | Return From Keyword | ${ppta}
+
+| Get Packets Per Transaction And Direction
+| | [Documentation]
+| | ... | Return value of \${packets_per_transaction_and_direction},
+| | ... | or ${1} if not defined.
+| |
+| | ... | The return value is used when computing max rate (TPS),
+| | ... | so for asymmetric transaction use the more numerous direction.
+| | ... | Return type: integer.
+| |
+| | ... | *Example:*
+| |
+| | ... | \| \${pptad} = \| Get Packets Per Transaction And Direction \|
+| |
+| | ${pptad} = | Get Variable Value | \${packets_per_transaction_and_direction}
+| | ... | ${1}
+| | Return From Keyword | ${pptad}
+
+| Get Ramp Up Duration
+| | [Documentation]
+| | ... | Return value of \${ramp_up_duration},
+| | ... | or ${0.0} if not defined.
+| |
+| | ... | The return value determines the required duration of ramp-up phase.
+| | ... | Typically used to prepare a specific state on DUT.
+| | ... | If the value is zero, ramp-up phase is skipped.
+| | ... | Return type: float.
+| |
+| | ... | *Example:*
+| |
+| | ... | \| \${ramp_up_duration} = \| Get Ramp Up Duration \|
+| |
+| | ${ramp_up_duration} = | Get Variable Value | \${ramp_up_duration} | ${0.0}
+| | Return From Keyword | ${ramp_up_duration}
+
+| Get Ramp Up Rate
+| | [Documentation]
+| | ... | Return value of \${ramp_up_rate},
+| | ... | if not defined return \${max_rate}.
+| |
+| | ... | The return value determines the rate for ramp-up phase.
+| | ... | Typically used to limit the rate when max rate
+| | ... | would lose packets in the ramp up phase, thus not setting
+| | ... | the DUT state correctly.
+| | ... | Return type: float.
+| |
+| | ... | *Example:*
+| |
+| | ... | \| \${ramp_up_rate} = \| Get Ramp Up Rate \|
+| |
+| | ${ramp_up_rate} = | Get Variable Value | \${ramp_up_rate} | ${0.0}
+| | Return From Keyword If | ${ramp_up_rate} | ${ramp_up_rate}
+| | Run Keyword And Return | Get Max Rate
+
+| Get Rate For Teardown
+| | [Documentation]
+| | ... | Return value of \${rate_for_teardown},
+| | ... | if not defined (or zero) return the min rate.
+| |
+| | ... | The return value determines the rate for teardown trial,
+| | ... | that is executed if a perf test fails.
+| | ... | The \${rate_for_teardown} is usually not defined in suite,
+| | ... | but search keywords set it in places where failure can occur,
+| | ... | so the trial is done at the rate interesting for the failure.
+| | ... | Return type: float.
+| |
+| | ... | *Example:*
+| |
+| | ... | \| \${rate_for_teardown} = \| Get Rate For Teardown \|
+| |
+| | ${rate_for_teardown} = | Get Variable Value | \${rate_for_teardown} | ${0.0}
+| | Return From Keyword If | ${rate_for_teardown} | ${rate_for_teardown}
+| | Run Keyword And Return | Get Min Rate
+
+| Get Resetter
+| | [Documentation]
+| | ... | Return value of \${resetter} variable,
+| | ... | or \${None} if not defined.
+| |
+| | ... | If not \${None}, the returned value is callable.
+| | ... | Its use is to reset DUT to initial conditions,
+| | ... | for example to remove NAT sessions created in the previous trial.
+| |
+| | ... | *Example:*
+| |
+| | ... | \| \${resetter} = \| Get Resetter \|
+| |
+| | ${resetter} = | Get Variable Value | \${resetter} | ${None}
+| | Return From Keyword | ${resetter}
+
+| Get Runtime Duration
+| | [Documentation]
+| | ... | Return value of \${runtime_duration} variable,
+| | ... | if not defined return ${1.0}.
+| |
+| | ... | The return value controls the duration of runtime trial,
+| | ... | which also acts as a warmup. Usually one second is enough,
+| | ... | but some suites need longer time to set up state on DUT.
+| | ... | Return type: float.
+| |
+| | ... | *Example:*
+| |
+| | ... | \| \${runtime_duration} = \| Get Runtime Duration \|
+| |
+| | ${runtime_duration} = | Get Variable Value | \${runtime_duration} | ${1.0}
+| | Return From Keyword | ${runtime_duration}
+
+| Get Runtime Rate
+| | [Documentation]
+| | ... | Return value of \${runtime_rate} variable,
+| | ... | if not defined return the max rate.
+| |
+| | ... | The return value controls the rate (TPS unidir) of runtime trial,
+| | ... | which also acts as a warmup. No plans to ever use a different rate,
+| | ... | but keywords look better if access to such values is uniform.
+| | ... | Return type: float.
+| |
+| | ... | *Example:*
+| |
+| | ... | \| \${runtime_rate} = \| Get Runtime Rate \|
+| |
+| | ${runtime_rate} = | Get Variable Value | \${runtime_rate} | ${0.0}
+| | Return From Keyword If | ${runtime_rate} | ${runtime_rate}
+| | Run Keyword And Return | Get Max Rate
+
+| Get Traffic Directions
+| | [Documentation]
+| | ... | Return value of \${traffic_directions},
+| | ... | or ${2} if not defined.
+| |
+| | ... | The return value used when parsing for measurement results.
+| | ... | This needs to be known already in profile driver,
+| | ... | as bidirectional parsing may fail on unidirectional traffic.
+| | ... | Return type: integer.
+| |
+| | ... | *Example:*
+| |
+| | ... | \| \${traffic_directions} = \| Get Traffic Directions \|
+| |
+| | ${traffic_directions} = | Get Variable Value | \${traffic_directions} | ${2}
+| | Return From Keyword | ${traffic_directions}
+
+| Get Transaction Duration
+| | [Documentation]
+| | ... | Return value of \${transaction_duration} variable,
+| | ... | or \${0.0} if not defined.
+| |
+| | ... | The return value is the expected duration of single (ASTF) transaction
+| | ... | if it is not negligible for overall trial duration computation.
+| | ... | Most tests use very short transactions (without explicit delays),
+| | ... | so the zero default works (and suite saves one line
+| | ... | of Variables table).
+| | ... | Return type: float.
+| |
+| | ... | *Example:*
+| |
+| | ... | \| \${transaction_duration} = \| Get Transaction Duration \|
+| |
+| | ${transaction_duration} = | Get Variable Value | \${transaction_duration}
+| | ... | ${0.0}
+| | Return From Keyword | ${transaction_duration}
+
+| Get Transaction Scale
+| | [Documentation]
+| | ... | Return value of \${transaction_scale} variable,
+| | ... | or \${0} if not defined.
+| |
+| | ... | Zero return value means the number of transactions is not limited,
+| | ... | which is true for most STL TRex profiles (transaction is a packet).
+| | ... | Nonzero return value means the number of transactions is fixed,
+| | ... | for example in stateful NAT scale tests.
+| | ... | Return type: integer.
+| |
+| | ... | *Example:*
+| |
+| | ... | \| \${transaction_scale} = \| Get Transaction Scale \|
+| |
+| | ${transaction_scale} = | Get Variable Value | \${transaction_scale} | ${0}
+| | Return From Keyword | ${transaction_scale}
+
+| Get Transaction Type
+| | [Documentation]
+| | ... | Return value of \${transaction_type} variable,
+| | ... | or "packet" if not defined.
+| |
+| | ... | The return value describes the type of transaction
+| | ... | the test is executed. For example "packet" means a transaction
+| | ... | is just a single packet. For more sophisticated transactions,
+| | ... | the logic to determine the number of passed transactions
+| | ... | is different from merely counting the packets received from DUT.
+| | ... | Return type: string.
+| |
+| | ... | *Example:*
+| |
+| | ... | \| \${transaction_type} = \| Get Transaction Type \|
+| |
+| | ${transaction_type} = | Get Variable Value | \${transaction_type} | packet
+| | Return From Keyword | ${transaction_type}
+
+| Get Use Latency
+| | [Documentation]
+| | ... | Return value of \${use_latency} variable,
+| | ... | if not defined return the value from Constants.
+| |
+| | ... | The return value controls whether latency streams are active
+| | ... | during the main search.
+| | ... | Return type: bool.
+| |
+| | ... | *Example:*
+| |
+| | ... | \| \${use_latency} = \| Get Use Latency \|
+| |
+| | ${use_latency} = | Get Variable Value | ${use_latency} | ${PERF_USE_LATENCY}
+| | Return From Keyword | ${use_latency}
+
+| Set Jumbo
+| | [Documentation]
+| | ... | For jumbo frames detection, the maximal packet size is relevant,
+| | ... | encapsulation overhead (if any) has effect.
+| |
+| | ... | This keyword computes jumbo boolean (some suites need that for
+| | ... | configuration decisions).
+| | ... | To streamline suite autogeneration, both input and output values
+| | ... | are communicated as test (or broader scope) variables,
+| | ... | instead of explicit arguments and return values.
+| |
+| | ... | *Test (or broader scope) variables read:*
+| | ... | - overhead - Overhead in bytes; default value: 0. Type: integer
+| | ... | - frame_size - L2 Frame Size [B] or IMIX string. Type: integer or
+| | ... | string
+| |
+| | ... | *Test variables set:*
+| | ... | - jumbo - Jumbo boolean, true if jumbo packet support has to be
+| | ... | enabled. Type: boolean
+| |
+| | ... | *Example:*
+| |
+| | ... | \| Set Jumbo \|
+| |
+| | # Already called by Set Max Rate And Jumbo, but some suites (e.g. device)
+| | # are calling this directly.
+| | Set Numeric Frame Sizes
+| | ${jumbo} = | Set Variable If | ${max_frame_size} < 1522
+| | ... | ${False} | ${True}
+| | Set Test Variable | \${jumbo}
+
+| Set Max Rate And Jumbo
+| | [Documentation]
+| | ... | Input framesize can be either integer in case of a single packet
+| | ... | in stream, or IMIX string defining mix of packets.
+| | ... | For jumbo frames detection, the maximal packet size is relevant.
+| | ... | For maximal transmit rate, the average packet size is relevant.
+| | ... | In both cases, encapsulation overhead (if any) has effect.
+| | ... | The maximal rate is computed from NIC name.
+| | ... | The implementation works by mapping from exact
+| | ... | whitelisted NIC names.
+| | ... | The mapping is hardcoded in nic_limits.yaml
+| | ... | TODO: Make the mapping from NIC names case insensistive.
+| |
+| | ... | This keyword computes maximal unidirectional transmit rate
+| | ... | and jumbo boolean (some suites need that for configuration decisions).
+| | ... | To streamline suite autogeneration, both input and output values
+| | ... | are communicated as test (or broader scope) variables,
+| | ... | instead of explicit arguments and return values.
+| |
+| | ... | If this keyword detects the test is interested in (unidirectional)
+| | ... | transactons per second maximal rate (tps), that is returned (not pps).
+| |
+| | ... | *Test (or broader scope) variables read:*
+| | ... | - nic_name - Name of bottleneck NIC. Type: string
+| | ... | - overhead - Overhead in bytes; default value: 0. Type: integer
+| | ... | - frame_size - L2 Frame Size [B] or IMIX string. Type: integer or
+| | ... | string
+| | ... | - packets_per_transaction_and_direction - Pps-tps conversion.
+| | ... | Optional, default 1.
+| |
+| | ... | *Test variables set:*
+| | ... | - max_rate - Calculated unidirectional maximal transmit rate [pps].
+| | ... | This never exceeds bandwidth on TG-DUT nor DUT-DUT links.
+| | ... | Type: float
+| | ... | - jumbo - Jumbo boolean, true if jumbo packet support has to be
+| | ... | enabled. Type: boolean
+| | ... | avg_frame_size - Average frame size including overhead. Type: float
+| | ... | max_frame_size - Maximal frame size including overhead. Type: float
+| |
+| | ... | *Example:*
+| |
+| | ... | \| Set Max Rate And Jumbo \|
+| |
+| | # TODO: Re-check overhead values in suites with both traffics encapsulated.
+| | # TODO: Improve layered setup to detect encap/decap and update overhead.
+| | ${pps_limit} = | Get From Dictionary
+| | ... | ${NIC_NAME_TO_PPS_LIMIT} | ${nic_name}
+| | ${bps_limit} = | Get From Dictionary
+| | ... | ${NIC_NAME_TO_BPS_LIMIT} | ${nic_name}
+| | Set Numeric Frame Sizes
+| | ${rate} = | Evaluate | ${bps_limit} / ((${avg_frame_size} + 20.0) * 8)
+| | ${max_rate} = | Set Variable If | ${rate} > ${pps_limit}
+| | ... | ${pps_limit} | ${rate}
+| | ${pptad} = | Get Packets Per Transaction And Direction
+| | ${max_rate} = | Evaluate | ${max_rate} / ${pptad}
+| | Set Test Variable | \${max_rate}
+| | Set Jumbo
+
+| Set Numeric Frame Sizes
+| | [Documentation]
+| | ... | Framesize can be either integer in case of a single packet
+| | ... | in stream, or set of packets in case of IMIX type or simmilar.
+| | ... | For jumbo decisions, we need a numeric size of the biggest packet.
+| | ... | For max rate decisions, we need a numeric average packet size.
+| | ... | This keyword computes both and sets them as test variables.
+| |
+| | ... | Each suite sets a value named \${overhead},
+| | ... | which describes by how many bytes the frames on DUT-DUT link
+| | ... | are larger (due to encapsulation) than those
+| | ... | on the primary TG-DUT link. But for some suites that value
+| | ... | can be negaive (if TG-DUT is encapsulated more heavily).
+| | ... | For calculations in this keyword, we need largest sizes
+| | ... | across links, so zero is used if \${overhead} is negative.
+| |
+| | ... | *Test variables read:*
+| | ... | - frame_size - Framesize. Type: integer or string
+| | ... | - overhead - Overhead in bytes; default value: ${0}. Type: integer
+| |
+| | ... | *Test variables set*
+| | ... | avg_frame_size - Average frame size including overhead. Type: float
+| | ... | max_frame_size - Maximal frame size including overhead. Type: float
+| |
+| | ... | *Example:*
+| |
+| | ... | \| Set Numeric Frame Sizes \|
+| |
+| | ${max_overhead} = | Set Variable If | ${overhead} >= 0 | ${overhead} | ${0}
+| | ${bare_avg_frame_size} = | Run Keyword If | '${frame_size}' == 'IMIX_v4_1'
+| | ... | Set Variable | ${353.83333}
+| | ... | ELSE
+| | ... | Convert To Number | ${frame_size}
+| | ${avg_frame_size} = | Evaluate | $bare_avg_frame_size + $max_overhead
+| | Set Test Variable | \${avg_frame_size}
+| | ${bare_max_frame_size} = | Run Keyword If | '${frame_size}' == 'IMIX_v4_1'
+| | ... | Set Variable | ${1518}
+| | ... | ELSE
+| | ... | Convert To Number | ${frame_size}
+| | ${max_frame_size} = | Evaluate | $bare_max_frame_size + $max_overhead
+| | Set Test Variable | ${max_frame_size}
+
+| Set Rates For Policer
+| | [Documentation]
+| | ... | Policer tests need these values,
+| | ... | currently computed from \${avg_frame_size}.
+| | ... | TODO: Verify the units match and computation is correct.
+| |
+| | ... | *Test (or broader scope) variables read:*
+| | ... | - avg_frame_size - Average L2 Frame Size [B]. Type: float
+| | ... | Set by Set Max Rate And Jumbo keyword.
+| |
+| | ... | *Test variables set:*
+| | ... | - eb - Excess burst rate for policer. Type: float
+| | ... | - cb - Committed burst rate for policer. Type: float
+| |
+| | ... | *Example:*
+| |
+| | ... | \| Set Rates For Policer \|
+| |
+| | Set Test Variable | \${eb} | ${avg_frame_size}
+| | Set Test Variable | \${cb} | ${avg_frame_size}
diff --git a/resources/libraries/robot/shared/default.robot b/resources/libraries/robot/shared/default.robot
index cf6b599a29..fdc4da475e 100644
--- a/resources/libraries/robot/shared/default.robot
+++ b/resources/libraries/robot/shared/default.robot
@@ -58,7 +58,6 @@
| Resource | resources/libraries/robot/overlay/lisp.robot
| Resource | resources/libraries/robot/overlay/lispgpe.robot
| Resource | resources/libraries/robot/overlay/lisp_api.robot
-| Resource | resources/libraries/robot/performance/performance_limits.robot
| Resource | resources/libraries/robot/performance/performance_utils.robot
| Resource | resources/libraries/robot/shared/interfaces.robot
| Resource | resources/libraries/robot/shared/container.robot
@@ -74,6 +73,26 @@
| ${cpu_alloc_str}= | ${0}
*** Keywords ***
+# TODO: Sort keywords alphabetically.
+
+| Call Resetter
+| | [Documentation]
+| | ... | Check for a presence of test variable \${resetter}.
+| | ... | If it exists (and not None), call the resetter (as a Python callable).
+| | ... | This is usually used to reset any state on DUT before next trial.
+| |
+| | ... | TODO: Move to a more specific library if needed.
+| |
+| | ... | *Example:*
+| |
+| | ... | \| Call Resetter \|
+| |
+| | ${resetter} = | Get Resetter
+| | # See http://robotframework.org/robotframework/3.1.2/libraries/BuiltIn.html
+| | # #Evaluating%20expressions for $variable (without braces) syntax.
+| | # Parens are there to perform the call.
+| | Run Keyword If | $resetter | Evaluate | $resetter()
+
| Configure crypto device on all DUTs
| | [Documentation] | Verify if Crypto QAT device virtual functions are
| | ... | initialized on all DUTs. If parameter force_init is set to True, then
diff --git a/resources/libraries/robot/shared/test_teardown.robot b/resources/libraries/robot/shared/test_teardown.robot
index 93c4574c83..09ebd9d01e 100644
--- a/resources/libraries/robot/shared/test_teardown.robot
+++ b/resources/libraries/robot/shared/test_teardown.robot
@@ -64,11 +64,21 @@
| Additional Test Tear Down Action For performance
| | [Documentation]
| | ... | Additional teardown for tests which uses performance measurement.
-| |
-| | Run Keyword If Test Failed
-| | ... | Send traffic at specified rate | ${1.0} | 10000
-| | ... | ${frame_size} | ${traffic_profile} | trial_multiplicity=${1}
-| | ... | extended_debug=${True}
+| | ... | Optionally, call \${resetter} (if defined) to reset DUT state.
+| |
+| | ... | TODO: Document what test variables are required or optional.
+| |
+| | Run Keyword If Test Passed | Return From Keyword
+| | ${use_latency} = | Get Use Latency
+| | ${rate_for_teardown} = | Get Rate For Teardown
+| | Call Resetter
+| | Set Test Variable | \${extended_debug} | ${True}
+| | Send traffic at specified rate
+| | ... | trial_duration=${1.0}
+| | ... | rate=${rate_for_teardown}
+| | ... | trial_multiplicity=${1}
+| | ... | use_latency=${use_latency}
+| | ... | duration_limit=${1.0}
| Additional Test Tear Down Action For packet_trace
| | [Documentation]
diff --git a/resources/tools/presentation/conf.py b/resources/tools/presentation/conf.py
index 553220448c..8e0fcd8d86 100644
--- a/resources/tools/presentation/conf.py
+++ b/resources/tools/presentation/conf.py
@@ -46,7 +46,7 @@ source_suffix = [u'.rst', u'.md']
master_doc = u'index'
# General information about the project.
-report_week = u'44'
+report_week = u'51'
project = u'FD.io CSIT-2009.{week}'.format(week=report_week)
copyright = u'2020, FD.io'
author = u'FD.io CSIT'
@@ -86,6 +86,10 @@ rst_epilog = u"""
.. _FD.io test executor dpdk performance job 3n-skx: https://jenkins.fd.io/job/csit-dpdk-perf-report-iterative-{srelease}-3n-skx
.. _FD.io test executor dpdk performance job 2n-skx: https://jenkins.fd.io/job/csit-dpdk-perf-report-iterative-{srelease}-2n-skx
.. _FD.io test executor dpdk performance job 2n-clx: https://jenkins.fd.io/job/csit-dpdk-perf-report-iterative-{srelease}-2n-clx
+.. _FD.io test executor dpdk performance job 2n-dnv: https://jenkins.fd.io/job/csit-dpdk-perf-report-iterative-{srelease}-2n-dnv
+.. _FD.io test executor dpdk performance job 3n-dnv: https://jenkins.fd.io/job/csit-dpdk-perf-report-iterative-{srelease}-3n-dnv
+.. _FD.io test executor dpdk performance job 3n-tsh: https://jenkins.fd.io/job/csit-dpdk-perf-report-iterative-{srelease}-3n-tsh
+.. _FD.io test executor dpdk performance job 2n-zn2: https://jenkins.fd.io/job/csit-dpdk-perf-report-iterative-{srelease}-2n-zn2
.. _FD.io test executor vpp performance job 3n-hsw: https://jenkins.fd.io/job/csit-vpp-perf-report-iterative-{srelease}-3n-hsw
.. _FD.io test executor vpp performance job 3n-skx: https://jenkins.fd.io/job/csit-vpp-perf-report-iterative-{srelease}-3n-skx
.. _FD.io test executor vpp performance job 2n-skx: https://jenkins.fd.io/job/csit-vpp-perf-report-iterative-{srelease}-2n-skx
@@ -93,6 +97,7 @@ rst_epilog = u"""
.. _FD.io test executor vpp performance job 3n-dnv: https://jenkins.fd.io/job/csit-vpp-perf-report-iterative-{srelease}-3n-dnv
.. _FD.io test executor vpp performance job 2n-dnv: https://jenkins.fd.io/job/csit-vpp-perf-report-iterative-{srelease}-2n-dnv
.. _FD.io test executor vpp performance job 2n-clx: https://jenkins.fd.io/job/csit-vpp-perf-report-iterative-{srelease}-2n-clx
+.. _FD.io test executor vpp performance job 2n-zn2: https://jenkins.fd.io/job/csit-vpp-perf-report-iterative-{srelease}-2n-zn2
.. _FD.io test executor vpp device jobs using Ubuntu: https://jenkins.fd.io/view/csit/job/csit-vpp-device-{srelease}-ubuntu1804-1n-skx
.. _FD.io VPP compile job: https://jenkins.fd.io/view/vpp/job/vpp-merge-{srelease}-ubuntu1804-x86_64/
.. _CSIT Testbed Setup: https://git.fd.io/csit/tree/resources/tools/testbed-setup/README.md?h={release}
diff --git a/resources/tools/presentation/generator_alerts.py b/resources/tools/presentation/generator_alerts.py
index da45d75891..156e99ccc0 100644
--- a/resources/tools/presentation/generator_alerts.py
+++ b/resources/tools/presentation/generator_alerts.py
@@ -352,7 +352,9 @@ class Alerting:
device = u""
try:
groups = re.search(
- re.compile(r'((vpp|dpdk)-\dn-(skx|clx|hsw|tsh|dnv)-.*)'),
+ re.compile(
+ r'((vpp|dpdk)-\dn-(skx|clx|hsw|tsh|dnv|zn2)-.*)'
+ ),
test_set
)
test_set_short = groups.group(1)
@@ -365,14 +367,9 @@ class Alerting:
build, version, passed, failed, failed_tests = \
self._get_compressed_failed_tests(alert, test_set)
if build is None:
- ret_code, build_nr, _ = get_last_completed_build_number(
- self._spec.environment[u"urls"][u"URL[JENKINS,CSIT]"],
- alert[u"urls"][idx].split(u'/')[-1])
- if ret_code != 0:
- build_nr = u''
text += (
f"\n\nNo input data available for {test_set_short}. "
- f"See CSIT build {alert[u'urls'][idx]}/{build_nr} for more "
+ f"See CSIT job {alert[u'urls'][idx]} for more "
f"information.\n"
)
continue
diff --git a/resources/tools/presentation/generator_plots.py b/resources/tools/presentation/generator_plots.py
index cae334ade9..869d2ca21e 100644
--- a/resources/tools/presentation/generator_plots.py
+++ b/resources/tools/presentation/generator_plots.py
@@ -380,54 +380,66 @@ def plot_perf_box_name(plot, input_data):
multiplier = 1.0
y_vals = OrderedDict()
test_type = u""
- for job in data:
- for build in job:
- for test in build:
- if y_vals.get(test[u"parent"], None) is None:
- y_vals[test[u"parent"]] = list()
- try:
- if test[u"type"] in (u"NDRPDR", ):
- test_type = u"NDRPDR"
-
- if u"-pdr" in plot_title:
- ttype = u"PDR"
- elif u"-ndr" in plot_title:
- ttype = u"NDR"
- else:
- raise RuntimeError(
- u"Wrong title. No information about test type. "
- u"Add '-ndr' or '-pdr' to the test title."
- )
- y_vals[test[u"parent"]].append(
- test[value][ttype][u"LOWER"] * multiplier
- )
-
- elif test[u"type"] in (u"SOAK", ):
- y_vals[test[u"parent"]].\
- append(test[u"throughput"][u"LOWER"])
- test_type = u"SOAK"
+ for item in plot.get(u"include", tuple()):
+ reg_ex = re.compile(str(item).lower())
+ for job in data:
+ for build in job:
+ for test_id, test in build.iteritems():
+ if not re.match(reg_ex, str(test_id).lower()):
+ continue
+ if y_vals.get(test[u"parent"], None) is None:
+ y_vals[test[u"parent"]] = list()
+ try:
+ if test[u"type"] in (u"NDRPDR", u"CPS"):
+ test_type = test[u"type"]
+
+ if u"-pdr" in plot_title:
+ ttype = u"PDR"
+ elif u"-ndr" in plot_title:
+ ttype = u"NDR"
+ else:
+ raise RuntimeError(
+ u"Wrong title. No information about test "
+ u"type. Add '-ndr' or '-pdr' to the test "
+ u"title."
+ )
- elif test[u"type"] in (u"HOSTSTACK", ):
- if u"LDPRELOAD" in test[u"tags"]:
y_vals[test[u"parent"]].append(
- float(test[u"result"][u"bits_per_second"]) / 1e3
+ test[value][ttype][u"LOWER"] * multiplier
)
- elif u"VPPECHO" in test[u"tags"]:
- y_vals[test[u"parent"]].append(
- (float(test[u"result"][u"client"][u"tx_data"])
- * 8 / 1e3) /
- ((float(test[u"result"][u"client"][u"time"]) +
- float(test[u"result"][u"server"][u"time"])) /
- 2)
- )
- test_type = u"HOSTSTACK"
- else:
- continue
+ elif test[u"type"] in (u"SOAK",):
+ y_vals[test[u"parent"]]. \
+ append(test[u"throughput"][u"LOWER"])
+ test_type = u"SOAK"
+
+ elif test[u"type"] in (u"HOSTSTACK",):
+ if u"LDPRELOAD" in test[u"tags"]:
+ y_vals[test[u"parent"]].append(
+ float(
+ test[u"result"][u"bits_per_second"]
+ ) / 1e3
+ )
+ elif u"VPPECHO" in test[u"tags"]:
+ y_vals[test[u"parent"]].append(
+ (float(
+ test[u"result"][u"client"][u"tx_data"]
+ ) * 8 / 1e3) /
+ ((float(
+ test[u"result"][u"client"][u"time"]
+ ) +
+ float(
+ test[u"result"][u"server"][u"time"])
+ ) / 2)
+ )
+ test_type = u"HOSTSTACK"
- except (KeyError, TypeError):
- y_vals[test[u"parent"]].append(None)
+ else:
+ continue
+
+ except (KeyError, TypeError):
+ y_vals[test[u"parent"]].append(None)
# Add None to the lists with missing data
max_len = 0
@@ -479,6 +491,8 @@ def plot_perf_box_name(plot, input_data):
if layout.get(u"title", None):
if test_type in (u"HOSTSTACK", ):
layout[u"title"] = f"<b>Bandwidth:</b> {layout[u'title']}"
+ elif test_type in (u"CPS", ):
+ layout[u"title"] = f"<b>CPS:</b> {layout[u'title']}"
else:
layout[u"title"] = f"<b>Throughput:</b> {layout[u'title']}"
if y_max:
@@ -536,37 +550,43 @@ def plot_tsa_name(plot, input_data):
multiplier = 1.0
y_vals = OrderedDict()
- for job in data:
- for build in job:
- for test in build:
- if y_vals.get(test[u"parent"], None) is None:
- y_vals[test[u"parent"]] = {
- u"1": list(),
- u"2": list(),
- u"4": list()
- }
- try:
- if test[u"type"] not in (u"NDRPDR",):
- continue
-
- if u"-pdr" in plot_title:
- ttype = u"PDR"
- elif u"-ndr" in plot_title:
- ttype = u"NDR"
- else:
- continue
-
- if u"1C" in test[u"tags"]:
- y_vals[test[u"parent"]][u"1"]. \
- append(test[value][ttype][u"LOWER"] * multiplier)
- elif u"2C" in test[u"tags"]:
- y_vals[test[u"parent"]][u"2"]. \
- append(test[value][ttype][u"LOWER"] * multiplier)
- elif u"4C" in test[u"tags"]:
- y_vals[test[u"parent"]][u"4"]. \
- append(test[value][ttype][u"LOWER"] * multiplier)
- except (KeyError, TypeError):
- pass
+ for item in plot.get(u"include", tuple()):
+ reg_ex = re.compile(str(item).lower())
+ for job in data:
+ for build in job:
+ for test_id, test in build.iteritems():
+ if re.match(reg_ex, str(test_id).lower()):
+ if y_vals.get(test[u"parent"], None) is None:
+ y_vals[test[u"parent"]] = {
+ u"1": list(),
+ u"2": list(),
+ u"4": list()
+ }
+ try:
+ if test[u"type"] not in (u"NDRPDR", u"CPS"):
+ continue
+
+ if u"-pdr" in plot_title:
+ ttype = u"PDR"
+ elif u"-ndr" in plot_title:
+ ttype = u"NDR"
+ else:
+ continue
+
+ if u"1C" in test[u"tags"]:
+ y_vals[test[u"parent"]][u"1"].append(
+ test[value][ttype][u"LOWER"] * multiplier
+ )
+ elif u"2C" in test[u"tags"]:
+ y_vals[test[u"parent"]][u"2"].append(
+ test[value][ttype][u"LOWER"] * multiplier
+ )
+ elif u"4C" in test[u"tags"]:
+ y_vals[test[u"parent"]][u"4"].append(
+ test[value][ttype][u"LOWER"] * multiplier
+ )
+ except (KeyError, TypeError):
+ pass
if not y_vals:
logging.warning(f"No data for the plot {plot.get(u'title', u'')}")
@@ -682,7 +702,7 @@ def plot_tsa_name(plot, input_data):
x_vals = [1, 2, 4]
# Limits:
- if u"-gbps" not in plot_title:
+ if u"-gbps" not in plot_title and u"-cps-" not in plot_title:
nic_limit /= 1e6
lnk_limit /= 1e6
pci_limit /= 1e6
diff --git a/resources/tools/presentation/generator_report.py b/resources/tools/presentation/generator_report.py
index 0712b78ef0..142c264bcd 100644
--- a/resources/tools/presentation/generator_report.py
+++ b/resources/tools/presentation/generator_report.py
@@ -195,8 +195,10 @@ def generate_pdf_report(release, spec, report_week):
plots.extend(
get_files(spec.environment[u"paths"][u"DIR[STATIC,DPDK]"], u"html")
)
+ pdf_plots = list()
for plot in plots:
file_name = f"{plot.rsplit(u'.', 1)[0]}.pdf"
+ pdf_plots.append(file_name)
logging.info(f"Converting {plot} to {file_name}")
execute_command(convert_plots.format(html=plot, pdf=file_name))
@@ -224,6 +226,10 @@ def generate_pdf_report(release, spec, report_week):
for cmd in cmds:
execute_command(cmd)
+ # Delete temporary pdf files:
+ for plot in pdf_plots:
+ execute_command(f"rm {plot}")
+
logging.info(u" Done.")
diff --git a/resources/tools/presentation/input_data_parser.py b/resources/tools/presentation/input_data_parser.py
index 1a8b5bf98d..268a73620f 100644
--- a/resources/tools/presentation/input_data_parser.py
+++ b/resources/tools/presentation/input_data_parser.py
@@ -229,9 +229,17 @@ class ExecutionChecker(ResultVisitor):
r'Latency at 50% PDR:.*\[\'(.*)\', \'(.*)\'\].*\n'
r'Latency at 10% PDR:.*\[\'(.*)\', \'(.*)\'\].*\n'
)
+ REGEX_CPS_MSG_INFO = re.compile(
+ r'NDR_LOWER:\s(\d+.\d+)\s.*\s.*\n.*\n.*\n'
+ r'PDR_LOWER:\s(\d+.\d+)\s.*\s.*\n.*\n.*'
+ )
+ REGEX_PPS_MSG_INFO = re.compile(
+ r'NDR_LOWER:\s(\d+.\d+)\s.*\s(\d+.\d+)\s.*\n.*\n.*\n'
+ r'PDR_LOWER:\s(\d+.\d+)\s.*\s(\d+.\d+)\s.*\n.*\n.*'
+ )
REGEX_MRR_MSG_INFO = re.compile(r'.*\[(.*)\]')
- # TODO: Remove when not needed
+ # Needed for CPS and PPS tests
REGEX_NDRPDR_LAT_BASE = re.compile(
r'LATENCY.*\[\'(.*)\', \'(.*)\'\]\s\n.*\n.*\n'
r'LATENCY.*\[\'(.*)\', \'(.*)\'\]'
@@ -244,18 +252,7 @@ class ExecutionChecker(ResultVisitor):
r'Latency.*\[\'(.*)\', \'(.*)\'\]\s\n'
r'Latency.*\[\'(.*)\', \'(.*)\'\]'
)
- # TODO: Remove when not needed
- REGEX_NDRPDR_LAT_LONG = re.compile(
- r'LATENCY.*\[\'(.*)\', \'(.*)\'\]\s\n.*\n.*\n'
- r'LATENCY.*\[\'(.*)\', \'(.*)\'\]\s\n.*\n'
- r'Latency.*\[\'(.*)\', \'(.*)\'\]\s\n'
- r'Latency.*\[\'(.*)\', \'(.*)\'\]\s\n'
- r'Latency.*\[\'(.*)\', \'(.*)\'\]\s\n'
- r'Latency.*\[\'(.*)\', \'(.*)\'\]\s\n'
- r'Latency.*\[\'(.*)\', \'(.*)\'\]\s\n'
- r'Latency.*\[\'(.*)\', \'(.*)\'\]\s\n'
- r'Latency.*\[\'(.*)\', \'(.*)\'\]'
- )
+
REGEX_VERSION_VPP = re.compile(
r"(return STDOUT Version:\s*|"
r"VPP Version:\s*|VPP version:\s*)(.*)"
@@ -271,8 +268,7 @@ class ExecutionChecker(ResultVisitor):
r'tx\s(\d*),\srx\s(\d*)'
)
REGEX_BMRR = re.compile(
- r'Maximum Receive Rate trial results'
- r' in packets per second: \[(.*)\]'
+ r'Maximum Receive Rate trial results .*: \[(.*)\]'
)
REGEX_RECONF_LOSS = re.compile(
r'Packets lost due to reconfig: (\d*)'
@@ -392,12 +388,56 @@ class ExecutionChecker(ResultVisitor):
except (AttributeError, IndexError, ValueError, KeyError):
return u"Test Failed."
+ def _get_data_from_cps_test_msg(self, msg):
+ """Get info from message of NDRPDR CPS tests.
+
+ :param msg: Message to be processed.
+ :type msg: str
+ :returns: Processed message or "Test Failed." if a problem occurs.
+ :rtype: str
+ """
+
+ groups = re.search(self.REGEX_CPS_MSG_INFO, msg)
+ if not groups or groups.lastindex != 2:
+ return u"Test Failed."
+
+ try:
+ return (
+ f"1. {(float(groups.group(1)) / 1e6):5.2f}\n"
+ f"2. {(float(groups.group(2)) / 1e6):5.2f}"
+ )
+ except (AttributeError, IndexError, ValueError, KeyError):
+ return u"Test Failed."
+
+ def _get_data_from_pps_test_msg(self, msg):
+ """Get info from message of NDRPDR PPS tests.
+
+ :param msg: Message to be processed.
+ :type msg: str
+ :returns: Processed message or "Test Failed." if a problem occurs.
+ :rtype: str
+ """
+
+ groups = re.search(self.REGEX_PPS_MSG_INFO, msg)
+ if not groups or groups.lastindex != 4:
+ return u"Test Failed."
+
+ try:
+ return (
+ f"1. {(float(groups.group(1)) / 1e6):5.2f} "
+ f"{float(groups.group(2)):5.2f}\n"
+ f"2. {(float(groups.group(3)) / 1e6):5.2f} "
+ f"{float(groups.group(4)):5.2f}"
+ )
+ except (AttributeError, IndexError, ValueError, KeyError):
+ return u"Test Failed."
+
def _get_data_from_perf_test_msg(self, msg):
"""Get info from message of NDRPDR performance tests.
:param msg: Message to be processed.
:type msg: str
- :returns: Processed message or original message if a problem occurs.
+ :returns: Processed message or "Test Failed." if a problem occurs.
:rtype: str
"""
@@ -816,10 +856,7 @@ class ExecutionChecker(ResultVisitor):
},
}
- # TODO: Rewrite when long and base are not needed
- groups = re.search(self.REGEX_NDRPDR_LAT_LONG, msg)
- if groups is None:
- groups = re.search(self.REGEX_NDRPDR_LAT, msg)
+ groups = re.search(self.REGEX_NDRPDR_LAT, msg)
if groups is None:
groups = re.search(self.REGEX_NDRPDR_LAT_BASE, msg)
if groups is None:
@@ -1060,9 +1097,18 @@ class ExecutionChecker(ResultVisitor):
if test.status == u"PASS":
if u"NDRPDR" in tags:
- test_result[u"msg"] = self._get_data_from_perf_test_msg(
- test.message).replace(u'\n', u' |br| ').\
- replace(u'\r', u'').replace(u'"', u"'")
+ if u"TCP_PPS" in tags or u"UDP_PPS" in tags:
+ test_result[u"msg"] = self._get_data_from_pps_test_msg(
+ test.message).replace(u'\n', u' |br| '). \
+ replace(u'\r', u'').replace(u'"', u"'")
+ elif u"TCP_CPS" in tags or u"UDP_CPS" in tags:
+ test_result[u"msg"] = self._get_data_from_cps_test_msg(
+ test.message).replace(u'\n', u' |br| '). \
+ replace(u'\r', u'').replace(u'"', u"'")
+ else:
+ test_result[u"msg"] = self._get_data_from_perf_test_msg(
+ test.message).replace(u'\n', u' |br| ').\
+ replace(u'\r', u'').replace(u'"', u"'")
elif u"MRR" in tags or u"FRMOBL" in tags or u"BMRR" in tags:
test_result[u"msg"] = self._get_data_from_mrr_test_msg(
test.message).replace(u'\n', u' |br| ').\
@@ -1110,25 +1156,16 @@ class ExecutionChecker(ResultVisitor):
if u"DEVICETEST" in tags:
test_result[u"type"] = u"DEVICETEST"
elif u"NDRPDR" in tags:
- test_result[u"type"] = u"NDRPDR"
+ if u"TCP_CPS" in tags or u"UDP_CPS" in tags:
+ test_result[u"type"] = u"CPS"
+ else:
+ test_result[u"type"] = u"NDRPDR"
test_result[u"throughput"], test_result[u"status"] = \
self._get_ndrpdr_throughput(test.message)
test_result[u"gbps"], test_result[u"status"] = \
self._get_ndrpdr_throughput_gbps(test.message)
test_result[u"latency"], test_result[u"status"] = \
self._get_ndrpdr_latency(test.message)
- elif u"SOAK" in tags:
- test_result[u"type"] = u"SOAK"
- test_result[u"throughput"], test_result[u"status"] = \
- self._get_plr_throughput(test.message)
- elif u"HOSTSTACK" in tags:
- test_result[u"type"] = u"HOSTSTACK"
- test_result[u"result"], test_result[u"status"] = \
- self._get_hoststack_data(test.message, tags)
- elif u"TCP" in tags:
- test_result[u"type"] = u"TCP"
- groups = re.search(self.REGEX_TCP, test.message)
- test_result[u"result"] = int(groups.group(2))
elif u"MRR" in tags or u"FRMOBL" in tags or u"BMRR" in tags:
if u"MRR" in tags:
test_result[u"type"] = u"MRR"
@@ -1150,6 +1187,18 @@ class ExecutionChecker(ResultVisitor):
groups = re.search(self.REGEX_MRR, test.message)
test_result[u"result"][u"receive-rate"] = \
float(groups.group(3)) / float(groups.group(1))
+ elif u"SOAK" in tags:
+ test_result[u"type"] = u"SOAK"
+ test_result[u"throughput"], test_result[u"status"] = \
+ self._get_plr_throughput(test.message)
+ elif u"HOSTSTACK" in tags:
+ test_result[u"type"] = u"HOSTSTACK"
+ test_result[u"result"], test_result[u"status"] = \
+ self._get_hoststack_data(test.message, tags)
+ elif u"TCP" in tags:
+ test_result[u"type"] = u"TCP"
+ groups = re.search(self.REGEX_TCP, test.message)
+ test_result[u"result"] = int(groups.group(2))
elif u"RECONF" in tags:
test_result[u"type"] = u"RECONF"
test_result[u"result"] = None
diff --git a/resources/tools/presentation/run_report.sh b/resources/tools/presentation/run_report.sh
index 4279501f3b..7b4351edc9 100755
--- a/resources/tools/presentation/run_report.sh
+++ b/resources/tools/presentation/run_report.sh
@@ -38,7 +38,7 @@ export PYTHONPATH=`pwd`:`pwd`/../../../:`pwd`/../../libraries/python
python pal.py \
--specification specification.yaml \
--release ${RELEASE} \
- --week "44" \
+ --week "51" \
--logging INFO \
--force
diff --git a/resources/tools/presentation/specification.yaml b/resources/tools/presentation/specification.yaml
index 445b03df9b..5c617192b7 100644
--- a/resources/tools/presentation/specification.yaml
+++ b/resources/tools/presentation/specification.yaml
@@ -29,6 +29,7 @@
DIR[DTR,PERF,DPDK,3N,HSW]: "{DIR[DTR]}/dpdk_performance_results_3n_hsw"
DIR[DTR,PERF,DPDK,3N,SKX]: "{DIR[DTR]}/dpdk_performance_results_3n_skx"
DIR[DTR,PERF,DPDK,2N,SKX]: "{DIR[DTR]}/dpdk_performance_results_2n_skx"
+ DIR[DTR,PERF,DPDK,2N,ZN2]: "{DIR[DTR]}/dpdk_performance_results_2n_zn2"
DIR[DTR,PERF,DPDK,2N,CLX]: "{DIR[DTR]}/dpdk_performance_results_2n_clx"
DIR[DTR,PERF,DPDK,2N,DNV]: "{DIR[DTR]}/dpdk_performance_results_2n_dnv"
DIR[DTR,PERF,DPDK,3N,DNV]: "{DIR[DTR]}/dpdk_performance_results_3n_dnv"
@@ -37,6 +38,7 @@
DIR[DTR,PERF,VPP,3N,HSW]: "{DIR[DTR]}/vpp_performance_results_3n_hsw"
DIR[DTR,PERF,VPP,3N,SKX]: "{DIR[DTR]}/vpp_performance_results_3n_skx"
DIR[DTR,PERF,VPP,2N,SKX]: "{DIR[DTR]}/vpp_performance_results_2n_skx"
+ DIR[DTR,PERF,VPP,2N,ZN2]: "{DIR[DTR]}/vpp_performance_results_2n_zn2"
DIR[DTR,PERF,VPP,2N,CLX]: "{DIR[DTR]}/vpp_performance_results_2n_clx"
DIR[DTR,PERF,VPP,3N,TSH]: "{DIR[DTR]}/vpp_performance_results_3n_tsh"
DIR[DTR,PERF,VPP,3N,DNV]: "{DIR[DTR]}/vpp_performance_results_3n_dnv"
@@ -45,6 +47,7 @@
DIR[DTR,MRR,VPP,3N,HSW]: "{DIR[DTR]}/vpp_mrr_results_3n_hsw"
DIR[DTR,MRR,VPP,3N,SKX]: "{DIR[DTR]}/vpp_mrr_results_3n_skx"
DIR[DTR,MRR,VPP,2N,SKX]: "{DIR[DTR]}/vpp_mrr_results_2n_skx"
+ DIR[DTR,MRR,VPP,2N,ZN2]: "{DIR[DTR]}/vpp_mrr_results_2n_zn2"
DIR[DTR,MRR,VPP,2N,CLX]: "{DIR[DTR]}/vpp_mrr_results_2n_clx"
DIR[DTR,MRR,VPP,3N,TSH]: "{DIR[DTR]}/vpp_mrr_results_3n_tsh"
DIR[DTR,MRR,VPP,3N,DNV]: "{DIR[DTR]}/vpp_mrr_results_3n_dnv"
@@ -57,6 +60,7 @@
DIR[DTC,PERF,VPP,3N,HSW]: "{DIR[DTC]}/vpp_performance_configuration_3n_hsw"
DIR[DTC,PERF,VPP,3N,SKX]: "{DIR[DTC]}/vpp_performance_configuration_3n_skx"
DIR[DTC,PERF,VPP,2N,SKX]: "{DIR[DTC]}/vpp_performance_configuration_2n_skx"
+ DIR[DTC,PERF,VPP,2N,ZN2]: "{DIR[DTC]}/vpp_performance_configuration_2n_zn2"
DIR[DTC,PERF,VPP,2N,CLX]: "{DIR[DTC]}/vpp_performance_configuration_2n_clx"
DIR[DTC,PERF,VPP,3N,TSH]: "{DIR[DTC]}/vpp_performance_configuration_3n_tsh"
DIR[DTC,PERF,VPP,3N,DNV]: "{DIR[DTC]}/vpp_performance_configuration_3n_dnv"
@@ -65,6 +69,7 @@
DIR[DTC,MRR,VPP,3N,HSW]: "{DIR[DTC]}/vpp_mrr_configuration_3n_hsw"
DIR[DTC,MRR,VPP,3N,SKX]: "{DIR[DTC]}/vpp_mrr_configuration_3n_skx"
DIR[DTC,MRR,VPP,2N,SKX]: "{DIR[DTC]}/vpp_mrr_configuration_2n_skx"
+ DIR[DTC,MRR,VPP,2N,ZN2]: "{DIR[DTC]}/vpp_mrr_configuration_2n_zn2"
DIR[DTC,MRR,VPP,2N,CLX]: "{DIR[DTC]}/vpp_mrr_configuration_2n_clx"
DIR[DTC,MRR,VPP,3N,TSH]: "{DIR[DTC]}/vpp_mrr_configuration_3n_tsh"
DIR[DTC,MRR,VPP,3N,DNV]: "{DIR[DTC]}/vpp_mrr_configuration_3n_dnv"
@@ -77,6 +82,7 @@
DIR[DTO,PERF,VPP,3N,HSW]: "{DIR[DTO]}/vpp_performance_operational_data_3n_hsw"
DIR[DTO,PERF,VPP,3N,SKX]: "{DIR[DTO]}/vpp_performance_operational_data_3n_skx"
DIR[DTO,PERF,VPP,2N,SKX]: "{DIR[DTO]}/vpp_performance_operational_data_2n_skx"
+ DIR[DTO,PERF,VPP,2N,ZN2]: "{DIR[DTO]}/vpp_performance_operational_data_2n_zn2"
DIR[DTO,PERF,VPP,2N,CLX]: "{DIR[DTO]}/vpp_performance_operational_data_2n_clx"
DIR[DTO,PERF,VPP,3N,TSH]: "{DIR[DTO]}/vpp_performance_operational_data_3n_tsh"
DIR[DTO,PERF,VPP,3N,DNV]: "{DIR[DTO]}/vpp_performance_operational_data_3n_dnv"
@@ -255,16 +261,16 @@
- 44 # rls2009 NDRPDR iter env 5
- 46 # rls2009 NDRPDR iter env 5
- 48 # rls2009 NDRPDR iter env 5
- - 51 # rls2009 NDRPDR iter NAT44 env 5
- - 52 # rls2009 NDRPDR iter NAT44 env 5
- - 53 # rls2009 NDRPDR iter NAT44 env 5
- - 54 # rls2009 NDRPDR iter NAT44 env 5
- - 55 # rls2009 NDRPDR iter NAT44 env 5
- - 56 # rls2009 NDRPDR iter NAT44 env 5
- - 57 # rls2009 NDRPDR iter NAT44 env 5
- - 58 # rls2009 NDRPDR iter NAT44 env 5
- - 59 # rls2009 NDRPDR iter NAT44 env 5
- - 60 # rls2009 NDRPDR iter NAT44 env 5
+ - 110 # rls2009 NDRPDR iter NAT44 env 5
+ - 111 # rls2009 NDRPDR iter NAT44 env 5
+ - 112 # rls2009 NDRPDR iter NAT44 env 5
+ - 113 # rls2009 NDRPDR iter NAT44 env 5
+ - 114 # rls2009 NDRPDR iter NAT44 env 5
+ - 115 # rls2009 NDRPDR iter NAT44 env 5
+ - 116 # rls2009 NDRPDR iter NAT44 env 5
+ - 118 # rls2009 NDRPDR iter NAT44 env 5
+ - 119 # rls2009 NDRPDR iter NAT44 env 5
+ - 121 # rls2009 NDRPDR iter NAT44 env 5
plot-vpp-hdrh-lat-2n-skx:
csit-vpp-perf-report-iterative-2009-2n-skx:
@@ -272,7 +278,7 @@
plot-vpp-hdrh-lat-2n-skx-nat44:
csit-vpp-perf-report-iterative-2009-2n-skx:
- - 51 # rls2009 NDRPDR iter NAT44 env 5
+ - 110 # rls2009 NDRPDR iter NAT44 env 5
plot-vpp-soak-2n-skx:
csit-vpp-perf-report-iterative-2009-2n-skx:
@@ -326,6 +332,34 @@
csit-dpdk-perf-report-iterative-2009-2n-skx:
- 4 # NDRPDR iter env5
+ # 2n-zn2
+
+ plot-vpp-throughput-lat-tsa-2n-zn2:
+ csit-vpp-perf-report-iterative-2009-2n-zn2:
+ - 17 # rls2009 NDRPDR iter env 5
+ - 18 # rls2009 NDRPDR iter env 5
+ - 31 # rls2009 NDRPDR iter env 5
+ - 33 # rls2009 NDRPDR iter env 5
+ - 34 # rls2009 NDRPDR iter env 5
+
+ plot-vpp-hdrh-lat-2n-zn2:
+ csit-vpp-perf-report-iterative-2009-2n-zn2:
+ - 18 # rls2009 NDRPDR iter env 5
+
+ plot-dpdk-throughput-latency-2n-zn2:
+ csit-dpdk-perf-report-iterative-2009-2n-zn2:
+ - 16 # NDRPDR iter env5
+ - 21 # NDRPDR iter env5
+ - 22 # NDRPDR iter env5
+ - 23 # NDRPDR iter env5
+ - 24 # NDRPDR iter env5
+ - 25 # NDRPDR iter env5
+ - 29 # NDRPDR iter env5
+
+ plot-dpdk-hdrh-lat-2n-zn2:
+ csit-dpdk-perf-report-iterative-2009-2n-zn2:
+ - 16 # NDRPDR iter env5
+
# 2n-clx
plot-vpp-throughput-lat-tsa-2n-clx:
@@ -333,18 +367,32 @@
- 36 # rls2009 NDRPDR iter env 5
- 39 # rls2009 NDRPDR iter env 5
- 40 # rls2009 NDRPDR iter env 5
- - 42 # rls2009 NDRPDR iter env 5
- 65 # rls2009 NDRPDR iter env 5
- 66 # rls2009 NDRPDR iter env 5
- 79 # rls2009 NDRPDR iter env 5
- 82 # rls2009 NDRPDR iter env 5
+ - 88 # rls2009 NDRPDR iter env 5
- 89 # rls2009 NDRPDR iter env 5
- 90 # rls2009 NDRPDR iter env 5
+ - 114 # rls2009 NDRPDR iter NAT44 env 5
+ - 115 # rls2009 NDRPDR iter NAT44 env 5
+ - 116 # rls2009 NDRPDR iter NAT44 env 5
+ - 117 # rls2009 NDRPDR iter NAT44 env 5
+ - 118 # rls2009 NDRPDR iter NAT44 env 5
+ - 119 # rls2009 NDRPDR iter NAT44 env 5
+ - 121 # rls2009 NDRPDR iter NAT44 env 5
+ - 122 # rls2009 NDRPDR iter NAT44 env 5
+ - 123 # rls2009 NDRPDR iter NAT44 env 5
+ - 126 # rls2009 NDRPDR iter NAT44 env 5
plot-vpp-hdrh-lat-2n-clx:
csit-vpp-perf-report-iterative-2009-2n-clx:
- 36 # rls2009 NDRPDR iter env 5
+ plot-vpp-hdrh-lat-2n-clx-nat44:
+ csit-vpp-perf-report-iterative-2009-2n-clx:
+ - 123 # rls2009 NDRPDR iter NAT44 env 5
+
plot-vpp-nfv-2n-clx-ndrpdr:
csit-vpp-perf-report-iterative-2009-2n-clx:
- 37 # rls2009 nf-density iter env 5
@@ -400,20 +448,23 @@
# 3n-tsh
plot-vpp-throughput-lat-tsa-3n-tsh:
- # TODO: Add:
csit-vpp-perf-report-iterative-2009-3n-tsh:
- 14 # rls2009 NDRPDR iter env 5
- 20 # rls2009 NDRPDR iter env 5
- 21 # rls2009 NDRPDR iter env 5
- 22 # rls2009 NDRPDR iter env 5
- 23 # rls2009 NDRPDR iter env 5
+ - 28 # rls2009 NDRPDR iter env 5
+ - 30 # rls2009 NDRPDR iter env 5
+ - 33 # rls2009 NDRPDR iter env 5
+ - 38 # rls2009 NDRPDR iter env 5
+ - 41 # rls2009 NDRPDR iter env 5
plot-vpp-hdrh-lat-3n-tsh:
csit-vpp-perf-report-iterative-2009-3n-tsh:
- 14 # rls2009 NDRPDR iter env 5
plot-dpdk-throughput-latency-3n-tsh:
- # TODO: Add:
csit-dpdk-perf-report-iterative-2009-3n-tsh:
- 1 # NDRPDR iter env5
- 2 # NDRPDR iter env5
@@ -424,6 +475,7 @@
- 7 # NDRPDR iter env5
- 9 # NDRPDR iter env5
- 10 # NDRPDR iter env5
+ - 11 # NDRPDR iter env5
plot-dpdk-hdrh-lat-3n-tsh:
csit-dpdk-perf-report-iterative-2009-3n-tsh:
@@ -497,16 +549,16 @@
- 44 # rls2009 NDRPDR iter env 5
- 46 # rls2009 NDRPDR iter env 5
- 48 # rls2009 NDRPDR iter env 5
- - 51 # rls2009 NDRPDR iter NAT44 env 5
- - 52 # rls2009 NDRPDR iter NAT44 env 5
- - 53 # rls2009 NDRPDR iter NAT44 env 5
- - 54 # rls2009 NDRPDR iter NAT44 env 5
- - 55 # rls2009 NDRPDR iter NAT44 env 5
- - 56 # rls2009 NDRPDR iter NAT44 env 5
- - 57 # rls2009 NDRPDR iter NAT44 env 5
- - 58 # rls2009 NDRPDR iter NAT44 env 5
- - 59 # rls2009 NDRPDR iter NAT44 env 5
- - 60 # rls2009 NDRPDR iter NAT44 env 5
+ - 110 # rls2009 NDRPDR iter NAT44 env 5
+ - 111 # rls2009 NDRPDR iter NAT44 env 5
+ - 112 # rls2009 NDRPDR iter NAT44 env 5
+ - 113 # rls2009 NDRPDR iter NAT44 env 5
+ - 114 # rls2009 NDRPDR iter NAT44 env 5
+ - 115 # rls2009 NDRPDR iter NAT44 env 5
+ - 116 # rls2009 NDRPDR iter NAT44 env 5
+ - 118 # rls2009 NDRPDR iter NAT44 env 5
+ - 119 # rls2009 NDRPDR iter NAT44 env 5
+ - 121 # rls2009 NDRPDR iter NAT44 env 5
vpp-nic-comparison-3n-skx-mrr:
csit-vpp-perf-report-iterative-2009-3n-skx:
@@ -514,7 +566,7 @@
vpp-nic-comparison-2n-skx-mrr:
csit-vpp-perf-report-iterative-2009-2n-skx:
- - 26 # rls2009 MRR iter env 5
+ - 120 # rls2009 MRR iter env 5
# Results
@@ -557,7 +609,6 @@
- 37 # rls2009 NDRPDR cov 3n-hsw-vhost-02
vpp-perf-results-3n-skx:
- # TODO: Add:
csit-vpp-perf-report-coverage-2009-3n-skx:
- 36 # rls2009 NDRPDR cov 3n-skx-crypto-00
- 3 # rls2009 NDRPDR cov 3n-skx-crypto-01
@@ -568,6 +619,7 @@
- 8 # rls2009 NDRPDR cov 3n-skx-ip4-02
- 9 # rls2009 NDRPDR cov 3n-skx-ip4-03
- 10 # rls2009 NDRPDR cov 3n-skx-ip4-04
+ - 38 # rls2009 NDRPDR cov 3n-skx-ip4-05
- 12 # rls2009 NDRPDR cov 3n-skx-ip4-06
- 39 # rls2009 NDRPDR cov 3n-skx-ip4-07
- 14 # rls2009 NDRPDR cov 3n-skx-ip4tun-00
@@ -582,13 +634,18 @@
- 23 # rls2009 NDRPDR cov 3n-skx-l2-03
- 24 # rls2009 NDRPDR cov 3n-skx-l2-04
- 41 # rls2009 NDRPDR cov 3n-skx-l2-05
+ - 42 # rls2009 NDRPDR cov 3n-skx-l2-06
- 43 # rls2009 NDRPDR cov 3n-skx-l2-07
- 28 # rls2009 NDRPDR cov 3n-skx-l2-08
- 44 # rls2009 NDRPDR cov 3n-skx-l2-09
- 45 # rls2009 NDRPDR cov 3n-skx-l2-10
- 46 # rls2009 NDRPDR cov 3n-skx-memif-00
- 47 # rls2009 NDRPDR cov 3n-skx-srv6-00
+ - 48 # rls2009 NDRPDR cov 3n-skx-srv6-01
+ - 49 # rls2009 NDRPDR cov 3n-skx-vhost-00
+ - 50 # rls2009 NDRPDR cov 3n-skx-vhost-01
- 51 # rls2009 NDRPDR cov 3n-skx-vhost-02
+ - 54 # rls2009 NDRPDR cov 3n-skx-vhost-03
vpp-perf-results-2n-skx:
csit-vpp-perf-report-coverage-2009-2n-skx:
@@ -597,7 +654,9 @@
- 10 # rls2009 NDRPDR cov 2n-skx-ip4-02
- 20 # rls2009 NDRPDR cov 2n-skx-ip4-03
- 21 # rls2009 NDRPDR cov 2n-skx-ip4-04
- - 13 # rls2009 NDRPDR cov 2n-skx-ip4-05
+ - 31 # rls2009 NDRPDR cov 2n-skx-ip4-05
+ - 32 # rls2009 NDRPDR cov 2n-skx-ip4-06
+ - 33 # rls2009 NDRPDR cov 2n-skx-ip4-07
- 22 # rls2009 NDRPDR cov 2n-skx-ip6-00
- 23 # rls2009 NDRPDR cov 2n-skx-ip6-01
- 24 # rls2009 NDRPDR cov 2n-skx-l2-00
@@ -608,6 +667,10 @@
- 29 # rls2009 NDRPDR cov 2n-skx-vhost-01
- 30 # rls2009 NDRPDR cov 2n-skx-vts-00
+ vpp-perf-results-2n-zn2:
+ csit-vpp-perf-report-iterative-2009-2n-zn2:
+ - 18 # rls2009 NDRPDR iter env 5
+
vpp-perf-results-2n-clx:
csit-vpp-perf-report-coverage-2009-2n-clx:
- 2 # rls2009 NDRPDR cov 2n-clx-ip4-00
@@ -615,7 +678,9 @@
- 4 # rls2009 NDRPDR cov 2n-clx-ip4-02
- 5 # rls2009 NDRPDR cov 2n-clx-ip4-03
- 6 # rls2009 NDRPDR cov 2n-clx-ip4-04
- - 7 # rls2009 NDRPDR cov 2n-clx-ip4-05
+ - 23 # rls2009 NDRPDR cov 2n-clx-ip4-05
+ - 24 # rls2009 NDRPDR cov 2n-clx-ip4-06
+ - 25 # rls2009 NDRPDR cov 2n-clx-ip4-07
- 22 # rls2009 NDRPDR cov 2n-clx-ip6-00
- 9 # rls2009 NDRPDR cov 2n-clx-ip6-01
- 17 # rls2009 NDRPDR cov 2n-clx-l2-00
@@ -661,15 +726,19 @@
vpp-mrr-results-2n-skx:
csit-vpp-perf-report-iterative-2009-2n-skx:
- - 26 # rls2009 MRR iter env 5
+ - 120 # rls2009 MRR iter env 5
+
+ vpp-mrr-results-2n-zn2:
+ csit-vpp-perf-report-iterative-2009-2n-zn2:
+ - 15 # rls2009 MRR iter env 5
vpp-mrr-results-2n-clx:
csit-vpp-perf-report-iterative-2009-2n-clx:
- - 78 # rls2009 MRR iter env 5
+ - 125 # rls2009 MRR iter env 5
vpp-mrr-results-3n-tsh:
csit-vpp-perf-report-iterative-2009-3n-tsh:
- - 15 # rls2006 MRR iter env 5
+ - 15 # rls2009 MRR iter env 5
vpp-mrr-results-3n-dnv:
csit-vpp-perf-report-iterative-2009-3n-dnv:
@@ -695,6 +764,10 @@
csit-dpdk-perf-report-iterative-2009-2n-skx:
- 4 # NDRPDR iter env5
+ dpdk-perf-results-2n-zn2:
+ csit-dpdk-perf-report-iterative-2009-2n-zn2:
+ - 16 # NDRPDR iter env5
+
dpdk-perf-results-2n-clx:
csit-dpdk-perf-report-iterative-2009-2n-clx:
- 4 # NDRPDR iter env5
@@ -787,6 +860,12 @@
- 18 # rls2005 NDRPDR iter env 5
- 19 # rls2005 NDRPDR iter env 5
- 41 # rls2005 NDRPDR iter env 5
+ - 43 # rls2005 NDRPDR iter env 5
+ - 44 # rls2005 NDRPDR iter env 5
+ - 45 # rls2005 NDRPDR iter env 5
+ - 46 # rls2005 NDRPDR iter env 5
+ - 48 # rls2005 NDRPDR iter env 5
+ - 49 # rls2005 NDRPDR iter env 5
vpp-performance-changes-3n-skx-cmp:
csit-vpp-perf-report-iterative-2009-3n-skx:
- 26 # rls2009 NDRPDR iter env 5
@@ -844,16 +923,16 @@
- 44 # rls2009 NDRPDR iter env 5
- 46 # rls2009 NDRPDR iter env 5
- 48 # rls2009 NDRPDR iter env 5
- - 51 # rls2009 NDRPDR iter NAT44 env 5
- - 52 # rls2009 NDRPDR iter NAT44 env 5
- - 53 # rls2009 NDRPDR iter NAT44 env 5
- - 54 # rls2009 NDRPDR iter NAT44 env 5
- - 55 # rls2009 NDRPDR iter NAT44 env 5
- - 56 # rls2009 NDRPDR iter NAT44 env 5
- - 57 # rls2009 NDRPDR iter NAT44 env 5
- - 58 # rls2009 NDRPDR iter NAT44 env 5
- - 59 # rls2009 NDRPDR iter NAT44 env 5
- - 60 # rls2009 NDRPDR iter NAT44 env 5
+ - 110 # rls2009 NDRPDR iter NAT44 env 5
+ - 111 # rls2009 NDRPDR iter NAT44 env 5
+ - 112 # rls2009 NDRPDR iter NAT44 env 5
+ - 113 # rls2009 NDRPDR iter NAT44 env 5
+ - 114 # rls2009 NDRPDR iter NAT44 env 5
+ - 115 # rls2009 NDRPDR iter NAT44 env 5
+ - 116 # rls2009 NDRPDR iter NAT44 env 5
+ - 118 # rls2009 NDRPDR iter NAT44 env 5
+ - 119 # rls2009 NDRPDR iter NAT44 env 5
+ - 121 # rls2009 NDRPDR iter NAT44 env 5
vpp-performance-changes-2n-clx-h1:
csit-vpp-perf-report-iterative-2005-2n-clx:
@@ -894,13 +973,23 @@
- 36 # rls2009 NDRPDR iter env 5
- 39 # rls2009 NDRPDR iter env 5
- 40 # rls2009 NDRPDR iter env 5
- - 42 # rls2009 NDRPDR iter env 5
- 65 # rls2009 NDRPDR iter env 5
- 66 # rls2009 NDRPDR iter env 5
- 79 # rls2009 NDRPDR iter env 5
- 82 # rls2009 NDRPDR iter env 5
+ - 88 # rls2009 NDRPDR iter env 5
- 89 # rls2009 NDRPDR iter env 5
- 90 # rls2009 NDRPDR iter env 5
+ - 114 # rls2009 NDRPDR iter NAT44 env 5
+ - 115 # rls2009 NDRPDR iter NAT44 env 5
+ - 116 # rls2009 NDRPDR iter NAT44 env 5
+ - 117 # rls2009 NDRPDR iter NAT44 env 5
+ - 118 # rls2009 NDRPDR iter NAT44 env 5
+ - 119 # rls2009 NDRPDR iter NAT44 env 5
+ - 121 # rls2009 NDRPDR iter NAT44 env 5
+ - 122 # rls2009 NDRPDR iter NAT44 env 5
+ - 123 # rls2009 NDRPDR iter NAT44 env 5
+ - 126 # rls2009 NDRPDR iter NAT44 env 5
vpp-performance-changes-2n-dnv-h1:
csit-vpp-perf-verify-2001-2n-dnv:
@@ -1000,14 +1089,23 @@
- 12 # rls2005 NDRPDR iter env 5
- 24 # rls2005 NDRPDR iter env 5
- 27 # rls2005 NDRPDR iter env 5
+ - 29 # rls2005 NDRPDR iter env 5
+ - 31 # rls2005 NDRPDR iter env 5
+ - 39 # rls2005 NDRPDR iter env 5
+ - 40 # rls2005 NDRPDR iter env 5
+ - 42 # rls2005 NDRPDR iter env 5
vpp-performance-changes-3n-tsh-cmp:
- # TODO: Add:
csit-vpp-perf-report-iterative-2009-3n-tsh:
- 14 # rls2009 NDRPDR iter env 5
- 20 # rls2009 NDRPDR iter env 5
- 21 # rls2009 NDRPDR iter env 5
- 22 # rls2009 NDRPDR iter env 5
- 23 # rls2009 NDRPDR iter env 5
+ - 28 # rls2009 NDRPDR iter env 5
+ - 30 # rls2009 NDRPDR iter env 5
+ - 33 # rls2009 NDRPDR iter env 5
+ - 38 # rls2009 NDRPDR iter env 5
+ - 41 # rls2009 NDRPDR iter env 5
vpp-soak-vs-ndr-2n-skx-ref:
csit-vpp-perf-report-iterative-2009-2n-skx:
@@ -1045,11 +1143,11 @@
- 36 # rls2009 NDRPDR iter env 5
- 39 # rls2009 NDRPDR iter env 5
- 40 # rls2009 NDRPDR iter env 5
- - 42 # rls2009 NDRPDR iter env 5
- 65 # rls2009 NDRPDR iter env 5
- 66 # rls2009 NDRPDR iter env 5
- 79 # rls2009 NDRPDR iter env 5
- 82 # rls2009 NDRPDR iter env 5
+ - 88 # rls2009 NDRPDR iter env 5
- 89 # rls2009 NDRPDR iter env 5
- 90 # rls2009 NDRPDR iter env 5
vpp-soak-vs-ndr-2n-clx-cmp:
@@ -1061,11 +1159,11 @@
- 36 # rls2009 NDRPDR iter env 5
- 39 # rls2009 NDRPDR iter env 5
- 40 # rls2009 NDRPDR iter env 5
- - 42 # rls2009 NDRPDR iter env 5
- 65 # rls2009 NDRPDR iter env 5
- 66 # rls2009 NDRPDR iter env 5
- 79 # rls2009 NDRPDR iter env 5
- 82 # rls2009 NDRPDR iter env 5
+ - 88 # rls2009 NDRPDR iter env 5
- 89 # rls2009 NDRPDR iter env 5
- 90 # rls2009 NDRPDR iter env 5
- 33 # rls2009 soak env 5
@@ -1110,7 +1208,7 @@
- 20 # rls2005 MRR iter env 5
vpp-performance-changes-2n-skx-mrr-cmp:
csit-vpp-perf-report-iterative-2009-2n-skx:
- - 26 # rls2009 MRR iter env 5
+ - 120 # rls2009 MRR iter env 5
vpp-performance-changes-2n-clx-mrr-h1:
csit-vpp-perf-verify-2001-2n-clx:
@@ -1123,7 +1221,7 @@
- 77 # rls2005 MRR iter env 5
vpp-performance-changes-2n-clx-mrr-cmp:
csit-vpp-perf-report-iterative-2009-2n-clx:
- - 78 # rls2009 MRR iter env 5
+ - 125 # rls2009 MRR iter env 5
vpp-performance-changes-2n-dnv-mrr-h1:
csit-vpp-perf-verify-2001-2n-dnv:
@@ -1156,7 +1254,7 @@
- 13 # rls2005 MRR iter env 5
vpp-performance-changes-3n-tsh-mrr-cmp:
csit-vpp-perf-report-iterative-2009-3n-tsh:
- - 15 # rls2006 MRR iter env 5
+ - 15 # rls2009 MRR iter env 5
dpdk-performance-changes-3n-hsw-h1:
csit-dpdk-perf-verify-2001-3n-hsw:
@@ -1398,7 +1496,6 @@
csit-dpdk-perf-report-iterative-2005-3n-tsh:
- 5 # NDRPDR sel
dpdk-performance-changes-3n-tsh-cmp:
- # TODO: Add:
csit-dpdk-perf-report-iterative-2009-3n-tsh:
- 1 # NDRPDR iter env5
- 2 # NDRPDR iter env5
@@ -1409,6 +1506,7 @@
- 7 # NDRPDR iter env5
- 9 # NDRPDR iter env5
- 10 # NDRPDR iter env5
+ - 11 # NDRPDR iter env5
# Compare testbeds
@@ -1449,28 +1547,38 @@
- 44 # rls2009 NDRPDR iter env 5
- 46 # rls2009 NDRPDR iter env 5
- 48 # rls2009 NDRPDR iter env 5
- - 51 # rls2009 NDRPDR iter NAT44 env 5
- - 52 # rls2009 NDRPDR iter NAT44 env 5
- - 53 # rls2009 NDRPDR iter NAT44 env 5
- - 54 # rls2009 NDRPDR iter NAT44 env 5
- - 55 # rls2009 NDRPDR iter NAT44 env 5
- - 56 # rls2009 NDRPDR iter NAT44 env 5
- - 57 # rls2009 NDRPDR iter NAT44 env 5
- - 58 # rls2009 NDRPDR iter NAT44 env 5
- - 59 # rls2009 NDRPDR iter NAT44 env 5
- - 60 # rls2009 NDRPDR iter NAT44 env 5
+ - 110 # rls2009 NDRPDR iter NAT44 env 5
+ - 111 # rls2009 NDRPDR iter NAT44 env 5
+ - 112 # rls2009 NDRPDR iter NAT44 env 5
+ - 113 # rls2009 NDRPDR iter NAT44 env 5
+ - 114 # rls2009 NDRPDR iter NAT44 env 5
+ - 115 # rls2009 NDRPDR iter NAT44 env 5
+ - 116 # rls2009 NDRPDR iter NAT44 env 5
+ - 118 # rls2009 NDRPDR iter NAT44 env 5
+ - 119 # rls2009 NDRPDR iter NAT44 env 5
+ - 121 # rls2009 NDRPDR iter NAT44 env 5
vpp-compare-testbeds-skx-clx-cmp:
csit-vpp-perf-report-iterative-2009-2n-clx:
- 36 # rls2009 NDRPDR iter env 5
- 39 # rls2009 NDRPDR iter env 5
- 40 # rls2009 NDRPDR iter env 5
- - 42 # rls2009 NDRPDR iter env 5
- 65 # rls2009 NDRPDR iter env 5
- 66 # rls2009 NDRPDR iter env 5
- 79 # rls2009 NDRPDR iter env 5
- 82 # rls2009 NDRPDR iter env 5
+ - 88 # rls2009 NDRPDR iter env 5
- 89 # rls2009 NDRPDR iter env 5
- 90 # rls2009 NDRPDR iter env 5
+ - 114 # rls2009 NDRPDR iter NAT44 env 5
+ - 115 # rls2009 NDRPDR iter NAT44 env 5
+ - 116 # rls2009 NDRPDR iter NAT44 env 5
+ - 117 # rls2009 NDRPDR iter NAT44 env 5
+ - 118 # rls2009 NDRPDR iter NAT44 env 5
+ - 119 # rls2009 NDRPDR iter NAT44 env 5
+ - 121 # rls2009 NDRPDR iter NAT44 env 5
+ - 122 # rls2009 NDRPDR iter NAT44 env 5
+ - 123 # rls2009 NDRPDR iter NAT44 env 5
+ - 126 # rls2009 NDRPDR iter NAT44 env 5
vpp-compare-testbeds-hsw-clx-ref:
csit-vpp-perf-report-iterative-2009-3n-hsw:
@@ -1489,11 +1597,11 @@
- 36 # rls2009 NDRPDR iter env 5
- 39 # rls2009 NDRPDR iter env 5
- 40 # rls2009 NDRPDR iter env 5
- - 42 # rls2009 NDRPDR iter env 5
- 65 # rls2009 NDRPDR iter env 5
- 66 # rls2009 NDRPDR iter env 5
- 79 # rls2009 NDRPDR iter env 5
- 82 # rls2009 NDRPDR iter env 5
+ - 88 # rls2009 NDRPDR iter env 5
- 89 # rls2009 NDRPDR iter env 5
- 90 # rls2009 NDRPDR iter env 5
@@ -1506,17 +1614,17 @@
vpp-compare-testbeds-mrr-skx-clx-ref:
csit-vpp-perf-report-iterative-2009-2n-skx:
- - 26 # rls2009 MRR iter env 5
+ - 120 # rls2009 MRR iter env 5
vpp-compare-testbeds-mrr-skx-clx-cmp:
csit-vpp-perf-report-iterative-2009-2n-clx:
- - 78 # rls2009 MRR iter env 5
+ - 125 # rls2009 MRR iter env 5
vpp-compare-testbeds-mrr-hsw-clx-ref:
csit-vpp-perf-report-iterative-2009-3n-hsw:
- 23 # rls2009 MRR iter env 5
vpp-compare-testbeds-mrr-hsw-clx-cmp:
csit-vpp-perf-report-iterative-2009-2n-clx:
- - 78 # rls2009 MRR iter env 5
+ - 125 # rls2009 MRR iter env 5
dpdk-compare-testbeds-ref:
csit-dpdk-perf-report-iterative-2009-3n-hsw:
@@ -1600,7 +1708,7 @@
- 24 # rls2009 MRR iter env 5
vpp-compare-topologies-mrr-cmp:
csit-vpp-perf-report-iterative-2009-2n-skx:
- - 26 # rls2009 MRR iter env 5
+ - 120 # rls2009 MRR iter env 5
dpdk-compare-topologies-ref:
csit-dpdk-perf-report-iterative-2009-3n-skx:
@@ -1825,6 +1933,116 @@
hoverlabel:
namelength: -1
+ plot-throughput-gbps:
+ titlefont:
+ size: 16
+ xaxis:
+ title: "<b>Test Cases [Index]</b>"
+ titlefont:
+ size: 14
+ autorange: True
+ fixedrange: False
+ gridcolor: "rgb(230, 230, 230)"
+ linecolor: "rgb(220, 220, 220)"
+ linewidth: 1
+ showgrid: True
+ showline: True
+ showticklabels: True
+ tickcolor: "rgb(220, 220, 220)"
+ tickmode: "linear"
+ tickfont:
+ size: 14
+ zeroline: False
+ yaxis:
+ title: "<b>Packet Throughput [Gbps]</b>"
+ titlefont:
+ size: 14
+ gridcolor: "rgb(230, 230, 230)"
+ hoverformat: ".4r"
+ tickformat: ".3r"
+ linecolor: "rgb(220, 220, 220)"
+ linewidth: 1
+ showgrid: True
+ showline: True
+ showticklabels: True
+ tickcolor: "rgb(220, 220, 220)"
+ tickfont:
+ size: 14
+ zeroline: False
+ range: [0,10]
+ autosize: False
+ margin:
+ t: 50
+ b: 0
+ l: 80
+ r: 20
+ showlegend: True
+ legend:
+ orientation: "h"
+ font:
+ size: 14
+ width: 700
+ height: 900
+ paper_bgcolor: "#fff"
+ plot_bgcolor: "#fff"
+ hoverlabel:
+ namelength: -1
+
+ plot-cps:
+ titlefont:
+ size: 16
+ xaxis:
+ title: "<b>Test Cases [Index]</b>"
+ titlefont:
+ size: 14
+ autorange: True
+ fixedrange: False
+ gridcolor: "rgb(230, 230, 230)"
+ linecolor: "rgb(220, 220, 220)"
+ linewidth: 1
+ showgrid: True
+ showline: True
+ showticklabels: True
+ tickcolor: "rgb(220, 220, 220)"
+ tickmode: "linear"
+ tickfont:
+ size: 14
+ zeroline: False
+ yaxis:
+ title: "<b>Connection Rate [Mcps]</b>"
+ titlefont:
+ size: 14
+ gridcolor: "rgb(230, 230, 230)"
+ hoverformat: ".4r"
+ tickformat: ".3s"
+ linecolor: "rgb(220, 220, 220)"
+ linewidth: 1
+ showgrid: True
+ showline: True
+ showticklabels: True
+ tickcolor: "rgb(220, 220, 220)"
+ tickfont:
+ size: 14
+ zeroline: False
+ range: [0,10]
+ autosize: False
+ margin:
+ t: 50
+ b: 0
+ l: 80
+ r: 20
+ showlegend: True
+ legend:
+ orientation: "h"
+ font:
+ size: 14
+ width: 700
+ height: 900
+ paper_bgcolor: "#fff"
+ plot_bgcolor: "#fff"
+ hoverlabel:
+ namelength: -1
+
plot-throughput-speedup-analysis:
titlefont:
size: 16
@@ -1921,6 +2139,198 @@
},
]
+ plot-throughput-speedup-analysis-gbps:
+ titlefont:
+ size: 16
+ xaxis:
+ title: "<b>Number of Cores [Qty]</b>"
+ titlefont:
+ size: 14
+ autorange: True
+ fixedrange: False
+ gridcolor: "rgb(230, 230, 230)"
+ linecolor: "rgb(220, 220, 220)"
+ linewidth: 1
+ showgrid: True
+ showline: True
+ showticklabels: True
+ tickcolor: "rgb(238, 238, 238)"
+ tickmode: "linear"
+ tickfont:
+ size: 14
+ zeroline: False
+ yaxis:
+ title: "<b>Packet Throughput [Gbps]</b>"
+ titlefont:
+ size: 14
+ type: "linear"
+ gridcolor: "rgb(230, 230, 230)"
+ hoverformat: ".4s"
+ linecolor: "rgb(220, 220, 220)"
+ linewidth: 1
+ showgrid: True
+ showline: True
+ showticklabels: True
+ tickcolor: "rgb(220, 220, 220)"
+ tickformat: ".4s"
+ tickfont:
+ size: 14
+ zeroline: True
+ rangemode: "tozero"
+ range: [0,100]
+ legend:
+ orientation: "h"
+ font:
+ size: 14
+ xanchor: "left"
+ yanchor: "top"
+ x: 0
+ y: -0.2
+ bgcolor: "rgba(255, 255, 255, 0)"
+ bordercolor: "rgba(255, 255, 255, 0)"
+ traceorder: "normal" # "grouped" does not work: bug https://github.com/plotly/plotly.js/issues/1913
+ autosize: False
+ margin:
+ 't': 50
+ 'b': 150
+ 'l': 85
+ 'r': 10
+ showlegend: True
+ width: 700
+ height: 700
+ paper_bgcolor: "#fff"
+ plot_bgcolor: "#fff"
+ hoverlabel:
+ namelength: -1
+ annotations: [
+ {
+ text: "_ _ __",
+ align: "left",
+ showarrow: False,
+ xref: "paper",
+ yref: "paper",
+ xanchor: "left",
+ yanchor: "top",
+ x: 0,
+ y: -0.13,
+ font: {
+ family: "Consolas, Courier New",
+ size: 13
+ },
+ },
+ {
+ text: " Perfect Measured",
+ align: "left",
+ showarrow: False,
+ xref: "paper",
+ yref: "paper",
+ xanchor: "left",
+ yanchor: "top",
+ x: 0,
+ y: -0.15,
+ font: {
+ family: "Consolas, Courier New",
+ size: 13
+ },
+ },
+ ]
+
+ plot-throughput-speedup-analysis-cps:
+ titlefont:
+ size: 16
+ xaxis:
+ title: "<b>Number of Cores [Qty]</b>"
+ titlefont:
+ size: 14
+ autorange: True
+ fixedrange: False
+ gridcolor: "rgb(230, 230, 230)"
+ linecolor: "rgb(220, 220, 220)"
+ linewidth: 1
+ showgrid: True
+ showline: True
+ showticklabels: True
+ tickcolor: "rgb(238, 238, 238)"
+ tickmode: "linear"
+ tickfont:
+ size: 14
+ zeroline: False
+ yaxis:
+ title: "<b>Connection Rate [Mcps]</b>"
+ titlefont:
+ size: 14
+ type: "linear"
+ gridcolor: "rgb(230, 230, 230)"
+ hoverformat: ".4s"
+ linecolor: "rgb(220, 220, 220)"
+ linewidth: 1
+ showgrid: True
+ showline: True
+ showticklabels: True
+ tickcolor: "rgb(220, 220, 220)"
+ tickformat: ".4s"
+ tickfont:
+ size: 14
+ zeroline: True
+ rangemode: "tozero"
+ range: [0,100]
+ legend:
+ orientation: "h"
+ font:
+ size: 14
+ xanchor: "left"
+ yanchor: "top"
+ x: 0
+ y: -0.2
+ bgcolor: "rgba(255, 255, 255, 0)"
+ bordercolor: "rgba(255, 255, 255, 0)"
+ traceorder: "normal" # "grouped" does not work: bug https://github.com/plotly/plotly.js/issues/1913
+ autosize: False
+ margin:
+ 't': 50
+ 'b': 150
+ 'l': 85
+ 'r': 10
+ showlegend: True
+ width: 700
+ height: 700
+ paper_bgcolor: "#fff"
+ plot_bgcolor: "#fff"
+ hoverlabel:
+ namelength: -1
+ annotations: [
+ {
+ text: "_ _ __",
+ align: "left",
+ showarrow: False,
+ xref: "paper",
+ yref: "paper",
+ xanchor: "left",
+ yanchor: "top",
+ x: 0,
+ y: -0.13,
+ font: {
+ family: "Consolas, Courier New",
+ size: 13
+ },
+ },
+ {
+ text: " Perfect Measured",
+ align: "left",
+ showarrow: False,
+ xref: "paper",
+ yref: "paper",
+ xanchor: "left",
+ yanchor: "top",
+ x: 0,
+ y: -0.15,
+ font: {
+ family: "Consolas, Courier New",
+ size: 13
+ },
+ },
+ ]
+
plot-latency:
titlefont:
size: 16
@@ -2279,13 +2689,18 @@
- 53 # NDRPDR sel 2001.0-4
- 54 # NDRPDR sel 2001.0-4
- 49 # MRR sel env 4
- # TODO: Add:
csit-vpp-perf-report-iterative-2009-3n-skx:
- 17 # rls2005 MRR iter env 5
- 13 # rls2005 NDRPDR iter env 5
- 18 # rls2005 NDRPDR iter env 5
- 19 # rls2005 NDRPDR iter env 5
- 41 # rls2005 NDRPDR iter env 5
+ - 43 # rls2005 NDRPDR iter env 5
+ - 44 # rls2005 NDRPDR iter env 5
+ - 45 # rls2005 NDRPDR iter env 5
+ - 46 # rls2005 NDRPDR iter env 5
+ - 48 # rls2005 NDRPDR iter env 5
+ - 49 # rls2005 NDRPDR iter env 5
- 24 # rls2009 MRR iter env 5
- 26 # rls2009 NDRPDR iter env 5
- 27 # rls2009 NDRPDR iter env 5
@@ -2297,7 +2712,6 @@
- 38 # rls2009 NDRPDR iter env 5
- 39 # rls2009 NDRPDR iter env 5
- 40 # rls2009 NDRPDR iter env 5
- # TODO: Add:
csit-vpp-perf-report-coverage-2009-3n-skx:
- 36 # rls2009 NDRPDR cov 3n-skx-crypto-00
- 3 # rls2009 NDRPDR cov 3n-skx-crypto-01
@@ -2308,6 +2722,7 @@
- 8 # rls2009 NDRPDR cov 3n-skx-ip4-02
- 9 # rls2009 NDRPDR cov 3n-skx-ip4-03
- 10 # rls2009 NDRPDR cov 3n-skx-ip4-04
+ - 38 # rls2009 NDRPDR cov 3n-skx-ip4-05
- 12 # rls2009 NDRPDR cov 3n-skx-ip4-06
- 39 # rls2009 NDRPDR cov 3n-skx-ip4-07
- 14 # rls2009 NDRPDR cov 3n-skx-ip4tun-00
@@ -2322,13 +2737,18 @@
- 23 # rls2009 NDRPDR cov 3n-skx-l2-03
- 24 # rls2009 NDRPDR cov 3n-skx-l2-04
- 41 # rls2009 NDRPDR cov 3n-skx-l2-05
+ - 42 # rls2009 NDRPDR cov 3n-skx-l2-06
- 43 # rls2009 NDRPDR cov 3n-skx-l2-07
- 28 # rls2009 NDRPDR cov 3n-skx-l2-08
- 44 # rls2009 NDRPDR cov 3n-skx-l2-09
- 45 # rls2009 NDRPDR cov 3n-skx-l2-10
- 46 # rls2009 NDRPDR cov 3n-skx-memif-00
- 47 # rls2009 NDRPDR cov 3n-skx-srv6-00
+ - 48 # rls2009 NDRPDR cov 3n-skx-srv6-01
+ - 49 # rls2009 NDRPDR cov 3n-skx-vhost-00
+ - 50 # rls2009 NDRPDR cov 3n-skx-vhost-01
- 51 # rls2009 NDRPDR cov 3n-skx-vhost-02
+ - 54 # rls2009 NDRPDR cov 3n-skx-vhost-03
csit-vpp-perf-verify-2001-2n-skx:
- 101 # MRR sel - old
@@ -2363,7 +2783,7 @@
- 23 # rls2005 NDRPDR iter env 5
- 24 # rls2005 NDRPDR iter env 5
- 25 # rls2005 NDRPDR iter env 5
- - 26 # rls2009 MRR iter env 5
+ - 120 # rls2009 MRR iter env 5
- 35 # rls2009 NDRPDR iter env 5
- 36 # rls2009 NDRPDR iter env 5
- 37 # rls2009 NDRPDR iter env 5
@@ -2374,16 +2794,16 @@
- 44 # rls2009 NDRPDR iter env 5
- 46 # rls2009 NDRPDR iter env 5
- 48 # rls2009 NDRPDR iter env 5
- - 51 # rls2009 NDRPDR iter NAT44 env 5
- - 52 # rls2009 NDRPDR iter NAT44 env 5
- - 53 # rls2009 NDRPDR iter NAT44 env 5
- - 54 # rls2009 NDRPDR iter NAT44 env 5
- - 55 # rls2009 NDRPDR iter NAT44 env 5
- - 56 # rls2009 NDRPDR iter NAT44 env 5
- - 57 # rls2009 NDRPDR iter NAT44 env 5
- - 58 # rls2009 NDRPDR iter NAT44 env 5
- - 59 # rls2009 NDRPDR iter NAT44 env 5
- - 60 # rls2009 NDRPDR iter NAT44 env 5
+ - 110 # rls2009 NDRPDR iter NAT44 env 5
+ - 111 # rls2009 NDRPDR iter NAT44 env 5
+ - 112 # rls2009 NDRPDR iter NAT44 env 5
+ - 113 # rls2009 NDRPDR iter NAT44 env 5
+ - 114 # rls2009 NDRPDR iter NAT44 env 5
+ - 115 # rls2009 NDRPDR iter NAT44 env 5
+ - 116 # rls2009 NDRPDR iter NAT44 env 5
+ - 118 # rls2009 NDRPDR iter NAT44 env 5
+ - 119 # rls2009 NDRPDR iter NAT44 env 5
+ - 121 # rls2009 NDRPDR iter NAT44 env 5
- 38 # rls2009 nf-density iter env 5
- 41 # rls2009 nf-density iter env 5
- 45 # rls2009 nf-density iter env 5
@@ -2413,7 +2833,9 @@
- 10 # rls2009 NDRPDR cov 2n-skx-ip4-02
- 20 # rls2009 NDRPDR cov 2n-skx-ip4-03
- 21 # rls2009 NDRPDR cov 2n-skx-ip4-04
- - 13 # rls2009 NDRPDR cov 2n-skx-ip4-05
+ - 31 # rls2009 NDRPDR cov 2n-skx-ip4-05
+ - 32 # rls2009 NDRPDR cov 2n-skx-ip4-06
+ - 33 # rls2009 NDRPDR cov 2n-skx-ip4-07
- 22 # rls2009 NDRPDR cov 2n-skx-ip6-00
- 23 # rls2009 NDRPDR cov 2n-skx-ip6-01
- 24 # rls2009 NDRPDR cov 2n-skx-l2-00
@@ -2458,17 +2880,27 @@
- 22 # rls2005 NDRPDR iter env 5
- 23 # rls2005 NDRPDR iter env 5
- 24 # rls2005 NDRPDR iter env 5
- - 78 # rls2009 MRR iter env 5
+ - 125 # rls2009 MRR iter env 5
- 36 # rls2009 NDRPDR iter env 5
- 39 # rls2009 NDRPDR iter env 5
- 40 # rls2009 NDRPDR iter env 5
- - 42 # rls2009 NDRPDR iter env 5
- 65 # rls2009 NDRPDR iter env 5
- 66 # rls2009 NDRPDR iter env 5
- 79 # rls2009 NDRPDR iter env 5
- 82 # rls2009 NDRPDR iter env 5
+ - 88 # rls2009 NDRPDR iter env 5
- 89 # rls2009 NDRPDR iter env 5
- 90 # rls2009 NDRPDR iter env 5
+ - 114 # rls2009 NDRPDR iter NAT44 env 5
+ - 115 # rls2009 NDRPDR iter NAT44 env 5
+ - 116 # rls2009 NDRPDR iter NAT44 env 5
+ - 117 # rls2009 NDRPDR iter NAT44 env 5
+ - 118 # rls2009 NDRPDR iter NAT44 env 5
+ - 119 # rls2009 NDRPDR iter NAT44 env 5
+ - 121 # rls2009 NDRPDR iter NAT44 env 5
+ - 122 # rls2009 NDRPDR iter NAT44 env 5
+ - 123 # rls2009 NDRPDR iter NAT44 env 5
+ - 126 # rls2009 NDRPDR iter NAT44 env 5
- 37 # rls2009 nf-density iter env 5
- 43 # rls2009 nf-density iter env 5
- 69 # rls2009 nf-density iter env 5
@@ -2498,7 +2930,9 @@
- 4 # rls2009 NDRPDR cov 2n-clx-ip4-02
- 5 # rls2009 NDRPDR cov 2n-clx-ip4-03
- 6 # rls2009 NDRPDR cov 2n-clx-ip4-04
- - 7 # rls2009 NDRPDR cov 2n-clx-ip4-05
+ - 23 # rls2009 NDRPDR cov 2n-clx-ip4-05
+ - 24 # rls2009 NDRPDR cov 2n-clx-ip4-06
+ - 25 # rls2009 NDRPDR cov 2n-clx-ip4-07
- 22 # rls2009 NDRPDR cov 2n-clx-ip6-00
- 9 # rls2009 NDRPDR cov 2n-clx-ip6-01
- 17 # rls2009 NDRPDR cov 2n-clx-l2-00
@@ -2509,6 +2943,14 @@
- 15 # rls2009 NDRPDR cov 2n-clx-vhost-01
- 16 # rls2009 NDRPDR cov 2n-clx-vts-00
+ csit-vpp-perf-report-iterative-2009-2n-zn2:
+ - 15 # rls2009 MRR iter env 5
+ - 17 # rls2009 NDRPDR iter env 5
+ - 18 # rls2009 NDRPDR iter env 5
+ - 31 # rls2009 NDRPDR iter env 5
+ - 33 # rls2009 NDRPDR iter env 5
+ - 34 # rls2009 NDRPDR iter env 5
+
csit-vpp-perf-verify-2001-3n-tsh:
- 9 # MRR sel
csit-vpp-perf-report-iterative-2005-3n-tsh:
@@ -2526,20 +2968,29 @@
- 29 # NDRPDR sel 2001.0-4
- 31 # NDRPDR sel 2001.0-4
- 27 # MRR sel env 4
- # TODO: Add:
csit-vpp-perf-report-iterative-2009-3n-tsh:
- 8 # rls2005 NDRPDR iter env 5
- 11 # rls2005 NDRPDR iter env 5
- 12 # rls2005 NDRPDR iter env 5
- 24 # rls2005 NDRPDR iter env 5
- 27 # rls2005 NDRPDR iter env 5
+ - 29 # rls2005 NDRPDR iter env 5
+ - 31 # rls2005 NDRPDR iter env 5
+ - 39 # rls2005 NDRPDR iter env 5
+ - 40 # rls2005 NDRPDR iter env 5
+ - 42 # rls2005 NDRPDR iter env 5
- 13 # rls2005 MRR iter env 5
- 14 # rls2009 NDRPDR iter env 5
- 20 # rls2009 NDRPDR iter env 5
- 21 # rls2009 NDRPDR iter env 5
- 22 # rls2009 NDRPDR iter env 5
- 23 # rls2009 NDRPDR iter env 5
- - 15 # rls2006 MRR iter env 5
+ - 28 # rls2009 NDRPDR iter env 5
+ - 30 # rls2009 NDRPDR iter env 5
+ - 33 # rls2009 NDRPDR iter env 5
+ - 38 # rls2009 NDRPDR iter env 5
+ - 41 # rls2009 NDRPDR iter env 5
+ - 15 # rls2009 MRR iter env 5
csit-vpp-perf-verify-2001-3n-dnv:
- 5 # NDRPDR sel
@@ -2806,6 +3257,15 @@
- 12 # NDRPDR iter env5
- 13 # NDRPDR iter env5
+ csit-dpdk-perf-report-iterative-2009-2n-zn2:
+ - 16 # NDRPDR iter env5
+ - 21 # NDRPDR iter env5
+ - 22 # NDRPDR iter env5
+ - 23 # NDRPDR iter env5
+ - 24 # NDRPDR iter env5
+ - 25 # NDRPDR iter env5
+ - 29 # NDRPDR iter env5
+
# csit-dpdk-perf-verify-2001-2n-dnv:
# - 9 # NDRPDR sel
# - 10 # NDRPDR sel
@@ -2851,7 +3311,6 @@
- 18 # NDRPDR sel
csit-dpdk-perf-report-iterative-2005-3n-tsh:
- 5 # NDRPDR sel
- # TODO: Add:
csit-dpdk-perf-report-iterative-2009-3n-tsh:
- 1 # NDRPDR iter env5
- 2 # NDRPDR iter env5
@@ -2862,6 +3321,7 @@
- 7 # NDRPDR iter env5
- 9 # NDRPDR iter env5
- 10 # NDRPDR iter env5
+ - 11 # NDRPDR iter env5
csit-vpp-device-2009-ubuntu1804-1n-skx:
- 131 # rls2009 env 5
@@ -5576,6 +6036,24 @@
- "parent"
- "msg"
+# Detailed Test Results - VPP Performance Results 2n-zn2
+- type: "table"
+ title: "Detailed Test Results - VPP Performance Results 2n-zn2"
+ algorithm: "table_merged_details"
+ output-file: "{DIR[DTR,PERF,VPP,2N,ZN2]}/"
+ columns:
+ - title: " |prein| Test Name |preout| "
+ data: "data name"
+ - title: " |prein| Throughput: |br| 1. Mpps Gbps (NDR) |br| 2. Mpps Gbps (PDR) |br| |br| One-Way Latency Percentiles in uSec at %PDR load, |br| one set per each direction: |br| 3. P50 P90 P99 P50 P90 P99 (10% PDR) |br| 4. P50 P90 P99 P50 P90 P99 (50% PDR) |br| 5. P50 P90 P99 P50 P90 P99 (90% PDR) |preout| "
+ data: "data msg"
+ data: "vpp-perf-results-2n-zn2"
+ filter: "all"
+ remove-ndr: False
+ parameters:
+ - "name"
+ - "parent"
+ - "msg"
+
# Detailed Test Results - VPP Performance Results 2n-clx
- type: "table"
title: "Detailed Test Results - VPP Performance Results 2n-clx"
@@ -5695,6 +6173,23 @@
- "name"
- "conf-history"
+# Test configuration - VPP Performance Test Configs 2n-zn2
+- type: "table"
+ title: "Test configuration - VPP Performance Test Configs 2n-zn2"
+ algorithm: "table_merged_details"
+ output-file: "{DIR[DTC,PERF,VPP,2N,ZN2]}/"
+ columns:
+ - title: " |prein| Test Name |preout| "
+ data: "data name"
+ - title: " |prein| VPP API Test Commands History - Commands Used Per Test Case |preout| "
+ data: "data conf-history"
+ data: "vpp-perf-results-2n-zn2"
+ filter: "all"
+ parameters:
+ - "parent"
+ - "name"
+ - "conf-history"
+
# Test configuration - VPP Performance Test Configs 2n-clx
- type: "table"
title: "Test configuration - VPP Performance Test Configs 2n-clx"
@@ -5787,6 +6282,14 @@
data: "vpp-perf-results-2n-skx"
filter: "all"
+# Test Operational Data - VPP Performance Operational Data 2n-zn2
+- type: "table"
+ title: "Test Operational Data - VPP Performance Operational Data 2n-zn2"
+ algorithm: "table_oper_data_html"
+ output-file: "{DIR[DTO,PERF,VPP,2N,ZN2]}/"
+ data: "vpp-perf-results-2n-zn2"
+ filter: "all"
+
# Test Operational Data - VPP Performance Operational Data 2n-clx
- type: "table"
title: "Test Operational Data - VPP Performance Operational Data 2n-clx"
@@ -5870,6 +6373,23 @@
- "parent"
- "msg"
+# Detailed Test Results - VPP MRR Results 2n-zn2
+- type: "table"
+ title: "Detailed Test Results - VPP MRR Results 2n-zn2"
+ algorithm: "table_merged_details"
+ output-file: "{DIR[DTR,MRR,VPP,2N,ZN2]}/"
+ columns:
+ - title: " |prein| Test Name |preout| "
+ data: "data name"
+ - title: " |prein| Maximum Receive Rate trial [Mpps] |preout| "
+ data: "data msg"
+ data: "vpp-mrr-results-2n-zn2"
+ filter: "all"
+ parameters:
+ - "name"
+ - "parent"
+ - "msg"
+
# Detailed Test Results - VPP MRR Results 2n-clx
- type: "table"
title: "Detailed Test Results - VPP MRR Results 2n-clx"
@@ -5989,6 +6509,23 @@
- "name"
- "conf-history"
+# Test configuration - VPP MRR Test Configs 2n-zn2
+- type: "table"
+ title: "Test configuration - VPP MRR Test Configs 2n-zn2"
+ algorithm: "table_merged_details"
+ output-file: "{DIR[DTC,MRR,VPP,2N,ZN2]}/"
+ columns:
+ - title: " |prein| Test Name |preout| "
+ data: "data name"
+ - title: " |prein| VPP API Test Commands History - Commands Used Per Test Case |preout| "
+ data: "data conf-history"
+ data: "vpp-mrr-results-2n-zn2"
+ filter: "all"
+ parameters:
+ - "parent"
+ - "name"
+ - "conf-history"
+
# Test configuration - VPP MRR Test Configs 2n-clx
- type: "table"
title: "Test configuration - VPP MRR Test Configs 2n-clx"
@@ -6917,6 +7454,24 @@
- "parent"
- "msg"
+# Detailed Test Results - DPDK Performance Results 2n-zn2
+- type: "table"
+ title: "Detailed Test Results - DPDK Performance Results 2n-zn2"
+ algorithm: "table_merged_details"
+ output-file: "{DIR[DTR,PERF,DPDK,2N,SKX]}/dpdk_performance_results_2n_zn2"
+ columns:
+ - title: " |prein| Test Name |preout| "
+ data: "data name"
+ - title: " |prein| Throughput: |br| 1. Mpps Gbps (NDR) |br| 2. Mpps Gbps (PDR) |br| |br| One-Way Latency Percentiles in uSec at %PDR load, |br| one set per each direction: |br| 3. P50 P90 P99 P50 P90 P99 (10% PDR) |br| 4. P50 P90 P99 P50 P90 P99 (50% PDR) |br| 5. P50 P90 P99 P50 P90 P99 (90% PDR) |preout| "
+ data: "data msg"
+ data: "dpdk-perf-results-2n-zn2"
+ filter: "all"
+ remove-ndr: False
+ parameters:
+ - "name"
+ - "parent"
+ - "msg"
+
# Detailed Test Results - DPDK Performance Results 2n-clx
- type: "table"
title: "Detailed Test Results - DPDK Performance Results 2n-clx"
@@ -6998,6 +7553,7 @@
- "{DIR[DTR,PERF,VPP,2N,SKX]}"
- "{DIR[DTR,PERF,VPP,3N,SKX]}"
- "{DIR[DTR,PERF,VPP,2N,CLX]}"
+ - "{DIR[DTR,PERF,VPP,2N,ZN2]}"
- "{DIR[DTR,PERF,VPP,3N,HSW]}"
- "{DIR[DTR,PERF,VPP,3N,TSH]}"
- "{DIR[DTR,PERF,VPP,2N,DNV]}"
@@ -7006,6 +7562,7 @@
- "vpp-perf-results-2n-skx"
- "vpp-perf-results-3n-skx"
- "vpp-perf-results-2n-clx"
+ - "vpp-perf-results-2n-zn2"
- "vpp-perf-results-3n-hsw"
- "vpp-perf-results-3n-tsh"
- "vpp-perf-results-2n-dnv"
@@ -7031,6 +7588,7 @@
- "2n-skx"
- "3n-skx"
- "2n-clx"
+ - "2n-zn2"
- "3n-hsw"
- "3n-tsh"
- "2n-dnv"
@@ -7054,6 +7612,7 @@
- "{DIR[DTC,PERF,VPP,2N,SKX]}"
- "{DIR[DTC,PERF,VPP,3N,SKX]}"
- "{DIR[DTC,PERF,VPP,2N,CLX]}"
+ - "{DIR[DTC,PERF,VPP,2N,ZN2]}"
- "{DIR[DTC,PERF,VPP,3N,HSW]}"
- "{DIR[DTC,PERF,VPP,3N,TSH]}"
- "{DIR[DTC,PERF,VPP,2N,DNV]}"
@@ -7062,6 +7621,7 @@
- "vpp-perf-results-2n-skx"
- "vpp-perf-results-3n-skx"
- "vpp-perf-results-2n-clx"
+ - "vpp-perf-results-2n-zn2"
- "vpp-perf-results-3n-hsw"
- "vpp-perf-results-3n-tsh"
- "vpp-perf-results-2n-dnv"
@@ -7087,6 +7647,7 @@
- "2n-skx"
- "3n-skx"
- "2n-clx"
+ - "2n-zn2"
- "3n-hsw"
- "3n-tsh"
- "2n-dnv"
@@ -7110,6 +7671,7 @@
- "{DIR[DTO,PERF,VPP,2N,SKX]}"
- "{DIR[DTO,PERF,VPP,3N,SKX]}"
- "{DIR[DTO,PERF,VPP,2N,CLX]}"
+ - "{DIR[DTO,PERF,VPP,2N,ZN2]}"
- "{DIR[DTO,PERF,VPP,3N,HSW]}"
- "{DIR[DTO,PERF,VPP,3N,TSH]}"
- "{DIR[DTO,PERF,VPP,2N,DNV]}"
@@ -7118,6 +7680,7 @@
- "vpp-perf-results-2n-skx"
- "vpp-perf-results-3n-skx"
- "vpp-perf-results-2n-clx"
+ - "vpp-perf-results-2n-zn2"
- "vpp-perf-results-3n-hsw"
- "vpp-perf-results-3n-tsh"
- "vpp-perf-results-2n-dnv"
@@ -7143,6 +7706,7 @@
- "2n-skx"
- "3n-skx"
- "2n-clx"
+ - "2n-zn2"
- "3n-hsw"
- "3n-tsh"
- "2n-dnv"
@@ -7166,6 +7730,7 @@
- "{DIR[DTR,MRR,VPP,2N,SKX]}"
- "{DIR[DTR,MRR,VPP,3N,SKX]}"
- "{DIR[DTR,MRR,VPP,2N,CLX]}"
+ - "{DIR[DTR,MRR,VPP,2N,ZN2]}"
- "{DIR[DTR,MRR,VPP,3N,HSW]}"
- "{DIR[DTR,MRR,VPP,3N,TSH]}"
- "{DIR[DTR,MRR,VPP,2N,DNV]}"
@@ -7174,6 +7739,7 @@
- "vpp-mrr-results-2n-skx"
- "vpp-mrr-results-3n-skx"
- "vpp-mrr-results-2n-clx"
+ - "vpp-mrr-results-2n-zn2"
- "vpp-mrr-results-3n-hsw"
- "vpp-mrr-results-3n-tsh"
- "vpp-mrr-results-2n-dnv"
@@ -7199,6 +7765,7 @@
- "2n-skx"
- "3n-skx"
- "2n-clx"
+ - "2n-zn2"
- "3n-hsw"
- "3n-tsh"
- "2n-dnv"
@@ -7222,6 +7789,7 @@
- "{DIR[DTC,MRR,VPP,2N,SKX]}"
- "{DIR[DTC,MRR,VPP,3N,SKX]}"
- "{DIR[DTC,MRR,VPP,2N,CLX]}"
+ - "{DIR[DTC,MRR,VPP,2N,ZN2]}"
- "{DIR[DTC,MRR,VPP,3N,HSW]}"
- "{DIR[DTC,MRR,VPP,3N,TSH]}"
- "{DIR[DTC,MRR,VPP,2N,DNV]}"
@@ -7230,6 +7798,7 @@
- "vpp-mrr-results-2n-skx"
- "vpp-mrr-results-3n-skx"
- "vpp-mrr-results-2n-clx"
+ - "vpp-mrr-results-2n-zn2"
- "vpp-mrr-results-3n-hsw"
- "vpp-mrr-results-3n-tsh"
- "vpp-mrr-results-2n-dnv"
@@ -7255,6 +7824,7 @@
- "2n-skx"
- "3n-skx"
- "2n-clx"
+ - "2n-zn2"
- "3n-hsw"
- "3n-tsh"
- "2n-dnv"
@@ -7319,6 +7889,16 @@
filter: "all"
data-start-level: 4
+# DPDK Performance Results 2n-zn2
+- type: "file"
+ title: "DPDK Performance Results 2n-zn2"
+ algorithm: "file_test_results"
+ output-file: "{DIR[DTR,PERF,DPDK,2N,ZN2]}"
+ dir-tables: "{DIR[DTR,PERF,DPDK,2N,ZN2]}"
+ data: "dpdk-perf-results-2n-zn2"
+ filter: "all"
+ data-start-level: 4
+
# DPDK Performance Results 2n-clx
- type: "file"
title: "DPDK Performance Results 2n-clx"
@@ -11340,65 +11920,85 @@
title: "2n-skx-xxv710-64b-2t1c-nat44ed-ip4routing-stl-unidir-avf-ndr"
layout: "plot-throughput"
-#- type: "plot"
-# title: "Throughput: 2n-skx-xxv710-64b-2t1c-nat44ed-ip4routing-udp-stf-cps-avf-ndr"
-# algorithm: "plot_perf_box_name"
-# output-file: "{DIR[STATIC,VPP]}/2n-skx-xxv710-64b-2t1c-nat44ed-ip4routing-udp-stf-cps-avf-ndr"
-# data: "plot-vpp-throughput-lat-tsa-2n-skx"
-# include:
-# - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-nat44ed-h1024-p63-s64512-cps-ndrpdr.64b-2t1c-avf-ethip4udp-nat44ed-h1024-p63-s64512-cps-ndrpdr"
-# - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-nat44ed-h4096-p63-s258048-cps-ndrpdr.64b-2t1c-avf-ethip4udp-nat44ed-h4096-p63-s258048-cps-ndrpdr"
-# - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-nat44ed-h16384-p63-s1032192-cps-ndrpdr.64b-2t1c-avf-ethip4udp-nat44ed-h16384-p63-s1032192-cps-ndrpdr"
-# - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-nat44ed-h65536-p63-s4128768-cps-ndrpdr.64b-2t1c-avf-ethip4udp-nat44ed-h65536-p63-s4128768-cps-ndrpdr"
-# - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-nat44ed-h262144-p63-s16515072-cps-ndrpdr.64b-2t1c-avf-ethip4udp-nat44ed-h262144-p63-s16515072-cps-ndrpdr"
-# layout:
-# title: "2n-skx-xxv710-64b-2t1c-nat44ed-ip4routing-udp-stf-cps-avf-ndr"
-# layout: "plot-throughput"
-#
-#- type: "plot"
-# title: "Throughput: 2n-skx-xxv710-64b-2t1c-nat44ed-ip4routing-tcp-stf-cps-avf-ndr"
-# algorithm: "plot_perf_box_name"
-# output-file: "{DIR[STATIC,VPP]}/2n-skx-xxv710-64b-2t1c-nat44ed-ip4routing-tcp-stf-cps-avf-ndr"
-# data: "plot-vpp-throughput-lat-tsa-2n-skx"
-# include:
-# - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4tcp-nat44ed-h1024-p63-s64512-cps-ndrpdr.64b-2t1c-avf-ethip4tcp-nat44ed-h1024-p63-s64512-cps-ndrpdr"
-# - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4tcp-nat44ed-h4096-p63-s258048-cps-ndrpdr.64b-2t1c-avf-ethip4tcp-nat44ed-h4096-p63-s258048-cps-ndrpdr"
-# - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4tcp-nat44ed-h16384-p63-s1032192-cps-ndrpdr.64b-2t1c-avf-ethip4tcp-nat44ed-h16384-p63-s1032192-cps-ndrpdr"
-# - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4tcp-nat44ed-h65536-p63-s4128768-cps-ndrpdr.64b-2t1c-avf-ethip4tcp-nat44ed-h65536-p63-s4128768-cps-ndrpdr"
-# - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4tcp-nat44ed-h262144-p63-s16515072-cps-ndrpdr.64b-2t1c-avf-ethip4tcp-nat44ed-h262144-p63-s16515072-cps-ndrpdr"
-# layout:
-# title: "2n-skx-xxv710-64b-2t1c-nat44ed-ip4routing-tcp-stf-cps-avf-ndr"
-# layout: "plot-throughput"
-#
-#- type: "plot"
-# title: "Throughput: 2n-skx-xxv710-64b-2t1c-nat44ed-ip4routing-udp-stf-pps-avf-ndr"
-# algorithm: "plot_perf_box_name"
-# output-file: "{DIR[STATIC,VPP]}/2n-skx-xxv710-64b-2t1c-nat44ed-ip4routing-udp-stf-pps-avf-ndr"
-# data: "plot-vpp-throughput-lat-tsa-2n-skx"
-# include:
-# - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-nat44ed-h1024-p63-s64512-pps-ndrpdr.64b-2t1c-avf-ethip4udp-nat44ed-h1024-p63-s64512-pps-ndrpdr"
-# - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-nat44ed-h4096-p63-s258048-pps-ndrpdr.64b-2t1c-avf-ethip4udp-nat44ed-h4096-p63-s258048-pps-ndrpdr"
-# - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-nat44ed-h16384-p63-s1032192-pps-ndrpdr.64b-2t1c-avf-ethip4udp-nat44ed-h16384-p63-s1032192-pps-ndrpdr"
-# - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-nat44ed-h65536-p63-s4128768-pps-ndrpdr.64b-2t1c-avf-ethip4udp-nat44ed-h65536-p63-s4128768-pps-ndrpdr"
-# - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-nat44ed-h262144-p63-s16515072-pps-ndrpdr.64b-2t1c-avf-ethip4udp-nat44ed-h262144-p63-s16515072-pps-ndrpdr"
-# layout:
-# title: "2n-skx-xxv710-64b-2t1c-nat44ed-ip4routing-udp-stf-pps-avf-ndr"
-# layout: "plot-throughput"
-#
-#- type: "plot"
-# title: "Throughput: 2n-skx-xxv710-64b-2t1c-nat44ed-ip4routing-tcp-stf-pps-avf-ndr"
-# algorithm: "plot_perf_box_name"
-# output-file: "{DIR[STATIC,VPP]}/2n-skx-xxv710-64b-2t1c-nat44ed-ip4routing-tcp-stf-pps-avf-ndr"
-# data: "plot-vpp-throughput-lat-tsa-2n-skx"
-# include:
-# - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4tcp-nat44ed-h1024-p63-s64512-pps-ndrpdr.64b-2t1c-avf-ethip4tcp-nat44ed-h1024-p63-s64512-pps-ndrpdr"
-# - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4tcp-nat44ed-h4096-p63-s258048-pps-ndrpdr.64b-2t1c-avf-ethip4tcp-nat44ed-h4096-p63-s258048-pps-ndrpdr"
-# - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4tcp-nat44ed-h16384-p63-s1032192-pps-ndrpdr.64b-2t1c-avf-ethip4tcp-nat44ed-h16384-p63-s1032192-pps-ndrpdr"
-# - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4tcp-nat44ed-h65536-p63-s4128768-pps-ndrpdr.64b-2t1c-avf-ethip4tcp-nat44ed-h65536-p63-s4128768-pps-ndrpdr"
-# - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4tcp-nat44ed-h262144-p63-s16515072-pps-ndrpdr.64b-2t1c-avf-ethip4tcp-nat44ed-h262144-p63-s16515072-pps-ndrpdr"
-# layout:
-# title: "2n-skx-xxv710-64b-2t1c-nat44ed-ip4routing-tcp-stf-pps-avf-ndr"
-# layout: "plot-throughput"
+- type: "plot"
+ title: "Throughput: 2n-skx-xxv710-64b-2t1c-nat44ed-ip4routing-udp-stf-cps-avf-ndr"
+ algorithm: "plot_perf_box_name"
+ output-file: "{DIR[STATIC,VPP]}/2n-skx-xxv710-64b-2t1c-nat44ed-ip4routing-udp-stf-cps-avf-ndr"
+ data: "plot-vpp-throughput-lat-tsa-2n-skx"
+ include:
+ - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-nat44ed-h1024-p63-s64512-cps-ndrpdr.64b-2t1c-avf-ethip4udp-nat44ed-h1024-p63-s64512-cps-ndrpdr"
+ - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-ip4base-h1024-p63-s64512-cps-ndrpdr.64b-2t1c-avf-ethip4udp-ip4base-h1024-p63-s64512-cps-ndrpdr"
+ - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-nat44ed-h4096-p63-s258048-cps-ndrpdr.64b-2t1c-avf-ethip4udp-nat44ed-h4096-p63-s258048-cps-ndrpdr"
+ - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-ip4base-h4096-p63-s258048-cps-ndrpdr.64b-2t1c-avf-ethip4udp-ip4base-h4096-p63-s258048-cps-ndrpdr"
+ - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-nat44ed-h16384-p63-s1032192-cps-ndrpdr.64b-2t1c-avf-ethip4udp-nat44ed-h16384-p63-s1032192-cps-ndrpdr"
+ - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-ip4base-h16384-p63-s1032192-cps-ndrpdr.64b-2t1c-avf-ethip4udp-ip4base-h16384-p63-s1032192-cps-ndrpdr"
+ - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-nat44ed-h65536-p63-s4128768-cps-ndrpdr.64b-2t1c-avf-ethip4udp-nat44ed-h65536-p63-s4128768-cps-ndrpdr"
+ - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-ip4base-h65536-p63-s4128768-cps-ndrpdr.64b-2t1c-avf-ethip4udp-ip4base-h65536-p63-s4128768-cps-ndrpdr"
+ - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-nat44ed-h262144-p63-s16515072-cps-ndrpdr.64b-2t1c-avf-ethip4udp-nat44ed-h262144-p63-s16515072-cps-ndrpdr"
+ - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-ip4base-h262144-p63-s16515072-cps-ndrpdr.64b-2t1c-avf-ethip4udp-ip4base-h262144-p63-s16515072-cps-ndrpdr"
+ layout:
+ title: "2n-skx-xxv710-64b-2t1c-nat44ed-ip4routing-udp-stf-cps-avf-ndr"
+ layout: "plot-cps"
+
+- type: "plot"
+ title: "Throughput: 2n-skx-xxv710-64b-2t1c-nat44ed-ip4routing-udp-stf-pps-avf-ndr"
+ algorithm: "plot_perf_box_name"
+ output-file: "{DIR[STATIC,VPP]}/2n-skx-xxv710-64b-2t1c-nat44ed-ip4routing-udp-stf-pps-avf-ndr"
+ data: "plot-vpp-throughput-lat-tsa-2n-skx"
+ include:
+ - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-nat44ed-h1024-p63-s64512-pps-ndrpdr.64b-2t1c-avf-ethip4udp-nat44ed-h1024-p63-s64512-pps-ndrpdr"
+ - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-ip4base-h1024-p63-s64512-pps-ndrpdr.64b-2t1c-avf-ethip4udp-ip4base-h1024-p63-s64512-pps-ndrpdr"
+ - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-nat44ed-h4096-p63-s258048-pps-ndrpdr.64b-2t1c-avf-ethip4udp-nat44ed-h4096-p63-s258048-pps-ndrpdr"
+ - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-ip4base-h4096-p63-s258048-pps-ndrpdr.64b-2t1c-avf-ethip4udp-ip4base-h4096-p63-s258048-pps-ndrpdr"
+ - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-nat44ed-h16384-p63-s1032192-pps-ndrpdr.64b-2t1c-avf-ethip4udp-nat44ed-h16384-p63-s1032192-pps-ndrpdr"
+ - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-ip4base-h16384-p63-s1032192-pps-ndrpdr.64b-2t1c-avf-ethip4udp-ip4base-h16384-p63-s1032192-pps-ndrpdr"
+ - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-nat44ed-h65536-p63-s4128768-pps-ndrpdr.64b-2t1c-avf-ethip4udp-nat44ed-h65536-p63-s4128768-pps-ndrpdr"
+ - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-ip4base-h65536-p63-s4128768-pps-ndrpdr.64b-2t1c-avf-ethip4udp-ip4base-h65536-p63-s4128768-pps-ndrpdr"
+ - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-nat44ed-h262144-p63-s16515072-pps-ndrpdr.64b-2t1c-avf-ethip4udp-nat44ed-h262144-p63-s16515072-pps-ndrpdr"
+ - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-ip4base-h262144-p63-s16515072-pps-ndrpdr.64b-2t1c-avf-ethip4udp-ip4base-h262144-p63-s16515072-pps-ndrpdr"
+ layout:
+ title: "2n-skx-xxv710-64b-2t1c-nat44ed-ip4routing-udp-stf-pps-avf-ndr"
+ layout: "plot-throughput"
+
+- type: "plot"
+ title: "Throughput: 2n-skx-xxv710-64b-2t1c-nat44ed-ip4routing-tcp-stf-cps-avf-ndr"
+ algorithm: "plot_perf_box_name"
+ output-file: "{DIR[STATIC,VPP]}/2n-skx-xxv710-64b-2t1c-nat44ed-ip4routing-tcp-stf-cps-avf-ndr"
+ data: "plot-vpp-throughput-lat-tsa-2n-skx"
+ include:
+ - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4tcp-nat44ed-h1024-p63-s64512-cps-ndrpdr.64b-2t1c-avf-ethip4tcp-nat44ed-h1024-p63-s64512-cps-ndrpdr"
+ - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4tcp-ip4base-h1024-p63-s64512-cps-ndrpdr.64b-2t1c-avf-ethip4tcp-ip4base-h1024-p63-s64512-cps-ndrpdr"
+ - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4tcp-nat44ed-h4096-p63-s258048-cps-ndrpdr.64b-2t1c-avf-ethip4tcp-nat44ed-h4096-p63-s258048-cps-ndrpdr"
+ - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4tcp-ip4base-h4096-p63-s258048-cps-ndrpdr.64b-2t1c-avf-ethip4tcp-ip4base-h4096-p63-s258048-cps-ndrpdr"
+ - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4tcp-nat44ed-h16384-p63-s1032192-cps-ndrpdr.64b-2t1c-avf-ethip4tcp-nat44ed-h16384-p63-s1032192-cps-ndrpdr"
+ - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4tcp-ip4base-h16384-p63-s1032192-cps-ndrpdr.64b-2t1c-avf-ethip4tcp-ip4base-h16384-p63-s1032192-cps-ndrpdr"
+ - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4tcp-nat44ed-h65536-p63-s4128768-cps-ndrpdr.64b-2t1c-avf-ethip4tcp-nat44ed-h65536-p63-s4128768-cps-ndrpdr"
+ - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4tcp-ip4base-h65536-p63-s4128768-cps-ndrpdr.64b-2t1c-avf-ethip4tcp-ip4base-h65536-p63-s4128768-cps-ndrpdr"
+ - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4tcp-nat44ed-h262144-p63-s16515072-cps-ndrpdr.64b-2t1c-avf-ethip4tcp-nat44ed-h262144-p63-s16515072-cps-ndrpdr"
+ - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4tcp-ip4base-h262144-p63-s16515072-cps-ndrpdr.64b-2t1c-avf-ethip4tcp-ip4base-h262144-p63-s16515072-cps-ndrpdr"
+ layout:
+ title: "2n-skx-xxv710-64b-2t1c-nat44ed-ip4routing-tcp-stf-cps-avf-ndr"
+ layout: "plot-cps"
+
+- type: "plot"
+ title: "Throughput: 2n-skx-xxv710-64b-2t1c-nat44ed-ip4routing-tcp-stf-pps-avf-ndr"
+ algorithm: "plot_perf_box_name"
+ output-file: "{DIR[STATIC,VPP]}/2n-skx-xxv710-64b-2t1c-nat44ed-ip4routing-tcp-stf-pps-avf-ndr"
+ data: "plot-vpp-throughput-lat-tsa-2n-skx"
+ include:
+ - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4tcp-nat44ed-h1024-p63-s64512-pps-ndrpdr.64b-2t1c-avf-ethip4tcp-nat44ed-h1024-p63-s64512-pps-ndrpdr"
+ - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4tcp-ip4base-h1024-p63-s64512-pps-ndrpdr.64b-2t1c-avf-ethip4tcp-ip4base-h1024-p63-s64512-pps-ndrpdr"
+ - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4tcp-nat44ed-h4096-p63-s258048-pps-ndrpdr.64b-2t1c-avf-ethip4tcp-nat44ed-h4096-p63-s258048-pps-ndrpdr"
+ - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4tcp-ip4base-h4096-p63-s258048-pps-ndrpdr.64b-2t1c-avf-ethip4tcp-ip4base-h4096-p63-s258048-pps-ndrpdr"
+ - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4tcp-nat44ed-h16384-p63-s1032192-pps-ndrpdr.64b-2t1c-avf-ethip4tcp-nat44ed-h16384-p63-s1032192-pps-ndrpdr"
+ - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4tcp-ip4base-h16384-p63-s1032192-pps-ndrpdr.64b-2t1c-avf-ethip4tcp-ip4base-h16384-p63-s1032192-pps-ndrpdr"
+ - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4tcp-nat44ed-h65536-p63-s4128768-pps-ndrpdr.64b-2t1c-avf-ethip4tcp-nat44ed-h65536-p63-s4128768-pps-ndrpdr"
+ - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4tcp-ip4base-h65536-p63-s4128768-pps-ndrpdr.64b-2t1c-avf-ethip4tcp-ip4base-h65536-p63-s4128768-pps-ndrpdr"
+ - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4tcp-nat44ed-h262144-p63-s16515072-pps-ndrpdr.64b-2t1c-avf-ethip4tcp-nat44ed-h262144-p63-s16515072-pps-ndrpdr"
+ - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4tcp-ip4base-h262144-p63-s16515072-pps-ndrpdr.64b-2t1c-avf-ethip4tcp-ip4base-h262144-p63-s16515072-pps-ndrpdr"
+ layout:
+ title: "2n-skx-xxv710-64b-2t1c-nat44ed-ip4routing-tcp-stf-pps-avf-ndr"
+ layout: "plot-throughput"
- type: "plot"
title: "Throughput: 2n-skx-xxv710-64b-2t1c-nat44det-ip4routing-stl-bidir-avf-pdr"
@@ -11430,65 +12030,85 @@
title: "2n-skx-xxv710-64b-2t1c-nat44ed-ip4routing-stl-unidir-avf-pdr"
layout: "plot-throughput"
-#- type: "plot"
-# title: "Throughput: 2n-skx-xxv710-64b-2t1c-nat44ed-ip4routing-udp-stf-cps-avf-pdr"
-# algorithm: "plot_perf_box_name"
-# output-file: "{DIR[STATIC,VPP]}/2n-skx-xxv710-64b-2t1c-nat44ed-ip4routing-udp-stf-cps-avf-pdr"
-# data: "plot-vpp-throughput-lat-tsa-2n-skx"
-# include:
-# - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-nat44ed-h1024-p63-s64512-cps-ndrpdr.64b-2t1c-avf-ethip4udp-nat44ed-h1024-p63-s64512-cps-ndrpdr"
-# - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-nat44ed-h4096-p63-s258048-cps-ndrpdr.64b-2t1c-avf-ethip4udp-nat44ed-h4096-p63-s258048-cps-ndrpdr"
-# - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-nat44ed-h16384-p63-s1032192-cps-ndrpdr.64b-2t1c-avf-ethip4udp-nat44ed-h16384-p63-s1032192-cps-ndrpdr"
-# - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-nat44ed-h65536-p63-s4128768-cps-ndrpdr.64b-2t1c-avf-ethip4udp-nat44ed-h65536-p63-s4128768-cps-ndrpdr"
-# - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-nat44ed-h262144-p63-s16515072-cps-ndrpdr.64b-2t1c-avf-ethip4udp-nat44ed-h262144-p63-s16515072-cps-ndrpdr"
-# layout:
-# title: "2n-skx-xxv710-64b-2t1c-nat44ed-ip4routing-udp-stf-cps-avf-pdr"
-# layout: "plot-throughput"
-#
-#- type: "plot"
-# title: "Throughput: 2n-skx-xxv710-64b-2t1c-nat44ed-ip4routing-tcp-stf-cps-avf-pdr"
-# algorithm: "plot_perf_box_name"
-# output-file: "{DIR[STATIC,VPP]}/2n-skx-xxv710-64b-2t1c-nat44ed-ip4routing-tcp-stf-cps-avf-pdr"
-# data: "plot-vpp-throughput-lat-tsa-2n-skx"
-# include:
-# - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4tcp-nat44ed-h1024-p63-s64512-cps-ndrpdr.64b-2t1c-avf-ethip4tcp-nat44ed-h1024-p63-s64512-cps-ndrpdr"
-# - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4tcp-nat44ed-h4096-p63-s258048-cps-ndrpdr.64b-2t1c-avf-ethip4tcp-nat44ed-h4096-p63-s258048-cps-ndrpdr"
-# - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4tcp-nat44ed-h16384-p63-s1032192-cps-ndrpdr.64b-2t1c-avf-ethip4tcp-nat44ed-h16384-p63-s1032192-cps-ndrpdr"
-# - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4tcp-nat44ed-h65536-p63-s4128768-cps-ndrpdr.64b-2t1c-avf-ethip4tcp-nat44ed-h65536-p63-s4128768-cps-ndrpdr"
-# - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4tcp-nat44ed-h262144-p63-s16515072-cps-ndrpdr.64b-2t1c-avf-ethip4tcp-nat44ed-h262144-p63-s16515072-cps-ndrpdr"
-# layout:
-# title: "2n-skx-xxv710-64b-2t1c-nat44ed-ip4routing-tcp-stf-cps-avf-pdr"
-# layout: "plot-throughput"
-#
-#- type: "plot"
-# title: "Throughput: 2n-skx-xxv710-64b-2t1c-nat44ed-ip4routing-udp-stf-pps-avf-pdr"
-# algorithm: "plot_perf_box_name"
-# output-file: "{DIR[STATIC,VPP]}/2n-skx-xxv710-64b-2t1c-nat44ed-ip4routing-udp-stf-pps-avf-pdr"
-# data: "plot-vpp-throughput-lat-tsa-2n-skx"
-# include:
-# - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-nat44ed-h1024-p63-s64512-pps-ndrpdr.64b-2t1c-avf-ethip4udp-nat44ed-h1024-p63-s64512-pps-ndrpdr"
-# - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-nat44ed-h4096-p63-s258048-pps-ndrpdr.64b-2t1c-avf-ethip4udp-nat44ed-h4096-p63-s258048-pps-ndrpdr"
-# - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-nat44ed-h16384-p63-s1032192-pps-ndrpdr.64b-2t1c-avf-ethip4udp-nat44ed-h16384-p63-s1032192-pps-ndrpdr"
-# - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-nat44ed-h65536-p63-s4128768-pps-ndrpdr.64b-2t1c-avf-ethip4udp-nat44ed-h65536-p63-s4128768-pps-ndrpdr"
-# - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-nat44ed-h262144-p63-s16515072-pps-ndrpdr.64b-2t1c-avf-ethip4udp-nat44ed-h262144-p63-s16515072-pps-ndrpdr"
-# layout:
-# title: "2n-skx-xxv710-64b-2t1c-nat44ed-ip4routing-udp-stf-pps-avf-pdr"
-# layout: "plot-throughput"
-#
-#- type: "plot"
-# title: "Throughput: 2n-skx-xxv710-64b-2t1c-nat44ed-ip4routing-tcp-stf-pps-avf-pdr"
-# algorithm: "plot_perf_box_name"
-# output-file: "{DIR[STATIC,VPP]}/2n-skx-xxv710-64b-2t1c-nat44ed-ip4routing-tcp-stf-pps-avf-pdr"
-# data: "plot-vpp-throughput-lat-tsa-2n-skx"
-# include:
-# - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4tcp-nat44ed-h1024-p63-s64512-pps-ndrpdr.64b-2t1c-avf-ethip4tcp-nat44ed-h1024-p63-s64512-pps-ndrpdr"
-# - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4tcp-nat44ed-h4096-p63-s258048-pps-ndrpdr.64b-2t1c-avf-ethip4tcp-nat44ed-h4096-p63-s258048-pps-ndrpdr"
-# - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4tcp-nat44ed-h16384-p63-s1032192-pps-ndrpdr.64b-2t1c-avf-ethip4tcp-nat44ed-h16384-p63-s1032192-pps-ndrpdr"
-# - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4tcp-nat44ed-h65536-p63-s4128768-pps-ndrpdr.64b-2t1c-avf-ethip4tcp-nat44ed-h65536-p63-s4128768-pps-ndrpdr"
-# - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4tcp-nat44ed-h262144-p63-s16515072-pps-ndrpdr.64b-2t1c-avf-ethip4tcp-nat44ed-h262144-p63-s16515072-pps-ndrpdr"
-# layout:
-# title: "2n-skx-xxv710-64b-2t1c-nat44ed-ip4routing-tcp-stf-pps-avf-pdr"
-# layout: "plot-throughput"
+- type: "plot"
+ title: "Throughput: 2n-skx-xxv710-64b-2t1c-nat44ed-ip4routing-udp-stf-cps-avf-pdr"
+ algorithm: "plot_perf_box_name"
+ output-file: "{DIR[STATIC,VPP]}/2n-skx-xxv710-64b-2t1c-nat44ed-ip4routing-udp-stf-cps-avf-pdr"
+ data: "plot-vpp-throughput-lat-tsa-2n-skx"
+ include:
+ - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-nat44ed-h1024-p63-s64512-cps-ndrpdr.64b-2t1c-avf-ethip4udp-nat44ed-h1024-p63-s64512-cps-ndrpdr"
+ - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-ip4base-h1024-p63-s64512-cps-ndrpdr.64b-2t1c-avf-ethip4udp-ip4base-h1024-p63-s64512-cps-ndrpdr"
+ - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-nat44ed-h4096-p63-s258048-cps-ndrpdr.64b-2t1c-avf-ethip4udp-nat44ed-h4096-p63-s258048-cps-ndrpdr"
+ - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-ip4base-h4096-p63-s258048-cps-ndrpdr.64b-2t1c-avf-ethip4udp-ip4base-h4096-p63-s258048-cps-ndrpdr"
+ - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-nat44ed-h16384-p63-s1032192-cps-ndrpdr.64b-2t1c-avf-ethip4udp-nat44ed-h16384-p63-s1032192-cps-ndrpdr"
+ - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-ip4base-h16384-p63-s1032192-cps-ndrpdr.64b-2t1c-avf-ethip4udp-ip4base-h16384-p63-s1032192-cps-ndrpdr"
+ - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-nat44ed-h65536-p63-s4128768-cps-ndrpdr.64b-2t1c-avf-ethip4udp-nat44ed-h65536-p63-s4128768-cps-ndrpdr"
+ - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-ip4base-h65536-p63-s4128768-cps-ndrpdr.64b-2t1c-avf-ethip4udp-ip4base-h65536-p63-s4128768-cps-ndrpdr"
+ - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-nat44ed-h262144-p63-s16515072-cps-ndrpdr.64b-2t1c-avf-ethip4udp-nat44ed-h262144-p63-s16515072-cps-ndrpdr"
+ - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-ip4base-h262144-p63-s16515072-cps-ndrpdr.64b-2t1c-avf-ethip4udp-ip4base-h262144-p63-s16515072-cps-ndrpdr"
+ layout:
+ title: "2n-skx-xxv710-64b-2t1c-nat44ed-ip4routing-udp-stf-cps-avf-pdr"
+ layout: "plot-cps"
+
+- type: "plot"
+ title: "Throughput: 2n-skx-xxv710-64b-2t1c-nat44ed-ip4routing-udp-stf-pps-avf-pdr"
+ algorithm: "plot_perf_box_name"
+ output-file: "{DIR[STATIC,VPP]}/2n-skx-xxv710-64b-2t1c-nat44ed-ip4routing-udp-stf-pps-avf-pdr"
+ data: "plot-vpp-throughput-lat-tsa-2n-skx"
+ include:
+ - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-nat44ed-h1024-p63-s64512-pps-ndrpdr.64b-2t1c-avf-ethip4udp-nat44ed-h1024-p63-s64512-pps-ndrpdr"
+ - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-ip4base-h1024-p63-s64512-pps-ndrpdr.64b-2t1c-avf-ethip4udp-ip4base-h1024-p63-s64512-pps-ndrpdr"
+ - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-nat44ed-h4096-p63-s258048-pps-ndrpdr.64b-2t1c-avf-ethip4udp-nat44ed-h4096-p63-s258048-pps-ndrpdr"
+ - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-ip4base-h4096-p63-s258048-pps-ndrpdr.64b-2t1c-avf-ethip4udp-ip4base-h4096-p63-s258048-pps-ndrpdr"
+ - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-nat44ed-h16384-p63-s1032192-pps-ndrpdr.64b-2t1c-avf-ethip4udp-nat44ed-h16384-p63-s1032192-pps-ndrpdr"
+ - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-ip4base-h16384-p63-s1032192-pps-ndrpdr.64b-2t1c-avf-ethip4udp-ip4base-h16384-p63-s1032192-pps-ndrpdr"
+ - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-nat44ed-h65536-p63-s4128768-pps-ndrpdr.64b-2t1c-avf-ethip4udp-nat44ed-h65536-p63-s4128768-pps-ndrpdr"
+ - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-ip4base-h65536-p63-s4128768-pps-ndrpdr.64b-2t1c-avf-ethip4udp-ip4base-h65536-p63-s4128768-pps-ndrpdr"
+ - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-nat44ed-h262144-p63-s16515072-pps-ndrpdr.64b-2t1c-avf-ethip4udp-nat44ed-h262144-p63-s16515072-pps-ndrpdr"
+ - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-ip4base-h262144-p63-s16515072-pps-ndrpdr.64b-2t1c-avf-ethip4udp-ip4base-h262144-p63-s16515072-pps-ndrpdr"
+ layout:
+ title: "2n-skx-xxv710-64b-2t1c-nat44ed-ip4routing-udp-stf-pps-avf-pdr"
+ layout: "plot-throughput"
+
+- type: "plot"
+ title: "Throughput: 2n-skx-xxv710-64b-2t1c-nat44ed-ip4routing-tcp-stf-cps-avf-pdr"
+ algorithm: "plot_perf_box_name"
+ output-file: "{DIR[STATIC,VPP]}/2n-skx-xxv710-64b-2t1c-nat44ed-ip4routing-tcp-stf-cps-avf-pdr"
+ data: "plot-vpp-throughput-lat-tsa-2n-skx"
+ include:
+ - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4tcp-nat44ed-h1024-p63-s64512-cps-ndrpdr.64b-2t1c-avf-ethip4tcp-nat44ed-h1024-p63-s64512-cps-ndrpdr"
+ - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4tcp-ip4base-h1024-p63-s64512-cps-ndrpdr.64b-2t1c-avf-ethip4tcp-ip4base-h1024-p63-s64512-cps-ndrpdr"
+ - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4tcp-nat44ed-h4096-p63-s258048-cps-ndrpdr.64b-2t1c-avf-ethip4tcp-nat44ed-h4096-p63-s258048-cps-ndrpdr"
+ - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4tcp-ip4base-h4096-p63-s258048-cps-ndrpdr.64b-2t1c-avf-ethip4tcp-ip4base-h4096-p63-s258048-cps-ndrpdr"
+ - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4tcp-nat44ed-h16384-p63-s1032192-cps-ndrpdr.64b-2t1c-avf-ethip4tcp-nat44ed-h16384-p63-s1032192-cps-ndrpdr"
+ - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4tcp-ip4base-h16384-p63-s1032192-cps-ndrpdr.64b-2t1c-avf-ethip4tcp-ip4base-h16384-p63-s1032192-cps-ndrpdr"
+ - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4tcp-nat44ed-h65536-p63-s4128768-cps-ndrpdr.64b-2t1c-avf-ethip4tcp-nat44ed-h65536-p63-s4128768-cps-ndrpdr"
+ - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4tcp-ip4base-h65536-p63-s4128768-cps-ndrpdr.64b-2t1c-avf-ethip4tcp-ip4base-h65536-p63-s4128768-cps-ndrpdr"
+ - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4tcp-nat44ed-h262144-p63-s16515072-cps-ndrpdr.64b-2t1c-avf-ethip4tcp-nat44ed-h262144-p63-s16515072-cps-ndrpdr"
+ - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4tcp-ip4base-h262144-p63-s16515072-cps-ndrpdr.64b-2t1c-avf-ethip4tcp-ip4base-h262144-p63-s16515072-cps-ndrpdr"
+ layout:
+ title: "2n-skx-xxv710-64b-2t1c-nat44ed-ip4routing-tcp-stf-cps-avf-pdr"
+ layout: "plot-cps"
+
+- type: "plot"
+ title: "Throughput: 2n-skx-xxv710-64b-2t1c-nat44ed-ip4routing-tcp-stf-pps-avf-pdr"
+ algorithm: "plot_perf_box_name"
+ output-file: "{DIR[STATIC,VPP]}/2n-skx-xxv710-64b-2t1c-nat44ed-ip4routing-tcp-stf-pps-avf-pdr"
+ data: "plot-vpp-throughput-lat-tsa-2n-skx"
+ include:
+ - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4tcp-nat44ed-h1024-p63-s64512-pps-ndrpdr.64b-2t1c-avf-ethip4tcp-nat44ed-h1024-p63-s64512-pps-ndrpdr"
+ - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4tcp-ip4base-h1024-p63-s64512-pps-ndrpdr.64b-2t1c-avf-ethip4tcp-ip4base-h1024-p63-s64512-pps-ndrpdr"
+ - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4tcp-nat44ed-h4096-p63-s258048-pps-ndrpdr.64b-2t1c-avf-ethip4tcp-nat44ed-h4096-p63-s258048-pps-ndrpdr"
+ - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4tcp-ip4base-h4096-p63-s258048-pps-ndrpdr.64b-2t1c-avf-ethip4tcp-ip4base-h4096-p63-s258048-pps-ndrpdr"
+ - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4tcp-nat44ed-h16384-p63-s1032192-pps-ndrpdr.64b-2t1c-avf-ethip4tcp-nat44ed-h16384-p63-s1032192-pps-ndrpdr"
+ - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4tcp-ip4base-h16384-p63-s1032192-pps-ndrpdr.64b-2t1c-avf-ethip4tcp-ip4base-h16384-p63-s1032192-pps-ndrpdr"
+ - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4tcp-nat44ed-h65536-p63-s4128768-pps-ndrpdr.64b-2t1c-avf-ethip4tcp-nat44ed-h65536-p63-s4128768-pps-ndrpdr"
+ - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4tcp-ip4base-h65536-p63-s4128768-pps-ndrpdr.64b-2t1c-avf-ethip4tcp-ip4base-h65536-p63-s4128768-pps-ndrpdr"
+ - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4tcp-nat44ed-h262144-p63-s16515072-pps-ndrpdr.64b-2t1c-avf-ethip4tcp-nat44ed-h262144-p63-s16515072-pps-ndrpdr"
+ - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4tcp-ip4base-h262144-p63-s16515072-pps-ndrpdr.64b-2t1c-avf-ethip4tcp-ip4base-h262144-p63-s16515072-pps-ndrpdr"
+ layout:
+ title: "2n-skx-xxv710-64b-2t1c-nat44ed-ip4routing-tcp-stf-pps-avf-pdr"
+ layout: "plot-throughput"
- type: "plot"
title: "Throughput: 2n-skx-xxv710-64b-2t1c-features-ip4routing-base-dpdk-ndr"
@@ -13846,38 +14466,6 @@
title: "3n-tsh-x520-64b-1t1c-vhost-base-ixgbe-pdr"
layout: "plot-throughput"
-#- type: "plot"
-# title: "Throughput: 3n-tsh-x520-64b-1t1c-link-bonding-vhost-base-ixgbe-ndr"
-# algorithm: "plot_perf_box_name"
-# output-file: "{DIR[STATIC,VPP]}/3n-tsh-x520-64b-1t1c-link-bonding-vhost-base-ixgbe-ndr"
-# data: "plot-vpp-throughput-lat-tsa-3n-tsh"
-# include:
-# - "Tests.Vpp.Perf.Vm Vhost.10Ge2P1X520-1Lbvpplacp-Dot1Q-L2Xcbase-Eth-2Vhostvr1024-1Vm-Ndrpdr.64B-1t1c-1lbvpplacp-dot1q-l2xcbase-eth-2vhostvr1024-1vm-ndrpdr"
-# - "Tests.Vpp.Perf.Vm Vhost.10Ge2P1X520-Dot1Q-L2Xcbase-Eth-2Vhostvr1024-1Vm-Ndrpdr.64B-1t1c-dot1q-l2xcbase-eth-2vhostvr1024-1vm-ndrpdr"
-# - "Tests.Vpp.Perf.Vm Vhost.10Ge2P1X520-Eth-L2Xcbase-Eth-2Vhostvr1024-1Vm-Ndrpdr.64B-1t1c-eth-l2xcbase-eth-2vhostvr1024-1vm-ndrpdr"
-# - "Tests.Vpp.Perf.Vm Vhost.10Ge2P1X520-1Lbvpplacp-Dot1Q-L2Bdbasemaclrn-Eth-2Vhostvr1024-1Vm-Ndrpdr.64B-1t1c-1lbvpplacp-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-ndrpdr"
-# - "Tests.Vpp.Perf.Vm Vhost.10Ge2P1X520-Dot1Q-L2Bdbasemaclrn-Eth-2Vhostvr1024-1Vm-Ndrpdr.64B-1t1c-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-ndrpdr"
-# - "Tests.Vpp.Perf.Vm Vhost.10Ge2P1X520-Eth-L2Bdbasemaclrn-Eth-2Vhostvr1024-1Vm-Ndrpdr.64B-1t1c-eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-ndrpdr"
-# layout:
-# title: "3n-tsh-x520-64b-1t1c-link-bonding-vhost-base-ixgbe-ndr"
-# layout: "plot-throughput"
-#
-#- type: "plot"
-# title: "Throughput: 3n-tsh-x520-64b-1t1c-link-bonding-vhost-base-ixgbe-pdr"
-# algorithm: "plot_perf_box_name"
-# output-file: "{DIR[STATIC,VPP]}/3n-tsh-x520-64b-1t1c-link-bonding-vhost-base-ixgbe-pdr"
-# data: "plot-vpp-throughput-lat-tsa-3n-tsh"
-# include:
-# - "Tests.Vpp.Perf.Vm Vhost.10Ge2P1X520-1Lbvpplacp-Dot1Q-L2Xcbase-Eth-2Vhostvr1024-1Vm-Ndrpdr.64B-1t1c-1lbvpplacp-dot1q-l2xcbase-eth-2vhostvr1024-1vm-ndrpdr"
-# - "Tests.Vpp.Perf.Vm Vhost.10Ge2P1X520-Dot1Q-L2Xcbase-Eth-2Vhostvr1024-1Vm-Ndrpdr.64B-1t1c-dot1q-l2xcbase-eth-2vhostvr1024-1vm-ndrpdr"
-# - "Tests.Vpp.Perf.Vm Vhost.10Ge2P1X520-Eth-L2Xcbase-Eth-2Vhostvr1024-1Vm-Ndrpdr.64B-1t1c-eth-l2xcbase-eth-2vhostvr1024-1vm-ndrpdr"
-# - "Tests.Vpp.Perf.Vm Vhost.10Ge2P1X520-1Lbvpplacp-Dot1Q-L2Bdbasemaclrn-Eth-2Vhostvr1024-1Vm-Ndrpdr.64B-1t1c-1lbvpplacp-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-ndrpdr"
-# - "Tests.Vpp.Perf.Vm Vhost.10Ge2P1X520-Dot1Q-L2Bdbasemaclrn-Eth-2Vhostvr1024-1Vm-Ndrpdr.64B-1t1c-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-ndrpdr"
-# - "Tests.Vpp.Perf.Vm Vhost.10Ge2P1X520-Eth-L2Bdbasemaclrn-Eth-2Vhostvr1024-1Vm-Ndrpdr.64B-1t1c-eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-ndrpdr"
-# layout:
-# title: "3n-tsh-x520-64b-1t1c-link-bonding-vhost-base-ixgbe-pdr"
-# layout: "plot-throughput"
-
- type: "plot"
title: "Throughput: 2n-skx-xxv710-114b-2t1c-vts-l2switching-base-dpdk-ndr"
algorithm: "plot_perf_box_name"
@@ -14236,65 +14824,85 @@
title: "2n-skx-xxv710-64b-nat44ed-ip4routing-stl-unidir-avf-ndr"
layout: "plot-throughput-speedup-analysis"
-#- type: "plot"
-# title: "Speedup: 2n-skx-xxv710-64b-nat44ed-ip4routing-udp-stf-cps-avf-ndr-tsa"
-# algorithm: "plot_tsa_name"
-# output-file: "{DIR[STATIC,VPP]}/2n-skx-xxv710-64b-nat44ed-ip4routing-udp-stf-cps-avf-ndr-tsa"
-# data: "plot-vpp-throughput-lat-tsa-2n-skx"
-# include:
-# - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-nat44ed-h1024-p63-s64512-cps-ndrpdr.64b-.t.c-avf-ethip4udp-nat44ed-h1024-p63-s64512-cps-ndrpdr"
-# - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-nat44ed-h4096-p63-s258048-cps-ndrpdr.64b-.t.c-avf-ethip4udp-nat44ed-h4096-p63-s258048-cps-ndrpdr"
-# - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-nat44ed-h16384-p63-s1032192-cps-ndrpdr.64b-.t.c-avf-ethip4udp-nat44ed-h16384-p63-s1032192-cps-ndrpdr"
-# - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-nat44ed-h65536-p63-s4128768-cps-ndrpdr.64b-.t.c-avf-ethip4udp-nat44ed-h65536-p63-s4128768-cps-ndrpdr"
-# - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-nat44ed-h262144-p63-s16515072-cps-ndrpdr.64b-.t.c-avf-ethip4udp-nat44ed-h262144-p63-s16515072-cps-ndrpdr"
-# layout:
-# title: "2n-skx-xxv710-64b-nat44ed-ip4routing-udp-stf-cps-avf-ndr"
-# layout: "plot-throughput-speedup-analysis"
-#
-#- type: "plot"
-# title: "Speedup: 2n-skx-xxv710-64b-nat44ed-ip4routing-tcp-stf-cps-avf-ndr-tsa"
-# algorithm: "plot_tsa_name"
-# output-file: "{DIR[STATIC,VPP]}/2n-skx-xxv710-64b-nat44ed-ip4routing-tcp-stf-cps-avf-ndr-tsa"
-# data: "plot-vpp-throughput-lat-tsa-2n-skx"
-# include:
-# - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4tcp-nat44ed-h1024-p63-s64512-cps-ndrpdr.64b-.t.c-avf-ethip4tcp-nat44ed-h1024-p63-s64512-cps-ndrpdr"
-# - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4tcp-nat44ed-h4096-p63-s258048-cps-ndrpdr.64b-.t.c-avf-ethip4tcp-nat44ed-h4096-p63-s258048-cps-ndrpdr"
-# - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4tcp-nat44ed-h16384-p63-s1032192-cps-ndrpdr.64b-.t.c-avf-ethip4tcp-nat44ed-h16384-p63-s1032192-cps-ndrpdr"
-# - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4tcp-nat44ed-h65536-p63-s4128768-cps-ndrpdr.64b-.t.c-avf-ethip4tcp-nat44ed-h65536-p63-s4128768-cps-ndrpdr"
-# - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4tcp-nat44ed-h262144-p63-s16515072-cps-ndrpdr.64b-.t.c-avf-ethip4tcp-nat44ed-h262144-p63-s16515072-cps-ndrpdr"
-# layout:
-# title: "2n-skx-xxv710-64b-nat44ed-ip4routing-tcp-stf-cps-avf-ndr"
-# layout: "plot-throughput-speedup-analysis"
-#
-#- type: "plot"
-# title: "Speedup: 2n-skx-xxv710-64b-nat44ed-ip4routing-udp-stf-pps-avf-ndr-tsa"
-# algorithm: "plot_tsa_name"
-# output-file: "{DIR[STATIC,VPP]}/2n-skx-xxv710-64b-nat44ed-ip4routing-udp-stf-pps-avf-ndr-tsa"
-# data: "plot-vpp-throughput-lat-tsa-2n-skx"
-# include:
-# - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-nat44ed-h1024-p63-s64512-pps-ndrpdr.64b-.t.c-avf-ethip4udp-nat44ed-h1024-p63-s64512-pps-ndrpdr"
-# - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-nat44ed-h4096-p63-s258048-pps-ndrpdr.64b-.t.c-avf-ethip4udp-nat44ed-h4096-p63-s258048-pps-ndrpdr"
-# - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-nat44ed-h16384-p63-s1032192-pps-ndrpdr.64b-.t.c-avf-ethip4udp-nat44ed-h16384-p63-s1032192-pps-ndrpdr"
-# - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-nat44ed-h65536-p63-s4128768-pps-ndrpdr.64b-.t.c-avf-ethip4udp-nat44ed-h65536-p63-s4128768-pps-ndrpdr"
-# - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-nat44ed-h262144-p63-s16515072-pps-ndrpdr.64b-.t.c-avf-ethip4udp-nat44ed-h262144-p63-s16515072-pps-ndrpdr"
-# layout:
-# title: "2n-skx-xxv710-64b-nat44ed-ip4routing-udp-stf-pps-avf-ndr"
-# layout: "plot-throughput-speedup-analysis"
-#
-#- type: "plot"
-# title: "Speedup: 2n-skx-xxv710-64b-nat44ed-ip4routing-tcp-stf-pps-avf-ndr-tsa"
-# algorithm: "plot_tsa_name"
-# output-file: "{DIR[STATIC,VPP]}/2n-skx-xxv710-64b-nat44ed-ip4routing-tcp-stf-pps-avf-ndr-tsa"
-# data: "plot-vpp-throughput-lat-tsa-2n-skx"
-# include:
-# - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4tcp-nat44ed-h1024-p63-s64512-pps-ndrpdr.64b-.t.c-avf-ethip4tcp-nat44ed-h1024-p63-s64512-pps-ndrpdr"
-# - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4tcp-nat44ed-h4096-p63-s258048-pps-ndrpdr.64b-.t.c-avf-ethip4tcp-nat44ed-h4096-p63-s258048-pps-ndrpdr"
-# - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4tcp-nat44ed-h16384-p63-s1032192-pps-ndrpdr.64b-.t.c-avf-ethip4tcp-nat44ed-h16384-p63-s1032192-pps-ndrpdr"
-# - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4tcp-nat44ed-h65536-p63-s4128768-pps-ndrpdr.64b-.t.c-avf-ethip4tcp-nat44ed-h65536-p63-s4128768-pps-ndrpdr"
-# - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4tcp-nat44ed-h262144-p63-s16515072-pps-ndrpdr.64b-.t.c-avf-ethip4tcp-nat44ed-h262144-p63-s16515072-pps-ndrpdr"
-# layout:
-# title: "22n-skx-xxv710-64b-nat44ed-ip4routing-tcp-stf-pps-avf-ndr"
-# layout: "plot-throughput-speedup-analysis"
+- type: "plot"
+ title: "Speedup: 2n-skx-xxv710-64b-nat44ed-ip4routing-udp-stf-cps-avf-ndr-tsa"
+ algorithm: "plot_tsa_name"
+ output-file: "{DIR[STATIC,VPP]}/2n-skx-xxv710-64b-nat44ed-ip4routing-udp-stf-cps-avf-ndr-tsa"
+ data: "plot-vpp-throughput-lat-tsa-2n-skx"
+ include:
+ - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-nat44ed-h1024-p63-s64512-cps-ndrpdr.64b-.t.c-avf-ethip4udp-nat44ed-h1024-p63-s64512-cps-ndrpdr"
+ - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-ip4base-h1024-p63-s64512-cps-ndrpdr.64b-.t.c-avf-ethip4udp-ip4base-h1024-p63-s64512-cps-ndrpdr"
+ - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-nat44ed-h4096-p63-s258048-cps-ndrpdr.64b-.t.c-avf-ethip4udp-nat44ed-h4096-p63-s258048-cps-ndrpdr"
+ - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-ip4base-h4096-p63-s258048-cps-ndrpdr.64b-.t.c-avf-ethip4udp-ip4base-h4096-p63-s258048-cps-ndrpdr"
+ - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-nat44ed-h16384-p63-s1032192-cps-ndrpdr.64b-.t.c-avf-ethip4udp-nat44ed-h16384-p63-s1032192-cps-ndrpdr"
+ - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-ip4base-h16384-p63-s1032192-cps-ndrpdr.64b-.t.c-avf-ethip4udp-ip4base-h16384-p63-s1032192-cps-ndrpdr"
+ - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-nat44ed-h65536-p63-s4128768-cps-ndrpdr.64b-.t.c-avf-ethip4udp-nat44ed-h65536-p63-s4128768-cps-ndrpdr"
+ - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-ip4base-h65536-p63-s4128768-cps-ndrpdr.64b-.t.c-avf-ethip4udp-ip4base-h65536-p63-s4128768-cps-ndrpdr"
+ - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-nat44ed-h262144-p63-s16515072-cps-ndrpdr.64b-.t.c-avf-ethip4udp-nat44ed-h262144-p63-s16515072-cps-ndrpdr"
+ - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-ip4base-h262144-p63-s16515072-cps-ndrpdr.64b-.t.c-avf-ethip4udp-ip4base-h262144-p63-s16515072-cps-ndrpdr"
+ layout:
+ title: "2n-skx-xxv710-64b-nat44ed-ip4routing-udp-stf-cps-avf-ndr"
+ layout: "plot-throughput-speedup-analysis-cps"
+
+- type: "plot"
+ title: "Speedup: 2n-skx-xxv710-64b-nat44ed-ip4routing-udp-stf-pps-avf-ndr-tsa"
+ algorithm: "plot_tsa_name"
+ output-file: "{DIR[STATIC,VPP]}/2n-skx-xxv710-64b-nat44ed-ip4routing-udp-stf-pps-avf-ndr-tsa"
+ data: "plot-vpp-throughput-lat-tsa-2n-skx"
+ include:
+ - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-nat44ed-h1024-p63-s64512-pps-ndrpdr.64b-.t.c-avf-ethip4udp-nat44ed-h1024-p63-s64512-pps-ndrpdr"
+ - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-ip4base-h1024-p63-s64512-pps-ndrpdr.64b-.t.c-avf-ethip4udp-ip4base-h1024-p63-s64512-pps-ndrpdr"
+ - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-nat44ed-h4096-p63-s258048-pps-ndrpdr.64b-.t.c-avf-ethip4udp-nat44ed-h4096-p63-s258048-pps-ndrpdr"
+ - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-ip4base-h4096-p63-s258048-pps-ndrpdr.64b-.t.c-avf-ethip4udp-ip4base-h4096-p63-s258048-pps-ndrpdr"
+ - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-nat44ed-h16384-p63-s1032192-pps-ndrpdr.64b-.t.c-avf-ethip4udp-nat44ed-h16384-p63-s1032192-pps-ndrpdr"
+ - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-ip4base-h16384-p63-s1032192-pps-ndrpdr.64b-.t.c-avf-ethip4udp-ip4base-h16384-p63-s1032192-pps-ndrpdr"
+ - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-nat44ed-h65536-p63-s4128768-pps-ndrpdr.64b-.t.c-avf-ethip4udp-nat44ed-h65536-p63-s4128768-pps-ndrpdr"
+ - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-ip4base-h65536-p63-s4128768-pps-ndrpdr.64b-.t.c-avf-ethip4udp-ip4base-h65536-p63-s4128768-pps-ndrpdr"
+ - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-nat44ed-h262144-p63-s16515072-pps-ndrpdr.64b-.t.c-avf-ethip4udp-nat44ed-h262144-p63-s16515072-pps-ndrpdr"
+ - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-ip4base-h262144-p63-s16515072-pps-ndrpdr.64b-.t.c-avf-ethip4udp-ip4base-h262144-p63-s16515072-pps-ndrpdr"
+ layout:
+ title: "2n-skx-xxv710-64b-nat44ed-ip4routing-udp-stf-pps-avf-ndr"
+ layout: "plot-throughput-speedup-analysis"
+
+- type: "plot"
+ title: "Speedup: 2n-skx-xxv710-64b-nat44ed-ip4routing-tcp-stf-cps-avf-ndr-tsa"
+ algorithm: "plot_tsa_name"
+ output-file: "{DIR[STATIC,VPP]}/2n-skx-xxv710-64b-nat44ed-ip4routing-tcp-stf-cps-avf-ndr-tsa"
+ data: "plot-vpp-throughput-lat-tsa-2n-skx"
+ include:
+ - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4tcp-nat44ed-h1024-p63-s64512-cps-ndrpdr.64b-.t.c-avf-ethip4tcp-nat44ed-h1024-p63-s64512-cps-ndrpdr"
+ - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4tcp-ip4base-h1024-p63-s64512-cps-ndrpdr.64b-.t.c-avf-ethip4tcp-ip4base-h1024-p63-s64512-cps-ndrpdr"
+ - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4tcp-nat44ed-h4096-p63-s258048-cps-ndrpdr.64b-.t.c-avf-ethip4tcp-nat44ed-h4096-p63-s258048-cps-ndrpdr"
+ - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4tcp-ip4base-h4096-p63-s258048-cps-ndrpdr.64b-.t.c-avf-ethip4tcp-ip4base-h4096-p63-s258048-cps-ndrpdr"
+ - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4tcp-nat44ed-h16384-p63-s1032192-cps-ndrpdr.64b-.t.c-avf-ethip4tcp-nat44ed-h16384-p63-s1032192-cps-ndrpdr"
+ - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4tcp-ip4base-h16384-p63-s1032192-cps-ndrpdr.64b-.t.c-avf-ethip4tcp-ip4base-h16384-p63-s1032192-cps-ndrpdr"
+ - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4tcp-nat44ed-h65536-p63-s4128768-cps-ndrpdr.64b-.t.c-avf-ethip4tcp-nat44ed-h65536-p63-s4128768-cps-ndrpdr"
+ - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4tcp-ip4base-h65536-p63-s4128768-cps-ndrpdr.64b-.t.c-avf-ethip4tcp-ip4base-h65536-p63-s4128768-cps-ndrpdr"
+ - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4tcp-nat44ed-h262144-p63-s16515072-cps-ndrpdr.64b-.t.c-avf-ethip4tcp-nat44ed-h262144-p63-s16515072-cps-ndrpdr"
+ - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4tcp-ip4base-h262144-p63-s16515072-cps-ndrpdr.64b-.t.c-avf-ethip4tcp-ip4base-h262144-p63-s16515072-cps-ndrpdr"
+ layout:
+ title: "2n-skx-xxv710-64b-nat44ed-ip4routing-tcp-stf-cps-avf-ndr"
+ layout: "plot-throughput-speedup-analysis-cps"
+
+- type: "plot"
+ title: "Speedup: 2n-skx-xxv710-64b-nat44ed-ip4routing-tcp-stf-pps-avf-ndr-tsa"
+ algorithm: "plot_tsa_name"
+ output-file: "{DIR[STATIC,VPP]}/2n-skx-xxv710-64b-nat44ed-ip4routing-tcp-stf-pps-avf-ndr-tsa"
+ data: "plot-vpp-throughput-lat-tsa-2n-skx"
+ include:
+ - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4tcp-nat44ed-h1024-p63-s64512-pps-ndrpdr.64b-.t.c-avf-ethip4tcp-nat44ed-h1024-p63-s64512-pps-ndrpdr"
+ - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4tcp-ip4base-h1024-p63-s64512-pps-ndrpdr.64b-.t.c-avf-ethip4tcp-ip4base-h1024-p63-s64512-pps-ndrpdr"
+ - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4tcp-nat44ed-h4096-p63-s258048-pps-ndrpdr.64b-.t.c-avf-ethip4tcp-nat44ed-h4096-p63-s258048-pps-ndrpdr"
+ - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4tcp-ip4base-h4096-p63-s258048-pps-ndrpdr.64b-.t.c-avf-ethip4tcp-ip4base-h4096-p63-s258048-pps-ndrpdr"
+ - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4tcp-nat44ed-h16384-p63-s1032192-pps-ndrpdr.64b-.t.c-avf-ethip4tcp-nat44ed-h16384-p63-s1032192-pps-ndrpdr"
+ - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4tcp-ip4base-h16384-p63-s1032192-pps-ndrpdr.64b-.t.c-avf-ethip4tcp-ip4base-h16384-p63-s1032192-pps-ndrpdr"
+ - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4tcp-nat44ed-h65536-p63-s4128768-pps-ndrpdr.64b-.t.c-avf-ethip4tcp-nat44ed-h65536-p63-s4128768-pps-ndrpdr"
+ - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4tcp-ip4base-h65536-p63-s4128768-pps-ndrpdr.64b-.t.c-avf-ethip4tcp-ip4base-h65536-p63-s4128768-pps-ndrpdr"
+ - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4tcp-nat44ed-h262144-p63-s16515072-pps-ndrpdr.64b-.t.c-avf-ethip4tcp-nat44ed-h262144-p63-s16515072-pps-ndrpdr"
+ - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4tcp-ip4base-h262144-p63-s16515072-pps-ndrpdr.64b-.t.c-avf-ethip4tcp-ip4base-h262144-p63-s16515072-pps-ndrpdr"
+ layout:
+ title: "2n-skx-xxv710-64b-nat44ed-ip4routing-tcp-stf-pps-avf-ndr"
+ layout: "plot-throughput-speedup-analysis"
- type: "plot"
title: "Speedup: 2n-skx-xxv710-64b-nat44det-ip4routing-stl-bidir-avf-pdr-tsa"
@@ -14326,65 +14934,85 @@
title: "2n-skx-xxv710-64b-nat44ed-ip4routing-stl-unidir-avf-pdr"
layout: "plot-throughput-speedup-analysis"
-#- type: "plot"
-# title: "Speedup: 2n-skx-xxv710-64b-nat44ed-ip4routing-udp-stf-cps-avf-pdr-tsa"
-# algorithm: "plot_tsa_name"
-# output-file: "{DIR[STATIC,VPP]}/2n-skx-xxv710-64b-nat44ed-ip4routing-udp-stf-cps-avf-pdr-tsa"
-# data: "plot-vpp-throughput-lat-tsa-2n-skx"
-# include:
-# - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-nat44ed-h1024-p63-s64512-cps-ndrpdr.64b-.t.c-avf-ethip4udp-nat44ed-h1024-p63-s64512-cps-ndrpdr"
-# - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-nat44ed-h4096-p63-s258048-cps-ndrpdr.64b-.t.c-avf-ethip4udp-nat44ed-h4096-p63-s258048-cps-ndrpdr"
-# - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-nat44ed-h16384-p63-s1032192-cps-ndrpdr.64b-.t.c-avf-ethip4udp-nat44ed-h16384-p63-s1032192-cps-ndrpdr"
-# - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-nat44ed-h65536-p63-s4128768-cps-ndrpdr.64b-.t.c-avf-ethip4udp-nat44ed-h65536-p63-s4128768-cps-ndrpdr"
-# - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-nat44ed-h262144-p63-s16515072-cps-ndrpdr.64b-.t.c-avf-ethip4udp-nat44ed-h262144-p63-s16515072-cps-ndrpdr"
-# layout:
-# title: "2n-skx-xxv710-64b-nat44ed-ip4routing-udp-stf-cps-avf-pdr"
-# layout: "plot-throughput-speedup-analysis"
-#
-#- type: "plot"
-# title: "Speedup: 2n-skx-xxv710-64b-nat44ed-ip4routing-tcp-stf-cps-avf-pdr-tsa"
-# algorithm: "plot_tsa_name"
-# output-file: "{DIR[STATIC,VPP]}/2n-skx-xxv710-64b-nat44ed-ip4routing-tcp-stf-cps-avf-pdr-tsa"
-# data: "plot-vpp-throughput-lat-tsa-2n-skx"
-# include:
-# - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4tcp-nat44ed-h1024-p63-s64512-cps-ndrpdr.64b-.t.c-avf-ethip4tcp-nat44ed-h1024-p63-s64512-cps-ndrpdr"
-# - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4tcp-nat44ed-h4096-p63-s258048-cps-ndrpdr.64b-.t.c-avf-ethip4tcp-nat44ed-h4096-p63-s258048-cps-ndrpdr"
-# - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4tcp-nat44ed-h16384-p63-s1032192-cps-ndrpdr.64b-.t.c-avf-ethip4tcp-nat44ed-h16384-p63-s1032192-cps-ndrpdr"
-# - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4tcp-nat44ed-h65536-p63-s4128768-cps-ndrpdr.64b-.t.c-avf-ethip4tcp-nat44ed-h65536-p63-s4128768-cps-ndrpdr"
-# - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4tcp-nat44ed-h262144-p63-s16515072-cps-ndrpdr.64b-.t.c-avf-ethip4tcp-nat44ed-h262144-p63-s16515072-cps-ndrpdr"
-# layout:
-# title: "2n-skx-xxv710-64b-nat44ed-ip4routing-tcp-stf-cps-avf-pdr"
-# layout: "plot-throughput-speedup-analysis"
-#
-#- type: "plot"
-# title: "Speedup: 2n-skx-xxv710-64b-nat44ed-ip4routing-udp-stf-pps-avf-pdr-tsa"
-# algorithm: "plot_tsa_name"
-# output-file: "{DIR[STATIC,VPP]}/2n-skx-xxv710-64b-nat44ed-ip4routing-udp-stf-pps-avf-pdr-tsa"
-# data: "plot-vpp-throughput-lat-tsa-2n-skx"
-# include:
-# - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-nat44ed-h1024-p63-s64512-pps-ndrpdr.64b-.t.c-avf-ethip4udp-nat44ed-h1024-p63-s64512-pps-ndrpdr"
-# - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-nat44ed-h4096-p63-s258048-pps-ndrpdr.64b-.t.c-avf-ethip4udp-nat44ed-h4096-p63-s258048-pps-ndrpdr"
-# - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-nat44ed-h16384-p63-s1032192-pps-ndrpdr.64b-.t.c-avf-ethip4udp-nat44ed-h16384-p63-s1032192-pps-ndrpdr"
-# - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-nat44ed-h65536-p63-s4128768-pps-ndrpdr.64b-.t.c-avf-ethip4udp-nat44ed-h65536-p63-s4128768-pps-ndrpdr"
-# - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-nat44ed-h262144-p63-s16515072-pps-ndrpdr.64b-.t.c-avf-ethip4udp-nat44ed-h262144-p63-s16515072-pps-ndrpdr"
-# layout:
-# title: "2n-skx-xxv710-64b-nat44ed-ip4routing-udp-stf-pps-avf-pdr"
-# layout: "plot-throughput-speedup-analysis"
-#
-#- type: "plot"
-# title: "Speedup: 2n-skx-xxv710-64b-nat44ed-ip4routing-tcp-stf-pps-avf-pdr-tsa"
-# algorithm: "plot_tsa_name"
-# output-file: "{DIR[STATIC,VPP]}/2n-skx-xxv710-64b-nat44ed-ip4routing-tcp-stf-pps-avf-pdr-tsa"
-# data: "plot-vpp-throughput-lat-tsa-2n-skx"
-# include:
-# - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4tcp-nat44ed-h1024-p63-s64512-pps-ndrpdr.64b-.t.c-avf-ethip4tcp-nat44ed-h1024-p63-s64512-pps-ndrpdr"
-# - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4tcp-nat44ed-h4096-p63-s258048-pps-ndrpdr.64b-.t.c-avf-ethip4tcp-nat44ed-h4096-p63-s258048-pps-ndrpdr"
-# - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4tcp-nat44ed-h16384-p63-s1032192-pps-ndrpdr.64b-.t.c-avf-ethip4tcp-nat44ed-h16384-p63-s1032192-pps-ndrpdr"
-# - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4tcp-nat44ed-h65536-p63-s4128768-pps-ndrpdr.64b-.t.c-avf-ethip4tcp-nat44ed-h65536-p63-s4128768-pps-ndrpdr"
-# - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4tcp-nat44ed-h262144-p63-s16515072-pps-ndrpdr.64b-.t.c-avf-ethip4tcp-nat44ed-h262144-p63-s16515072-pps-ndrpdr"
-# layout:
-# title: "22n-skx-xxv710-64b-nat44ed-ip4routing-tcp-stf-pps-avf-pdr"
-# layout: "plot-throughput-speedup-analysis"
+- type: "plot"
+ title: "Speedup: 2n-skx-xxv710-64b-nat44ed-ip4routing-udp-stf-cps-avf-pdr-tsa"
+ algorithm: "plot_tsa_name"
+ output-file: "{DIR[STATIC,VPP]}/2n-skx-xxv710-64b-nat44ed-ip4routing-udp-stf-cps-avf-pdr-tsa"
+ data: "plot-vpp-throughput-lat-tsa-2n-skx"
+ include:
+ - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-nat44ed-h1024-p63-s64512-cps-ndrpdr.64b-.t.c-avf-ethip4udp-nat44ed-h1024-p63-s64512-cps-ndrpdr"
+ - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-ip4base-h1024-p63-s64512-cps-ndrpdr.64b-.t.c-avf-ethip4udp-ip4base-h1024-p63-s64512-cps-ndrpdr"
+ - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-nat44ed-h4096-p63-s258048-cps-ndrpdr.64b-.t.c-avf-ethip4udp-nat44ed-h4096-p63-s258048-cps-ndrpdr"
+ - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-ip4base-h4096-p63-s258048-cps-ndrpdr.64b-.t.c-avf-ethip4udp-ip4base-h4096-p63-s258048-cps-ndrpdr"
+ - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-nat44ed-h16384-p63-s1032192-cps-ndrpdr.64b-.t.c-avf-ethip4udp-nat44ed-h16384-p63-s1032192-cps-ndrpdr"
+ - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-ip4base-h16384-p63-s1032192-cps-ndrpdr.64b-.t.c-avf-ethip4udp-ip4base-h16384-p63-s1032192-cps-ndrpdr"
+ - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-nat44ed-h65536-p63-s4128768-cps-ndrpdr.64b-.t.c-avf-ethip4udp-nat44ed-h65536-p63-s4128768-cps-ndrpdr"
+ - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-ip4base-h65536-p63-s4128768-cps-ndrpdr.64b-.t.c-avf-ethip4udp-ip4base-h65536-p63-s4128768-cps-ndrpdr"
+ - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-nat44ed-h262144-p63-s16515072-cps-ndrpdr.64b-.t.c-avf-ethip4udp-nat44ed-h262144-p63-s16515072-cps-ndrpdr"
+ - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-ip4base-h262144-p63-s16515072-cps-ndrpdr.64b-.t.c-avf-ethip4udp-ip4base-h262144-p63-s16515072-cps-ndrpdr"
+ layout:
+ title: "2n-skx-xxv710-64b-nat44ed-ip4routing-udp-stf-cps-avf-pdr"
+ layout: "plot-throughput-speedup-analysis-cps"
+
+- type: "plot"
+ title: "Speedup: 2n-skx-xxv710-64b-nat44ed-ip4routing-udp-stf-pps-avf-pdr-tsa"
+ algorithm: "plot_tsa_name"
+ output-file: "{DIR[STATIC,VPP]}/2n-skx-xxv710-64b-nat44ed-ip4routing-udp-stf-pps-avf-pdr-tsa"
+ data: "plot-vpp-throughput-lat-tsa-2n-skx"
+ include:
+ - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-nat44ed-h1024-p63-s64512-pps-ndrpdr.64b-.t.c-avf-ethip4udp-nat44ed-h1024-p63-s64512-pps-ndrpdr"
+ - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-ip4base-h1024-p63-s64512-pps-ndrpdr.64b-.t.c-avf-ethip4udp-ip4base-h1024-p63-s64512-pps-ndrpdr"
+ - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-nat44ed-h4096-p63-s258048-pps-ndrpdr.64b-.t.c-avf-ethip4udp-nat44ed-h4096-p63-s258048-pps-ndrpdr"
+ - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-ip4base-h4096-p63-s258048-pps-ndrpdr.64b-.t.c-avf-ethip4udp-ip4base-h4096-p63-s258048-pps-ndrpdr"
+ - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-nat44ed-h16384-p63-s1032192-pps-ndrpdr.64b-.t.c-avf-ethip4udp-nat44ed-h16384-p63-s1032192-pps-ndrpdr"
+ - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-ip4base-h16384-p63-s1032192-pps-ndrpdr.64b-.t.c-avf-ethip4udp-ip4base-h16384-p63-s1032192-pps-ndrpdr"
+ - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-nat44ed-h65536-p63-s4128768-pps-ndrpdr.64b-.t.c-avf-ethip4udp-nat44ed-h65536-p63-s4128768-pps-ndrpdr"
+ - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-ip4base-h65536-p63-s4128768-pps-ndrpdr.64b-.t.c-avf-ethip4udp-ip4base-h65536-p63-s4128768-pps-ndrpdr"
+ - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-nat44ed-h262144-p63-s16515072-pps-ndrpdr.64b-.t.c-avf-ethip4udp-nat44ed-h262144-p63-s16515072-pps-ndrpdr"
+ - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-ip4base-h262144-p63-s16515072-pps-ndrpdr.64b-.t.c-avf-ethip4udp-ip4base-h262144-p63-s16515072-pps-ndrpdr"
+ layout:
+ title: "2n-skx-xxv710-64b-nat44ed-ip4routing-udp-stf-pps-avf-pdr"
+ layout: "plot-throughput-speedup-analysis"
+
+- type: "plot"
+ title: "Speedup: 2n-skx-xxv710-64b-nat44ed-ip4routing-tcp-stf-cps-avf-pdr-tsa"
+ algorithm: "plot_tsa_name"
+ output-file: "{DIR[STATIC,VPP]}/2n-skx-xxv710-64b-nat44ed-ip4routing-tcp-stf-cps-avf-pdr-tsa"
+ data: "plot-vpp-throughput-lat-tsa-2n-skx"
+ include:
+ - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4tcp-nat44ed-h1024-p63-s64512-cps-ndrpdr.64b-.t.c-avf-ethip4tcp-nat44ed-h1024-p63-s64512-cps-ndrpdr"
+ - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4tcp-ip4base-h1024-p63-s64512-cps-ndrpdr.64b-.t.c-avf-ethip4tcp-ip4base-h1024-p63-s64512-cps-ndrpdr"
+ - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4tcp-nat44ed-h4096-p63-s258048-cps-ndrpdr.64b-.t.c-avf-ethip4tcp-nat44ed-h4096-p63-s258048-cps-ndrpdr"
+ - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4tcp-ip4base-h4096-p63-s258048-cps-ndrpdr.64b-.t.c-avf-ethip4tcp-ip4base-h4096-p63-s258048-cps-ndrpdr"
+ - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4tcp-nat44ed-h16384-p63-s1032192-cps-ndrpdr.64b-.t.c-avf-ethip4tcp-nat44ed-h16384-p63-s1032192-cps-ndrpdr"
+ - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4tcp-ip4base-h16384-p63-s1032192-cps-ndrpdr.64b-.t.c-avf-ethip4tcp-ip4base-h16384-p63-s1032192-cps-ndrpdr"
+ - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4tcp-nat44ed-h65536-p63-s4128768-cps-ndrpdr.64b-.t.c-avf-ethip4tcp-nat44ed-h65536-p63-s4128768-cps-ndrpdr"
+ - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4tcp-ip4base-h65536-p63-s4128768-cps-ndrpdr.64b-.t.c-avf-ethip4tcp-ip4base-h65536-p63-s4128768-cps-ndrpdr"
+ - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4tcp-nat44ed-h262144-p63-s16515072-cps-ndrpdr.64b-.t.c-avf-ethip4tcp-nat44ed-h262144-p63-s16515072-cps-ndrpdr"
+ - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4tcp-ip4base-h262144-p63-s16515072-cps-ndrpdr.64b-.t.c-avf-ethip4tcp-ip4base-h262144-p63-s16515072-cps-ndrpdr"
+ layout:
+ title: "2n-skx-xxv710-64b-nat44ed-ip4routing-tcp-stf-cps-avf-pdr"
+ layout: "plot-throughput-speedup-analysis-cps"
+
+- type: "plot"
+ title: "Speedup: 2n-skx-xxv710-64b-nat44ed-ip4routing-tcp-stf-pps-avf-pdr-tsa"
+ algorithm: "plot_tsa_name"
+ output-file: "{DIR[STATIC,VPP]}/2n-skx-xxv710-64b-nat44ed-ip4routing-tcp-stf-pps-avf-pdr-tsa"
+ data: "plot-vpp-throughput-lat-tsa-2n-skx"
+ include:
+ - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4tcp-nat44ed-h1024-p63-s64512-pps-ndrpdr.64b-.t.c-avf-ethip4tcp-nat44ed-h1024-p63-s64512-pps-ndrpdr"
+ - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4tcp-ip4base-h1024-p63-s64512-pps-ndrpdr.64b-.t.c-avf-ethip4tcp-ip4base-h1024-p63-s64512-pps-ndrpdr"
+ - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4tcp-nat44ed-h4096-p63-s258048-pps-ndrpdr.64b-.t.c-avf-ethip4tcp-nat44ed-h4096-p63-s258048-pps-ndrpdr"
+ - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4tcp-ip4base-h4096-p63-s258048-pps-ndrpdr.64b-.t.c-avf-ethip4tcp-ip4base-h4096-p63-s258048-pps-ndrpdr"
+ - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4tcp-nat44ed-h16384-p63-s1032192-pps-ndrpdr.64b-.t.c-avf-ethip4tcp-nat44ed-h16384-p63-s1032192-pps-ndrpdr"
+ - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4tcp-ip4base-h16384-p63-s1032192-pps-ndrpdr.64b-.t.c-avf-ethip4tcp-ip4base-h16384-p63-s1032192-pps-ndrpdr"
+ - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4tcp-nat44ed-h65536-p63-s4128768-pps-ndrpdr.64b-.t.c-avf-ethip4tcp-nat44ed-h65536-p63-s4128768-pps-ndrpdr"
+ - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4tcp-ip4base-h65536-p63-s4128768-pps-ndrpdr.64b-.t.c-avf-ethip4tcp-ip4base-h65536-p63-s4128768-pps-ndrpdr"
+ - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4tcp-nat44ed-h262144-p63-s16515072-pps-ndrpdr.64b-.t.c-avf-ethip4tcp-nat44ed-h262144-p63-s16515072-pps-ndrpdr"
+ - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4tcp-ip4base-h262144-p63-s16515072-pps-ndrpdr.64b-.t.c-avf-ethip4tcp-ip4base-h262144-p63-s16515072-pps-ndrpdr"
+ layout:
+ title: "2n-skx-xxv710-64b-nat44ed-ip4routing-tcp-stf-pps-avf-pdr"
+ layout: "plot-throughput-speedup-analysis"
- type: "plot"
title: "Speedup: 2n-skx-xxv710-64b-features-ip4routing-base-dpdk-ndr-tsa"
@@ -17440,65 +18068,85 @@
title: "2n-clx-xxv710-64b-2t1c-nat44ed-ip4routing-stl-unidir-avf-ndr"
layout: "plot-throughput"
-#- type: "plot"
-# title: "Throughput: 2n-clx-xxv710-64b-2t1c-nat44ed-ip4routing-udp-stf-cps-avf-ndr"
-# algorithm: "plot_perf_box_name"
-# output-file: "{DIR[STATIC,VPP]}/2n-clx-xxv710-64b-2t1c-nat44ed-ip4routing-udp-stf-cps-avf-ndr"
-# data: "plot-vpp-throughput-lat-tsa-2n-clx"
-# include:
-# - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-nat44ed-h1024-p63-s64512-cps-ndrpdr.64b-2t1c-avf-ethip4udp-nat44ed-h1024-p63-s64512-cps-ndrpdr"
-# - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-nat44ed-h4096-p63-s258048-cps-ndrpdr.64b-2t1c-avf-ethip4udp-nat44ed-h4096-p63-s258048-cps-ndrpdr"
-# - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-nat44ed-h16384-p63-s1032192-cps-ndrpdr.64b-2t1c-avf-ethip4udp-nat44ed-h16384-p63-s1032192-cps-ndrpdr"
-# - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-nat44ed-h65536-p63-s4128768-cps-ndrpdr.64b-2t1c-avf-ethip4udp-nat44ed-h65536-p63-s4128768-cps-ndrpdr"
-# - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-nat44ed-h262144-p63-s16515072-cps-ndrpdr.64b-2t1c-avf-ethip4udp-nat44ed-h262144-p63-s16515072-cps-ndrpdr"
-# layout:
-# title: "2n-clx-xxv710-64b-2t1c-nat44ed-ip4routing-udp-stf-cps-avf-ndr"
-# layout: "plot-throughput"
-#
-#- type: "plot"
-# title: "Throughput: 2n-clx-xxv710-64b-2t1c-nat44ed-ip4routing-tcp-stf-cps-avf-ndr"
-# algorithm: "plot_perf_box_name"
-# output-file: "{DIR[STATIC,VPP]}/2n-clx-xxv710-64b-2t1c-nat44ed-ip4routing-tcp-stf-cps-avf-ndr"
-# data: "plot-vpp-throughput-lat-tsa-2n-clx"
-# include:
-# - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4tcp-nat44ed-h1024-p63-s64512-cps-ndrpdr.64b-2t1c-avf-ethip4tcp-nat44ed-h1024-p63-s64512-cps-ndrpdr"
-# - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4tcp-nat44ed-h4096-p63-s258048-cps-ndrpdr.64b-2t1c-avf-ethip4tcp-nat44ed-h4096-p63-s258048-cps-ndrpdr"
-# - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4tcp-nat44ed-h16384-p63-s1032192-cps-ndrpdr.64b-2t1c-avf-ethip4tcp-nat44ed-h16384-p63-s1032192-cps-ndrpdr"
-# - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4tcp-nat44ed-h65536-p63-s4128768-cps-ndrpdr.64b-2t1c-avf-ethip4tcp-nat44ed-h65536-p63-s4128768-cps-ndrpdr"
-# - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4tcp-nat44ed-h262144-p63-s16515072-cps-ndrpdr.64b-2t1c-avf-ethip4tcp-nat44ed-h262144-p63-s16515072-cps-ndrpdr"
-# layout:
-# title: "2n-clx-xxv710-64b-2t1c-nat44ed-ip4routing-tcp-stf-cps-avf-ndr"
-# layout: "plot-throughput"
-#
-#- type: "plot"
-# title: "Throughput: 2n-clx-xxv710-64b-2t1c-nat44ed-ip4routing-udp-stf-pps-avf-ndr"
-# algorithm: "plot_perf_box_name"
-# output-file: "{DIR[STATIC,VPP]}/2n-clx-xxv710-64b-2t1c-nat44ed-ip4routing-udp-stf-pps-avf-ndr"
-# data: "plot-vpp-throughput-lat-tsa-2n-clx"
-# include:
-# - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-nat44ed-h1024-p63-s64512-pps-ndrpdr.64b-2t1c-avf-ethip4udp-nat44ed-h1024-p63-s64512-pps-ndrpdr"
-# - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-nat44ed-h4096-p63-s258048-pps-ndrpdr.64b-2t1c-avf-ethip4udp-nat44ed-h4096-p63-s258048-pps-ndrpdr"
-# - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-nat44ed-h16384-p63-s1032192-pps-ndrpdr.64b-2t1c-avf-ethip4udp-nat44ed-h16384-p63-s1032192-pps-ndrpdr"
-# - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-nat44ed-h65536-p63-s4128768-pps-ndrpdr.64b-2t1c-avf-ethip4udp-nat44ed-h65536-p63-s4128768-pps-ndrpdr"
-# - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-nat44ed-h262144-p63-s16515072-pps-ndrpdr.64b-2t1c-avf-ethip4udp-nat44ed-h262144-p63-s16515072-pps-ndrpdr"
-# layout:
-# title: "2n-clx-xxv710-64b-2t1c-nat44ed-ip4routing-udp-stf-pps-avf-ndr"
-# layout: "plot-throughput"
-#
-#- type: "plot"
-# title: "Throughput: 2n-clx-xxv710-64b-2t1c-nat44ed-ip4routing-tcp-stf-pps-avf-ndr"
-# algorithm: "plot_perf_box_name"
-# output-file: "{DIR[STATIC,VPP]}/2n-clx-xxv710-64b-2t1c-nat44ed-ip4routing-tcp-stf-pps-avf-ndr"
-# data: "plot-vpp-throughput-lat-tsa-2n-clx"
-# include:
-# - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4tcp-nat44ed-h1024-p63-s64512-pps-ndrpdr.64b-2t1c-avf-ethip4tcp-nat44ed-h1024-p63-s64512-pps-ndrpdr"
-# - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4tcp-nat44ed-h4096-p63-s258048-pps-ndrpdr.64b-2t1c-avf-ethip4tcp-nat44ed-h4096-p63-s258048-pps-ndrpdr"
-# - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4tcp-nat44ed-h16384-p63-s1032192-pps-ndrpdr.64b-2t1c-avf-ethip4tcp-nat44ed-h16384-p63-s1032192-pps-ndrpdr"
-# - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4tcp-nat44ed-h65536-p63-s4128768-pps-ndrpdr.64b-2t1c-avf-ethip4tcp-nat44ed-h65536-p63-s4128768-pps-ndrpdr"
-# - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4tcp-nat44ed-h262144-p63-s16515072-pps-ndrpdr.64b-2t1c-avf-ethip4tcp-nat44ed-h262144-p63-s16515072-pps-ndrpdr"
-# layout:
-# title: "2n-clx-xxv710-64b-2t1c-nat44ed-ip4routing-tcp-stf-pps-avf-ndr"
-# layout: "plot-throughput"
+- type: "plot"
+ title: "Throughput: 2n-clx-xxv710-64b-2t1c-nat44ed-ip4routing-udp-stf-cps-avf-ndr"
+ algorithm: "plot_perf_box_name"
+ output-file: "{DIR[STATIC,VPP]}/2n-clx-xxv710-64b-2t1c-nat44ed-ip4routing-udp-stf-cps-avf-ndr"
+ data: "plot-vpp-throughput-lat-tsa-2n-clx"
+ include:
+ - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-nat44ed-h1024-p63-s64512-cps-ndrpdr.64b-2t1c-avf-ethip4udp-nat44ed-h1024-p63-s64512-cps-ndrpdr"
+ - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-ip4base-h1024-p63-s64512-cps-ndrpdr.64b-2t1c-avf-ethip4udp-ip4base-h1024-p63-s64512-cps-ndrpdr"
+ - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-nat44ed-h4096-p63-s258048-cps-ndrpdr.64b-2t1c-avf-ethip4udp-nat44ed-h4096-p63-s258048-cps-ndrpdr"
+ - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-ip4base-h4096-p63-s258048-cps-ndrpdr.64b-2t1c-avf-ethip4udp-ip4base-h4096-p63-s258048-cps-ndrpdr"
+ - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-nat44ed-h16384-p63-s1032192-cps-ndrpdr.64b-2t1c-avf-ethip4udp-nat44ed-h16384-p63-s1032192-cps-ndrpdr"
+ - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-ip4base-h16384-p63-s1032192-cps-ndrpdr.64b-2t1c-avf-ethip4udp-ip4base-h16384-p63-s1032192-cps-ndrpdr"
+ - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-nat44ed-h65536-p63-s4128768-cps-ndrpdr.64b-2t1c-avf-ethip4udp-nat44ed-h65536-p63-s4128768-cps-ndrpdr"
+ - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-ip4base-h65536-p63-s4128768-cps-ndrpdr.64b-2t1c-avf-ethip4udp-ip4base-h65536-p63-s4128768-cps-ndrpdr"
+ - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-nat44ed-h262144-p63-s16515072-cps-ndrpdr.64b-2t1c-avf-ethip4udp-nat44ed-h262144-p63-s16515072-cps-ndrpdr"
+ - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-ip4base-h262144-p63-s16515072-cps-ndrpdr.64b-2t1c-avf-ethip4udp-ip4base-h262144-p63-s16515072-cps-ndrpdr"
+ layout:
+ title: "2n-clx-xxv710-64b-2t1c-nat44ed-ip4routing-udp-stf-cps-avf-ndr"
+ layout: "plot-cps"
+
+- type: "plot"
+ title: "Throughput: 2n-clx-xxv710-64b-2t1c-nat44ed-ip4routing-udp-stf-pps-avf-ndr"
+ algorithm: "plot_perf_box_name"
+ output-file: "{DIR[STATIC,VPP]}/2n-clx-xxv710-64b-2t1c-nat44ed-ip4routing-udp-stf-pps-avf-ndr"
+ data: "plot-vpp-throughput-lat-tsa-2n-clx"
+ include:
+ - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-nat44ed-h1024-p63-s64512-pps-ndrpdr.64b-2t1c-avf-ethip4udp-nat44ed-h1024-p63-s64512-pps-ndrpdr"
+ - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-ip4base-h1024-p63-s64512-pps-ndrpdr.64b-2t1c-avf-ethip4udp-ip4base-h1024-p63-s64512-pps-ndrpdr"
+ - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-nat44ed-h4096-p63-s258048-pps-ndrpdr.64b-2t1c-avf-ethip4udp-nat44ed-h4096-p63-s258048-pps-ndrpdr"
+ - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-ip4base-h4096-p63-s258048-pps-ndrpdr.64b-2t1c-avf-ethip4udp-ip4base-h4096-p63-s258048-pps-ndrpdr"
+ - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-nat44ed-h16384-p63-s1032192-pps-ndrpdr.64b-2t1c-avf-ethip4udp-nat44ed-h16384-p63-s1032192-pps-ndrpdr"
+ - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-ip4base-h16384-p63-s1032192-pps-ndrpdr.64b-2t1c-avf-ethip4udp-ip4base-h16384-p63-s1032192-pps-ndrpdr"
+ - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-nat44ed-h65536-p63-s4128768-pps-ndrpdr.64b-2t1c-avf-ethip4udp-nat44ed-h65536-p63-s4128768-pps-ndrpdr"
+ - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-ip4base-h65536-p63-s4128768-pps-ndrpdr.64b-2t1c-avf-ethip4udp-ip4base-h65536-p63-s4128768-pps-ndrpdr"
+ - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-nat44ed-h262144-p63-s16515072-pps-ndrpdr.64b-2t1c-avf-ethip4udp-nat44ed-h262144-p63-s16515072-pps-ndrpdr"
+ - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-ip4base-h262144-p63-s16515072-pps-ndrpdr.64b-2t1c-avf-ethip4udp-ip4base-h262144-p63-s16515072-pps-ndrpdr"
+ layout:
+ title: "2n-clx-xxv710-64b-2t1c-nat44ed-ip4routing-udp-stf-pps-avf-ndr"
+ layout: "plot-throughput"
+
+- type: "plot"
+ title: "Throughput: 2n-clx-xxv710-64b-2t1c-nat44ed-ip4routing-tcp-stf-cps-avf-ndr"
+ algorithm: "plot_perf_box_name"
+ output-file: "{DIR[STATIC,VPP]}/2n-clx-xxv710-64b-2t1c-nat44ed-ip4routing-tcp-stf-cps-avf-ndr"
+ data: "plot-vpp-throughput-lat-tsa-2n-clx"
+ include:
+ - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4tcp-nat44ed-h1024-p63-s64512-cps-ndrpdr.64b-2t1c-avf-ethip4tcp-nat44ed-h1024-p63-s64512-cps-ndrpdr"
+ - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4tcp-ip4base-h1024-p63-s64512-cps-ndrpdr.64b-2t1c-avf-ethip4tcp-ip4base-h1024-p63-s64512-cps-ndrpdr"
+ - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4tcp-nat44ed-h4096-p63-s258048-cps-ndrpdr.64b-2t1c-avf-ethip4tcp-nat44ed-h4096-p63-s258048-cps-ndrpdr"
+ - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4tcp-ip4base-h4096-p63-s258048-cps-ndrpdr.64b-2t1c-avf-ethip4tcp-ip4base-h4096-p63-s258048-cps-ndrpdr"
+ - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4tcp-nat44ed-h16384-p63-s1032192-cps-ndrpdr.64b-2t1c-avf-ethip4tcp-nat44ed-h16384-p63-s1032192-cps-ndrpdr"
+ - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4tcp-ip4base-h16384-p63-s1032192-cps-ndrpdr.64b-2t1c-avf-ethip4tcp-ip4base-h16384-p63-s1032192-cps-ndrpdr"
+ - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4tcp-nat44ed-h65536-p63-s4128768-cps-ndrpdr.64b-2t1c-avf-ethip4tcp-nat44ed-h65536-p63-s4128768-cps-ndrpdr"
+ - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4tcp-ip4base-h65536-p63-s4128768-cps-ndrpdr.64b-2t1c-avf-ethip4tcp-ip4base-h65536-p63-s4128768-cps-ndrpdr"
+ - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4tcp-nat44ed-h262144-p63-s16515072-cps-ndrpdr.64b-2t1c-avf-ethip4tcp-nat44ed-h262144-p63-s16515072-cps-ndrpdr"
+ - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4tcp-ip4base-h262144-p63-s16515072-cps-ndrpdr.64b-2t1c-avf-ethip4tcp-ip4base-h262144-p63-s16515072-cps-ndrpdr"
+ layout:
+ title: "2n-clx-xxv710-64b-2t1c-nat44ed-ip4routing-tcp-stf-cps-avf-ndr"
+ layout: "plot-cps"
+
+- type: "plot"
+ title: "Throughput: 2n-clx-xxv710-64b-2t1c-nat44ed-ip4routing-tcp-stf-pps-avf-ndr"
+ algorithm: "plot_perf_box_name"
+ output-file: "{DIR[STATIC,VPP]}/2n-clx-xxv710-64b-2t1c-nat44ed-ip4routing-tcp-stf-pps-avf-ndr"
+ data: "plot-vpp-throughput-lat-tsa-2n-clx"
+ include:
+ - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4tcp-nat44ed-h1024-p63-s64512-pps-ndrpdr.64b-2t1c-avf-ethip4tcp-nat44ed-h1024-p63-s64512-pps-ndrpdr"
+ - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4tcp-ip4base-h1024-p63-s64512-pps-ndrpdr.64b-2t1c-avf-ethip4tcp-ip4base-h1024-p63-s64512-pps-ndrpdr"
+ - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4tcp-nat44ed-h4096-p63-s258048-pps-ndrpdr.64b-2t1c-avf-ethip4tcp-nat44ed-h4096-p63-s258048-pps-ndrpdr"
+ - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4tcp-ip4base-h4096-p63-s258048-pps-ndrpdr.64b-2t1c-avf-ethip4tcp-ip4base-h4096-p63-s258048-pps-ndrpdr"
+ - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4tcp-nat44ed-h16384-p63-s1032192-pps-ndrpdr.64b-2t1c-avf-ethip4tcp-nat44ed-h16384-p63-s1032192-pps-ndrpdr"
+ - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4tcp-ip4base-h16384-p63-s1032192-pps-ndrpdr.64b-2t1c-avf-ethip4tcp-ip4base-h16384-p63-s1032192-pps-ndrpdr"
+ - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4tcp-nat44ed-h65536-p63-s4128768-pps-ndrpdr.64b-2t1c-avf-ethip4tcp-nat44ed-h65536-p63-s4128768-pps-ndrpdr"
+ - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4tcp-ip4base-h65536-p63-s4128768-pps-ndrpdr.64b-2t1c-avf-ethip4tcp-ip4base-h65536-p63-s4128768-pps-ndrpdr"
+ - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4tcp-nat44ed-h262144-p63-s16515072-pps-ndrpdr.64b-2t1c-avf-ethip4tcp-nat44ed-h262144-p63-s16515072-pps-ndrpdr"
+ - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4tcp-ip4base-h262144-p63-s16515072-pps-ndrpdr.64b-2t1c-avf-ethip4tcp-ip4base-h262144-p63-s16515072-pps-ndrpdr"
+ layout:
+ title: "2n-clx-xxv710-64b-2t1c-nat44ed-ip4routing-tcp-stf-pps-avf-ndr"
+ layout: "plot-throughput"
- type: "plot"
title: "Throughput: 2n-clx-xxv710-64b-2t1c-nat44det-ip4routing-stl-bidir-avf-pdr"
@@ -17530,65 +18178,85 @@
title: "2n-clx-xxv710-64b-2t1c-nat44ed-ip4routing-stl-unidir-avf-pdr"
layout: "plot-throughput"
-#- type: "plot"
-# title: "Throughput: 2n-clx-xxv710-64b-2t1c-nat44ed-ip4routing-udp-stf-cps-avf-pdr"
-# algorithm: "plot_perf_box_name"
-# output-file: "{DIR[STATIC,VPP]}/2n-clx-xxv710-64b-2t1c-nat44ed-ip4routing-udp-stf-cps-avf-pdr"
-# data: "plot-vpp-throughput-lat-tsa-2n-clx"
-# include:
-# - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-nat44ed-h1024-p63-s64512-cps-ndrpdr.64b-2t1c-avf-ethip4udp-nat44ed-h1024-p63-s64512-cps-ndrpdr"
-# - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-nat44ed-h4096-p63-s258048-cps-ndrpdr.64b-2t1c-avf-ethip4udp-nat44ed-h4096-p63-s258048-cps-ndrpdr"
-# - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-nat44ed-h16384-p63-s1032192-cps-ndrpdr.64b-2t1c-avf-ethip4udp-nat44ed-h16384-p63-s1032192-cps-ndrpdr"
-# - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-nat44ed-h65536-p63-s4128768-cps-ndrpdr.64b-2t1c-avf-ethip4udp-nat44ed-h65536-p63-s4128768-cps-ndrpdr"
-# - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-nat44ed-h262144-p63-s16515072-cps-ndrpdr.64b-2t1c-avf-ethip4udp-nat44ed-h262144-p63-s16515072-cps-ndrpdr"
-# layout:
-# title: "2n-clx-xxv710-64b-2t1c-nat44ed-ip4routing-udp-stf-cps-avf-pdr"
-# layout: "plot-throughput"
-#
-#- type: "plot"
-# title: "Throughput: 2n-clx-xxv710-64b-2t1c-nat44ed-ip4routing-tcp-stf-cps-avf-pdr"
-# algorithm: "plot_perf_box_name"
-# output-file: "{DIR[STATIC,VPP]}/2n-clx-xxv710-64b-2t1c-nat44ed-ip4routing-tcp-stf-cps-avf-pdr"
-# data: "plot-vpp-throughput-lat-tsa-2n-clx"
-# include:
-# - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4tcp-nat44ed-h1024-p63-s64512-cps-ndrpdr.64b-2t1c-avf-ethip4tcp-nat44ed-h1024-p63-s64512-cps-ndrpdr"
-# - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4tcp-nat44ed-h4096-p63-s258048-cps-ndrpdr.64b-2t1c-avf-ethip4tcp-nat44ed-h4096-p63-s258048-cps-ndrpdr"
-# - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4tcp-nat44ed-h16384-p63-s1032192-cps-ndrpdr.64b-2t1c-avf-ethip4tcp-nat44ed-h16384-p63-s1032192-cps-ndrpdr"
-# - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4tcp-nat44ed-h65536-p63-s4128768-cps-ndrpdr.64b-2t1c-avf-ethip4tcp-nat44ed-h65536-p63-s4128768-cps-ndrpdr"
-# - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4tcp-nat44ed-h262144-p63-s16515072-cps-ndrpdr.64b-2t1c-avf-ethip4tcp-nat44ed-h262144-p63-s16515072-cps-ndrpdr"
-# layout:
-# title: "2n-clx-xxv710-64b-2t1c-nat44ed-ip4routing-tcp-stf-cps-avf-pdr"
-# layout: "plot-throughput"
-#
-#- type: "plot"
-# title: "Throughput: 2n-clx-xxv710-64b-2t1c-nat44ed-ip4routing-udp-stf-pps-avf-pdr"
-# algorithm: "plot_perf_box_name"
-# output-file: "{DIR[STATIC,VPP]}/2n-clx-xxv710-64b-2t1c-nat44ed-ip4routing-udp-stf-pps-avf-pdr"
-# data: "plot-vpp-throughput-lat-tsa-2n-clx"
-# include:
-# - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-nat44ed-h1024-p63-s64512-pps-ndrpdr.64b-2t1c-avf-ethip4udp-nat44ed-h1024-p63-s64512-pps-ndrpdr"
-# - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-nat44ed-h4096-p63-s258048-pps-ndrpdr.64b-2t1c-avf-ethip4udp-nat44ed-h4096-p63-s258048-pps-ndrpdr"
-# - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-nat44ed-h16384-p63-s1032192-pps-ndrpdr.64b-2t1c-avf-ethip4udp-nat44ed-h16384-p63-s1032192-pps-ndrpdr"
-# - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-nat44ed-h65536-p63-s4128768-pps-ndrpdr.64b-2t1c-avf-ethip4udp-nat44ed-h65536-p63-s4128768-pps-ndrpdr"
-# - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-nat44ed-h262144-p63-s16515072-pps-ndrpdr.64b-2t1c-avf-ethip4udp-nat44ed-h262144-p63-s16515072-pps-ndrpdr"
-# layout:
-# title: "2n-clx-xxv710-64b-2t1c-nat44ed-ip4routing-udp-stf-pps-avf-pdr"
-# layout: "plot-throughput"
-#
-#- type: "plot"
-# title: "Throughput: 2n-clx-xxv710-64b-2t1c-nat44ed-ip4routing-tcp-stf-pps-avf-pdr"
-# algorithm: "plot_perf_box_name"
-# output-file: "{DIR[STATIC,VPP]}/2n-clx-xxv710-64b-2t1c-nat44ed-ip4routing-tcp-stf-pps-avf-pdr"
-# data: "plot-vpp-throughput-lat-tsa-2n-clx"
-# include:
-# - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4tcp-nat44ed-h1024-p63-s64512-pps-ndrpdr.64b-2t1c-avf-ethip4tcp-nat44ed-h1024-p63-s64512-pps-ndrpdr"
-# - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4tcp-nat44ed-h4096-p63-s258048-pps-ndrpdr.64b-2t1c-avf-ethip4tcp-nat44ed-h4096-p63-s258048-pps-ndrpdr"
-# - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4tcp-nat44ed-h16384-p63-s1032192-pps-ndrpdr.64b-2t1c-avf-ethip4tcp-nat44ed-h16384-p63-s1032192-pps-ndrpdr"
-# - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4tcp-nat44ed-h65536-p63-s4128768-pps-ndrpdr.64b-2t1c-avf-ethip4tcp-nat44ed-h65536-p63-s4128768-pps-ndrpdr"
-# - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4tcp-nat44ed-h262144-p63-s16515072-pps-ndrpdr.64b-2t1c-avf-ethip4tcp-nat44ed-h262144-p63-s16515072-pps-ndrpdr"
-# layout:
-# title: "2n-clx-xxv710-64b-2t1c-nat44ed-ip4routing-tcp-stf-pps-avf-pdr"
-# layout: "plot-throughput"
+- type: "plot"
+ title: "Throughput: 2n-clx-xxv710-64b-2t1c-nat44ed-ip4routing-udp-stf-cps-avf-pdr"
+ algorithm: "plot_perf_box_name"
+ output-file: "{DIR[STATIC,VPP]}/2n-clx-xxv710-64b-2t1c-nat44ed-ip4routing-udp-stf-cps-avf-pdr"
+ data: "plot-vpp-throughput-lat-tsa-2n-clx"
+ include:
+ - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-nat44ed-h1024-p63-s64512-cps-ndrpdr.64b-2t1c-avf-ethip4udp-nat44ed-h1024-p63-s64512-cps-ndrpdr"
+ - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-ip4base-h1024-p63-s64512-cps-ndrpdr.64b-2t1c-avf-ethip4udp-ip4base-h1024-p63-s64512-cps-ndrpdr"
+ - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-nat44ed-h4096-p63-s258048-cps-ndrpdr.64b-2t1c-avf-ethip4udp-nat44ed-h4096-p63-s258048-cps-ndrpdr"
+ - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-ip4base-h4096-p63-s258048-cps-ndrpdr.64b-2t1c-avf-ethip4udp-ip4base-h4096-p63-s258048-cps-ndrpdr"
+ - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-nat44ed-h16384-p63-s1032192-cps-ndrpdr.64b-2t1c-avf-ethip4udp-nat44ed-h16384-p63-s1032192-cps-ndrpdr"
+ - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-ip4base-h16384-p63-s1032192-cps-ndrpdr.64b-2t1c-avf-ethip4udp-ip4base-h16384-p63-s1032192-cps-ndrpdr"
+ - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-nat44ed-h65536-p63-s4128768-cps-ndrpdr.64b-2t1c-avf-ethip4udp-nat44ed-h65536-p63-s4128768-cps-ndrpdr"
+ - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-ip4base-h65536-p63-s4128768-cps-ndrpdr.64b-2t1c-avf-ethip4udp-ip4base-h65536-p63-s4128768-cps-ndrpdr"
+ - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-nat44ed-h262144-p63-s16515072-cps-ndrpdr.64b-2t1c-avf-ethip4udp-nat44ed-h262144-p63-s16515072-cps-ndrpdr"
+ - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-ip4base-h262144-p63-s16515072-cps-ndrpdr.64b-2t1c-avf-ethip4udp-ip4base-h262144-p63-s16515072-cps-ndrpdr"
+ layout:
+ title: "2n-clx-xxv710-64b-2t1c-nat44ed-ip4routing-udp-stf-cps-avf-pdr"
+ layout: "plot-cps"
+
+- type: "plot"
+ title: "Throughput: 2n-clx-xxv710-64b-2t1c-nat44ed-ip4routing-udp-stf-pps-avf-pdr"
+ algorithm: "plot_perf_box_name"
+ output-file: "{DIR[STATIC,VPP]}/2n-clx-xxv710-64b-2t1c-nat44ed-ip4routing-udp-stf-pps-avf-pdr"
+ data: "plot-vpp-throughput-lat-tsa-2n-clx"
+ include:
+ - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-nat44ed-h1024-p63-s64512-pps-ndrpdr.64b-2t1c-avf-ethip4udp-nat44ed-h1024-p63-s64512-pps-ndrpdr"
+ - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-ip4base-h1024-p63-s64512-pps-ndrpdr.64b-2t1c-avf-ethip4udp-ip4base-h1024-p63-s64512-pps-ndrpdr"
+ - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-nat44ed-h4096-p63-s258048-pps-ndrpdr.64b-2t1c-avf-ethip4udp-nat44ed-h4096-p63-s258048-pps-ndrpdr"
+ - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-ip4base-h4096-p63-s258048-pps-ndrpdr.64b-2t1c-avf-ethip4udp-ip4base-h4096-p63-s258048-pps-ndrpdr"
+ - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-nat44ed-h16384-p63-s1032192-pps-ndrpdr.64b-2t1c-avf-ethip4udp-nat44ed-h16384-p63-s1032192-pps-ndrpdr"
+ - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-ip4base-h16384-p63-s1032192-pps-ndrpdr.64b-2t1c-avf-ethip4udp-ip4base-h16384-p63-s1032192-pps-ndrpdr"
+ - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-nat44ed-h65536-p63-s4128768-pps-ndrpdr.64b-2t1c-avf-ethip4udp-nat44ed-h65536-p63-s4128768-pps-ndrpdr"
+ - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-ip4base-h65536-p63-s4128768-pps-ndrpdr.64b-2t1c-avf-ethip4udp-ip4base-h65536-p63-s4128768-pps-ndrpdr"
+ - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-nat44ed-h262144-p63-s16515072-pps-ndrpdr.64b-2t1c-avf-ethip4udp-nat44ed-h262144-p63-s16515072-pps-ndrpdr"
+ - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-ip4base-h262144-p63-s16515072-pps-ndrpdr.64b-2t1c-avf-ethip4udp-ip4base-h262144-p63-s16515072-pps-ndrpdr"
+ layout:
+ title: "2n-clx-xxv710-64b-2t1c-nat44ed-ip4routing-udp-stf-pps-avf-pdr"
+ layout: "plot-throughput"
+
+- type: "plot"
+ title: "Throughput: 2n-clx-xxv710-64b-2t1c-nat44ed-ip4routing-tcp-stf-cps-avf-pdr"
+ algorithm: "plot_perf_box_name"
+ output-file: "{DIR[STATIC,VPP]}/2n-clx-xxv710-64b-2t1c-nat44ed-ip4routing-tcp-stf-cps-avf-pdr"
+ data: "plot-vpp-throughput-lat-tsa-2n-clx"
+ include:
+ - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4tcp-nat44ed-h1024-p63-s64512-cps-ndrpdr.64b-2t1c-avf-ethip4tcp-nat44ed-h1024-p63-s64512-cps-ndrpdr"
+ - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4tcp-ip4base-h1024-p63-s64512-cps-ndrpdr.64b-2t1c-avf-ethip4tcp-ip4base-h1024-p63-s64512-cps-ndrpdr"
+ - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4tcp-nat44ed-h4096-p63-s258048-cps-ndrpdr.64b-2t1c-avf-ethip4tcp-nat44ed-h4096-p63-s258048-cps-ndrpdr"
+ - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4tcp-ip4base-h4096-p63-s258048-cps-ndrpdr.64b-2t1c-avf-ethip4tcp-ip4base-h4096-p63-s258048-cps-ndrpdr"
+ - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4tcp-nat44ed-h16384-p63-s1032192-cps-ndrpdr.64b-2t1c-avf-ethip4tcp-nat44ed-h16384-p63-s1032192-cps-ndrpdr"
+ - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4tcp-ip4base-h16384-p63-s1032192-cps-ndrpdr.64b-2t1c-avf-ethip4tcp-ip4base-h16384-p63-s1032192-cps-ndrpdr"
+ - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4tcp-nat44ed-h65536-p63-s4128768-cps-ndrpdr.64b-2t1c-avf-ethip4tcp-nat44ed-h65536-p63-s4128768-cps-ndrpdr"
+ - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4tcp-ip4base-h65536-p63-s4128768-cps-ndrpdr.64b-2t1c-avf-ethip4tcp-ip4base-h65536-p63-s4128768-cps-ndrpdr"
+ - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4tcp-nat44ed-h262144-p63-s16515072-cps-ndrpdr.64b-2t1c-avf-ethip4tcp-nat44ed-h262144-p63-s16515072-cps-ndrpdr"
+ - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4tcp-ip4base-h262144-p63-s16515072-cps-ndrpdr.64b-2t1c-avf-ethip4tcp-ip4base-h262144-p63-s16515072-cps-ndrpdr"
+ layout:
+ title: "2n-clx-xxv710-64b-2t1c-nat44ed-ip4routing-tcp-stf-cps-avf-pdr"
+ layout: "plot-cps"
+
+- type: "plot"
+ title: "Throughput: 2n-clx-xxv710-64b-2t1c-nat44ed-ip4routing-tcp-stf-pps-avf-pdr"
+ algorithm: "plot_perf_box_name"
+ output-file: "{DIR[STATIC,VPP]}/2n-clx-xxv710-64b-2t1c-nat44ed-ip4routing-tcp-stf-pps-avf-pdr"
+ data: "plot-vpp-throughput-lat-tsa-2n-clx"
+ include:
+ - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4tcp-nat44ed-h1024-p63-s64512-pps-ndrpdr.64b-2t1c-avf-ethip4tcp-nat44ed-h1024-p63-s64512-pps-ndrpdr"
+ - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4tcp-ip4base-h1024-p63-s64512-pps-ndrpdr.64b-2t1c-avf-ethip4tcp-ip4base-h1024-p63-s64512-pps-ndrpdr"
+ - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4tcp-nat44ed-h4096-p63-s258048-pps-ndrpdr.64b-2t1c-avf-ethip4tcp-nat44ed-h4096-p63-s258048-pps-ndrpdr"
+ - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4tcp-ip4base-h4096-p63-s258048-pps-ndrpdr.64b-2t1c-avf-ethip4tcp-ip4base-h4096-p63-s258048-pps-ndrpdr"
+ - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4tcp-nat44ed-h16384-p63-s1032192-pps-ndrpdr.64b-2t1c-avf-ethip4tcp-nat44ed-h16384-p63-s1032192-pps-ndrpdr"
+ - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4tcp-ip4base-h16384-p63-s1032192-pps-ndrpdr.64b-2t1c-avf-ethip4tcp-ip4base-h16384-p63-s1032192-pps-ndrpdr"
+ - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4tcp-nat44ed-h65536-p63-s4128768-pps-ndrpdr.64b-2t1c-avf-ethip4tcp-nat44ed-h65536-p63-s4128768-pps-ndrpdr"
+ - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4tcp-ip4base-h65536-p63-s4128768-pps-ndrpdr.64b-2t1c-avf-ethip4tcp-ip4base-h65536-p63-s4128768-pps-ndrpdr"
+ - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4tcp-nat44ed-h262144-p63-s16515072-pps-ndrpdr.64b-2t1c-avf-ethip4tcp-nat44ed-h262144-p63-s16515072-pps-ndrpdr"
+ - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4tcp-ip4base-h262144-p63-s16515072-pps-ndrpdr.64b-2t1c-avf-ethip4tcp-ip4base-h262144-p63-s16515072-pps-ndrpdr"
+ layout:
+ title: "2n-clx-xxv710-64b-2t1c-nat44ed-ip4routing-tcp-stf-pps-avf-pdr"
+ layout: "plot-throughput"
- type: "plot"
title: "Throughput: 2n-clx-xxv710-64b-2t1c-features-ip4routing-base-dpdk-ndr"
@@ -18527,22 +19195,6 @@
layout: "plot-throughput-speedup-analysis"
- type: "plot"
- title: "Speedup: 2n-clx-xxv710-64b-features-ip4routing-base-avf-pdr-tsa"
- algorithm: "plot_tsa_name"
- output-file: "{DIR[STATIC,VPP]}/2n-clx-xxv710-64b-features-ip4routing-base-avf-pdr-tsa"
- data: "plot-vpp-throughput-lat-tsa-2n-clx"
- include:
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Avf-Ethip4Udp-Ip4Base-Iacl50Sf-10Kflows-Ndrpdr.64B-.t.c-avf-ethip4udp-ip4base-iacl50sf-10kflows-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Avf-Ethip4Udp-Ip4Base-Iacl50Sl-10Kflows-Ndrpdr.64B-.t.c-avf-ethip4udp-ip4base-iacl50sl-10kflows-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Avf-Ethip4Udp-Ip4Base-Oacl50Sf-10Kflows-Ndrpdr.64B-.t.c-avf-ethip4udp-ip4base-oacl50sf-10kflows-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Avf-Ethip4Udp-Ip4Base-Oacl50Sl-10Kflows-Ndrpdr.64B-.t.c-avf-ethip4udp-ip4base-oacl50sl-10kflows-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Avf-ethip4udp-nat44det-h1-p1-s1-Ndrpdr.64B-.t.c-avf-ethip4udp-nat44det-h1-p1-s1-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Avf-ethip4udp-nat44det-h1024-p63-s64512-Ndrpdr.64B-.t.c-avf-ethip4udp-nat44det-h1024-p63-s64512-ndrpdr"
- layout:
- title: "2n-clx-xxv710-64b-features-ip4routing-base-avf-pdr"
- layout: "plot-throughput-speedup-analysis"
-
-- type: "plot"
title: "Speedup: 2n-clx-xxv710-64b-nat44det-ip4routing-stl-bidir-avf-ndr-tsa"
algorithm: "plot_tsa_name"
output-file: "{DIR[STATIC,VPP]}/2n-clx-xxv710-64b-nat44det-ip4routing-stl-bidir-avf-ndr-tsa"
@@ -18572,65 +19224,101 @@
title: "2n-clx-xxv710-64b-nat44ed-ip4routing-stl-unidir-avf-ndr"
layout: "plot-throughput-speedup-analysis"
-#- type: "plot"
-# title: "Speedup: 2n-clx-xxv710-64b-nat44ed-ip4routing-udp-stf-cps-avf-ndr-tsa"
-# algorithm: "plot_tsa_name"
-# output-file: "{DIR[STATIC,VPP]}/2n-clx-xxv710-64b-nat44ed-ip4routing-udp-stf-cps-avf-ndr-tsa"
-# data: "plot-vpp-throughput-lat-tsa-2n-clx"
-# include:
-# - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-nat44ed-h1024-p63-s64512-cps-ndrpdr.64b-.t.c-avf-ethip4udp-nat44ed-h1024-p63-s64512-cps-ndrpdr"
-# - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-nat44ed-h4096-p63-s258048-cps-ndrpdr.64b-.t.c-avf-ethip4udp-nat44ed-h4096-p63-s258048-cps-ndrpdr"
-# - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-nat44ed-h16384-p63-s1032192-cps-ndrpdr.64b-.t.c-avf-ethip4udp-nat44ed-h16384-p63-s1032192-cps-ndrpdr"
-# - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-nat44ed-h65536-p63-s4128768-cps-ndrpdr.64b-.t.c-avf-ethip4udp-nat44ed-h65536-p63-s4128768-cps-ndrpdr"
-# - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-nat44ed-h262144-p63-s16515072-cps-ndrpdr.64b-.t.c-avf-ethip4udp-nat44ed-h262144-p63-s16515072-cps-ndrpdr"
-# layout:
-# title: "2n-clx-xxv710-64b-nat44ed-ip4routing-udp-stf-cps-avf-ndr"
-# layout: "plot-throughput-speedup-analysis"
-#
-#- type: "plot"
-# title: "Speedup: 2n-clx-xxv710-64b-nat44ed-ip4routing-tcp-stf-cps-avf-ndr-tsa"
-# algorithm: "plot_tsa_name"
-# output-file: "{DIR[STATIC,VPP]}/2n-clx-xxv710-64b-nat44ed-ip4routing-tcp-stf-cps-avf-ndr-tsa"
-# data: "plot-vpp-throughput-lat-tsa-2n-clx"
-# include:
-# - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4tcp-nat44ed-h1024-p63-s64512-cps-ndrpdr.64b-.t.c-avf-ethip4tcp-nat44ed-h1024-p63-s64512-cps-ndrpdr"
-# - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4tcp-nat44ed-h4096-p63-s258048-cps-ndrpdr.64b-.t.c-avf-ethip4tcp-nat44ed-h4096-p63-s258048-cps-ndrpdr"
-# - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4tcp-nat44ed-h16384-p63-s1032192-cps-ndrpdr.64b-.t.c-avf-ethip4tcp-nat44ed-h16384-p63-s1032192-cps-ndrpdr"
-# - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4tcp-nat44ed-h65536-p63-s4128768-cps-ndrpdr.64b-.t.c-avf-ethip4tcp-nat44ed-h65536-p63-s4128768-cps-ndrpdr"
-# - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4tcp-nat44ed-h262144-p63-s16515072-cps-ndrpdr.64b-.t.c-avf-ethip4tcp-nat44ed-h262144-p63-s16515072-cps-ndrpdr"
-# layout:
-# title: "2n-clx-xxv710-64b-nat44ed-ip4routing-tcp-stf-cps-avf-ndr"
-# layout: "plot-throughput-speedup-analysis"
-#
-#- type: "plot"
-# title: "Speedup: 2n-clx-xxv710-64b-nat44ed-ip4routing-udp-stf-pps-avf-ndr-tsa"
-# algorithm: "plot_tsa_name"
-# output-file: "{DIR[STATIC,VPP]}/2n-clx-xxv710-64b-nat44ed-ip4routing-udp-stf-pps-avf-ndr-tsa"
-# data: "plot-vpp-throughput-lat-tsa-2n-clx"
-# include:
-# - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-nat44ed-h1024-p63-s64512-pps-ndrpdr.64b-.t.c-avf-ethip4udp-nat44ed-h1024-p63-s64512-pps-ndrpdr"
-# - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-nat44ed-h4096-p63-s258048-pps-ndrpdr.64b-.t.c-avf-ethip4udp-nat44ed-h4096-p63-s258048-pps-ndrpdr"
-# - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-nat44ed-h16384-p63-s1032192-pps-ndrpdr.64b-.t.c-avf-ethip4udp-nat44ed-h16384-p63-s1032192-pps-ndrpdr"
-# - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-nat44ed-h65536-p63-s4128768-pps-ndrpdr.64b-.t.c-avf-ethip4udp-nat44ed-h65536-p63-s4128768-pps-ndrpdr"
-# - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-nat44ed-h262144-p63-s16515072-pps-ndrpdr.64b-.t.c-avf-ethip4udp-nat44ed-h262144-p63-s16515072-pps-ndrpdr"
-# layout:
-# title: "2n-clx-xxv710-64b-nat44ed-ip4routing-udp-stf-pps-avf-ndr"
-# layout: "plot-throughput-speedup-analysis"
-#
-#- type: "plot"
-# title: "Speedup: 2n-clx-xxv710-64b-nat44ed-ip4routing-tcp-stf-pps-avf-ndr-tsa"
-# algorithm: "plot_tsa_name"
-# output-file: "{DIR[STATIC,VPP]}/2n-clx-xxv710-64b-nat44ed-ip4routing-tcp-stf-pps-avf-ndr-tsa"
-# data: "plot-vpp-throughput-lat-tsa-2n-clx"
-# include:
-# - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4tcp-nat44ed-h1024-p63-s64512-pps-ndrpdr.64b-.t.c-avf-ethip4tcp-nat44ed-h1024-p63-s64512-pps-ndrpdr"
-# - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4tcp-nat44ed-h4096-p63-s258048-pps-ndrpdr.64b-.t.c-avf-ethip4tcp-nat44ed-h4096-p63-s258048-pps-ndrpdr"
-# - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4tcp-nat44ed-h16384-p63-s1032192-pps-ndrpdr.64b-.t.c-avf-ethip4tcp-nat44ed-h16384-p63-s1032192-pps-ndrpdr"
-# - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4tcp-nat44ed-h65536-p63-s4128768-pps-ndrpdr.64b-.t.c-avf-ethip4tcp-nat44ed-h65536-p63-s4128768-pps-ndrpdr"
-# - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4tcp-nat44ed-h262144-p63-s16515072-pps-ndrpdr.64b-.t.c-avf-ethip4tcp-nat44ed-h262144-p63-s16515072-pps-ndrpdr"
-# layout:
-# title: "22n-clx-xxv710-64b-nat44ed-ip4routing-tcp-stf-pps-avf-ndr"
-# layout: "plot-throughput-speedup-analysis"
+- type: "plot"
+ title: "Speedup: 2n-clx-xxv710-64b-nat44ed-ip4routing-udp-stf-cps-avf-ndr-tsa"
+ algorithm: "plot_tsa_name"
+ output-file: "{DIR[STATIC,VPP]}/2n-clx-xxv710-64b-nat44ed-ip4routing-udp-stf-cps-avf-ndr-tsa"
+ data: "plot-vpp-throughput-lat-tsa-2n-clx"
+ include:
+ - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-nat44ed-h1024-p63-s64512-cps-ndrpdr.64b-.t.c-avf-ethip4udp-nat44ed-h1024-p63-s64512-cps-ndrpdr"
+ - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-ip4base-h1024-p63-s64512-cps-ndrpdr.64b-.t.c-avf-ethip4udp-ip4base-h1024-p63-s64512-cps-ndrpdr"
+ - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-nat44ed-h4096-p63-s258048-cps-ndrpdr.64b-.t.c-avf-ethip4udp-nat44ed-h4096-p63-s258048-cps-ndrpdr"
+ - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-ip4base-h4096-p63-s258048-cps-ndrpdr.64b-.t.c-avf-ethip4udp-ip4base-h4096-p63-s258048-cps-ndrpdr"
+ - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-nat44ed-h16384-p63-s1032192-cps-ndrpdr.64b-.t.c-avf-ethip4udp-nat44ed-h16384-p63-s1032192-cps-ndrpdr"
+ - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-ip4base-h16384-p63-s1032192-cps-ndrpdr.64b-.t.c-avf-ethip4udp-ip4base-h16384-p63-s1032192-cps-ndrpdr"
+ - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-nat44ed-h65536-p63-s4128768-cps-ndrpdr.64b-.t.c-avf-ethip4udp-nat44ed-h65536-p63-s4128768-cps-ndrpdr"
+ - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-ip4base-h65536-p63-s4128768-cps-ndrpdr.64b-.t.c-avf-ethip4udp-ip4base-h65536-p63-s4128768-cps-ndrpdr"
+ - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-nat44ed-h262144-p63-s16515072-cps-ndrpdr.64b-.t.c-avf-ethip4udp-nat44ed-h262144-p63-s16515072-cps-ndrpdr"
+ - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-ip4base-h262144-p63-s16515072-cps-ndrpdr.64b-.t.c-avf-ethip4udp-ip4base-h262144-p63-s16515072-cps-ndrpdr"
+ layout:
+ title: "2n-clx-xxv710-64b-nat44ed-ip4routing-udp-stf-cps-avf-ndr"
+ layout: "plot-throughput-speedup-analysis-cps"
+
+- type: "plot"
+ title: "Speedup: 2n-clx-xxv710-64b-nat44ed-ip4routing-udp-stf-pps-avf-ndr-tsa"
+ algorithm: "plot_tsa_name"
+ output-file: "{DIR[STATIC,VPP]}/2n-clx-xxv710-64b-nat44ed-ip4routing-udp-stf-pps-avf-ndr-tsa"
+ data: "plot-vpp-throughput-lat-tsa-2n-clx"
+ include:
+ - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-nat44ed-h1024-p63-s64512-pps-ndrpdr.64b-.t.c-avf-ethip4udp-nat44ed-h1024-p63-s64512-pps-ndrpdr"
+ - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-ip4base-h1024-p63-s64512-pps-ndrpdr.64b-.t.c-avf-ethip4udp-ip4base-h1024-p63-s64512-pps-ndrpdr"
+ - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-nat44ed-h4096-p63-s258048-pps-ndrpdr.64b-.t.c-avf-ethip4udp-nat44ed-h4096-p63-s258048-pps-ndrpdr"
+ - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-ip4base-h4096-p63-s258048-pps-ndrpdr.64b-.t.c-avf-ethip4udp-ip4base-h4096-p63-s258048-pps-ndrpdr"
+ - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-nat44ed-h16384-p63-s1032192-pps-ndrpdr.64b-.t.c-avf-ethip4udp-nat44ed-h16384-p63-s1032192-pps-ndrpdr"
+ - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-ip4base-h16384-p63-s1032192-pps-ndrpdr.64b-.t.c-avf-ethip4udp-ip4base-h16384-p63-s1032192-pps-ndrpdr"
+ - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-nat44ed-h65536-p63-s4128768-pps-ndrpdr.64b-.t.c-avf-ethip4udp-nat44ed-h65536-p63-s4128768-pps-ndrpdr"
+ - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-ip4base-h65536-p63-s4128768-pps-ndrpdr.64b-.t.c-avf-ethip4udp-ip4base-h65536-p63-s4128768-pps-ndrpdr"
+ - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-nat44ed-h262144-p63-s16515072-pps-ndrpdr.64b-.t.c-avf-ethip4udp-nat44ed-h262144-p63-s16515072-pps-ndrpdr"
+ - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-ip4base-h262144-p63-s16515072-pps-ndrpdr.64b-.t.c-avf-ethip4udp-ip4base-h262144-p63-s16515072-pps-ndrpdr"
+ layout:
+ title: "2n-clx-xxv710-64b-nat44ed-ip4routing-udp-stf-pps-avf-ndr"
+ layout: "plot-throughput-speedup-analysis"
+
+- type: "plot"
+ title: "Speedup: 2n-clx-xxv710-64b-nat44ed-ip4routing-tcp-stf-cps-avf-ndr-tsa"
+ algorithm: "plot_tsa_name"
+ output-file: "{DIR[STATIC,VPP]}/2n-clx-xxv710-64b-nat44ed-ip4routing-tcp-stf-cps-avf-ndr-tsa"
+ data: "plot-vpp-throughput-lat-tsa-2n-clx"
+ include:
+ - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4tcp-nat44ed-h1024-p63-s64512-cps-ndrpdr.64b-.t.c-avf-ethip4tcp-nat44ed-h1024-p63-s64512-cps-ndrpdr"
+ - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4tcp-ip4base-h1024-p63-s64512-cps-ndrpdr.64b-.t.c-avf-ethip4tcp-ip4base-h1024-p63-s64512-cps-ndrpdr"
+ - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4tcp-nat44ed-h4096-p63-s258048-cps-ndrpdr.64b-.t.c-avf-ethip4tcp-nat44ed-h4096-p63-s258048-cps-ndrpdr"
+ - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4tcp-ip4base-h4096-p63-s258048-cps-ndrpdr.64b-.t.c-avf-ethip4tcp-ip4base-h4096-p63-s258048-cps-ndrpdr"
+ - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4tcp-nat44ed-h16384-p63-s1032192-cps-ndrpdr.64b-.t.c-avf-ethip4tcp-nat44ed-h16384-p63-s1032192-cps-ndrpdr"
+ - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4tcp-ip4base-h16384-p63-s1032192-cps-ndrpdr.64b-.t.c-avf-ethip4tcp-ip4base-h16384-p63-s1032192-cps-ndrpdr"
+ - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4tcp-nat44ed-h65536-p63-s4128768-cps-ndrpdr.64b-.t.c-avf-ethip4tcp-nat44ed-h65536-p63-s4128768-cps-ndrpdr"
+ - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4tcp-ip4base-h65536-p63-s4128768-cps-ndrpdr.64b-.t.c-avf-ethip4tcp-ip4base-h65536-p63-s4128768-cps-ndrpdr"
+ - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4tcp-nat44ed-h262144-p63-s16515072-cps-ndrpdr.64b-.t.c-avf-ethip4tcp-nat44ed-h262144-p63-s16515072-cps-ndrpdr"
+ - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4tcp-ip4base-h262144-p63-s16515072-cps-ndrpdr.64b-.t.c-avf-ethip4tcp-ip4base-h262144-p63-s16515072-cps-ndrpdr"
+ layout:
+ title: "2n-clx-xxv710-64b-nat44ed-ip4routing-tcp-stf-cps-avf-ndr"
+ layout: "plot-throughput-speedup-analysis-cps"
+
+- type: "plot"
+ title: "Speedup: 2n-clx-xxv710-64b-nat44ed-ip4routing-tcp-stf-pps-avf-ndr-tsa"
+ algorithm: "plot_tsa_name"
+ output-file: "{DIR[STATIC,VPP]}/2n-clx-xxv710-64b-nat44ed-ip4routing-tcp-stf-pps-avf-ndr-tsa"
+ data: "plot-vpp-throughput-lat-tsa-2n-clx"
+ include:
+ - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4tcp-nat44ed-h1024-p63-s64512-pps-ndrpdr.64b-.t.c-avf-ethip4tcp-nat44ed-h1024-p63-s64512-pps-ndrpdr"
+ - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4tcp-ip4base-h1024-p63-s64512-pps-ndrpdr.64b-.t.c-avf-ethip4tcp-ip4base-h1024-p63-s64512-pps-ndrpdr"
+ - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4tcp-nat44ed-h4096-p63-s258048-pps-ndrpdr.64b-.t.c-avf-ethip4tcp-nat44ed-h4096-p63-s258048-pps-ndrpdr"
+ - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4tcp-ip4base-h4096-p63-s258048-pps-ndrpdr.64b-.t.c-avf-ethip4tcp-ip4base-h4096-p63-s258048-pps-ndrpdr"
+ - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4tcp-nat44ed-h16384-p63-s1032192-pps-ndrpdr.64b-.t.c-avf-ethip4tcp-nat44ed-h16384-p63-s1032192-pps-ndrpdr"
+ - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4tcp-ip4base-h16384-p63-s1032192-pps-ndrpdr.64b-.t.c-avf-ethip4tcp-ip4base-h16384-p63-s1032192-pps-ndrpdr"
+ - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4tcp-nat44ed-h65536-p63-s4128768-pps-ndrpdr.64b-.t.c-avf-ethip4tcp-nat44ed-h65536-p63-s4128768-pps-ndrpdr"
+ - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4tcp-ip4base-h65536-p63-s4128768-pps-ndrpdr.64b-.t.c-avf-ethip4tcp-ip4base-h65536-p63-s4128768-pps-ndrpdr"
+ - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4tcp-nat44ed-h262144-p63-s16515072-pps-ndrpdr.64b-.t.c-avf-ethip4tcp-nat44ed-h262144-p63-s16515072-pps-ndrpdr"
+ - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4tcp-ip4base-h262144-p63-s16515072-pps-ndrpdr.64b-.t.c-avf-ethip4tcp-ip4base-h262144-p63-s16515072-pps-ndrpdr"
+ layout:
+ title: "2n-clx-xxv710-64b-nat44ed-ip4routing-tcp-stf-pps-avf-ndr"
+ layout: "plot-throughput-speedup-analysis"
+
+- type: "plot"
+ title: "Speedup: 2n-clx-xxv710-64b-features-ip4routing-base-avf-pdr-tsa"
+ algorithm: "plot_tsa_name"
+ output-file: "{DIR[STATIC,VPP]}/2n-clx-xxv710-64b-features-ip4routing-base-avf-pdr-tsa"
+ data: "plot-vpp-throughput-lat-tsa-2n-clx"
+ include:
+ - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Avf-Ethip4Udp-Ip4Base-Iacl50Sf-10Kflows-Ndrpdr.64B-.t.c-avf-ethip4udp-ip4base-iacl50sf-10kflows-ndrpdr"
+ - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Avf-Ethip4Udp-Ip4Base-Iacl50Sl-10Kflows-Ndrpdr.64B-.t.c-avf-ethip4udp-ip4base-iacl50sl-10kflows-ndrpdr"
+ - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Avf-Ethip4Udp-Ip4Base-Oacl50Sf-10Kflows-Ndrpdr.64B-.t.c-avf-ethip4udp-ip4base-oacl50sf-10kflows-ndrpdr"
+ - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Avf-Ethip4Udp-Ip4Base-Oacl50Sl-10Kflows-Ndrpdr.64B-.t.c-avf-ethip4udp-ip4base-oacl50sl-10kflows-ndrpdr"
+ - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Avf-ethip4udp-nat44det-h1-p1-s1-Ndrpdr.64B-.t.c-avf-ethip4udp-nat44det-h1-p1-s1-ndrpdr"
+ - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Avf-ethip4udp-nat44det-h1024-p63-s64512-Ndrpdr.64B-.t.c-avf-ethip4udp-nat44det-h1024-p63-s64512-ndrpdr"
+ layout:
+ title: "2n-clx-xxv710-64b-features-ip4routing-base-avf-pdr"
+ layout: "plot-throughput-speedup-analysis"
- type: "plot"
title: "Speedup: 2n-clx-xxv710-64b-nat44det-ip4routing-stl-bidir-avf-pdr-tsa"
@@ -18662,65 +19350,85 @@
title: "2n-clx-xxv710-64b-nat44ed-ip4routing-stl-unidir-avf-pdr"
layout: "plot-throughput-speedup-analysis"
-#- type: "plot"
-# title: "Speedup: 2n-clx-xxv710-64b-nat44ed-ip4routing-udp-stf-cps-avf-pdr-tsa"
-# algorithm: "plot_tsa_name"
-# output-file: "{DIR[STATIC,VPP]}/2n-clx-xxv710-64b-nat44ed-ip4routing-udp-stf-cps-avf-pdr-tsa"
-# data: "plot-vpp-throughput-lat-tsa-2n-clx"
-# include:
-# - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-nat44ed-h1024-p63-s64512-cps-ndrpdr.64b-.t.c-avf-ethip4udp-nat44ed-h1024-p63-s64512-cps-ndrpdr"
-# - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-nat44ed-h4096-p63-s258048-cps-ndrpdr.64b-.t.c-avf-ethip4udp-nat44ed-h4096-p63-s258048-cps-ndrpdr"
-# - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-nat44ed-h16384-p63-s1032192-cps-ndrpdr.64b-.t.c-avf-ethip4udp-nat44ed-h16384-p63-s1032192-cps-ndrpdr"
-# - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-nat44ed-h65536-p63-s4128768-cps-ndrpdr.64b-.t.c-avf-ethip4udp-nat44ed-h65536-p63-s4128768-cps-ndrpdr"
-# - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-nat44ed-h262144-p63-s16515072-cps-ndrpdr.64b-.t.c-avf-ethip4udp-nat44ed-h262144-p63-s16515072-cps-ndrpdr"
-# layout:
-# title: "2n-clx-xxv710-64b-nat44ed-ip4routing-udp-stf-cps-avf-pdr"
-# layout: "plot-throughput-speedup-analysis"
-#
-#- type: "plot"
-# title: "Speedup: 2n-clx-xxv710-64b-nat44ed-ip4routing-tcp-stf-cps-avf-pdr-tsa"
-# algorithm: "plot_tsa_name"
-# output-file: "{DIR[STATIC,VPP]}/2n-clx-xxv710-64b-nat44ed-ip4routing-tcp-stf-cps-avf-pdr-tsa"
-# data: "plot-vpp-throughput-lat-tsa-2n-clx"
-# include:
-# - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4tcp-nat44ed-h1024-p63-s64512-cps-ndrpdr.64b-.t.c-avf-ethip4tcp-nat44ed-h1024-p63-s64512-cps-ndrpdr"
-# - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4tcp-nat44ed-h4096-p63-s258048-cps-ndrpdr.64b-.t.c-avf-ethip4tcp-nat44ed-h4096-p63-s258048-cps-ndrpdr"
-# - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4tcp-nat44ed-h16384-p63-s1032192-cps-ndrpdr.64b-.t.c-avf-ethip4tcp-nat44ed-h16384-p63-s1032192-cps-ndrpdr"
-# - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4tcp-nat44ed-h65536-p63-s4128768-cps-ndrpdr.64b-.t.c-avf-ethip4tcp-nat44ed-h65536-p63-s4128768-cps-ndrpdr"
-# - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4tcp-nat44ed-h262144-p63-s16515072-cps-ndrpdr.64b-.t.c-avf-ethip4tcp-nat44ed-h262144-p63-s16515072-cps-ndrpdr"
-# layout:
-# title: "2n-clx-xxv710-64b-nat44ed-ip4routing-tcp-stf-cps-avf-pdr"
-# layout: "plot-throughput-speedup-analysis"
-#
-#- type: "plot"
-# title: "Speedup: 2n-clx-xxv710-64b-nat44ed-ip4routing-udp-stf-pps-avf-pdr-tsa"
-# algorithm: "plot_tsa_name"
-# output-file: "{DIR[STATIC,VPP]}/2n-clx-xxv710-64b-nat44ed-ip4routing-udp-stf-pps-avf-pdr-tsa"
-# data: "plot-vpp-throughput-lat-tsa-2n-clx"
-# include:
-# - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-nat44ed-h1024-p63-s64512-pps-ndrpdr.64b-.t.c-avf-ethip4udp-nat44ed-h1024-p63-s64512-pps-ndrpdr"
-# - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-nat44ed-h4096-p63-s258048-pps-ndrpdr.64b-.t.c-avf-ethip4udp-nat44ed-h4096-p63-s258048-pps-ndrpdr"
-# - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-nat44ed-h16384-p63-s1032192-pps-ndrpdr.64b-.t.c-avf-ethip4udp-nat44ed-h16384-p63-s1032192-pps-ndrpdr"
-# - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-nat44ed-h65536-p63-s4128768-pps-ndrpdr.64b-.t.c-avf-ethip4udp-nat44ed-h65536-p63-s4128768-pps-ndrpdr"
-# - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-nat44ed-h262144-p63-s16515072-pps-ndrpdr.64b-.t.c-avf-ethip4udp-nat44ed-h262144-p63-s16515072-pps-ndrpdr"
-# layout:
-# title: "2n-clx-xxv710-64b-nat44ed-ip4routing-udp-stf-pps-avf-pdr"
-# layout: "plot-throughput-speedup-analysis"
-#
-#- type: "plot"
-# title: "Speedup: 2n-clx-xxv710-64b-nat44ed-ip4routing-tcp-stf-pps-avf-pdr-tsa"
-# algorithm: "plot_tsa_name"
-# output-file: "{DIR[STATIC,VPP]}/2n-clx-xxv710-64b-nat44ed-ip4routing-tcp-stf-pps-avf-pdr-tsa"
-# data: "plot-vpp-throughput-lat-tsa-2n-clx"
-# include:
-# - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4tcp-nat44ed-h1024-p63-s64512-pps-ndrpdr.64b-.t.c-avf-ethip4tcp-nat44ed-h1024-p63-s64512-pps-ndrpdr"
-# - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4tcp-nat44ed-h4096-p63-s258048-pps-ndrpdr.64b-.t.c-avf-ethip4tcp-nat44ed-h4096-p63-s258048-pps-ndrpdr"
-# - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4tcp-nat44ed-h16384-p63-s1032192-pps-ndrpdr.64b-.t.c-avf-ethip4tcp-nat44ed-h16384-p63-s1032192-pps-ndrpdr"
-# - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4tcp-nat44ed-h65536-p63-s4128768-pps-ndrpdr.64b-.t.c-avf-ethip4tcp-nat44ed-h65536-p63-s4128768-pps-ndrpdr"
-# - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4tcp-nat44ed-h262144-p63-s16515072-pps-ndrpdr.64b-.t.c-avf-ethip4tcp-nat44ed-h262144-p63-s16515072-pps-ndrpdr"
-# layout:
-# title: "22n-clx-xxv710-64b-nat44ed-ip4routing-tcp-stf-pps-avf-pdr"
-# layout: "plot-throughput-speedup-analysis"
+- type: "plot"
+ title: "Speedup: 2n-clx-xxv710-64b-nat44ed-ip4routing-udp-stf-cps-avf-pdr-tsa"
+ algorithm: "plot_tsa_name"
+ output-file: "{DIR[STATIC,VPP]}/2n-clx-xxv710-64b-nat44ed-ip4routing-udp-stf-cps-avf-pdr-tsa"
+ data: "plot-vpp-throughput-lat-tsa-2n-clx"
+ include:
+ - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-nat44ed-h1024-p63-s64512-cps-ndrpdr.64b-.t.c-avf-ethip4udp-nat44ed-h1024-p63-s64512-cps-ndrpdr"
+ - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-ip4base-h1024-p63-s64512-cps-ndrpdr.64b-.t.c-avf-ethip4udp-ip4base-h1024-p63-s64512-cps-ndrpdr"
+ - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-nat44ed-h4096-p63-s258048-cps-ndrpdr.64b-.t.c-avf-ethip4udp-nat44ed-h4096-p63-s258048-cps-ndrpdr"
+ - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-ip4base-h4096-p63-s258048-cps-ndrpdr.64b-.t.c-avf-ethip4udp-ip4base-h4096-p63-s258048-cps-ndrpdr"
+ - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-nat44ed-h16384-p63-s1032192-cps-ndrpdr.64b-.t.c-avf-ethip4udp-nat44ed-h16384-p63-s1032192-cps-ndrpdr"
+ - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-ip4base-h16384-p63-s1032192-cps-ndrpdr.64b-.t.c-avf-ethip4udp-ip4base-h16384-p63-s1032192-cps-ndrpdr"
+ - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-nat44ed-h65536-p63-s4128768-cps-ndrpdr.64b-.t.c-avf-ethip4udp-nat44ed-h65536-p63-s4128768-cps-ndrpdr"
+ - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-ip4base-h65536-p63-s4128768-cps-ndrpdr.64b-.t.c-avf-ethip4udp-ip4base-h65536-p63-s4128768-cps-ndrpdr"
+ - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-nat44ed-h262144-p63-s16515072-cps-ndrpdr.64b-.t.c-avf-ethip4udp-nat44ed-h262144-p63-s16515072-cps-ndrpdr"
+ - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-ip4base-h262144-p63-s16515072-cps-ndrpdr.64b-.t.c-avf-ethip4udp-ip4base-h262144-p63-s16515072-cps-ndrpdr"
+ layout:
+ title: "2n-clx-xxv710-64b-nat44ed-ip4routing-udp-stf-cps-avf-pdr"
+ layout: "plot-throughput-speedup-analysis-cps"
+
+- type: "plot"
+ title: "Speedup: 2n-clx-xxv710-64b-nat44ed-ip4routing-udp-stf-pps-avf-pdr-tsa"
+ algorithm: "plot_tsa_name"
+ output-file: "{DIR[STATIC,VPP]}/2n-clx-xxv710-64b-nat44ed-ip4routing-udp-stf-pps-avf-pdr-tsa"
+ data: "plot-vpp-throughput-lat-tsa-2n-clx"
+ include:
+ - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-nat44ed-h1024-p63-s64512-pps-ndrpdr.64b-.t.c-avf-ethip4udp-nat44ed-h1024-p63-s64512-pps-ndrpdr"
+ - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-ip4base-h1024-p63-s64512-pps-ndrpdr.64b-.t.c-avf-ethip4udp-ip4base-h1024-p63-s64512-pps-ndrpdr"
+ - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-nat44ed-h4096-p63-s258048-pps-ndrpdr.64b-.t.c-avf-ethip4udp-nat44ed-h4096-p63-s258048-pps-ndrpdr"
+ - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-ip4base-h4096-p63-s258048-pps-ndrpdr.64b-.t.c-avf-ethip4udp-ip4base-h4096-p63-s258048-pps-ndrpdr"
+ - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-nat44ed-h16384-p63-s1032192-pps-ndrpdr.64b-.t.c-avf-ethip4udp-nat44ed-h16384-p63-s1032192-pps-ndrpdr"
+ - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-ip4base-h16384-p63-s1032192-pps-ndrpdr.64b-.t.c-avf-ethip4udp-ip4base-h16384-p63-s1032192-pps-ndrpdr"
+ - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-nat44ed-h65536-p63-s4128768-pps-ndrpdr.64b-.t.c-avf-ethip4udp-nat44ed-h65536-p63-s4128768-pps-ndrpdr"
+ - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-ip4base-h65536-p63-s4128768-pps-ndrpdr.64b-.t.c-avf-ethip4udp-ip4base-h65536-p63-s4128768-pps-ndrpdr"
+ - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-nat44ed-h262144-p63-s16515072-pps-ndrpdr.64b-.t.c-avf-ethip4udp-nat44ed-h262144-p63-s16515072-pps-ndrpdr"
+ - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-ip4base-h262144-p63-s16515072-pps-ndrpdr.64b-.t.c-avf-ethip4udp-ip4base-h262144-p63-s16515072-pps-ndrpdr"
+ layout:
+ title: "2n-clx-xxv710-64b-nat44ed-ip4routing-udp-stf-pps-avf-pdr"
+ layout: "plot-throughput-speedup-analysis"
+
+- type: "plot"
+ title: "Speedup: 2n-clx-xxv710-64b-nat44ed-ip4routing-tcp-stf-cps-avf-pdr-tsa"
+ algorithm: "plot_tsa_name"
+ output-file: "{DIR[STATIC,VPP]}/2n-clx-xxv710-64b-nat44ed-ip4routing-tcp-stf-cps-avf-pdr-tsa"
+ data: "plot-vpp-throughput-lat-tsa-2n-clx"
+ include:
+ - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4tcp-nat44ed-h1024-p63-s64512-cps-ndrpdr.64b-.t.c-avf-ethip4tcp-nat44ed-h1024-p63-s64512-cps-ndrpdr"
+ - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4tcp-ip4base-h1024-p63-s64512-cps-ndrpdr.64b-.t.c-avf-ethip4tcp-ip4base-h1024-p63-s64512-cps-ndrpdr"
+ - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4tcp-nat44ed-h4096-p63-s258048-cps-ndrpdr.64b-.t.c-avf-ethip4tcp-nat44ed-h4096-p63-s258048-cps-ndrpdr"
+ - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4tcp-ip4base-h4096-p63-s258048-ndrpdr.64b-.t.c-avf-ethip4tcp-ip4base-h4096-p63-s258048-cps-ndrpdr"
+ - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4tcp-nat44ed-h16384-p63-s1032192-cps-ndrpdr.64b-.t.c-avf-ethip4tcp-nat44ed-h16384-p63-s1032192-cps-ndrpdr"
+ - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4tcp-ip4base-h16384-p63-s1032192-cps-ndrpdr.64b-.t.c-avf-ethip4tcp-ip4base-h16384-p63-s1032192-cps-ndrpdr"
+ - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4tcp-nat44ed-h65536-p63-s4128768-cps-ndrpdr.64b-.t.c-avf-ethip4tcp-nat44ed-h65536-p63-s4128768-cps-ndrpdr"
+ - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4tcp-ip4base-h65536-p63-s4128768-cps-ndrpdr.64b-.t.c-avf-ethip4tcp-ip4base-h65536-p63-s4128768-cps-ndrpdr"
+ - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4tcp-nat44ed-h262144-p63-s16515072-cps-ndrpdr.64b-.t.c-avf-ethip4tcp-nat44ed-h262144-p63-s16515072-cps-ndrpdr"
+ - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4tcp-ip4base-h262144-p63-s16515072-cps-ndrpdr.64b-.t.c-avf-ethip4tcp-ip4base-h262144-p63-s16515072-cps-ndrpdr"
+ layout:
+ title: "2n-clx-xxv710-64b-nat44ed-ip4routing-tcp-stf-cps-avf-pdr"
+ layout: "plot-throughput-speedup-analysis-cps"
+
+- type: "plot"
+ title: "Speedup: 2n-clx-xxv710-64b-nat44ed-ip4routing-tcp-stf-pps-avf-pdr-tsa"
+ algorithm: "plot_tsa_name"
+ output-file: "{DIR[STATIC,VPP]}/2n-clx-xxv710-64b-nat44ed-ip4routing-tcp-stf-pps-avf-pdr-tsa"
+ data: "plot-vpp-throughput-lat-tsa-2n-clx"
+ include:
+ - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4tcp-nat44ed-h1024-p63-s64512-pps-ndrpdr.64b-.t.c-avf-ethip4tcp-nat44ed-h1024-p63-s64512-pps-ndrpdr"
+ - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4tcp-ip4base-h1024-p63-s64512-pps-ndrpdr.64b-.t.c-avf-ethip4tcp-ip4base-h1024-p63-s64512-pps-ndrpdr"
+ - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4tcp-nat44ed-h4096-p63-s258048-pps-ndrpdr.64b-.t.c-avf-ethip4tcp-nat44ed-h4096-p63-s258048-pps-ndrpdr"
+ - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4tcp-ip4base-h4096-p63-s258048-pps-ndrpdr.64b-.t.c-avf-ethip4tcp-ip4base-h4096-p63-s258048-pps-ndrpdr"
+ - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4tcp-nat44ed-h16384-p63-s1032192-pps-ndrpdr.64b-.t.c-avf-ethip4tcp-nat44ed-h16384-p63-s1032192-pps-ndrpdr"
+ - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4tcp-ip4base-h16384-p63-s1032192-pps-ndrpdr.64b-.t.c-avf-ethip4tcp-ip4base-h16384-p63-s1032192-pps-ndrpdr"
+ - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4tcp-nat44ed-h65536-p63-s4128768-pps-ndrpdr.64b-.t.c-avf-ethip4tcp-nat44ed-h65536-p63-s4128768-pps-ndrpdr"
+ - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4tcp-ip4base-h65536-p63-s4128768-pps-ndrpdr.64b-.t.c-avf-ethip4tcp-ip4base-h65536-p63-s4128768-pps-ndrpdr"
+ - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4tcp-nat44ed-h262144-p63-s16515072-pps-ndrpdr.64b-.t.c-avf-ethip4tcp-nat44ed-h262144-p63-s16515072-pps-ndrpdr"
+ - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4tcp-ip4base-h262144-p63-s16515072-pps-ndrpdr.64b-.t.c-avf-ethip4tcp-ip4base-h262144-p63-s16515072-pps-ndrpdr"
+ layout:
+ title: "2n-clx-xxv710-64b-nat44ed-ip4routing-tcp-stf-pps-avf-pdr"
+ layout: "plot-throughput-speedup-analysis"
- type: "plot"
title: "Speedup: 2n-clx-xxv710-64b-features-ip4routing-base-dpdk-ndr-tsa"
@@ -19412,8 +20120,6 @@
title: "2n-clx-xxv710-114b-vts-l2switching-base-[avf,dpdk]-pdr"
layout: "plot-throughput-speedup-analysis"
-################################################################################
-
# Packet Throughput - DPDK
# 2n-clx-xxv710
@@ -19516,6 +20222,2454 @@
title: "2n-clx-x710-64b-4t2c-base-pdr"
layout: "plot-throughput"
+###############################################################################
+
+# 2n-zn2
+
+# Packet Throughput
+
+- type: "plot"
+ title: "Throughput: 2n-zn2-xxv710-64b-2t1c-memif-base-avf-ndr"
+ algorithm: "plot_perf_box_name"
+ output-file: "{DIR[STATIC,VPP]}/2n-zn2-xxv710-64b-2t1c-memif-base-avf-ndr"
+ data: "plot-vpp-throughput-lat-tsa-2n-zn2"
+ include:
+ - "Tests.Vpp.Perf.Container Memif.2N1L-25Ge2P1Xxv710-Avf-Eth-L2Xcbase-Eth-2Memif-1Dcr-Ndrpdr.64B-2t1c-avf-eth-l2xcbase-eth-2memif-1dcr-ndrpdr"
+ - "Tests.Vpp.Perf.Container Memif.2N1L-25Ge2P1Xxv710-Avf-Dot1Q-L2Bdbasemaclrn-Eth-2Memif-1Dcr-Ndrpdr.64B-2t1c-avf-dot1q-l2bdbasemaclrn-eth-2memif-1dcr-ndrpdr"
+ - "Tests.Vpp.Perf.Container Memif.2N1L-25Ge2P1Xxv710-Avf-Eth-L2Bdbasemaclrn-Eth-2Memif-1Dcr-Ndrpdr.64B-2t1c-avf-eth-l2bdbasemaclrn-eth-2memif-1dcr-ndrpdr"
+ - "Tests.Vpp.Perf.Container Memif.2N1L-25Ge2P1Xxv710-Avf-Ethip4-Ip4Base-Eth-2Memif-1Dcr-Ndrpdr.64B-2t1c-avf-ethip4-ip4base-eth-2memif-1dcr-ndrpdr"
+ layout:
+ title: "2n-zn2-xxv710-64b-2t1c-memif-base-avf-ndr"
+ layout: "plot-throughput"
+
+- type: "plot"
+ title: "Throughput: 2n-zn2-xxv710-64b-2t1c-memif-base-avf-pdr"
+ algorithm: "plot_perf_box_name"
+ output-file: "{DIR[STATIC,VPP]}/2n-zn2-xxv710-64b-2t1c-memif-base-avf-pdr"
+ data: "plot-vpp-throughput-lat-tsa-2n-zn2"
+ include:
+ - "Tests.Vpp.Perf.Container Memif.2N1L-25Ge2P1Xxv710-Avf-Eth-L2Xcbase-Eth-2Memif-1Dcr-Ndrpdr.64B-2t1c-avf-eth-l2xcbase-eth-2memif-1dcr-ndrpdr"
+ - "Tests.Vpp.Perf.Container Memif.2N1L-25Ge2P1Xxv710-Avf-Dot1Q-L2Bdbasemaclrn-Eth-2Memif-1Dcr-Ndrpdr.64B-2t1c-avf-dot1q-l2bdbasemaclrn-eth-2memif-1dcr-ndrpdr"
+ - "Tests.Vpp.Perf.Container Memif.2N1L-25Ge2P1Xxv710-Avf-Eth-L2Bdbasemaclrn-Eth-2Memif-1Dcr-Ndrpdr.64B-2t1c-avf-eth-l2bdbasemaclrn-eth-2memif-1dcr-ndrpdr"
+ - "Tests.Vpp.Perf.Container Memif.2N1L-25Ge2P1Xxv710-Avf-Ethip4-Ip4Base-Eth-2Memif-1Dcr-Ndrpdr.64B-2t1c-avf-ethip4-ip4base-eth-2memif-1dcr-ndrpdr"
+ layout:
+ title: "2n-zn2-xxv710-64b-2t1c-memif-base-avf-pdr"
+ layout: "plot-throughput"
+
+- type: "plot"
+ title: "Throughput: 2n-zn2-xxv710-64b-2t1c-memif-base-dpdk-ndr"
+ algorithm: "plot_perf_box_name"
+ output-file: "{DIR[STATIC,VPP]}/2n-zn2-xxv710-64b-2t1c-memif-base-dpdk-ndr"
+ data: "plot-vpp-throughput-lat-tsa-2n-zn2"
+ include:
+ - "Tests.Vpp.Perf.Container Memif.2N1L-25Ge2P1Xxv710-Eth-L2Xcbase-Eth-2Memif-1Dcr-Ndrpdr.64B-2t1c-eth-l2xcbase-eth-2memif-1dcr-ndrpdr"
+ - "Tests.Vpp.Perf.Container Memif.2N1L-25Ge2P1Xxv710-Dot1Q-L2Bdbasemaclrn-Eth-2Memif-1Dcr-Ndrpdr.64B-2t1c-dot1q-l2bdbasemaclrn-eth-2memif-1dcr-ndrpdr"
+ - "Tests.Vpp.Perf.Container Memif.2N1L-25Ge2P1Xxv710-Eth-L2Bdbasemaclrn-Eth-2Memif-1Dcr-Ndrpdr.64B-2t1c-eth-l2bdbasemaclrn-eth-2memif-1dcr-ndrpdr"
+ - "Tests.Vpp.Perf.Container Memif.2N1L-25Ge2P1Xxv710-Ethip4-Ip4Base-Eth-2Memif-1Dcr-Ndrpdr.64B-2t1c-ethip4-ip4base-eth-2memif-1dcr-ndrpdr"
+ layout:
+ title: "2n-zn2-xxv710-64b-2t1c-memif-base-dpdk-ndr"
+ layout: "plot-throughput"
+
+- type: "plot"
+ title: "Throughput: 2n-zn2-xxv710-64b-2t1c-memif-base-dpdk-pdr"
+ algorithm: "plot_perf_box_name"
+ output-file: "{DIR[STATIC,VPP]}/2n-zn2-xxv710-64b-2t1c-memif-base-dpdk-pdr"
+ data: "plot-vpp-throughput-lat-tsa-2n-zn2"
+ include:
+ - "Tests.Vpp.Perf.Container Memif.2N1L-25Ge2P1Xxv710-Eth-L2Xcbase-Eth-2Memif-1Dcr-Ndrpdr.64B-2t1c-eth-l2xcbase-eth-2memif-1dcr-ndrpdr"
+ - "Tests.Vpp.Perf.Container Memif.2N1L-25Ge2P1Xxv710-Dot1Q-L2Bdbasemaclrn-Eth-2Memif-1Dcr-Ndrpdr.64B-2t1c-dot1q-l2bdbasemaclrn-eth-2memif-1dcr-ndrpdr"
+ - "Tests.Vpp.Perf.Container Memif.2N1L-25Ge2P1Xxv710-Eth-L2Bdbasemaclrn-Eth-2Memif-1Dcr-Ndrpdr.64B-2t1c-eth-l2bdbasemaclrn-eth-2memif-1dcr-ndrpdr"
+ - "Tests.Vpp.Perf.Container Memif.2N1L-25Ge2P1Xxv710-Ethip4-Ip4Base-Eth-2Memif-1Dcr-Ndrpdr.64B-2t1c-ethip4-ip4base-eth-2memif-1dcr-ndrpdr"
+ layout:
+ title: "2n-zn2-xxv710-64b-2t1c-memif-base-dpdk-pdr"
+ layout: "plot-throughput"
+
+- type: "plot"
+ title: "Throughput: 2n-zn2-cx556a-64b-2t1c-rdma-l2-eth-2memif-1dcr-ndr"
+ algorithm: "plot_perf_box_name"
+ output-file: "{DIR[STATIC,VPP]}/2n-zn2-cx556a-64b-2t1c-rdma-l2-eth-2memif-1dcr-ndr"
+ data: "plot-vpp-throughput-lat-tsa-2n-zn2"
+ include:
+ - "Tests.Vpp.Perf.Container Memif.2N1L-100Ge2P1Cx556A-Rdma-Dot1Q-L2Bdbasemaclrn-Eth-2Memif-1Dcr-Ndrpdr.64B-2t1c-rdma-dot1q-l2bdbasemaclrn-eth-2memif-1dcr-ndrpdr"
+ - "Tests.Vpp.Perf.Container Memif.2N1L-100Ge2P1Cx556A-Rdma-Eth-L2Bdbasemaclrn-Eth-2Memif-1Dcr-Ndrpdr.64B-2t1c-rdma-eth-l2bdbasemaclrn-eth-2memif-1dcr-ndrpdr"
+ - "Tests.Vpp.Perf.Container Memif.2N1L-100Ge2P1Cx556A-Rdma-Eth-L2Xcbase-Eth-2Memif-1Dcr-Ndrpdr.64B-2t1c-rdma-eth-l2xcbase-eth-2memif-1dcr-ndrpdr"
+ - "Tests.Vpp.Perf.Container Memif.2N1L-100Ge2P1Cx556A-Rdma-Ethip4-Ip4Base-Eth-2Memif-1Dcr-Ndrpdr.64B-2t1c-rdma-ethip4-ip4base-eth-2memif-1dcr-ndrpdr"
+ layout:
+ title: "2n-zn2-cx556a-64b-2t1c-rdma-l2-eth-2memif-1dcr-ndr"
+ layout: "plot-throughput"
+
+- type: "plot"
+ title: "Throughput: 2n-zn2-cx556a-64b-2t1c-rdma-l2-eth-2memif-1dcr-pdr"
+ algorithm: "plot_perf_box_name"
+ output-file: "{DIR[STATIC,VPP]}/2n-zn2-cx556a-64b-2t1c-rdma-l2-eth-2memif-1dcr-pdr"
+ data: "plot-vpp-throughput-lat-tsa-2n-zn2"
+ include:
+ - "Tests.Vpp.Perf.Container Memif.2N1L-100Ge2P1Cx556A-Rdma-Dot1Q-L2Bdbasemaclrn-Eth-2Memif-1Dcr-Ndrpdr.64B-2t1c-rdma-dot1q-l2bdbasemaclrn-eth-2memif-1dcr-ndrpdr"
+ - "Tests.Vpp.Perf.Container Memif.2N1L-100Ge2P1Cx556A-Rdma-Eth-L2Bdbasemaclrn-Eth-2Memif-1Dcr-Ndrpdr.64B-2t1c-rdma-eth-l2bdbasemaclrn-eth-2memif-1dcr-ndrpdr"
+ - "Tests.Vpp.Perf.Container Memif.2N1L-100Ge2P1Cx556A-Rdma-Eth-L2Xcbase-Eth-2Memif-1Dcr-Ndrpdr.64B-2t1c-rdma-eth-l2xcbase-eth-2memif-1dcr-ndrpdr"
+ - "Tests.Vpp.Perf.Container Memif.2N1L-100Ge2P1Cx556A-Rdma-Ethip4-Ip4Base-Eth-2Memif-1Dcr-Ndrpdr.64B-2t1c-rdma-ethip4-ip4base-eth-2memif-1dcr-ndrpdr"
+ layout:
+ title: "2n-zn2-cx556a-64b-2t1c-rdma-l2-eth-2memif-1dcr-pdr"
+ layout: "plot-throughput"
+
+- type: "plot"
+ title: "Throughput: 2n-zn2-x710-64b-2t1c-ip4routing-base-scale-[avf,dpdk]-ndr"
+ algorithm: "plot_perf_box_name"
+ output-file: "{DIR[STATIC,VPP]}/2n-zn2-x710-64b-2t1c-ip4routing-base-scale-[avf,dpdk]-ndr"
+ data: "plot-vpp-throughput-lat-tsa-2n-zn2"
+ include:
+ - "Tests.Vpp.Perf.Ip4.2N1L-10Ge2P1X710-Avf-Dot1Q-Ip4Base-Ndrpdr.64B-2t1c-avf-dot1q-ip4base-ndrpdr"
+ - "Tests.Vpp.Perf.Ip4.2N1L-10Ge2P1X710-Avf-Ethip4-Ip4Base-Ndrpdr.64B-2t1c-avf-ethip4-ip4base-ndrpdr"
+ - "Tests.Vpp.Perf.Ip4.2N1L-10Ge2P1X710-Avf-Ethip4-Ip4Scale2M-Ndrpdr.64B-2t1c-avf-ethip4-ip4scale2m-ndrpdr"
+ - "Tests.Vpp.Perf.Ip4.2N1L-10Ge2P1X710-Avf-Ethip4-Ip4Scale2M-Rnd-Ndrpdr.64B-2t1c-avf-ethip4-ip4scale2m-rnd-ndrpdr"
+ - "Tests.Vpp.Perf.Ip4.2N1L-10Ge2P1X710-Dot1Q-Ip4Base-Ndrpdr.64B-2t1c-dot1q-ip4base-ndrpdr"
+ - "Tests.Vpp.Perf.Ip4.2N1L-10Ge2P1X710-Ethip4-Ip4Base-Ndrpdr.64B-2t1c-ethip4-ip4base-ndrpdr"
+ layout:
+ title: "2n-zn2-x710-64b-2t1c-ip4routing-base-scale-[avf,dpdk]-ndr"
+ layout: "plot-throughput"
+
+- type: "plot"
+ title: "Throughput: 2n-zn2-x710-64b-2t1c-ip4routing-base-scale-[avf,dpdk]-pdr"
+ algorithm: "plot_perf_box_name"
+ output-file: "{DIR[STATIC,VPP]}/2n-zn2-x710-64b-2t1c-ip4routing-base-scale-[avf,dpdk]-pdr"
+ data: "plot-vpp-throughput-lat-tsa-2n-zn2"
+ include:
+ - "Tests.Vpp.Perf.Ip4.2N1L-10Ge2P1X710-Avf-Dot1Q-Ip4Base-Ndrpdr.64B-2t1c-avf-dot1q-ip4base-ndrpdr"
+ - "Tests.Vpp.Perf.Ip4.2N1L-10Ge2P1X710-Avf-Ethip4-Ip4Base-Ndrpdr.64B-2t1c-avf-ethip4-ip4base-ndrpdr"
+ - "Tests.Vpp.Perf.Ip4.2N1L-10Ge2P1X710-Avf-Ethip4-Ip4Scale2M-Ndrpdr.64B-2t1c-avf-ethip4-ip4scale2m-ndrpdr"
+ - "Tests.Vpp.Perf.Ip4.2N1L-10Ge2P1X710-Avf-Ethip4-Ip4Scale2M-Rnd-Ndrpdr.64B-2t1c-avf-ethip4-ip4scale2m-rnd-ndrpdr"
+ - "Tests.Vpp.Perf.Ip4.2N1L-10Ge2P1X710-Dot1Q-Ip4Base-Ndrpdr.64B-2t1c-dot1q-ip4base-ndrpdr"
+ - "Tests.Vpp.Perf.Ip4.2N1L-10Ge2P1X710-Ethip4-Ip4Base-Ndrpdr.64B-2t1c-ethip4-ip4base-ndrpdr"
+ layout:
+ title: "2n-zn2-x710-64b-2t1c-ip4routing-base-scale-[avf,dpdk]-pdr"
+ layout: "plot-throughput"
+
+- type: "plot"
+ title: "Throughput: 2n-zn2-xxv710-64b-2t1c-ip4routing-base-scale-avf-ndr"
+ algorithm: "plot_perf_box_name"
+ output-file: "{DIR[STATIC,VPP]}/2n-zn2-xxv710-64b-2t1c-ip4routing-base-scale-avf-ndr"
+ data: "plot-vpp-throughput-lat-tsa-2n-zn2"
+ include:
+ - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Avf-Ethip4-Ip4Base-Ndrpdr.64B-2t1c-avf-ethip4-ip4base-ndrpdr"
+ - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Avf-Ethip4-Ip4Scale20K-Ndrpdr.64B-2t1c-avf-ethip4-ip4scale20k-ndrpdr"
+ - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Avf-Ethip4-Ip4Scale200K-Ndrpdr.64B-2t1c-avf-ethip4-ip4scale200k-ndrpdr"
+ - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Avf-Ethip4-Ip4Scale2M-Ndrpdr.64B-2t1c-avf-ethip4-ip4scale2m-ndrpdr"
+ layout:
+ title: "2n-zn2-xxv710-64b-2t1c-ip4routing-base-scale-avf-ndr"
+ layout: "plot-throughput"
+
+- type: "plot"
+ title: "Throughput: 2n-zn2-xxv710-64b-2t1c-ip4routing-base-scale-avf-pdr"
+ algorithm: "plot_perf_box_name"
+ output-file: "{DIR[STATIC,VPP]}/2n-zn2-xxv710-64b-2t1c-ip4routing-base-scale-avf-pdr"
+ data: "plot-vpp-throughput-lat-tsa-2n-zn2"
+ include:
+ - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Avf-Ethip4-Ip4Base-Ndrpdr.64B-2t1c-avf-ethip4-ip4base-ndrpdr"
+ - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Avf-Ethip4-Ip4Scale20K-Ndrpdr.64B-2t1c-avf-ethip4-ip4scale20k-ndrpdr"
+ - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Avf-Ethip4-Ip4Scale200K-Ndrpdr.64B-2t1c-avf-ethip4-ip4scale200k-ndrpdr"
+ - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Avf-Ethip4-Ip4Scale2M-Ndrpdr.64B-2t1c-avf-ethip4-ip4scale2m-ndrpdr"
+ layout:
+ title: "2n-zn2-xxv710-64b-2t1c-ip4routing-base-scale-avf-pdr"
+ layout: "plot-throughput"
+
+- type: "plot"
+ title: "Throughput: 2n-zn2-xxv710-64b-2t1c-ip4routing-scale-avf-rnd-ndr"
+ algorithm: "plot_perf_box_name"
+ output-file: "{DIR[STATIC,VPP]}/2n-zn2-xxv710-64b-2t1c-ip4routing-scale-avf-rnd-ndr"
+ data: "plot-vpp-throughput-lat-tsa-2n-zn2"
+ include:
+ - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Avf-Ethip4-Ip4Scale20K-Rnd-Ndrpdr.64B-2t1c-avf-ethip4-ip4scale20k-rnd-ndrpdr"
+ - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Avf-Ethip4-Ip4Scale200K-Rnd-Ndrpdr.64B-2t1c-avf-ethip4-ip4scale200k-rnd-ndrpdr"
+ - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Avf-Ethip4-Ip4Scale2M-Rnd-Ndrpdr.64B-2t1c-avf-ethip4-ip4scale2m-rnd-ndrpdr"
+ layout:
+ title: "2n-zn2-xxv710-64b-2t1c-ip4routing-scale-avf-rnd-ndr"
+ layout: "plot-throughput"
+
+- type: "plot"
+ title: "Throughput: 2n-zn2-xxv710-64b-2t1c-ip4routing-scale-avf-rnd-pdr"
+ algorithm: "plot_perf_box_name"
+ output-file: "{DIR[STATIC,VPP]}/2n-zn2-xxv710-64b-2t1c-ip4routing-scale-avf-rnd-pdr"
+ data: "plot-vpp-throughput-lat-tsa-2n-zn2"
+ include:
+ - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Avf-Ethip4-Ip4Scale20K-Rnd-Ndrpdr.64B-2t1c-avf-ethip4-ip4scale20k-rnd-ndrpdr"
+ - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Avf-Ethip4-Ip4Scale200K-Rnd-Ndrpdr.64B-2t1c-avf-ethip4-ip4scale200k-rnd-ndrpdr"
+ - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Avf-Ethip4-Ip4Scale2M-Rnd-Ndrpdr.64B-2t1c-avf-ethip4-ip4scale2m-rnd-ndrpdr"
+ layout:
+ title: "2n-zn2-xxv710-64b-2t1c-ip4routing-scale-avf-rnd-pdr"
+ layout: "plot-throughput"
+
+- type: "plot"
+ title: "Throughput: 2n-zn2-xxv710-64b-2t1c-ip4routing-base-scale-dpdk-ndr"
+ algorithm: "plot_perf_box_name"
+ output-file: "{DIR[STATIC,VPP]}/2n-zn2-xxv710-64b-2t1c-ip4routing-base-scale-dpdk-ndr"
+ data: "plot-vpp-throughput-lat-tsa-2n-zn2"
+ include:
+ - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Dot1Q-Ip4Base-Ndrpdr.64B-2t1c-dot1q-ip4base-ndrpdr"
+ - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Ethip4-Ip4Base-Ndrpdr.64B-2t1c-ethip4-ip4base-ndrpdr"
+ - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Ethip4-Ip4Scale20K-Ndrpdr.64B-2t1c-ethip4-ip4scale20k-ndrpdr"
+ - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Ethip4-Ip4Scale200K-Ndrpdr.64B-2t1c-ethip4-ip4scale200k-ndrpdr"
+ - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Ethip4-Ip4Scale2M-Ndrpdr.64B-2t1c-ethip4-ip4scale2m-ndrpdr"
+ layout:
+ title: "2n-zn2-xxv710-64b-2t1c-ip4routing-base-scale-dpdk-ndr"
+ layout: "plot-throughput"
+
+- type: "plot"
+ title: "Throughput: 2n-zn2-xxv710-64b-2t1c-ip4routing-base-scale-dpdk-pdr"
+ algorithm: "plot_perf_box_name"
+ output-file: "{DIR[STATIC,VPP]}/2n-zn2-xxv710-64b-2t1c-ip4routing-base-scale-dpdk-pdr"
+ data: "plot-vpp-throughput-lat-tsa-2n-zn2"
+ include:
+ - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Dot1Q-Ip4Base-Ndrpdr.64B-2t1c-dot1q-ip4base-ndrpdr"
+ - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Ethip4-Ip4Base-Ndrpdr.64B-2t1c-ethip4-ip4base-ndrpdr"
+ - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Ethip4-Ip4Scale20K-Ndrpdr.64B-2t1c-ethip4-ip4scale20k-ndrpdr"
+ - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Ethip4-Ip4Scale200K-Ndrpdr.64B-2t1c-ethip4-ip4scale200k-ndrpdr"
+ - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Ethip4-Ip4Scale2M-Ndrpdr.64B-2t1c-ethip4-ip4scale2m-ndrpdr"
+ layout:
+ title: "2n-zn2-xxv710-64b-2t1c-ip4routing-base-scale-dpdk-pdr"
+ layout: "plot-throughput"
+
+- type: "plot"
+ title: "Throughput: 2n-zn2-xxv710-64b-2t1c-ip4routing-scale-dpdk-rnd-ndr"
+ algorithm: "plot_perf_box_name"
+ output-file: "{DIR[STATIC,VPP]}/2n-zn2-xxv710-64b-2t1c-ip4routing-scale-dpdk-rnd-ndr"
+ data: "plot-vpp-throughput-lat-tsa-2n-zn2"
+ include:
+ - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Ethip4-Ip4Scale20K-Rnd-Ndrpdr.64B-2t1c-ethip4-ip4scale20k-rnd-ndrpdr"
+ - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Ethip4-Ip4Scale200K-Rnd-Ndrpdr.64B-2t1c-ethip4-ip4scale200k-rnd-ndrpdr"
+ - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Ethip4-Ip4Scale2M-Rnd-Ndrpdr.64B-2t1c-ethip4-ip4scale2m-rnd-ndrpdr"
+ layout:
+ title: "2n-zn2-xxv710-64b-2t1c-ip4routing-scale-dpdk-rnd-ndr"
+ layout: "plot-throughput"
+
+- type: "plot"
+ title: "Throughput: 2n-zn2-xxv710-64b-2t1c-ip4routing-scale-dpdk-rnd-pdr"
+ algorithm: "plot_perf_box_name"
+ output-file: "{DIR[STATIC,VPP]}/2n-zn2-xxv710-64b-2t1c-ip4routing-scale-dpdk-rnd-pdr"
+ data: "plot-vpp-throughput-lat-tsa-2n-zn2"
+ include:
+ - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Ethip4-Ip4Scale20K-Rnd-Ndrpdr.64B-2t1c-ethip4-ip4scale20k-rnd-ndrpdr"
+ - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Ethip4-Ip4Scale200K-Rnd-Ndrpdr.64B-2t1c-ethip4-ip4scale200k-rnd-ndrpdr"
+ - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Ethip4-Ip4Scale2M-Rnd-Ndrpdr.64B-2t1c-ethip4-ip4scale2m-rnd-ndrpdr"
+ layout:
+ title: "2n-zn2-xxv710-64b-2t1c-ip4routing-scale-dpdk-rnd-pdr"
+ layout: "plot-throughput"
+
+- type: "plot"
+ title: "Throughput: 2n-zn2-xxv710-64b-2t1c-features-ip4routing-base-avf-ndr"
+ algorithm: "plot_perf_box_name"
+ output-file: "{DIR[STATIC,VPP]}/2n-zn2-xxv710-64b-2t1c-features-ip4routing-base-avf-ndr"
+ data: "plot-vpp-throughput-lat-tsa-2n-zn2"
+ include:
+ - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Avf-Ethip4Udp-Ip4Base-Iacl50Sf-10Kflows-Ndrpdr.64B-2t1c-avf-ethip4udp-ip4base-iacl50sf-10kflows-ndrpdr"
+ - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Avf-Ethip4Udp-Ip4Base-Iacl50Sl-10Kflows-Ndrpdr.64B-2t1c-avf-ethip4udp-ip4base-iacl50sl-10kflows-ndrpdr"
+ - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Avf-Ethip4Udp-Ip4Base-Oacl50Sf-10Kflows-Ndrpdr.64B-2t1c-avf-ethip4udp-ip4base-oacl50sf-10kflows-ndrpdr"
+ - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Avf-Ethip4Udp-Ip4Base-Oacl50Sl-10Kflows-Ndrpdr.64B-2t1c-avf-ethip4udp-ip4base-oacl50sl-10kflows-ndrpdr"
+ - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Avf-ethip4udp-nat44det-h1-p1-s1-Ndrpdr.64B-2t1c-avf-ethip4udp-nat44det-h1-p1-s1-ndrpdr"
+ - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Avf-ethip4udp-nat44det-h1024-p63-s64512-Ndrpdr.64B-2t1c-avf-ethip4udp-nat44det-h1024-p63-s64512-ndrpdr"
+ layout:
+ title: "2n-zn2-xxv710-64b-2t1c-features-ip4routing-base-avf-ndr"
+ layout: "plot-throughput"
+
+- type: "plot"
+ title: "Throughput: 2n-zn2-xxv710-64b-2t1c-features-ip4routing-base-avf-pdr"
+ algorithm: "plot_perf_box_name"
+ output-file: "{DIR[STATIC,VPP]}/2n-zn2-xxv710-64b-2t1c-features-ip4routing-base-avf-pdr"
+ data: "plot-vpp-throughput-lat-tsa-2n-zn2"
+ include:
+ - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Avf-Ethip4Udp-Ip4Base-Iacl50Sf-10Kflows-Ndrpdr.64B-2t1c-avf-ethip4udp-ip4base-iacl50sf-10kflows-ndrpdr"
+ - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Avf-Ethip4Udp-Ip4Base-Iacl50Sl-10Kflows-Ndrpdr.64B-2t1c-avf-ethip4udp-ip4base-iacl50sl-10kflows-ndrpdr"
+ - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Avf-Ethip4Udp-Ip4Base-Oacl50Sf-10Kflows-Ndrpdr.64B-2t1c-avf-ethip4udp-ip4base-oacl50sf-10kflows-ndrpdr"
+ - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Avf-Ethip4Udp-Ip4Base-Oacl50Sl-10Kflows-Ndrpdr.64B-2t1c-avf-ethip4udp-ip4base-oacl50sl-10kflows-ndrpdr"
+ - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Avf-ethip4udp-nat44det-h1-p1-s1-Ndrpdr.64B-2t1c-avf-ethip4udp-nat44det-h1-p1-s1-ndrpdr"
+ - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Avf-ethip4udp-nat44det-h1024-p63-s64512-Ndrpdr.64B-2t1c-avf-ethip4udp-nat44det-h1024-p63-s64512-ndrpdr"
+ layout:
+ title: "2n-zn2-xxv710-64b-2t1c-features-ip4routing-base-avf-pdr"
+ layout: "plot-throughput"
+
+- type: "plot"
+ title: "Throughput: 2n-zn2-xxv710-64b-2t1c-nat44det-ip4routing-stl-bidir-avf-ndr"
+ algorithm: "plot_perf_box_name"
+ output-file: "{DIR[STATIC,VPP]}/2n-zn2-xxv710-64b-2t1c-nat44det-ip4routing-stl-bidir-avf-ndr"
+ data: "plot-vpp-throughput-lat-tsa-2n-zn2"
+ include:
+ - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-nat44det-h1024-p63-s64512-ndrpdr.64b-2t1c-avf-ethip4udp-nat44det-h1024-p63-s64512-ndrpdr"
+ - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-nat44det-h4096-p63-s258048-ndrpdr.64b-2t1c-avf-ethip4udp-nat44det-h4096-p63-s258048-ndrpdr"
+ - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-nat44det-h16384-p63-s1032192-ndrpdr.64b-2t1c-avf-ethip4udp-nat44det-h16384-p63-s1032192-ndrpdr"
+ - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-nat44det-h65536-p63-s4128758-ndrpdr.64b-2t1c-avf-ethip4udp-nat44det-h65536-p63-s4128758-ndrpdr"
+ - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-nat44det-h262144-p63-s16515072-ndrpdr.64b-2t1c-avf-ethip4udp-nat44det-h262144-p63-s16515072-ndrpdr"
+ layout:
+ title: "2n-zn2-xxv710-64b-2t1c-nat44det-ip4routing-stl-bidir-avf-ndr"
+ layout: "plot-throughput"
+
+#- type: "plot"
+# title: "Throughput: 2n-zn2-xxv710-64b-2t1c-nat44ed-ip4routing-stl-unidir-avf-ndr"
+# algorithm: "plot_perf_box_name"
+# output-file: "{DIR[STATIC,VPP]}/2n-zn2-xxv710-64b-2t1c-nat44ed-ip4routing-stl-unidir-avf-ndr"
+# data: "plot-vpp-throughput-lat-tsa-2n-zn2"
+# include:
+# - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-nat44ed-h1024-p63-s64512-udir-ndrpdr.64b-2t1c-avf-ethip4udp-nat44ed-h1024-p63-s64512-udir-ndrpdr"
+# - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-nat44ed-h4096-p63-s258048-udir-ndrpdr.64b-2t1c-avf-ethip4udp-nat44ed-h4096-p63-s258048-udir-ndrpdr"
+# - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-nat44ed-h16384-p63-s1032192-udir-ndrpdr.64b-2t1c-avf-ethip4udp-nat44ed-h16384-p63-s1032192-udir-ndrpdr"
+# - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-nat44ed-h65536-p63-s4128768-udir-ndrpdr.64b-2t1c-avf-ethip4udp-nat44ed-h65536-p63-s4128768-udir-ndrpdr"
+# - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-nat44ed-h262144-p63-s16515072-udir-ndrpdr.64b-2t1c-avf-ethip4udp-nat44ed-h262144-p63-s16515072-udir-ndrpdr"
+# layout:
+# title: "2n-zn2-xxv710-64b-2t1c-nat44ed-ip4routing-stl-unidir-avf-ndr"
+# layout: "plot-throughput"
+#
+#- type: "plot"
+# title: "Throughput: 2n-zn2-xxv710-64b-2t1c-nat44ed-ip4routing-udp-stf-cps-avf-ndr"
+# algorithm: "plot_perf_box_name"
+# output-file: "{DIR[STATIC,VPP]}/2n-zn2-xxv710-64b-2t1c-nat44ed-ip4routing-udp-stf-cps-avf-ndr"
+# data: "plot-vpp-throughput-lat-tsa-2n-zn2"
+# include:
+# - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-nat44ed-h1024-p63-s64512-cps-ndrpdr.64b-2t1c-avf-ethip4udp-nat44ed-h1024-p63-s64512-cps-ndrpdr"
+# - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-ip4base-h1024-p63-s64512-cps-ndrpdr.64b-2t1c-avf-ethip4udp-ip4base-h1024-p63-s64512-cps-ndrpdr"
+# - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-nat44ed-h4096-p63-s258048-cps-ndrpdr.64b-2t1c-avf-ethip4udp-nat44ed-h4096-p63-s258048-cps-ndrpdr"
+# - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-ip4base-h4096-p63-s258048-cps-ndrpdr.64b-2t1c-avf-ethip4udp-ip4base-h4096-p63-s258048-cps-ndrpdr"
+# - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-nat44ed-h16384-p63-s1032192-cps-ndrpdr.64b-2t1c-avf-ethip4udp-nat44ed-h16384-p63-s1032192-cps-ndrpdr"
+# - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-ip4base-h16384-p63-s1032192-cps-ndrpdr.64b-2t1c-avf-ethip4udp-ip4base-h16384-p63-s1032192-cps-ndrpdr"
+# - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-nat44ed-h65536-p63-s4128768-cps-ndrpdr.64b-2t1c-avf-ethip4udp-nat44ed-h65536-p63-s4128768-cps-ndrpdr"
+# - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-ip4base-h65536-p63-s4128768-cps-ndrpdr.64b-2t1c-avf-ethip4udp-ip4base-h65536-p63-s4128768-cps-ndrpdr"
+# - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-nat44ed-h262144-p63-s16515072-cps-ndrpdr.64b-2t1c-avf-ethip4udp-nat44ed-h262144-p63-s16515072-cps-ndrpdr"
+# - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-ip4base-h262144-p63-s16515072-cps-ndrpdr.64b-2t1c-avf-ethip4udp-ip4base-h262144-p63-s16515072-cps-ndrpdr"
+# layout:
+# title: "2n-zn2-xxv710-64b-2t1c-nat44ed-ip4routing-udp-stf-cps-avf-ndr"
+# layout: "plot-cps"
+#
+#- type: "plot"
+# title: "Throughput: 2n-zn2-xxv710-64b-2t1c-nat44ed-ip4routing-udp-stf-pps-avf-ndr"
+# algorithm: "plot_perf_box_name"
+# output-file: "{DIR[STATIC,VPP]}/2n-zn2-xxv710-64b-2t1c-nat44ed-ip4routing-udp-stf-pps-avf-ndr"
+# data: "plot-vpp-throughput-lat-tsa-2n-zn2"
+# include:
+# - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-nat44ed-h1024-p63-s64512-pps-ndrpdr.64b-2t1c-avf-ethip4udp-nat44ed-h1024-p63-s64512-pps-ndrpdr"
+# - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-ip4base-h1024-p63-s64512-pps-ndrpdr.64b-2t1c-avf-ethip4udp-ip4base-h1024-p63-s64512-pps-ndrpdr"
+# - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-nat44ed-h4096-p63-s258048-pps-ndrpdr.64b-2t1c-avf-ethip4udp-nat44ed-h4096-p63-s258048-pps-ndrpdr"
+# - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-ip4base-h4096-p63-s258048-pps-ndrpdr.64b-2t1c-avf-ethip4udp-ip4base-h4096-p63-s258048-pps-ndrpdr"
+# - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-nat44ed-h16384-p63-s1032192-pps-ndrpdr.64b-2t1c-avf-ethip4udp-nat44ed-h16384-p63-s1032192-pps-ndrpdr"
+# - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-ip4base-h16384-p63-s1032192-pps-ndrpdr.64b-2t1c-avf-ethip4udp-ip4base-h16384-p63-s1032192-pps-ndrpdr"
+# - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-nat44ed-h65536-p63-s4128768-pps-ndrpdr.64b-2t1c-avf-ethip4udp-nat44ed-h65536-p63-s4128768-pps-ndrpdr"
+# - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-ip4base-h65536-p63-s4128768-pps-ndrpdr.64b-2t1c-avf-ethip4udp-ip4base-h65536-p63-s4128768-pps-ndrpdr"
+# - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-nat44ed-h262144-p63-s16515072-pps-ndrpdr.64b-2t1c-avf-ethip4udp-nat44ed-h262144-p63-s16515072-pps-ndrpdr"
+# - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-ip4base-h262144-p63-s16515072-pps-ndrpdr.64b-2t1c-avf-ethip4udp-ip4base-h262144-p63-s16515072-pps-ndrpdr"
+# layout:
+# title: "2n-zn2-xxv710-64b-2t1c-nat44ed-ip4routing-udp-stf-pps-avf-ndr"
+# layout: "plot-throughput"
+#
+#- type: "plot"
+# title: "Throughput: 2n-zn2-xxv710-64b-2t1c-nat44ed-ip4routing-tcp-stf-cps-avf-ndr"
+# algorithm: "plot_perf_box_name"
+# output-file: "{DIR[STATIC,VPP]}/2n-zn2-xxv710-64b-2t1c-nat44ed-ip4routing-tcp-stf-cps-avf-ndr"
+# data: "plot-vpp-throughput-lat-tsa-2n-zn2"
+# include:
+# - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4tcp-nat44ed-h1024-p63-s64512-cps-ndrpdr.64b-2t1c-avf-ethip4tcp-nat44ed-h1024-p63-s64512-cps-ndrpdr"
+# - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4tcp-ip4base-h1024-p63-s64512-cps-ndrpdr.64b-2t1c-avf-ethip4tcp-ip4base-h1024-p63-s64512-cps-ndrpdr"
+# - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4tcp-nat44ed-h4096-p63-s258048-cps-ndrpdr.64b-2t1c-avf-ethip4tcp-nat44ed-h4096-p63-s258048-cps-ndrpdr"
+# - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4tcp-ip4base-h4096-p63-s258048-cps-ndrpdr.64b-2t1c-avf-ethip4tcp-ip4base-h4096-p63-s258048-cps-ndrpdr"
+# - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4tcp-nat44ed-h16384-p63-s1032192-cps-ndrpdr.64b-2t1c-avf-ethip4tcp-nat44ed-h16384-p63-s1032192-cps-ndrpdr"
+# - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4tcp-ip4base-h16384-p63-s1032192-cps-ndrpdr.64b-2t1c-avf-ethip4tcp-ip4base-h16384-p63-s1032192-cps-ndrpdr"
+# - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4tcp-nat44ed-h65536-p63-s4128768-cps-ndrpdr.64b-2t1c-avf-ethip4tcp-nat44ed-h65536-p63-s4128768-cps-ndrpdr"
+# - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4tcp-ip4base-h65536-p63-s4128768-cps-ndrpdr.64b-2t1c-avf-ethip4tcp-ip4base-h65536-p63-s4128768-cps-ndrpdr"
+# - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4tcp-nat44ed-h262144-p63-s16515072-cps-ndrpdr.64b-2t1c-avf-ethip4tcp-nat44ed-h262144-p63-s16515072-cps-ndrpdr"
+# - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4tcp-ip4base-h262144-p63-s16515072-cps-ndrpdr.64b-2t1c-avf-ethip4tcp-ip4base-h262144-p63-s16515072-cps-ndrpdr"
+# layout:
+# title: "2n-zn2-xxv710-64b-2t1c-nat44ed-ip4routing-tcp-stf-cps-avf-ndr"
+# layout: "plot-cps"
+#
+#- type: "plot"
+# title: "Throughput: 2n-zn2-xxv710-64b-2t1c-nat44ed-ip4routing-tcp-stf-pps-avf-ndr"
+# algorithm: "plot_perf_box_name"
+# output-file: "{DIR[STATIC,VPP]}/2n-zn2-xxv710-64b-2t1c-nat44ed-ip4routing-tcp-stf-pps-avf-ndr"
+# data: "plot-vpp-throughput-lat-tsa-2n-zn2"
+# include:
+# - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4tcp-nat44ed-h1024-p63-s64512-pps-ndrpdr.64b-2t1c-avf-ethip4tcp-nat44ed-h1024-p63-s64512-pps-ndrpdr"
+# - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4tcp-ip4base-h1024-p63-s64512-pps-ndrpdr.64b-2t1c-avf-ethip4tcp-ip4base-h1024-p63-s64512-pps-ndrpdr"
+# - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4tcp-nat44ed-h4096-p63-s258048-pps-ndrpdr.64b-2t1c-avf-ethip4tcp-nat44ed-h4096-p63-s258048-pps-ndrpdr"
+# - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4tcp-ip4base-h4096-p63-s258048-pps-ndrpdr.64b-2t1c-avf-ethip4tcp-ip4base-h4096-p63-s258048-pps-ndrpdr"
+# - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4tcp-nat44ed-h16384-p63-s1032192-pps-ndrpdr.64b-2t1c-avf-ethip4tcp-nat44ed-h16384-p63-s1032192-pps-ndrpdr"
+# - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4tcp-ip4base-h16384-p63-s1032192-pps-ndrpdr.64b-2t1c-avf-ethip4tcp-ip4base-h16384-p63-s1032192-pps-ndrpdr"
+# - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4tcp-nat44ed-h65536-p63-s4128768-pps-ndrpdr.64b-2t1c-avf-ethip4tcp-nat44ed-h65536-p63-s4128768-pps-ndrpdr"
+# - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4tcp-ip4base-h65536-p63-s4128768-pps-ndrpdr.64b-2t1c-avf-ethip4tcp-ip4base-h65536-p63-s4128768-pps-ndrpdr"
+# - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4tcp-nat44ed-h262144-p63-s16515072-pps-ndrpdr.64b-2t1c-avf-ethip4tcp-nat44ed-h262144-p63-s16515072-pps-ndrpdr"
+# - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4tcp-ip4base-h262144-p63-s16515072-pps-ndrpdr.64b-2t1c-avf-ethip4tcp-ip4base-h262144-p63-s16515072-pps-ndrpdr"
+# layout:
+# title: "2n-zn2-xxv710-64b-2t1c-nat44ed-ip4routing-tcp-stf-pps-avf-ndr"
+# layout: "plot-throughput"
+
+- type: "plot"
+ title: "Throughput: 2n-zn2-xxv710-64b-2t1c-nat44det-ip4routing-stl-bidir-avf-pdr"
+ algorithm: "plot_perf_box_name"
+ output-file: "{DIR[STATIC,VPP]}/2n-zn2-xxv710-64b-2t1c-nat44det-ip4routing-stl-bidir-avf-pdr"
+ data: "plot-vpp-throughput-lat-tsa-2n-zn2"
+ include:
+ - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-nat44det-h1024-p63-s64512-ndrpdr.64b-2t1c-avf-ethip4udp-nat44det-h1024-p63-s64512-ndrpdr"
+ - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-nat44det-h4096-p63-s258048-ndrpdr.64b-2t1c-avf-ethip4udp-nat44det-h4096-p63-s258048-ndrpdr"
+ - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-nat44det-h16384-p63-s1032192-ndrpdr.64b-2t1c-avf-ethip4udp-nat44det-h16384-p63-s1032192-ndrpdr"
+ - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-nat44det-h65536-p63-s4128758-ndrpdr.64b-2t1c-avf-ethip4udp-nat44det-h65536-p63-s4128758-ndrpdr"
+ - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-nat44det-h262144-p63-s16515072-ndrpdr.64b-2t1c-avf-ethip4udp-nat44det-h262144-p63-s16515072-ndrpdr"
+ layout:
+ title: "2n-zn2-xxv710-64b-2t1c-nat44det-ip4routing-stl-bidir-avf-pdr"
+ layout: "plot-throughput"
+
+#- type: "plot"
+# title: "Throughput: 2n-zn2-xxv710-64b-2t1c-nat44ed-ip4routing-stl-unidir-avf-pdr"
+# algorithm: "plot_perf_box_name"
+# output-file: "{DIR[STATIC,VPP]}/2n-zn2-xxv710-64b-2t1c-nat44ed-ip4routing-stl-unidir-avf-pdr"
+# data: "plot-vpp-throughput-lat-tsa-2n-zn2"
+# include:
+# - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-nat44ed-h1024-p63-s64512-udir-ndrpdr.64b-2t1c-avf-ethip4udp-nat44ed-h1024-p63-s64512-udir-ndrpdr"
+# - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-nat44ed-h4096-p63-s258048-udir-ndrpdr.64b-2t1c-avf-ethip4udp-nat44ed-h4096-p63-s258048-udir-ndrpdr"
+# - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-nat44ed-h16384-p63-s1032192-udir-ndrpdr.64b-2t1c-avf-ethip4udp-nat44ed-h16384-p63-s1032192-udir-ndrpdr"
+# - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-nat44ed-h65536-p63-s4128768-udir-ndrpdr.64b-2t1c-avf-ethip4udp-nat44ed-h65536-p63-s4128768-udir-ndrpdr"
+# - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-nat44ed-h262144-p63-s16515072-udir-ndrpdr.64b-2t1c-avf-ethip4udp-nat44ed-h262144-p63-s16515072-udir-ndrpdr"
+# layout:
+# title: "2n-zn2-xxv710-64b-2t1c-nat44ed-ip4routing-stl-unidir-avf-pdr"
+# layout: "plot-throughput"
+#
+#- type: "plot"
+# title: "Throughput: 2n-zn2-xxv710-64b-2t1c-nat44ed-ip4routing-udp-stf-cps-avf-pdr"
+# algorithm: "plot_perf_box_name"
+# output-file: "{DIR[STATIC,VPP]}/2n-zn2-xxv710-64b-2t1c-nat44ed-ip4routing-udp-stf-cps-avf-pdr"
+# data: "plot-vpp-throughput-lat-tsa-2n-zn2"
+# include:
+# - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-nat44ed-h1024-p63-s64512-cps-ndrpdr.64b-2t1c-avf-ethip4udp-nat44ed-h1024-p63-s64512-cps-ndrpdr"
+# - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-ip4base-h1024-p63-s64512-cps-ndrpdr.64b-2t1c-avf-ethip4udp-ip4base-h1024-p63-s64512-cps-ndrpdr"
+# - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-nat44ed-h4096-p63-s258048-cps-ndrpdr.64b-2t1c-avf-ethip4udp-nat44ed-h4096-p63-s258048-cps-ndrpdr"
+# - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-ip4base-h4096-p63-s258048-cps-ndrpdr.64b-2t1c-avf-ethip4udp-ip4base-h4096-p63-s258048-cps-ndrpdr"
+# - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-nat44ed-h16384-p63-s1032192-cps-ndrpdr.64b-2t1c-avf-ethip4udp-nat44ed-h16384-p63-s1032192-cps-ndrpdr"
+# - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-ip4base-h16384-p63-s1032192-cps-ndrpdr.64b-2t1c-avf-ethip4udp-ip4base-h16384-p63-s1032192-cps-ndrpdr"
+# - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-nat44ed-h65536-p63-s4128768-cps-ndrpdr.64b-2t1c-avf-ethip4udp-nat44ed-h65536-p63-s4128768-cps-ndrpdr"
+# - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-ip4base-h65536-p63-s4128768-cps-ndrpdr.64b-2t1c-avf-ethip4udp-ip4base-h65536-p63-s4128768-cps-ndrpdr"
+# - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-nat44ed-h262144-p63-s16515072-cps-ndrpdr.64b-2t1c-avf-ethip4udp-nat44ed-h262144-p63-s16515072-cps-ndrpdr"
+# - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-ip4base-h262144-p63-s16515072-cps-ndrpdr.64b-2t1c-avf-ethip4udp-ip4base-h262144-p63-s16515072-cps-ndrpdr"
+# layout:
+# title: "2n-zn2-xxv710-64b-2t1c-nat44ed-ip4routing-udp-stf-cps-avf-pdr"
+# layout: "plot-cps"
+#
+#- type: "plot"
+# title: "Throughput: 2n-zn2-xxv710-64b-2t1c-nat44ed-ip4routing-udp-stf-pps-avf-pdr"
+# algorithm: "plot_perf_box_name"
+# output-file: "{DIR[STATIC,VPP]}/2n-zn2-xxv710-64b-2t1c-nat44ed-ip4routing-udp-stf-pps-avf-pdr"
+# data: "plot-vpp-throughput-lat-tsa-2n-zn2"
+# include:
+# - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-nat44ed-h1024-p63-s64512-pps-ndrpdr.64b-2t1c-avf-ethip4udp-nat44ed-h1024-p63-s64512-pps-ndrpdr"
+# - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-ip4base-h1024-p63-s64512-pps-ndrpdr.64b-2t1c-avf-ethip4udp-ip4base-h1024-p63-s64512-pps-ndrpdr"
+# - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-nat44ed-h4096-p63-s258048-pps-ndrpdr.64b-2t1c-avf-ethip4udp-nat44ed-h4096-p63-s258048-pps-ndrpdr"
+# - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-ip4base-h4096-p63-s258048-pps-ndrpdr.64b-2t1c-avf-ethip4udp-ip4base-h4096-p63-s258048-pps-ndrpdr"
+# - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-nat44ed-h16384-p63-s1032192-pps-ndrpdr.64b-2t1c-avf-ethip4udp-nat44ed-h16384-p63-s1032192-pps-ndrpdr"
+# - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-ip4base-h16384-p63-s1032192-pps-ndrpdr.64b-2t1c-avf-ethip4udp-ip4base-h16384-p63-s1032192-pps-ndrpdr"
+# - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-nat44ed-h65536-p63-s4128768-pps-ndrpdr.64b-2t1c-avf-ethip4udp-nat44ed-h65536-p63-s4128768-pps-ndrpdr"
+# - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-ip4base-h65536-p63-s4128768-pps-ndrpdr.64b-2t1c-avf-ethip4udp-ip4base-h65536-p63-s4128768-pps-ndrpdr"
+# - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-nat44ed-h262144-p63-s16515072-pps-ndrpdr.64b-2t1c-avf-ethip4udp-nat44ed-h262144-p63-s16515072-pps-ndrpdr"
+# - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-ip4base-h262144-p63-s16515072-pps-ndrpdr.64b-2t1c-avf-ethip4udp-ip4base-h262144-p63-s16515072-pps-ndrpdr"
+# layout:
+# title: "2n-zn2-xxv710-64b-2t1c-nat44ed-ip4routing-udp-stf-pps-avf-pdr"
+# layout: "plot-throughput"
+#
+#- type: "plot"
+# title: "Throughput: 2n-zn2-xxv710-64b-2t1c-nat44ed-ip4routing-tcp-stf-cps-avf-pdr"
+# algorithm: "plot_perf_box_name"
+# output-file: "{DIR[STATIC,VPP]}/2n-zn2-xxv710-64b-2t1c-nat44ed-ip4routing-tcp-stf-cps-avf-pdr"
+# data: "plot-vpp-throughput-lat-tsa-2n-zn2"
+# include:
+# - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4tcp-nat44ed-h1024-p63-s64512-cps-ndrpdr.64b-2t1c-avf-ethip4tcp-nat44ed-h1024-p63-s64512-cps-ndrpdr"
+# - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4tcp-ip4base-h1024-p63-s64512-cps-ndrpdr.64b-2t1c-avf-ethip4tcp-ip4base-h1024-p63-s64512-cps-ndrpdr"
+# - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4tcp-nat44ed-h4096-p63-s258048-cps-ndrpdr.64b-2t1c-avf-ethip4tcp-nat44ed-h4096-p63-s258048-cps-ndrpdr"
+# - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4tcp-ip4base-h4096-p63-s258048-cps-ndrpdr.64b-2t1c-avf-ethip4tcp-ip4base-h4096-p63-s258048-cps-ndrpdr"
+# - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4tcp-nat44ed-h16384-p63-s1032192-cps-ndrpdr.64b-2t1c-avf-ethip4tcp-nat44ed-h16384-p63-s1032192-cps-ndrpdr"
+# - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4tcp-ip4base-h16384-p63-s1032192-cps-ndrpdr.64b-2t1c-avf-ethip4tcp-ip4base-h16384-p63-s1032192-cps-ndrpdr"
+# - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4tcp-nat44ed-h65536-p63-s4128768-cps-ndrpdr.64b-2t1c-avf-ethip4tcp-nat44ed-h65536-p63-s4128768-cps-ndrpdr"
+# - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4tcp-ip4base-h65536-p63-s4128768-cps-ndrpdr.64b-2t1c-avf-ethip4tcp-ip4base-h65536-p63-s4128768-cps-ndrpdr"
+# - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4tcp-nat44ed-h262144-p63-s16515072-cps-ndrpdr.64b-2t1c-avf-ethip4tcp-nat44ed-h262144-p63-s16515072-cps-ndrpdr"
+# - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4tcp-ip4base-h262144-p63-s16515072-cps-ndrpdr.64b-2t1c-avf-ethip4tcp-ip4base-h262144-p63-s16515072-cps-ndrpdr"
+# layout:
+# title: "2n-zn2-xxv710-64b-2t1c-nat44ed-ip4routing-tcp-stf-cps-avf-pdr"
+# layout: "plot-cps"
+#
+#- type: "plot"
+# title: "Throughput: 2n-zn2-xxv710-64b-2t1c-nat44ed-ip4routing-tcp-stf-pps-avf-pdr"
+# algorithm: "plot_perf_box_name"
+# output-file: "{DIR[STATIC,VPP]}/2n-zn2-xxv710-64b-2t1c-nat44ed-ip4routing-tcp-stf-pps-avf-pdr"
+# data: "plot-vpp-throughput-lat-tsa-2n-zn2"
+# include:
+# - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4tcp-nat44ed-h1024-p63-s64512-pps-ndrpdr.64b-2t1c-avf-ethip4tcp-nat44ed-h1024-p63-s64512-pps-ndrpdr"
+# - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4tcp-ip4base-h1024-p63-s64512-pps-ndrpdr.64b-2t1c-avf-ethip4tcp-ip4base-h1024-p63-s64512-pps-ndrpdr"
+# - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4tcp-nat44ed-h4096-p63-s258048-pps-ndrpdr.64b-2t1c-avf-ethip4tcp-nat44ed-h4096-p63-s258048-pps-ndrpdr"
+# - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4tcp-ip4base-h4096-p63-s258048-pps-ndrpdr.64b-2t1c-avf-ethip4tcp-ip4base-h4096-p63-s258048-pps-ndrpdr"
+# - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4tcp-nat44ed-h16384-p63-s1032192-pps-ndrpdr.64b-2t1c-avf-ethip4tcp-nat44ed-h16384-p63-s1032192-pps-ndrpdr"
+# - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4tcp-ip4base-h16384-p63-s1032192-pps-ndrpdr.64b-2t1c-avf-ethip4tcp-ip4base-h16384-p63-s1032192-pps-ndrpdr"
+# - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4tcp-nat44ed-h65536-p63-s4128768-pps-ndrpdr.64b-2t1c-avf-ethip4tcp-nat44ed-h65536-p63-s4128768-pps-ndrpdr"
+# - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4tcp-ip4base-h65536-p63-s4128768-pps-ndrpdr.64b-2t1c-avf-ethip4tcp-ip4base-h65536-p63-s4128768-pps-ndrpdr"
+# - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4tcp-nat44ed-h262144-p63-s16515072-pps-ndrpdr.64b-2t1c-avf-ethip4tcp-nat44ed-h262144-p63-s16515072-pps-ndrpdr"
+# - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4tcp-ip4base-h262144-p63-s16515072-pps-ndrpdr.64b-2t1c-avf-ethip4tcp-ip4base-h262144-p63-s16515072-pps-ndrpdr"
+# layout:
+# title: "2n-zn2-xxv710-64b-2t1c-nat44ed-ip4routing-tcp-stf-pps-avf-pdr"
+# layout: "plot-throughput"
+
+- type: "plot"
+ title: "Throughput: 2n-zn2-xxv710-64b-2t1c-features-ip4routing-base-dpdk-ndr"
+ algorithm: "plot_perf_box_name"
+ output-file: "{DIR[STATIC,VPP]}/2n-zn2-xxv710-64b-2t1c-features-ip4routing-base-dpdk-ndr"
+ data: "plot-vpp-throughput-lat-tsa-2n-zn2"
+ include:
+ - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Ethip4-Ip4Base-Ndrpdr.64B-2t1c-ethip4-ip4base-ndrpdr"
+ - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Ethip4Udp-Ip4Base-Iacl50Sf-10Kflows-Ndrpdr.64B-2t1c-ethip4udp-ip4base-iacl50sf-10kflows-ndrpdr"
+ - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Ethip4Udp-Ip4Base-Iacl50Sl-10Kflows-Ndrpdr.64B-2t1c-ethip4udp-ip4base-iacl50sl-10kflows-ndrpdr"
+ - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Ethip4Udp-Ip4Base-Oacl50Sf-10Kflows-Ndrpdr.64B-2t1c-ethip4udp-ip4base-oacl50sf-10kflows-ndrpdr"
+ - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Ethip4Udp-Ip4Base-Oacl50Sl-10Kflows-Ndrpdr.64B-2t1c-ethip4udp-ip4base-oacl50sl-10kflows-ndrpdr"
+ - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-ethip4udp-nat44det-h1-p1-s1-Ndrpdr.64B-2t1c-ethip4udp-nat44det-h1-p1-s1-ndrpdr"
+ layout:
+ title: "2n-zn2-xxv710-64b-2t1c-features-ip4routing-base-dpdk-ndr"
+ layout: "plot-throughput"
+
+- type: "plot"
+ title: "Throughput: 2n-zn2-xxv710-64b-2t1c-features-ip4routing-base-dpdk-pdr"
+ algorithm: "plot_perf_box_name"
+ output-file: "{DIR[STATIC,VPP]}/2n-zn2-xxv710-64b-2t1c-features-ip4routing-base-dpdk-pdr"
+ data: "plot-vpp-throughput-lat-tsa-2n-zn2"
+ include:
+ - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Ethip4-Ip4Base-Ndrpdr.64B-2t1c-ethip4-ip4base-ndrpdr"
+ - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Ethip4Udp-Ip4Base-Iacl50Sf-10Kflows-Ndrpdr.64B-2t1c-ethip4udp-ip4base-iacl50sf-10kflows-ndrpdr"
+ - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Ethip4Udp-Ip4Base-Iacl50Sl-10Kflows-Ndrpdr.64B-2t1c-ethip4udp-ip4base-iacl50sl-10kflows-ndrpdr"
+ - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Ethip4Udp-Ip4Base-Oacl50Sf-10Kflows-Ndrpdr.64B-2t1c-ethip4udp-ip4base-oacl50sf-10kflows-ndrpdr"
+ - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Ethip4Udp-Ip4Base-Oacl50Sl-10Kflows-Ndrpdr.64B-2t1c-ethip4udp-ip4base-oacl50sl-10kflows-ndrpdr"
+ - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-ethip4udp-nat44det-h1-p1-s1-Ndrpdr.64B-2t1c-ethip4udp-nat44det-h1-p1-s1-ndrpdr"
+ layout:
+ title: "2n-zn2-xxv710-64b-2t1c-features-ip4routing-base-dpdk-pdr"
+ layout: "plot-throughput"
+
+- type: "plot"
+ title: "Throughput: 2n-zn2-cx556a-64b-2t1c-rdma-ip4base-ndr"
+ algorithm: "plot_perf_box_name"
+ output-file: "{DIR[STATIC,VPP]}/2n-zn2-cx556a-64b-2t1c-rdma-ip4base-ndr"
+ data: "plot-vpp-throughput-lat-tsa-2n-zn2"
+ include:
+ - "Tests.Vpp.Perf.Ip4.2N1L-100Ge2P1Cx556A-Rdma-Dot1Q-Ip4Base-Ndrpdr.64B-2t1c-rdma-dot1q-ip4base-ndrpdr"
+ - "Tests.Vpp.Perf.Ip4.2N1L-100Ge2P1Cx556A-Rdma-Ethip4-Ip4Base-Ndrpdr.64B-2t1c-rdma-ethip4-ip4base-ndrpdr"
+ layout:
+ title: "2n-zn2-cx556a-64b-2t1c-rdma-ip4base-ndr"
+ layout: "plot-throughput"
+
+- type: "plot"
+ title: "Throughput: 2n-zn2-cx556a-64b-2t1c-rdma-ip4base-pdr"
+ algorithm: "plot_perf_box_name"
+ output-file: "{DIR[STATIC,VPP]}/2n-zn2-cx556a-64b-2t1c-rdma-ip4base-pdr"
+ data: "plot-vpp-throughput-lat-tsa-2n-zn2"
+ include:
+ - "Tests.Vpp.Perf.Ip4.2N1L-100Ge2P1Cx556A-Rdma-Dot1Q-Ip4Base-Ndrpdr.64B-2t1c-rdma-dot1q-ip4base-ndrpdr"
+ - "Tests.Vpp.Perf.Ip4.2N1L-100Ge2P1Cx556A-Rdma-Ethip4-Ip4Base-Ndrpdr.64B-2t1c-rdma-ethip4-ip4base-ndrpdr"
+ layout:
+ title: "2n-zn2-cx556a-64b-2t1c-rdma-ip4base-pdr"
+ layout: "plot-throughput"
+
+- type: "plot"
+ title: "Throughput: 2n-zn2-cx556a-64b-2t1c-rdma-ethip4-ip4scale-ndr"
+ algorithm: "plot_perf_box_name"
+ output-file: "{DIR[STATIC,VPP]}/2n-zn2-cx556a-64b-2t1c-rdma-ethip4-ip4scale-ndr"
+ data: "plot-vpp-throughput-lat-tsa-2n-zn2"
+ include:
+ - "Tests.Vpp.Perf.Ip4.2N1L-100Ge2P1Cx556A-Rdma-Ethip4-Ip4Scale20K-Ndrpdr.64B-2t1c-rdma-ethip4-ip4scale20k-ndrpdr"
+ - "Tests.Vpp.Perf.Ip4.2N1L-100Ge2P1Cx556A-Rdma-Ethip4-Ip4Scale20K-Rnd-Ndrpdr.64B-2t1c-rdma-ethip4-ip4scale20k-rnd-ndrpdr"
+ - "Tests.Vpp.Perf.Ip4.2N1L-100Ge2P1Cx556A-Rdma-Ethip4-Ip4Scale200K-Ndrpdr.64B-2t1c-rdma-ethip4-ip4scale200k-ndrpdr"
+ - "Tests.Vpp.Perf.Ip4.2N1L-100Ge2P1Cx556A-Rdma-Ethip4-Ip4Scale200K-Rnd-Ndrpdr.64B-2t1c-rdma-ethip4-ip4scale200k-rnd-ndrpdr"
+ - "Tests.Vpp.Perf.Ip4.2N1L-100Ge2P1Cx556A-Rdma-Ethip4-Ip4Scale2M-Ndrpdr.64B-2t1c-rdma-ethip4-ip4scale2m-ndrpdr"
+ - "Tests.Vpp.Perf.Ip4.2N1L-100Ge2P1Cx556A-Rdma-Ethip4-Ip4Scale2M-Rnd-Ndrpdr.64B-2t1c-rdma-ethip4-ip4scale2m-rnd-ndrpdr"
+ layout:
+ title: "2n-zn2-cx556a-64b-2t1c-rdma-ethip4-ip4scale-ndr"
+ layout: "plot-throughput"
+
+- type: "plot"
+ title: "Throughput: 2n-zn2-cx556a-64b-2t1c-rdma-ethip4-ip4scale-pdr"
+ algorithm: "plot_perf_box_name"
+ output-file: "{DIR[STATIC,VPP]}/2n-zn2-cx556a-64b-2t1c-rdma-ethip4-ip4scale-pdr"
+ data: "plot-vpp-throughput-lat-tsa-2n-zn2"
+ include:
+ - "Tests.Vpp.Perf.Ip4.2N1L-100Ge2P1Cx556A-Rdma-Ethip4-Ip4Scale20K-Ndrpdr.64B-2t1c-rdma-ethip4-ip4scale20k-ndrpdr"
+ - "Tests.Vpp.Perf.Ip4.2N1L-100Ge2P1Cx556A-Rdma-Ethip4-Ip4Scale20K-Rnd-Ndrpdr.64B-2t1c-rdma-ethip4-ip4scale20k-rnd-ndrpdr"
+ - "Tests.Vpp.Perf.Ip4.2N1L-100Ge2P1Cx556A-Rdma-Ethip4-Ip4Scale200K-Ndrpdr.64B-2t1c-rdma-ethip4-ip4scale200k-ndrpdr"
+ - "Tests.Vpp.Perf.Ip4.2N1L-100Ge2P1Cx556A-Rdma-Ethip4-Ip4Scale200K-Rnd-Ndrpdr.64B-2t1c-rdma-ethip4-ip4scale200k-rnd-ndrpdr"
+ - "Tests.Vpp.Perf.Ip4.2N1L-100Ge2P1Cx556A-Rdma-Ethip4-Ip4Scale2M-Ndrpdr.64B-2t1c-rdma-ethip4-ip4scale2m-ndrpdr"
+ - "Tests.Vpp.Perf.Ip4.2N1L-100Ge2P1Cx556A-Rdma-Ethip4-Ip4Scale2M-Rnd-Ndrpdr.64B-2t1c-rdma-ethip4-ip4scale2m-rnd-ndrpdr"
+ layout:
+ title: "2n-zn2-cx556a-64b-2t1c-rdma-ethip4-ip4scale-pdr"
+ layout: "plot-throughput"
+
+- type: "plot"
+ title: "Throughput: 2n-zn2-cx556a-64b-2t1c-rdma-ethip4-features-ndr"
+ algorithm: "plot_perf_box_name"
+ output-file: "{DIR[STATIC,VPP]}/2n-zn2-cx556a-64b-2t1c-rdma-ethip4-features-ndr"
+ data: "plot-vpp-throughput-lat-tsa-2n-zn2"
+ include:
+ - "Tests.Vpp.Perf.Ip4.2N1L-100Ge2P1Cx556A-Rdma-Ethip4Udp-Ip4Base-Iacl50Sf-10Kflows-Ndrpdr.64B-2t1c-rdma-ethip4udp-ip4base-iacl50sf-10kflows-ndrpdr"
+ - "Tests.Vpp.Perf.Ip4.2N1L-100Ge2P1Cx556A-Rdma-Ethip4Udp-Ip4Base-Iacl50Sl-10Kflows-Ndrpdr.64B-2t1c-rdma-ethip4udp-ip4base-iacl50sl-10kflows-ndrpdr"
+ - "Tests.Vpp.Perf.Ip4.2N1L-100Ge2P1Cx556A-Rdma-Ethip4Udp-Ip4Base-Oacl50Sf-10Kflows-Ndrpdr.64B-2t1c-rdma-ethip4udp-ip4base-oacl50sf-10kflows-ndrpdr"
+ - "Tests.Vpp.Perf.Ip4.2N1L-100Ge2P1Cx556A-Rdma-Ethip4Udp-Ip4Base-Oacl50Sl-10Kflows-Ndrpdr.64B-2t1c-rdma-ethip4udp-ip4base-oacl50sl-10kflows-ndrpdr"
+ - "Tests.Vpp.Perf.Ip4.2N1L-100Ge2P1Cx556A-Rdma-ethip4udp-nat44det-h1-p1-s1-Ndrpdr.64B-2t1c-rdma-ethip4udp-nat44det-h1-p1-s1-ndrpdr"
+ - "Tests.Vpp.Perf.Ip4.2N1L-100Ge2P1Cx556A-Rdma-ethip4udp-nat44det-h1024-p63-s64512-Ndrpdr.64B-2t1c-rdma-ethip4udp-nat44det-h1024-p63-s64512-ndrpdr"
+ layout:
+ title: "2n-zn2-cx556a-64b-2t1c-rdma-ethip4-features-ndr"
+ layout: "plot-throughput"
+
+- type: "plot"
+ title: "Throughput: 2n-zn2-cx556a-64b-2t1c-rdma-ethip4-features-pdr"
+ algorithm: "plot_perf_box_name"
+ output-file: "{DIR[STATIC,VPP]}/2n-zn2-cx556a-64b-2t1c-rdma-ethip4-features-pdr"
+ data: "plot-vpp-throughput-lat-tsa-2n-zn2"
+ include:
+ - "Tests.Vpp.Perf.Ip4.2N1L-100Ge2P1Cx556A-Rdma-Ethip4Udp-Ip4Base-Iacl50Sf-10Kflows-Ndrpdr.64B-2t1c-rdma-ethip4udp-ip4base-iacl50sf-10kflows-ndrpdr"
+ - "Tests.Vpp.Perf.Ip4.2N1L-100Ge2P1Cx556A-Rdma-Ethip4Udp-Ip4Base-Iacl50Sl-10Kflows-Ndrpdr.64B-2t1c-rdma-ethip4udp-ip4base-iacl50sl-10kflows-ndrpdr"
+ - "Tests.Vpp.Perf.Ip4.2N1L-100Ge2P1Cx556A-Rdma-Ethip4Udp-Ip4Base-Oacl50Sf-10Kflows-Ndrpdr.64B-2t1c-rdma-ethip4udp-ip4base-oacl50sf-10kflows-ndrpdr"
+ - "Tests.Vpp.Perf.Ip4.2N1L-100Ge2P1Cx556A-Rdma-Ethip4Udp-Ip4Base-Oacl50Sl-10Kflows-Ndrpdr.64B-2t1c-rdma-ethip4udp-ip4base-oacl50sl-10kflows-ndrpdr"
+ - "Tests.Vpp.Perf.Ip4.2N1L-100Ge2P1Cx556A-Rdma-ethip4udp-nat44det-h1-p1-s1-Ndrpdr.64B-2t1c-rdma-ethip4udp-nat44det-h1-p1-s1-ndrpdr"
+ - "Tests.Vpp.Perf.Ip4.2N1L-100Ge2P1Cx556A-Rdma-ethip4udp-nat44det-h1024-p63-s64512-Ndrpdr.64B-2t1c-rdma-ethip4udp-nat44det-h1024-p63-s64512-ndrpdr"
+ layout:
+ title: "2n-zn2-cx556a-64b-2t1c-rdma-ethip4-features-pdr"
+ layout: "plot-throughput"
+
+- type: "plot"
+ title: "Throughput: 2n-zn2-x710-78b-2t1c-ip6routing-base-scale-[avf,dpdk]-ndr"
+ algorithm: "plot_perf_box_name"
+ output-file: "{DIR[STATIC,VPP]}/2n-zn2-x710-78b-2t1c-ip6routing-base-scale-[avf,dpdk]-ndr"
+ data: "plot-vpp-throughput-lat-tsa-2n-zn2"
+ include:
+ - "Tests.Vpp.Perf.Ip6.2N1L-10Ge2P1X710-Avf-Dot1Q-Ip6Base-Ndrpdr.78B-2t1c-avf-dot1q-ip6base-ndrpdr"
+ - "Tests.Vpp.Perf.Ip6.2N1L-10Ge2P1X710-Avf-Ethip6-Ip6Base-Ndrpdr.78B-2t1c-avf-ethip6-ip6base-ndrpdr"
+ - "Tests.Vpp.Perf.Ip6.2N1L-10Ge2P1X710-Avf-Ethip6-Ip6Scale2M-Ndrpdr.78B-2t1c-avf-ethip6-ip6scale2m-ndrpdr"
+ - "Tests.Vpp.Perf.Ip6.2N1L-10Ge2P1X710-Dot1Q-Ip6Base-Ndrpdr.78B-2t1c-dot1q-ip6base-ndrpdr"
+ - "Tests.Vpp.Perf.Ip6.2N1L-10Ge2P1X710-Ethip6-Ip6Base-Ndrpdr.78B-2t1c-ethip6-ip6base-ndrpdr"
+ - "Tests.Vpp.Perf.Ip6.2N1L-10Ge2P1X710-Ethip6-Ip6Scale2M-Ndrpdr.78B-2t1c-ethip6-ip6scale2m-ndrpdr"
+ layout:
+ title: "2n-zn2-x710-78b-2t1c-ip6routing-base-scale-[avf,dpdk]-ndr"
+ layout: "plot-throughput"
+
+- type: "plot"
+ title: "Throughput: 2n-zn2-x710-78b-2t1c-ip6routing-base-scale-[avf,dpdk]-pdr"
+ algorithm: "plot_perf_box_name"
+ output-file: "{DIR[STATIC,VPP]}/2n-zn2-x710-78b-2t1c-ip6routing-base-scale-[avf,dpdk]-pdr"
+ data: "plot-vpp-throughput-lat-tsa-2n-zn2"
+ include:
+ - "Tests.Vpp.Perf.Ip6.2N1L-10Ge2P1X710-Avf-Dot1Q-Ip6Base-Ndrpdr.78B-2t1c-avf-dot1q-ip6base-ndrpdr"
+ - "Tests.Vpp.Perf.Ip6.2N1L-10Ge2P1X710-Avf-Ethip6-Ip6Base-Ndrpdr.78B-2t1c-avf-ethip6-ip6base-ndrpdr"
+ - "Tests.Vpp.Perf.Ip6.2N1L-10Ge2P1X710-Avf-Ethip6-Ip6Scale2M-Ndrpdr.78B-2t1c-avf-ethip6-ip6scale2m-ndrpdr"
+ - "Tests.Vpp.Perf.Ip6.2N1L-10Ge2P1X710-Dot1Q-Ip6Base-Ndrpdr.78B-2t1c-dot1q-ip6base-ndrpdr"
+ - "Tests.Vpp.Perf.Ip6.2N1L-10Ge2P1X710-Ethip6-Ip6Base-Ndrpdr.78B-2t1c-ethip6-ip6base-ndrpdr"
+ - "Tests.Vpp.Perf.Ip6.2N1L-10Ge2P1X710-Ethip6-Ip6Scale2M-Ndrpdr.78B-2t1c-ethip6-ip6scale2m-ndrpdr"
+ layout:
+ title: "2n-zn2-x710-78b-2t1c-ip6routing-base-scale-[avf,dpdk]-pdr"
+ layout: "plot-throughput"
+
+- type: "plot"
+ title: "Throughput: 2n-zn2-xxv710-78b-2t1c-ip6routing-base-scale-avf-ndr"
+ algorithm: "plot_perf_box_name"
+ output-file: "{DIR[STATIC,VPP]}/2n-zn2-xxv710-78b-2t1c-ip6routing-base-scale-avf-ndr"
+ data: "plot-vpp-throughput-lat-tsa-2n-zn2"
+ include:
+ - "Tests.Vpp.Perf.Ip6.2N1L-25Ge2P1Xxv710-Avf-Dot1Q-Ip6Base-Ndrpdr.78B-2t1c-avf-dot1q-ip6base-ndrpdr"
+ - "Tests.Vpp.Perf.Ip6.2N1L-25Ge2P1Xxv710-Avf-Ethip6-Ip6Base-Ndrpdr.78B-2t1c-avf-ethip6-ip6base-ndrpdr"
+ - "Tests.Vpp.Perf.Ip6.2N1L-25Ge2P1Xxv710-Avf-Ethip6-Ip6Scale20K-Ndrpdr.78B-2t1c-avf-ethip6-ip6scale20k-ndrpdr"
+ - "Tests.Vpp.Perf.Ip6.2N1L-25Ge2P1Xxv710-Avf-Ethip6-Ip6Scale200K-Ndrpdr.78B-2t1c-avf-ethip6-ip6scale200k-ndrpdr"
+ - "Tests.Vpp.Perf.Ip6.2N1L-25Ge2P1Xxv710-Avf-Ethip6-Ip6Scale2M-Ndrpdr.78B-2t1c-avf-ethip6-ip6scale2m-ndrpdr"
+ layout:
+ title: "2n-zn2-xxv710-78b-2t1c-ip6routing-base-scale-avf-ndr"
+ layout: "plot-throughput"
+
+- type: "plot"
+ title: "Throughput: 2n-zn2-xxv710-78b-2t1c-ip6routing-base-scale-avf-pdr"
+ algorithm: "plot_perf_box_name"
+ output-file: "{DIR[STATIC,VPP]}/2n-zn2-xxv710-78b-2t1c-ip6routing-base-scale-avf-pdr"
+ data: "plot-vpp-throughput-lat-tsa-2n-zn2"
+ include:
+ - "Tests.Vpp.Perf.Ip6.2N1L-25Ge2P1Xxv710-Avf-Dot1Q-Ip6Base-Ndrpdr.78B-2t1c-avf-dot1q-ip6base-ndrpdr"
+ - "Tests.Vpp.Perf.Ip6.2N1L-25Ge2P1Xxv710-Avf-Ethip6-Ip6Base-Ndrpdr.78B-2t1c-avf-ethip6-ip6base-ndrpdr"
+ - "Tests.Vpp.Perf.Ip6.2N1L-25Ge2P1Xxv710-Avf-Ethip6-Ip6Scale20K-Ndrpdr.78B-2t1c-avf-ethip6-ip6scale20k-ndrpdr"
+ - "Tests.Vpp.Perf.Ip6.2N1L-25Ge2P1Xxv710-Avf-Ethip6-Ip6Scale200K-Ndrpdr.78B-2t1c-avf-ethip6-ip6scale200k-ndrpdr"
+ - "Tests.Vpp.Perf.Ip6.2N1L-25Ge2P1Xxv710-Avf-Ethip6-Ip6Scale2M-Ndrpdr.78B-2t1c-avf-ethip6-ip6scale2m-ndrpdr"
+ layout:
+ title: "2n-zn2-xxv710-78b-2t1c-ip6routing-base-scale-avf-pdr"
+ layout: "plot-throughput"
+
+- type: "plot"
+ title: "Throughput: 2n-zn2-xxv710-78b-2t1c-ip6routing-base-scale-dpdk-ndr"
+ algorithm: "plot_perf_box_name"
+ output-file: "{DIR[STATIC,VPP]}/2n-zn2-xxv710-78b-2t1c-ip6routing-base-scale-dpdk-ndr"
+ data: "plot-vpp-throughput-lat-tsa-2n-zn2"
+ include:
+ - "Tests.Vpp.Perf.Ip6.2N1L-25Ge2P1Xxv710-Dot1Q-Ip6Base-Ndrpdr.78B-2t1c-dot1q-ip6base-ndrpdr"
+ - "Tests.Vpp.Perf.Ip6.2N1L-25Ge2P1Xxv710-Ethip6-Ip6Base-Ndrpdr.78B-2t1c-ethip6-ip6base-ndrpdr"
+ - "Tests.Vpp.Perf.Ip6.2N1L-25Ge2P1Xxv710-Ethip6-Ip6Scale20K-Ndrpdr.78B-2t1c-ethip6-ip6scale20k-ndrpdr"
+ - "Tests.Vpp.Perf.Ip6.2N1L-25Ge2P1Xxv710-Ethip6-Ip6Scale200K-Ndrpdr.78B-2t1c-ethip6-ip6scale200k-ndrpdr"
+ - "Tests.Vpp.Perf.Ip6.2N1L-25Ge2P1Xxv710-Ethip6-Ip6Scale2M-Ndrpdr.78B-2t1c-ethip6-ip6scale2m-ndrpdr"
+ layout:
+ title: "2n-zn2-xxv710-78b-2t1c-ip6routing-base-scale-dpdk-ndr"
+ layout: "plot-throughput"
+
+- type: "plot"
+ title: "Throughput: 2n-zn2-xxv710-78b-2t1c-ip6routing-base-scale-dpdk-pdr"
+ algorithm: "plot_perf_box_name"
+ output-file: "{DIR[STATIC,VPP]}/2n-zn2-xxv710-78b-2t1c-ip6routing-base-scale-dpdk-pdr"
+ data: "plot-vpp-throughput-lat-tsa-2n-zn2"
+ include:
+ - "Tests.Vpp.Perf.Ip6.2N1L-25Ge2P1Xxv710-Dot1Q-Ip6Base-Ndrpdr.78B-2t1c-dot1q-ip6base-ndrpdr"
+ - "Tests.Vpp.Perf.Ip6.2N1L-25Ge2P1Xxv710-Ethip6-Ip6Base-Ndrpdr.78B-2t1c-ethip6-ip6base-ndrpdr"
+ - "Tests.Vpp.Perf.Ip6.2N1L-25Ge2P1Xxv710-Ethip6-Ip6Scale20K-Ndrpdr.78B-2t1c-ethip6-ip6scale20k-ndrpdr"
+ - "Tests.Vpp.Perf.Ip6.2N1L-25Ge2P1Xxv710-Ethip6-Ip6Scale200K-Ndrpdr.78B-2t1c-ethip6-ip6scale200k-ndrpdr"
+ - "Tests.Vpp.Perf.Ip6.2N1L-25Ge2P1Xxv710-Ethip6-Ip6Scale2M-Ndrpdr.78B-2t1c-ethip6-ip6scale2m-ndrpdr"
+ layout:
+ title: "2n-zn2-xxv710-78b-2t1c-ip6routing-base-scale-dpdk-pdr"
+ layout: "plot-throughput"
+
+- type: "plot"
+ title: "Throughput: 2n-zn2-cx556a-78b-2t1c-rdma-ip6routing-base-scale-ndr"
+ algorithm: "plot_perf_box_name"
+ output-file: "{DIR[STATIC,VPP]}/2n-zn2-cx556a-78b-2t1c-rdma-ip6routing-base-scale-ndr"
+ data: "plot-vpp-throughput-lat-tsa-2n-zn2"
+ include:
+ - "Tests.Vpp.Perf.Ip6.2N1L-100Ge2P1Cx556A-Rdma-Dot1Q-Ip6Base-Ndrpdr.78B-2t1c-rdma-dot1q-ip6base-ndrpdr"
+ - "Tests.Vpp.Perf.Ip6.2N1L-100Ge2P1Cx556A-Rdma-Ethip6-Ip6Base-Ndrpdr.78B-2t1c-rdma-ethip6-ip6base-ndrpdr"
+ - "Tests.Vpp.Perf.Ip6.2N1L-100Ge2P1Cx556A-Rdma-Ethip6-Ip6Scale20K-Ndrpdr.78B-2t1c-rdma-ethip6-ip6scale20k-ndrpdr"
+ - "Tests.Vpp.Perf.Ip6.2N1L-100Ge2P1Cx556A-Rdma-Ethip6-Ip6Scale200K-Ndrpdr.78B-2t1c-rdma-ethip6-ip6scale200k-ndrpdr"
+ - "Tests.Vpp.Perf.Ip6.2N1L-100Ge2P1Cx556A-Rdma-Ethip6-Ip6Scale2M-Ndrpdr.78B-2t1c-rdma-ethip6-ip6scale2m-ndrpdr"
+ layout:
+ title: "2n-zn2-cx556a-78b-2t1c-rdma-ip6routing-base-scale-ndr"
+ layout: "plot-throughput"
+
+- type: "plot"
+ title: "Throughput: 2n-zn2-cx556a-78b-2t1c-rdma-ip6routing-base-scale-pdr"
+ algorithm: "plot_perf_box_name"
+ output-file: "{DIR[STATIC,VPP]}/2n-zn2-cx556a-78b-2t1c-rdma-ip6routing-base-scale-pdr"
+ data: "plot-vpp-throughput-lat-tsa-2n-zn2"
+ include:
+ - "Tests.Vpp.Perf.Ip6.2N1L-100Ge2P1Cx556A-Rdma-Dot1Q-Ip6Base-Ndrpdr.78B-2t1c-rdma-dot1q-ip6base-ndrpdr"
+ - "Tests.Vpp.Perf.Ip6.2N1L-100Ge2P1Cx556A-Rdma-Ethip6-Ip6Base-Ndrpdr.78B-2t1c-rdma-ethip6-ip6base-ndrpdr"
+ - "Tests.Vpp.Perf.Ip6.2N1L-100Ge2P1Cx556A-Rdma-Ethip6-Ip6Scale20K-Ndrpdr.78B-2t1c-rdma-ethip6-ip6scale20k-ndrpdr"
+ - "Tests.Vpp.Perf.Ip6.2N1L-100Ge2P1Cx556A-Rdma-Ethip6-Ip6Scale200K-Ndrpdr.78B-2t1c-rdma-ethip6-ip6scale200k-ndrpdr"
+ - "Tests.Vpp.Perf.Ip6.2N1L-100Ge2P1Cx556A-Rdma-Ethip6-Ip6Scale2M-Ndrpdr.78B-2t1c-rdma-ethip6-ip6scale2m-ndrpdr"
+ layout:
+ title: "2n-zn2-cx556a-78b-2t1c-rdma-ip6routing-base-scale-pdr"
+ layout: "plot-throughput"
+
+- type: "plot"
+ title: "Throughput: 2n-zn2-x710-64b-2t1c-l2switching-base-scale-avf-ndr"
+ algorithm: "plot_perf_box_name"
+ output-file: "{DIR[STATIC,VPP]}/2n-zn2-x710-64b-2t1c-l2switching-base-scale-avf-ndr"
+ data: "plot-vpp-throughput-lat-tsa-2n-zn2"
+ include:
+ - "Tests.Vpp.Perf.L2.2N1L-10Ge2P1X710-Avf-Dot1Q-L2Bdbasemaclrn-Ndrpdr.64B-2t1c-avf-dot1q-l2bdbasemaclrn-ndrpdr"
+ - "Tests.Vpp.Perf.L2.2N1L-10Ge2P1X710-Avf-Eth-L2Patch-Ndrpdr.64B-2t1c-avf-eth-l2patch-ndrpdr"
+ - "Tests.Vpp.Perf.L2.2N1L-10Ge2P1X710-Avf-Eth-L2Xcbase-Ndrpdr.64B-2t1c-avf-eth-l2xcbase-ndrpdr"
+ - "Tests.Vpp.Perf.L2.2N1L-10Ge2P1X710-Avf-Eth-L2Bdbasemaclrn-Ndrpdr.64B-2t1c-avf-eth-l2bdbasemaclrn-ndrpdr"
+ - "Tests.Vpp.Perf.L2.2N1L-10Ge2P1X710-Avf-Eth-L2Bdscale1Mmaclrn-Ndrpdr.64B-2t1c-avf-eth-l2bdscale1mmaclrn-ndrpdr"
+ layout:
+ title: "2n-zn2-x710-64b-2t1c-l2switching-base-scale-avf-ndr"
+ layout: "plot-throughput"
+
+- type: "plot"
+ title: "Throughput: 2n-zn2-x710-64b-2t1c-l2switching-base-scale-avf-pdr"
+ algorithm: "plot_perf_box_name"
+ output-file: "{DIR[STATIC,VPP]}/2n-zn2-x710-64b-2t1c-l2switching-base-scale-avf-pdr"
+ data: "plot-vpp-throughput-lat-tsa-2n-zn2"
+ include:
+ - "Tests.Vpp.Perf.L2.2N1L-10Ge2P1X710-Avf-Dot1Q-L2Bdbasemaclrn-Ndrpdr.64B-2t1c-avf-dot1q-l2bdbasemaclrn-ndrpdr"
+ - "Tests.Vpp.Perf.L2.2N1L-10Ge2P1X710-Avf-Eth-L2Patch-Ndrpdr.64B-2t1c-avf-eth-l2patch-ndrpdr"
+ - "Tests.Vpp.Perf.L2.2N1L-10Ge2P1X710-Avf-Eth-L2Xcbase-Ndrpdr.64B-2t1c-avf-eth-l2xcbase-ndrpdr"
+ - "Tests.Vpp.Perf.L2.2N1L-10Ge2P1X710-Avf-Eth-L2Bdbasemaclrn-Ndrpdr.64B-2t1c-avf-eth-l2bdbasemaclrn-ndrpdr"
+ - "Tests.Vpp.Perf.L2.2N1L-10Ge2P1X710-Avf-Eth-L2Bdscale1Mmaclrn-Ndrpdr.64B-2t1c-avf-eth-l2bdscale1mmaclrn-ndrpdr"
+ layout:
+ title: "2n-zn2-x710-64b-2t1c-l2switching-base-scale-avf-pdr"
+ layout: "plot-throughput"
+
+- type: "plot"
+ title: "Throughput: 2n-zn2-x710-64b-2t1c-l2switching-base-scale-dpdk-ndr"
+ algorithm: "plot_perf_box_name"
+ output-file: "{DIR[STATIC,VPP]}/2n-zn2-x710-64b-2t1c-l2switching-base-scale-dpdk-ndr"
+ data: "plot-vpp-throughput-lat-tsa-2n-zn2"
+ include:
+ - "Tests.Vpp.Perf.L2.2N1L-10Ge2P1X710-Dot1Q-L2Bdbasemaclrn-Ndrpdr.64B-2t1c-dot1q-l2bdbasemaclrn-ndrpdr"
+ - "Tests.Vpp.Perf.L2.2N1L-10Ge2P1X710-Eth-L2Patch-Ndrpdr.64B-2t1c-eth-l2patch-ndrpdr"
+ - "Tests.Vpp.Perf.L2.2N1L-10Ge2P1X710-Eth-L2Xcbase-Ndrpdr.64B-2t1c-eth-l2xcbase-ndrpdr"
+ - "Tests.Vpp.Perf.L2.2N1L-10Ge2P1X710-Eth-L2Bdbasemaclrn-Ndrpdr.64B-2t1c-eth-l2bdbasemaclrn-ndrpdr"
+ - "Tests.Vpp.Perf.L2.2N1L-10Ge2P1X710-Eth-L2Bdscale1Mmaclrn-Ndrpdr.64B-2t1c-eth-l2bdscale1mmaclrn-ndrpdr"
+ layout:
+ title: "2n-zn2-x710-64b-2t1c-l2switching-base-scale-dpdk-ndr"
+ layout: "plot-throughput"
+
+- type: "plot"
+ title: "Throughput: 2n-zn2-x710-64b-2t1c-l2switching-base-scale-dpdk-pdr"
+ algorithm: "plot_perf_box_name"
+ output-file: "{DIR[STATIC,VPP]}/2n-zn2-x710-64b-2t1c-l2switching-base-scale-dpdk-pdr"
+ data: "plot-vpp-throughput-lat-tsa-2n-zn2"
+ include:
+ - "Tests.Vpp.Perf.L2.2N1L-10Ge2P1X710-Dot1Q-L2Bdbasemaclrn-Ndrpdr.64B-2t1c-dot1q-l2bdbasemaclrn-ndrpdr"
+ - "Tests.Vpp.Perf.L2.2N1L-10Ge2P1X710-Eth-L2Patch-Ndrpdr.64B-2t1c-eth-l2patch-ndrpdr"
+ - "Tests.Vpp.Perf.L2.2N1L-10Ge2P1X710-Eth-L2Xcbase-Ndrpdr.64B-2t1c-eth-l2xcbase-ndrpdr"
+ - "Tests.Vpp.Perf.L2.2N1L-10Ge2P1X710-Eth-L2Bdbasemaclrn-Ndrpdr.64B-2t1c-eth-l2bdbasemaclrn-ndrpdr"
+ - "Tests.Vpp.Perf.L2.2N1L-10Ge2P1X710-Eth-L2Bdscale1Mmaclrn-Ndrpdr.64B-2t1c-eth-l2bdscale1mmaclrn-ndrpdr"
+ layout:
+ title: "2n-zn2-x710-64b-2t1c-l2switching-base-scale-dpdk-pdr"
+ layout: "plot-throughput"
+
+- type: "plot"
+ title: "Throughput: 2n-zn2-xxv710-64b-2t1c-l2switching-base-avf-ndr"
+ algorithm: "plot_perf_box_name"
+ output-file: "{DIR[STATIC,VPP]}/2n-zn2-xxv710-64b-2t1c-l2switching-base-avf-ndr"
+ data: "plot-vpp-throughput-lat-tsa-2n-zn2"
+ include:
+ - "Tests.Vpp.Perf.L2.2N1L-25Ge2P1Xxv710-Avf-Dot1Q-L2Xcbase-Ndrpdr.64B-2t1c-avf-dot1q-l2xcbase-ndrpdr"
+ - "Tests.Vpp.Perf.L2.2N1L-25Ge2P1Xxv710-Avf-Dot1Q-L2Bdbasemaclrn-Ndrpdr.64B-2t1c-avf-dot1q-l2bdbasemaclrn-ndrpdr"
+ - "Tests.Vpp.Perf.L2.2N1L-25Ge2P1Xxv710-Avf-Dot1Q-L2Bdbasemaclrn-Gbp-Ndrpdr.64B-2t1c-avf-dot1q-l2bdbasemaclrn-gbp-ndrpdr"
+ - "Tests.Vpp.Perf.L2.2N1L-25Ge2P1Xxv710-Avf-Eth-L2Patch-Ndrpdr.64B-2t1c-avf-eth-l2patch-ndrpdr"
+ - "Tests.Vpp.Perf.L2.2N1L-25Ge2P1Xxv710-Avf-Eth-L2Xcbase-Ndrpdr.64B-2t1c-avf-eth-l2xcbase-ndrpdr"
+ - "Tests.Vpp.Perf.L2.2N1L-25Ge2P1Xxv710-Avf-Eth-L2Bdbasemaclrn-Ndrpdr.64B-2t1c-avf-eth-l2bdbasemaclrn-ndrpdr"
+ layout:
+ title: "2n-zn2-xxv710-64b-2t1c-l2switching-base-avf-ndr"
+ layout: "plot-throughput"
+
+- type: "plot"
+ title: "Throughput: 2n-zn2-xxv710-64b-2t1c-l2switching-base-avf-pdr"
+ algorithm: "plot_perf_box_name"
+ output-file: "{DIR[STATIC,VPP]}/2n-zn2-xxv710-64b-2t1c-l2switching-base-avf-pdr"
+ data: "plot-vpp-throughput-lat-tsa-2n-zn2"
+ include:
+ - "Tests.Vpp.Perf.L2.2N1L-25Ge2P1Xxv710-Avf-Dot1Q-L2Xcbase-Ndrpdr.64B-2t1c-avf-dot1q-l2xcbase-ndrpdr"
+ - "Tests.Vpp.Perf.L2.2N1L-25Ge2P1Xxv710-Avf-Dot1Q-L2Bdbasemaclrn-Ndrpdr.64B-2t1c-avf-dot1q-l2bdbasemaclrn-ndrpdr"
+ - "Tests.Vpp.Perf.L2.2N1L-25Ge2P1Xxv710-Avf-Dot1Q-L2Bdbasemaclrn-Gbp-Ndrpdr.64B-2t1c-avf-dot1q-l2bdbasemaclrn-gbp-ndrpdr"
+ - "Tests.Vpp.Perf.L2.2N1L-25Ge2P1Xxv710-Avf-Eth-L2Patch-Ndrpdr.64B-2t1c-avf-eth-l2patch-ndrpdr"
+ - "Tests.Vpp.Perf.L2.2N1L-25Ge2P1Xxv710-Avf-Eth-L2Xcbase-Ndrpdr.64B-2t1c-avf-eth-l2xcbase-ndrpdr"
+ - "Tests.Vpp.Perf.L2.2N1L-25Ge2P1Xxv710-Avf-Eth-L2Bdbasemaclrn-Ndrpdr.64B-2t1c-avf-eth-l2bdbasemaclrn-ndrpdr"
+ layout:
+ title: "2n-zn2-xxv710-64b-2t1c-l2switching-base-avf-pdr"
+ layout: "plot-throughput"
+
+- type: "plot"
+ title: "Throughput: 2n-zn2-xxv710-64b-2t1c-l2switching-base-scale-avf-ndr"
+ algorithm: "plot_perf_box_name"
+ output-file: "{DIR[STATIC,VPP]}/2n-zn2-xxv710-64b-2t1c-l2switching-base-scale-avf-ndr"
+ data: "plot-vpp-throughput-lat-tsa-2n-zn2"
+ include:
+ - "Tests.Vpp.Perf.L2.2N1L-25Ge2P1Xxv710-Avf-Eth-L2Bdbasemaclrn-Ndrpdr.64B-2t1c-avf-eth-l2bdbasemaclrn-ndrpdr"
+ - "Tests.Vpp.Perf.L2.2N1L-25Ge2P1Xxv710-Avf-Eth-L2Bdscale10Kmaclrn-Ndrpdr.64B-2t1c-avf-eth-l2bdscale10kmaclrn-ndrpdr"
+ - "Tests.Vpp.Perf.L2.2N1L-25Ge2P1Xxv710-Avf-Eth-L2Bdscale100Kmaclrn-Ndrpdr.64B-2t1c-avf-eth-l2bdscale100kmaclrn-ndrpdr"
+ - "Tests.Vpp.Perf.L2.2N1L-25Ge2P1Xxv710-Avf-Eth-L2Bdscale1Mmaclrn-Ndrpdr.64B-2t1c-avf-eth-l2bdscale1mmaclrn-ndrpdr"
+ layout:
+ title: "2n-zn2-xxv710-64b-2t1c-l2switching-base-scale-avf-ndr"
+ layout: "plot-throughput"
+
+- type: "plot"
+ title: "Throughput: 2n-zn2-xxv710-64b-2t1c-l2switching-base-scale-avf-pdr"
+ algorithm: "plot_perf_box_name"
+ output-file: "{DIR[STATIC,VPP]}/2n-zn2-xxv710-64b-2t1c-l2switching-base-scale-avf-pdr"
+ data: "plot-vpp-throughput-lat-tsa-2n-zn2"
+ include:
+ - "Tests.Vpp.Perf.L2.2N1L-25Ge2P1Xxv710-Avf-Eth-L2Bdbasemaclrn-Ndrpdr.64B-2t1c-avf-eth-l2bdbasemaclrn-ndrpdr"
+ - "Tests.Vpp.Perf.L2.2N1L-25Ge2P1Xxv710-Avf-Eth-L2Bdscale10Kmaclrn-Ndrpdr.64B-2t1c-avf-eth-l2bdscale10kmaclrn-ndrpdr"
+ - "Tests.Vpp.Perf.L2.2N1L-25Ge2P1Xxv710-Avf-Eth-L2Bdscale100Kmaclrn-Ndrpdr.64B-2t1c-avf-eth-l2bdscale100kmaclrn-ndrpdr"
+ - "Tests.Vpp.Perf.L2.2N1L-25Ge2P1Xxv710-Avf-Eth-L2Bdscale1Mmaclrn-Ndrpdr.64B-2t1c-avf-eth-l2bdscale1mmaclrn-ndrpdr"
+ layout:
+ title: "2n-zn2-xxv710-64b-2t1c-l2switching-base-scale-avf-pdr"
+ layout: "plot-throughput"
+
+- type: "plot"
+ title: "Throughput: 2n-zn2-xxv710-64b-2t1c-l2switching-base-dpdk-ndr"
+ algorithm: "plot_perf_box_name"
+ output-file: "{DIR[STATIC,VPP]}/2n-zn2-xxv710-64b-2t1c-l2switching-base-dpdk-ndr"
+ data: "plot-vpp-throughput-lat-tsa-2n-zn2"
+ include:
+ - "Tests.Vpp.Perf.L2.2N1L-25Ge2P1Xxv710-Dot1Q-L2Xcbase-Ndrpdr.64B-2t1c-dot1q-l2xcbase-ndrpdr"
+ - "Tests.Vpp.Perf.L2.2N1L-25Ge2P1Xxv710-Dot1Q-L2Bdbasemaclrn-Ndrpdr.64B-2t1c-dot1q-l2bdbasemaclrn-ndrpdr"
+ - "Tests.Vpp.Perf.L2.2N1L-25Ge2P1Xxv710-Dot1Q-L2Bdbasemaclrn-Gbp-Ndrpdr.64B-2t1c-dot1q-l2bdbasemaclrn-gbp-ndrpdr"
+ - "Tests.Vpp.Perf.L2.2N1L-25Ge2P1Xxv710-Eth-L2Patch-Ndrpdr.64B-2t1c-eth-l2patch-ndrpdr"
+ - "Tests.Vpp.Perf.L2.2N1L-25Ge2P1Xxv710-Eth-L2Xcbase-Ndrpdr.64B-2t1c-eth-l2xcbase-ndrpdr"
+ - "Tests.Vpp.Perf.L2.2N1L-25Ge2P1Xxv710-Eth-L2Bdbasemaclrn-Ndrpdr.64B-2t1c-eth-l2bdbasemaclrn-ndrpdr"
+ layout:
+ title: "2n-zn2-xxv710-64b-2t1c-l2switching-base-dpdk-ndr"
+ layout: "plot-throughput"
+
+- type: "plot"
+ title: "Throughput: 2n-zn2-xxv710-64b-2t1c-l2switching-base-dpdk-pdr"
+ algorithm: "plot_perf_box_name"
+ output-file: "{DIR[STATIC,VPP]}/2n-zn2-xxv710-64b-2t1c-l2switching-base-dpdk-pdr"
+ data: "plot-vpp-throughput-lat-tsa-2n-zn2"
+ include:
+ - "Tests.Vpp.Perf.L2.2N1L-25Ge2P1Xxv710-Dot1Q-L2Xcbase-Ndrpdr.64B-2t1c-dot1q-l2xcbase-ndrpdr"
+ - "Tests.Vpp.Perf.L2.2N1L-25Ge2P1Xxv710-Dot1Q-L2Bdbasemaclrn-Ndrpdr.64B-2t1c-dot1q-l2bdbasemaclrn-ndrpdr"
+ - "Tests.Vpp.Perf.L2.2N1L-25Ge2P1Xxv710-Dot1Q-L2Bdbasemaclrn-Gbp-Ndrpdr.64B-2t1c-dot1q-l2bdbasemaclrn-gbp-ndrpdr"
+ - "Tests.Vpp.Perf.L2.2N1L-25Ge2P1Xxv710-Eth-L2Patch-Ndrpdr.64B-2t1c-eth-l2patch-ndrpdr"
+ - "Tests.Vpp.Perf.L2.2N1L-25Ge2P1Xxv710-Eth-L2Xcbase-Ndrpdr.64B-2t1c-eth-l2xcbase-ndrpdr"
+ - "Tests.Vpp.Perf.L2.2N1L-25Ge2P1Xxv710-Eth-L2Bdbasemaclrn-Ndrpdr.64B-2t1c-eth-l2bdbasemaclrn-ndrpdr"
+ layout:
+ title: "2n-zn2-xxv710-64b-2t1c-l2switching-base-dpdk-pdr"
+ layout: "plot-throughput"
+
+- type: "plot"
+ title: "Throughput: 2n-zn2-xxv710-64b-2t1c-l2switching-base-scale-dpdk-ndr"
+ algorithm: "plot_perf_box_name"
+ output-file: "{DIR[STATIC,VPP]}/2n-zn2-xxv710-64b-2t1c-l2switching-base-scale-dpdk-ndr"
+ data: "plot-vpp-throughput-lat-tsa-2n-zn2"
+ include:
+ - "Tests.Vpp.Perf.L2.2N1L-25Ge2P1Xxv710-Eth-L2Bdbasemaclrn-Ndrpdr.64B-2t1c-eth-l2bdbasemaclrn-ndrpdr"
+ - "Tests.Vpp.Perf.L2.2N1L-25Ge2P1Xxv710-Eth-L2Bdscale10Kmaclrn-Ndrpdr.64B-2t1c-eth-l2bdscale10kmaclrn-ndrpdr"
+ - "Tests.Vpp.Perf.L2.2N1L-25Ge2P1Xxv710-Eth-L2Bdscale100Kmaclrn-Ndrpdr.64B-2t1c-eth-l2bdscale100kmaclrn-ndrpdr"
+ - "Tests.Vpp.Perf.L2.2N1L-25Ge2P1Xxv710-Eth-L2Bdscale1Mmaclrn-Ndrpdr.64B-2t1c-eth-l2bdscale1mmaclrn-ndrpdr"
+ layout:
+ title: "2n-zn2-xxv710-64b-2t1c-l2switching-base-scale-dpdk-ndr"
+ layout: "plot-throughput"
+
+- type: "plot"
+ title: "Throughput: 2n-zn2-xxv710-64b-2t1c-l2switching-base-scale-dpdk-pdr"
+ algorithm: "plot_perf_box_name"
+ output-file: "{DIR[STATIC,VPP]}/2n-zn2-xxv710-64b-2t1c-l2switching-base-scale-dpdk-pdr"
+ data: "plot-vpp-throughput-lat-tsa-2n-zn2"
+ include:
+ - "Tests.Vpp.Perf.L2.2N1L-25Ge2P1Xxv710-Eth-L2Bdbasemaclrn-Ndrpdr.64B-2t1c-eth-l2bdbasemaclrn-ndrpdr"
+ - "Tests.Vpp.Perf.L2.2N1L-25Ge2P1Xxv710-Eth-L2Bdscale10Kmaclrn-Ndrpdr.64B-2t1c-eth-l2bdscale10kmaclrn-ndrpdr"
+ - "Tests.Vpp.Perf.L2.2N1L-25Ge2P1Xxv710-Eth-L2Bdscale100Kmaclrn-Ndrpdr.64B-2t1c-eth-l2bdscale100kmaclrn-ndrpdr"
+ - "Tests.Vpp.Perf.L2.2N1L-25Ge2P1Xxv710-Eth-L2Bdscale1Mmaclrn-Ndrpdr.64B-2t1c-eth-l2bdscale1mmaclrn-ndrpdr"
+ layout:
+ title: "2n-zn2-xxv710-64b-2t1c-l2switching-base-scale-dpdk-pdr"
+ layout: "plot-throughput"
+
+- type: "plot"
+ title: "Throughput: 2n-zn2-cx556a-64b-2t1c-rdma-l2switching-base-ndr"
+ algorithm: "plot_perf_box_name"
+ output-file: "{DIR[STATIC,VPP]}/2n-zn2-cx556a-64b-2t1c-rdma-l2switching-base-ndr"
+ data: "plot-vpp-throughput-lat-tsa-2n-zn2"
+ include:
+ - "Tests.Vpp.Perf.L2.2N1L-100Ge2P1Cx556A-Rdma-Dot1Q-L2Xcbase-Ndrpdr.64B-2t1c-rdma-dot1q-l2xcbase-ndrpdr"
+ - "Tests.Vpp.Perf.L2.2N1L-100Ge2P1Cx556A-Rdma-Dot1Q-L2Bdbasemaclrn-Ndrpdr.64B-2t1c-rdma-dot1q-l2bdbasemaclrn-ndrpdr"
+ - "Tests.Vpp.Perf.L2.2N1L-100Ge2P1Cx556A-Rdma-Dot1Q-L2Bdbasemaclrn-Gbp-Ndrpdr.64B-2t1c-rdma-dot1q-l2bdbasemaclrn-gbp-ndrpdr"
+ - "Tests.Vpp.Perf.L2.2N1L-100Ge2P1Cx556A-Rdma-Eth-L2Patch-Ndrpdr.64B-2t1c-rdma-eth-l2patch-ndrpdr"
+ - "Tests.Vpp.Perf.L2.2N1L-100Ge2P1Cx556A-Rdma-Eth-L2Xcbase-Ndrpdr.64B-2t1c-rdma-eth-l2xcbase-ndrpdr"
+ - "Tests.Vpp.Perf.L2.2N1L-100Ge2P1Cx556A-Rdma-Eth-L2Bdbasemaclrn-Ndrpdr.64B-2t1c-rdma-eth-l2bdbasemaclrn-ndrpdr"
+ layout:
+ title: "2n-zn2-cx556a-64b-2t1c-rdma-l2switching-base-ndr"
+ layout: "plot-throughput"
+
+- type: "plot"
+ title: "Throughput: 2n-zn2-cx556a-64b-2t1c-rdma-l2switching-base-pdr"
+ algorithm: "plot_perf_box_name"
+ output-file: "{DIR[STATIC,VPP]}/2n-zn2-cx556a-64b-2t1c-rdma-l2switching-base-pdr"
+ data: "plot-vpp-throughput-lat-tsa-2n-zn2"
+ include:
+ - "Tests.Vpp.Perf.L2.2N1L-100Ge2P1Cx556A-Rdma-Dot1Q-L2Xcbase-Ndrpdr.64B-2t1c-rdma-dot1q-l2xcbase-ndrpdr"
+ - "Tests.Vpp.Perf.L2.2N1L-100Ge2P1Cx556A-Rdma-Dot1Q-L2Bdbasemaclrn-Ndrpdr.64B-2t1c-rdma-dot1q-l2bdbasemaclrn-ndrpdr"
+ - "Tests.Vpp.Perf.L2.2N1L-100Ge2P1Cx556A-Rdma-Dot1Q-L2Bdbasemaclrn-Gbp-Ndrpdr.64B-2t1c-rdma-dot1q-l2bdbasemaclrn-gbp-ndrpdr"
+ - "Tests.Vpp.Perf.L2.2N1L-100Ge2P1Cx556A-Rdma-Eth-L2Patch-Ndrpdr.64B-2t1c-rdma-eth-l2patch-ndrpdr"
+ - "Tests.Vpp.Perf.L2.2N1L-100Ge2P1Cx556A-Rdma-Eth-L2Xcbase-Ndrpdr.64B-2t1c-rdma-eth-l2xcbase-ndrpdr"
+ - "Tests.Vpp.Perf.L2.2N1L-100Ge2P1Cx556A-Rdma-Eth-L2Bdbasemaclrn-Ndrpdr.64B-2t1c-rdma-eth-l2bdbasemaclrn-ndrpdr"
+ layout:
+ title: "2n-zn2-cx556a-64b-2t1c-rdma-l2switching-base-pdr"
+ layout: "plot-throughput"
+
+- type: "plot"
+ title: "Throughput: 2n-zn2-cx556a-64b-2t1c-rdma-l2switching-scale-ndr"
+ algorithm: "plot_perf_box_name"
+ output-file: "{DIR[STATIC,VPP]}/2n-zn2-cx556a-64b-2t1c-rdma-l2switching-scale-ndr"
+ data: "plot-vpp-throughput-lat-tsa-2n-zn2"
+ include:
+ - "Tests.Vpp.Perf.L2.2N1L-100Ge2P1Cx556A-Rdma-Eth-L2Bdbasemaclrn-Ndrpdr.64B-2t1c-rdma-eth-l2bdbasemaclrn-ndrpdr"
+ - "Tests.Vpp.Perf.L2.2N1L-100Ge2P1Cx556A-Rdma-Eth-L2Bdscale10Kmaclrn-Ndrpdr.64B-2t1c-rdma-eth-l2bdscale10kmaclrn-ndrpdr"
+ - "Tests.Vpp.Perf.L2.2N1L-100Ge2P1Cx556A-Rdma-Eth-L2Bdscale100Kmaclrn-Ndrpdr.64B-2t1c-rdma-eth-l2bdscale100kmaclrn-ndrpdr"
+ - "Tests.Vpp.Perf.L2.2N1L-100Ge2P1Cx556A-Rdma-Eth-L2Bdscale1Mmaclrn-Ndrpdr.64B-2t1c-rdma-eth-l2bdscale1mmaclrn-ndrpdr"
+ layout:
+ title: "2n-zn2-cx556a-64b-2t1c-rdma-l2switching-scale-ndr"
+ layout: "plot-throughput"
+
+- type: "plot"
+ title: "Throughput: 2n-zn2-cx556a-64b-2t1c-rdma-l2switching-scale-pdr"
+ algorithm: "plot_perf_box_name"
+ output-file: "{DIR[STATIC,VPP]}/2n-zn2-cx556a-64b-2t1c-rdma-l2switching-scale-pdr"
+ data: "plot-vpp-throughput-lat-tsa-2n-zn2"
+ include:
+ - "Tests.Vpp.Perf.L2.2N1L-100Ge2P1Cx556A-Rdma-Eth-L2Bdbasemaclrn-Ndrpdr.64B-2t1c-rdma-eth-l2bdbasemaclrn-ndrpdr"
+ - "Tests.Vpp.Perf.L2.2N1L-100Ge2P1Cx556A-Rdma-Eth-L2Bdscale10Kmaclrn-Ndrpdr.64B-2t1c-rdma-eth-l2bdscale10kmaclrn-ndrpdr"
+ - "Tests.Vpp.Perf.L2.2N1L-100Ge2P1Cx556A-Rdma-Eth-L2Bdscale100Kmaclrn-Ndrpdr.64B-2t1c-rdma-eth-l2bdscale100kmaclrn-ndrpdr"
+ - "Tests.Vpp.Perf.L2.2N1L-100Ge2P1Cx556A-Rdma-Eth-L2Bdscale1Mmaclrn-Ndrpdr.64B-2t1c-rdma-eth-l2bdscale1mmaclrn-ndrpdr"
+ layout:
+ title: "2n-zn2-cx556a-64b-2t1c-rdma-l2switching-scale-pdr"
+ layout: "plot-throughput"
+
+- type: "plot"
+ title: "Throughput: 2n-zn2-xxv710-64b-2t1c-vhost-base-avf-ndr"
+ algorithm: "plot_perf_box_name"
+ output-file: "{DIR[STATIC,VPP]}/2n-zn2-xxv710-64b-2t1c-vhost-base-avf-ndr"
+ data: "plot-vpp-throughput-lat-tsa-2n-zn2"
+ include:
+ - "Tests.Vpp.Perf.Vm Vhost.2N1L-25Ge2P1Xxv710-Avf-Dot1Q-L2Xcbase-Eth-2Vhostvr1024-1Vm-Ndrpdr.64B-2t1c-avf-dot1q-l2xcbase-eth-2vhostvr1024-1vm-ndrpdr"
+ - "Tests.Vpp.Perf.Vm Vhost.2N1L-25Ge2P1Xxv710-Avf-Dot1Q-L2Bdbasemaclrn-Eth-2Vhostvr1024-1Vm-Ndrpdr.64B-2t1c-avf-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-ndrpdr"
+ - "Tests.Vpp.Perf.Vm Vhost.2N1L-25Ge2P1Xxv710-Avf-Eth-L2Xcbase-Eth-2Vhostvr1024-1Vm-Ndrpdr.64B-2t1c-avf-eth-l2xcbase-eth-2vhostvr1024-1vm-ndrpdr"
+ - "Tests.Vpp.Perf.Vm Vhost.2N1L-25Ge2P1Xxv710-Avf-Eth-L2Bdbasemaclrn-Eth-2Vhostvr1024-1Vm-Ndrpdr.64B-2t1c-avf-eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-ndrpdr"
+ - "Tests.Vpp.Perf.Vm Vhost.2N1L-25Ge2P1Xxv710-Avf-Ethip4-Ip4Base-Eth-2Vhostvr1024-1Vm-Ndrpdr.64B-2t1c-avf-ethip4-ip4base-eth-2vhostvr1024-1vm-ndrpdr"
+ layout:
+ title: "2n-zn2-xxv710-64b-2t1c-vhost-base-avf-ndr"
+ layout: "plot-throughput"
+
+- type: "plot"
+ title: "Throughput: 2n-zn2-xxv710-64b-2t1c-vhost-base-avf-pdr"
+ algorithm: "plot_perf_box_name"
+ output-file: "{DIR[STATIC,VPP]}/2n-zn2-xxv710-64b-2t1c-vhost-base-avf-pdr"
+ data: "plot-vpp-throughput-lat-tsa-2n-zn2"
+ include:
+ - "Tests.Vpp.Perf.Vm Vhost.2N1L-25Ge2P1Xxv710-Avf-Dot1Q-L2Xcbase-Eth-2Vhostvr1024-1Vm-Ndrpdr.64B-2t1c-avf-dot1q-l2xcbase-eth-2vhostvr1024-1vm-ndrpdr"
+ - "Tests.Vpp.Perf.Vm Vhost.2N1L-25Ge2P1Xxv710-Avf-Dot1Q-L2Bdbasemaclrn-Eth-2Vhostvr1024-1Vm-Ndrpdr.64B-2t1c-avf-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-ndrpdr"
+ - "Tests.Vpp.Perf.Vm Vhost.2N1L-25Ge2P1Xxv710-Avf-Eth-L2Xcbase-Eth-2Vhostvr1024-1Vm-Ndrpdr.64B-2t1c-avf-eth-l2xcbase-eth-2vhostvr1024-1vm-ndrpdr"
+ - "Tests.Vpp.Perf.Vm Vhost.2N1L-25Ge2P1Xxv710-Avf-Eth-L2Bdbasemaclrn-Eth-2Vhostvr1024-1Vm-Ndrpdr.64B-2t1c-avf-eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-ndrpdr"
+ - "Tests.Vpp.Perf.Vm Vhost.2N1L-25Ge2P1Xxv710-Avf-Ethip4-Ip4Base-Eth-2Vhostvr1024-1Vm-Ndrpdr.64B-2t1c-avf-ethip4-ip4base-eth-2vhostvr1024-1vm-ndrpdr"
+ layout:
+ title: "2n-zn2-xxv710-64b-2t1c-vhost-base-avf-pdr"
+ layout: "plot-throughput"
+
+- type: "plot"
+ title: "Throughput: 2n-zn2-xxv710-64b-2t1c-vhost-base-avf-vpp-ndr"
+ algorithm: "plot_perf_box_name"
+ output-file: "{DIR[STATIC,VPP]}/2n-zn2-xxv710-64b-2t1c-vhost-base-avf-vpp-ndr"
+ data: "plot-vpp-throughput-lat-tsa-2n-zn2"
+ include:
+ - "Tests.Vpp.Perf.Vm Vhost.2N1L-25Ge2P1Xxv710-Avf-Dot1Q-L2Xcbase-Eth-2Vhostvr1024-1Vm-Vppl2Xc-Ndrpdr.64B-2t1c-avf-dot1q-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc-ndrpdr"
+ - "Tests.Vpp.Perf.Vm Vhost.2N1L-25Ge2P1Xxv710-Avf-Dot1Q-L2Bdbasemaclrn-Eth-2Vhostvr1024-1Vm-Vppl2Xc-Ndrpdr.64B-2t1c-avf-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc-ndrpdr"
+ - "Tests.Vpp.Perf.Vm Vhost.2N1L-25Ge2P1Xxv710-Avf-Eth-L2Xcbase-Eth-2Vhostvr1024-1Vm-Vppl2Xc-Ndrpdr.64B-2t1c-avf-eth-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc-ndrpdr"
+ - "Tests.Vpp.Perf.Vm Vhost.2N1L-25Ge2P1Xxv710-Avf-Eth-L2Bdbasemaclrn-Eth-2Vhostvr1024-1Vm-Vppl2Xc-Ndrpdr.64B-2t1c-avf-eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc-ndrpdr"
+ - "Tests.Vpp.Perf.Vm Vhost.2N1L-25Ge2P1Xxv710-Avf-Ethip4-Ip4Base-Eth-2Vhostvr1024-1Vm-Vppip4-Ndrpdr.64B-2t1c-avf-ethip4-ip4base-eth-2vhostvr1024-1vm-vppip4-ndrpdr"
+ layout:
+ title: "2n-zn2-xxv710-64b-2t1c-vhost-base-avf-vpp-ndr"
+ layout: "plot-throughput"
+
+- type: "plot"
+ title: "Throughput: 2n-zn2-xxv710-64b-2t1c-vhost-base-avf-vpp-pdr"
+ algorithm: "plot_perf_box_name"
+ output-file: "{DIR[STATIC,VPP]}/2n-zn2-xxv710-64b-2t1c-vhost-base-avf-vpp-pdr"
+ data: "plot-vpp-throughput-lat-tsa-2n-zn2"
+ include:
+ - "Tests.Vpp.Perf.Vm Vhost.2N1L-25Ge2P1Xxv710-Avf-Dot1Q-L2Xcbase-Eth-2Vhostvr1024-1Vm-Vppl2Xc-Ndrpdr.64B-2t1c-avf-dot1q-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc-ndrpdr"
+ - "Tests.Vpp.Perf.Vm Vhost.2N1L-25Ge2P1Xxv710-Avf-Dot1Q-L2Bdbasemaclrn-Eth-2Vhostvr1024-1Vm-Vppl2Xc-Ndrpdr.64B-2t1c-avf-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc-ndrpdr"
+ - "Tests.Vpp.Perf.Vm Vhost.2N1L-25Ge2P1Xxv710-Avf-Eth-L2Xcbase-Eth-2Vhostvr1024-1Vm-Vppl2Xc-Ndrpdr.64B-2t1c-avf-eth-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc-ndrpdr"
+ - "Tests.Vpp.Perf.Vm Vhost.2N1L-25Ge2P1Xxv710-Avf-Eth-L2Bdbasemaclrn-Eth-2Vhostvr1024-1Vm-Vppl2Xc-Ndrpdr.64B-2t1c-avf-eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc-ndrpdr"
+ - "Tests.Vpp.Perf.Vm Vhost.2N1L-25Ge2P1Xxv710-Avf-Ethip4-Ip4Base-Eth-2Vhostvr1024-1Vm-Vppip4-Ndrpdr.64B-2t1c-avf-ethip4-ip4base-eth-2vhostvr1024-1vm-vppip4-ndrpdr"
+ layout:
+ title: "2n-zn2-xxv710-64b-2t1c-vhost-base-avf-vpp-pdr"
+ layout: "plot-throughput"
+
+- type: "plot"
+ title: "Throughput: 2n-zn2-xxv710-64b-2t1c-vhost-base-dpdk-ndr"
+ algorithm: "plot_perf_box_name"
+ output-file: "{DIR[STATIC,VPP]}/2n-zn2-xxv710-64b-2t1c-vhost-base-dpdk-ndr"
+ data: "plot-vpp-throughput-lat-tsa-2n-zn2"
+ include:
+ - "Tests.Vpp.Perf.Vm Vhost.2N1L-25Ge2P1Xxv710-Dot1Q-L2Xcbase-Eth-2Vhostvr1024-1Vm-Ndrpdr.64B-2t1c-dot1q-l2xcbase-eth-2vhostvr1024-1vm-ndrpdr"
+ - "Tests.Vpp.Perf.Vm Vhost.2N1L-25Ge2P1Xxv710-Dot1Q-L2Bdbasemaclrn-Eth-2Vhostvr1024-1Vm-Ndrpdr.64B-2t1c-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-ndrpdr"
+ - "Tests.Vpp.Perf.Vm Vhost.2N1L-25Ge2P1Xxv710-Eth-L2Xcbase-Eth-2Vhostvr1024-1Vm-Ndrpdr.64B-2t1c-eth-l2xcbase-eth-2vhostvr1024-1vm-ndrpdr"
+ - "Tests.Vpp.Perf.Vm Vhost.2N1L-25Ge2P1Xxv710-Eth-L2Bdbasemaclrn-Eth-2Vhostvr1024-1Vm-Ndrpdr.64B-2t1c-eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-ndrpdr"
+ - "Tests.Vpp.Perf.Vm Vhost.2N1L-25Ge2P1Xxv710-Ethip4-Ip4Base-Eth-2Vhostvr1024-1Vm-Ndrpdr.64B-2t1c-ethip4-ip4base-eth-2vhostvr1024-1vm-ndrpdr"
+ layout:
+ title: "2n-zn2-xxv710-64b-2t1c-vhost-base-dpdk-ndr"
+ layout: "plot-throughput"
+
+- type: "plot"
+ title: "Throughput: 2n-zn2-xxv710-64b-2t1c-vhost-base-dpdk-pdr"
+ algorithm: "plot_perf_box_name"
+ output-file: "{DIR[STATIC,VPP]}/2n-zn2-xxv710-64b-2t1c-vhost-base-dpdk-pdr"
+ data: "plot-vpp-throughput-lat-tsa-2n-zn2"
+ include:
+ - "Tests.Vpp.Perf.Vm Vhost.2N1L-25Ge2P1Xxv710-Dot1Q-L2Xcbase-Eth-2Vhostvr1024-1Vm-Ndrpdr.64B-2t1c-dot1q-l2xcbase-eth-2vhostvr1024-1vm-ndrpdr"
+ - "Tests.Vpp.Perf.Vm Vhost.2N1L-25Ge2P1Xxv710-Dot1Q-L2Bdbasemaclrn-Eth-2Vhostvr1024-1Vm-Ndrpdr.64B-2t1c-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-ndrpdr"
+ - "Tests.Vpp.Perf.Vm Vhost.2N1L-25Ge2P1Xxv710-Eth-L2Xcbase-Eth-2Vhostvr1024-1Vm-Ndrpdr.64B-2t1c-eth-l2xcbase-eth-2vhostvr1024-1vm-ndrpdr"
+ - "Tests.Vpp.Perf.Vm Vhost.2N1L-25Ge2P1Xxv710-Eth-L2Bdbasemaclrn-Eth-2Vhostvr1024-1Vm-Ndrpdr.64B-2t1c-eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-ndrpdr"
+ - "Tests.Vpp.Perf.Vm Vhost.2N1L-25Ge2P1Xxv710-Ethip4-Ip4Base-Eth-2Vhostvr1024-1Vm-Ndrpdr.64B-2t1c-ethip4-ip4base-eth-2vhostvr1024-1vm-ndrpdr"
+ layout:
+ title: "2n-zn2-xxv710-64b-2t1c-vhost-base-dpdk-pdr"
+ layout: "plot-throughput"
+
+- type: "plot"
+ title: "Throughput: 2n-zn2-xxv710-64b-2t1c-vhost-base-dpdk-vpp-ndr"
+ algorithm: "plot_perf_box_name"
+ output-file: "{DIR[STATIC,VPP]}/2n-zn2-xxv710-64b-2t1c-vhost-base-dpdk-vpp-ndr"
+ data: "plot-vpp-throughput-lat-tsa-2n-zn2"
+ include:
+ - "Tests.Vpp.Perf.Vm Vhost.2N1L-25Ge2P1Xxv710-Dot1Q-L2Xcbase-Eth-2Vhostvr1024-1Vm-Vppl2Xc-Ndrpdr.64B-2t1c-dot1q-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc-ndrpdr"
+ - "Tests.Vpp.Perf.Vm Vhost.2N1L-25Ge2P1Xxv710-Dot1Q-L2Bdbasemaclrn-Eth-2Vhostvr1024-1Vm-Vppl2Xc-Ndrpdr.64B-2t1c-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc-ndrpdr"
+ - "Tests.Vpp.Perf.Vm Vhost.2N1L-25Ge2P1Xxv710-Eth-L2Xcbase-Eth-2Vhostvr1024-1Vm-Vppl2Xc-Ndrpdr.64B-2t1c-eth-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc-ndrpdr"
+ - "Tests.Vpp.Perf.Vm Vhost.2N1L-25Ge2P1Xxv710-Eth-L2Bdbasemaclrn-Eth-2Vhostvr1024-1Vm-Vppl2Xc-Ndrpdr.64B-2t1c-eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc-ndrpdr"
+ - "Tests.Vpp.Perf.Vm Vhost.2N1L-25Ge2P1Xxv710-Ethip4-Ip4Base-Eth-2Vhostvr1024-1Vm-Vppip4-Ndrpdr.64B-2t1c-ethip4-ip4base-eth-2vhostvr1024-1vm-vppip4-ndrpdr"
+ layout:
+ title: "2n-zn2-xxv710-64b-2t1c-vhost-base-dpdk-vpp-ndr"
+ layout: "plot-throughput"
+
+- type: "plot"
+ title: "Throughput: 2n-zn2-xxv710-64b-2t1c-vhost-base-dpdk-vpp-pdr"
+ algorithm: "plot_perf_box_name"
+ output-file: "{DIR[STATIC,VPP]}/2n-zn2-xxv710-64b-2t1c-vhost-base-dpdk-vpp-pdr"
+ data: "plot-vpp-throughput-lat-tsa-2n-zn2"
+ include:
+ - "Tests.Vpp.Perf.Vm Vhost.2N1L-25Ge2P1Xxv710-Dot1Q-L2Xcbase-Eth-2Vhostvr1024-1Vm-Vppl2Xc-Ndrpdr.64B-2t1c-dot1q-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc-ndrpdr"
+ - "Tests.Vpp.Perf.Vm Vhost.2N1L-25Ge2P1Xxv710-Dot1Q-L2Bdbasemaclrn-Eth-2Vhostvr1024-1Vm-Vppl2Xc-Ndrpdr.64B-2t1c-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc-ndrpdr"
+ - "Tests.Vpp.Perf.Vm Vhost.2N1L-25Ge2P1Xxv710-Eth-L2Xcbase-Eth-2Vhostvr1024-1Vm-Vppl2Xc-Ndrpdr.64B-2t1c-eth-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc-ndrpdr"
+ - "Tests.Vpp.Perf.Vm Vhost.2N1L-25Ge2P1Xxv710-Eth-L2Bdbasemaclrn-Eth-2Vhostvr1024-1Vm-Vppl2Xc-Ndrpdr.64B-2t1c-eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc-ndrpdr"
+ - "Tests.Vpp.Perf.Vm Vhost.2N1L-25Ge2P1Xxv710-Ethip4-Ip4Base-Eth-2Vhostvr1024-1Vm-Vppip4-Ndrpdr.64B-2t1c-ethip4-ip4base-eth-2vhostvr1024-1vm-vppip4-ndrpdr"
+ layout:
+ title: "2n-zn2-xxv710-64b-2t1c-vhost-base-dpdk-vpp-pdr"
+ layout: "plot-throughput"
+
+- type: "plot"
+ title: "Throughput: 2n-zn2-cx556a-64b-2t1c-rdma-l2-vhost-base-ndr"
+ algorithm: "plot_perf_box_name"
+ output-file: "{DIR[STATIC,VPP]}/2n-zn2-cx556a-64b-2t1c-rdma-l2-vhost-base-ndr"
+ data: "plot-vpp-throughput-lat-tsa-2n-zn2"
+ include:
+ - "Tests.Vpp.Perf.Vm Vhost.2N1L-100Ge2P1Cx556A-Rdma-Dot1Q-L2Xcbase-Eth-2Vhostvr1024-1Vm-Ndrpdr.64B-2t1c-rdma-dot1q-l2xcbase-eth-2vhostvr1024-1vm-ndrpdr"
+ - "Tests.Vpp.Perf.Vm Vhost.2N1L-100Ge2P1Cx556A-Rdma-Dot1Q-L2Bdbasemaclrn-Eth-2Vhostvr1024-1Vm-Ndrpdr.64B-2t1c-rdma-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-ndrpdr"
+ - "Tests.Vpp.Perf.Vm Vhost.2N1L-100Ge2P1Cx556A-Rdma-Eth-L2Xcbase-Eth-2Vhostvr1024-1Vm-Ndrpdr.64B-2t1c-rdma-eth-l2xcbase-eth-2vhostvr1024-1vm-ndrpdr"
+ - "Tests.Vpp.Perf.Vm Vhost.2N1L-100Ge2P1Cx556A-Rdma-Eth-L2Bdbasemaclrn-Eth-2Vhostvr1024-1Vm-Ndrpdr.64B-2t1c-rdma-eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-ndrpdr"
+ layout:
+ title: "2n-zn2-cx556a-64b-2t1c-rdma-l2-vhost-base-ndr"
+ layout: "plot-throughput"
+
+- type: "plot"
+ title: "Throughput: 2n-zn2-cx556a-64b-2t1c-rdma-l2-vhost-base-pdr"
+ algorithm: "plot_perf_box_name"
+ output-file: "{DIR[STATIC,VPP]}/2n-zn2-cx556a-64b-2t1c-rdma-l2-vhost-base-pdr"
+ data: "plot-vpp-throughput-lat-tsa-2n-zn2"
+ include:
+ - "Tests.Vpp.Perf.Vm Vhost.2N1L-100Ge2P1Cx556A-Rdma-Dot1Q-L2Xcbase-Eth-2Vhostvr1024-1Vm-Ndrpdr.64B-2t1c-rdma-dot1q-l2xcbase-eth-2vhostvr1024-1vm-ndrpdr"
+ - "Tests.Vpp.Perf.Vm Vhost.2N1L-100Ge2P1Cx556A-Rdma-Dot1Q-L2Bdbasemaclrn-Eth-2Vhostvr1024-1Vm-Ndrpdr.64B-2t1c-rdma-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-ndrpdr"
+ - "Tests.Vpp.Perf.Vm Vhost.2N1L-100Ge2P1Cx556A-Rdma-Eth-L2Xcbase-Eth-2Vhostvr1024-1Vm-Ndrpdr.64B-2t1c-rdma-eth-l2xcbase-eth-2vhostvr1024-1vm-ndrpdr"
+ - "Tests.Vpp.Perf.Vm Vhost.2N1L-100Ge2P1Cx556A-Rdma-Eth-L2Bdbasemaclrn-Eth-2Vhostvr1024-1Vm-Ndrpdr.64B-2t1c-rdma-eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-ndrpdr"
+ layout:
+ title: "2n-zn2-cx556a-64b-2t1c-rdma-l2-vhost-base-pdr"
+ layout: "plot-throughput"
+
+- type: "plot"
+ title: "Throughput: 2n-zn2-cx556a-64b-2t1c-rdma-l2-vhost-vppl2xc-base-ndr"
+ algorithm: "plot_perf_box_name"
+ output-file: "{DIR[STATIC,VPP]}/2n-zn2-cx556a-64b-2t1c-rdma-l2-vhost-vppl2xc-base-ndr"
+ data: "plot-vpp-throughput-lat-tsa-2n-zn2"
+ include:
+ - "Tests.Vpp.Perf.Vm Vhost.2N1L-100Ge2P1Cx556A-Rdma-Dot1Q-L2Xcbase-Eth-2Vhostvr1024-1Vm-Vppl2Xc-Ndrpdr.64B-2t1c-rdma-dot1q-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc-ndrpdr"
+ - "Tests.Vpp.Perf.Vm Vhost.2N1L-100Ge2P1Cx556A-Rdma-Dot1Q-L2Bdbasemaclrn-Eth-2Vhostvr1024-1Vm-Vppl2Xc-Ndrpdr.64B-2t1c-rdma-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc-ndrpdr"
+ - "Tests.Vpp.Perf.Vm Vhost.2N1L-100Ge2P1Cx556A-Rdma-Eth-L2Xcbase-Eth-2Vhostvr1024-1Vm-Vppl2Xc-Ndrpdr.64B-2t1c-rdma-eth-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc-ndrpdr"
+ - "Tests.Vpp.Perf.Vm Vhost.2N1L-100Ge2P1Cx556A-Rdma-Eth-L2Bdbasemaclrn-Eth-2Vhostvr1024-1Vm-Vppl2Xc-Ndrpdr.64B-2t1c-rdma-eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc-ndrpdr"
+ layout:
+ title: "2n-zn2-cx556a-64b-2t1c-rdma-l2-vhost-vppl2xc-base-ndr"
+ layout: "plot-throughput"
+
+- type: "plot"
+ title: "Throughput: 2n-zn2-cx556a-64b-2t1c-rdma-l2-vhost-vppl2xc-base-pdr"
+ algorithm: "plot_perf_box_name"
+ output-file: "{DIR[STATIC,VPP]}/2n-zn2-cx556a-64b-2t1c-rdma-l2-vhost-vppl2xc-base-pdr"
+ data: "plot-vpp-throughput-lat-tsa-2n-zn2"
+ include:
+ - "Tests.Vpp.Perf.Vm Vhost.2N1L-100Ge2P1Cx556A-Rdma-Dot1Q-L2Xcbase-Eth-2Vhostvr1024-1Vm-Vppl2Xc-Ndrpdr.64B-2t1c-rdma-dot1q-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc-ndrpdr"
+ - "Tests.Vpp.Perf.Vm Vhost.2N1L-100Ge2P1Cx556A-Rdma-Dot1Q-L2Bdbasemaclrn-Eth-2Vhostvr1024-1Vm-Vppl2Xc-Ndrpdr.64B-2t1c-rdma-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc-ndrpdr"
+ - "Tests.Vpp.Perf.Vm Vhost.2N1L-100Ge2P1Cx556A-Rdma-Eth-L2Xcbase-Eth-2Vhostvr1024-1Vm-Vppl2Xc-Ndrpdr.64B-2t1c-rdma-eth-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc-ndrpdr"
+ - "Tests.Vpp.Perf.Vm Vhost.2N1L-100Ge2P1Cx556A-Rdma-Eth-L2Bdbasemaclrn-Eth-2Vhostvr1024-1Vm-Vppl2Xc-Ndrpdr.64B-2t1c-rdma-eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc-ndrpdr"
+ layout:
+ title: "2n-zn2-cx556a-64b-2t1c-rdma-l2-vhost-vppl2xc-base-pdr"
+ layout: "plot-throughput"
+
+- type: "plot"
+ title: "Throughput: 2n-zn2-xxv710-114b-2t1c-vts-l2switching-base-dpdk-ndr"
+ algorithm: "plot_perf_box_name"
+ output-file: "{DIR[STATIC,VPP]}/2n-zn2-xxv710-114b-2t1c-vts-l2switching-base-dpdk-ndr"
+ data: "plot-vpp-throughput-lat-tsa-2n-zn2"
+ include:
+ - "Tests.Vpp.Perf.Vts.2N1L-25Ge2P1Xxv710-Avf-Ethip4Vxlan-L2Bdbasemaclrn-Eth-Iacldstbase-Aclpermit-2Vhostvr1024-1Vm-Ndrpdr.114B-2t1c-avf-ethip4vxlan-l2bdbasemaclrn-eth-iacldstbase-aclpermit-2vhostvr1024-1vm-ndrpdr"
+ - "Tests.Vpp.Perf.Vts.2N1L-25Ge2P1Xxv710-Avf-Ethip4Vxlan-L2Bdbasemaclrn-Eth-Iacldstbase-Aclpermitreflect-2Vhostvr1024-1Vm-Ndrpdr.114B-2t1c-avf-ethip4vxlan-l2bdbasemaclrn-eth-iacldstbase-aclpermitreflect-2vhostvr1024-1vm-ndrpdr"
+ - "Tests.Vpp.Perf.Vts.2N1L-25Ge2P1Xxv710-Avf-Ethip4Vxlan-L2Bdbasemaclrn-Eth-Iacldstbase-Noacl-2Vhostvr1024-1Vm-Ndrpdr.114B-2t1c-avf-ethip4vxlan-l2bdbasemaclrn-eth-iacldstbase-noacl-2vhostvr1024-1vm-ndrpdr"
+ - "Tests.Vpp.Perf.Vts.2n1l-25Ge2P1Xxv710-Ethip4Vxlan-L2Bdbasemaclrn-Eth-Iacldstbase-Noacl-2Vhostvr1024-1Vm-Ndrpdr.114B-2t1c-ethip4vxlan-l2bdbasemaclrn-eth-iacldstbase-noacl-2vhostvr1024-1vm-ndrpdr"
+ - "Tests.Vpp.Perf.Vts.2n1l-25Ge2P1Xxv710-Ethip4Vxlan-L2Bdbasemaclrn-Eth-Iacldstbase-Aclpermit-2Vhostvr1024-1Vm-Ndrpdr.114B-2t1c-ethip4vxlan-l2bdbasemaclrn-eth-iacldstbase-aclpermit-2vhostvr1024-1vm-ndrpdr"
+ - "Tests.Vpp.Perf.Vts.2n1l-25Ge2P1Xxv710-Ethip4Vxlan-L2Bdbasemaclrn-Eth-Iacldstbase-Aclpermitreflect-2Vhostvr1024-1Vm-Ndrpdr.114B-2t1c-ethip4vxlan-l2bdbasemaclrn-eth-iacldstbase-aclpermitreflect-2vhostvr1024-1vm-ndrpdr"
+ layout:
+ title: "2n-zn2-xxv710-114b-2t1c-vts-l2switching-base-[avf,dpdk]-ndr"
+ layout: "plot-throughput"
+
+- type: "plot"
+ title: "Throughput: 2n-zn2-xxv710-114b-2t1c-vts-l2switching-base-dpdk-pdr"
+ algorithm: "plot_perf_box_name"
+ output-file: "{DIR[STATIC,VPP]}/2n-zn2-xxv710-114b-2t1c-vts-l2switching-base-dpdk-pdr"
+ data: "plot-vpp-throughput-lat-tsa-2n-zn2"
+ include:
+ - "Tests.Vpp.Perf.Vts.2N1L-25Ge2P1Xxv710-Avf-Ethip4Vxlan-L2Bdbasemaclrn-Eth-Iacldstbase-Aclpermit-2Vhostvr1024-1Vm-Ndrpdr.114B-2t1c-avf-ethip4vxlan-l2bdbasemaclrn-eth-iacldstbase-aclpermit-2vhostvr1024-1vm-ndrpdr"
+ - "Tests.Vpp.Perf.Vts.2N1L-25Ge2P1Xxv710-Avf-Ethip4Vxlan-L2Bdbasemaclrn-Eth-Iacldstbase-Aclpermitreflect-2Vhostvr1024-1Vm-Ndrpdr.114B-2t1c-avf-ethip4vxlan-l2bdbasemaclrn-eth-iacldstbase-aclpermitreflect-2vhostvr1024-1vm-ndrpdr"
+ - "Tests.Vpp.Perf.Vts.2N1L-25Ge2P1Xxv710-Avf-Ethip4Vxlan-L2Bdbasemaclrn-Eth-Iacldstbase-Noacl-2Vhostvr1024-1Vm-Ndrpdr.114B-2t1c-avf-ethip4vxlan-l2bdbasemaclrn-eth-iacldstbase-noacl-2vhostvr1024-1vm-ndrpdr"
+ - "Tests.Vpp.Perf.Vts.2n1l-25Ge2P1Xxv710-Ethip4Vxlan-L2Bdbasemaclrn-Eth-Iacldstbase-Noacl-2Vhostvr1024-1Vm-Ndrpdr.114B-2t1c-ethip4vxlan-l2bdbasemaclrn-eth-iacldstbase-noacl-2vhostvr1024-1vm-ndrpdr"
+ - "Tests.Vpp.Perf.Vts.2n1l-25Ge2P1Xxv710-Ethip4Vxlan-L2Bdbasemaclrn-Eth-Iacldstbase-Aclpermit-2Vhostvr1024-1Vm-Ndrpdr.114B-2t1c-ethip4vxlan-l2bdbasemaclrn-eth-iacldstbase-aclpermit-2vhostvr1024-1vm-ndrpdr"
+ - "Tests.Vpp.Perf.Vts.2n1l-25Ge2P1Xxv710-Ethip4Vxlan-L2Bdbasemaclrn-Eth-Iacldstbase-Aclpermitreflect-2Vhostvr1024-1Vm-Ndrpdr.114B-2t1c-ethip4vxlan-l2bdbasemaclrn-eth-iacldstbase-aclpermitreflect-2vhostvr1024-1vm-ndrpdr"
+ layout:
+ title: "2n-zn2-xxv710-114b-2t1c-vts-l2switching-base-[avf,dpdk]-pdr"
+ layout: "plot-throughput"
+
+################################################################################
+
+# Packet Speedup
+
+- type: "plot"
+ title: "Speedup: 2n-zn2-xxv710-64b-memif-base-avf-ndr-tsa"
+ algorithm: "plot_tsa_name"
+ output-file: "{DIR[STATIC,VPP]}/2n-zn2-xxv710-64b-memif-base-avf-ndr-tsa"
+ data: "plot-vpp-throughput-lat-tsa-2n-zn2"
+ include:
+ - "Tests.Vpp.Perf.Container Memif.2N1L-25Ge2P1Xxv710-Avf-Eth-L2Xcbase-Eth-2Memif-1Dcr-Ndrpdr.64B-.t.c-avf-eth-l2xcbase-eth-2memif-1dcr-ndrpdr"
+ - "Tests.Vpp.Perf.Container Memif.2N1L-25Ge2P1Xxv710-Avf-Dot1Q-L2Bdbasemaclrn-Eth-2Memif-1Dcr-Ndrpdr.64B-.t.c-avf-dot1q-l2bdbasemaclrn-eth-2memif-1dcr-ndrpdr"
+ - "Tests.Vpp.Perf.Container Memif.2N1L-25Ge2P1Xxv710-Avf-Eth-L2Bdbasemaclrn-Eth-2Memif-1Dcr-Ndrpdr.64B-.t.c-avf-eth-l2bdbasemaclrn-eth-2memif-1dcr-ndrpdr"
+ - "Tests.Vpp.Perf.Container Memif.2N1L-25Ge2P1Xxv710-Avf-Ethip4-Ip4Base-Eth-2Memif-1Dcr-Ndrpdr.64B-.t.c-avf-ethip4-ip4base-eth-2memif-1dcr-ndrpdr"
+ layout:
+ title: "2n-zn2-xxv710-64b-memif-base-avf-ndr"
+ layout: "plot-throughput-speedup-analysis"
+
+- type: "plot"
+ title: "Speedup: 2n-zn2-xxv710-64b-memif-base-avf-pdr-tsa"
+ algorithm: "plot_tsa_name"
+ output-file: "{DIR[STATIC,VPP]}/2n-zn2-xxv710-64b-memif-base-avf-pdr-tsa"
+ data: "plot-vpp-throughput-lat-tsa-2n-zn2"
+ include:
+ - "Tests.Vpp.Perf.Container Memif.2N1L-25Ge2P1Xxv710-Avf-Eth-L2Xcbase-Eth-2Memif-1Dcr-Ndrpdr.64B-.t.c-avf-eth-l2xcbase-eth-2memif-1dcr-ndrpdr"
+ - "Tests.Vpp.Perf.Container Memif.2N1L-25Ge2P1Xxv710-Avf-Dot1Q-L2Bdbasemaclrn-Eth-2Memif-1Dcr-Ndrpdr.64B-.t.c-avf-dot1q-l2bdbasemaclrn-eth-2memif-1dcr-ndrpdr"
+ - "Tests.Vpp.Perf.Container Memif.2N1L-25Ge2P1Xxv710-Avf-Eth-L2Bdbasemaclrn-Eth-2Memif-1Dcr-Ndrpdr.64B-.t.c-avf-eth-l2bdbasemaclrn-eth-2memif-1dcr-ndrpdr"
+ - "Tests.Vpp.Perf.Container Memif.2N1L-25Ge2P1Xxv710-Avf-Ethip4-Ip4Base-Eth-2Memif-1Dcr-Ndrpdr.64B-.t.c-avf-ethip4-ip4base-eth-2memif-1dcr-ndrpdr"
+ layout:
+ title: "2n-zn2-xxv710-64b-memif-base-avf-pdr"
+ layout: "plot-throughput-speedup-analysis"
+
+- type: "plot"
+ title: "Speedup: 2n-zn2-xxv710-64b-memif-base-dpdk-ndr-tsa"
+ algorithm: "plot_tsa_name"
+ output-file: "{DIR[STATIC,VPP]}/2n-zn2-xxv710-64b-memif-base-dpdk-ndr-tsa"
+ data: "plot-vpp-throughput-lat-tsa-2n-zn2"
+ include:
+ - "Tests.Vpp.Perf.Container Memif.2N1L-25Ge2P1Xxv710-Eth-L2Xcbase-Eth-2Memif-1Dcr-Ndrpdr.64B-.t.c-eth-l2xcbase-eth-2memif-1dcr-ndrpdr"
+ - "Tests.Vpp.Perf.Container Memif.2N1L-25Ge2P1Xxv710-Dot1Q-L2Bdbasemaclrn-Eth-2Memif-1Dcr-Ndrpdr.64B-.t.c-dot1q-l2bdbasemaclrn-eth-2memif-1dcr-ndrpdr"
+ - "Tests.Vpp.Perf.Container Memif.2N1L-25Ge2P1Xxv710-Eth-L2Bdbasemaclrn-Eth-2Memif-1Dcr-Ndrpdr.64B-.t.c-eth-l2bdbasemaclrn-eth-2memif-1dcr-ndrpdr"
+ - "Tests.Vpp.Perf.Container Memif.2N1L-25Ge2P1Xxv710-Ethip4-Ip4Base-Eth-2Memif-1Dcr-Ndrpdr.64B-.t.c-ethip4-ip4base-eth-2memif-1dcr-ndrpdr"
+ layout:
+ title: "2n-zn2-xxv710-64b-memif-base-dpdk-ndr"
+ layout: "plot-throughput-speedup-analysis"
+
+- type: "plot"
+ title: "Speedup: 2n-zn2-xxv710-64b-memif-base-dpdk-pdr-tsa"
+ algorithm: "plot_tsa_name"
+ output-file: "{DIR[STATIC,VPP]}/2n-zn2-xxv710-64b-memif-base-dpdk-pdr-tsa"
+ data: "plot-vpp-throughput-lat-tsa-2n-zn2"
+ include:
+ - "Tests.Vpp.Perf.Container Memif.2N1L-25Ge2P1Xxv710-Eth-L2Xcbase-Eth-2Memif-1Dcr-Ndrpdr.64B-.t.c-eth-l2xcbase-eth-2memif-1dcr-ndrpdr"
+ - "Tests.Vpp.Perf.Container Memif.2N1L-25Ge2P1Xxv710-Dot1Q-L2Bdbasemaclrn-Eth-2Memif-1Dcr-Ndrpdr.64B-.t.c-dot1q-l2bdbasemaclrn-eth-2memif-1dcr-ndrpdr"
+ - "Tests.Vpp.Perf.Container Memif.2N1L-25Ge2P1Xxv710-Eth-L2Bdbasemaclrn-Eth-2Memif-1Dcr-Ndrpdr.64B-.t.c-eth-l2bdbasemaclrn-eth-2memif-1dcr-ndrpdr"
+ - "Tests.Vpp.Perf.Container Memif.2N1L-25Ge2P1Xxv710-Ethip4-Ip4Base-Eth-2Memif-1Dcr-Ndrpdr.64B-.t.c-ethip4-ip4base-eth-2memif-1dcr-ndrpdr"
+ layout:
+ title: "2n-zn2-xxv710-64b-memif-base-dpdk-pdr"
+ layout: "plot-throughput-speedup-analysis"
+
+- type: "plot"
+ title: "Speedup: 2n-zn2-cx556a-64b-rdma-l2-eth-2memif-1dcr-ndr-tsa"
+ algorithm: "plot_tsa_name"
+ output-file: "{DIR[STATIC,VPP]}/2n-zn2-cx556a-64b-rdma-l2-eth-2memif-1dcr-ndr-tsa"
+ data: "plot-vpp-throughput-lat-tsa-2n-zn2"
+ include:
+ - "Tests.Vpp.Perf.Container Memif.2N1L-100Ge2P1Cx556A-Rdma-Dot1Q-L2Bdbasemaclrn-Eth-2Memif-1Dcr-Ndrpdr.64B-.t.c-rdma-dot1q-l2bdbasemaclrn-eth-2memif-1dcr-ndrpdr"
+ - "Tests.Vpp.Perf.Container Memif.2N1L-100Ge2P1Cx556A-Rdma-Eth-L2Bdbasemaclrn-Eth-2Memif-1Dcr-Ndrpdr.64B-.t.c-rdma-eth-l2bdbasemaclrn-eth-2memif-1dcr-ndrpdr"
+ - "Tests.Vpp.Perf.Container Memif.2N1L-100Ge2P1Cx556A-Rdma-Eth-L2Xcbase-Eth-2Memif-1Dcr-Ndrpdr.64B-.t.c-rdma-eth-l2xcbase-eth-2memif-1dcr-ndrpdr"
+ - "Tests.Vpp.Perf.Container Memif.2N1L-100Ge2P1Cx556A-Rdma-Ethip4-Ip4Base-Eth-2Memif-1Dcr-Ndrpdr.64B-.t.c-rdma-ethip4-ip4base-eth-2memif-1dcr-ndrpdr"
+ layout:
+ title: "2n-zn2-cx556a-64b-rdma-l2-eth-2memif-1dcr-ndr"
+ layout: "plot-throughput-speedup-analysis"
+
+- type: "plot"
+ title: "Speedup: 2n-zn2-cx556a-64b-rdma-l2-eth-2memif-1dcr-pdr-tsa"
+ algorithm: "plot_tsa_name"
+ output-file: "{DIR[STATIC,VPP]}/2n-zn2-cx556a-64b-rdma-l2-eth-2memif-1dcr-pdr-tsa"
+ data: "plot-vpp-throughput-lat-tsa-2n-zn2"
+ include:
+ - "Tests.Vpp.Perf.Container Memif.2N1L-100Ge2P1Cx556A-Rdma-Dot1Q-L2Bdbasemaclrn-Eth-2Memif-1Dcr-Ndrpdr.64B-.t.c-rdma-dot1q-l2bdbasemaclrn-eth-2memif-1dcr-ndrpdr"
+ - "Tests.Vpp.Perf.Container Memif.2N1L-100Ge2P1Cx556A-Rdma-Eth-L2Bdbasemaclrn-Eth-2Memif-1Dcr-Ndrpdr.64B-.t.c-rdma-eth-l2bdbasemaclrn-eth-2memif-1dcr-ndrpdr"
+ - "Tests.Vpp.Perf.Container Memif.2N1L-100Ge2P1Cx556A-Rdma-Eth-L2Xcbase-Eth-2Memif-1Dcr-Ndrpdr.64B-.t.c-rdma-eth-l2xcbase-eth-2memif-1dcr-ndrpdr"
+ - "Tests.Vpp.Perf.Container Memif.2N1L-100Ge2P1Cx556A-Rdma-Ethip4-Ip4Base-Eth-2Memif-1Dcr-Ndrpdr.64B-.t.c-rdma-ethip4-ip4base-eth-2memif-1dcr-ndrpdr"
+ layout:
+ title: "2n-zn2-cx556a-64b-rdma-l2-eth-2memif-1dcr-pdr"
+ layout: "plot-throughput-speedup-analysis"
+
+- type: "plot"
+ title: "Speedup: 2n-zn2-x710-64b-ip4routing-base-scale-[avf,dpdk]-ndr-tsa"
+ algorithm: "plot_tsa_name"
+ output-file: "{DIR[STATIC,VPP]}/2n-zn2-x710-64b-ip4routing-base-scale-[avf,dpdk]-ndr-tsa"
+ data: "plot-vpp-throughput-lat-tsa-2n-zn2"
+ include:
+ - "Tests.Vpp.Perf.Ip4.2N1L-10Ge2P1X710-Avf-Dot1Q-Ip4Base-Ndrpdr.64B-.t.c-avf-dot1q-ip4base-ndrpdr"
+ - "Tests.Vpp.Perf.Ip4.2N1L-10Ge2P1X710-Avf-Ethip4-Ip4Base-Ndrpdr.64B-.t.c-avf-ethip4-ip4base-ndrpdr"
+ - "Tests.Vpp.Perf.Ip4.2N1L-10Ge2P1X710-Avf-Ethip4-Ip4Scale2M-Ndrpdr.64B-.t.c-avf-ethip4-ip4scale2m-ndrpdr"
+ - "Tests.Vpp.Perf.Ip4.2N1L-10Ge2P1X710-Avf-Ethip4-Ip4Scale2M-Rnd-Ndrpdr.64B-.t.c-avf-ethip4-ip4scale2m-rnd-ndrpdr"
+ - "Tests.Vpp.Perf.Ip4.2N1L-10Ge2P1X710-Dot1Q-Ip4Base-Ndrpdr.64B-.t.c-dot1q-ip4base-ndrpdr"
+ - "Tests.Vpp.Perf.Ip4.2N1L-10Ge2P1X710-Ethip4-Ip4Base-Ndrpdr.64B-.t.c-ethip4-ip4base-ndrpdr"
+ layout:
+ title: "2n-zn2-x710-64b-ip4routing-base-scale-[avf,dpdk]-ndr"
+ layout: "plot-throughput-speedup-analysis"
+
+- type: "plot"
+ title: "Speedup: 2n-zn2-x710-64b-ip4routing-base-scale-[avf,dpdk]-pdr-tsa"
+ algorithm: "plot_tsa_name"
+ output-file: "{DIR[STATIC,VPP]}/2n-zn2-x710-64b-ip4routing-base-scale-[avf,dpdk]-pdr-tsa"
+ data: "plot-vpp-throughput-lat-tsa-2n-zn2"
+ include:
+ - "Tests.Vpp.Perf.Ip4.2N1L-10Ge2P1X710-Avf-Dot1Q-Ip4Base-Ndrpdr.64B-.t.c-avf-dot1q-ip4base-ndrpdr"
+ - "Tests.Vpp.Perf.Ip4.2N1L-10Ge2P1X710-Avf-Ethip4-Ip4Base-Ndrpdr.64B-.t.c-avf-ethip4-ip4base-ndrpdr"
+ - "Tests.Vpp.Perf.Ip4.2N1L-10Ge2P1X710-Avf-Ethip4-Ip4Scale2M-Ndrpdr.64B-.t.c-avf-ethip4-ip4scale2m-ndrpdr"
+ - "Tests.Vpp.Perf.Ip4.2N1L-10Ge2P1X710-Avf-Ethip4-Ip4Scale2M-Rnd-Ndrpdr.64B-.t.c-avf-ethip4-ip4scale2m-rnd-ndrpdr"
+ - "Tests.Vpp.Perf.Ip4.2N1L-10Ge2P1X710-Dot1Q-Ip4Base-Ndrpdr.64B-.t.c-dot1q-ip4base-ndrpdr"
+ - "Tests.Vpp.Perf.Ip4.2N1L-10Ge2P1X710-Ethip4-Ip4Base-Ndrpdr.64B-.t.c-ethip4-ip4base-ndrpdr"
+ layout:
+ title: "2n-zn2-x710-64b-ip4routing-base-scale-[avf,dpdk]-pdr"
+ layout: "plot-throughput-speedup-analysis"
+
+- type: "plot"
+ title: "Speedup: 2n-zn2-xxv710-64b-ip4routing-base-scale-avf-ndr-tsa"
+ algorithm: "plot_tsa_name"
+ output-file: "{DIR[STATIC,VPP]}/2n-zn2-xxv710-64b-ip4routing-base-scale-avf-ndr-tsa"
+ data: "plot-vpp-throughput-lat-tsa-2n-zn2"
+ include:
+ - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Avf-Ethip4-Ip4Base-Ndrpdr.64B-.t.c-avf-ethip4-ip4base-ndrpdr"
+ - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Avf-Ethip4-Ip4Scale20K-Ndrpdr.64B-.t.c-avf-ethip4-ip4scale20k-ndrpdr"
+ - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Avf-Ethip4-Ip4Scale200K-Ndrpdr.64B-.t.c-avf-ethip4-ip4scale200k-ndrpdr"
+ - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Avf-Ethip4-Ip4Scale2M-Ndrpdr.64B-.t.c-avf-ethip4-ip4scale2m-ndrpdr"
+ layout:
+ title: "2n-zn2-xxv710-64b-ip4routing-base-scale-avf-ndr"
+ layout: "plot-throughput-speedup-analysis"
+
+- type: "plot"
+ title: "Speedup: 2n-zn2-xxv710-64b-ip4routing-base-scale-avf-pdr-tsa"
+ algorithm: "plot_tsa_name"
+ output-file: "{DIR[STATIC,VPP]}/2n-zn2-xxv710-64b-ip4routing-base-scale-avf-pdr-tsa"
+ data: "plot-vpp-throughput-lat-tsa-2n-zn2"
+ include:
+ - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Avf-Ethip4-Ip4Base-Ndrpdr.64B-.t.c-avf-ethip4-ip4base-ndrpdr"
+ - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Avf-Ethip4-Ip4Scale20K-Ndrpdr.64B-.t.c-avf-ethip4-ip4scale20k-ndrpdr"
+ - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Avf-Ethip4-Ip4Scale200K-Ndrpdr.64B-.t.c-avf-ethip4-ip4scale200k-ndrpdr"
+ - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Avf-Ethip4-Ip4Scale2M-Ndrpdr.64B-.t.c-avf-ethip4-ip4scale2m-ndrpdr"
+ layout:
+ title: "2n-zn2-xxv710-64b-ip4routing-base-scale-avf-pdr"
+ layout: "plot-throughput-speedup-analysis"
+
+- type: "plot"
+ title: "Speedup: 2n-zn2-xxv710-64b-ip4routing-scale-avf-rnd-ndr-tsa"
+ algorithm: "plot_tsa_name"
+ output-file: "{DIR[STATIC,VPP]}/2n-zn2-xxv710-64b-ip4routing-scale-avf-rnd-ndr-tsa"
+ data: "plot-vpp-throughput-lat-tsa-2n-zn2"
+ include:
+ - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Avf-Ethip4-Ip4Scale20K-Rnd-Ndrpdr.64B-.t.c-avf-ethip4-ip4scale20k-rnd-ndrpdr"
+ - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Avf-Ethip4-Ip4Scale200K-Rnd-Ndrpdr.64B-.t.c-avf-ethip4-ip4scale200k-rnd-ndrpdr"
+ - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Avf-Ethip4-Ip4Scale2M-Rnd-Ndrpdr.64B-.t.c-avf-ethip4-ip4scale2m-rnd-ndrpdr"
+ layout:
+ title: "2n-zn2-xxv710-64b-ip4routing-scale-avf-rnd-ndr"
+ layout: "plot-throughput-speedup-analysis"
+
+- type: "plot"
+ title: "Speedup: 2n-zn2-xxv710-64b-ip4routing-scale-avf-rnd-pdr-tsa"
+ algorithm: "plot_tsa_name"
+ output-file: "{DIR[STATIC,VPP]}/2n-zn2-xxv710-64b-ip4routing-scale-avf-rnd-pdr-tsa"
+ data: "plot-vpp-throughput-lat-tsa-2n-zn2"
+ include:
+ - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Avf-Ethip4-Ip4Scale20K-Rnd-Ndrpdr.64B-.t.c-avf-ethip4-ip4scale20k-rnd-ndrpdr"
+ - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Avf-Ethip4-Ip4Scale200K-Rnd-Ndrpdr.64B-.t.c-avf-ethip4-ip4scale200k-rnd-ndrpdr"
+ - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Avf-Ethip4-Ip4Scale2M-Rnd-Ndrpdr.64B-.t.c-avf-ethip4-ip4scale2m-rnd-ndrpdr"
+ layout:
+ title: "2n-zn2-xxv710-64b-ip4routing-scale-avf-rnd-pdr"
+ layout: "plot-throughput-speedup-analysis"
+
+- type: "plot"
+ title: "Speedup: 2n-zn2-xxv710-64b-ip4routing-base-scale-dpdk-ndr-tsa"
+ algorithm: "plot_tsa_name"
+ output-file: "{DIR[STATIC,VPP]}/2n-zn2-xxv710-64b-ip4routing-base-scale-dpdk-ndr-tsa"
+ data: "plot-vpp-throughput-lat-tsa-2n-zn2"
+ include:
+ - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Dot1Q-Ip4Base-Ndrpdr.64B-.t.c-dot1q-ip4base-ndrpdr"
+ - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Ethip4-Ip4Base-Ndrpdr.64B-.t.c-ethip4-ip4base-ndrpdr"
+ - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Ethip4-Ip4Scale20K-Ndrpdr.64B-.t.c-ethip4-ip4scale20k-ndrpdr"
+ - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Ethip4-Ip4Scale200K-Ndrpdr.64B-.t.c-ethip4-ip4scale200k-ndrpdr"
+ - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Ethip4-Ip4Scale2M-Ndrpdr.64B-.t.c-ethip4-ip4scale2m-ndrpdr"
+ layout:
+ title: "2n-zn2-xxv710-64b-ip4routing-base-scale-dpdk-ndr"
+ layout: "plot-throughput-speedup-analysis"
+
+- type: "plot"
+ title: "Speedup: 2n-zn2-xxv710-64b-ip4routing-base-scale-dpdk-pdr-tsa"
+ algorithm: "plot_tsa_name"
+ output-file: "{DIR[STATIC,VPP]}/2n-zn2-xxv710-64b-ip4routing-base-scale-dpdk-pdr-tsa"
+ data: "plot-vpp-throughput-lat-tsa-2n-zn2"
+ include:
+ - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Dot1Q-Ip4Base-Ndrpdr.64B-.t.c-dot1q-ip4base-ndrpdr"
+ - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Ethip4-Ip4Base-Ndrpdr.64B-.t.c-ethip4-ip4base-ndrpdr"
+ - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Ethip4-Ip4Scale20K-Ndrpdr.64B-.t.c-ethip4-ip4scale20k-ndrpdr"
+ - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Ethip4-Ip4Scale200K-Ndrpdr.64B-.t.c-ethip4-ip4scale200k-ndrpdr"
+ - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Ethip4-Ip4Scale2M-Ndrpdr.64B-.t.c-ethip4-ip4scale2m-ndrpdr"
+ layout:
+ title: "2n-zn2-xxv710-64b-ip4routing-base-scale-dpdk-pdr"
+ layout: "plot-throughput-speedup-analysis"
+
+- type: "plot"
+ title: "Speedup: 2n-zn2-xxv710-64b-ip4routing-scale-dpdk-rnd-ndr-tsa"
+ algorithm: "plot_tsa_name"
+ output-file: "{DIR[STATIC,VPP]}/2n-zn2-xxv710-64b-ip4routing-scale-dpdk-rnd-ndr-tsa"
+ data: "plot-vpp-throughput-lat-tsa-2n-zn2"
+ include:
+ - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Ethip4-Ip4Scale20K-Rnd-Ndrpdr.64B-.t.c-ethip4-ip4scale20k-rnd-ndrpdr"
+ - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Ethip4-Ip4Scale200K-Rnd-Ndrpdr.64B-.t.c-ethip4-ip4scale200k-rnd-ndrpdr"
+ - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Ethip4-Ip4Scale2M-Rnd-Ndrpdr.64B-.t.c-ethip4-ip4scale2m-rnd-ndrpdr"
+ layout:
+ title: "2n-zn2-xxv710-64b-ip4routing-scale-dpdk-rnd-ndr"
+ layout: "plot-throughput-speedup-analysis"
+
+- type: "plot"
+ title: "Speedup: 2n-zn2-xxv710-64b-ip4routing-scale-dpdk-rnd-pdr-tsa"
+ algorithm: "plot_tsa_name"
+ output-file: "{DIR[STATIC,VPP]}/2n-zn2-xxv710-64b-ip4routing-scale-dpdk-rnd-pdr-tsa"
+ data: "plot-vpp-throughput-lat-tsa-2n-zn2"
+ include:
+ - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Ethip4-Ip4Scale20K-Rnd-Ndrpdr.64B-.t.c-ethip4-ip4scale20k-rnd-ndrpdr"
+ - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Ethip4-Ip4Scale200K-Rnd-Ndrpdr.64B-.t.c-ethip4-ip4scale200k-rnd-ndrpdr"
+ - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Ethip4-Ip4Scale2M-Rnd-Ndrpdr.64B-.t.c-ethip4-ip4scale2m-rnd-ndrpdr"
+ layout:
+ title: "2n-zn2-xxv710-64b-ip4routing-scale-dpdk-rnd-pdr"
+ layout: "plot-throughput-speedup-analysis"
+
+- type: "plot"
+ title: "Speedup: 2n-zn2-xxv710-64b-features-ip4routing-base-avf-ndr-tsa"
+ algorithm: "plot_tsa_name"
+ output-file: "{DIR[STATIC,VPP]}/2n-zn2-xxv710-64b-features-ip4routing-base-avf-ndr-tsa"
+ data: "plot-vpp-throughput-lat-tsa-2n-zn2"
+ include:
+ - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Avf-Ethip4Udp-Ip4Base-Iacl50Sf-10Kflows-Ndrpdr.64B-.t.c-avf-ethip4udp-ip4base-iacl50sf-10kflows-ndrpdr"
+ - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Avf-Ethip4Udp-Ip4Base-Iacl50Sl-10Kflows-Ndrpdr.64B-.t.c-avf-ethip4udp-ip4base-iacl50sl-10kflows-ndrpdr"
+ - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Avf-Ethip4Udp-Ip4Base-Oacl50Sf-10Kflows-Ndrpdr.64B-.t.c-avf-ethip4udp-ip4base-oacl50sf-10kflows-ndrpdr"
+ - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Avf-Ethip4Udp-Ip4Base-Oacl50Sl-10Kflows-Ndrpdr.64B-.t.c-avf-ethip4udp-ip4base-oacl50sl-10kflows-ndrpdr"
+ - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Avf-ethip4udp-nat44det-h1-p1-s1-Ndrpdr.64B-.t.c-avf-ethip4udp-nat44det-h1-p1-s1-ndrpdr"
+ - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Avf-ethip4udp-nat44det-h1024-p63-s64512-Ndrpdr.64B-.t.c-avf-ethip4udp-nat44det-h1024-p63-s64512-ndrpdr"
+ layout:
+ title: "2n-zn2-xxv710-64b-features-ip4routing-base-avf-ndr"
+ layout: "plot-throughput-speedup-analysis"
+
+- type: "plot"
+ title: "Speedup: 2n-zn2-xxv710-64b-nat44det-ip4routing-stl-bidir-avf-ndr-tsa"
+ algorithm: "plot_tsa_name"
+ output-file: "{DIR[STATIC,VPP]}/2n-zn2-xxv710-64b-nat44det-ip4routing-stl-bidir-avf-ndr-tsa"
+ data: "plot-vpp-throughput-lat-tsa-2n-zn2"
+ include:
+ - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-nat44det-h1024-p63-s64512-ndrpdr.64b-.t.c-avf-ethip4udp-nat44det-h1024-p63-s64512-ndrpdr"
+ - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-nat44det-h4096-p63-s258048-ndrpdr.64b-.t.c-avf-ethip4udp-nat44det-h4096-p63-s258048-ndrpdr"
+ - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-nat44det-h16384-p63-s1032192-ndrpdr.64b-.t.c-avf-ethip4udp-nat44det-h16384-p63-s1032192-ndrpdr"
+ - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-nat44det-h65536-p63-s4128758-ndrpdr.64b-.t.c-avf-ethip4udp-nat44det-h65536-p63-s4128758-ndrpdr"
+ - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-nat44det-h262144-p63-s16515072-ndrpdr.64b-.t.c-avf-ethip4udp-nat44det-h262144-p63-s16515072-ndrpdr"
+ layout:
+ title: "2n-zn2-xxv710-64b-nat44det-ip4routing-stl-bidir-avf-ndr"
+ layout: "plot-throughput-speedup-analysis"
+
+#- type: "plot"
+# title: "Speedup: 2n-zn2-xxv710-64b-nat44ed-ip4routing-stl-unidir-avf-ndr-tsa"
+# algorithm: "plot_tsa_name"
+# output-file: "{DIR[STATIC,VPP]}/2n-zn2-xxv710-64b-nat44ed-ip4routing-stl-unidir-avf-ndr-tsa"
+# data: "plot-vpp-throughput-lat-tsa-2n-zn2"
+# include:
+# - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-nat44ed-h1024-p63-s64512-udir-ndrpdr.64b-.t.c-avf-ethip4udp-nat44ed-h1024-p63-s64512-udir-ndrpdr"
+# - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-nat44ed-h4096-p63-s258048-udir-ndrpdr.64b-.t.c-avf-ethip4udp-nat44ed-h4096-p63-s258048-udir-ndrpdr"
+# - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-nat44ed-h16384-p63-s1032192-udir-ndrpdr.64b-.t.c-avf-ethip4udp-nat44ed-h16384-p63-s1032192-udir-ndrpdr"
+# - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-nat44ed-h65536-p63-s4128768-udir-ndrpdr.64b-.t.c-avf-ethip4udp-nat44ed-h65536-p63-s4128768-udir-ndrpdr"
+# - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-nat44ed-h262144-p63-s16515072-udir-ndrpdr.64b-.t.c-avf-ethip4udp-nat44ed-h262144-p63-s16515072-udir-ndrpdr"
+# layout:
+# title: "2n-zn2-xxv710-64b-nat44ed-ip4routing-stl-unidir-avf-ndr"
+# layout: "plot-throughput-speedup-analysis"
+#
+#- type: "plot"
+# title: "Speedup: 2n-zn2-xxv710-64b-nat44ed-ip4routing-udp-stf-cps-avf-ndr-tsa"
+# algorithm: "plot_tsa_name"
+# output-file: "{DIR[STATIC,VPP]}/2n-zn2-xxv710-64b-nat44ed-ip4routing-udp-stf-cps-avf-ndr-tsa"
+# data: "plot-vpp-throughput-lat-tsa-2n-zn2"
+# include:
+# - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-nat44ed-h1024-p63-s64512-cps-ndrpdr.64b-.t.c-avf-ethip4udp-nat44ed-h1024-p63-s64512-cps-ndrpdr"
+# - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-ip4base-h1024-p63-s64512-cps-ndrpdr.64b-.t.c-avf-ethip4udp-ip4base-h1024-p63-s64512-cps-ndrpdr"
+# - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-nat44ed-h4096-p63-s258048-cps-ndrpdr.64b-.t.c-avf-ethip4udp-nat44ed-h4096-p63-s258048-cps-ndrpdr"
+# - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-ip4base-h4096-p63-s258048-cps-ndrpdr.64b-.t.c-avf-ethip4udp-ip4base-h4096-p63-s258048-cps-ndrpdr"
+# - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-nat44ed-h16384-p63-s1032192-cps-ndrpdr.64b-.t.c-avf-ethip4udp-nat44ed-h16384-p63-s1032192-cps-ndrpdr"
+# - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-ip4base-h16384-p63-s1032192-cps-ndrpdr.64b-.t.c-avf-ethip4udp-ip4base-h16384-p63-s1032192-cps-ndrpdr"
+# - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-nat44ed-h65536-p63-s4128768-cps-ndrpdr.64b-.t.c-avf-ethip4udp-nat44ed-h65536-p63-s4128768-cps-ndrpdr"
+# - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-ip4base-h65536-p63-s4128768-cps-ndrpdr.64b-.t.c-avf-ethip4udp-ip4base-h65536-p63-s4128768-cps-ndrpdr"
+# - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-nat44ed-h262144-p63-s16515072-cps-ndrpdr.64b-.t.c-avf-ethip4udp-nat44ed-h262144-p63-s16515072-cps-ndrpdr"
+# - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-ip4base-h262144-p63-s16515072-cps-ndrpdr.64b-.t.c-avf-ethip4udp-ip4base-h262144-p63-s16515072-cps-ndrpdr"
+# layout:
+# title: "2n-zn2-xxv710-64b-nat44ed-ip4routing-udp-stf-cps-avf-ndr"
+# layout: "plot-throughput-speedup-analysis-cps"
+#
+#- type: "plot"
+# title: "Speedup: 2n-zn2-xxv710-64b-nat44ed-ip4routing-udp-stf-pps-avf-ndr-tsa"
+# algorithm: "plot_tsa_name"
+# output-file: "{DIR[STATIC,VPP]}/2n-zn2-xxv710-64b-nat44ed-ip4routing-udp-stf-pps-avf-ndr-tsa"
+# data: "plot-vpp-throughput-lat-tsa-2n-zn2"
+# include:
+# - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-nat44ed-h1024-p63-s64512-pps-ndrpdr.64b-.t.c-avf-ethip4udp-nat44ed-h1024-p63-s64512-pps-ndrpdr"
+# - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-ip4base-h1024-p63-s64512-pps-ndrpdr.64b-.t.c-avf-ethip4udp-ip4base-h1024-p63-s64512-pps-ndrpdr"
+# - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-nat44ed-h4096-p63-s258048-pps-ndrpdr.64b-.t.c-avf-ethip4udp-nat44ed-h4096-p63-s258048-pps-ndrpdr"
+# - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-ip4base-h4096-p63-s258048-pps-ndrpdr.64b-.t.c-avf-ethip4udp-ip4base-h4096-p63-s258048-pps-ndrpdr"
+# - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-nat44ed-h16384-p63-s1032192-pps-ndrpdr.64b-.t.c-avf-ethip4udp-nat44ed-h16384-p63-s1032192-pps-ndrpdr"
+# - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-ip4base-h16384-p63-s1032192-pps-ndrpdr.64b-.t.c-avf-ethip4udp-ip4base-h16384-p63-s1032192-pps-ndrpdr"
+# - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-nat44ed-h65536-p63-s4128768-pps-ndrpdr.64b-.t.c-avf-ethip4udp-nat44ed-h65536-p63-s4128768-pps-ndrpdr"
+# - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-ip4base-h65536-p63-s4128768-pps-ndrpdr.64b-.t.c-avf-ethip4udp-ip4base-h65536-p63-s4128768-pps-ndrpdr"
+# - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-nat44ed-h262144-p63-s16515072-pps-ndrpdr.64b-.t.c-avf-ethip4udp-nat44ed-h262144-p63-s16515072-pps-ndrpdr"
+# - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-ip4base-h262144-p63-s16515072-pps-ndrpdr.64b-.t.c-avf-ethip4udp-ip4base-h262144-p63-s16515072-pps-ndrpdr"
+# layout:
+# title: "2n-zn2-xxv710-64b-nat44ed-ip4routing-udp-stf-pps-avf-ndr"
+# layout: "plot-throughput-speedup-analysis"
+#
+#- type: "plot"
+# title: "Speedup: 2n-zn2-xxv710-64b-nat44ed-ip4routing-tcp-stf-cps-avf-ndr-tsa"
+# algorithm: "plot_tsa_name"
+# output-file: "{DIR[STATIC,VPP]}/2n-zn2-xxv710-64b-nat44ed-ip4routing-tcp-stf-cps-avf-ndr-tsa"
+# data: "plot-vpp-throughput-lat-tsa-2n-zn2"
+# include:
+# - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4tcp-nat44ed-h1024-p63-s64512-cps-ndrpdr.64b-.t.c-avf-ethip4tcp-nat44ed-h1024-p63-s64512-cps-ndrpdr"
+# - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4tcp-ip4base-h1024-p63-s64512-cps-ndrpdr.64b-.t.c-avf-ethip4tcp-ip4base-h1024-p63-s64512-cps-ndrpdr"
+# - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4tcp-nat44ed-h4096-p63-s258048-cps-ndrpdr.64b-.t.c-avf-ethip4tcp-nat44ed-h4096-p63-s258048-cps-ndrpdr"
+# - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4tcp-ip4base-h4096-p63-s258048-cps-ndrpdr.64b-.t.c-avf-ethip4tcp-ip4base-h4096-p63-s258048-cps-ndrpdr"
+# - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4tcp-nat44ed-h16384-p63-s1032192-cps-ndrpdr.64b-.t.c-avf-ethip4tcp-nat44ed-h16384-p63-s1032192-cps-ndrpdr"
+# - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4tcp-ip4base-h16384-p63-s1032192-cps-ndrpdr.64b-.t.c-avf-ethip4tcp-ip4base-h16384-p63-s1032192-cps-ndrpdr"
+# - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4tcp-nat44ed-h65536-p63-s4128768-cps-ndrpdr.64b-.t.c-avf-ethip4tcp-nat44ed-h65536-p63-s4128768-cps-ndrpdr"
+# - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4tcp-ip4base-h65536-p63-s4128768-cps-ndrpdr.64b-.t.c-avf-ethip4tcp-ip4base-h65536-p63-s4128768-cps-ndrpdr"
+# - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4tcp-nat44ed-h262144-p63-s16515072-cps-ndrpdr.64b-.t.c-avf-ethip4tcp-nat44ed-h262144-p63-s16515072-cps-ndrpdr"
+# - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4tcp-ip4base-h262144-p63-s16515072-cps-ndrpdr.64b-.t.c-avf-ethip4tcp-ip4base-h262144-p63-s16515072-cps-ndrpdr"
+# layout:
+# title: "2n-zn2-xxv710-64b-nat44ed-ip4routing-tcp-stf-cps-avf-ndr"
+# layout: "plot-throughput-speedup-analysis-cps"
+#
+#- type: "plot"
+# title: "Speedup: 2n-zn2-xxv710-64b-nat44ed-ip4routing-tcp-stf-pps-avf-ndr-tsa"
+# algorithm: "plot_tsa_name"
+# output-file: "{DIR[STATIC,VPP]}/2n-zn2-xxv710-64b-nat44ed-ip4routing-tcp-stf-pps-avf-ndr-tsa"
+# data: "plot-vpp-throughput-lat-tsa-2n-zn2"
+# include:
+# - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4tcp-nat44ed-h1024-p63-s64512-pps-ndrpdr.64b-.t.c-avf-ethip4tcp-nat44ed-h1024-p63-s64512-pps-ndrpdr"
+# - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4tcp-ip4base-h1024-p63-s64512-pps-ndrpdr.64b-.t.c-avf-ethip4tcp-ip4base-h1024-p63-s64512-pps-ndrpdr"
+# - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4tcp-nat44ed-h4096-p63-s258048-pps-ndrpdr.64b-.t.c-avf-ethip4tcp-nat44ed-h4096-p63-s258048-pps-ndrpdr"
+# - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4tcp-ip4base-h4096-p63-s258048-pps-ndrpdr.64b-.t.c-avf-ethip4tcp-ip4base-h4096-p63-s258048-pps-ndrpdr"
+# - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4tcp-nat44ed-h16384-p63-s1032192-pps-ndrpdr.64b-.t.c-avf-ethip4tcp-nat44ed-h16384-p63-s1032192-pps-ndrpdr"
+# - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4tcp-ip4base-h16384-p63-s1032192-pps-ndrpdr.64b-.t.c-avf-ethip4tcp-ip4base-h16384-p63-s1032192-pps-ndrpdr"
+# - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4tcp-nat44ed-h65536-p63-s4128768-pps-ndrpdr.64b-.t.c-avf-ethip4tcp-nat44ed-h65536-p63-s4128768-pps-ndrpdr"
+# - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4tcp-ip4base-h65536-p63-s4128768-pps-ndrpdr.64b-.t.c-avf-ethip4tcp-ip4base-h65536-p63-s4128768-pps-ndrpdr"
+# - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4tcp-nat44ed-h262144-p63-s16515072-pps-ndrpdr.64b-.t.c-avf-ethip4tcp-nat44ed-h262144-p63-s16515072-pps-ndrpdr"
+# - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4tcp-ip4base-h262144-p63-s16515072-pps-ndrpdr.64b-.t.c-avf-ethip4tcp-ip4base-h262144-p63-s16515072-pps-ndrpdr"
+# layout:
+# title: "2n-zn2-xxv710-64b-nat44ed-ip4routing-tcp-stf-pps-avf-ndr"
+# layout: "plot-throughput-speedup-analysis"
+
+- type: "plot"
+ title: "Speedup: 2n-zn2-xxv710-64b-features-ip4routing-base-avf-pdr-tsa"
+ algorithm: "plot_tsa_name"
+ output-file: "{DIR[STATIC,VPP]}/2n-zn2-xxv710-64b-features-ip4routing-base-avf-pdr-tsa"
+ data: "plot-vpp-throughput-lat-tsa-2n-zn2"
+ include:
+ - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Avf-Ethip4Udp-Ip4Base-Iacl50Sf-10Kflows-Ndrpdr.64B-.t.c-avf-ethip4udp-ip4base-iacl50sf-10kflows-ndrpdr"
+ - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Avf-Ethip4Udp-Ip4Base-Iacl50Sl-10Kflows-Ndrpdr.64B-.t.c-avf-ethip4udp-ip4base-iacl50sl-10kflows-ndrpdr"
+ - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Avf-Ethip4Udp-Ip4Base-Oacl50Sf-10Kflows-Ndrpdr.64B-.t.c-avf-ethip4udp-ip4base-oacl50sf-10kflows-ndrpdr"
+ - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Avf-Ethip4Udp-Ip4Base-Oacl50Sl-10Kflows-Ndrpdr.64B-.t.c-avf-ethip4udp-ip4base-oacl50sl-10kflows-ndrpdr"
+ - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Avf-ethip4udp-nat44det-h1-p1-s1-Ndrpdr.64B-.t.c-avf-ethip4udp-nat44det-h1-p1-s1-ndrpdr"
+ - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Avf-ethip4udp-nat44det-h1024-p63-s64512-Ndrpdr.64B-.t.c-avf-ethip4udp-nat44det-h1024-p63-s64512-ndrpdr"
+ layout:
+ title: "2n-zn2-xxv710-64b-features-ip4routing-base-avf-pdr"
+ layout: "plot-throughput-speedup-analysis"
+
+- type: "plot"
+ title: "Speedup: 2n-zn2-xxv710-64b-nat44det-ip4routing-stl-bidir-avf-pdr-tsa"
+ algorithm: "plot_tsa_name"
+ output-file: "{DIR[STATIC,VPP]}/2n-zn2-xxv710-64b-nat44det-ip4routing-stl-bidir-avf-pdr-tsa"
+ data: "plot-vpp-throughput-lat-tsa-2n-zn2"
+ include:
+ - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-nat44det-h1024-p63-s64512-ndrpdr.64b-.t.c-avf-ethip4udp-nat44det-h1024-p63-s64512-ndrpdr"
+ - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-nat44det-h4096-p63-s258048-ndrpdr.64b-.t.c-avf-ethip4udp-nat44det-h4096-p63-s258048-ndrpdr"
+ - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-nat44det-h16384-p63-s1032192-ndrpdr.64b-.t.c-avf-ethip4udp-nat44det-h16384-p63-s1032192-ndrpdr"
+ - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-nat44det-h65536-p63-s4128758-ndrpdr.64b-.t.c-avf-ethip4udp-nat44det-h65536-p63-s4128758-ndrpdr"
+ - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-nat44det-h262144-p63-s16515072-ndrpdr.64b-.t.c-avf-ethip4udp-nat44det-h262144-p63-s16515072-ndrpdr"
+ layout:
+ title: "2n-zn2-xxv710-64b-nat44det-ip4routing-stl-bidir-avf-pdr"
+ layout: "plot-throughput-speedup-analysis"
+
+#- type: "plot"
+# title: "Speedup: 2n-zn2-xxv710-64b-nat44ed-ip4routing-stl-unidir-avf-pdr-tsa"
+# algorithm: "plot_tsa_name"
+# output-file: "{DIR[STATIC,VPP]}/2n-zn2-xxv710-64b-nat44ed-ip4routing-stl-unidir-avf-pdr-tsa"
+# data: "plot-vpp-throughput-lat-tsa-2n-zn2"
+# include:
+# - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-nat44ed-h1024-p63-s64512-udir-ndrpdr.64b-.t.c-avf-ethip4udp-nat44ed-h1024-p63-s64512-udir-ndrpdr"
+# - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-nat44ed-h4096-p63-s258048-udir-ndrpdr.64b-.t.c-avf-ethip4udp-nat44ed-h4096-p63-s258048-udir-ndrpdr"
+# - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-nat44ed-h16384-p63-s1032192-udir-ndrpdr.64b-.t.c-avf-ethip4udp-nat44ed-h16384-p63-s1032192-udir-ndrpdr"
+# - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-nat44ed-h65536-p63-s4128768-udir-ndrpdr.64b-.t.c-avf-ethip4udp-nat44ed-h65536-p63-s4128768-udir-ndrpdr"
+# - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-nat44ed-h262144-p63-s16515072-udir-ndrpdr.64b-.t.c-avf-ethip4udp-nat44ed-h262144-p63-s16515072-udir-ndrpdr"
+# layout:
+# title: "2n-zn2-xxv710-64b-nat44ed-ip4routing-stl-unidir-avf-pdr"
+# layout: "plot-throughput-speedup-analysis"
+#
+#- type: "plot"
+# title: "Speedup: 2n-zn2-xxv710-64b-nat44ed-ip4routing-udp-stf-cps-avf-pdr-tsa"
+# algorithm: "plot_tsa_name"
+# output-file: "{DIR[STATIC,VPP]}/2n-zn2-xxv710-64b-nat44ed-ip4routing-udp-stf-cps-avf-pdr-tsa"
+# data: "plot-vpp-throughput-lat-tsa-2n-zn2"
+# include:
+# - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-nat44ed-h1024-p63-s64512-cps-ndrpdr.64b-.t.c-avf-ethip4udp-nat44ed-h1024-p63-s64512-cps-ndrpdr"
+# - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-ip4base-h1024-p63-s64512-cps-ndrpdr.64b-.t.c-avf-ethip4udp-ip4base-h1024-p63-s64512-cps-ndrpdr"
+# - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-nat44ed-h4096-p63-s258048-cps-ndrpdr.64b-.t.c-avf-ethip4udp-nat44ed-h4096-p63-s258048-cps-ndrpdr"
+# - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-ip4base-h4096-p63-s258048-cps-ndrpdr.64b-.t.c-avf-ethip4udp-ip4base-h4096-p63-s258048-cps-ndrpdr"
+# - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-nat44ed-h16384-p63-s1032192-cps-ndrpdr.64b-.t.c-avf-ethip4udp-nat44ed-h16384-p63-s1032192-cps-ndrpdr"
+# - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-ip4base-h16384-p63-s1032192-cps-ndrpdr.64b-.t.c-avf-ethip4udp-ip4base-h16384-p63-s1032192-cps-ndrpdr"
+# - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-nat44ed-h65536-p63-s4128768-cps-ndrpdr.64b-.t.c-avf-ethip4udp-nat44ed-h65536-p63-s4128768-cps-ndrpdr"
+# - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-ip4base-h65536-p63-s4128768-cps-ndrpdr.64b-.t.c-avf-ethip4udp-ip4base-h65536-p63-s4128768-cps-ndrpdr"
+# - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-nat44ed-h262144-p63-s16515072-cps-ndrpdr.64b-.t.c-avf-ethip4udp-nat44ed-h262144-p63-s16515072-cps-ndrpdr"
+# - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-ip4base-h262144-p63-s16515072-cps-ndrpdr.64b-.t.c-avf-ethip4udp-ip4base-h262144-p63-s16515072-cps-ndrpdr"
+# layout:
+# title: "2n-zn2-xxv710-64b-nat44ed-ip4routing-udp-stf-cps-avf-pdr"
+# layout: "plot-throughput-speedup-analysis-cps"
+#
+#- type: "plot"
+# title: "Speedup: 2n-zn2-xxv710-64b-nat44ed-ip4routing-udp-stf-pps-avf-pdr-tsa"
+# algorithm: "plot_tsa_name"
+# output-file: "{DIR[STATIC,VPP]}/2n-zn2-xxv710-64b-nat44ed-ip4routing-udp-stf-pps-avf-pdr-tsa"
+# data: "plot-vpp-throughput-lat-tsa-2n-zn2"
+# include:
+# - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-nat44ed-h1024-p63-s64512-pps-ndrpdr.64b-.t.c-avf-ethip4udp-nat44ed-h1024-p63-s64512-pps-ndrpdr"
+# - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-ip4base-h1024-p63-s64512-pps-ndrpdr.64b-.t.c-avf-ethip4udp-ip4base-h1024-p63-s64512-pps-ndrpdr"
+# - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-nat44ed-h4096-p63-s258048-pps-ndrpdr.64b-.t.c-avf-ethip4udp-nat44ed-h4096-p63-s258048-pps-ndrpdr"
+# - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-ip4base-h4096-p63-s258048-pps-ndrpdr.64b-.t.c-avf-ethip4udp-ip4base-h4096-p63-s258048-pps-ndrpdr"
+# - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-nat44ed-h16384-p63-s1032192-pps-ndrpdr.64b-.t.c-avf-ethip4udp-nat44ed-h16384-p63-s1032192-pps-ndrpdr"
+# - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-ip4base-h16384-p63-s1032192-pps-ndrpdr.64b-.t.c-avf-ethip4udp-ip4base-h16384-p63-s1032192-pps-ndrpdr"
+# - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-nat44ed-h65536-p63-s4128768-pps-ndrpdr.64b-.t.c-avf-ethip4udp-nat44ed-h65536-p63-s4128768-pps-ndrpdr"
+# - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-ip4base-h65536-p63-s4128768-pps-ndrpdr.64b-.t.c-avf-ethip4udp-ip4base-h65536-p63-s4128768-pps-ndrpdr"
+# - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-nat44ed-h262144-p63-s16515072-pps-ndrpdr.64b-.t.c-avf-ethip4udp-nat44ed-h262144-p63-s16515072-pps-ndrpdr"
+# - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-ip4base-h262144-p63-s16515072-pps-ndrpdr.64b-.t.c-avf-ethip4udp-ip4base-h262144-p63-s16515072-pps-ndrpdr"
+# layout:
+# title: "2n-zn2-xxv710-64b-nat44ed-ip4routing-udp-stf-pps-avf-pdr"
+# layout: "plot-throughput-speedup-analysis"
+#
+#- type: "plot"
+# title: "Speedup: 2n-zn2-xxv710-64b-nat44ed-ip4routing-tcp-stf-cps-avf-pdr-tsa"
+# algorithm: "plot_tsa_name"
+# output-file: "{DIR[STATIC,VPP]}/2n-zn2-xxv710-64b-nat44ed-ip4routing-tcp-stf-cps-avf-pdr-tsa"
+# data: "plot-vpp-throughput-lat-tsa-2n-zn2"
+# include:
+# - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4tcp-nat44ed-h1024-p63-s64512-cps-ndrpdr.64b-.t.c-avf-ethip4tcp-nat44ed-h1024-p63-s64512-cps-ndrpdr"
+# - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4tcp-ip4base-h1024-p63-s64512-cps-ndrpdr.64b-.t.c-avf-ethip4tcp-ip4base-h1024-p63-s64512-cps-ndrpdr"
+# - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4tcp-nat44ed-h4096-p63-s258048-cps-ndrpdr.64b-.t.c-avf-ethip4tcp-nat44ed-h4096-p63-s258048-cps-ndrpdr"
+# - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4tcp-ip4base-h4096-p63-s258048-ndrpdr.64b-.t.c-avf-ethip4tcp-ip4base-h4096-p63-s258048-cps-ndrpdr"
+# - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4tcp-nat44ed-h16384-p63-s1032192-cps-ndrpdr.64b-.t.c-avf-ethip4tcp-nat44ed-h16384-p63-s1032192-cps-ndrpdr"
+# - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4tcp-ip4base-h16384-p63-s1032192-cps-ndrpdr.64b-.t.c-avf-ethip4tcp-ip4base-h16384-p63-s1032192-cps-ndrpdr"
+# - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4tcp-nat44ed-h65536-p63-s4128768-cps-ndrpdr.64b-.t.c-avf-ethip4tcp-nat44ed-h65536-p63-s4128768-cps-ndrpdr"
+# - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4tcp-ip4base-h65536-p63-s4128768-cps-ndrpdr.64b-.t.c-avf-ethip4tcp-ip4base-h65536-p63-s4128768-cps-ndrpdr"
+# - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4tcp-nat44ed-h262144-p63-s16515072-cps-ndrpdr.64b-.t.c-avf-ethip4tcp-nat44ed-h262144-p63-s16515072-cps-ndrpdr"
+# - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4tcp-ip4base-h262144-p63-s16515072-cps-ndrpdr.64b-.t.c-avf-ethip4tcp-ip4base-h262144-p63-s16515072-cps-ndrpdr"
+# layout:
+# title: "2n-zn2-xxv710-64b-nat44ed-ip4routing-tcp-stf-cps-avf-pdr"
+# layout: "plot-throughput-speedup-analysis-cps"
+#
+#- type: "plot"
+# title: "Speedup: 2n-zn2-xxv710-64b-nat44ed-ip4routing-tcp-stf-pps-avf-pdr-tsa"
+# algorithm: "plot_tsa_name"
+# output-file: "{DIR[STATIC,VPP]}/2n-zn2-xxv710-64b-nat44ed-ip4routing-tcp-stf-pps-avf-pdr-tsa"
+# data: "plot-vpp-throughput-lat-tsa-2n-zn2"
+# include:
+# - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4tcp-nat44ed-h1024-p63-s64512-pps-ndrpdr.64b-.t.c-avf-ethip4tcp-nat44ed-h1024-p63-s64512-pps-ndrpdr"
+# - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4tcp-ip4base-h1024-p63-s64512-pps-ndrpdr.64b-.t.c-avf-ethip4tcp-ip4base-h1024-p63-s64512-pps-ndrpdr"
+# - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4tcp-nat44ed-h4096-p63-s258048-pps-ndrpdr.64b-.t.c-avf-ethip4tcp-nat44ed-h4096-p63-s258048-pps-ndrpdr"
+# - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4tcp-ip4base-h4096-p63-s258048-pps-ndrpdr.64b-.t.c-avf-ethip4tcp-ip4base-h4096-p63-s258048-pps-ndrpdr"
+# - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4tcp-nat44ed-h16384-p63-s1032192-pps-ndrpdr.64b-.t.c-avf-ethip4tcp-nat44ed-h16384-p63-s1032192-pps-ndrpdr"
+# - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4tcp-ip4base-h16384-p63-s1032192-pps-ndrpdr.64b-.t.c-avf-ethip4tcp-ip4base-h16384-p63-s1032192-pps-ndrpdr"
+# - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4tcp-nat44ed-h65536-p63-s4128768-pps-ndrpdr.64b-.t.c-avf-ethip4tcp-nat44ed-h65536-p63-s4128768-pps-ndrpdr"
+# - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4tcp-ip4base-h65536-p63-s4128768-pps-ndrpdr.64b-.t.c-avf-ethip4tcp-ip4base-h65536-p63-s4128768-pps-ndrpdr"
+# - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4tcp-nat44ed-h262144-p63-s16515072-pps-ndrpdr.64b-.t.c-avf-ethip4tcp-nat44ed-h262144-p63-s16515072-pps-ndrpdr"
+# - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4tcp-ip4base-h262144-p63-s16515072-pps-ndrpdr.64b-.t.c-avf-ethip4tcp-ip4base-h262144-p63-s16515072-pps-ndrpdr"
+# layout:
+# title: "2n-zn2-xxv710-64b-nat44ed-ip4routing-tcp-stf-pps-avf-pdr"
+# layout: "plot-throughput-speedup-analysis"
+
+- type: "plot"
+ title: "Speedup: 2n-zn2-xxv710-64b-features-ip4routing-base-dpdk-ndr-tsa"
+ algorithm: "plot_tsa_name"
+ output-file: "{DIR[STATIC,VPP]}/2n-zn2-xxv710-64b-features-ip4routing-base-dpdk-ndr-tsa"
+ data: "plot-vpp-throughput-lat-tsa-2n-zn2"
+ include:
+ - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Ethip4-Ip4Base-Ndrpdr.64B-.t.c-ethip4-ip4base-ndrpdr"
+ - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Ethip4Udp-Ip4Base-Iacl50Sf-10Kflows-Ndrpdr.64B-.t.c-ethip4udp-ip4base-iacl50sf-10kflows-ndrpdr"
+ - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Ethip4Udp-Ip4Base-Iacl50Sl-10Kflows-Ndrpdr.64B-.t.c-ethip4udp-ip4base-iacl50sl-10kflows-ndrpdr"
+ - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Ethip4Udp-Ip4Base-Oacl50Sf-10Kflows-Ndrpdr.64B-.t.c-ethip4udp-ip4base-oacl50sf-10kflows-ndrpdr"
+ - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Ethip4Udp-Ip4Base-Oacl50Sl-10Kflows-Ndrpdr.64B-.t.c-ethip4udp-ip4base-oacl50sl-10kflows-ndrpdr"
+ - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-ethip4udp-nat44det-h1-p1-s1-Ndrpdr.64B-.t.c-ethip4udp-nat44det-h1-p1-s1-ndrpdr"
+ layout:
+ title: "2n-zn2-xxv710-64b-features-ip4routing-base-dpdk-ndr"
+ layout: "plot-throughput-speedup-analysis"
+
+- type: "plot"
+ title: "Speedup: 2n-zn2-xxv710-64b-features-ip4routing-base-dpdk-pdr-tsa"
+ algorithm: "plot_tsa_name"
+ output-file: "{DIR[STATIC,VPP]}/2n-zn2-xxv710-64b-features-ip4routing-base-dpdk-pdr-tsa"
+ data: "plot-vpp-throughput-lat-tsa-2n-zn2"
+ include:
+ - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Ethip4-Ip4Base-Ndrpdr.64B-.t.c-ethip4-ip4base-ndrpdr"
+ - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Ethip4Udp-Ip4Base-Iacl50Sf-10Kflows-Ndrpdr.64B-.t.c-ethip4udp-ip4base-iacl50sf-10kflows-ndrpdr"
+ - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Ethip4Udp-Ip4Base-Iacl50Sl-10Kflows-Ndrpdr.64B-.t.c-ethip4udp-ip4base-iacl50sl-10kflows-ndrpdr"
+ - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Ethip4Udp-Ip4Base-Oacl50Sf-10Kflows-Ndrpdr.64B-.t.c-ethip4udp-ip4base-oacl50sf-10kflows-ndrpdr"
+ - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Ethip4Udp-Ip4Base-Oacl50Sl-10Kflows-Ndrpdr.64B-.t.c-ethip4udp-ip4base-oacl50sl-10kflows-ndrpdr"
+ - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-ethip4udp-nat44det-h1-p1-s1-Ndrpdr.64B-.t.c-ethip4udp-nat44det-h1-p1-s1-ndrpdr"
+ layout:
+ title: "2n-zn2-xxv710-64b-features-ip4routing-base-dpdk-pdr"
+ layout: "plot-throughput-speedup-analysis"
+
+- type: "plot"
+ title: "Speedup: 2n-zn2-cx556a-64b-rdma-ip4base-ndr-tsa"
+ algorithm: "plot_tsa_name"
+ output-file: "{DIR[STATIC,VPP]}/2n-zn2-cx556a-64b-rdma-ip4base-ndr-tsa"
+ data: "plot-vpp-throughput-lat-tsa-2n-zn2"
+ include:
+ - "Tests.Vpp.Perf.Ip4.2N1L-100Ge2P1Cx556A-Rdma-Dot1Q-Ip4Base-Ndrpdr.64B-.t.c-rdma-dot1q-ip4base-ndrpdr"
+ - "Tests.Vpp.Perf.Ip4.2N1L-100Ge2P1Cx556A-Rdma-Ethip4-Ip4Base-Ndrpdr.64B-.t.c-rdma-ethip4-ip4base-ndrpdr"
+ layout:
+ title: "2n-zn2-cx556a-64b-rdma-ip4base-ndr"
+ layout: "plot-throughput-speedup-analysis"
+
+- type: "plot"
+ title: "Speedup: 2n-zn2-cx556a-64b-rdma-ip4base-pdr-tsa"
+ algorithm: "plot_tsa_name"
+ output-file: "{DIR[STATIC,VPP]}/2n-zn2-cx556a-64b-rdma-ip4base-pdr-tsa"
+ data: "plot-vpp-throughput-lat-tsa-2n-zn2"
+ include:
+ - "Tests.Vpp.Perf.Ip4.2N1L-100Ge2P1Cx556A-Rdma-Dot1Q-Ip4Base-Ndrpdr.64B-.t.c-rdma-dot1q-ip4base-ndrpdr"
+ - "Tests.Vpp.Perf.Ip4.2N1L-100Ge2P1Cx556A-Rdma-Ethip4-Ip4Base-Ndrpdr.64B-.t.c-rdma-ethip4-ip4base-ndrpdr"
+ layout:
+ title: "2n-zn2-cx556a-64b-rdma-ip4base-pdr"
+ layout: "plot-throughput-speedup-analysis"
+
+- type: "plot"
+ title: "Speedup: 2n-zn2-cx556a-64b-rdma-ethip4-ip4scale-ndr-tsa"
+ algorithm: "plot_tsa_name"
+ output-file: "{DIR[STATIC,VPP]}/2n-zn2-cx556a-64b-rdma-ethip4-ip4scale-ndr-tsa"
+ data: "plot-vpp-throughput-lat-tsa-2n-zn2"
+ include:
+ - "Tests.Vpp.Perf.Ip4.2N1L-100Ge2P1Cx556A-Rdma-Ethip4-Ip4Scale20K-Ndrpdr.64B-.t.c-rdma-ethip4-ip4scale20k-ndrpdr"
+ - "Tests.Vpp.Perf.Ip4.2N1L-100Ge2P1Cx556A-Rdma-Ethip4-Ip4Scale20K-Rnd-Ndrpdr.64B-.t.c-rdma-ethip4-ip4scale20k-rnd-ndrpdr"
+ - "Tests.Vpp.Perf.Ip4.2N1L-100Ge2P1Cx556A-Rdma-Ethip4-Ip4Scale200K-Ndrpdr.64B-.t.c-rdma-ethip4-ip4scale200k-ndrpdr"
+ - "Tests.Vpp.Perf.Ip4.2N1L-100Ge2P1Cx556A-Rdma-Ethip4-Ip4Scale200K-Rnd-Ndrpdr.64B-.t.c-rdma-ethip4-ip4scale200k-rnd-ndrpdr"
+ - "Tests.Vpp.Perf.Ip4.2N1L-100Ge2P1Cx556A-Rdma-Ethip4-Ip4Scale2M-Ndrpdr.64B-.t.c-rdma-ethip4-ip4scale2m-ndrpdr"
+ - "Tests.Vpp.Perf.Ip4.2N1L-100Ge2P1Cx556A-Rdma-Ethip4-Ip4Scale2M-Rnd-Ndrpdr.64B-.t.c-rdma-ethip4-ip4scale2m-rnd-ndrpdr"
+ layout:
+ title: "2n-zn2-cx556a-64b-rdma-ethip4-ip4scale-ndr"
+ layout: "plot-throughput-speedup-analysis"
+
+- type: "plot"
+ title: "Speedup: 2n-zn2-cx556a-64b-rdma-ethip4-ip4scale-pdr-tsa"
+ algorithm: "plot_tsa_name"
+ output-file: "{DIR[STATIC,VPP]}/2n-zn2-cx556a-64b-rdma-ethip4-ip4scale-pdr-tsa"
+ data: "plot-vpp-throughput-lat-tsa-2n-zn2"
+ include:
+ - "Tests.Vpp.Perf.Ip4.2N1L-100Ge2P1Cx556A-Rdma-Ethip4-Ip4Scale20K-Ndrpdr.64B-.t.c-rdma-ethip4-ip4scale20k-ndrpdr"
+ - "Tests.Vpp.Perf.Ip4.2N1L-100Ge2P1Cx556A-Rdma-Ethip4-Ip4Scale20K-Rnd-Ndrpdr.64B-.t.c-rdma-ethip4-ip4scale20k-rnd-ndrpdr"
+ - "Tests.Vpp.Perf.Ip4.2N1L-100Ge2P1Cx556A-Rdma-Ethip4-Ip4Scale200K-Ndrpdr.64B-.t.c-rdma-ethip4-ip4scale200k-ndrpdr"
+ - "Tests.Vpp.Perf.Ip4.2N1L-100Ge2P1Cx556A-Rdma-Ethip4-Ip4Scale200K-Rnd-Ndrpdr.64B-.t.c-rdma-ethip4-ip4scale200k-rnd-ndrpdr"
+ - "Tests.Vpp.Perf.Ip4.2N1L-100Ge2P1Cx556A-Rdma-Ethip4-Ip4Scale2M-Ndrpdr.64B-.t.c-rdma-ethip4-ip4scale2m-ndrpdr"
+ - "Tests.Vpp.Perf.Ip4.2N1L-100Ge2P1Cx556A-Rdma-Ethip4-Ip4Scale2M-Rnd-Ndrpdr.64B-.t.c-rdma-ethip4-ip4scale2m-rnd-ndrpdr"
+ layout:
+ title: "2n-zn2-cx556a-64b-rdma-ethip4-ip4scale-pdr"
+ layout: "plot-throughput-speedup-analysis"
+
+- type: "plot"
+ title: "Speedup: 2n-zn2-cx556a-64b-rdma-ethip4-features-ndr-tsa"
+ algorithm: "plot_tsa_name"
+ output-file: "{DIR[STATIC,VPP]}/2n-zn2-cx556a-64b-rdma-ethip4-features-ndr-tsa"
+ data: "plot-vpp-throughput-lat-tsa-2n-zn2"
+ include:
+ - "Tests.Vpp.Perf.Ip4.2N1L-100Ge2P1Cx556A-Rdma-Ethip4Udp-Ip4Base-Iacl50Sf-10Kflows-Ndrpdr.64B-.t.c-rdma-ethip4udp-ip4base-iacl50sf-10kflows-ndrpdr"
+ - "Tests.Vpp.Perf.Ip4.2N1L-100Ge2P1Cx556A-Rdma-Ethip4Udp-Ip4Base-Iacl50Sl-10Kflows-Ndrpdr.64B-.t.c-rdma-ethip4udp-ip4base-iacl50sl-10kflows-ndrpdr"
+ - "Tests.Vpp.Perf.Ip4.2N1L-100Ge2P1Cx556A-Rdma-Ethip4Udp-Ip4Base-Oacl50Sf-10Kflows-Ndrpdr.64B-.t.c-rdma-ethip4udp-ip4base-oacl50sf-10kflows-ndrpdr"
+ - "Tests.Vpp.Perf.Ip4.2N1L-100Ge2P1Cx556A-Rdma-Ethip4Udp-Ip4Base-Oacl50Sl-10Kflows-Ndrpdr.64B-.t.c-rdma-ethip4udp-ip4base-oacl50sl-10kflows-ndrpdr"
+ - "Tests.Vpp.Perf.Ip4.2N1L-100Ge2P1Cx556A-Rdma-ethip4udp-nat44det-h1-p1-s1-Ndrpdr.64B-.t.c-rdma-ethip4udp-nat44det-h1-p1-s1-ndrpdr"
+ - "Tests.Vpp.Perf.Ip4.2N1L-100Ge2P1Cx556A-Rdma-ethip4udp-nat44det-h1024-p63-s64512-Ndrpdr.64B-.t.c-rdma-ethip4udp-nat44det-h1024-p63-s64512-ndrpdr"
+ layout:
+ title: "2n-zn2-cx556a-64b-rdma-ethip4-features-ndr"
+ layout: "plot-throughput-speedup-analysis"
+
+- type: "plot"
+ title: "Speedup: 2n-zn2-cx556a-64b-rdma-ethip4-features-pdr-tsa"
+ algorithm: "plot_tsa_name"
+ output-file: "{DIR[STATIC,VPP]}/2n-zn2-cx556a-64b-rdma-ethip4-features-pdr-tsa"
+ data: "plot-vpp-throughput-lat-tsa-2n-zn2"
+ include:
+ - "Tests.Vpp.Perf.Ip4.2N1L-100Ge2P1Cx556A-Rdma-Ethip4Udp-Ip4Base-Iacl50Sf-10Kflows-Ndrpdr.64B-.t.c-rdma-ethip4udp-ip4base-iacl50sf-10kflows-ndrpdr"
+ - "Tests.Vpp.Perf.Ip4.2N1L-100Ge2P1Cx556A-Rdma-Ethip4Udp-Ip4Base-Iacl50Sl-10Kflows-Ndrpdr.64B-.t.c-rdma-ethip4udp-ip4base-iacl50sl-10kflows-ndrpdr"
+ - "Tests.Vpp.Perf.Ip4.2N1L-100Ge2P1Cx556A-Rdma-Ethip4Udp-Ip4Base-Oacl50Sf-10Kflows-Ndrpdr.64B-.t.c-rdma-ethip4udp-ip4base-oacl50sf-10kflows-ndrpdr"
+ - "Tests.Vpp.Perf.Ip4.2N1L-100Ge2P1Cx556A-Rdma-Ethip4Udp-Ip4Base-Oacl50Sl-10Kflows-Ndrpdr.64B-.t.c-rdma-ethip4udp-ip4base-oacl50sl-10kflows-ndrpdr"
+ - "Tests.Vpp.Perf.Ip4.2N1L-100Ge2P1Cx556A-Rdma-ethip4udp-nat44det-h1-p1-s1-Ndrpdr.64B-.t.c-rdma-ethip4udp-nat44det-h1-p1-s1-ndrpdr"
+ - "Tests.Vpp.Perf.Ip4.2N1L-100Ge2P1Cx556A-Rdma-ethip4udp-nat44det-h1024-p63-s64512-Ndrpdr.64B-.t.c-rdma-ethip4udp-nat44det-h1024-p63-s64512-ndrpdr"
+ layout:
+ title: "2n-zn2-cx556a-64b-rdma-ethip4-features-pdr"
+ layout: "plot-throughput-speedup-analysis"
+
+- type: "plot"
+ title: "Speedup: 2n-zn2-x710-78b-ip6routing-base-scale-[avf,dpdk]-ndr-tsa"
+ algorithm: "plot_tsa_name"
+ output-file: "{DIR[STATIC,VPP]}/2n-zn2-x710-78b-ip6routing-base-scale-[avf,dpdk]-ndr-tsa"
+ data: "plot-vpp-throughput-lat-tsa-2n-zn2"
+ include:
+ - "Tests.Vpp.Perf.Ip6.2N1L-10Ge2P1X710-Avf-Dot1Q-Ip6Base-Ndrpdr.78B-.t.c-avf-dot1q-ip6base-ndrpdr"
+ - "Tests.Vpp.Perf.Ip6.2N1L-10Ge2P1X710-Avf-Ethip6-Ip6Base-Ndrpdr.78B-.t.c-avf-ethip6-ip6base-ndrpdr"
+ - "Tests.Vpp.Perf.Ip6.2N1L-10Ge2P1X710-Avf-Ethip6-Ip6Scale2M-Ndrpdr.78B-.t.c-avf-ethip6-ip6scale2m-ndrpdr"
+ - "Tests.Vpp.Perf.Ip6.2N1L-10Ge2P1X710-Dot1Q-Ip6Base-Ndrpdr.78B-.t.c-dot1q-ip6base-ndrpdr"
+ - "Tests.Vpp.Perf.Ip6.2N1L-10Ge2P1X710-Ethip6-Ip6Base-Ndrpdr.78B-.t.c-ethip6-ip6base-ndrpdr"
+ - "Tests.Vpp.Perf.Ip6.2N1L-10Ge2P1X710-Ethip6-Ip6Scale2M-Ndrpdr.78B-.t.c-ethip6-ip6scale2m-ndrpdr"
+ layout:
+ title: "2n-zn2-x710-78b-ip6routing-base-scale-[avf,dpdk]-ndr"
+ layout: "plot-throughput-speedup-analysis"
+
+- type: "plot"
+ title: "Speedup: 2n-zn2-x710-78b-ip6routing-base-scale-[avf,dpdk]-pdr-tsa"
+ algorithm: "plot_tsa_name"
+ output-file: "{DIR[STATIC,VPP]}/2n-zn2-x710-78b-ip6routing-base-scale-[avf,dpdk]-pdr-tsa"
+ data: "plot-vpp-throughput-lat-tsa-2n-zn2"
+ include:
+ - "Tests.Vpp.Perf.Ip6.2N1L-10Ge2P1X710-Avf-Dot1Q-Ip6Base-Ndrpdr.78B-.t.c-avf-dot1q-ip6base-ndrpdr"
+ - "Tests.Vpp.Perf.Ip6.2N1L-10Ge2P1X710-Avf-Ethip6-Ip6Base-Ndrpdr.78B-.t.c-avf-ethip6-ip6base-ndrpdr"
+ - "Tests.Vpp.Perf.Ip6.2N1L-10Ge2P1X710-Avf-Ethip6-Ip6Scale2M-Ndrpdr.78B-.t.c-avf-ethip6-ip6scale2m-ndrpdr"
+ - "Tests.Vpp.Perf.Ip6.2N1L-10Ge2P1X710-Dot1Q-Ip6Base-Ndrpdr.78B-.t.c-dot1q-ip6base-ndrpdr"
+ - "Tests.Vpp.Perf.Ip6.2N1L-10Ge2P1X710-Ethip6-Ip6Base-Ndrpdr.78B-.t.c-ethip6-ip6base-ndrpdr"
+ - "Tests.Vpp.Perf.Ip6.2N1L-10Ge2P1X710-Ethip6-Ip6Scale2M-Ndrpdr.78B-.t.c-ethip6-ip6scale2m-ndrpdr"
+ layout:
+ title: "2n-zn2-x710-78b-ip6routing-base-scale-[avf,dpdk]-pdr"
+ layout: "plot-throughput-speedup-analysis"
+
+- type: "plot"
+ title: "Speedup: 2n-zn2-xxv710-78b-ip6routing-base-scale-avf-ndr-tsa"
+ algorithm: "plot_tsa_name"
+ output-file: "{DIR[STATIC,VPP]}/2n-zn2-xxv710-78b-ip6routing-base-scale-avf-ndr-tsa"
+ data: "plot-vpp-throughput-lat-tsa-2n-zn2"
+ include:
+ - "Tests.Vpp.Perf.Ip6.2N1L-25Ge2P1Xxv710-Avf-Dot1Q-Ip6Base-Ndrpdr.78B-.t.c-avf-dot1q-ip6base-ndrpdr"
+ - "Tests.Vpp.Perf.Ip6.2N1L-25Ge2P1Xxv710-Avf-Ethip6-Ip6Base-Ndrpdr.78B-.t.c-avf-ethip6-ip6base-ndrpdr"
+ - "Tests.Vpp.Perf.Ip6.2N1L-25Ge2P1Xxv710-Avf-Ethip6-Ip6Scale20K-Ndrpdr.78B-.t.c-avf-ethip6-ip6scale20k-ndrpdr"
+ - "Tests.Vpp.Perf.Ip6.2N1L-25Ge2P1Xxv710-Avf-Ethip6-Ip6Scale200K-Ndrpdr.78B-.t.c-avf-ethip6-ip6scale200k-ndrpdr"
+ - "Tests.Vpp.Perf.Ip6.2N1L-25Ge2P1Xxv710-Avf-Ethip6-Ip6Scale2M-Ndrpdr.78B-.t.c-avf-ethip6-ip6scale2m-ndrpdr"
+ layout:
+ title: "2n-zn2-xxv710-78b-ip6routing-base-scale-avf-ndr"
+ layout: "plot-throughput-speedup-analysis"
+
+- type: "plot"
+ title: "Speedup: 2n-zn2-xxv710-78b-ip6routing-base-scale-avf-pdr-tsa"
+ algorithm: "plot_tsa_name"
+ output-file: "{DIR[STATIC,VPP]}/2n-zn2-xxv710-78b-ip6routing-base-scale-avf-pdr-tsa"
+ data: "plot-vpp-throughput-lat-tsa-2n-zn2"
+ include:
+ - "Tests.Vpp.Perf.Ip6.2N1L-25Ge2P1Xxv710-Avf-Dot1Q-Ip6Base-Ndrpdr.78B-.t.c-avf-dot1q-ip6base-ndrpdr"
+ - "Tests.Vpp.Perf.Ip6.2N1L-25Ge2P1Xxv710-Avf-Ethip6-Ip6Base-Ndrpdr.78B-.t.c-avf-ethip6-ip6base-ndrpdr"
+ - "Tests.Vpp.Perf.Ip6.2N1L-25Ge2P1Xxv710-Avf-Ethip6-Ip6Scale20K-Ndrpdr.78B-.t.c-avf-ethip6-ip6scale20k-ndrpdr"
+ - "Tests.Vpp.Perf.Ip6.2N1L-25Ge2P1Xxv710-Avf-Ethip6-Ip6Scale200K-Ndrpdr.78B-.t.c-avf-ethip6-ip6scale200k-ndrpdr"
+ - "Tests.Vpp.Perf.Ip6.2N1L-25Ge2P1Xxv710-Avf-Ethip6-Ip6Scale2M-Ndrpdr.78B-.t.c-avf-ethip6-ip6scale2m-ndrpdr"
+ layout:
+ title: "2n-zn2-xxv710-78b-ip6routing-base-scale-avf-pdr"
+ layout: "plot-throughput-speedup-analysis"
+
+- type: "plot"
+ title: "Speedup: 2n-zn2-xxv710-78b-ip6routing-base-scale-dpdk-ndr-tsa"
+ algorithm: "plot_tsa_name"
+ output-file: "{DIR[STATIC,VPP]}/2n-zn2-xxv710-78b-ip6routing-base-scale-dpdk-ndr-tsa"
+ data: "plot-vpp-throughput-lat-tsa-2n-zn2"
+ include:
+ - "Tests.Vpp.Perf.Ip6.2N1L-25Ge2P1Xxv710-Dot1Q-Ip6Base-Ndrpdr.78B-.t.c-dot1q-ip6base-ndrpdr"
+ - "Tests.Vpp.Perf.Ip6.2N1L-25Ge2P1Xxv710-Ethip6-Ip6Base-Ndrpdr.78B-.t.c-ethip6-ip6base-ndrpdr"
+ - "Tests.Vpp.Perf.Ip6.2N1L-25Ge2P1Xxv710-Ethip6-Ip6Scale20K-Ndrpdr.78B-.t.c-ethip6-ip6scale20k-ndrpdr"
+ - "Tests.Vpp.Perf.Ip6.2N1L-25Ge2P1Xxv710-Ethip6-Ip6Scale200K-Ndrpdr.78B-.t.c-ethip6-ip6scale200k-ndrpdr"
+ - "Tests.Vpp.Perf.Ip6.2N1L-25Ge2P1Xxv710-Ethip6-Ip6Scale2M-Ndrpdr.78B-.t.c-ethip6-ip6scale2m-ndrpdr"
+ layout:
+ title: "2n-zn2-xxv710-78b-ip6routing-base-scale-dpdk-ndr"
+ layout: "plot-throughput-speedup-analysis"
+
+- type: "plot"
+ title: "Speedup: 2n-zn2-xxv710-78b-ip6routing-base-scale-dpdk-pdr-tsa"
+ algorithm: "plot_tsa_name"
+ output-file: "{DIR[STATIC,VPP]}/2n-zn2-xxv710-78b-ip6routing-base-scale-dpdk-pdr-tsa"
+ data: "plot-vpp-throughput-lat-tsa-2n-zn2"
+ include:
+ - "Tests.Vpp.Perf.Ip6.2N1L-25Ge2P1Xxv710-Dot1Q-Ip6Base-Ndrpdr.78B-.t.c-dot1q-ip6base-ndrpdr"
+ - "Tests.Vpp.Perf.Ip6.2N1L-25Ge2P1Xxv710-Ethip6-Ip6Base-Ndrpdr.78B-.t.c-ethip6-ip6base-ndrpdr"
+ - "Tests.Vpp.Perf.Ip6.2N1L-25Ge2P1Xxv710-Ethip6-Ip6Scale20K-Ndrpdr.78B-.t.c-ethip6-ip6scale20k-ndrpdr"
+ - "Tests.Vpp.Perf.Ip6.2N1L-25Ge2P1Xxv710-Ethip6-Ip6Scale200K-Ndrpdr.78B-.t.c-ethip6-ip6scale200k-ndrpdr"
+ - "Tests.Vpp.Perf.Ip6.2N1L-25Ge2P1Xxv710-Ethip6-Ip6Scale2M-Ndrpdr.78B-.t.c-ethip6-ip6scale2m-ndrpdr"
+ layout:
+ title: "2n-zn2-xxv710-78b-ip6routing-base-scale-dpdk-pdr"
+ layout: "plot-throughput-speedup-analysis"
+
+- type: "plot"
+ title: "Speedup: 2n-zn2-cx556a-78b-rdma-ip6routing-base-scale-ndr-tsa"
+ algorithm: "plot_tsa_name"
+ output-file: "{DIR[STATIC,VPP]}/2n-zn2-cx556a-78b-rdma-ip6routing-base-scale-ndr-tsa"
+ data: "plot-vpp-throughput-lat-tsa-2n-zn2"
+ include:
+ - "Tests.Vpp.Perf.Ip6.2N1L-100Ge2P1Cx556A-Rdma-Dot1Q-Ip6Base-Ndrpdr.78B-.t.c-rdma-dot1q-ip6base-ndrpdr"
+ - "Tests.Vpp.Perf.Ip6.2N1L-100Ge2P1Cx556A-Rdma-Ethip6-Ip6Base-Ndrpdr.78B-.t.c-rdma-ethip6-ip6base-ndrpdr"
+ - "Tests.Vpp.Perf.Ip6.2N1L-100Ge2P1Cx556A-Rdma-Ethip6-Ip6Scale20K-Ndrpdr.78B-.t.c-rdma-ethip6-ip6scale20k-ndrpdr"
+ - "Tests.Vpp.Perf.Ip6.2N1L-100Ge2P1Cx556A-Rdma-Ethip6-Ip6Scale200K-Ndrpdr.78B-.t.c-rdma-ethip6-ip6scale200k-ndrpdr"
+ - "Tests.Vpp.Perf.Ip6.2N1L-100Ge2P1Cx556A-Rdma-Ethip6-Ip6Scale2M-Ndrpdr.78B-.t.c-rdma-ethip6-ip6scale2m-ndrpdr"
+ layout:
+ title: "2n-zn2-cx556a-78b-rdma-ip6routing-base-scale-ndr"
+ layout: "plot-throughput-speedup-analysis"
+
+- type: "plot"
+ title: "Speedup: 2n-zn2-cx556a-78b-rdma-ip6routing-base-scale-pdr-tsa"
+ algorithm: "plot_tsa_name"
+ output-file: "{DIR[STATIC,VPP]}/2n-zn2-cx556a-78b-rdma-ip6routing-base-scale-pdr-tsa"
+ data: "plot-vpp-throughput-lat-tsa-2n-zn2"
+ include:
+ - "Tests.Vpp.Perf.Ip6.2N1L-100Ge2P1Cx556A-Rdma-Dot1Q-Ip6Base-Ndrpdr.78B-.t.c-rdma-dot1q-ip6base-ndrpdr"
+ - "Tests.Vpp.Perf.Ip6.2N1L-100Ge2P1Cx556A-Rdma-Ethip6-Ip6Base-Ndrpdr.78B-.t.c-rdma-ethip6-ip6base-ndrpdr"
+ - "Tests.Vpp.Perf.Ip6.2N1L-100Ge2P1Cx556A-Rdma-Ethip6-Ip6Scale20K-Ndrpdr.78B-.t.c-rdma-ethip6-ip6scale20k-ndrpdr"
+ - "Tests.Vpp.Perf.Ip6.2N1L-100Ge2P1Cx556A-Rdma-Ethip6-Ip6Scale200K-Ndrpdr.78B-.t.c-rdma-ethip6-ip6scale200k-ndrpdr"
+ - "Tests.Vpp.Perf.Ip6.2N1L-100Ge2P1Cx556A-Rdma-Ethip6-Ip6Scale2M-Ndrpdr.78B-.t.c-rdma-ethip6-ip6scale2m-ndrpdr"
+ layout:
+ title: "2n-zn2-cx556a-78b-rdma-ip6routing-base-scale-pdr"
+ layout: "plot-throughput-speedup-analysis"
+
+- type: "plot"
+ title: "Speedup: 2n-zn2-x710-64b-l2switching-base-scale-avf-ndr-tsa"
+ algorithm: "plot_tsa_name"
+ output-file: "{DIR[STATIC,VPP]}/2n-zn2-x710-64b-l2switching-base-scale-avf-ndr-tsa"
+ data: "plot-vpp-throughput-lat-tsa-2n-zn2"
+ include:
+ - "Tests.Vpp.Perf.L2.2N1L-10Ge2P1X710-Avf-Dot1Q-L2Bdbasemaclrn-Ndrpdr.64B-.t.c-avf-dot1q-l2bdbasemaclrn-ndrpdr"
+ - "Tests.Vpp.Perf.L2.2N1L-10Ge2P1X710-Avf-Eth-L2Patch-Ndrpdr.64B-.t.c-avf-eth-l2patch-ndrpdr"
+ - "Tests.Vpp.Perf.L2.2N1L-10Ge2P1X710-Avf-Eth-L2Xcbase-Ndrpdr.64B-.t.c-avf-eth-l2xcbase-ndrpdr"
+ - "Tests.Vpp.Perf.L2.2N1L-10Ge2P1X710-Avf-Eth-L2Bdbasemaclrn-Ndrpdr.64B-.t.c-avf-eth-l2bdbasemaclrn-ndrpdr"
+ - "Tests.Vpp.Perf.L2.2N1L-10Ge2P1X710-Avf-Eth-L2Bdscale1Mmaclrn-Ndrpdr.64B-.t.c-avf-eth-l2bdscale1mmaclrn-ndrpdr"
+ layout:
+ title: "2n-zn2-x710-64b-l2switching-base-scale-avf-ndr"
+ layout: "plot-throughput-speedup-analysis"
+
+- type: "plot"
+ title: "Speedup: 2n-zn2-x710-64b-l2switching-base-scale-avf-pdr-tsa"
+ algorithm: "plot_tsa_name"
+ output-file: "{DIR[STATIC,VPP]}/2n-zn2-x710-64b-l2switching-base-scale-avf-pdr-tsa"
+ data: "plot-vpp-throughput-lat-tsa-2n-zn2"
+ include:
+ - "Tests.Vpp.Perf.L2.2N1L-10Ge2P1X710-Avf-Dot1Q-L2Bdbasemaclrn-Ndrpdr.64B-.t.c-avf-dot1q-l2bdbasemaclrn-ndrpdr"
+ - "Tests.Vpp.Perf.L2.2N1L-10Ge2P1X710-Avf-Eth-L2Patch-Ndrpdr.64B-.t.c-avf-eth-l2patch-ndrpdr"
+ - "Tests.Vpp.Perf.L2.2N1L-10Ge2P1X710-Avf-Eth-L2Xcbase-Ndrpdr.64B-.t.c-avf-eth-l2xcbase-ndrpdr"
+ - "Tests.Vpp.Perf.L2.2N1L-10Ge2P1X710-Avf-Eth-L2Bdbasemaclrn-Ndrpdr.64B-.t.c-avf-eth-l2bdbasemaclrn-ndrpdr"
+ - "Tests.Vpp.Perf.L2.2N1L-10Ge2P1X710-Avf-Eth-L2Bdscale1Mmaclrn-Ndrpdr.64B-.t.c-avf-eth-l2bdscale1mmaclrn-ndrpdr"
+ layout:
+ title: "2n-zn2-x710-64b-l2switching-base-scale-avf-pdr"
+ layout: "plot-throughput-speedup-analysis"
+
+- type: "plot"
+ title: "Speedup: 2n-zn2-x710-64b-l2switching-base-scale-dpdk-ndr-tsa"
+ algorithm: "plot_tsa_name"
+ output-file: "{DIR[STATIC,VPP]}/2n-zn2-x710-64b-l2switching-base-scale-dpdk-ndr-tsa"
+ data: "plot-vpp-throughput-lat-tsa-2n-zn2"
+ include:
+ - "Tests.Vpp.Perf.L2.2N1L-10Ge2P1X710-Dot1Q-L2Bdbasemaclrn-Ndrpdr.64B-.t.c-dot1q-l2bdbasemaclrn-ndrpdr"
+ - "Tests.Vpp.Perf.L2.2N1L-10Ge2P1X710-Eth-L2Patch-Ndrpdr.64B-.t.c-eth-l2patch-ndrpdr"
+ - "Tests.Vpp.Perf.L2.2N1L-10Ge2P1X710-Eth-L2Xcbase-Ndrpdr.64B-.t.c-eth-l2xcbase-ndrpdr"
+ - "Tests.Vpp.Perf.L2.2N1L-10Ge2P1X710-Eth-L2Bdbasemaclrn-Ndrpdr.64B-.t.c-eth-l2bdbasemaclrn-ndrpdr"
+ - "Tests.Vpp.Perf.L2.2N1L-10Ge2P1X710-Eth-L2Bdscale1Mmaclrn-Ndrpdr.64B-.t.c-eth-l2bdscale1mmaclrn-ndrpdr"
+ layout:
+ title: "2n-zn2-x710-64b-l2switching-base-scale-dpdk-ndr"
+ layout: "plot-throughput-speedup-analysis"
+
+- type: "plot"
+ title: "Speedup: 2n-zn2-x710-64b-l2switching-base-scale-dpdk-pdr-tsa"
+ algorithm: "plot_tsa_name"
+ output-file: "{DIR[STATIC,VPP]}/2n-zn2-x710-64b-l2switching-base-scale-dpdk-pdr-tsa"
+ data: "plot-vpp-throughput-lat-tsa-2n-zn2"
+ include:
+ - "Tests.Vpp.Perf.L2.2N1L-10Ge2P1X710-Dot1Q-L2Bdbasemaclrn-Ndrpdr.64B-.t.c-dot1q-l2bdbasemaclrn-ndrpdr"
+ - "Tests.Vpp.Perf.L2.2N1L-10Ge2P1X710-Eth-L2Patch-Ndrpdr.64B-.t.c-eth-l2patch-ndrpdr"
+ - "Tests.Vpp.Perf.L2.2N1L-10Ge2P1X710-Eth-L2Xcbase-Ndrpdr.64B-.t.c-eth-l2xcbase-ndrpdr"
+ - "Tests.Vpp.Perf.L2.2N1L-10Ge2P1X710-Eth-L2Bdbasemaclrn-Ndrpdr.64B-.t.c-eth-l2bdbasemaclrn-ndrpdr"
+ - "Tests.Vpp.Perf.L2.2N1L-10Ge2P1X710-Eth-L2Bdscale1Mmaclrn-Ndrpdr.64B-.t.c-eth-l2bdscale1mmaclrn-ndrpdr"
+ layout:
+ title: "2n-zn2-x710-64b-l2switching-base-scale-dpdk-pdr"
+ layout: "plot-throughput-speedup-analysis"
+
+- type: "plot"
+ title: "Speedup: 2n-zn2-xxv710-64b-l2switching-base-avf-ndr-tsa"
+ algorithm: "plot_tsa_name"
+ output-file: "{DIR[STATIC,VPP]}/2n-zn2-xxv710-64b-l2switching-base-avf-ndr-tsa"
+ data: "plot-vpp-throughput-lat-tsa-2n-zn2"
+ include:
+ - "Tests.Vpp.Perf.L2.2N1L-25Ge2P1Xxv710-Avf-Dot1Q-L2Xcbase-Ndrpdr.64B-.t.c-avf-dot1q-l2xcbase-ndrpdr"
+ - "Tests.Vpp.Perf.L2.2N1L-25Ge2P1Xxv710-Avf-Dot1Q-L2Bdbasemaclrn-Ndrpdr.64B-.t.c-avf-dot1q-l2bdbasemaclrn-ndrpdr"
+ - "Tests.Vpp.Perf.L2.2N1L-25Ge2P1Xxv710-Avf-Dot1Q-L2Bdbasemaclrn-Gbp-Ndrpdr.64B-.t.c-avf-dot1q-l2bdbasemaclrn-gbp-ndrpdr"
+ - "Tests.Vpp.Perf.L2.2N1L-25Ge2P1Xxv710-Avf-Eth-L2Patch-Ndrpdr.64B-.t.c-avf-eth-l2patch-ndrpdr"
+ - "Tests.Vpp.Perf.L2.2N1L-25Ge2P1Xxv710-Avf-Eth-L2Xcbase-Ndrpdr.64B-.t.c-avf-eth-l2xcbase-ndrpdr"
+ - "Tests.Vpp.Perf.L2.2N1L-25Ge2P1Xxv710-Avf-Eth-L2Bdbasemaclrn-Ndrpdr.64B-.t.c-avf-eth-l2bdbasemaclrn-ndrpdr"
+ layout:
+ title: "2n-zn2-xxv710-64b-l2switching-base-avf-ndr"
+ layout: "plot-throughput-speedup-analysis"
+
+- type: "plot"
+ title: "Speedup: 2n-zn2-xxv710-64b-l2switching-base-avf-pdr-tsa"
+ algorithm: "plot_tsa_name"
+ output-file: "{DIR[STATIC,VPP]}/2n-zn2-xxv710-64b-l2switching-base-avf-pdr-tsa"
+ data: "plot-vpp-throughput-lat-tsa-2n-zn2"
+ include:
+ - "Tests.Vpp.Perf.L2.2N1L-25Ge2P1Xxv710-Avf-Dot1Q-L2Xcbase-Ndrpdr.64B-.t.c-avf-dot1q-l2xcbase-ndrpdr"
+ - "Tests.Vpp.Perf.L2.2N1L-25Ge2P1Xxv710-Avf-Dot1Q-L2Bdbasemaclrn-Ndrpdr.64B-.t.c-avf-dot1q-l2bdbasemaclrn-ndrpdr"
+ - "Tests.Vpp.Perf.L2.2N1L-25Ge2P1Xxv710-Avf-Dot1Q-L2Bdbasemaclrn-Gbp-Ndrpdr.64B-.t.c-avf-dot1q-l2bdbasemaclrn-gbp-ndrpdr"
+ - "Tests.Vpp.Perf.L2.2N1L-25Ge2P1Xxv710-Avf-Eth-L2Patch-Ndrpdr.64B-.t.c-avf-eth-l2patch-ndrpdr"
+ - "Tests.Vpp.Perf.L2.2N1L-25Ge2P1Xxv710-Avf-Eth-L2Xcbase-Ndrpdr.64B-.t.c-avf-eth-l2xcbase-ndrpdr"
+ - "Tests.Vpp.Perf.L2.2N1L-25Ge2P1Xxv710-Avf-Eth-L2Bdbasemaclrn-Ndrpdr.64B-.t.c-avf-eth-l2bdbasemaclrn-ndrpdr"
+ layout:
+ title: "2n-zn2-xxv710-64b-l2switching-base-avf-pdr"
+ layout: "plot-throughput-speedup-analysis"
+
+- type: "plot"
+ title: "Speedup: 2n-zn2-xxv710-64b-l2switching-base-scale-avf-ndr-tsa"
+ algorithm: "plot_tsa_name"
+ output-file: "{DIR[STATIC,VPP]}/2n-zn2-xxv710-64b-l2switching-base-scale-avf-ndr-tsa"
+ data: "plot-vpp-throughput-lat-tsa-2n-zn2"
+ include:
+ - "Tests.Vpp.Perf.L2.2N1L-25Ge2P1Xxv710-Avf-Eth-L2Bdbasemaclrn-Ndrpdr.64B-.t.c-avf-eth-l2bdbasemaclrn-ndrpdr"
+ - "Tests.Vpp.Perf.L2.2N1L-25Ge2P1Xxv710-Avf-Eth-L2Bdscale10Kmaclrn-Ndrpdr.64B-.t.c-avf-eth-l2bdscale10kmaclrn-ndrpdr"
+ - "Tests.Vpp.Perf.L2.2N1L-25Ge2P1Xxv710-Avf-Eth-L2Bdscale100Kmaclrn-Ndrpdr.64B-.t.c-avf-eth-l2bdscale100kmaclrn-ndrpdr"
+ - "Tests.Vpp.Perf.L2.2N1L-25Ge2P1Xxv710-Avf-Eth-L2Bdscale1Mmaclrn-Ndrpdr.64B-.t.c-avf-eth-l2bdscale1mmaclrn-ndrpdr"
+ layout:
+ title: "2n-zn2-xxv710-64b-l2switching-base-scale-avf-ndr"
+ layout: "plot-throughput-speedup-analysis"
+
+- type: "plot"
+ title: "Speedup: 2n-zn2-xxv710-64b-l2switching-base-scale-avf-pdr-tsa"
+ algorithm: "plot_tsa_name"
+ output-file: "{DIR[STATIC,VPP]}/2n-zn2-xxv710-64b-l2switching-base-scale-avf-pdr-tsa"
+ data: "plot-vpp-throughput-lat-tsa-2n-zn2"
+ include:
+ - "Tests.Vpp.Perf.L2.2N1L-25Ge2P1Xxv710-Avf-Eth-L2Bdbasemaclrn-Ndrpdr.64B-.t.c-avf-eth-l2bdbasemaclrn-ndrpdr"
+ - "Tests.Vpp.Perf.L2.2N1L-25Ge2P1Xxv710-Avf-Eth-L2Bdscale10Kmaclrn-Ndrpdr.64B-.t.c-avf-eth-l2bdscale10kmaclrn-ndrpdr"
+ - "Tests.Vpp.Perf.L2.2N1L-25Ge2P1Xxv710-Avf-Eth-L2Bdscale100Kmaclrn-Ndrpdr.64B-.t.c-avf-eth-l2bdscale100kmaclrn-ndrpdr"
+ - "Tests.Vpp.Perf.L2.2N1L-25Ge2P1Xxv710-Avf-Eth-L2Bdscale1Mmaclrn-Ndrpdr.64B-.t.c-avf-eth-l2bdscale1mmaclrn-ndrpdr"
+ layout:
+ title: "2n-zn2-xxv710-64b-l2switching-base-scale-avf-pdr"
+ layout: "plot-throughput-speedup-analysis"
+
+- type: "plot"
+ title: "Speedup: 2n-zn2-xxv710-64b-l2switching-base-dpdk-ndr-tsa"
+ algorithm: "plot_tsa_name"
+ output-file: "{DIR[STATIC,VPP]}/2n-zn2-xxv710-64b-l2switching-base-dpdk-ndr-tsa"
+ data: "plot-vpp-throughput-lat-tsa-2n-zn2"
+ include:
+ - "Tests.Vpp.Perf.L2.2N1L-25Ge2P1Xxv710-Dot1Q-L2Xcbase-Ndrpdr.64B-.t.c-dot1q-l2xcbase-ndrpdr"
+ - "Tests.Vpp.Perf.L2.2N1L-25Ge2P1Xxv710-Dot1Q-L2Bdbasemaclrn-Ndrpdr.64B-.t.c-dot1q-l2bdbasemaclrn-ndrpdr"
+ - "Tests.Vpp.Perf.L2.2N1L-25Ge2P1Xxv710-Dot1Q-L2Bdbasemaclrn-Gbp-Ndrpdr.64B-.t.c-dot1q-l2bdbasemaclrn-gbp-ndrpdr"
+ - "Tests.Vpp.Perf.L2.2N1L-25Ge2P1Xxv710-Eth-L2Patch-Ndrpdr.64B-.t.c-eth-l2patch-ndrpdr"
+ - "Tests.Vpp.Perf.L2.2N1L-25Ge2P1Xxv710-Eth-L2Xcbase-Ndrpdr.64B-.t.c-eth-l2xcbase-ndrpdr"
+ - "Tests.Vpp.Perf.L2.2N1L-25Ge2P1Xxv710-Eth-L2Bdbasemaclrn-Ndrpdr.64B-.t.c-eth-l2bdbasemaclrn-ndrpdr"
+ layout:
+ title: "2n-zn2-xxv710-64b-l2switching-base-dpdk-ndr"
+ layout: "plot-throughput-speedup-analysis"
+
+- type: "plot"
+ title: "Speedup: 2n-zn2-xxv710-64b-l2switching-base-dpdk-pdr-tsa"
+ algorithm: "plot_tsa_name"
+ output-file: "{DIR[STATIC,VPP]}/2n-zn2-xxv710-64b-l2switching-base-dpdk-pdr-tsa"
+ data: "plot-vpp-throughput-lat-tsa-2n-zn2"
+ include:
+ - "Tests.Vpp.Perf.L2.2N1L-25Ge2P1Xxv710-Dot1Q-L2Xcbase-Ndrpdr.64B-.t.c-dot1q-l2xcbase-ndrpdr"
+ - "Tests.Vpp.Perf.L2.2N1L-25Ge2P1Xxv710-Dot1Q-L2Bdbasemaclrn-Ndrpdr.64B-.t.c-dot1q-l2bdbasemaclrn-ndrpdr"
+ - "Tests.Vpp.Perf.L2.2N1L-25Ge2P1Xxv710-Dot1Q-L2Bdbasemaclrn-Gbp-Ndrpdr.64B-.t.c-dot1q-l2bdbasemaclrn-gbp-ndrpdr"
+ - "Tests.Vpp.Perf.L2.2N1L-25Ge2P1Xxv710-Eth-L2Patch-Ndrpdr.64B-.t.c-eth-l2patch-ndrpdr"
+ - "Tests.Vpp.Perf.L2.2N1L-25Ge2P1Xxv710-Eth-L2Xcbase-Ndrpdr.64B-.t.c-eth-l2xcbase-ndrpdr"
+ - "Tests.Vpp.Perf.L2.2N1L-25Ge2P1Xxv710-Eth-L2Bdbasemaclrn-Ndrpdr.64B-.t.c-eth-l2bdbasemaclrn-ndrpdr"
+ layout:
+ title: "2n-zn2-xxv710-64b-l2switching-base-dpdk-pdr"
+ layout: "plot-throughput-speedup-analysis"
+
+- type: "plot"
+ title: "Speedup: 2n-zn2-xxv710-64b-l2switching-base-scale-dpdk-ndr-tsa"
+ algorithm: "plot_tsa_name"
+ output-file: "{DIR[STATIC,VPP]}/2n-zn2-xxv710-64b-l2switching-base-scale-dpdk-ndr-tsa"
+ data: "plot-vpp-throughput-lat-tsa-2n-zn2"
+ include:
+ - "Tests.Vpp.Perf.L2.2N1L-25Ge2P1Xxv710-Eth-L2Bdbasemaclrn-Ndrpdr.64B-.t.c-eth-l2bdbasemaclrn-ndrpdr"
+ - "Tests.Vpp.Perf.L2.2N1L-25Ge2P1Xxv710-Eth-L2Bdscale10Kmaclrn-Ndrpdr.64B-.t.c-eth-l2bdscale10kmaclrn-ndrpdr"
+ - "Tests.Vpp.Perf.L2.2N1L-25Ge2P1Xxv710-Eth-L2Bdscale100Kmaclrn-Ndrpdr.64B-.t.c-eth-l2bdscale100kmaclrn-ndrpdr"
+ - "Tests.Vpp.Perf.L2.2N1L-25Ge2P1Xxv710-Eth-L2Bdscale1Mmaclrn-Ndrpdr.64B-.t.c-eth-l2bdscale1mmaclrn-ndrpdr"
+ layout:
+ title: "2n-zn2-xxv710-64b-l2switching-base-scale-dpdk-ndr"
+ layout: "plot-throughput-speedup-analysis"
+
+- type: "plot"
+ title: "Speedup: 2n-zn2-xxv710-64b-l2switching-base-scale-dpdk-pdr-tsa"
+ algorithm: "plot_tsa_name"
+ output-file: "{DIR[STATIC,VPP]}/2n-zn2-xxv710-64b-l2switching-base-scale-dpdk-pdr-tsa"
+ data: "plot-vpp-throughput-lat-tsa-2n-zn2"
+ include:
+ - "Tests.Vpp.Perf.L2.2N1L-25Ge2P1Xxv710-Eth-L2Bdbasemaclrn-Ndrpdr.64B-.t.c-eth-l2bdbasemaclrn-ndrpdr"
+ - "Tests.Vpp.Perf.L2.2N1L-25Ge2P1Xxv710-Eth-L2Bdscale10Kmaclrn-Ndrpdr.64B-.t.c-eth-l2bdscale10kmaclrn-ndrpdr"
+ - "Tests.Vpp.Perf.L2.2N1L-25Ge2P1Xxv710-Eth-L2Bdscale100Kmaclrn-Ndrpdr.64B-.t.c-eth-l2bdscale100kmaclrn-ndrpdr"
+ - "Tests.Vpp.Perf.L2.2N1L-25Ge2P1Xxv710-Eth-L2Bdscale1Mmaclrn-Ndrpdr.64B-.t.c-eth-l2bdscale1mmaclrn-ndrpdr"
+ layout:
+ title: "2n-zn2-xxv710-64b-l2switching-base-scale-dpdk-pdr"
+ layout: "plot-throughput-speedup-analysis"
+
+- type: "plot"
+ title: "Speedup: 2n-zn2-cx556a-64b-rdma-l2switching-base-ndr-tsa"
+ algorithm: "plot_tsa_name"
+ output-file: "{DIR[STATIC,VPP]}/2n-zn2-cx556a-64b-rdma-l2switching-base-ndr-tsa"
+ data: "plot-vpp-throughput-lat-tsa-2n-zn2"
+ include:
+ - "Tests.Vpp.Perf.L2.2N1L-100Ge2P1Cx556A-Rdma-Dot1Q-L2Xcbase-Ndrpdr.64B-.t.c-rdma-dot1q-l2xcbase-ndrpdr"
+ - "Tests.Vpp.Perf.L2.2N1L-100Ge2P1Cx556A-Rdma-Dot1Q-L2Bdbasemaclrn-Ndrpdr.64B-.t.c-rdma-dot1q-l2bdbasemaclrn-ndrpdr"
+ - "Tests.Vpp.Perf.L2.2N1L-100Ge2P1Cx556A-Rdma-Dot1Q-L2Bdbasemaclrn-Gbp-Ndrpdr.64B-.t.c-rdma-dot1q-l2bdbasemaclrn-gbp-ndrpdr"
+ - "Tests.Vpp.Perf.L2.2N1L-100Ge2P1Cx556A-Rdma-Eth-L2Patch-Ndrpdr.64B-.t.c-rdma-eth-l2patch-ndrpdr"
+ - "Tests.Vpp.Perf.L2.2N1L-100Ge2P1Cx556A-Rdma-Eth-L2Xcbase-Ndrpdr.64B-.t.c-rdma-eth-l2xcbase-ndrpdr"
+ - "Tests.Vpp.Perf.L2.2N1L-100Ge2P1Cx556A-Rdma-Eth-L2Bdbasemaclrn-Ndrpdr.64B-.t.c-rdma-eth-l2bdbasemaclrn-ndrpdr"
+ layout:
+ title: "2n-zn2-cx556a-64b-rdma-l2switching-base-ndr"
+ layout: "plot-throughput-speedup-analysis"
+
+- type: "plot"
+ title: "Speedup: 2n-zn2-cx556a-64b-rdma-l2switching-base-pdr-tsa"
+ algorithm: "plot_tsa_name"
+ output-file: "{DIR[STATIC,VPP]}/2n-zn2-cx556a-64b-rdma-l2switching-base-pdr-tsa"
+ data: "plot-vpp-throughput-lat-tsa-2n-zn2"
+ include:
+ - "Tests.Vpp.Perf.L2.2N1L-100Ge2P1Cx556A-Rdma-Dot1Q-L2Xcbase-Ndrpdr.64B-.t.c-rdma-dot1q-l2xcbase-ndrpdr"
+ - "Tests.Vpp.Perf.L2.2N1L-100Ge2P1Cx556A-Rdma-Dot1Q-L2Bdbasemaclrn-Ndrpdr.64B-.t.c-rdma-dot1q-l2bdbasemaclrn-ndrpdr"
+ - "Tests.Vpp.Perf.L2.2N1L-100Ge2P1Cx556A-Rdma-Dot1Q-L2Bdbasemaclrn-Gbp-Ndrpdr.64B-.t.c-rdma-dot1q-l2bdbasemaclrn-gbp-ndrpdr"
+ - "Tests.Vpp.Perf.L2.2N1L-100Ge2P1Cx556A-Rdma-Eth-L2Patch-Ndrpdr.64B-.t.c-rdma-eth-l2patch-ndrpdr"
+ - "Tests.Vpp.Perf.L2.2N1L-100Ge2P1Cx556A-Rdma-Eth-L2Xcbase-Ndrpdr.64B-.t.c-rdma-eth-l2xcbase-ndrpdr"
+ - "Tests.Vpp.Perf.L2.2N1L-100Ge2P1Cx556A-Rdma-Eth-L2Bdbasemaclrn-Ndrpdr.64B-.t.c-rdma-eth-l2bdbasemaclrn-ndrpdr"
+ layout:
+ title: "2n-zn2-cx556a-64b-rdma-l2switching-base-pdr"
+ layout: "plot-throughput-speedup-analysis"
+
+- type: "plot"
+ title: "Speedup: 2n-zn2-cx556a-64b-rdma-l2switching-scale-ndr-tsa"
+ algorithm: "plot_tsa_name"
+ output-file: "{DIR[STATIC,VPP]}/2n-zn2-cx556a-64b-rdma-l2switching-scale-ndr-tsa"
+ data: "plot-vpp-throughput-lat-tsa-2n-zn2"
+ include:
+ - "Tests.Vpp.Perf.L2.2N1L-100Ge2P1Cx556A-Rdma-Eth-L2Bdbasemaclrn-Ndrpdr.64B-.t.c-rdma-eth-l2bdbasemaclrn-ndrpdr"
+ - "Tests.Vpp.Perf.L2.2N1L-100Ge2P1Cx556A-Rdma-Eth-L2Bdscale10Kmaclrn-Ndrpdr.64B-.t.c-rdma-eth-l2bdscale10kmaclrn-ndrpdr"
+ - "Tests.Vpp.Perf.L2.2N1L-100Ge2P1Cx556A-Rdma-Eth-L2Bdscale100Kmaclrn-Ndrpdr.64B-.t.c-rdma-eth-l2bdscale100kmaclrn-ndrpdr"
+ - "Tests.Vpp.Perf.L2.2N1L-100Ge2P1Cx556A-Rdma-Eth-L2Bdscale1Mmaclrn-Ndrpdr.64B-.t.c-rdma-eth-l2bdscale1mmaclrn-ndrpdr"
+ layout:
+ title: "2n-zn2-cx556a-64b-rdma-l2switching-scale-ndr"
+ layout: "plot-throughput-speedup-analysis"
+
+- type: "plot"
+ title: "Speedup: 2n-zn2-cx556a-64b-rdma-l2switching-scale-pdr-tsa"
+ algorithm: "plot_tsa_name"
+ output-file: "{DIR[STATIC,VPP]}/2n-zn2-cx556a-64b-rdma-l2switching-scale-pdr-tsa"
+ data: "plot-vpp-throughput-lat-tsa-2n-zn2"
+ include:
+ - "Tests.Vpp.Perf.L2.2N1L-100Ge2P1Cx556A-Rdma-Eth-L2Bdbasemaclrn-Ndrpdr.64B-.t.c-rdma-eth-l2bdbasemaclrn-ndrpdr"
+ - "Tests.Vpp.Perf.L2.2N1L-100Ge2P1Cx556A-Rdma-Eth-L2Bdscale10Kmaclrn-Ndrpdr.64B-.t.c-rdma-eth-l2bdscale10kmaclrn-ndrpdr"
+ - "Tests.Vpp.Perf.L2.2N1L-100Ge2P1Cx556A-Rdma-Eth-L2Bdscale100Kmaclrn-Ndrpdr.64B-.t.c-rdma-eth-l2bdscale100kmaclrn-ndrpdr"
+ - "Tests.Vpp.Perf.L2.2N1L-100Ge2P1Cx556A-Rdma-Eth-L2Bdscale1Mmaclrn-Ndrpdr.64B-.t.c-rdma-eth-l2bdscale1mmaclrn-ndrpdr"
+ layout:
+ title: "2n-zn2-cx556a-64b-rdma-l2switching-scale-pdr"
+ layout: "plot-throughput-speedup-analysis"
+
+- type: "plot"
+ title: "Speedup: 2n-zn2-xxv710-64b-vhost-base-avf-ndr"
+ algorithm: "plot_tsa_name"
+ output-file: "{DIR[STATIC,VPP]}/2n-zn2-xxv710-64b-vhost-base-avf-ndr-tsa"
+ data: "plot-vpp-throughput-lat-tsa-2n-zn2"
+ include:
+ - "Tests.Vpp.Perf.Vm Vhost.2N1L-25Ge2P1Xxv710-Avf-Dot1Q-L2Xcbase-Eth-2Vhostvr1024-1Vm-Ndrpdr.64B-.t.c-avf-dot1q-l2xcbase-eth-2vhostvr1024-1vm-ndrpdr"
+ - "Tests.Vpp.Perf.Vm Vhost.2N1L-25Ge2P1Xxv710-Avf-Dot1Q-L2Bdbasemaclrn-Eth-2Vhostvr1024-1Vm-Ndrpdr.64B-.t.c-avf-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-ndrpdr"
+ - "Tests.Vpp.Perf.Vm Vhost.2N1L-25Ge2P1Xxv710-Avf-Eth-L2Xcbase-Eth-2Vhostvr1024-1Vm-Ndrpdr.64B-.t.c-avf-eth-l2xcbase-eth-2vhostvr1024-1vm-ndrpdr"
+ - "Tests.Vpp.Perf.Vm Vhost.2N1L-25Ge2P1Xxv710-Avf-Eth-L2Bdbasemaclrn-Eth-2Vhostvr1024-1Vm-Ndrpdr.64B-.t.c-avf-eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-ndrpdr"
+ - "Tests.Vpp.Perf.Vm Vhost.2N1L-25Ge2P1Xxv710-Avf-Ethip4-Ip4Base-Eth-2Vhostvr1024-1Vm-Ndrpdr.64B-.t.c-avf-ethip4-ip4base-eth-2vhostvr1024-1vm-ndrpdr"
+ layout:
+ title: "2n-zn2-xxv710-64b-vhost-base-avf-ndr"
+ layout: "plot-throughput-speedup-analysis"
+
+- type: "plot"
+ title: "Speedup: 2n-zn2-xxv710-64b-vhost-base-avf-pdr"
+ algorithm: "plot_tsa_name"
+ output-file: "{DIR[STATIC,VPP]}/2n-zn2-xxv710-64b-vhost-base-avf-pdr-tsa"
+ data: "plot-vpp-throughput-lat-tsa-2n-zn2"
+ include:
+ - "Tests.Vpp.Perf.Vm Vhost.2N1L-25Ge2P1Xxv710-Avf-Dot1Q-L2Xcbase-Eth-2Vhostvr1024-1Vm-Ndrpdr.64B-.t.c-avf-dot1q-l2xcbase-eth-2vhostvr1024-1vm-ndrpdr"
+ - "Tests.Vpp.Perf.Vm Vhost.2N1L-25Ge2P1Xxv710-Avf-Dot1Q-L2Bdbasemaclrn-Eth-2Vhostvr1024-1Vm-Ndrpdr.64B-.t.c-avf-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-ndrpdr"
+ - "Tests.Vpp.Perf.Vm Vhost.2N1L-25Ge2P1Xxv710-Avf-Eth-L2Xcbase-Eth-2Vhostvr1024-1Vm-Ndrpdr.64B-.t.c-avf-eth-l2xcbase-eth-2vhostvr1024-1vm-ndrpdr"
+ - "Tests.Vpp.Perf.Vm Vhost.2N1L-25Ge2P1Xxv710-Avf-Eth-L2Bdbasemaclrn-Eth-2Vhostvr1024-1Vm-Ndrpdr.64B-.t.c-avf-eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-ndrpdr"
+ - "Tests.Vpp.Perf.Vm Vhost.2N1L-25Ge2P1Xxv710-Avf-Ethip4-Ip4Base-Eth-2Vhostvr1024-1Vm-Ndrpdr.64B-.t.c-avf-ethip4-ip4base-eth-2vhostvr1024-1vm-ndrpdr"
+ layout:
+ title: "2n-zn2-xxv710-64b-vhost-base-avf-pdr"
+ layout: "plot-throughput-speedup-analysis"
+
+- type: "plot"
+ title: "Speedup: 2n-zn2-xxv710-64b-vhost-base-avf-vpp-ndr"
+ algorithm: "plot_tsa_name"
+ output-file: "{DIR[STATIC,VPP]}/2n-zn2-xxv710-64b-vhost-base-avf-vpp-ndr-tsa"
+ data: "plot-vpp-throughput-lat-tsa-2n-zn2"
+ include:
+ - "Tests.Vpp.Perf.Vm Vhost.2N1L-25Ge2P1Xxv710-Avf-Dot1Q-L2Xcbase-Eth-2Vhostvr1024-1Vm-Vppl2Xc-Ndrpdr.64B-.t.c-avf-dot1q-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc-ndrpdr"
+ - "Tests.Vpp.Perf.Vm Vhost.2N1L-25Ge2P1Xxv710-Avf-Dot1Q-L2Bdbasemaclrn-Eth-2Vhostvr1024-1Vm-Vppl2Xc-Ndrpdr.64B-.t.c-avf-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc-ndrpdr"
+ - "Tests.Vpp.Perf.Vm Vhost.2N1L-25Ge2P1Xxv710-Avf-Eth-L2Xcbase-Eth-2Vhostvr1024-1Vm-Vppl2Xc-Ndrpdr.64B-.t.c-avf-eth-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc-ndrpdr"
+ - "Tests.Vpp.Perf.Vm Vhost.2N1L-25Ge2P1Xxv710-Avf-Eth-L2Bdbasemaclrn-Eth-2Vhostvr1024-1Vm-Vppl2Xc-Ndrpdr.64B-.t.c-avf-eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc-ndrpdr"
+ - "Tests.Vpp.Perf.Vm Vhost.2N1L-25Ge2P1Xxv710-Avf-Ethip4-Ip4Base-Eth-2Vhostvr1024-1Vm-Vppip4-Ndrpdr.64B-.t.c-avf-ethip4-ip4base-eth-2vhostvr1024-1vm-vppip4-ndrpdr"
+ layout:
+ title: "2n-zn2-xxv710-64b-vhost-base-avf-vpp-ndr"
+ layout: "plot-throughput-speedup-analysis"
+
+- type: "plot"
+ title: "Speedup: 2n-zn2-xxv710-64b-vhost-base-avf-vpp-pdr"
+ algorithm: "plot_tsa_name"
+ output-file: "{DIR[STATIC,VPP]}/2n-zn2-xxv710-64b-vhost-base-avf-vpp-pdr-tsa"
+ data: "plot-vpp-throughput-lat-tsa-2n-zn2"
+ include:
+ - "Tests.Vpp.Perf.Vm Vhost.2N1L-25Ge2P1Xxv710-Avf-Dot1Q-L2Xcbase-Eth-2Vhostvr1024-1Vm-Vppl2Xc-Ndrpdr.64B-.t.c-avf-dot1q-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc-ndrpdr"
+ - "Tests.Vpp.Perf.Vm Vhost.2N1L-25Ge2P1Xxv710-Avf-Dot1Q-L2Bdbasemaclrn-Eth-2Vhostvr1024-1Vm-Vppl2Xc-Ndrpdr.64B-.t.c-avf-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc-ndrpdr"
+ - "Tests.Vpp.Perf.Vm Vhost.2N1L-25Ge2P1Xxv710-Avf-Eth-L2Xcbase-Eth-2Vhostvr1024-1Vm-Vppl2Xc-Ndrpdr.64B-.t.c-avf-eth-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc-ndrpdr"
+ - "Tests.Vpp.Perf.Vm Vhost.2N1L-25Ge2P1Xxv710-Avf-Eth-L2Bdbasemaclrn-Eth-2Vhostvr1024-1Vm-Vppl2Xc-Ndrpdr.64B-.t.c-avf-eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc-ndrpdr"
+ - "Tests.Vpp.Perf.Vm Vhost.2N1L-25Ge2P1Xxv710-Avf-Ethip4-Ip4Base-Eth-2Vhostvr1024-1Vm-Vppip4-Ndrpdr.64B-.t.c-avf-ethip4-ip4base-eth-2vhostvr1024-1vm-vppip4-ndrpdr"
+ layout:
+ title: "2n-zn2-xxv710-64b-vhost-base-avf-vpp-pdr"
+ layout: "plot-throughput-speedup-analysis"
+
+- type: "plot"
+ title: "Speedup: 2n-zn2-xxv710-64b-vhost-base-dpdk-ndr"
+ algorithm: "plot_tsa_name"
+ output-file: "{DIR[STATIC,VPP]}/2n-zn2-xxv710-64b-vhost-base-dpdk-ndr-tsa"
+ data: "plot-vpp-throughput-lat-tsa-2n-zn2"
+ include:
+ - "Tests.Vpp.Perf.Vm Vhost.2N1L-25Ge2P1Xxv710-Dot1Q-L2Xcbase-Eth-2Vhostvr1024-1Vm-Ndrpdr.64B-.t.c-dot1q-l2xcbase-eth-2vhostvr1024-1vm-ndrpdr"
+ - "Tests.Vpp.Perf.Vm Vhost.2N1L-25Ge2P1Xxv710-Dot1Q-L2Bdbasemaclrn-Eth-2Vhostvr1024-1Vm-Ndrpdr.64B-.t.c-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-ndrpdr"
+ - "Tests.Vpp.Perf.Vm Vhost.2N1L-25Ge2P1Xxv710-Eth-L2Xcbase-Eth-2Vhostvr1024-1Vm-Ndrpdr.64B-.t.c-eth-l2xcbase-eth-2vhostvr1024-1vm-ndrpdr"
+ - "Tests.Vpp.Perf.Vm Vhost.2N1L-25Ge2P1Xxv710-Eth-L2Bdbasemaclrn-Eth-2Vhostvr1024-1Vm-Ndrpdr.64B-.t.c-eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-ndrpdr"
+ - "Tests.Vpp.Perf.Vm Vhost.2N1L-25Ge2P1Xxv710-Ethip4-Ip4Base-Eth-2Vhostvr1024-1Vm-Ndrpdr.64B-.t.c-ethip4-ip4base-eth-2vhostvr1024-1vm-ndrpdr"
+ layout:
+ title: "2n-zn2-xxv710-64b-vhost-base-dpdk-ndr"
+ layout: "plot-throughput-speedup-analysis"
+
+- type: "plot"
+ title: "Speedup: 2n-zn2-xxv710-64b-vhost-base-dpdk-pdr"
+ algorithm: "plot_tsa_name"
+ output-file: "{DIR[STATIC,VPP]}/2n-zn2-xxv710-64b-vhost-base-dpdk-pdr-tsa"
+ data: "plot-vpp-throughput-lat-tsa-2n-zn2"
+ include:
+ - "Tests.Vpp.Perf.Vm Vhost.2N1L-25Ge2P1Xxv710-Dot1Q-L2Xcbase-Eth-2Vhostvr1024-1Vm-Ndrpdr.64B-.t.c-dot1q-l2xcbase-eth-2vhostvr1024-1vm-ndrpdr"
+ - "Tests.Vpp.Perf.Vm Vhost.2N1L-25Ge2P1Xxv710-Dot1Q-L2Bdbasemaclrn-Eth-2Vhostvr1024-1Vm-Ndrpdr.64B-.t.c-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-ndrpdr"
+ - "Tests.Vpp.Perf.Vm Vhost.2N1L-25Ge2P1Xxv710-Eth-L2Xcbase-Eth-2Vhostvr1024-1Vm-Ndrpdr.64B-.t.c-eth-l2xcbase-eth-2vhostvr1024-1vm-ndrpdr"
+ - "Tests.Vpp.Perf.Vm Vhost.2N1L-25Ge2P1Xxv710-Eth-L2Bdbasemaclrn-Eth-2Vhostvr1024-1Vm-Ndrpdr.64B-.t.c-eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-ndrpdr"
+ - "Tests.Vpp.Perf.Vm Vhost.2N1L-25Ge2P1Xxv710-Ethip4-Ip4Base-Eth-2Vhostvr1024-1Vm-Ndrpdr.64B-.t.c-ethip4-ip4base-eth-2vhostvr1024-1vm-ndrpdr"
+ layout:
+ title: "2n-zn2-xxv710-64b-vhost-base-dpdk-pdr"
+ layout: "plot-throughput-speedup-analysis"
+
+- type: "plot"
+ title: "Speedup: 2n-zn2-xxv710-64b-vhost-base-dpdk-vpp-ndr"
+ algorithm: "plot_tsa_name"
+ output-file: "{DIR[STATIC,VPP]}/2n-zn2-xxv710-64b-vhost-base-dpdk-vpp-ndr-tsa"
+ data: "plot-vpp-throughput-lat-tsa-2n-zn2"
+ include:
+ - "Tests.Vpp.Perf.Vm Vhost.2N1L-25Ge2P1Xxv710-Dot1Q-L2Xcbase-Eth-2Vhostvr1024-1Vm-Vppl2Xc-Ndrpdr.64B-.t.c-dot1q-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc-ndrpdr"
+ - "Tests.Vpp.Perf.Vm Vhost.2N1L-25Ge2P1Xxv710-Dot1Q-L2Bdbasemaclrn-Eth-2Vhostvr1024-1Vm-Vppl2Xc-Ndrpdr.64B-.t.c-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc-ndrpdr"
+ - "Tests.Vpp.Perf.Vm Vhost.2N1L-25Ge2P1Xxv710-Eth-L2Xcbase-Eth-2Vhostvr1024-1Vm-Vppl2Xc-Ndrpdr.64B-.t.c-eth-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc-ndrpdr"
+ - "Tests.Vpp.Perf.Vm Vhost.2N1L-25Ge2P1Xxv710-Eth-L2Bdbasemaclrn-Eth-2Vhostvr1024-1Vm-Vppl2Xc-Ndrpdr.64B-.t.c-eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc-ndrpdr"
+ - "Tests.Vpp.Perf.Vm Vhost.2N1L-25Ge2P1Xxv710-Ethip4-Ip4Base-Eth-2Vhostvr1024-1Vm-Vppip4-Ndrpdr.64B-.t.c-ethip4-ip4base-eth-2vhostvr1024-1vm-vppip4-ndrpdr"
+ layout:
+ title: "2n-zn2-xxv710-64b-vhost-base-dpdk-vpp-ndr"
+ layout: "plot-throughput-speedup-analysis"
+
+- type: "plot"
+ title: "Speedup: 2n-zn2-xxv710-64b-vhost-base-dpdk-vpp-pdr"
+ algorithm: "plot_tsa_name"
+ output-file: "{DIR[STATIC,VPP]}/2n-zn2-xxv710-64b-vhost-base-dpdk-vpp-pdr-tsa"
+ data: "plot-vpp-throughput-lat-tsa-2n-zn2"
+ include:
+ - "Tests.Vpp.Perf.Vm Vhost.2N1L-25Ge2P1Xxv710-Dot1Q-L2Xcbase-Eth-2Vhostvr1024-1Vm-Vppl2Xc-Ndrpdr.64B-.t.c-dot1q-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc-ndrpdr"
+ - "Tests.Vpp.Perf.Vm Vhost.2N1L-25Ge2P1Xxv710-Dot1Q-L2Bdbasemaclrn-Eth-2Vhostvr1024-1Vm-Vppl2Xc-Ndrpdr.64B-.t.c-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc-ndrpdr"
+ - "Tests.Vpp.Perf.Vm Vhost.2N1L-25Ge2P1Xxv710-Eth-L2Xcbase-Eth-2Vhostvr1024-1Vm-Vppl2Xc-Ndrpdr.64B-.t.c-eth-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc-ndrpdr"
+ - "Tests.Vpp.Perf.Vm Vhost.2N1L-25Ge2P1Xxv710-Eth-L2Bdbasemaclrn-Eth-2Vhostvr1024-1Vm-Vppl2Xc-Ndrpdr.64B-.t.c-eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc-ndrpdr"
+ - "Tests.Vpp.Perf.Vm Vhost.2N1L-25Ge2P1Xxv710-Ethip4-Ip4Base-Eth-2Vhostvr1024-1Vm-Vppip4-Ndrpdr.64B-.t.c-ethip4-ip4base-eth-2vhostvr1024-1vm-vppip4-ndrpdr"
+ layout:
+ title: "2n-zn2-xxv710-64b-vhost-base-dpdk-vpp-pdr"
+ layout: "plot-throughput-speedup-analysis"
+
+- type: "plot"
+ title: "Speedup: 2n-zn2-cx556a-64b-rdma-l2-vhost-base-ndr-tsa"
+ algorithm: "plot_tsa_name"
+ output-file: "{DIR[STATIC,VPP]}/2n-zn2-cx556a-64b-rdma-l2-vhost-base-ndr-tsa"
+ data: "plot-vpp-throughput-lat-tsa-2n-zn2"
+ include:
+ - "Tests.Vpp.Perf.Vm Vhost.2N1L-100Ge2P1Cx556A-Rdma-Dot1Q-L2Xcbase-Eth-2Vhostvr1024-1Vm-Ndrpdr.64B-.t.c-rdma-dot1q-l2xcbase-eth-2vhostvr1024-1vm-ndrpdr"
+ - "Tests.Vpp.Perf.Vm Vhost.2N1L-100Ge2P1Cx556A-Rdma-Dot1Q-L2Bdbasemaclrn-Eth-2Vhostvr1024-1Vm-Ndrpdr.64B-.t.c-rdma-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-ndrpdr"
+ - "Tests.Vpp.Perf.Vm Vhost.2N1L-100Ge2P1Cx556A-Rdma-Eth-L2Xcbase-Eth-2Vhostvr1024-1Vm-Ndrpdr.64B-.t.c-rdma-eth-l2xcbase-eth-2vhostvr1024-1vm-ndrpdr"
+ - "Tests.Vpp.Perf.Vm Vhost.2N1L-100Ge2P1Cx556A-Rdma-Eth-L2Bdbasemaclrn-Eth-2Vhostvr1024-1Vm-Ndrpdr.64B-.t.c-rdma-eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-ndrpdr"
+ layout:
+ title: "2n-zn2-cx556a-64b-rdma-l2-vhost-base-ndr"
+ layout: "plot-throughput-speedup-analysis"
+
+- type: "plot"
+ title: "Speedup: 2n-zn2-cx556a-64b-rdma-l2-vhost-base-pdr-tsa"
+ algorithm: "plot_tsa_name"
+ output-file: "{DIR[STATIC,VPP]}/2n-zn2-cx556a-64b-rdma-l2-vhost-base-pdr-tsa"
+ data: "plot-vpp-throughput-lat-tsa-2n-zn2"
+ include:
+ - "Tests.Vpp.Perf.Vm Vhost.2N1L-100Ge2P1Cx556A-Rdma-Dot1Q-L2Xcbase-Eth-2Vhostvr1024-1Vm-Ndrpdr.64B-.t.c-rdma-dot1q-l2xcbase-eth-2vhostvr1024-1vm-ndrpdr"
+ - "Tests.Vpp.Perf.Vm Vhost.2N1L-100Ge2P1Cx556A-Rdma-Dot1Q-L2Bdbasemaclrn-Eth-2Vhostvr1024-1Vm-Ndrpdr.64B-.t.c-rdma-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-ndrpdr"
+ - "Tests.Vpp.Perf.Vm Vhost.2N1L-100Ge2P1Cx556A-Rdma-Eth-L2Xcbase-Eth-2Vhostvr1024-1Vm-Ndrpdr.64B-.t.c-rdma-eth-l2xcbase-eth-2vhostvr1024-1vm-ndrpdr"
+ - "Tests.Vpp.Perf.Vm Vhost.2N1L-100Ge2P1Cx556A-Rdma-Eth-L2Bdbasemaclrn-Eth-2Vhostvr1024-1Vm-Ndrpdr.64B-.t.c-rdma-eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-ndrpdr"
+ layout:
+ title: "2n-zn2-cx556a-64b-rdma-l2-vhost-base-pdr"
+ layout: "plot-throughput-speedup-analysis"
+
+- type: "plot"
+ title: "Speedup: 2n-zn2-cx556a-64b-rdma-l2-vhost-vppl2xc-base-ndr-tsa"
+ algorithm: "plot_tsa_name"
+ output-file: "{DIR[STATIC,VPP]}/2n-zn2-cx556a-64b-rdma-l2-vhost-vppl2xc-base-ndr-tsa"
+ data: "plot-vpp-throughput-lat-tsa-2n-zn2"
+ include:
+ - "Tests.Vpp.Perf.Vm Vhost.2N1L-100Ge2P1Cx556A-Rdma-Dot1Q-L2Xcbase-Eth-2Vhostvr1024-1Vm-Vppl2Xc-Ndrpdr.64B-.t.c-rdma-dot1q-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc-ndrpdr"
+ - "Tests.Vpp.Perf.Vm Vhost.2N1L-100Ge2P1Cx556A-Rdma-Dot1Q-L2Bdbasemaclrn-Eth-2Vhostvr1024-1Vm-Vppl2Xc-Ndrpdr.64B-.t.c-rdma-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc-ndrpdr"
+ - "Tests.Vpp.Perf.Vm Vhost.2N1L-100Ge2P1Cx556A-Rdma-Eth-L2Xcbase-Eth-2Vhostvr1024-1Vm-Vppl2Xc-Ndrpdr.64B-.t.c-rdma-eth-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc-ndrpdr"
+ - "Tests.Vpp.Perf.Vm Vhost.2N1L-100Ge2P1Cx556A-Rdma-Eth-L2Bdbasemaclrn-Eth-2Vhostvr1024-1Vm-Vppl2Xc-Ndrpdr.64B-.t.c-rdma-eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc-ndrpdr"
+ layout:
+ title: "2n-zn2-cx556a-64b-2t1c-l2-vhost-vppl2xc-base-ndr"
+ layout: "plot-throughput-speedup-analysis"
+
+- type: "plot"
+ title: "Speedup: 2n-zn2-cx556a-64b-rdma-l2-vhost-vppl2xc-base-pdr-tsa"
+ algorithm: "plot_tsa_name"
+ output-file: "{DIR[STATIC,VPP]}/2n-zn2-cx556a-64b-rdma-l2-vhost-vppl2xc-base-pdr-tsa"
+ data: "plot-vpp-throughput-lat-tsa-2n-zn2"
+ include:
+ - "Tests.Vpp.Perf.Vm Vhost.2N1L-100Ge2P1Cx556A-Rdma-Dot1Q-L2Xcbase-Eth-2Vhostvr1024-1Vm-Vppl2Xc-Ndrpdr.64B-.t.c-rdma-dot1q-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc-ndrpdr"
+ - "Tests.Vpp.Perf.Vm Vhost.2N1L-100Ge2P1Cx556A-Rdma-Dot1Q-L2Bdbasemaclrn-Eth-2Vhostvr1024-1Vm-Vppl2Xc-Ndrpdr.64B-.t.c-rdma-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc-ndrpdr"
+ - "Tests.Vpp.Perf.Vm Vhost.2N1L-100Ge2P1Cx556A-Rdma-Eth-L2Xcbase-Eth-2Vhostvr1024-1Vm-Vppl2Xc-Ndrpdr.64B-.t.c-rdma-eth-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc-ndrpdr"
+ - "Tests.Vpp.Perf.Vm Vhost.2N1L-100Ge2P1Cx556A-Rdma-Eth-L2Bdbasemaclrn-Eth-2Vhostvr1024-1Vm-Vppl2Xc-Ndrpdr.64B-.t.c-rdma-eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc-ndrpdr"
+ layout:
+ title: "2n-zn2-cx556a-64b-rdma-l2-vhost-vppl2xc-base-pdr"
+ layout: "plot-throughput-speedup-analysis"
+
+- type: "plot"
+ title: "Speedup: 2n-zn2-xxv710-114b-vts-l2switching-base-dpdk-ndr-tsa"
+ algorithm: "plot_tsa_name"
+ output-file: "{DIR[STATIC,VPP]}/2n-zn2-xxv710-114b-vts-l2switching-base-dpdk-ndr-tsa"
+ data: "plot-vpp-throughput-lat-tsa-2n-zn2"
+ include:
+ - "Tests.Vpp.Perf.Vts.2N1L-25Ge2P1Xxv710-Avf-Ethip4Vxlan-L2Bdbasemaclrn-Eth-Iacldstbase-Aclpermit-2Vhostvr1024-1Vm-Ndrpdr.114B-.t.c-avf-ethip4vxlan-l2bdbasemaclrn-eth-iacldstbase-aclpermit-2vhostvr1024-1vm-ndrpdr"
+ - "Tests.Vpp.Perf.Vts.2N1L-25Ge2P1Xxv710-Avf-Ethip4Vxlan-L2Bdbasemaclrn-Eth-Iacldstbase-Aclpermitreflect-2Vhostvr1024-1Vm-Ndrpdr.114B-.t.c-avf-ethip4vxlan-l2bdbasemaclrn-eth-iacldstbase-aclpermitreflect-2vhostvr1024-1vm-ndrpdr"
+ - "Tests.Vpp.Perf.Vts.2N1L-25Ge2P1Xxv710-Avf-Ethip4Vxlan-L2Bdbasemaclrn-Eth-Iacldstbase-Noacl-2Vhostvr1024-1Vm-Ndrpdr.114B-.t.c-avf-ethip4vxlan-l2bdbasemaclrn-eth-iacldstbase-noacl-2vhostvr1024-1vm-ndrpdr"
+ - "Tests.Vpp.Perf.Vts.2n1l-25Ge2P1Xxv710-Ethip4Vxlan-L2Bdbasemaclrn-Eth-Iacldstbase-Noacl-2Vhostvr1024-1Vm-Ndrpdr.114B-.t.c-ethip4vxlan-l2bdbasemaclrn-eth-iacldstbase-noacl-2vhostvr1024-1vm-ndrpdr"
+ - "Tests.Vpp.Perf.Vts.2n1l-25Ge2P1Xxv710-Ethip4Vxlan-L2Bdbasemaclrn-Eth-Iacldstbase-Aclpermit-2Vhostvr1024-1Vm-Ndrpdr.114B-.t.c-ethip4vxlan-l2bdbasemaclrn-eth-iacldstbase-aclpermit-2vhostvr1024-1vm-ndrpdr"
+ - "Tests.Vpp.Perf.Vts.2n1l-25Ge2P1Xxv710-Ethip4Vxlan-L2Bdbasemaclrn-Eth-Iacldstbase-Aclpermitreflect-2Vhostvr1024-1Vm-Ndrpdr.114B-.t.c-ethip4vxlan-l2bdbasemaclrn-eth-iacldstbase-aclpermitreflect-2vhostvr1024-1vm-ndrpdr"
+ layout:
+ title: "2n-zn2-xxv710-114b-vts-l2switching-base-[avf,dpdk]-ndr"
+ layout: "plot-throughput-speedup-analysis"
+
+- type: "plot"
+ title: "Speedup: 2n-zn2-xxv710-114b-vts-l2switching-base-dpdk-pdr-tsa"
+ algorithm: "plot_tsa_name"
+ output-file: "{DIR[STATIC,VPP]}/2n-zn2-xxv710-114b-vts-l2switching-base-dpdk-pdr-tsa"
+ data: "plot-vpp-throughput-lat-tsa-2n-zn2"
+ include:
+ - "Tests.Vpp.Perf.Vts.2N1L-25Ge2P1Xxv710-Avf-Ethip4Vxlan-L2Bdbasemaclrn-Eth-Iacldstbase-Aclpermit-2Vhostvr1024-1Vm-Ndrpdr.114B-.t.c-avf-ethip4vxlan-l2bdbasemaclrn-eth-iacldstbase-aclpermit-2vhostvr1024-1vm-ndrpdr"
+ - "Tests.Vpp.Perf.Vts.2N1L-25Ge2P1Xxv710-Avf-Ethip4Vxlan-L2Bdbasemaclrn-Eth-Iacldstbase-Aclpermitreflect-2Vhostvr1024-1Vm-Ndrpdr.114B-.t.c-avf-ethip4vxlan-l2bdbasemaclrn-eth-iacldstbase-aclpermitreflect-2vhostvr1024-1vm-ndrpdr"
+ - "Tests.Vpp.Perf.Vts.2N1L-25Ge2P1Xxv710-Avf-Ethip4Vxlan-L2Bdbasemaclrn-Eth-Iacldstbase-Noacl-2Vhostvr1024-1Vm-Ndrpdr.114B-.t.c-avf-ethip4vxlan-l2bdbasemaclrn-eth-iacldstbase-noacl-2vhostvr1024-1vm-ndrpdr"
+ - "Tests.Vpp.Perf.Vts.2n1l-25Ge2P1Xxv710-Ethip4Vxlan-L2Bdbasemaclrn-Eth-Iacldstbase-Noacl-2Vhostvr1024-1Vm-Ndrpdr.114B-.t.c-ethip4vxlan-l2bdbasemaclrn-eth-iacldstbase-noacl-2vhostvr1024-1vm-ndrpdr"
+ - "Tests.Vpp.Perf.Vts.2n1l-25Ge2P1Xxv710-Ethip4Vxlan-L2Bdbasemaclrn-Eth-Iacldstbase-Aclpermit-2Vhostvr1024-1Vm-Ndrpdr.114B-.t.c-ethip4vxlan-l2bdbasemaclrn-eth-iacldstbase-aclpermit-2vhostvr1024-1vm-ndrpdr"
+ - "Tests.Vpp.Perf.Vts.2n1l-25Ge2P1Xxv710-Ethip4Vxlan-L2Bdbasemaclrn-Eth-Iacldstbase-Aclpermitreflect-2Vhostvr1024-1Vm-Ndrpdr.114B-.t.c-ethip4vxlan-l2bdbasemaclrn-eth-iacldstbase-aclpermitreflect-2vhostvr1024-1vm-ndrpdr"
+ layout:
+ title: "2n-zn2-xxv710-114b-vts-l2switching-base-[avf,dpdk]-pdr"
+ layout: "plot-throughput-speedup-analysis"
+
+# Packet Throughput - DPDK
+
+# 2n-zn2-xxv710
+
+- type: "plot"
+ title: "DPDK Throughput: 2n-zn2-xxv710-64b-2t1c-base-ndr"
+ algorithm: "plot_perf_box_name"
+ output-file: "{DIR[STATIC,DPDK]}/2n-zn2-xxv710-64b-2t1c-base-ndr"
+ data: "plot-dpdk-throughput-latency-2n-zn2"
+ include:
+ - "tests.dpdk.perf.2n1l-25ge2p1xxv710-eth-l2xcbase-testpmd-ndrpdr.64b-2t1c-eth-l2xcbase-testpmd-ndrpdr"
+ - "tests.dpdk.perf.2n1l-25ge2p1xxv710-ethip4-ip4base-l3fwd-ndrpdr.64b-2t1c-ethip4-ip4base-l3fwd-ndrpdr"
+ layout:
+ title: "2n-zn2-xxv710-64b-2t1c-base-ndr"
+ layout: "plot-throughput"
+
+- type: "plot"
+ title: "DPDK Throughput: 2n-zn2-xxv710-64b-4t2c-base-ndr"
+ algorithm: "plot_perf_box_name"
+ output-file: "{DIR[STATIC,DPDK]}/2n-zn2-xxv710-64b-4t2c-base-ndr"
+ data: "plot-dpdk-throughput-latency-2n-zn2"
+ include:
+ - "tests.dpdk.perf.2n1l-25ge2p1xxv710-eth-l2xcbase-testpmd-ndrpdr.64b-4t2c-eth-l2xcbase-testpmd-ndrpdr"
+ - "tests.dpdk.perf.2n1l-25ge2p1xxv710-ethip4-ip4base-l3fwd-ndrpdr.64b-4t2c-ethip4-ip4base-l3fwd-ndrpdr"
+ layout:
+ title: "2n-zn2-xxv710-64b-4t2c-base-ndr"
+ layout: "plot-throughput"
+
+- type: "plot"
+ title: "DPDK Throughput: 2n-zn2-xxv710-64b-2t1c-base-pdr"
+ algorithm: "plot_perf_box_name"
+ output-file: "{DIR[STATIC,DPDK]}/2n-zn2-xxv710-64b-2t1c-base-pdr"
+ data: "plot-dpdk-throughput-latency-2n-zn2"
+ include:
+ - "tests.dpdk.perf.2n1l-25ge2p1xxv710-eth-l2xcbase-testpmd-ndrpdr.64b-2t1c-eth-l2xcbase-testpmd-ndrpdr"
+ - "tests.dpdk.perf.2n1l-25ge2p1xxv710-ethip4-ip4base-l3fwd-ndrpdr.64b-2t1c-ethip4-ip4base-l3fwd-ndrpdr"
+ layout:
+ title: "2n-zn2-xxv710-64b-2t1c-base-pdr"
+ layout: "plot-throughput"
+
+- type: "plot"
+ title: "DPDK Throughput: 2n-zn2-xxv710-64b-4t2c-base-pdr"
+ algorithm: "plot_perf_box_name"
+ output-file: "{DIR[STATIC,DPDK]}/2n-zn2-xxv710-64b-4t2c-base-pdr"
+ data: "plot-dpdk-throughput-latency-2n-zn2"
+ include:
+ - "tests.dpdk.perf.2n1l-25ge2p1xxv710-eth-l2xcbase-testpmd-ndrpdr.64b-4t2c-eth-l2xcbase-testpmd-ndrpdr"
+ - "tests.dpdk.perf.2n1l-25ge2p1xxv710-ethip4-ip4base-l3fwd-ndrpdr.64b-4t2c-ethip4-ip4base-l3fwd-ndrpdr"
+ layout:
+ title: "2n-zn2-xxv710-64b-4t2c-base-pdr"
+ layout: "plot-throughput"
+
+# 2n-zn2-x710
+
+- type: "plot"
+ title: "DPDK Throughput: 2n-zn2-x710-64b-2t1c-base-ndr"
+ algorithm: "plot_perf_box_name"
+ output-file: "{DIR[STATIC,DPDK]}/2n-zn2-x710-64b-2t1c-base-ndr"
+ data: "plot-dpdk-throughput-latency-2n-zn2"
+ include:
+ - "tests.dpdk.perf.2n1l-10ge2p1x710-eth-l2xcbase-testpmd-ndrpdr.64b-2t1c-eth-l2xcbase-testpmd-ndrpdr"
+ - "tests.dpdk.perf.2n1l-10ge2p1x710-ethip4-ip4base-l3fwd-ndrpdr.64b-2t1c-ethip4-ip4base-l3fwd-ndrpdr"
+ layout:
+ title: "2n-zn2-x710-64b-2t1c-base-ndr"
+ layout: "plot-throughput"
+
+- type: "plot"
+ title: "DPDK Throughput: 2n-zn2-x710-64b-4t2c-base-ndr"
+ algorithm: "plot_perf_box_name"
+ output-file: "{DIR[STATIC,DPDK]}/2n-zn2-x710-64b-4t2c-base-ndr"
+ data: "plot-dpdk-throughput-latency-2n-zn2"
+ include:
+ - "tests.dpdk.perf.2n1l-10ge2p1x710-eth-l2xcbase-testpmd-ndrpdr.64b-4t2c-eth-l2xcbase-testpmd-ndrpdr"
+ - "tests.dpdk.perf.2n1l-10ge2p1x710-ethip4-ip4base-l3fwd-ndrpdr.64b-4t2c-ethip4-ip4base-l3fwd-ndrpdr"
+ layout:
+ title: "2n-zn2-x710-64b-4t2c-base-ndr"
+ layout: "plot-throughput"
+
+- type: "plot"
+ title: "DPDK Throughput: 2n-zn2-x710-64b-2t1c-base-pdr"
+ algorithm: "plot_perf_box_name"
+ output-file: "{DIR[STATIC,DPDK]}/2n-zn2-x710-64b-2t1c-base-pdr"
+ data: "plot-dpdk-throughput-latency-2n-zn2"
+ include:
+ - "tests.dpdk.perf.2n1l-10ge2p1x710-eth-l2xcbase-testpmd-ndrpdr.64b-2t1c-eth-l2xcbase-testpmd-ndrpdr"
+ - "tests.dpdk.perf.2n1l-10ge2p1x710-ethip4-ip4base-l3fwd-ndrpdr.64b-2t1c-ethip4-ip4base-l3fwd-ndrpdr"
+ layout:
+ title: "2n-zn2-x710-64b-2t1c-base-pdr"
+ layout: "plot-throughput"
+
+- type: "plot"
+ title: "DPDK Throughput: 2n-zn2-x710-64b-4t2c-base-pdr"
+ algorithm: "plot_perf_box_name"
+ output-file: "{DIR[STATIC,DPDK]}/2n-zn2-x710-64b-4t2c-base-pdr"
+ data: "plot-dpdk-throughput-latency-2n-zn2"
+ include:
+ - "tests.dpdk.perf.2n1l-10ge2p1x710-eth-l2xcbase-testpmd-ndrpdr.64b-4t2c-eth-l2xcbase-testpmd-ndrpdr"
+ - "tests.dpdk.perf.2n1l-10ge2p1x710-ethip4-ip4base-l3fwd-ndrpdr.64b-4t2c-ethip4-ip4base-l3fwd-ndrpdr"
+ layout:
+ title: "2n-zn2-x710-64b-4t2c-base-pdr"
+ layout: "plot-throughput"
+
################################################################################
- type: "plot"
@@ -19541,6 +22695,17 @@
layout: "plot-hdrh-latency-by-percentile"
- type: "plot"
+ title: "Latency by percentile: 2n-zn2"
+ algorithm: "plot_hdrh_lat_by_percentile"
+ output-file: "{DIR[STATIC,VPP]}/hdrh-lat-percentile-2n-zn2"
+ output-file-links: "{DIR[LAT,VPP]}/2n_zn2.rst"
+ target-links: "../../_static/vpp"
+ data: "plot-vpp-hdrh-lat-2n-zn2"
+ filter: "'2T1C' and 'NIC_Intel-XXV710'"
+ layout:
+ layout: "plot-hdrh-latency-by-percentile"
+
+- type: "plot"
title: "Latency by percentile: 3n-skx"
algorithm: "plot_hdrh_lat_by_percentile"
output-file: "{DIR[STATIC,VPP]}/hdrh-lat-percentile-3n-skx"
@@ -19563,6 +22728,17 @@
layout: "plot-hdrh-latency-by-percentile"
- type: "plot"
+ title: "Latency by percentile: 2n-clx-nat44"
+ algorithm: "plot_hdrh_lat_by_percentile"
+ output-file: "{DIR[STATIC,VPP]}/hdrh-lat-percentile-2n-clx"
+ output-file-links: "{DIR[LAT,VPP]}/2n_clx.rst"
+ target-links: "../../_static/vpp"
+ data: "plot-vpp-hdrh-lat-2n-clx-nat44"
+ filter: "'2T1C' and 'NIC_Intel-XXV710'"
+ layout:
+ layout: "plot-hdrh-latency-by-percentile"
+
+- type: "plot"
title: "Latency by percentile: 3n-hsw"
algorithm: "plot_hdrh_lat_by_percentile"
output-file: "{DIR[STATIC,VPP]}/hdrh-lat-percentile-3n-hsw"
@@ -19618,6 +22794,17 @@
layout: "plot-hdrh-latency-by-percentile"
- type: "plot"
+ title: "Latency by percentile: DPDK 2n-zn2"
+ algorithm: "plot_hdrh_lat_by_percentile"
+ output-file: "{DIR[STATIC,DPDK]}/hdrh-lat-percentile-2n-zn2"
+ output-file-links: "{DIR[LAT,DPDK]}/2n_zn2.rst"
+ target-links: "../../_static/dpdk"
+ data: "plot-dpdk-hdrh-lat-2n-zn2"
+ filter: "'2T1C' and 'NIC_Intel-XXV710'"
+ layout:
+ layout: "plot-hdrh-latency-by-percentile"
+
+- type: "plot"
title: "Latency by percentile: DPDK 3n-hsw"
algorithm: "plot_hdrh_lat_by_percentile"
output-file: "{DIR[STATIC,DPDK]}/hdrh-lat-percentile-3n-hsw"
diff --git a/resources/tools/testbed-setup/ansible/inventories/lf_inventory/host_vars/10.30.51.16.yaml b/resources/tools/testbed-setup/ansible/inventories/lf_inventory/host_vars/10.30.51.16.yaml
index 55dee36edc..660e33ee53 100644
--- a/resources/tools/testbed-setup/ansible/inventories/lf_inventory/host_vars/10.30.51.16.yaml
+++ b/resources/tools/testbed-setup/ansible/inventories/lf_inventory/host_vars/10.30.51.16.yaml
@@ -3,9 +3,21 @@
hostname: "t1-tg1"
grub:
+ audit: "0"
+ hpet: "disable"
+ intel_idle.max_cstate: "1"
+ intel_iommu: "on"
+ intel_pstate: "disable"
+ iommu: "pt"
isolcpus: "1-17,19-35"
+ mce: "off"
+ nmi_watchdog: "0"
nohz_full: "1-17,19-35"
+ nosoftlockup: True
+ numa_balancing: "disable"
+ processor.max_cstate: "1"
rcu_nocbs: "1-17,19-35"
+ tsc: "reliable"
sysctl:
kernel:
watchdog_cpumask: "0,18"
diff --git a/resources/tools/testbed-setup/ansible/inventories/lf_inventory/host_vars/10.30.51.17.yaml b/resources/tools/testbed-setup/ansible/inventories/lf_inventory/host_vars/10.30.51.17.yaml
index 9159af66e4..48e5083332 100644
--- a/resources/tools/testbed-setup/ansible/inventories/lf_inventory/host_vars/10.30.51.17.yaml
+++ b/resources/tools/testbed-setup/ansible/inventories/lf_inventory/host_vars/10.30.51.17.yaml
@@ -3,9 +3,21 @@
hostname: "t1-sut1"
grub:
+ audit: "0"
+ hpet: "disable"
+ intel_idle.max_cstate: "1"
+ intel_iommu: "on"
+ intel_pstate: "disable"
+ iommu: "pt"
isolcpus: "1-17,19-35"
+ mce: "off"
+ nmi_watchdog: "0"
nohz_full: "1-17,19-35"
+ nosoftlockup: True
+ numa_balancing: "disable"
+ processor.max_cstate: "1"
rcu_nocbs: "1-17,19-35"
+ tsc: "reliable"
sysctl:
kernel:
watchdog_cpumask: "0,18"
diff --git a/resources/tools/testbed-setup/ansible/inventories/lf_inventory/host_vars/10.30.51.18.yaml b/resources/tools/testbed-setup/ansible/inventories/lf_inventory/host_vars/10.30.51.18.yaml
index cda286675f..f823ed6406 100644
--- a/resources/tools/testbed-setup/ansible/inventories/lf_inventory/host_vars/10.30.51.18.yaml
+++ b/resources/tools/testbed-setup/ansible/inventories/lf_inventory/host_vars/10.30.51.18.yaml
@@ -3,9 +3,21 @@
hostname: "t1-sut2"
grub:
+ audit: "0"
+ hpet: "disable"
+ intel_idle.max_cstate: "1"
+ intel_iommu: "on"
+ intel_pstate: "disable"
+ iommu: "pt"
isolcpus: "1-17,19-35"
+ mce: "off"
+ nmi_watchdog: "0"
nohz_full: "1-17,19-35"
+ nosoftlockup: True
+ numa_balancing: "disable"
+ processor.max_cstate: "1"
rcu_nocbs: "1-17,19-35"
+ tsc: "reliable"
sysctl:
kernel:
watchdog_cpumask: "0,18"
diff --git a/resources/tools/testbed-setup/ansible/inventories/lf_inventory/host_vars/10.30.51.20.yaml b/resources/tools/testbed-setup/ansible/inventories/lf_inventory/host_vars/10.30.51.20.yaml
index 6df8fd1970..68af6e81f7 100644
--- a/resources/tools/testbed-setup/ansible/inventories/lf_inventory/host_vars/10.30.51.20.yaml
+++ b/resources/tools/testbed-setup/ansible/inventories/lf_inventory/host_vars/10.30.51.20.yaml
@@ -3,9 +3,21 @@
hostname: "t2-tg1"
grub:
+ audit: "0"
+ hpet: "disable"
+ intel_idle.max_cstate: "1"
+ intel_iommu: "on"
+ intel_pstate: "disable"
+ iommu: "pt"
isolcpus: "1-17,19-35"
+ mce: "off"
+ nmi_watchdog: "0"
nohz_full: "1-17,19-35"
+ nosoftlockup: True
+ numa_balancing: "disable"
+ processor.max_cstate: "1"
rcu_nocbs: "1-17,19-35"
+ tsc: "reliable"
sysctl:
kernel:
watchdog_cpumask: "0,18"
diff --git a/resources/tools/testbed-setup/ansible/inventories/lf_inventory/host_vars/10.30.51.21.yaml b/resources/tools/testbed-setup/ansible/inventories/lf_inventory/host_vars/10.30.51.21.yaml
index daa0eb14ce..0d43874ae3 100644
--- a/resources/tools/testbed-setup/ansible/inventories/lf_inventory/host_vars/10.30.51.21.yaml
+++ b/resources/tools/testbed-setup/ansible/inventories/lf_inventory/host_vars/10.30.51.21.yaml
@@ -3,9 +3,21 @@
hostname: "t2-sut1"
grub:
+ audit: "0"
+ hpet: "disable"
+ intel_idle.max_cstate: "1"
+ intel_iommu: "on"
+ intel_pstate: "disable"
+ iommu: "pt"
isolcpus: "1-17,19-35"
+ mce: "off"
+ nmi_watchdog: "0"
nohz_full: "1-17,19-35"
+ nosoftlockup: True
+ numa_balancing: "disable"
+ processor.max_cstate: "1"
rcu_nocbs: "1-17,19-35"
+ tsc: "reliable"
sysctl:
kernel:
watchdog_cpumask: "0,18"
diff --git a/resources/tools/testbed-setup/ansible/inventories/lf_inventory/host_vars/10.30.51.22.yaml b/resources/tools/testbed-setup/ansible/inventories/lf_inventory/host_vars/10.30.51.22.yaml
index 49945304b6..797606a353 100644
--- a/resources/tools/testbed-setup/ansible/inventories/lf_inventory/host_vars/10.30.51.22.yaml
+++ b/resources/tools/testbed-setup/ansible/inventories/lf_inventory/host_vars/10.30.51.22.yaml
@@ -3,9 +3,21 @@
hostname: "t2-sut2"
grub:
+ audit: "0"
+ hpet: "disable"
+ intel_idle.max_cstate: "1"
+ intel_iommu: "on"
+ intel_pstate: "disable"
+ iommu: "pt"
isolcpus: "1-17,19-35"
+ mce: "off"
+ nmi_watchdog: "0"
nohz_full: "1-17,19-35"
+ nosoftlockup: True
+ numa_balancing: "disable"
+ processor.max_cstate: "1"
rcu_nocbs: "1-17,19-35"
+ tsc: "reliable"
sysctl:
kernel:
watchdog_cpumask: "0,18"
diff --git a/resources/tools/testbed-setup/ansible/inventories/lf_inventory/host_vars/10.30.51.24.yaml b/resources/tools/testbed-setup/ansible/inventories/lf_inventory/host_vars/10.30.51.24.yaml
index e8c7e98267..25bb536f81 100644
--- a/resources/tools/testbed-setup/ansible/inventories/lf_inventory/host_vars/10.30.51.24.yaml
+++ b/resources/tools/testbed-setup/ansible/inventories/lf_inventory/host_vars/10.30.51.24.yaml
@@ -3,9 +3,21 @@
hostname: "t3-tg1"
grub:
+ audit: "0"
+ hpet: "disable"
+ intel_idle.max_cstate: "1"
+ intel_iommu: "on"
+ intel_pstate: "disable"
+ iommu: "pt"
isolcpus: "1-17,19-35"
+ mce: "off"
+ nmi_watchdog: "0"
nohz_full: "1-17,19-35"
+ nosoftlockup: True
+ numa_balancing: "disable"
+ processor.max_cstate: "1"
rcu_nocbs: "1-17,19-35"
+ tsc: "reliable"
sysctl:
kernel:
watchdog_cpumask: "0,18"
diff --git a/resources/tools/testbed-setup/ansible/inventories/lf_inventory/host_vars/10.30.51.25.yaml b/resources/tools/testbed-setup/ansible/inventories/lf_inventory/host_vars/10.30.51.25.yaml
index e102a55631..db02aa7816 100644
--- a/resources/tools/testbed-setup/ansible/inventories/lf_inventory/host_vars/10.30.51.25.yaml
+++ b/resources/tools/testbed-setup/ansible/inventories/lf_inventory/host_vars/10.30.51.25.yaml
@@ -3,9 +3,21 @@
hostname: "t3-sut1"
grub:
+ audit: "0"
+ hpet: "disable"
+ intel_idle.max_cstate: "1"
+ intel_iommu: "on"
+ intel_pstate: "disable"
+ iommu: "pt"
isolcpus: "1-17,19-35"
+ mce: "off"
+ nmi_watchdog: "0"
nohz_full: "1-17,19-35"
+ nosoftlockup: True
+ numa_balancing: "disable"
+ processor.max_cstate: "1"
rcu_nocbs: "1-17,19-35"
+ tsc: "reliable"
sysctl:
kernel:
watchdog_cpumask: "0,18"
diff --git a/resources/tools/testbed-setup/ansible/inventories/lf_inventory/host_vars/10.30.51.26.yaml b/resources/tools/testbed-setup/ansible/inventories/lf_inventory/host_vars/10.30.51.26.yaml
index 7cfae3635e..0e97bd0fd2 100644
--- a/resources/tools/testbed-setup/ansible/inventories/lf_inventory/host_vars/10.30.51.26.yaml
+++ b/resources/tools/testbed-setup/ansible/inventories/lf_inventory/host_vars/10.30.51.26.yaml
@@ -3,9 +3,21 @@
hostname: "t3-sut2"
grub:
+ audit: "0"
+ hpet: "disable"
+ intel_idle.max_cstate: "1"
+ intel_iommu: "on"
+ intel_pstate: "disable"
+ iommu: "pt"
isolcpus: "1-17,19-35"
+ mce: "off"
+ nmi_watchdog: "0"
nohz_full: "1-17,19-35"
+ nosoftlockup: True
+ numa_balancing: "disable"
+ processor.max_cstate: "1"
rcu_nocbs: "1-17,19-35"
+ tsc: "reliable"
sysctl:
kernel:
watchdog_cpumask: "0,18"
diff --git a/resources/tools/testbed-setup/ansible/inventories/lf_inventory/host_vars/10.30.51.28.yaml b/resources/tools/testbed-setup/ansible/inventories/lf_inventory/host_vars/10.30.51.28.yaml
index 34e03fec7b..46a08bc373 100644
--- a/resources/tools/testbed-setup/ansible/inventories/lf_inventory/host_vars/10.30.51.28.yaml
+++ b/resources/tools/testbed-setup/ansible/inventories/lf_inventory/host_vars/10.30.51.28.yaml
@@ -33,6 +33,25 @@ nomad_options:
driver.raw_exec.enable: 1
docker.cleanup.image: false
docker.privileged.enabled: true
+ docker.volumes.enabled: true
driver.whitelist: "docker,raw_exec,exec"
fingerprint.network.disallow_link_local: true
nomad_servers: [ "10.30.51.32:4647", "10.30.51.33:4647" ]
+
+# Consul settigs.
+consul_nomad_integration: true
+consul_certificates:
+ - src: "{{ vault_consul_v1_ca_file }}"
+ dest: "{{ consul_ca_file }}"
+ - src: "{{ vault_consul_v1_cert_file }}"
+ dest: "{{ consul_cert_file }}"
+ - src: "{{ vault_consul_v1_key_file }}"
+ dest: "{{ consul_key_file }}"
+consul_datacenter: "yul1"
+consul_encrypt: "Y4T+5JGx1C3l2NFBBvkTWQ=="
+consul_node_name: "{{ hostname }}"
+consul_node_role: "client"
+consul_retry_servers:
+ - "10.30.51.30"
+ - "10.30.51.32"
+ - "10.30.51.33" \ No newline at end of file
diff --git a/resources/tools/testbed-setup/ansible/inventories/lf_inventory/host_vars/10.30.51.29.yaml b/resources/tools/testbed-setup/ansible/inventories/lf_inventory/host_vars/10.30.51.29.yaml
index 53eea0d12d..7d71f6af62 100644
--- a/resources/tools/testbed-setup/ansible/inventories/lf_inventory/host_vars/10.30.51.29.yaml
+++ b/resources/tools/testbed-setup/ansible/inventories/lf_inventory/host_vars/10.30.51.29.yaml
@@ -33,5 +33,24 @@ nomad_options:
driver.raw_exec.enable: 1
docker.cleanup.image: false
docker.privileged.enabled: true
+ docker.volumes.enabled: true
driver.whitelist: "docker,raw_exec,exec"
nomad_servers: [ "10.30.51.32:4647", "10.30.51.33:4647" ]
+
+# Consul settigs.
+consul_nomad_integration: true
+consul_certificates:
+ - src: "{{ vault_consul_v1_ca_file }}"
+ dest: "{{ consul_ca_file }}"
+ - src: "{{ vault_consul_v1_cert_file }}"
+ dest: "{{ consul_cert_file }}"
+ - src: "{{ vault_consul_v1_key_file }}"
+ dest: "{{ consul_key_file }}"
+consul_datacenter: "yul1"
+consul_encrypt: "Y4T+5JGx1C3l2NFBBvkTWQ=="
+consul_node_name: "{{ hostname }}"
+consul_node_role: "client"
+consul_retry_servers:
+ - "10.30.51.30"
+ - "10.30.51.32"
+ - "10.30.51.33" \ No newline at end of file
diff --git a/resources/tools/testbed-setup/ansible/inventories/lf_inventory/host_vars/10.30.51.30.yaml b/resources/tools/testbed-setup/ansible/inventories/lf_inventory/host_vars/10.30.51.30.yaml
index 5b8133ef84..e563a17d4a 100644
--- a/resources/tools/testbed-setup/ansible/inventories/lf_inventory/host_vars/10.30.51.30.yaml
+++ b/resources/tools/testbed-setup/ansible/inventories/lf_inventory/host_vars/10.30.51.30.yaml
@@ -34,7 +34,25 @@ nomad_options:
driver.raw_exec.enable: 1
docker.cleanup.image: false
docker.privileged.enabled: true
+ docker.volumes.enabled: true
driver.whitelist: "docker,raw_exec,exec"
fingerprint.network.disallow_link_local: true
nomad_retry_servers: [ "10.30.51.32", "10.30.51.33" ]
nomad_servers: [ "10.30.51.32:4647", "10.30.51.33:4647" ]
+
+# Consul settigs.
+consul_nomad_integration: true
+consul_certificates:
+ - src: "{{ vault_consul_v1_ca_file }}"
+ dest: "{{ consul_ca_file }}"
+ - src: "{{ vault_consul_v1_cert_file }}"
+ dest: "{{ consul_cert_file }}"
+ - src: "{{ vault_consul_v1_key_file }}"
+ dest: "{{ consul_key_file }}"
+consul_datacenter: "yul1"
+consul_encrypt: "Y4T+5JGx1C3l2NFBBvkTWQ=="
+consul_node_name: "{{ hostname }}"
+consul_node_role: "both"
+consul_retry_servers:
+ - "10.30.51.32"
+ - "10.30.51.33" \ No newline at end of file
diff --git a/resources/tools/testbed-setup/ansible/inventories/lf_inventory/host_vars/10.30.51.32.yaml b/resources/tools/testbed-setup/ansible/inventories/lf_inventory/host_vars/10.30.51.32.yaml
index fe5c37935e..4f6c65a26c 100644
--- a/resources/tools/testbed-setup/ansible/inventories/lf_inventory/host_vars/10.30.51.32.yaml
+++ b/resources/tools/testbed-setup/ansible/inventories/lf_inventory/host_vars/10.30.51.32.yaml
@@ -34,6 +34,24 @@ nomad_options:
driver.raw_exec.enable: 1
docker.cleanup.image: false
docker.privileged.enabled: true
+ docker.volumes.enabled: true
driver.whitelist: "docker,raw_exec,exec"
nomad_retry_servers: [ "10.30.51.33", "10.30.51.30" ]
nomad_servers: [ "10.30.51.32:4647" ]
+
+# Consul settigs.
+consul_nomad_integration: true
+consul_certificates:
+ - src: "{{ vault_consul_v1_ca_file }}"
+ dest: "{{ consul_ca_file }}"
+ - src: "{{ vault_consul_v1_cert_file }}"
+ dest: "{{ consul_cert_file }}"
+ - src: "{{ vault_consul_v1_key_file }}"
+ dest: "{{ consul_key_file }}"
+consul_datacenter: "yul1"
+consul_encrypt: "Y4T+5JGx1C3l2NFBBvkTWQ=="
+consul_node_name: "{{ hostname }}"
+consul_node_role: "both"
+consul_retry_servers:
+ - "10.30.51.30"
+ - "10.30.51.33" \ No newline at end of file
diff --git a/resources/tools/testbed-setup/ansible/inventories/lf_inventory/host_vars/10.30.51.33.yaml b/resources/tools/testbed-setup/ansible/inventories/lf_inventory/host_vars/10.30.51.33.yaml
index ef8ced7262..18fd62b0dc 100644
--- a/resources/tools/testbed-setup/ansible/inventories/lf_inventory/host_vars/10.30.51.33.yaml
+++ b/resources/tools/testbed-setup/ansible/inventories/lf_inventory/host_vars/10.30.51.33.yaml
@@ -34,6 +34,24 @@ nomad_options:
driver.raw_exec.enable: 1
docker.cleanup.image: false
docker.privileged.enabled: true
+ docker.volumes.enabled: true
driver.whitelist: "docker,raw_exec,exec"
nomad_retry_servers: [ "10.30.51.32", "10.30.51.30" ]
nomad_servers: [ "10.30.51.33:4647" ]
+
+# Consul settigs.
+consul_nomad_integration: true
+consul_certificates:
+ - src: "{{ vault_consul_v1_ca_file }}"
+ dest: "{{ consul_ca_file }}"
+ - src: "{{ vault_consul_v1_cert_file }}"
+ dest: "{{ consul_cert_file }}"
+ - src: "{{ vault_consul_v1_key_file }}"
+ dest: "{{ consul_key_file }}"
+consul_datacenter: "yul1"
+consul_encrypt: "Y4T+5JGx1C3l2NFBBvkTWQ=="
+consul_node_name: "{{ hostname }}"
+consul_node_role: "both"
+consul_retry_servers:
+ - "10.30.51.30"
+ - "10.30.51.32" \ No newline at end of file
diff --git a/resources/tools/testbed-setup/ansible/inventories/lf_inventory/host_vars/10.30.51.34.yaml b/resources/tools/testbed-setup/ansible/inventories/lf_inventory/host_vars/10.30.51.34.yaml
index d0afca9164..3f4cf574ce 100644
--- a/resources/tools/testbed-setup/ansible/inventories/lf_inventory/host_vars/10.30.51.34.yaml
+++ b/resources/tools/testbed-setup/ansible/inventories/lf_inventory/host_vars/10.30.51.34.yaml
@@ -34,6 +34,25 @@ nomad_options:
driver.raw_exec.enable: 1
docker.cleanup.image: false
docker.privileged.enabled: true
+ docker.volumes.enabled: true
driver.whitelist: "docker,raw_exec,exec"
nomad_retry_servers: [ "10.30.51.32", "10.30.51.33" ]
nomad_servers: [ "10.30.51.33:4647" ]
+
+# Consul settigs.
+consul_nomad_integration: true
+consul_certificates:
+ - src: "{{ vault_consul_v1_ca_file }}"
+ dest: "{{ consul_ca_file }}"
+ - src: "{{ vault_consul_v1_cert_file }}"
+ dest: "{{ consul_cert_file }}"
+ - src: "{{ vault_consul_v1_key_file }}"
+ dest: "{{ consul_key_file }}"
+consul_datacenter: "yul1"
+consul_encrypt: "Y4T+5JGx1C3l2NFBBvkTWQ=="
+consul_node_name: "{{ hostname }}"
+consul_node_role: "client"
+consul_retry_servers:
+ - "10.30.51.30"
+ - "10.30.51.32"
+ - "10.30.51.33" \ No newline at end of file
diff --git a/resources/tools/testbed-setup/ansible/inventories/lf_inventory/host_vars/10.30.51.35.yaml b/resources/tools/testbed-setup/ansible/inventories/lf_inventory/host_vars/10.30.51.35.yaml
index 75980daf86..2ee23fa60a 100644
--- a/resources/tools/testbed-setup/ansible/inventories/lf_inventory/host_vars/10.30.51.35.yaml
+++ b/resources/tools/testbed-setup/ansible/inventories/lf_inventory/host_vars/10.30.51.35.yaml
@@ -34,6 +34,25 @@ nomad_options:
driver.raw_exec.enable: 1
docker.cleanup.image: false
docker.privileged.enabled: true
+ docker.volumes.enabled: true
driver.whitelist: "docker,raw_exec,exec"
nomad_retry_servers: [ "10.30.51.32", "10.30.51.33" ]
nomad_servers: [ "10.30.51.33:4647" ]
+
+# Consul settigs.
+consul_nomad_integration: true
+consul_certificates:
+ - src: "{{ vault_consul_v1_ca_file }}"
+ dest: "{{ consul_ca_file }}"
+ - src: "{{ vault_consul_v1_cert_file }}"
+ dest: "{{ consul_cert_file }}"
+ - src: "{{ vault_consul_v1_key_file }}"
+ dest: "{{ consul_key_file }}"
+consul_datacenter: "yul1"
+consul_encrypt: "Y4T+5JGx1C3l2NFBBvkTWQ=="
+consul_node_name: "{{ hostname }}"
+consul_node_role: "client"
+consul_retry_servers:
+ - "10.30.51.30"
+ - "10.30.51.32"
+ - "10.30.51.33" \ No newline at end of file
diff --git a/resources/tools/testbed-setup/ansible/inventories/lf_inventory/host_vars/10.30.51.36.yaml b/resources/tools/testbed-setup/ansible/inventories/lf_inventory/host_vars/10.30.51.36.yaml
index 3469427eac..f57c8df45f 100644
--- a/resources/tools/testbed-setup/ansible/inventories/lf_inventory/host_vars/10.30.51.36.yaml
+++ b/resources/tools/testbed-setup/ansible/inventories/lf_inventory/host_vars/10.30.51.36.yaml
@@ -3,13 +3,19 @@
hostname: "s17-t33-sut1"
grub:
+ audit: "0"
+ intel_iommu: "on"
isolcpus: "1-15,17-31,33-47,49-63"
+ nmi_watchdog: "0"
nohz_full: "1-15,17-31,33-47,49-63"
+ nosoftlockup: True
+ processor.max_cstate: "1"
rcu_nocbs: "1-15,17-31,33-47,49-63"
sysctl:
kernel:
watchdog_cpumask: "0,16,32,48"
vm:
- nr_hugepages: 4096
- max_map_count: 20000
+ nr_hugepages: 32768
+
+inventory_ipmi_hostname: '10.30.50.36'
cpu_microarchitecture: "taishan"
diff --git a/resources/tools/testbed-setup/ansible/inventories/lf_inventory/host_vars/10.30.51.37.yaml b/resources/tools/testbed-setup/ansible/inventories/lf_inventory/host_vars/10.30.51.37.yaml
index 64a56a8ebb..90fe27e275 100644
--- a/resources/tools/testbed-setup/ansible/inventories/lf_inventory/host_vars/10.30.51.37.yaml
+++ b/resources/tools/testbed-setup/ansible/inventories/lf_inventory/host_vars/10.30.51.37.yaml
@@ -3,13 +3,19 @@
hostname: "s18-t33-sut2"
grub:
+ audit: "0"
+ intel_iommu: "on"
isolcpus: "1-15,17-31,33-47,49-63"
+ nmi_watchdog: "0"
nohz_full: "1-15,17-31,33-47,49-63"
+ nosoftlockup: True
+ processor.max_cstate: "1"
rcu_nocbs: "1-15,17-31,33-47,49-63"
sysctl:
kernel:
watchdog_cpumask: "0,16,32,48"
vm:
- nr_hugepages: 4096
- max_map_count: 20000
+ nr_hugepages: 32768
+
+inventory_ipmi_hostname: '10.30.50.37'
cpu_microarchitecture: "taishan"
diff --git a/resources/tools/testbed-setup/ansible/inventories/lf_inventory/host_vars/10.30.51.39.yaml b/resources/tools/testbed-setup/ansible/inventories/lf_inventory/host_vars/10.30.51.39.yaml
index 41b3ed2238..7e27795128 100644
--- a/resources/tools/testbed-setup/ansible/inventories/lf_inventory/host_vars/10.30.51.39.yaml
+++ b/resources/tools/testbed-setup/ansible/inventories/lf_inventory/host_vars/10.30.51.39.yaml
@@ -33,9 +33,31 @@ nomad_name: "{{ hostname }}-{{ ansible_architecture }}"
nomad_node_role: "client"
nomad_node_class: "builder"
nomad_options:
- driver.raw_exec.enable: 0
+ driver.raw_exec.enable: 1
docker.cleanup.image: false
docker.privileged.enabled: true
+ docker.volumes.enabled: true
driver.whitelist: "docker,raw_exec,exec"
nomad_servers: [ "10.30.51.32:4647", "10.30.51.33:4647" ]
nomad_cpu_total_compute: "40000"
+
+# Consul settigs.
+consul_nomad_integration: true
+consul_certificates:
+ - src: "{{ vault_consul_v1_ca_file }}"
+ dest: "{{ consul_ca_file }}"
+ - src: "{{ vault_consul_v1_cert_file }}"
+ dest: "{{ consul_cert_file }}"
+ - src: "{{ vault_consul_v1_key_file }}"
+ dest: "{{ consul_key_file }}"
+consul_datacenter: "yul1"
+consul_encrypt: "Y4T+5JGx1C3l2NFBBvkTWQ=="
+consul_node_name: "{{ hostname }}"
+consul_node_role: "client"
+consul_retry_servers:
+ - "10.30.51.30"
+ - "10.30.51.32"
+ - "10.30.51.33"
+ - "10.32.8.14"
+ - "10.32.8.15"
+ - "10.32.8.16" \ No newline at end of file
diff --git a/resources/tools/testbed-setup/ansible/inventories/lf_inventory/host_vars/10.30.51.40.yaml b/resources/tools/testbed-setup/ansible/inventories/lf_inventory/host_vars/10.30.51.40.yaml
index a91ed66a33..7b98b3e72b 100644
--- a/resources/tools/testbed-setup/ansible/inventories/lf_inventory/host_vars/10.30.51.40.yaml
+++ b/resources/tools/testbed-setup/ansible/inventories/lf_inventory/host_vars/10.30.51.40.yaml
@@ -33,9 +33,31 @@ nomad_name: "{{ hostname }}-{{ ansible_architecture }}"
nomad_node_role: "client"
nomad_node_class: "builder"
nomad_options:
- driver.raw_exec.enable: 0
+ driver.raw_exec.enable: 1
docker.cleanup.image: false
docker.privileged.enabled: true
+ docker.volumes.enabled: true
driver.whitelist: "docker,raw_exec,exec"
nomad_servers: [ "10.30.51.32:4647", "10.30.51.33:4647" ]
nomad_cpu_total_compute: "40000"
+
+# Consul settigs.
+consul_nomad_integration: true
+consul_certificates:
+ - src: "{{ vault_consul_v1_ca_file }}"
+ dest: "{{ consul_ca_file }}"
+ - src: "{{ vault_consul_v1_cert_file }}"
+ dest: "{{ consul_cert_file }}"
+ - src: "{{ vault_consul_v1_key_file }}"
+ dest: "{{ consul_key_file }}"
+consul_datacenter: "yul1"
+consul_encrypt: "Y4T+5JGx1C3l2NFBBvkTWQ=="
+consul_node_name: "{{ hostname }}"
+consul_node_role: "client"
+consul_retry_servers:
+ - "10.30.51.30"
+ - "10.30.51.32"
+ - "10.30.51.33"
+ - "10.32.8.14"
+ - "10.32.8.15"
+ - "10.32.8.16" \ No newline at end of file
diff --git a/resources/tools/testbed-setup/ansible/inventories/lf_inventory/host_vars/10.30.51.44.yaml b/resources/tools/testbed-setup/ansible/inventories/lf_inventory/host_vars/10.30.51.44.yaml
index d84043903e..2b06831186 100644
--- a/resources/tools/testbed-setup/ansible/inventories/lf_inventory/host_vars/10.30.51.44.yaml
+++ b/resources/tools/testbed-setup/ansible/inventories/lf_inventory/host_vars/10.30.51.44.yaml
@@ -3,9 +3,21 @@
hostname: "s3-t21-sut1"
grub:
+ audit: "0"
+ hpet: "disable"
+ intel_idle.max_cstate: "1"
+ intel_iommu: "on"
+ intel_pstate: "disable"
+ iommu: "pt"
isolcpus: "1-27,29-55,57-83,85-111"
+ mce: "off"
+ nmi_watchdog: "0"
nohz_full: "1-27,29-55,57-83,85-111"
+ nosoftlockup: True
+ numa_balancing: "disable"
+ processor.max_cstate: "1"
rcu_nocbs: "1-27,29-55,57-83,85-111"
+ tsc: "reliable"
sysctl:
kernel:
watchdog_cpumask: "0,28,56,84"
diff --git a/resources/tools/testbed-setup/ansible/inventories/lf_inventory/host_vars/10.30.51.45.yaml b/resources/tools/testbed-setup/ansible/inventories/lf_inventory/host_vars/10.30.51.45.yaml
index be5e1c686d..9818f826c9 100644
--- a/resources/tools/testbed-setup/ansible/inventories/lf_inventory/host_vars/10.30.51.45.yaml
+++ b/resources/tools/testbed-setup/ansible/inventories/lf_inventory/host_vars/10.30.51.45.yaml
@@ -3,9 +3,21 @@
hostname: "s4-t21-tg1"
grub:
+ audit: "0"
+ hpet: "disable"
+ intel_idle.max_cstate: "1"
+ intel_iommu: "on"
+ intel_pstate: "disable"
+ iommu: "pt"
isolcpus: "1-27,29-55,57-83,85-111"
+ mce: "off"
+ nmi_watchdog: "0"
nohz_full: "1-27,29-55,57-83,85-111"
+ nosoftlockup: True
+ numa_balancing: "disable"
+ processor.max_cstate: "1"
rcu_nocbs: "1-27,29-55,57-83,85-111"
+ tsc: "reliable"
sysctl:
kernel:
watchdog_cpumask: "0,28,56,84"
diff --git a/resources/tools/testbed-setup/ansible/inventories/lf_inventory/host_vars/10.30.51.46.yaml b/resources/tools/testbed-setup/ansible/inventories/lf_inventory/host_vars/10.30.51.46.yaml
index fff2a68bac..24be5e2e54 100644
--- a/resources/tools/testbed-setup/ansible/inventories/lf_inventory/host_vars/10.30.51.46.yaml
+++ b/resources/tools/testbed-setup/ansible/inventories/lf_inventory/host_vars/10.30.51.46.yaml
@@ -3,9 +3,21 @@
hostname: "s11-t31-sut1"
grub:
+ audit: "0"
+ hpet: "disable"
+ intel_idle.max_cstate: "1"
+ intel_iommu: "on"
+ intel_pstate: "disable"
+ iommu: "pt"
isolcpus: "1-27,29-55,57-83,85-111"
+ mce: "off"
+ nmi_watchdog: "0"
nohz_full: "1-27,29-55,57-83,85-111"
+ nosoftlockup: True
+ numa_balancing: "disable"
+ processor.max_cstate: "1"
rcu_nocbs: "1-27,29-55,57-83,85-111"
+ tsc: "reliable"
sysctl:
kernel:
watchdog_cpumask: "0,28,56,84"
diff --git a/resources/tools/testbed-setup/ansible/inventories/lf_inventory/host_vars/10.30.51.47.yaml b/resources/tools/testbed-setup/ansible/inventories/lf_inventory/host_vars/10.30.51.47.yaml
index 5ed6a9c6b6..7b59ff1606 100644
--- a/resources/tools/testbed-setup/ansible/inventories/lf_inventory/host_vars/10.30.51.47.yaml
+++ b/resources/tools/testbed-setup/ansible/inventories/lf_inventory/host_vars/10.30.51.47.yaml
@@ -3,9 +3,21 @@
hostname: "s12-t31-sut2"
grub:
+ audit: "0"
+ hpet: "disable"
+ intel_idle.max_cstate: "1"
+ intel_iommu: "on"
+ intel_pstate: "disable"
+ iommu: "pt"
isolcpus: "1-27,29-55,57-83,85-111"
+ mce: "off"
+ nmi_watchdog: "0"
nohz_full: "1-27,29-55,57-83,85-111"
+ nosoftlockup: True
+ numa_balancing: "disable"
+ processor.max_cstate: "1"
rcu_nocbs: "1-27,29-55,57-83,85-111"
+ tsc: "reliable"
sysctl:
kernel:
watchdog_cpumask: "0,28,56,84"
diff --git a/resources/tools/testbed-setup/ansible/inventories/lf_inventory/host_vars/10.30.51.48.yaml b/resources/tools/testbed-setup/ansible/inventories/lf_inventory/host_vars/10.30.51.48.yaml
index 3f13d1431a..d69fd03edc 100644
--- a/resources/tools/testbed-setup/ansible/inventories/lf_inventory/host_vars/10.30.51.48.yaml
+++ b/resources/tools/testbed-setup/ansible/inventories/lf_inventory/host_vars/10.30.51.48.yaml
@@ -3,9 +3,21 @@
hostname: "s13-t31-tg1"
grub:
+ audit: "0"
+ hpet: "disable"
+ intel_idle.max_cstate: "1"
+ intel_iommu: "on"
+ intel_pstate: "disable"
+ iommu: "pt"
isolcpus: "1-27,29-55,57-83,85-111"
+ mce: "off"
+ nmi_watchdog: "0"
nohz_full: "1-27,29-55,57-83,85-111"
+ nosoftlockup: True
+ numa_balancing: "disable"
+ processor.max_cstate: "1"
rcu_nocbs: "1-27,29-55,57-83,85-111"
+ tsc: "reliable"
sysctl:
kernel:
watchdog_cpumask: "0,28,56,84"
diff --git a/resources/tools/testbed-setup/ansible/inventories/lf_inventory/host_vars/10.30.51.49.yaml b/resources/tools/testbed-setup/ansible/inventories/lf_inventory/host_vars/10.30.51.49.yaml
index 629044d0bc..62ef6da2ce 100644
--- a/resources/tools/testbed-setup/ansible/inventories/lf_inventory/host_vars/10.30.51.49.yaml
+++ b/resources/tools/testbed-setup/ansible/inventories/lf_inventory/host_vars/10.30.51.49.yaml
@@ -3,9 +3,21 @@
hostname: "s19-t33t34-tg1"
grub:
+ audit: "0"
+ hpet: "disable"
+ intel_idle.max_cstate: "1"
+ intel_iommu: "on"
+ intel_pstate: "disable"
+ iommu: "pt"
isolcpus: "1-27,29-55,57-83,85-111"
+ mce: "off"
+ nmi_watchdog: "0"
nohz_full: "1-27,29-55,57-83,85-111"
+ nosoftlockup: True
+ numa_balancing: "disable"
+ processor.max_cstate: "1"
rcu_nocbs: "1-27,29-55,57-83,85-111"
+ tsc: "reliable"
sysctl:
kernel:
watchdog_cpumask: "0,28,56,84"
diff --git a/resources/tools/testbed-setup/ansible/inventories/lf_inventory/host_vars/10.30.51.50.yaml b/resources/tools/testbed-setup/ansible/inventories/lf_inventory/host_vars/10.30.51.50.yaml
index 0904fca6de..cd7a739b6e 100644
--- a/resources/tools/testbed-setup/ansible/inventories/lf_inventory/host_vars/10.30.51.50.yaml
+++ b/resources/tools/testbed-setup/ansible/inventories/lf_inventory/host_vars/10.30.51.50.yaml
@@ -3,11 +3,24 @@
hostname: "s1-t11-sut1"
grub:
- nr_hugepages: 65536
-
+ hugepagesz: "2M"
+ nr_hugepages: 32768
inventory_ipmi_hostname: "10.30.50.47"
cpu_microarchitecture: "skylake"
+# User management.
+users:
+ - username: localadmin
+ groups: [adm, sudo]
+ password: "$6$FIsbVDQR$5D0wgufOd2FtnmOiRNsGlgg6Loh.0x3dWSj72DSQnqisSyE9DROfgSgA6s0yxDwz4Jd5SRTXiTKuRYuSQ5POI1"
+ ssh_key:
+ - "ssh-rsa AAAAB3NzaC1yc2EAAAABJQAAAQEAgObJFDIMmPwQhhkjAynvlbwpM5yeSewyaE7vTLaFf4uFz4vmsE2hFf6B2xXHUGLVwoVfk91UeK7LOGrdDpoDDHzvPZXj5NmZI+WiWax5y2pQZNkcSZws0ENCeEc4hPwc4veJ1JmhokF4Bsmu14HyFMaFUhM8897jtJwsh+9fLA/no0iPGaQqEtRUQhkV+P4jCEPoY0qdRZAzVw/rY4EGAMhsJe3EJmyj63OfrrkG3+hvSLFo5pDxHQr3pZd/c6ukI7xMef48PosAvGCm3oxzb/Gu9PZIGuHLczY+tCnzCkY7MO7E+IWgjXrUAfYwSWz8XmFmA9LLe26DT5jkcK8hGQ== pmikus@cisco.com"
+ - username: testuser
+ groups: [adm, sudo]
+ password: "$6$zpBUdQ4q$P2zKclumvCndWujgP/qQ8eMk3YZk7ESAom04Fqp26hJH2jWkMXEX..jqxzMdDLJKiDaDHIaSkQMVjHzd3cRLs1"
+ ssh_key:
+ - "ssh-rsa AAAAB3NzaC1yc2EAAAABJQAAAQEAgObJFDIMmPwQhhkjAynvlbwpM5yeSewyaE7vTLaFf4uFz4vmsE2hFf6B2xXHUGLVwoVfk91UeK7LOGrdDpoDDHzvPZXj5NmZI+WiWax5y2pQZNkcSZws0ENCeEc4hPwc4veJ1JmhokF4Bsmu14HyFMaFUhM8897jtJwsh+9fLA/no0iPGaQqEtRUQhkV+P4jCEPoY0qdRZAzVw/rY4EGAMhsJe3EJmyj63OfrrkG3+hvSLFo5pDxHQr3pZd/c6ukI7xMef48PosAvGCm3oxzb/Gu9PZIGuHLczY+tCnzCkY7MO7E+IWgjXrUAfYwSWz8XmFmA9LLe26DT5jkcK8hGQ== pmikus@cisco.com"
+
# Nomad settings.
nomad_certificates:
- src: "{{ vault_nomad_v1_ca_file }}"
@@ -27,3 +40,21 @@ nomad_options:
docker.volumes.enabled: true
driver.whitelist: "docker,raw_exec,exec"
nomad_servers: [ "10.30.51.32:4647", "10.30.51.33:4647" ]
+
+# Consul settigs.
+consul_nomad_integration: true
+consul_certificates:
+ - src: "{{ vault_consul_v1_ca_file }}"
+ dest: "{{ consul_ca_file }}"
+ - src: "{{ vault_consul_v1_cert_file }}"
+ dest: "{{ consul_cert_file }}"
+ - src: "{{ vault_consul_v1_key_file }}"
+ dest: "{{ consul_key_file }}"
+consul_datacenter: "yul1"
+consul_encrypt: "Y4T+5JGx1C3l2NFBBvkTWQ=="
+consul_node_name: "{{ hostname }}"
+consul_node_role: "client"
+consul_retry_servers:
+ - "10.30.51.30"
+ - "10.30.51.32"
+ - "10.30.51.33" \ No newline at end of file
diff --git a/resources/tools/testbed-setup/ansible/inventories/lf_inventory/host_vars/10.30.51.51.yaml b/resources/tools/testbed-setup/ansible/inventories/lf_inventory/host_vars/10.30.51.51.yaml
index f003f0d84d..447f6a98f6 100644
--- a/resources/tools/testbed-setup/ansible/inventories/lf_inventory/host_vars/10.30.51.51.yaml
+++ b/resources/tools/testbed-setup/ansible/inventories/lf_inventory/host_vars/10.30.51.51.yaml
@@ -3,11 +3,24 @@
hostname: "s2-t12-sut1"
grub:
- nr_hugepages: 65536
-
+ hugepagesz: "2M"
+ nr_hugepages: 32768
inventory_ipmi_hostname: "10.30.50.48"
cpu_microarchitecture: "skylake"
+# User management.
+users:
+ - username: localadmin
+ groups: [adm, sudo]
+ password: "$6$FIsbVDQR$5D0wgufOd2FtnmOiRNsGlgg6Loh.0x3dWSj72DSQnqisSyE9DROfgSgA6s0yxDwz4Jd5SRTXiTKuRYuSQ5POI1"
+ ssh_key:
+ - "ssh-rsa AAAAB3NzaC1yc2EAAAABJQAAAQEAgObJFDIMmPwQhhkjAynvlbwpM5yeSewyaE7vTLaFf4uFz4vmsE2hFf6B2xXHUGLVwoVfk91UeK7LOGrdDpoDDHzvPZXj5NmZI+WiWax5y2pQZNkcSZws0ENCeEc4hPwc4veJ1JmhokF4Bsmu14HyFMaFUhM8897jtJwsh+9fLA/no0iPGaQqEtRUQhkV+P4jCEPoY0qdRZAzVw/rY4EGAMhsJe3EJmyj63OfrrkG3+hvSLFo5pDxHQr3pZd/c6ukI7xMef48PosAvGCm3oxzb/Gu9PZIGuHLczY+tCnzCkY7MO7E+IWgjXrUAfYwSWz8XmFmA9LLe26DT5jkcK8hGQ== pmikus@cisco.com"
+ - username: testuser
+ groups: [adm, sudo]
+ password: "$6$zpBUdQ4q$P2zKclumvCndWujgP/qQ8eMk3YZk7ESAom04Fqp26hJH2jWkMXEX..jqxzMdDLJKiDaDHIaSkQMVjHzd3cRLs1"
+ ssh_key:
+ - "ssh-rsa AAAAB3NzaC1yc2EAAAABJQAAAQEAgObJFDIMmPwQhhkjAynvlbwpM5yeSewyaE7vTLaFf4uFz4vmsE2hFf6B2xXHUGLVwoVfk91UeK7LOGrdDpoDDHzvPZXj5NmZI+WiWax5y2pQZNkcSZws0ENCeEc4hPwc4veJ1JmhokF4Bsmu14HyFMaFUhM8897jtJwsh+9fLA/no0iPGaQqEtRUQhkV+P4jCEPoY0qdRZAzVw/rY4EGAMhsJe3EJmyj63OfrrkG3+hvSLFo5pDxHQr3pZd/c6ukI7xMef48PosAvGCm3oxzb/Gu9PZIGuHLczY+tCnzCkY7MO7E+IWgjXrUAfYwSWz8XmFmA9LLe26DT5jkcK8hGQ== pmikus@cisco.com"
+
# Nomad settings.
nomad_certificates:
- src: "{{ vault_nomad_v1_ca_file }}"
@@ -27,3 +40,21 @@ nomad_options:
docker.volumes.enabled: true
driver.whitelist: "docker,raw_exec,exec"
nomad_servers: [ "10.30.51.32:4647", "10.30.51.33:4647" ]
+
+# Consul settigs.
+consul_nomad_integration: true
+consul_certificates:
+ - src: "{{ vault_consul_v1_ca_file }}"
+ dest: "{{ consul_ca_file }}"
+ - src: "{{ vault_consul_v1_cert_file }}"
+ dest: "{{ consul_cert_file }}"
+ - src: "{{ vault_consul_v1_key_file }}"
+ dest: "{{ consul_key_file }}"
+consul_datacenter: "yul1"
+consul_encrypt: "Y4T+5JGx1C3l2NFBBvkTWQ=="
+consul_node_name: "{{ hostname }}"
+consul_node_role: "client"
+consul_retry_servers:
+ - "10.30.51.30"
+ - "10.30.51.32"
+ - "10.30.51.33" \ No newline at end of file
diff --git a/resources/tools/testbed-setup/ansible/inventories/lf_inventory/host_vars/10.30.51.52.yaml b/resources/tools/testbed-setup/ansible/inventories/lf_inventory/host_vars/10.30.51.52.yaml
index 2522ecb5f7..4a4ccc0d91 100644
--- a/resources/tools/testbed-setup/ansible/inventories/lf_inventory/host_vars/10.30.51.52.yaml
+++ b/resources/tools/testbed-setup/ansible/inventories/lf_inventory/host_vars/10.30.51.52.yaml
@@ -3,9 +3,21 @@
hostname: "s5-t22-sut1"
grub:
+ audit: "0"
+ hpet: "disable"
+ intel_idle.max_cstate: "1"
+ intel_iommu: "on"
+ intel_pstate: "disable"
+ iommu: "pt"
isolcpus: "1-27,29-55,57-83,85-111"
+ mce: "off"
+ nmi_watchdog: "0"
nohz_full: "1-27,29-55,57-83,85-111"
+ nosoftlockup: True
+ numa_balancing: "disable"
+ processor.max_cstate: "1"
rcu_nocbs: "1-27,29-55,57-83,85-111"
+ tsc: "reliable"
sysctl:
kernel:
watchdog_cpumask: "0,28,56,84"
diff --git a/resources/tools/testbed-setup/ansible/inventories/lf_inventory/host_vars/10.30.51.53.yaml b/resources/tools/testbed-setup/ansible/inventories/lf_inventory/host_vars/10.30.51.53.yaml
index 05a38626f9..f0a50bfb71 100644
--- a/resources/tools/testbed-setup/ansible/inventories/lf_inventory/host_vars/10.30.51.53.yaml
+++ b/resources/tools/testbed-setup/ansible/inventories/lf_inventory/host_vars/10.30.51.53.yaml
@@ -3,9 +3,21 @@
hostname: "s6-t22-tg1"
grub:
+ audit: "0"
+ hpet: "disable"
+ intel_idle.max_cstate: "1"
+ intel_iommu: "on"
+ intel_pstate: "disable"
+ iommu: "pt"
isolcpus: "1-27,29-55,57-83,85-111"
+ mce: "off"
+ nmi_watchdog: "0"
nohz_full: "1-27,29-55,57-83,85-111"
+ nosoftlockup: True
+ numa_balancing: "disable"
+ processor.max_cstate: "1"
rcu_nocbs: "1-27,29-55,57-83,85-111"
+ tsc: "reliable"
sysctl:
kernel:
watchdog_cpumask: "0,28,56,84"
diff --git a/resources/tools/testbed-setup/ansible/inventories/lf_inventory/host_vars/10.30.51.54.yaml b/resources/tools/testbed-setup/ansible/inventories/lf_inventory/host_vars/10.30.51.54.yaml
index cde66d0bb2..b51eed468f 100644
--- a/resources/tools/testbed-setup/ansible/inventories/lf_inventory/host_vars/10.30.51.54.yaml
+++ b/resources/tools/testbed-setup/ansible/inventories/lf_inventory/host_vars/10.30.51.54.yaml
@@ -3,9 +3,21 @@
hostname: "s7-t23-sut1"
grub:
+ audit: "0"
+ hpet: "disable"
+ intel_idle.max_cstate: "1"
+ intel_iommu: "on"
+ intel_pstate: "disable"
+ iommu: "pt"
isolcpus: "1-27,29-55,57-83,85-111"
+ mce: "off"
+ nmi_watchdog: "0"
nohz_full: "1-27,29-55,57-83,85-111"
+ nosoftlockup: True
+ numa_balancing: "disable"
+ processor.max_cstate: "1"
rcu_nocbs: "1-27,29-55,57-83,85-111"
+ tsc: "reliable"
sysctl:
kernel:
watchdog_cpumask: "0,28,56,84"
diff --git a/resources/tools/testbed-setup/ansible/inventories/lf_inventory/host_vars/10.30.51.55.yaml b/resources/tools/testbed-setup/ansible/inventories/lf_inventory/host_vars/10.30.51.55.yaml
index bd45f3ad43..4b144fa69b 100644
--- a/resources/tools/testbed-setup/ansible/inventories/lf_inventory/host_vars/10.30.51.55.yaml
+++ b/resources/tools/testbed-setup/ansible/inventories/lf_inventory/host_vars/10.30.51.55.yaml
@@ -3,9 +3,21 @@
hostname: "s8-t23-tg1"
grub:
+ audit: "0"
+ hpet: "disable"
+ intel_idle.max_cstate: "1"
+ intel_iommu: "on"
+ intel_pstate: "disable"
+ iommu: "pt"
isolcpus: "1-27,29-55,57-83,85-111"
+ mce: "off"
+ nmi_watchdog: "0"
nohz_full: "1-27,29-55,57-83,85-111"
+ nosoftlockup: True
+ numa_balancing: "disable"
+ processor.max_cstate: "1"
rcu_nocbs: "1-27,29-55,57-83,85-111"
+ tsc: "reliable"
sysctl:
kernel:
watchdog_cpumask: "0,28,56,84"
diff --git a/resources/tools/testbed-setup/ansible/inventories/lf_inventory/host_vars/10.30.51.56.yaml b/resources/tools/testbed-setup/ansible/inventories/lf_inventory/host_vars/10.30.51.56.yaml
index f16e3dcdbf..613c9b110c 100644
--- a/resources/tools/testbed-setup/ansible/inventories/lf_inventory/host_vars/10.30.51.56.yaml
+++ b/resources/tools/testbed-setup/ansible/inventories/lf_inventory/host_vars/10.30.51.56.yaml
@@ -3,9 +3,21 @@
hostname: "s9-t24-sut1"
grub:
+ audit: "0"
+ hpet: "disable"
+ intel_idle.max_cstate: "1"
+ intel_iommu: "on"
+ intel_pstate: "disable"
+ iommu: "pt"
isolcpus: "1-27,29-55,57-83,85-111"
+ mce: "off"
+ nmi_watchdog: "0"
nohz_full: "1-27,29-55,57-83,85-111"
+ nosoftlockup: True
+ numa_balancing: "disable"
+ processor.max_cstate: "1"
rcu_nocbs: "1-27,29-55,57-83,85-111"
+ tsc: "reliable"
sysctl:
kernel:
watchdog_cpumask: "0,28,56,84"
diff --git a/resources/tools/testbed-setup/ansible/inventories/lf_inventory/host_vars/10.30.51.57.yaml b/resources/tools/testbed-setup/ansible/inventories/lf_inventory/host_vars/10.30.51.57.yaml
index d36d47f97a..52ec3d9911 100644
--- a/resources/tools/testbed-setup/ansible/inventories/lf_inventory/host_vars/10.30.51.57.yaml
+++ b/resources/tools/testbed-setup/ansible/inventories/lf_inventory/host_vars/10.30.51.57.yaml
@@ -3,9 +3,21 @@
hostname: "s10-t24-tg1"
grub:
+ audit: "0"
+ hpet: "disable"
+ intel_idle.max_cstate: "1"
+ intel_iommu: "on"
+ intel_pstate: "disable"
+ iommu: "pt"
isolcpus: "1-27,29-55,57-83,85-111"
+ mce: "off"
+ nmi_watchdog: "0"
nohz_full: "1-27,29-55,57-83,85-111"
+ nosoftlockup: True
+ numa_balancing: "disable"
+ processor.max_cstate: "1"
rcu_nocbs: "1-27,29-55,57-83,85-111"
+ tsc: "reliable"
sysctl:
kernel:
watchdog_cpumask: "0,28,56,84"
diff --git a/resources/tools/testbed-setup/ansible/inventories/lf_inventory/host_vars/10.30.51.58.yaml b/resources/tools/testbed-setup/ansible/inventories/lf_inventory/host_vars/10.30.51.58.yaml
index ab9f66616f..8971b4a7bb 100644
--- a/resources/tools/testbed-setup/ansible/inventories/lf_inventory/host_vars/10.30.51.58.yaml
+++ b/resources/tools/testbed-setup/ansible/inventories/lf_inventory/host_vars/10.30.51.58.yaml
@@ -3,9 +3,21 @@
hostname: "s14-t32-sut1"
grub:
+ audit: "0"
+ hpet: "disable"
+ intel_idle.max_cstate: "1"
+ intel_iommu: "on"
+ intel_pstate: "disable"
+ iommu: "pt"
isolcpus: "1-27,29-55,57-83,85-111"
+ mce: "off"
+ nmi_watchdog: "0"
nohz_full: "1-27,29-55,57-83,85-111"
+ nosoftlockup: True
+ numa_balancing: "disable"
+ processor.max_cstate: "1"
rcu_nocbs: "1-27,29-55,57-83,85-111"
+ tsc: "reliable"
sysctl:
kernel:
watchdog_cpumask: "0,28,56,84"
diff --git a/resources/tools/testbed-setup/ansible/inventories/lf_inventory/host_vars/10.30.51.59.yaml b/resources/tools/testbed-setup/ansible/inventories/lf_inventory/host_vars/10.30.51.59.yaml
index 8e5c583f38..ed39581e30 100644
--- a/resources/tools/testbed-setup/ansible/inventories/lf_inventory/host_vars/10.30.51.59.yaml
+++ b/resources/tools/testbed-setup/ansible/inventories/lf_inventory/host_vars/10.30.51.59.yaml
@@ -3,9 +3,21 @@
hostname: "s15-t32-sut2"
grub:
+ audit: "0"
+ hpet: "disable"
+ intel_idle.max_cstate: "1"
+ intel_iommu: "on"
+ intel_pstate: "disable"
+ iommu: "pt"
isolcpus: "1-27,29-55,57-83,85-111"
+ mce: "off"
+ nmi_watchdog: "0"
nohz_full: "1-27,29-55,57-83,85-111"
+ nosoftlockup: True
+ numa_balancing: "disable"
+ processor.max_cstate: "1"
rcu_nocbs: "1-27,29-55,57-83,85-111"
+ tsc: "reliable"
sysctl:
kernel:
watchdog_cpumask: "0,28,56,84"
diff --git a/resources/tools/testbed-setup/ansible/inventories/lf_inventory/host_vars/10.30.51.60.yaml b/resources/tools/testbed-setup/ansible/inventories/lf_inventory/host_vars/10.30.51.60.yaml
index e68ae5beda..1e3a49cf1d 100644
--- a/resources/tools/testbed-setup/ansible/inventories/lf_inventory/host_vars/10.30.51.60.yaml
+++ b/resources/tools/testbed-setup/ansible/inventories/lf_inventory/host_vars/10.30.51.60.yaml
@@ -3,9 +3,21 @@
hostname: "s16-t32-tg1"
grub:
+ audit: "0"
+ hpet: "disable"
+ intel_idle.max_cstate: "1"
+ intel_iommu: "on"
+ intel_pstate: "disable"
+ iommu: "pt"
isolcpus: "1-27,29-55,57-83,85-111"
+ mce: "off"
+ nmi_watchdog: "0"
nohz_full: "1-27,29-55,57-83,85-111"
+ nosoftlockup: True
+ numa_balancing: "disable"
+ processor.max_cstate: "1"
rcu_nocbs: "1-27,29-55,57-83,85-111"
+ tsc: "reliable"
sysctl:
kernel:
watchdog_cpumask: "0,28,56,84"
diff --git a/resources/tools/testbed-setup/ansible/inventories/lf_inventory/host_vars/10.30.51.65.yaml b/resources/tools/testbed-setup/ansible/inventories/lf_inventory/host_vars/10.30.51.65.yaml
index 30a8bc0525..6e9d5333e4 100644
--- a/resources/tools/testbed-setup/ansible/inventories/lf_inventory/host_vars/10.30.51.65.yaml
+++ b/resources/tools/testbed-setup/ansible/inventories/lf_inventory/host_vars/10.30.51.65.yaml
@@ -33,9 +33,28 @@ nomad_name: "{{ hostname }}-{{ ansible_architecture }}"
nomad_node_role: "client"
nomad_node_class: "builder"
nomad_options:
- driver.raw_exec.enable: 0
+ driver.raw_exec.enable: 1
docker.cleanup.image: false
docker.privileged.enabled: true
+ docker.volumes.enabled: true
driver.whitelist: "docker,raw_exec,exec"
nomad_servers: [ "10.30.51.32:4647", "10.30.51.33:4647" ]
nomad_cpu_total_compute: "40000"
+
+# Consul settigs.
+consul_nomad_integration: true
+consul_certificates:
+ - src: "{{ vault_consul_v1_ca_file }}"
+ dest: "{{ consul_ca_file }}"
+ - src: "{{ vault_consul_v1_cert_file }}"
+ dest: "{{ consul_cert_file }}"
+ - src: "{{ vault_consul_v1_key_file }}"
+ dest: "{{ consul_key_file }}"
+consul_datacenter: "yul1"
+consul_encrypt: "Y4T+5JGx1C3l2NFBBvkTWQ=="
+consul_node_name: "{{ hostname }}"
+consul_node_role: "client"
+consul_retry_servers:
+ - "10.30.51.30"
+ - "10.30.51.32"
+ - "10.30.51.33" \ No newline at end of file
diff --git a/resources/tools/testbed-setup/ansible/inventories/lf_inventory/host_vars/10.30.51.66.yaml b/resources/tools/testbed-setup/ansible/inventories/lf_inventory/host_vars/10.30.51.66.yaml
index 3bb4c32a41..0e133d40c0 100644
--- a/resources/tools/testbed-setup/ansible/inventories/lf_inventory/host_vars/10.30.51.66.yaml
+++ b/resources/tools/testbed-setup/ansible/inventories/lf_inventory/host_vars/10.30.51.66.yaml
@@ -33,9 +33,28 @@ nomad_name: "{{ hostname }}-{{ ansible_architecture }}"
nomad_node_role: "client"
nomad_node_class: "builder"
nomad_options:
- driver.raw_exec.enable: 0
+ driver.raw_exec.enable: 1
docker.cleanup.image: false
docker.privileged.enabled: true
+ docker.volumes.enabled: true
driver.whitelist: "docker,raw_exec,exec"
nomad_servers: [ "10.30.51.32:4647", "10.30.51.33:4647" ]
nomad_cpu_total_compute: "40000"
+
+# Consul settigs.
+consul_nomad_integration: true
+consul_certificates:
+ - src: "{{ vault_consul_v1_ca_file }}"
+ dest: "{{ consul_ca_file }}"
+ - src: "{{ vault_consul_v1_cert_file }}"
+ dest: "{{ consul_cert_file }}"
+ - src: "{{ vault_consul_v1_key_file }}"
+ dest: "{{ consul_key_file }}"
+consul_datacenter: "yul1"
+consul_encrypt: "Y4T+5JGx1C3l2NFBBvkTWQ=="
+consul_node_name: "{{ hostname }}"
+consul_node_role: "client"
+consul_retry_servers:
+ - "10.30.51.30"
+ - "10.30.51.32"
+ - "10.30.51.33" \ No newline at end of file
diff --git a/resources/tools/testbed-setup/ansible/inventories/lf_inventory/host_vars/10.30.51.67.yaml b/resources/tools/testbed-setup/ansible/inventories/lf_inventory/host_vars/10.30.51.67.yaml
index b65abe4638..bedbbabd16 100644
--- a/resources/tools/testbed-setup/ansible/inventories/lf_inventory/host_vars/10.30.51.67.yaml
+++ b/resources/tools/testbed-setup/ansible/inventories/lf_inventory/host_vars/10.30.51.67.yaml
@@ -33,9 +33,28 @@ nomad_name: "{{ hostname }}-{{ ansible_architecture }}"
nomad_node_role: "client"
nomad_node_class: "builder"
nomad_options:
- driver.raw_exec.enable: 0
+ driver.raw_exec.enable: 1
docker.cleanup.image: false
docker.privileged.enabled: true
+ docker.volumes.enabled: true
driver.whitelist: "docker,raw_exec,exec"
nomad_servers: [ "10.30.51.32:4647", "10.30.51.33:4647" ]
nomad_cpu_total_compute: "40000"
+
+# Consul settigs.
+consul_nomad_integration: true
+consul_certificates:
+ - src: "{{ vault_consul_v1_ca_file }}"
+ dest: "{{ consul_ca_file }}"
+ - src: "{{ vault_consul_v1_cert_file }}"
+ dest: "{{ consul_cert_file }}"
+ - src: "{{ vault_consul_v1_key_file }}"
+ dest: "{{ consul_key_file }}"
+consul_datacenter: "yul1"
+consul_encrypt: "Y4T+5JGx1C3l2NFBBvkTWQ=="
+consul_node_name: "{{ hostname }}"
+consul_node_role: "client"
+consul_retry_servers:
+ - "10.30.51.30"
+ - "10.30.51.32"
+ - "10.30.51.33" \ No newline at end of file
diff --git a/resources/tools/testbed-setup/ansible/inventories/lf_inventory/host_vars/10.30.51.68.yaml b/resources/tools/testbed-setup/ansible/inventories/lf_inventory/host_vars/10.30.51.68.yaml
index a5410850a3..ce4026115a 100644
--- a/resources/tools/testbed-setup/ansible/inventories/lf_inventory/host_vars/10.30.51.68.yaml
+++ b/resources/tools/testbed-setup/ansible/inventories/lf_inventory/host_vars/10.30.51.68.yaml
@@ -36,6 +36,25 @@ nomad_options:
driver.raw_exec.enable: 1
docker.cleanup.image: false
docker.privileged.enabled: true
+ docker.volumes.enabled: true
driver.whitelist: "docker,raw_exec,exec"
nomad_servers: [ "10.30.51.32:4647", "10.30.51.33:4647" ]
nomad_cpu_total_compute: "40000"
+
+# Consul settigs.
+consul_nomad_integration: true
+consul_certificates:
+ - src: "{{ vault_consul_v1_ca_file }}"
+ dest: "{{ consul_ca_file }}"
+ - src: "{{ vault_consul_v1_cert_file }}"
+ dest: "{{ consul_cert_file }}"
+ - src: "{{ vault_consul_v1_key_file }}"
+ dest: "{{ consul_key_file }}"
+consul_datacenter: "yul1"
+consul_encrypt: "Y4T+5JGx1C3l2NFBBvkTWQ=="
+consul_node_name: "{{ hostname }}"
+consul_node_role: "client"
+consul_retry_servers:
+ - "10.30.51.30"
+ - "10.30.51.32"
+ - "10.30.51.33" \ No newline at end of file
diff --git a/resources/tools/testbed-setup/ansible/inventories/lf_inventory/host_vars/10.30.51.69.yaml b/resources/tools/testbed-setup/ansible/inventories/lf_inventory/host_vars/10.30.51.69.yaml
index dfbe5a876b..0ebda86285 100644
--- a/resources/tools/testbed-setup/ansible/inventories/lf_inventory/host_vars/10.30.51.69.yaml
+++ b/resources/tools/testbed-setup/ansible/inventories/lf_inventory/host_vars/10.30.51.69.yaml
@@ -1,17 +1,22 @@
---
# file: host_vars/10.30.51.69.yaml
-hostname: "s27-t13-sut1"
+hostname: "s27-t34-sut1"
grub:
- isolcpus: "1-111,113-223"
- nohz_full: "1-111,113-223"
- rcu_nocbs: "1-111,113-223"
+ audit: "0"
+ intel_iommu: "on"
+ isolcpus: "1-27,29-55"
+ nmi_watchdog: "0"
+ nohz_full: "1-27,29-55"
+ nosoftlockup: True
+ processor.max_cstate: "1"
+ rcu_nocbs: "1-27,29-55"
sysctl:
kernel:
- watchdog_cpumask: "0,112"
+ watchdog_cpumask: "0,28"
vm:
- nr_hugepages: 57344
- max_map_count: 20000
+ nr_hugepages: 57344
+ max_map_count: 20000
inventory_ipmi_hostname: "10.30.50.69"
cpu_microarchitecture: "thunderx2"
diff --git a/resources/tools/testbed-setup/ansible/inventories/lf_inventory/host_vars/10.30.51.70.yaml b/resources/tools/testbed-setup/ansible/inventories/lf_inventory/host_vars/10.30.51.70.yaml
index da603c28ce..22107c4f1a 100644
--- a/resources/tools/testbed-setup/ansible/inventories/lf_inventory/host_vars/10.30.51.70.yaml
+++ b/resources/tools/testbed-setup/ansible/inventories/lf_inventory/host_vars/10.30.51.70.yaml
@@ -5,6 +5,7 @@ hostname: "s55-t36-sut1"
inventory_ipmi_hostname: "10.30.50.70"
vfs_data_file: "csit-initialize-vfs-tx2.sh"
grub:
+ hugepagesz: "2M"
nr_hugepages: 65536
cpu_microarchitecture: "thunderx2"
@@ -43,3 +44,21 @@ nomad_options:
driver.whitelist: "docker,raw_exec,exec"
nomad_servers: [ "10.30.51.32:4647", "10.30.51.33:4647" ]
nomad_cpu_total_compute: "40000"
+
+# Consul settigs.
+consul_nomad_integration: true
+consul_certificates:
+ - src: "{{ vault_consul_v1_ca_file }}"
+ dest: "{{ consul_ca_file }}"
+ - src: "{{ vault_consul_v1_cert_file }}"
+ dest: "{{ consul_cert_file }}"
+ - src: "{{ vault_consul_v1_key_file }}"
+ dest: "{{ consul_key_file }}"
+consul_datacenter: "yul1"
+consul_encrypt: "Y4T+5JGx1C3l2NFBBvkTWQ=="
+consul_node_name: "{{ hostname }}"
+consul_node_role: "client"
+consul_retry_servers:
+ - "10.30.51.30"
+ - "10.30.51.32"
+ - "10.30.51.33" \ No newline at end of file
diff --git a/resources/tools/testbed-setup/ansible/inventories/lf_inventory/host_vars/10.30.51.71.yaml b/resources/tools/testbed-setup/ansible/inventories/lf_inventory/host_vars/10.30.51.71.yaml
index b5fb9cc4ec..f8b7c92df4 100644
--- a/resources/tools/testbed-setup/ansible/inventories/lf_inventory/host_vars/10.30.51.71.yaml
+++ b/resources/tools/testbed-setup/ansible/inventories/lf_inventory/host_vars/10.30.51.71.yaml
@@ -5,6 +5,7 @@ hostname: "s56-t37-sut1"
inventory_ipmi_hostname: "10.30.50.71"
vfs_data_file: "csit-initialize-vfs-tx2.sh"
grub:
+ hugepagesz: "2M"
nr_hugepages: 65536
cpu_microarchitecture: "thunderx2"
@@ -43,3 +44,21 @@ nomad_options:
driver.whitelist: "docker,raw_exec,exec"
nomad_servers: [ "10.30.51.32:4647", "10.30.51.33:4647" ]
nomad_cpu_total_compute: "40000"
+
+# Consul settigs.
+consul_nomad_integration: true
+consul_certificates:
+ - src: "{{ vault_consul_v1_ca_file }}"
+ dest: "{{ consul_ca_file }}"
+ - src: "{{ vault_consul_v1_cert_file }}"
+ dest: "{{ consul_cert_file }}"
+ - src: "{{ vault_consul_v1_key_file }}"
+ dest: "{{ consul_key_file }}"
+consul_datacenter: "yul1"
+consul_encrypt: "Y4T+5JGx1C3l2NFBBvkTWQ=="
+consul_node_name: "{{ hostname }}"
+consul_node_role: "client"
+consul_retry_servers:
+ - "10.30.51.30"
+ - "10.30.51.32"
+ - "10.30.51.33" \ No newline at end of file
diff --git a/resources/tools/testbed-setup/ansible/inventories/lf_inventory/host_vars/10.32.8.10.yaml b/resources/tools/testbed-setup/ansible/inventories/lf_inventory/host_vars/10.32.8.10.yaml
index 7f7860b5f3..05f1a19576 100644
--- a/resources/tools/testbed-setup/ansible/inventories/lf_inventory/host_vars/10.32.8.10.yaml
+++ b/resources/tools/testbed-setup/ansible/inventories/lf_inventory/host_vars/10.32.8.10.yaml
@@ -3,9 +3,21 @@
hostname: "s28-t26t35-tg1"
grub:
+ audit: "0"
+ hpet: "disable"
+ intel_idle.max_cstate: "1"
+ intel_iommu: "on"
+ intel_pstate: "disable"
+ iommu: "pt"
isolcpus: "1-27,29-55,57-83,85-111"
+ mce: "off"
+ nmi_watchdog: "0"
nohz_full: "1-27,29-55,57-83,85-111"
+ nosoftlockup: True
+ numa_balancing: "disable"
+ processor.max_cstate: "1"
rcu_nocbs: "1-27,29-55,57-83,85-111"
+ tsc: "reliable"
sysctl:
kernel:
watchdog_cpumask: "0,28,56,84"
diff --git a/resources/tools/testbed-setup/ansible/inventories/lf_inventory/host_vars/10.32.8.11.yaml b/resources/tools/testbed-setup/ansible/inventories/lf_inventory/host_vars/10.32.8.11.yaml
index 0ada8f08e3..c6cb68cb5d 100644
--- a/resources/tools/testbed-setup/ansible/inventories/lf_inventory/host_vars/10.32.8.11.yaml
+++ b/resources/tools/testbed-setup/ansible/inventories/lf_inventory/host_vars/10.32.8.11.yaml
@@ -3,9 +3,21 @@
hostname: "s29-t26-sut1"
grub:
+ audit: "0"
+ hpet: "disable"
+ intel_idle.max_cstate: "1"
+ intel_iommu: "on"
+ intel_pstate: "disable"
+ iommu: "pt"
isolcpus: "1-5"
+ mce: "off"
+ nmi_watchdog: "0"
nohz_full: "1-5"
+ nosoftlockup: True
+ numa_balancing: "disable"
+ processor.max_cstate: "1"
rcu_nocbs: "1-5"
+ tsc: "reliable"
sysctl:
kernel:
watchdog_cpumask: "0"
diff --git a/resources/tools/testbed-setup/ansible/inventories/lf_inventory/host_vars/10.32.8.12.yaml b/resources/tools/testbed-setup/ansible/inventories/lf_inventory/host_vars/10.32.8.12.yaml
index 4e9302314a..5d350647a9 100644
--- a/resources/tools/testbed-setup/ansible/inventories/lf_inventory/host_vars/10.32.8.12.yaml
+++ b/resources/tools/testbed-setup/ansible/inventories/lf_inventory/host_vars/10.32.8.12.yaml
@@ -3,9 +3,21 @@
hostname: "s30-t35-sut1"
grub:
+ audit: "0"
+ hpet: "disable"
+ intel_idle.max_cstate: "1"
+ intel_iommu: "on"
+ intel_pstate: "disable"
+ iommu: "pt"
isolcpus: "1-5"
+ mce: "off"
+ nmi_watchdog: "0"
nohz_full: "1-5"
+ nosoftlockup: True
+ numa_balancing: "disable"
+ processor.max_cstate: "1"
rcu_nocbs: "1-5"
+ tsc: "reliable"
sysctl:
kernel:
watchdog_cpumask: "0"
diff --git a/resources/tools/testbed-setup/ansible/inventories/lf_inventory/host_vars/10.32.8.13.yaml b/resources/tools/testbed-setup/ansible/inventories/lf_inventory/host_vars/10.32.8.13.yaml
index 9cd28df16b..aff600265c 100644
--- a/resources/tools/testbed-setup/ansible/inventories/lf_inventory/host_vars/10.32.8.13.yaml
+++ b/resources/tools/testbed-setup/ansible/inventories/lf_inventory/host_vars/10.32.8.13.yaml
@@ -3,9 +3,21 @@
hostname: "s31-t35-sut2"
grub:
+ audit: "0"
+ hpet: "disable"
+ intel_idle.max_cstate: "1"
+ intel_iommu: "on"
+ intel_pstate: "disable"
+ iommu: "pt"
isolcpus: "1-5"
+ mce: "off"
+ nmi_watchdog: "0"
nohz_full: "1-5"
+ nosoftlockup: True
+ numa_balancing: "disable"
+ processor.max_cstate: "1"
rcu_nocbs: "1-5"
+ tsc: "reliable"
sysctl:
kernel:
watchdog_cpumask: "0"
diff --git a/resources/tools/testbed-setup/ansible/inventories/lf_inventory/host_vars/10.32.8.14.yaml b/resources/tools/testbed-setup/ansible/inventories/lf_inventory/host_vars/10.32.8.14.yaml
index 3f426b79ec..dd2a2f5b95 100644
--- a/resources/tools/testbed-setup/ansible/inventories/lf_inventory/host_vars/10.32.8.14.yaml
+++ b/resources/tools/testbed-setup/ansible/inventories/lf_inventory/host_vars/10.32.8.14.yaml
@@ -28,13 +28,36 @@ nomad_certificates:
nomad_datacenter: "yul1"
nomad_encrypt: "Y4T+5JGx1C3l2NFBBvkTWQ=="
nomad_name: "{{ hostname }}-{{ ansible_architecture }}"
-nomad_node_role: "both"
+nomad_node_role: "client"
nomad_node_class: "s5ci"
nomad_options:
driver.raw_exec.enable: 1
docker.cleanup.image: true
docker.privileged.enabled: true
+ docker.volumes.enabled: true
driver.whitelist: "docker,raw_exec,exec"
fingerprint.network.disallow_link_local: true
nomad_retry_servers: [ "10.30.51.30", "10.30.51.32", "10.30.51.33" ]
nomad_servers: [ "10.30.51.32:4647", "10.30.51.33:4647" ]
+nomad_volumes:
+ - name: "prod-volume-data1-1"
+ path: "/data"
+ read_only: false
+
+# Consul settigs.
+consul_nomad_integration: true
+consul_certificates:
+ - src: "{{ vault_consul_v1_ca_file }}"
+ dest: "{{ consul_ca_file }}"
+ - src: "{{ vault_consul_v1_cert_file }}"
+ dest: "{{ consul_cert_file }}"
+ - src: "{{ vault_consul_v1_key_file }}"
+ dest: "{{ consul_key_file }}"
+consul_datacenter: "yul1"
+consul_encrypt: "Y4T+5JGx1C3l2NFBBvkTWQ=="
+consul_node_name: "{{ hostname }}"
+consul_node_role: "client"
+consul_retry_servers:
+ - "10.30.51.30"
+ - "10.30.51.32"
+ - "10.30.51.33" \ No newline at end of file
diff --git a/resources/tools/testbed-setup/ansible/inventories/lf_inventory/host_vars/10.32.8.15.yaml b/resources/tools/testbed-setup/ansible/inventories/lf_inventory/host_vars/10.32.8.15.yaml
index e91dcda023..7e103cf8c7 100644
--- a/resources/tools/testbed-setup/ansible/inventories/lf_inventory/host_vars/10.32.8.15.yaml
+++ b/resources/tools/testbed-setup/ansible/inventories/lf_inventory/host_vars/10.32.8.15.yaml
@@ -28,13 +28,36 @@ nomad_certificates:
nomad_datacenter: "yul1"
nomad_encrypt: "Y4T+5JGx1C3l2NFBBvkTWQ=="
nomad_name: "{{ hostname }}-{{ ansible_architecture }}"
-nomad_node_role: "both"
+nomad_node_role: "client"
nomad_node_class: "builder"
nomad_options:
driver.raw_exec.enable: 1
docker.cleanup.image: true
docker.privileged.enabled: true
+ docker.volumes.enabled: true
driver.whitelist: "docker,raw_exec,exec"
fingerprint.network.disallow_link_local: true
nomad_retry_servers: [ "10.30.51.30", "10.30.51.32", "10.30.51.33" ]
nomad_servers: [ "10.30.51.32:4647", "10.30.51.33:4647" ]
+nomad_volumes:
+ - name: "prod-volume-data2-1"
+ path: "/data"
+ read_only: false
+
+# Consul settigs.
+consul_nomad_integration: true
+consul_certificates:
+ - src: "{{ vault_consul_v1_ca_file }}"
+ dest: "{{ consul_ca_file }}"
+ - src: "{{ vault_consul_v1_cert_file }}"
+ dest: "{{ consul_cert_file }}"
+ - src: "{{ vault_consul_v1_key_file }}"
+ dest: "{{ consul_key_file }}"
+consul_datacenter: "yul1"
+consul_encrypt: "Y4T+5JGx1C3l2NFBBvkTWQ=="
+consul_node_name: "{{ hostname }}"
+consul_node_role: "client"
+consul_retry_servers:
+ - "10.30.51.30"
+ - "10.30.51.32"
+ - "10.30.51.33" \ No newline at end of file
diff --git a/resources/tools/testbed-setup/ansible/inventories/lf_inventory/host_vars/10.32.8.16.yaml b/resources/tools/testbed-setup/ansible/inventories/lf_inventory/host_vars/10.32.8.16.yaml
index d7aac45a66..e1b47cae15 100644
--- a/resources/tools/testbed-setup/ansible/inventories/lf_inventory/host_vars/10.32.8.16.yaml
+++ b/resources/tools/testbed-setup/ansible/inventories/lf_inventory/host_vars/10.32.8.16.yaml
@@ -28,13 +28,32 @@ nomad_certificates:
nomad_datacenter: "yul1"
nomad_encrypt: "Y4T+5JGx1C3l2NFBBvkTWQ=="
nomad_name: "{{ hostname }}-{{ ansible_architecture }}"
-nomad_node_role: "both"
+nomad_node_role: "client"
nomad_node_class: "builder"
nomad_options:
driver.raw_exec.enable: 1
docker.cleanup.image: true
docker.privileged.enabled: true
+ docker.volumes.enabled: true
driver.whitelist: "docker,raw_exec,exec"
fingerprint.network.disallow_link_local: true
nomad_retry_servers: [ "10.30.51.30", "10.30.51.32", "10.30.51.33" ]
nomad_servers: [ "10.30.51.32:4647", "10.30.51.33:4647", "10.30.51.30:4647" ]
+
+# Consul settigs.
+consul_nomad_integration: true
+consul_certificates:
+ - src: "{{ vault_consul_v1_ca_file }}"
+ dest: "{{ consul_ca_file }}"
+ - src: "{{ vault_consul_v1_cert_file }}"
+ dest: "{{ consul_cert_file }}"
+ - src: "{{ vault_consul_v1_key_file }}"
+ dest: "{{ consul_key_file }}"
+consul_datacenter: "yul1"
+consul_encrypt: "Y4T+5JGx1C3l2NFBBvkTWQ=="
+consul_node_name: "{{ hostname }}"
+consul_node_role: "client"
+consul_retry_servers:
+ - "10.30.51.30"
+ - "10.30.51.32"
+ - "10.30.51.33" \ No newline at end of file
diff --git a/resources/tools/testbed-setup/ansible/inventories/lf_inventory/host_vars/10.32.8.17.yaml b/resources/tools/testbed-setup/ansible/inventories/lf_inventory/host_vars/10.32.8.17.yaml
new file mode 100644
index 0000000000..6a4e238bdc
--- /dev/null
+++ b/resources/tools/testbed-setup/ansible/inventories/lf_inventory/host_vars/10.32.8.17.yaml
@@ -0,0 +1,59 @@
+---
+# file: host_vars/10.32.8.17.yaml
+
+hostname: "s57-nomad"
+inventory_ipmi_hostname: "10.30.55.17"
+
+# User management.
+users:
+ - username: localadmin
+ groups: [adm, sudo]
+ password: "$6$FIsbVDQR$5D0wgufOd2FtnmOiRNsGlgg6Loh.0x3dWSj72DSQnqisSyE9DROfgSgA6s0yxDwz4Jd5SRTXiTKuRYuSQ5POI1"
+ ssh_key:
+ - "ssh-rsa AAAAB3NzaC1yc2EAAAABJQAAAQEAgObJFDIMmPwQhhkjAynvlbwpM5yeSewyaE7vTLaFf4uFz4vmsE2hFf6B2xXHUGLVwoVfk91UeK7LOGrdDpoDDHzvPZXj5NmZI+WiWax5y2pQZNkcSZws0ENCeEc4hPwc4veJ1JmhokF4Bsmu14HyFMaFUhM8897jtJwsh+9fLA/no0iPGaQqEtRUQhkV+P4jCEPoY0qdRZAzVw/rY4EGAMhsJe3EJmyj63OfrrkG3+hvSLFo5pDxHQr3pZd/c6ukI7xMef48PosAvGCm3oxzb/Gu9PZIGuHLczY+tCnzCkY7MO7E+IWgjXrUAfYwSWz8XmFmA9LLe26DT5jkcK8hGQ== pmikus@cisco.com"
+ - username: testuser
+ groups: [adm, sudo]
+ password: "$6$zpBUdQ4q$P2zKclumvCndWujgP/qQ8eMk3YZk7ESAom04Fqp26hJH2jWkMXEX..jqxzMdDLJKiDaDHIaSkQMVjHzd3cRLs1"
+ ssh_key:
+ - "ssh-rsa AAAAB3NzaC1yc2EAAAABJQAAAQEAgObJFDIMmPwQhhkjAynvlbwpM5yeSewyaE7vTLaFf4uFz4vmsE2hFf6B2xXHUGLVwoVfk91UeK7LOGrdDpoDDHzvPZXj5NmZI+WiWax5y2pQZNkcSZws0ENCeEc4hPwc4veJ1JmhokF4Bsmu14HyFMaFUhM8897jtJwsh+9fLA/no0iPGaQqEtRUQhkV+P4jCEPoY0qdRZAzVw/rY4EGAMhsJe3EJmyj63OfrrkG3+hvSLFo5pDxHQr3pZd/c6ukI7xMef48PosAvGCm3oxzb/Gu9PZIGuHLczY+tCnzCkY7MO7E+IWgjXrUAfYwSWz8XmFmA9LLe26DT5jkcK8hGQ== pmikus@cisco.com"
+
+# Nomad settings.
+nomad_certificates:
+ - src: "{{ vault_nomad_v3_ca_file }}"
+ dest: "{{ nomad_ca_file }}"
+ - src: "{{ vault_nomad_v3_cert_file }}"
+ dest: "{{ nomad_cert_file }}"
+ - src: "{{ vault_nomad_v3_key_file }}"
+ dest: "{{ nomad_key_file }}"
+nomad_datacenter: "yul1"
+nomad_encrypt: "Y4T+5JGx1C3l2NFBBvkTWQ=="
+nomad_name: "{{ hostname }}-{{ ansible_architecture }}"
+nomad_node_role: "client"
+nomad_node_class: "builder"
+nomad_options:
+ driver.raw_exec.enable: 1
+ docker.cleanup.image: true
+ docker.privileged.enabled: true
+ docker.volumes.enabled: true
+ driver.whitelist: "docker,raw_exec,exec"
+ fingerprint.network.disallow_link_local: true
+nomad_retry_servers: [ "10.30.51.30", "10.30.51.32", "10.30.51.33" ]
+nomad_servers: [ "10.30.51.32:4647", "10.30.51.33:4647", "10.30.51.30:4647" ]
+
+# Consul settigs.
+consul_nomad_integration: true
+consul_certificates:
+ - src: "{{ vault_consul_v1_ca_file }}"
+ dest: "{{ consul_ca_file }}"
+ - src: "{{ vault_consul_v1_cert_file }}"
+ dest: "{{ consul_cert_file }}"
+ - src: "{{ vault_consul_v1_key_file }}"
+ dest: "{{ consul_key_file }}"
+consul_datacenter: "yul1"
+consul_encrypt: "Y4T+5JGx1C3l2NFBBvkTWQ=="
+consul_node_name: "{{ hostname }}"
+consul_node_role: "client"
+consul_retry_servers:
+ - "10.30.51.30"
+ - "10.30.51.32"
+ - "10.30.51.33" \ No newline at end of file
diff --git a/resources/tools/testbed-setup/ansible/inventories/lf_inventory/host_vars/10.32.8.18.yaml b/resources/tools/testbed-setup/ansible/inventories/lf_inventory/host_vars/10.32.8.18.yaml
index 63b3dde611..6fe0dbc14d 100644
--- a/resources/tools/testbed-setup/ansible/inventories/lf_inventory/host_vars/10.32.8.18.yaml
+++ b/resources/tools/testbed-setup/ansible/inventories/lf_inventory/host_vars/10.32.8.18.yaml
@@ -3,9 +3,21 @@
hostname: "s33-t27-sut1"
grub:
+ audit: "0"
+ hpet: "disable"
+ intel_idle.max_cstate: "1"
+ intel_iommu: "on"
+ intel_pstate: "disable"
+ iommu: "pt"
isolcpus: "1-23,25-47,49-71,73-95"
+ mce: "off"
+ nmi_watchdog: "0"
nohz_full: "1-23,25-47,49-71,73-95"
+ nosoftlockup: True
+ numa_balancing: "disable"
+ processor.max_cstate: "1"
rcu_nocbs: "1-23,25-47,49-71,73-95"
+ tsc: "reliable"
sysctl:
kernel:
watchdog_cpumask: "0,24,48,72"
diff --git a/resources/tools/testbed-setup/ansible/inventories/lf_inventory/host_vars/10.32.8.19.yaml b/resources/tools/testbed-setup/ansible/inventories/lf_inventory/host_vars/10.32.8.19.yaml
index 1b1b76957d..f963d4b888 100644
--- a/resources/tools/testbed-setup/ansible/inventories/lf_inventory/host_vars/10.32.8.19.yaml
+++ b/resources/tools/testbed-setup/ansible/inventories/lf_inventory/host_vars/10.32.8.19.yaml
@@ -3,9 +3,21 @@
hostname: "s34-t27-tg1"
grub:
+ audit: "0"
+ hpet: "disable"
+ intel_idle.max_cstate: "1"
+ intel_iommu: "on"
+ intel_pstate: "disable"
+ iommu: "pt"
isolcpus: "1-27,29-55,57-83,85-111"
+ mce: "off"
+ nmi_watchdog: "0"
nohz_full: "1-27,29-55,57-83,85-111"
+ nosoftlockup: True
+ numa_balancing: "disable"
+ processor.max_cstate: "1"
rcu_nocbs: "1-27,29-55,57-83,85-111"
+ tsc: "reliable"
sysctl:
kernel:
watchdog_cpumask: "0,28,56,84"
diff --git a/resources/tools/testbed-setup/ansible/inventories/lf_inventory/host_vars/10.32.8.20.yaml b/resources/tools/testbed-setup/ansible/inventories/lf_inventory/host_vars/10.32.8.20.yaml
index f1b2b414c5..6913550686 100644
--- a/resources/tools/testbed-setup/ansible/inventories/lf_inventory/host_vars/10.32.8.20.yaml
+++ b/resources/tools/testbed-setup/ansible/inventories/lf_inventory/host_vars/10.32.8.20.yaml
@@ -3,9 +3,21 @@
hostname: "s35-t28-sut1"
grub:
+ audit: "0"
+ hpet: "disable"
+ intel_idle.max_cstate: "1"
+ intel_iommu: "on"
+ intel_pstate: "disable"
+ iommu: "pt"
isolcpus: "1-23,25-47,49-71,73-95"
+ mce: "off"
+ nmi_watchdog: "0"
nohz_full: "1-23,25-47,49-71,73-95"
+ nosoftlockup: True
+ numa_balancing: "disable"
+ processor.max_cstate: "1"
rcu_nocbs: "1-23,25-47,49-71,73-95"
+ tsc: "reliable"
sysctl:
kernel:
watchdog_cpumask: "0,24,48,72"
diff --git a/resources/tools/testbed-setup/ansible/inventories/lf_inventory/host_vars/10.32.8.21.yaml b/resources/tools/testbed-setup/ansible/inventories/lf_inventory/host_vars/10.32.8.21.yaml
index 66febe13a8..98cffb3392 100644
--- a/resources/tools/testbed-setup/ansible/inventories/lf_inventory/host_vars/10.32.8.21.yaml
+++ b/resources/tools/testbed-setup/ansible/inventories/lf_inventory/host_vars/10.32.8.21.yaml
@@ -3,9 +3,21 @@
hostname: "s36-t28-tg1"
grub:
+ audit: "0"
+ hpet: "disable"
+ intel_idle.max_cstate: "1"
+ intel_iommu: "on"
+ intel_pstate: "disable"
+ iommu: "pt"
isolcpus: "1-27,29-55,57-83,85-111"
+ mce: "off"
+ nmi_watchdog: "0"
nohz_full: "1-27,29-55,57-83,85-111"
+ nosoftlockup: True
+ numa_balancing: "disable"
+ processor.max_cstate: "1"
rcu_nocbs: "1-27,29-55,57-83,85-111"
+ tsc: "reliable"
sysctl:
kernel:
watchdog_cpumask: "0,28,56,84"
diff --git a/resources/tools/testbed-setup/ansible/inventories/lf_inventory/host_vars/10.32.8.22.yaml b/resources/tools/testbed-setup/ansible/inventories/lf_inventory/host_vars/10.32.8.22.yaml
index ef3d3455f6..f58b2ce07d 100644
--- a/resources/tools/testbed-setup/ansible/inventories/lf_inventory/host_vars/10.32.8.22.yaml
+++ b/resources/tools/testbed-setup/ansible/inventories/lf_inventory/host_vars/10.32.8.22.yaml
@@ -3,9 +3,21 @@
hostname: "s37-t29-sut1"
grub:
+ audit: "0"
+ hpet: "disable"
+ intel_idle.max_cstate: "1"
+ intel_iommu: "on"
+ intel_pstate: "disable"
+ iommu: "pt"
isolcpus: "1-23,25-47,49-71,73-95"
+ mce: "off"
+ nmi_watchdog: "0"
nohz_full: "1-23,25-47,49-71,73-95"
+ nosoftlockup: True
+ numa_balancing: "disable"
+ processor.max_cstate: "1"
rcu_nocbs: "1-23,25-47,49-71,73-95"
+ tsc: "reliable"
sysctl:
kernel:
watchdog_cpumask: "0,24,48,72"
diff --git a/resources/tools/testbed-setup/ansible/inventories/lf_inventory/host_vars/10.32.8.23.yaml b/resources/tools/testbed-setup/ansible/inventories/lf_inventory/host_vars/10.32.8.23.yaml
index 2430f612b8..364ab8b295 100644
--- a/resources/tools/testbed-setup/ansible/inventories/lf_inventory/host_vars/10.32.8.23.yaml
+++ b/resources/tools/testbed-setup/ansible/inventories/lf_inventory/host_vars/10.32.8.23.yaml
@@ -3,9 +3,21 @@
hostname: "s38-t29-tg1"
grub:
+ audit: "0"
+ hpet: "disable"
+ intel_idle.max_cstate: "1"
+ intel_iommu: "on"
+ intel_pstate: "disable"
+ iommu: "pt"
isolcpus: "1-27,29-55,57-83,85-111"
+ mce: "off"
+ nmi_watchdog: "0"
nohz_full: "1-27,29-55,57-83,85-111"
+ nosoftlockup: True
+ numa_balancing: "disable"
+ processor.max_cstate: "1"
rcu_nocbs: "1-27,29-55,57-83,85-111"
+ tsc: "reliable"
sysctl:
kernel:
watchdog_cpumask: "0,28,56,84"
diff --git a/resources/tools/testbed-setup/ansible/inventories/lf_inventory/host_vars/10.32.8.24.yaml b/resources/tools/testbed-setup/ansible/inventories/lf_inventory/host_vars/10.32.8.24.yaml
new file mode 100644
index 0000000000..dc8a060cc0
--- /dev/null
+++ b/resources/tools/testbed-setup/ansible/inventories/lf_inventory/host_vars/10.32.8.24.yaml
@@ -0,0 +1,26 @@
+---
+# file: host_vars/10.32.8.24.yaml
+
+hostname: "s60-t210-sut1"
+grub:
+ amd_iommu: "on"
+ audit: "0"
+ hpet: "disable"
+ iommu: "pt"
+ isolcpus: "1-15,17-31,33-47,49-63"
+ nmi_watchdog: "0"
+ nohz_full: "off"
+ nosoftlockup: True
+ numa_balancing: "disable"
+ processor.max_cstate: "0"
+ rcu_nocbs: "1-15,17-31,33-47,49-63"
+ tsc: "reliable"
+sysctl:
+ kernel:
+ watchdog_cpumask: "0,16,32,48"
+ vm:
+ nr_hugepages: 8192
+ max_map_count: 20000
+
+inventory_ipmi_hostname: "10.30.55.24"
+cpu_microarchitecture: "epyc"
diff --git a/resources/tools/testbed-setup/ansible/inventories/lf_inventory/host_vars/10.32.8.25.yaml b/resources/tools/testbed-setup/ansible/inventories/lf_inventory/host_vars/10.32.8.25.yaml
new file mode 100644
index 0000000000..8c99bf3cae
--- /dev/null
+++ b/resources/tools/testbed-setup/ansible/inventories/lf_inventory/host_vars/10.32.8.25.yaml
@@ -0,0 +1,26 @@
+---
+# file: host_vars/10.32.8.25.yaml
+
+hostname: "s61-t210-tg1"
+grub:
+ amd_iommu: "on"
+ audit: "0"
+ hpet: "disable"
+ iommu: "pt"
+ isolcpus: "1-15,17-31,33-47,49-63"
+ nmi_watchdog: "0"
+ nohz_full: "off"
+ nosoftlockup: True
+ numa_balancing: "disable"
+ processor.max_cstate: "0"
+ rcu_nocbs: "1-15,17-31,33-47,49-63"
+ tsc: "reliable"
+sysctl:
+ kernel:
+ watchdog_cpumask: "0,16,32,48"
+ vm:
+ nr_hugepages: 8192
+ max_map_count: 20000
+
+inventory_ipmi_hostname: "10.30.55.25"
+cpu_microarchitecture: "epyc"
diff --git a/resources/tools/testbed-setup/ansible/inventories/lf_inventory/hosts b/resources/tools/testbed-setup/ansible/inventories/lf_inventory/hosts
index ac1c46eb65..741da675f1 100644
--- a/resources/tools/testbed-setup/ansible/inventories/lf_inventory/hosts
+++ b/resources/tools/testbed-setup/ansible/inventories/lf_inventory/hosts
@@ -16,6 +16,7 @@ all:
10.32.8.19: #s34-t27-tg1 - cascadelake
10.32.8.21: #s36-t28-tg1 - cascadelake
10.32.8.23: #s38-t29-tg1 - cascadelake
+ 10.32.8.25: #s61-t210-tg1 - epyc
sut:
hosts:
10.30.51.17: #t1-sut1 - haswell
@@ -40,7 +41,8 @@ all:
10.32.8.18: #s33-t27-sut1 - cascadelake
10.32.8.20: #s35-t28-sut1 - cascadelake
10.32.8.22: #s37-t29-sut1 - cascadelake
- 10.30.51.69: #s27-t13-sut1 - thunderx2 9975
+ 10.32.8.24: #s60-t210-sut1 - epyc
+ 10.30.51.69: #s27-t34-sut1 - thunderx2 9975
vpp_device:
hosts:
10.30.51.50: #s1-t11-sut1 - skylake
@@ -59,6 +61,7 @@ all:
10.32.8.14: #s46-nomad - skylake
10.32.8.15: #s47-nomad - skylake
10.32.8.16: #s48-nomad - skylake
+ 10.32.8.17: #s57-nomad - skylake
10.30.51.39: #s53-nomad - thunderx 88xx
10.30.51.40: #s54-nomad - thunderx 88xx
10.30.51.65: #s52-nomad - thunderx 88xx
diff --git a/resources/tools/testbed-setup/ansible/nomad.yaml b/resources/tools/testbed-setup/ansible/nomad.yaml
index b09245cfdb..653215651a 100644
--- a/resources/tools/testbed-setup/ansible/nomad.yaml
+++ b/resources/tools/testbed-setup/ansible/nomad.yaml
@@ -8,7 +8,11 @@
roles:
- role: user_add
tags: user_add
+ - role: baremetal
+ tags: baremetal
- role: docker
tags: docker
- role: nomad
tags: nomad
+ - role: consul
+ tags: consul \ No newline at end of file
diff --git a/resources/tools/testbed-setup/ansible/roles/calibration/tasks/main.yaml b/resources/tools/testbed-setup/ansible/roles/calibration/tasks/main.yaml
index e88c39c180..a6e8898f9d 100644
--- a/resources/tools/testbed-setup/ansible/roles/calibration/tasks/main.yaml
+++ b/resources/tools/testbed-setup/ansible/roles/calibration/tasks/main.yaml
@@ -1,7 +1,7 @@
---
# file: roles/calibration/tasks/main.yaml
-- name: Calibration - Install Distribution - Release - Machine Prerequisites
+- name: Install Distribution - Release - Machine Prerequisites
package:
name: "{{ packages | flatten(levels=1) }}"
state: latest
@@ -9,41 +9,42 @@
tags:
- install-dependencies
-- name: Calibration - Check CPU Power States
+- name: Check CPU Power States
shell: "lscpu"
register: current_lscpu
changed_when: false
- failed_when: |
- 'CPU min MHz' in current_lscpu.stdout and
- 'Intel(R) Xeon(R)' in current_lscpu.stdout
tags:
- check-cpu-frequency
-- name: Calibration - Check Kernel Version of "{{ kernel_version }}"
- shell: "uname -r"
- register: current_kernel_version
- changed_when: false
- failed_when: |
- current_kernel_version.stdout not in kernel_version
+- name: Check CPU Power States
+ assert:
+ that:
+ - "'CPU min MHz' not in current_lscpu.stdout or 'Intel(R) Xeon(R)' not in ansible_processor"
+ fail_msg: "CPU configuration!"
+ success_msg: "CPU configuration match."
tags:
- - check-kernel-version
+ - check-cpu-frequency
-- name: Calibration - Check Kernel Parameters
- shell: "cat /proc/cmdline"
- register: current_kernel_parameters
- changed_when: false
- failed_when: |
- 'isolcpus' not in current_kernel_parameters.stdout or
- 'nohz_full' not in current_kernel_parameters.stdout or
- 'rcu_nocbs' not in current_kernel_parameters.stdout or
- 'processor.max_cstate=1' not in current_kernel_parameters.stdout or
- 'nmi_watchdog=0' not in current_kernel_parameters.stdout or
- 'intel_iommu=on' not in current_kernel_parameters.stdout or
- 'nosoftlockup' not in current_kernel_parameters.stdout
+- name: Check Kernel Parameters
+ assert:
+ that:
+ - item in ansible_cmdline and grub[item] == ansible_cmdline[item]
+ fail_msg: "Kernel parameters!"
+ success_msg: "Kernel parameters match."
+ loop: "{{ grub.keys()|sort }}"
tags:
- - check-cmdline
+ - check-kernel-params
+
+- name: Check Kernel Version
+ assert:
+ that:
+ - ansible_kernel not in kernel_version_by_distro_by_arch
+ fail_msg: "Kernel version!"
+ success_msg: "Kernel version match."
+ tags:
+ - check-kernel-version
-- name: Calibration - Get Spectre Meltdown Checker
+- name: Get Spectre Meltdown Checker
get_url:
url: "https://meltdown.ovh"
dest: "/opt/spectre-meltdown-checker.sh"
@@ -51,7 +52,7 @@
tags:
- check-spectre-meltdown
-- name: Calibration - Run Spectre Meltdown Checker
+- name: Run Spectre Meltdown Checker
shell: "/opt/spectre-meltdown-checker.sh --no-color || true"
async: 60
poll: 0
@@ -60,13 +61,13 @@
tags:
- check-spectre-meltdown
-- name: Calibration - {{ ansible_machine }} Specific
+- name: "{{ ansible_machine }} Specific"
include_tasks: "{{ ansible_machine }}.yaml"
tags:
- check-machine-specific
- check-jitter-tool
-- name: Check sync status
+- name: Check Sync Status
async_status:
jid: "{{ spectre_meltdown_async.ansible_job_id }}"
register: "spectre_meltdown_poll_results"
diff --git a/resources/tools/testbed-setup/ansible/roles/cleanup/tasks/kill_containers.yaml b/resources/tools/testbed-setup/ansible/roles/cleanup/tasks/kill_containers.yaml
index 1cd64351a8..ad4fb37681 100644
--- a/resources/tools/testbed-setup/ansible/roles/cleanup/tasks/kill_containers.yaml
+++ b/resources/tools/testbed-setup/ansible/roles/cleanup/tasks/kill_containers.yaml
@@ -1,29 +1,38 @@
---
# file: roles/cleanup/tasks/kill_containers.yaml
-- name: Kill containers
+- name: Kill Docker Containers
block:
- - name: Kill container - Get running Docker containers
+ - name: Kill container - Get Running Docker Containers
shell: "docker ps -aq"
register: running_containers
changed_when: no
tags: kill-containers
- - name: Kill container - Remove all Docker containers
+ - name: Kill container - Remove All Docker Containers
shell: "docker rm --force {{ item }}"
with_items: "{{ running_containers.stdout_lines }}"
tags: kill-containers
- - name: Kill container - Get running LXC containers
+ rescue:
+ - name: Restart Docker Daemon
+ systemd:
+ name: "docker"
+ state: "restarted"
+
+- name: Kill LXC Containers
+ block:
+ - name: Kill container - Get Running LXC Containers
shell: "lxc-ls"
register: running_containers
changed_when: no
tags: kill-containers
- - name: Kill container - Remove all LXC containers
+ - name: Kill container - Remove All LXC Containers
shell: "lxc-destroy --force -n {{ item }}"
with_items: "{{ running_containers.stdout_lines }}"
tags: kill-containers
+
rescue:
- fail:
- msg: "Kill containers failed!"
+ msg: "Kill LXC containers failed!" \ No newline at end of file
diff --git a/resources/tools/testbed-setup/ansible/roles/cleanup/tasks/kill_process.yaml b/resources/tools/testbed-setup/ansible/roles/cleanup/tasks/kill_process.yaml
index a593fc7616..30a9f459b5 100644
--- a/resources/tools/testbed-setup/ansible/roles/cleanup/tasks/kill_process.yaml
+++ b/resources/tools/testbed-setup/ansible/roles/cleanup/tasks/kill_process.yaml
@@ -27,6 +27,7 @@
shell: "kill -9 {{ item }}"
with_items: "{{ killed_processes.results | select('failed') | map(attribute='item') | list }}"
tags: kill-process
+
rescue:
- fail:
msg: "Kill process {{ process }} failed!"
diff --git a/resources/tools/testbed-setup/ansible/roles/cleanup/tasks/sut.yaml b/resources/tools/testbed-setup/ansible/roles/cleanup/tasks/sut.yaml
index c24b5e6a7f..53a65dd608 100644
--- a/resources/tools/testbed-setup/ansible/roles/cleanup/tasks/sut.yaml
+++ b/resources/tools/testbed-setup/ansible/roles/cleanup/tasks/sut.yaml
@@ -33,26 +33,38 @@
process: "vpp_echo"
tags: kill-process
+ - name: Find file or dir - Core zip file
+ find:
+ paths: "/tmp/"
+ patterns: "*tar.lzo.lrz.xz*"
+ register: files_to_delete
+ tags: remove-file-dir
+
- name: Remove file or dir - Core zip file
file:
+ path: "{{ item.path }}"
state: absent
- path: "/tmp/*tar.lzo.lrz.xz*"
+ with_items: "{{ files_to_delete.files }}"
+ tags: remove-file-dir
+
+ - name: Find file or dir - Core dump file
+ find:
+ paths: "/tmp/"
+ patterns: "*core*"
+ register: files_to_delete
tags: remove-file-dir
- name: Remove file or dir - Core dump file
file:
+ path: "{{ item.path }}"
state: absent
- path: "/tmp/*core*"
+ with_items: "{{ files_to_delete.files }}"
tags: remove-file-dir
- name: Kill containers - Remove all containers
import_tasks: kill_containers.yaml
tags: kill-containers
- - name: Kubernetes - Reset
- raw: 'kubeadm reset --force'
- tags: kill-kubernetes
-
- name: Remove packages - Remove VPP
import_tasks: remove_package.yaml
vars:
diff --git a/resources/tools/testbed-setup/ansible/roles/common/defaults/main.yaml b/resources/tools/testbed-setup/ansible/roles/common/defaults/main.yaml
index 13db641423..5517b20e1f 100644
--- a/resources/tools/testbed-setup/ansible/roles/common/defaults/main.yaml
+++ b/resources/tools/testbed-setup/ansible/roles/common/defaults/main.yaml
@@ -19,6 +19,7 @@ packages_by_distro:
ubuntu:
- "build-essential"
- "libpcap-dev"
+ - "net-tools"
- "python-all"
- "python-apt"
- "python-cffi"
diff --git a/resources/tools/testbed-setup/ansible/roles/consul/defaults/main.yaml b/resources/tools/testbed-setup/ansible/roles/consul/defaults/main.yaml
new file mode 100644
index 0000000000..786554eb58
--- /dev/null
+++ b/resources/tools/testbed-setup/ansible/roles/consul/defaults/main.yaml
@@ -0,0 +1,110 @@
+---
+# file: roles/consul/defaults/main.yaml
+
+# Inst - Prerequisites.
+packages: "{{ packages_base + packages_by_distro[ansible_distribution | lower] + packages_by_arch[ansible_machine] }}"
+
+packages_base:
+ - "cgroup-bin"
+ - "curl"
+ - "git"
+ - "libcgroup1"
+ - "unzip"
+ - "htop"
+packages_by_distro:
+ ubuntu:
+ - []
+packages_by_arch:
+ aarch64:
+ - []
+ x86_64:
+ - []
+
+# Inst - Download Consul.
+consul_architecture_map:
+ amd64: "amd64"
+ x86_64: "amd64"
+ armv7l: "arm"
+ aarch64: "arm64"
+ 32-bit: "386"
+ 64-bit: "amd64"
+consul_architecture: "{{ consul_architecture_map[ansible_architecture] }}"
+consul_version: "1.8.6"
+consul_pkg: "consul_{{ consul_version }}_linux_{{ consul_architecture }}.zip"
+consul_zip_url: "https://releases.hashicorp.com/consul/{{ consul_version }}/{{ consul_pkg }}"
+
+# Inst - System paths.
+consul_bin_dir: "/usr/local/bin"
+consul_config_dir: "/etc/consul.d"
+consul_data_dir: "/var/consul"
+consul_inst_dir: "/opt"
+consul_lockfile: "/var/lock/subsys/consul"
+consul_run_dir: "/var/run/consul"
+consul_ssl_dir: "/etc/consul.d/ssl"
+nomad_config_dir: "/etc/nomad.d"
+
+# Conf - Service.
+consul_node_role: "both"
+consul_restart_handler_state: "restarted"
+nomad_restart_handler_state: "restarted"
+systemd_resolved_state: "stopped"
+
+# Conf - User and group.
+consul_group: "consul"
+consul_group_state: "present"
+consul_manage_group: true
+consul_manage_user: true
+consul_user: "consul"
+consul_user_groups: [ docker, nomad, consul, root ]
+consul_user_state: "present"
+
+# Conf - nomad.d/consul.hcl
+consul_nomad_integration: true
+consul_certificates:
+ - src: "{{ vault_consul_v1_ca_file }}"
+ dest: "{{ consul_ca_file }}"
+ - src: "{{ vault_consul_v1_cert_file }}"
+ dest: "{{ consul_cert_file }}"
+ - src: "{{ vault_consul_v1_key_file }}"
+ dest: "{{ consul_key_file }}"
+
+consul_auto_advertise: true
+consul_checks_use_advertise: true
+consul_server_service_name: "nomad"
+consul_client_service_name: "nomad-client"
+consul_server_auto_join: false
+consul_client_auto_join: true
+consul_ACL_token_set: false
+consul_token: "consul_token_default"
+
+# Conf - base.hcl
+consul_bind_addr: "{{ ansible_default_ipv4.address }}"
+consul_client_addr: "0.0.0.0"
+consul_datacenter: "dc1"
+consul_disable_update_check: true
+consul_enable_debug: false
+consul_enable_syslog: true
+consul_log_level: "INFO"
+consul_node_name: "{{ inventory_hostname }}"
+consul_retry_join: true
+consul_bootstrap_expect: 2
+consul_encrypt: ""
+consul_ca_file: "{{ consul_ssl_dir }}/ca.pem"
+consul_cert_file: "{{ consul_ssl_dir }}/consul.pem"
+consul_key_file: "{{ consul_ssl_dir }}/consul-key.pem"
+consul_ui: true
+consul_recursors:
+ - 1.1.1.1
+ - 8.8.8.8
+
+# Conf - ports.hcl
+consul_port_dns: 53
+consul_port_http: 8500
+consul_port_https: 8501
+consul_port_grpc: 8502
+consul_port_serf_lan: 8301
+consul_port_serf_wan: 8302
+consul_port_server: 8300
+
+# Conf - services.json
+consul_services: false \ No newline at end of file
diff --git a/resources/tools/testbed-setup/ansible/roles/consul/handlers/main.yaml b/resources/tools/testbed-setup/ansible/roles/consul/handlers/main.yaml
new file mode 100644
index 0000000000..338baea74e
--- /dev/null
+++ b/resources/tools/testbed-setup/ansible/roles/consul/handlers/main.yaml
@@ -0,0 +1,23 @@
+---
+# file roles/consul/handlers/main.yaml
+
+- name: Restart Nomad
+ systemd:
+ daemon_reload: true
+ enabled: true
+ name: "nomad"
+ state: "{{ nomad_restart_handler_state }}"
+
+- name: Restart Consul
+ systemd:
+ daemon_reload: true
+ enabled: true
+ name: "consul"
+ state: "{{ consul_restart_handler_state }}"
+
+- name: Stop Systemd-resolved
+ systemd:
+ daemon_reload: true
+ enabled: false
+ name: "systemd-resolved"
+ state: "{{ systemd_resolved_state }}" \ No newline at end of file
diff --git a/resources/tools/testbed-setup/ansible/roles/consul/meta/main.yaml b/resources/tools/testbed-setup/ansible/roles/consul/meta/main.yaml
new file mode 100644
index 0000000000..4ada8efad6
--- /dev/null
+++ b/resources/tools/testbed-setup/ansible/roles/consul/meta/main.yaml
@@ -0,0 +1,9 @@
+---
+# file: roles/consul/meta/main.yaml
+
+# desc: Install consul from stable branch and configure service.
+# inst: Consul
+# conf: ?
+# info: 1.0 - added role
+
+dependencies: [ ]
diff --git a/resources/tools/testbed-setup/ansible/roles/consul/tasks/main.yaml b/resources/tools/testbed-setup/ansible/roles/consul/tasks/main.yaml
new file mode 100644
index 0000000000..f87590edb7
--- /dev/null
+++ b/resources/tools/testbed-setup/ansible/roles/consul/tasks/main.yaml
@@ -0,0 +1,174 @@
+---
+# file: roles/consul/tasks/main.yaml
+
+- name: Inst - Prerequisites
+ package:
+ name: "{{ packages | flatten(levels=1) }}"
+ state: latest
+ update_cache: true
+ tags:
+ - consul-inst-prerequisites
+
+- name: Conf - Add Consul Group
+ group:
+ name: "{{ consul_group }}"
+ state: "{{ consul_group_state }}"
+ when:
+ - consul_manage_group | bool
+ tags:
+ - consul-conf-user
+
+- name: Conf - Add Consul user
+ user:
+ name: "{{ consul_user }}"
+ group: "{{ consul_group }}"
+ groups: "{{ consul_user_groups }}"
+ state: "{{ consul_user_state }}"
+ system: true
+ when:
+ - consul_manage_user | bool
+ tags:
+ - consul-conf-user
+
+- name: Inst - Clean Consul
+ file:
+ path: "{{ consul_inst_dir }}/consul"
+ state: "absent"
+ tags:
+ - consul-inst-package
+
+- name: Inst - Download Consul
+ get_url:
+ url: "{{ consul_zip_url }}"
+ dest: "{{ consul_inst_dir }}/{{ consul_pkg }}"
+ tags:
+ - consul-inst-package
+
+- name: Inst - Unarchive Consul
+ unarchive:
+ src: "{{ consul_inst_dir }}/{{ consul_pkg }}"
+ dest: "{{ consul_inst_dir }}/"
+ creates: "{{ consul_inst_dir }}/consul"
+ remote_src: true
+ tags:
+ - consul-inst-package
+
+- name: Inst - Consul
+ copy:
+ src: "{{ consul_inst_dir }}/consul"
+ dest: "{{ consul_bin_dir }}"
+ owner: "{{ consul_user }}"
+ group: "{{ consul_group }}"
+ force: true
+ mode: 0755
+ remote_src: true
+ tags:
+ - consul-inst-package
+
+- name: Conf - Create Directories "{{ consul_data_dir }}"
+ file:
+ dest: "{{ consul_data_dir }}"
+ state: directory
+ owner: "{{ consul_user }}"
+ group: "{{ consul_group }}"
+ tags:
+ - consul-conf
+
+- name: Conf - Create Directories "{{ consul_ssl_dir }}"
+ file:
+ dest: "{{ consul_ssl_dir }}"
+ state: directory
+ owner: "{{ consul_user }}"
+ group: "{{ consul_group }}"
+ tags:
+ - consul-conf
+
+- name: Conf - Create Config Directory
+ file:
+ dest: "{{ consul_config_dir }}"
+ state: directory
+ owner: "{{ consul_user }}"
+ group: "{{ consul_group }}"
+ mode: 0755
+ tags:
+ - consul-conf
+
+- name: Conf - Nomad integration Consul Configuration
+ template:
+ src: consul.hcl.j2
+ dest: "{{ nomad_config_dir }}/consul.hcl"
+ owner: "nomad"
+ group: "nomad"
+ mode: 0644
+ when:
+ - consul_nomad_integration | bool
+ tags:
+ - consul-conf
+
+- name: Conf - Base Configuration
+ template:
+ src: base.hcl.j2
+ dest: "{{ consul_config_dir }}/base.hcl"
+ owner: "{{ consul_user }}"
+ group: "{{ consul_group }}"
+ mode: 0644
+ tags:
+ - consul-conf
+
+- name: Conf - Ports Configuration
+ template:
+ src: ports.hcl.j2
+ dest: "{{ consul_config_dir }}/ports.hcl"
+ owner: "{{ consul_user }}"
+ group: "{{ consul_group }}"
+ mode: 0644
+ tags:
+ - consul-conf
+
+- name: Conf - Telemetry Configuration
+ template:
+ src: telemetry.hcl.j2
+ dest: "{{ consul_config_dir }}/telemetry.hcl"
+ owner: "{{ consul_user }}"
+ group: "{{ consul_group }}"
+ mode: 0644
+ tags:
+ - consul-conf
+
+- name: Conf - Services Configuration
+ template:
+ src: services.json.j2
+ dest: "{{ consul_config_dir }}/services.json"
+ owner: "{{ consul_user }}"
+ group: "{{ consul_group }}"
+ mode: 0644
+ when:
+ - consul_services
+ tags:
+ - consul-conf
+
+- name: Conf - Copy Certificates And Keys
+ copy:
+ content: "{{ item.src }}"
+ dest: "{{ item.dest }}"
+ owner: "{{ consul_user }}"
+ group: "{{ consul_group }}"
+ mode: 0600
+ no_log: true
+ loop: "{{ consul_certificates | flatten(levels=1) }}"
+ tags:
+ - consul-conf
+
+- name: Conf - System.d Script
+ template:
+ src: "consul_systemd.service.j2"
+ dest: "/lib/systemd/system/consul.service"
+ owner: "root"
+ group: "root"
+ mode: 0644
+# notify:
+# - "Restart Consul"
+# - "Stop Systemd-resolved"
+# - "Restart Nomad"
+ tags:
+ - consul-conf
diff --git a/resources/tools/testbed-setup/ansible/roles/consul/templates/base.hcl.j2 b/resources/tools/testbed-setup/ansible/roles/consul/templates/base.hcl.j2
new file mode 100644
index 0000000000..536c48d847
--- /dev/null
+++ b/resources/tools/testbed-setup/ansible/roles/consul/templates/base.hcl.j2
@@ -0,0 +1,43 @@
+node_name = "{{ consul_node_name }}"
+datacenter = "{{ consul_datacenter }}"
+
+bind_addr = "{{ consul_bind_addr }}"
+client_addr = "{{ consul_client_addr }}"
+data_dir = "{{ consul_data_dir }}"
+
+enable_syslog = {{ consul_enable_syslog | bool | lower }}
+enable_debug = {{ consul_enable_debug | bool | lower }}
+disable_update_check = {{ consul_disable_update_check | bool | lower }}
+log_level = "{{ consul_log_level }}"
+
+server = {{ consul_node_server | bool | lower }}
+encrypt = "{{ consul_encrypt }}"
+{% if consul_node_server | bool == True %}
+bootstrap_expect = {{ consul_bootstrap_expect }}
+verify_incoming = true
+verify_outgoing = true
+verify_server_hostname = true
+ca_file = "{{ consul_ca_file }}"
+cert_file = "{{ consul_cert_file }}"
+key_file = "{{ consul_key_file }}"
+auto_encrypt {
+ allow_tls = true
+}
+{% else %}
+verify_incoming = false
+verify_outgoing = false
+verify_server_hostname = false
+ca_file = "{{ consul_ca_file }}"
+auto_encrypt {
+ tls = false
+}
+{% endif %}
+{% if consul_retry_join | bool -%}
+retry_join = [ {% for ip_port in consul_retry_servers -%} "{{ ip_port }}"{% if not loop.last %}, {% endif %}{%- endfor -%} ]
+{%- endif %}
+
+ui = {{ consul_ui | bool | lower }}
+
+{% if consul_recursors -%}
+recursors = [ {% for server in consul_recursors -%} "{{ server }}"{% if not loop.last %}, {% endif %}{%- endfor -%} ]
+{%- endif %} \ No newline at end of file
diff --git a/resources/tools/testbed-setup/ansible/roles/consul/templates/consul.hcl.j2 b/resources/tools/testbed-setup/ansible/roles/consul/templates/consul.hcl.j2
new file mode 100644
index 0000000000..c78e5e1ce5
--- /dev/null
+++ b/resources/tools/testbed-setup/ansible/roles/consul/templates/consul.hcl.j2
@@ -0,0 +1,12 @@
+consul {
+ auto_advertise = {{ consul_auto_advertise | bool | lower }}
+ checks_use_advertise = {{ consul_checks_use_advertise | bool | lower }}
+ client_auto_join = {{ consul_client_auto_join | bool | lower }}
+ client_service_name = "{{ consul_client_service_name }}"
+ server_service_name = "{{ consul_server_service_name }}"
+ server_auto_join = {{ consul_server_auto_join | bool | lower }}
+{% if consul_ACL_token_set == True %}
+ token = "{{ consul_token }}"
+{% endif %}
+
+} \ No newline at end of file
diff --git a/resources/tools/testbed-setup/ansible/roles/consul/templates/consul_systemd.service.j2 b/resources/tools/testbed-setup/ansible/roles/consul/templates/consul_systemd.service.j2
new file mode 100644
index 0000000000..8e1ef1310d
--- /dev/null
+++ b/resources/tools/testbed-setup/ansible/roles/consul/templates/consul_systemd.service.j2
@@ -0,0 +1,21 @@
+[Unit]
+Description=Consul Service
+Documentation=https://www.nomadproject.io/docs/
+Wants=network-online.target
+After=network-online.target
+
+[Service]
+# TODO: Decrease privilege
+ExecReload=/bin/kill -SIGHUP $MAINPID
+ExecStart={{ consul_bin_dir }}/consul agent -config-dir {{ consul_config_dir }}
+KillSignal=SIGTERM
+LimitNOFILE=infinity
+LimitNPROC=infinity
+Restart=on-failure
+RestartSec=1
+User=root
+Group=root
+Environment="GOMAXPROCS=2"
+
+[Install]
+WantedBy=multi-user.target
diff --git a/resources/tools/testbed-setup/ansible/roles/consul/templates/ports.hcl.j2 b/resources/tools/testbed-setup/ansible/roles/consul/templates/ports.hcl.j2
new file mode 100644
index 0000000000..a658060ce8
--- /dev/null
+++ b/resources/tools/testbed-setup/ansible/roles/consul/templates/ports.hcl.j2
@@ -0,0 +1,9 @@
+ports {
+ dns = {{ consul_port_dns }}
+ http = {{ consul_port_http }}
+ https = {{ consul_port_https }}
+ grpc = {{ consul_port_grpc }}
+ serf_lan = {{ consul_port_serf_lan }}
+ serf_wan = {{ consul_port_serf_wan }}
+ server = {{ consul_port_server }}
+} \ No newline at end of file
diff --git a/resources/tools/testbed-setup/ansible/roles/consul/templates/services.json.j2 b/resources/tools/testbed-setup/ansible/roles/consul/templates/services.json.j2
new file mode 100644
index 0000000000..3245ba92a4
--- /dev/null
+++ b/resources/tools/testbed-setup/ansible/roles/consul/templates/services.json.j2
@@ -0,0 +1,13 @@
+{
+ "services": [
+{% for item in consul_services %}
+ {
+ "name": "{{ item.name }}",
+ "port": {{ item.port }}
+ }
+{%- if not loop.last %},
+{% endif %}
+{% endfor %}
+
+ ]
+} \ No newline at end of file
diff --git a/resources/tools/testbed-setup/ansible/roles/consul/templates/telemetry.hcl.j2 b/resources/tools/testbed-setup/ansible/roles/consul/templates/telemetry.hcl.j2
new file mode 100644
index 0000000000..ec7fabc9da
--- /dev/null
+++ b/resources/tools/testbed-setup/ansible/roles/consul/templates/telemetry.hcl.j2
@@ -0,0 +1,3 @@
+telemetry {
+ prometheus_retention_time = "24h"
+} \ No newline at end of file
diff --git a/resources/tools/testbed-setup/ansible/roles/consul/vars/main.yaml b/resources/tools/testbed-setup/ansible/roles/consul/vars/main.yaml
new file mode 100644
index 0000000000..b46333a7a7
--- /dev/null
+++ b/resources/tools/testbed-setup/ansible/roles/consul/vars/main.yaml
@@ -0,0 +1,5 @@
+---
+# file: roles/consul/vars/main.yaml
+
+consul_node_client: "{{ (consul_node_role == 'client') or (consul_node_role == 'both') }}"
+consul_node_server: "{{ (consul_node_role == 'server') or (consul_node_role == 'both') }}"
diff --git a/resources/tools/testbed-setup/ansible/roles/csit_shim_image/files/Dockerfile b/resources/tools/testbed-setup/ansible/roles/csit_shim_image/files/Dockerfile
new file mode 100644
index 0000000000..2b2e1eae55
--- /dev/null
+++ b/resources/tools/testbed-setup/ansible/roles/csit_shim_image/files/Dockerfile
@@ -0,0 +1,61 @@
+# 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.
+
+FROM ubuntu:18.04
+LABEL Description="CSIT vpp-device ubuntu 18.04 shim image"
+LABEL Version="master"
+
+# Setup the environment
+ENV DEBIAN_FRONTEND=noninteractive
+ENV NOTVISIBLE "in users profile"
+RUN echo "export VISIBLE=now" >> /etc/profile
+
+ADD files/wrapdocker /usr/local/bin/wrapdocker
+RUN chmod +x /usr/local/bin/wrapdocker
+
+# Install packages and Docker
+RUN apt-get -q update \
+ && apt-get install -y -qq \
+ bash \
+ curl \
+ iproute2 \
+ locales \
+ ssh \
+ sudo \
+ tzdata \
+ uuid-runtime \
+ && curl -fsSL https://get.docker.com | sh \
+ && rm -rf /var/lib/apt/lists/*
+
+# Configure locales
+RUN locale-gen en_US
+
+RUN mkdir /var/run/sshd
+RUN echo 'root:Csit1234' | chpasswd
+RUN sed -i 's/#PermitRootLogin prohibit-password/PermitRootLogin yes/' /etc/ssh/sshd_config
+
+# SSH login fix. Otherwise user is kicked off after login
+RUN sed 's@session\s*required\s*pam_loginuid.so@session optional pam_loginuid.so@g' -i /etc/pam.d/sshd
+
+# Need volume for sidecar docker launches
+VOLUME /var/lib/docker
+
+# SSH to listen on port 6022 in shim
+RUN echo 'Port 6022' >>/etc/ssh/sshd_config
+RUN echo 'Port 6023' >>/etc/ssh/sshd_config
+ADD files/badkeypub /root/.ssh/authorized_keys
+ADD files/sshconfig /root/.ssh/config
+
+# Start sshd by default
+EXPOSE 22
+CMD ["/usr/sbin/sshd", "-D"] \ No newline at end of file
diff --git a/resources/tools/testbed-setup/ansible/roles/csit_shim_image/files/files/badkeypub b/resources/tools/testbed-setup/ansible/roles/csit_shim_image/files/files/badkeypub
new file mode 100644
index 0000000000..4530b66b05
--- /dev/null
+++ b/resources/tools/testbed-setup/ansible/roles/csit_shim_image/files/files/badkeypub
@@ -0,0 +1 @@
+ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCyUNd/iRk5Ajw4ZBB0gXyjzecEzQHh/MctgvHGJjasqJDkwYyZBrunUorOZ3n82W8VGdd5+eNINCWOM/ERjuaHjnutfade+ocPgZRdk+kEgTvetDVNWIgBd0PMVcnp57jJfx7CZVqTNgGeVQ8OJ2RbJGeOb/EKApQI74IPkAfc0PSieSw5gC0eqEOHb39Awgp0ycrzsUHF/OEicfCmo+6vvrMGenDe7frKUoTKYMWs7l3DOyFC8NaOxhGD3J1Ne5u3A/r4w6mN1HVI0rFwIcoms+t0B4lb2ODWKZiZikQdn8/eqwsmbSEZZsWN3FkshgjPS83+dNqVwB6pPY5Yqte7 ejk@bhima.local \ No newline at end of file
diff --git a/resources/tools/testbed-setup/ansible/roles/csit_shim_image/files/files/sshconfig b/resources/tools/testbed-setup/ansible/roles/csit_shim_image/files/files/sshconfig
new file mode 100644
index 0000000000..e7bd90757e
--- /dev/null
+++ b/resources/tools/testbed-setup/ansible/roles/csit_shim_image/files/files/sshconfig
@@ -0,0 +1,3 @@
+Host 172.17.0.*
+ StrictHostKeyChecking no
+ UserKnownHostsFile=/dev/null \ No newline at end of file
diff --git a/resources/tools/testbed-setup/ansible/roles/csit_shim_image/files/files/wrapdocker b/resources/tools/testbed-setup/ansible/roles/csit_shim_image/files/files/wrapdocker
new file mode 100644
index 0000000000..d13f8b7c5e
--- /dev/null
+++ b/resources/tools/testbed-setup/ansible/roles/csit_shim_image/files/files/wrapdocker
@@ -0,0 +1,113 @@
+#!/bin/bash
+
+# Ensure that all nodes in /dev/mapper correspond to mapped devices currently loaded by the device-mapper kernel driver
+dmsetup mknodes
+
+# First, make sure that cgroups are mounted correctly.
+CGROUP=/sys/fs/cgroup
+: {LOG:=stdio}
+
+[ -d $CGROUP ] ||
+ mkdir $CGROUP
+
+mountpoint -q $CGROUP ||
+ mount -n -t tmpfs -o uid=0,gid=0,mode=0755 cgroup $CGROUP || {
+ echo "Could not make a tmpfs mount. Did you use --privileged?"
+ exit 1
+ }
+
+if [ -d /sys/kernel/security ] && ! mountpoint -q /sys/kernel/security
+then
+ mount -t securityfs none /sys/kernel/security || {
+ echo "Could not mount /sys/kernel/security."
+ echo "AppArmor detection and --privileged mode might break."
+ }
+fi
+
+# Mount the cgroup hierarchies exactly as they are in the parent system.
+for SUBSYS in $(cut -d: -f2 /proc/1/cgroup)
+do
+ [ -d $CGROUP/$SUBSYS ] || mkdir $CGROUP/$SUBSYS
+ mountpoint -q $CGROUP/$SUBSYS ||
+ mount -n -t cgroup -o $SUBSYS cgroup $CGROUP/$SUBSYS
+
+ # The two following sections address a bug which manifests itself
+ # by a cryptic "lxc-start: no ns_cgroup option specified" when
+ # trying to start containers withina container.
+ # The bug seems to appear when the cgroup hierarchies are not
+ # mounted on the exact same directories in the host, and in the
+ # container.
+
+ # Named, control-less cgroups are mounted with "-o name=foo"
+ # (and appear as such under /proc/<pid>/cgroup) but are usually
+ # mounted on a directory named "foo" (without the "name=" prefix).
+ # Systemd and OpenRC (and possibly others) both create such a
+ # cgroup. To avoid the aforementioned bug, we symlink "foo" to
+ # "name=foo". This shouldn't have any adverse effect.
+ echo $SUBSYS | grep -q ^name= && {
+ NAME=$(echo $SUBSYS | sed s/^name=//)
+ ln -s $SUBSYS $CGROUP/$NAME
+ }
+
+ # Likewise, on at least one system, it has been reported that
+ # systemd would mount the CPU and CPU accounting controllers
+ # (respectively "cpu" and "cpuacct") with "-o cpuacct,cpu"
+ # but on a directory called "cpu,cpuacct" (note the inversion
+ # in the order of the groups). This tries to work around it.
+ [ $SUBSYS = cpuacct,cpu ] && ln -s $SUBSYS $CGROUP/cpu,cpuacct
+done
+
+# Note: as I write those lines, the LXC userland tools cannot setup
+# a "sub-container" properly if the "devices" cgroup is not in its
+# own hierarchy. Let's detect this and issue a warning.
+grep -q :devices: /proc/1/cgroup ||
+ echo "WARNING: the 'devices' cgroup should be in its own hierarchy."
+grep -qw devices /proc/1/cgroup ||
+ echo "WARNING: it looks like the 'devices' cgroup is not mounted."
+
+# Now, close extraneous file descriptors.
+pushd /proc/self/fd >/dev/null
+for FD in *
+do
+ case "$FD" in
+ # Keep stdin/stdout/stderr
+ [012])
+ ;;
+ # Nuke everything else
+ *)
+ eval exec "$FD>&-"
+ ;;
+ esac
+done
+popd >/dev/null
+
+
+# If a pidfile is still around (for example after a container restart),
+# delete it so that docker can start.
+rm -rf /var/run/docker.pid
+
+# If we were given a PORT environment variable, start as a simple daemon;
+# otherwise, spawn a shell as well
+if [ "$PORT" ]
+then
+ exec dockerd -H 0.0.0.0:$PORT -H unix:///var/run/docker.sock \
+ $DOCKER_DAEMON_ARGS
+else
+ if [ "$LOG" == "file" ]
+ then
+ dockerd $DOCKER_DAEMON_ARGS &>/var/log/docker.log &
+ else
+ dockerd $DOCKER_DAEMON_ARGS &
+ fi
+ (( timeout = 60 + SECONDS ))
+ until docker info >/dev/null 2>&1
+ do
+ if (( SECONDS >= timeout )); then
+ echo 'Timed out trying to connect to internal docker host.' >&2
+ break
+ fi
+ sleep 1
+ done
+ [[ $1 ]] && exec "$@"
+ exec bash --login
+fi \ No newline at end of file
diff --git a/resources/tools/testbed-setup/ansible/roles/csit_shim_image/tasks/main.yaml b/resources/tools/testbed-setup/ansible/roles/csit_shim_image/tasks/main.yaml
new file mode 100644
index 0000000000..bdba4f6563
--- /dev/null
+++ b/resources/tools/testbed-setup/ansible/roles/csit_shim_image/tasks/main.yaml
@@ -0,0 +1,32 @@
+---
+# file: roles/csit_shim_image/tasks/main.yaml
+
+- name: Create a directory if it does not exist
+ file:
+ path: "{{ item }}"
+ state: "directory"
+ mode: 0755
+ with_items:
+ - "/opt/csit-shim/"
+ - "/opt/csit-shim/files"
+ tags: csit-shim-image
+
+- name: Copy Build Items
+ copy:
+ src: "{{ item }}"
+ dest: "/opt/csit-shim/{{ item }}"
+ owner: "root"
+ group: "root"
+ mode: 0655
+ with_items:
+ - "Dockerfile"
+ - "files/badkeypub"
+ - "files/sshconfig"
+ - "files/wrapdocker"
+ tags: csit-shim-image
+
+- name: Build CSIT shim Docker Image
+ shell: "docker build -t csit_shim-ubuntu1804:local ."
+ args:
+ chdir: "/opt/csit-shim"
+ tags: csit-shim-image \ No newline at end of file
diff --git a/resources/tools/testbed-setup/ansible/roles/csit_sut_image/files/Dockerfile b/resources/tools/testbed-setup/ansible/roles/csit_sut_image/files/Dockerfile
new file mode 100644
index 0000000000..6dddad6ebb
--- /dev/null
+++ b/resources/tools/testbed-setup/ansible/roles/csit_sut_image/files/Dockerfile
@@ -0,0 +1,173 @@
+# 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.
+
+FROM ubuntu:18.04
+LABEL Description="CSIT vpp-device ubuntu 18.04 SUT image"
+LABEL Version="master"
+
+# Setup the environment
+ENV DEBIAN_FRONTEND=noninteractive
+ENV LANG='en_US.UTF-8' LANGUAGE='en_US:en' LC_ALL='en_US.UTF-8'
+ENV NOTVISIBLE "in users profile"
+ENV VPP_PYTHON_PREFIX=/var/cache/vpp/python
+
+# Install packages and Docker
+RUN apt-get -q update \
+ && apt-get install -y -qq \
+ # general tools
+ apt-transport-https \
+ bridge-utils \
+ cloud-init \
+ curl \
+ gdb \
+ locales \
+ net-tools \
+ openssh-server \
+ pciutils \
+ rsyslog \
+ software-properties-common \
+ ssh \
+ sudo \
+ supervisor \
+ tar \
+ vim \
+ wget \
+ # csit requirements
+ cmake \
+ dkms \
+ gfortran \
+ libblas-dev \
+ libffi-dev \
+ liblapack-dev \
+ libpcap-dev \
+ libssl-dev \
+ python-all \
+ python-apt \
+ python-cffi \
+ python-cffi-backend \
+ python-dev \
+ python-enum34 \
+ python-pip \
+ python-setuptools \
+ python-virtualenv \
+ python3-all \
+ python3-apt \
+ python3-cffi \
+ python3-cffi-backend \
+ python3-dev \
+ python3-pip \
+ python3-setuptools \
+ python3-virtualenv \
+ qemu-system \
+ socat \
+ strongswan \
+ unzip \
+ tcpdump \
+ zlib1g-dev \
+ # vpp requirements
+ ca-certificates \
+ libapr1 \
+ libmbedcrypto1 \
+ libmbedtls10 \
+ libmbedx509-0 \
+ libnuma1 \
+ sshpass \
+ && curl -L https://packagecloud.io/fdio/master/gpgkey | sudo apt-key add - \
+ && curl -s https://packagecloud.io/install/repositories/fdio/master/script.deb.sh | sudo bash \
+ # temp hack due to build.sh
+ && apt-get install -y -qq vpp-ext-deps \
+ && curl -fsSL https://get.docker.com | sh \
+ && rm -rf /var/lib/apt/lists/*
+
+# Configure locales
+RUN locale-gen en_US.UTF-8 \
+ && dpkg-reconfigure locales
+
+# Fix permissions
+RUN chown root:syslog /var/log \
+ && chmod 755 /etc/default
+
+# Create directory structure
+RUN mkdir -p /tmp/dumps \
+ && mkdir -p /var/cache/vpp/python \
+ && mkdir -p /var/run/sshd
+
+# CSIT PIP pre-cache
+RUN pip3 install \
+ ecdsa==0.13.3 \
+ paramiko==2.6.0 \
+ pycrypto==2.6.1 \
+ pypcap==1.2.3 \
+ PyYAML==5.1.1 \
+ requests==2.22.0 \
+ robotframework==3.1.2 \
+ scapy==2.4.3 \
+ scp==0.13.2 \
+ ansible==2.7.8 \
+ dill==0.2.8.2 \
+ numpy==1.17.3 \
+ hdrhistogram==0.6.1 \
+ plotly==4.1.1 \
+ PTable==0.9.2 \
+ Sphinx==2.2.1 \
+ sphinx-rtd-theme==0.4.0 \
+ sphinxcontrib-programoutput==0.15 \
+ sphinxcontrib-robotdoc==0.11.0 \
+ alabaster==0.7.12 \
+ Babel==2.7.0 \
+ bcrypt==3.1.7 \
+ certifi==2019.9.11 \
+ cffi==1.13.2 \
+ chardet==3.0.4 \
+ cryptography==2.8 \
+ docutils==0.15.2 \
+ future==0.18.2 \
+ idna==2.8 \
+ imagesize==1.1.0 \
+ Jinja2==2.10.3 \
+ MarkupSafe==1.1.1 \
+ packaging==19.2 \
+ pbr==5.4.3 \
+ pycparser==2.19 \
+ Pygments==2.4.2 \
+ PyNaCl==1.3.0 \
+ pyparsing==2.4.4 \
+ python-dateutil==2.8.1 \
+ pytz==2019.3 \
+ retrying==1.3.3 \
+ six==1.13.0 \
+ snowballstemmer==2.0.0 \
+ sphinxcontrib-applehelp==1.0.1 \
+ sphinxcontrib-devhelp==1.0.1 \
+ sphinxcontrib-htmlhelp==1.0.2 \
+ sphinxcontrib-jsmath==1.0.1 \
+ sphinxcontrib-qthelp==1.0.2 \
+ sphinxcontrib-serializinghtml==1.1.3 \
+ urllib3==1.25.6
+
+# ARM workaround
+RUN pip3 install \
+ pandas==0.25.3 \
+ scipy==1.1.0
+
+# SSH settings
+RUN echo 'root:Csit1234' | chpasswd \
+ && sed -i 's/#PermitRootLogin prohibit-password/PermitRootLogin yes/' /etc/ssh/sshd_config \
+ && sed 's@session\s*required\s*pam_loginuid.so@session optional pam_loginuid.so@g' -i /etc/pam.d/sshd \
+ && echo "export VISIBLE=now" >> /etc/profile
+
+EXPOSE 2222
+
+COPY supervisord.conf /etc/supervisor/supervisord.conf
+
+CMD ["sh", "-c", "rm -f /dev/shm/db /dev/shm/global_vm /dev/shm/vpe-api; /usr/bin/supervisord -c /etc/supervisor/supervisord.conf; /usr/sbin/sshd -D -p 2222"] \ No newline at end of file
diff --git a/resources/tools/testbed-setup/ansible/roles/csit_sut_image/files/supervisord.conf b/resources/tools/testbed-setup/ansible/roles/csit_sut_image/files/supervisord.conf
new file mode 100644
index 0000000000..22a36be5c6
--- /dev/null
+++ b/resources/tools/testbed-setup/ansible/roles/csit_sut_image/files/supervisord.conf
@@ -0,0 +1,24 @@
+[unix_http_server]
+file = /tmp/supervisor.sock
+chmod = 0777
+
+[rpcinterface:supervisor]
+supervisor.rpcinterface_factory = supervisor.rpcinterface:make_main_rpcinterface
+
+[supervisorctl]
+serverurl = unix:///tmp/supervisor.sock
+
+[supervisord]
+pidfile = /tmp/supervisord.pid
+identifier = supervisor
+directory = /tmp
+logfile = /tmp/supervisord.log
+loglevel = debug
+nodaemon = false
+
+[program:vpp]
+command = /usr/bin/vpp -c /etc/vpp/startup.conf
+autostart = false
+autorestart = true
+redirect_stderr = true
+priority = 1 \ No newline at end of file
diff --git a/resources/tools/testbed-setup/ansible/roles/csit_sut_image/tasks/main.yaml b/resources/tools/testbed-setup/ansible/roles/csit_sut_image/tasks/main.yaml
new file mode 100644
index 0000000000..7b41be8a64
--- /dev/null
+++ b/resources/tools/testbed-setup/ansible/roles/csit_sut_image/tasks/main.yaml
@@ -0,0 +1,27 @@
+---
+# file: roles/csit_sut_image/tasks/main.yaml
+
+- name: Create a directory if it does not exist
+ file:
+ path: "/opt/csit-sut/"
+ state: "directory"
+ mode: 0755
+ tags: csit-sut-image
+
+- name: Copy Build Items
+ copy:
+ src: "{{ item }}"
+ dest: "/opt/csit-sut/"
+ owner: "root"
+ group: "root"
+ mode: 0755
+ with_items:
+ - Dockerfile
+ - supervisord.conf
+ tags: csit-sut-image
+
+- name: Build CSIT SUT Docker Image
+ shell: "docker build -t csit_sut-ubuntu1804:local ."
+ args:
+ chdir: "/opt/csit-sut"
+ tags: csit-sut-image \ No newline at end of file
diff --git a/resources/tools/testbed-setup/ansible/roles/docker/defaults/main.yaml b/resources/tools/testbed-setup/ansible/roles/docker/defaults/main.yaml
index 6c445aa42a..9b182de4c4 100644
--- a/resources/tools/testbed-setup/ansible/roles/docker/defaults/main.yaml
+++ b/resources/tools/testbed-setup/ansible/roles/docker/defaults/main.yaml
@@ -4,7 +4,7 @@
# Version options.
docker_edition: "ce"
docker_package: "docker-{{ docker_edition }}"
-docker_package_state: present
+docker_package_state: latest
# Service options.
docker_service_state: started
@@ -13,10 +13,17 @@ docker_restart_handler_state: restarted
# Used only for Debian/Ubuntu.
docker_apt_release_channel: "stable"
-docker_apt_key: "https://download.docker.com/linux/{{ ansible_distribution | lower }}/gpg"
-docker_apt_key_state: present
docker_apt_repository: "deb https://download.docker.com/linux/{{ ansible_distribution|lower }} {{ ansible_distribution_release }} {{ docker_apt_release_channel }}"
docker_apt_repository_state: present
+docker_apt_ignore_key_error: true
+docker_apt_gpg_key: "https://download.docker.com/linux/{{ ansible_distribution | lower }}/gpg"
+docker_apt_gpg_key_state: present
+
+# Used only for RedHat/CentOS/Fedora.
+docker_yum_repo_url: https://download.docker.com/linux/{{ (ansible_distribution == "Fedora") | ternary("fedora","centos") }}/docker-{{ docker_edition }}.repo
+docker_yum_repo_enable_edge: '0'
+docker_yum_repo_enable_test: '0'
+docker_yum_gpg_key: https://download.docker.com/linux/centos/gpg
# A list of users who will be added to the docker group.
docker_users:
@@ -28,4 +35,4 @@ docker_daemon_environment_http:
- "NO_PROXY={{ proxy_env.no_proxy }}"
docker_daemon_environment_https:
- "HTTPS_PROXY={{ proxy_env.https_proxy }}"
- - "NO_PROXY={{ proxy_env.no_proxy }}"
+ - "NO_PROXY={{ proxy_env.no_proxy }}" \ No newline at end of file
diff --git a/resources/tools/testbed-setup/ansible/roles/docker/meta/main.yaml b/resources/tools/testbed-setup/ansible/roles/docker/meta/main.yaml
index 0dc7d19507..ab3d197791 100644
--- a/resources/tools/testbed-setup/ansible/roles/docker/meta/main.yaml
+++ b/resources/tools/testbed-setup/ansible/roles/docker/meta/main.yaml
@@ -1,6 +1,4 @@
---
# file: roles/docker/meta/main.yaml
-dependencies: []
-
-
+dependencies: [] \ No newline at end of file
diff --git a/resources/tools/testbed-setup/ansible/roles/docker/tasks/main.yaml b/resources/tools/testbed-setup/ansible/roles/docker/tasks/main.yaml
index f0cb0d19cf..8158af51b4 100644
--- a/resources/tools/testbed-setup/ansible/roles/docker/tasks/main.yaml
+++ b/resources/tools/testbed-setup/ansible/roles/docker/tasks/main.yaml
@@ -7,7 +7,9 @@
- name: Inst - Docker
package:
- name: "{{ docker_package }}"
+ name:
+ - "{{ docker_package }}"
+ - "{{ docker_package }}-cli"
state: "{{ docker_package_state }}"
tags:
- docker-inst-package
diff --git a/resources/tools/testbed-setup/ansible/roles/docker/tasks/ubuntu_bionic.yaml b/resources/tools/testbed-setup/ansible/roles/docker/tasks/ubuntu_bionic.yaml
index a38a0af110..2e82c552be 100644
--- a/resources/tools/testbed-setup/ansible/roles/docker/tasks/ubuntu_bionic.yaml
+++ b/resources/tools/testbed-setup/ansible/roles/docker/tasks/ubuntu_bionic.yaml
@@ -15,8 +15,8 @@
- name: Conf - Add APT Key
apt_key:
- url: "{{ docker_apt_key }}"
- state: "{{ docker_apt_key_state }}"
+ url: "{{ docker_apt_gpg_key }}"
+ state: "{{ docker_apt_gpg_key_state }}"
tags: docker-conf-apt
- name: Conf - Install APT Repository
diff --git a/resources/tools/testbed-setup/ansible/roles/nomad/defaults/main.yaml b/resources/tools/testbed-setup/ansible/roles/nomad/defaults/main.yaml
index f88e882fce..864890c11e 100644
--- a/resources/tools/testbed-setup/ansible/roles/nomad/defaults/main.yaml
+++ b/resources/tools/testbed-setup/ansible/roles/nomad/defaults/main.yaml
@@ -84,6 +84,7 @@ nomad_node_class: ""
nomad_no_host_uuid: true
nomad_options: {}
nomad_servers: []
+nomad_volumes: []
# Conf - server.hcl
nomad_bootstrap_expect: 2
diff --git a/resources/tools/testbed-setup/ansible/roles/nomad/templates/client.hcl.j2 b/resources/tools/testbed-setup/ansible/roles/nomad/templates/client.hcl.j2
index f15616144f..f245697a22 100644
--- a/resources/tools/testbed-setup/ansible/roles/nomad/templates/client.hcl.j2
+++ b/resources/tools/testbed-setup/ansible/roles/nomad/templates/client.hcl.j2
@@ -19,4 +19,13 @@ client {
}
{% endif %}
+ {% if nomad_volumes -%}
+ {% for volume in nomad_volumes -%}
+ host_volume "{{ volume.name }}" {
+ path = "{{ volume.path }}"
+ read_only = {{ volume.read_only | bool | lower }}
+ }
+ {% endfor -%}
+ {% endif %}
+
}
diff --git a/resources/tools/testbed-setup/ansible/roles/nomad/templates/nomad_systemd.service.j2 b/resources/tools/testbed-setup/ansible/roles/nomad/templates/nomad_systemd.service.j2
index efe2e30bd6..2a87c65063 100644
--- a/resources/tools/testbed-setup/ansible/roles/nomad/templates/nomad_systemd.service.j2
+++ b/resources/tools/testbed-setup/ansible/roles/nomad/templates/nomad_systemd.service.j2
@@ -6,7 +6,7 @@ After=network-online.target
[Service]
# TODO: Decrease privilege
-ExecReload=/bin/kill -SIGKILL $MAINPID
+ExecReload=/bin/kill -SIGHUP $MAINPID
ExecStart={{ nomad_bin_dir }}/nomad agent -config={{ nomad_config_dir }}
KillSignal=SIGTERM
LimitNOFILE=infinity
diff --git a/resources/tools/testbed-setup/ansible/roles/performance_tuning/defaults/main.yaml b/resources/tools/testbed-setup/ansible/roles/performance_tuning/defaults/main.yaml
index edec57aba0..612bc5a946 100644
--- a/resources/tools/testbed-setup/ansible/roles/performance_tuning/defaults/main.yaml
+++ b/resources/tools/testbed-setup/ansible/roles/performance_tuning/defaults/main.yaml
@@ -14,10 +14,4 @@ packages_by_arch:
aarch64:
- []
x86_64:
- - []
-
-grub_cmdline_linux:
- aarch64:
- - "GRUB_CMDLINE_LINUX=\"isolcpus={{ grub.isolcpus }} nohz_full={{ grub.nohz_full }} rcu_nocbs={{ grub.rcu_nocbs }} intel_iommu=on nmi_watchdog=0 audit=0 nosoftlockup processor.max_cstate=1\""
- x86_64:
- - "GRUB_CMDLINE_LINUX=\"isolcpus={{ grub.isolcpus }} nohz_full={{ grub.nohz_full }} rcu_nocbs={{ grub.rcu_nocbs }} numa_balancing=disable intel_pstate=disable intel_iommu=on iommu=pt nmi_watchdog=0 audit=0 nosoftlockup processor.max_cstate=1 intel_idle.max_cstate=1 hpet=disable tsc=reliable mce=off\""
+ - [] \ No newline at end of file
diff --git a/resources/tools/testbed-setup/ansible/roles/performance_tuning/tasks/main.yaml b/resources/tools/testbed-setup/ansible/roles/performance_tuning/tasks/main.yaml
index 3a8f35b57f..c437b40f86 100644
--- a/resources/tools/testbed-setup/ansible/roles/performance_tuning/tasks/main.yaml
+++ b/resources/tools/testbed-setup/ansible/roles/performance_tuning/tasks/main.yaml
@@ -19,7 +19,7 @@
path: "/etc/default/grub"
state: "present"
regexp: "^GRUB_CMDLINE_LINUX="
- line: "{{ grub_cmdline_linux[ansible_machine] | join() }}"
+ line: "GRUB_CMDLINE_LINUX=\"{% for key, value in grub.items() %}{% if value %}{{key}}={{value}} {% else %}{{key}} {% endif %}{% endfor %}\""
notify:
- "Update GRUB"
tags:
diff --git a/resources/tools/testbed-setup/ansible/roles/trex/defaults/main.yaml b/resources/tools/testbed-setup/ansible/roles/trex/defaults/main.yaml
index 77d0aaa08a..c3caf52d76 100644
--- a/resources/tools/testbed-setup/ansible/roles/trex/defaults/main.yaml
+++ b/resources/tools/testbed-setup/ansible/roles/trex/defaults/main.yaml
@@ -28,6 +28,12 @@ packages_by_arch:
trex_target_dir: "/opt"
trex_url: "https://github.com/cisco-system-traffic-generator/trex-core/archive/"
trex_version:
+ # rls1908
- "2.54"
+ # rls2001
+ # rls2005
- "2.73"
+ # rls2009
- "2.82"
+ # rls2101
+ - "2.86"
diff --git a/resources/tools/testbed-setup/ansible/roles/trex/tasks/deploy_block.yaml b/resources/tools/testbed-setup/ansible/roles/trex/tasks/deploy_block.yaml
new file mode 100644
index 0000000000..1513a0a617
--- /dev/null
+++ b/resources/tools/testbed-setup/ansible/roles/trex/tasks/deploy_block.yaml
@@ -0,0 +1,55 @@
+---
+# file: roles/trex/tasks/deploy_block.yaml
+
+- name: "Get Release {{ item }}"
+ get_url:
+ url: "{{ trex_url }}/v{{ item }}.tar.gz"
+ dest: "{{ trex_target_dir }}/trex-core-{{ item }}.tar.gz"
+ validate_certs: False
+ mode: 0644
+ register: trex_downloaded
+
+- name: "Create Directory {{ item }}"
+ file:
+ path: "{{ trex_target_dir }}/trex-core-{{ item }}"
+ state: "directory"
+
+- name: "Extract Release {{ item }}"
+ unarchive:
+ remote_src: true
+ src: "{{ trex_target_dir }}/trex-core-{{ item }}.tar.gz"
+ dest: "{{ trex_target_dir }}/"
+ creates: "{{ trex_target_dir }}/trex-core-{{ item }}/linux_dpdk/"
+ register: trex_extracted
+
+- name: Patch Azure
+ patch:
+ src: "files/t-rex.patch"
+ basedir: "{{ trex_target_dir }}/trex-core-{{ item }}"
+ strip: 1
+ when:
+ - azure is defined and item == "2.73"
+
+- name: "Compile Release {{ item }} Part I"
+ command: "./b configure"
+ args:
+ chdir: "{{ trex_target_dir }}/trex-core-{{ item }}/linux_dpdk/"
+ when: trex_extracted.changed
+
+- name: "Compile Release {{ item }} Part II"
+ command: "./b build"
+ args:
+ chdir: "{{ trex_target_dir }}/trex-core-{{ item }}/linux_dpdk/"
+ when: trex_extracted.changed
+
+- name: "Compile Release {{ item }} Part III"
+ command: "make -j 16"
+ args:
+ chdir: "{{ trex_target_dir }}/trex-core-{{ item }}/scripts/ko/src"
+ when: trex_extracted.changed
+
+- name: "Compile Release {{ item }} Part IV"
+ command: "make install"
+ args:
+ chdir: "{{ trex_target_dir }}/trex-core-{{ item }}/scripts/ko/src"
+ when: trex_extracted.changed \ No newline at end of file
diff --git a/resources/tools/testbed-setup/ansible/roles/trex/tasks/main.yaml b/resources/tools/testbed-setup/ansible/roles/trex/tasks/main.yaml
index 4e6715152b..019a27f79d 100644
--- a/resources/tools/testbed-setup/ansible/roles/trex/tasks/main.yaml
+++ b/resources/tools/testbed-setup/ansible/roles/trex/tasks/main.yaml
@@ -1,7 +1,7 @@
---
# file: roles/trex/tasks/main.yaml
-- name: T-Rex - Distribution - Release - Machine Prerequisites
+- name: Install Distribution - Release - Machine Prerequisites
package:
name: "{{ packages | flatten(levels=1) }}"
state: latest
@@ -9,79 +9,8 @@
tags:
- install-dependencies
-- name: T-Rex - Get Release Archive
- get_url:
- url: "{{ trex_url }}/v{{ item }}.tar.gz"
- dest: "{{ trex_target_dir }}/trex-core-{{ item }}.tar.gz"
- validate_certs: False
- mode: 0644
+- name: Deploy Multiple T-Rex Versions
+ include_tasks: deploy_block.yaml
loop: "{{ trex_version }}"
- register: trex_downloaded
tags:
- - install-trex
-
-- name: T-Rex - Ensure Directory Exists
- file:
- path: "{{ trex_target_dir }}/trex-core-{{ item }}"
- state: "directory"
- loop: "{{ trex_version }}"
- tags:
- - install-trex
-
-- name: T-Rex - Extract Release Archive
- unarchive:
- remote_src: true
- src: "{{ trex_target_dir }}/trex-core-{{ item }}.tar.gz"
- dest: "{{ trex_target_dir }}/"
- creates: "{{ trex_target_dir }}/trex-core-{{ item }}/linux_dpdk/"
- loop: "{{ trex_version }}"
- register: trex_extracted
- tags:
- - install-trex
-
-- name: T-Rex - Azure patch I
- patch:
- src: "files/t-rex.patch"
- basedir: "{{ trex_target_dir }}/trex-core-{{ item }}"
- strip: 1
- loop: "{{ trex_version }}"
- when:
- - azure is defined and "{{ item }}" == "2.73"
- tags:
- - install-trex
-
-- name: T-Rex - Compile Release I
- command: "./b configure"
- args:
- chdir: "{{ trex_target_dir }}/trex-core-{{ item }}/linux_dpdk/"
- loop: "{{ trex_version }}"
- when: trex_extracted
- tags:
- - install-trex
-
-- name: T-Rex - Compile Release II
- command: "./b build"
- args:
- chdir: "{{ trex_target_dir }}/trex-core-{{ item }}/linux_dpdk/"
- loop: "{{ trex_version }}"
- when: trex_extracted
- tags:
- - install-trex
-
-- name: T-Rex - Compile Release III
- command: "make -j 16"
- args:
- chdir: "{{ trex_target_dir }}/trex-core-{{ item }}/scripts/ko/src"
- loop: "{{ trex_version }}"
- when: trex_extracted
- tags:
- - install-trex
-
-- name: T-Rex - Compile Release IV
- command: "make install"
- args:
- chdir: "{{ trex_target_dir }}/trex-core-{{ item }}/scripts/ko/src"
- loop: "{{ trex_version }}"
- when: trex_extracted
- tags:
- - install-trex
+ - install-trex \ No newline at end of file
diff --git a/resources/tools/testbed-setup/ansible/roles/vpp_device/tasks/main.yaml b/resources/tools/testbed-setup/ansible/roles/vpp_device/tasks/main.yaml
index b93853b01f..33b551715f 100644
--- a/resources/tools/testbed-setup/ansible/roles/vpp_device/tasks/main.yaml
+++ b/resources/tools/testbed-setup/ansible/roles/vpp_device/tasks/main.yaml
@@ -82,7 +82,7 @@
path: "/etc/default/grub"
state: "present"
regexp: "^GRUB_CMDLINE_LINUX="
- line: 'GRUB_CMDLINE_LINUX="hugepagesz=2M hugepages={{ grub.nr_hugepages }}"'
+ line: "GRUB_CMDLINE_LINUX=\"{% for key, value in grub.items() %}{% if value %}{{key}}={{value}} {% else %}{{key}} {% endif %}{% endfor %}\""
notify:
- "Update GRUB"
- "Reboot server"
diff --git a/resources/tools/testbed-setup/ansible/sut.yaml b/resources/tools/testbed-setup/ansible/sut.yaml
index 68ac9b8364..302fa1b78d 100644
--- a/resources/tools/testbed-setup/ansible/sut.yaml
+++ b/resources/tools/testbed-setup/ansible/sut.yaml
@@ -24,6 +24,8 @@
tags: kubernetes
- role: kernel_vm
tags: kernel_vm
+ - role: csit_sut_image
+ tags: csit_sut_image
- role: performance_tuning
tags: performance_tuning
- role: cleanup
diff --git a/resources/tools/testbed-setup/ansible/tg.yaml b/resources/tools/testbed-setup/ansible/tg.yaml
index 00ecaefe01..fc18038686 100644
--- a/resources/tools/testbed-setup/ansible/tg.yaml
+++ b/resources/tools/testbed-setup/ansible/tg.yaml
@@ -10,16 +10,18 @@
tags: baremetal
- role: common
tags: common
- - role: tg
- tags: tg
- role: kernel
tags: kernel
- role: mellanox
tags: mellanox
+ - role: tg
+ tags: tg
- role: iperf
tags: iperf
- role: trex
tags: trex
+ - role: ab
+ tags: ab
- role: docker
tags: docker
- role: performance_tuning
@@ -28,5 +30,3 @@
tags: cleanup
- role: calibration
tags: calibration
- - role: ab
- tags: ab
diff --git a/resources/tools/testbed-setup/ansible/tg_aws.yaml b/resources/tools/testbed-setup/ansible/tg_aws.yaml
index 77fde766c9..db0b574d15 100644
--- a/resources/tools/testbed-setup/ansible/tg_aws.yaml
+++ b/resources/tools/testbed-setup/ansible/tg_aws.yaml
@@ -19,6 +19,8 @@
tags: iperf
- role: trex
tags: trex
+ - role: ab
+ tags: ab
- role: docker
tags: docker
- role: cleanup
diff --git a/resources/tools/testbed-setup/ansible/tg_azure.yaml b/resources/tools/testbed-setup/ansible/tg_azure.yaml
index 7ecf6d074c..e6940a7c36 100644
--- a/resources/tools/testbed-setup/ansible/tg_azure.yaml
+++ b/resources/tools/testbed-setup/ansible/tg_azure.yaml
@@ -17,6 +17,8 @@
tags: iperf
- role: trex
tags: trex
+ - role: ab
+ tags: ab
- role: docker
tags: docker
- role: cleanup
diff --git a/resources/tools/testbed-setup/ansible/vault.yml b/resources/tools/testbed-setup/ansible/vault.yml
index 0d583e42d7..2c10624d07 100644
--- a/resources/tools/testbed-setup/ansible/vault.yml
+++ b/resources/tools/testbed-setup/ansible/vault.yml
@@ -1,585 +1,706 @@
$ANSIBLE_VAULT;1.1;AES256
-35366235646131333339643161653631353030396430376631623938643038656362323461393163
-3739343632323734376236396538616434653436303165390a626664636637373439333238373964
-65383037626638343730646337643336636266306538323830363730623438336463353536636132
-6330396333616237330a653461353862323863646266643063646663316661303265383131383630
-39633133346639376331363332623037303131383634343635393463303839313638393566623763
-61376463333837313230633333363066326232326436653038616238653365356133363162623530
-38396463663265376564343935393163366136373665303862316165373532303534303563646333
-63623066386436386364636661393532313061303066643866313761636561303837623065623534
-63636639373764363937653161326662646633643532646536336532376666383934666666396261
-65656233326264653137353661656261353236386531643939633030356236336330343262303565
-61636462393830623730656263636661623936363232616135323534613836303336663336663964
-64323139633266616333346335643334653333626538623030626433333132326532373736366361
-32343266373530666234343361613632656530323364383066653562313363376132326632343031
-66613561333433663062343165343764633939343635343638343834346131313062396665626337
-34623966663832393964396335363137353639613262356663323430616464323435373936396339
-38616233303432643131363466373231363036626432303136613032303962663465656638396335
-61336630346232313733323539643038316161333030626236386230643032646565613030323832
-61393463363739646637623365343063303366373630623133386239636337663537353938666363
-63643765633739393530396266333533306637393265393339336137363035363331663930636532
-37313932343034346539313931633231633861343235656366613566373539363436323335633562
-30366536323838623130306434643439333731663331366137323330366435656533386633633234
-61646331373562366538653863316363633966373832366162633262636130666234386630376538
-35616662323862613938383566373536616134653664653763366161363563396262386264326639
-36303264386239333030616531323965636664336265646432653934643661663663303735326566
-64653638646133666662306234643336643038393766346261653035633630396135373438343265
-39643266373338326564326137376232633063316131383839666662666165303634333262336137
-36363561666230323931343236656261383930326433376562633233626363313662633733626261
-33333038356331386462343164303037346233323065313861623865613030613963663962303064
-62646438346566656334663537663933306238623839353665633835626466396661643338333461
-37356530636463636139663436643961353964313731333334323730663361373530633464323335
-37323465336430393337633532663632353365613264396636623233303935386535643361313162
-61336333626538636466373032636331326435613135373438343838343734663863373766366533
-31663434353764333636363161613732663761373235393334306331333361313763313730306564
-31303135613234373366396466626137396533666365393330636136303361633066333137623336
-38353939643763643163313732613730656635306435633664396536636665316635666166643065
-64626366663539616131303461373139653531666462393862383636656631626666356661396163
-63366232376363326639643936656432313464626539646330383433396161616231316430656365
-30343830333038356134353730383963313934343333316261336263333730656461613763653366
-39363137663264363534336365323666336663323334643163616362303038663637396636373263
-39383165323330323436393439316138393064353931366232643963356134643365346264313831
-66383831653032346538313961353532303435663966646665336232633064353762333133616234
-37393031656462336337353630333135306639393361333566393832303864646664313733353339
-30643966633363653333346465316665663233373165346534623763333931623630613533366238
-64396363613538313362393837316334363731623333313736653465333366623362343838396439
-37333663656563333562613337653363653439376666353338656638613463333336323936393830
-65626237306537666639636533326631633732616164383533383139373534333363623933386366
-64663464643663636433356237656266323534643536613332653834333738373335343431646162
-35616365323366653935666165373565643462326363343931663963363938653063373030306565
-66303665343964393365373361356466326333653534383062613135643632303763326633613763
-64336433356635333133653031316332383830376437376232623762343230356461623566656366
-35616366303036353735663439306461376537653734626130373537616435383132366135396430
-36663234613830633830343762333062666466373564386435613565333630653639343262656534
-36613464353331323731656361373963663832653739343635333637646633313434306130353537
-63333634323039663161373134336165393162633465333137316132646134383439623639323963
-34663033353134313966663265346462366538333966383864663934383565636136363861303235
-31336634646461363939653337616662356437373131333461613730386662393138653239633461
-38333763653065633965313839343662613836393830323538326439393061653534316361636134
-39613735653437613537306364313165636633663963323331383463616263303739336330613265
-39313538386231663731356263343335653461643766663764623036626266383164646165333237
-34303162393639666365326362393532313036636235366165616538623362373638623131393066
-62633931623865343362383464346637323735393363373530323131333730313965363236326364
-63656433663234663066646664363761313734343635613264316266653939303930646135356137
-63626538613239393237643366623732646638643535643161353861653432346535383134633764
-32636562623737313937633338343065333566656638623062636635383966386431353062623632
-36623634643362356435623030373632333736303232626166653833323131383732636631626338
-36373434326433303735316530656166303365343031303563373465623637353165323461646332
-31663832326332313734373333336634323237336437363330356533343361356536343365633762
-66396165343430613765323864663235343437383536613131313664386266613035366337616465
-64666463666564363035613737663933303263373365323464383661616264633662323465613166
-39636132626463303861343764656133353665396534303437613737306665616663323138613037
-38376166623130306632343633363032346364633061363233643863663736343336343539363730
-61646363663839393435383765373632303937396337313637643964663235393165623139623833
-65333165373736323361353339396433656262316137656264366365633762323533313466623866
-36316339333239633566386466636361376533303130663064386166306332333363376531376462
-32656334666432343433653936343466366161653839653962376637396532656331376164613362
-37653361396630653566336231373031336661386364626239376465326461306137656465373666
-39616365386533363464613936613263656431336131626662333563316533633538373339333561
-32346163386665633766656161616634373934333063656163336533386465363937636431653564
-62303064383161313037386130346630666134393834353763306432333934356430613232373835
-38396138626336666438396461356161333132363332343234333036323636373764366238643264
-39343964323736303038613164336564343431663339336533646337373662316264343337363536
-61623365396637623866623465373339316664643263393038333437313862656631653432393462
-37383234363837343931306464326634666433376434323532333136666534333836643338656437
-36383130363033363837366437323565376238626632643038366237656364636431376331623462
-61633039353761346638666466393966643031623061373839373538613832326561303835386239
-65626461343031633237336439623963623034353264633539633231363230636564333634643137
-32373537643035313664333464323039346163376134376433616262643965613537373637323935
-66353031343662626438623930373262356465316630383461656339646638656664383030643532
-66303263356234316334623635383338353031326164633035303162636131336235333831663630
-35613933643538363330633563663338316434326261363734333633303963386564643265343066
-61386266643338303065383130633065303037376362363030376337326238303339653861656233
-33346430353164626463653230613033373631666365396137623065323937616437383235373333
-66653037616134303765653139373465363465346130366536613831613431306131353938306263
-34316661663263353566663861383239396538616439633434323139323136623837663065383834
-61636137393662613035656264386466303331343833353332346430623361366163393636613163
-32366139646263323063323134303365333234363833326339343030656431616462336466313634
-35633264363939353133636164626634366430626131643035303761613630653132323930393139
-33333164333166353736373439626633363361623439323438653936313934663839386639303630
-66653431393331306361373033643535353137626235633861376232316332316430386365346163
-32303830353433323834333037616530343832643136646239373738376235643762366266626362
-30303035643237316430373261313832366366353536363032646330613965363736386130613162
-64386666356339386536313562333762616163653534373431396636373732663331613463306631
-66346439646630333637623531633062626531346533393065636638343337313838313836376131
-37653230313934393236393736653837393465666132633330646432393163353733353536383065
-36396331353933613835316132303032656632633737636464386233376139373263643664613636
-63303433346433333238306333333839306361306236333565393630373866373963326139393762
-63343933383835616333376337366331353534613361306230633564343538333131303366323662
-66313866653463376434623339346466643435313666616666373236633336396434316438613135
-36306335383739663431653235333062616633653635383234393363633937346632636162646233
-33653137336662653762303234303137336130336630663762353938303536383566613639366162
-39653232303135376632316139623664383032643133386534343738373365646165666231646563
-34326132386463626536313238623630646637333362326232633163626237326161643730623165
-37313437633932316137376435363064643834363133326436376139353663313562653935333061
-31336461396530316665353662613939313566326661613432383662656130633866393236303431
-30613866303933646236623834623936333466326437333338653837386435393162663764653732
-37653835366137333464383630313039646335643631393332316536656631613762653932646234
-61653832623737663534653164313764306433643063663564636665343266366439613934613037
-34613032356634646233653437646338373965356561343266653562653533633039326561353862
-62383739366335316536663735393430623738366130353135353038323737636432363935353231
-61623563646637616332626638643761646364366361353363666133333466343535666530643235
-31636237316630316634653432363461616661613935613163313331376463653261313535653730
-64336533633065306231613165396332343664626632653636346533366138343832393435333632
-35323962393163333333633734613364656562393039376131346333623731346636373761623134
-35623565353332383237383264396638306434623261313166363131363834623466663062303834
-64663961333338396438333566373562666534616464623630656133373836393433643165363934
-66653966316439646334616665653362633338313632666534643135393331353238316633613630
-39383961356266363230343634366631623032386237363637653030643738393361633839353163
-62366538653031393136313034333466613930363137663732666534353863643034653531343332
-64616661393030356531626137643538353939626461623633626435656331363963356466356631
-30333335643835343130363762626336646630373238303438326531343539643932326665653862
-34326436623732643735666463623561366333646665323666333663396234346136306635643464
-63343239336433626537353633366362646631323864363236336232303331333462303530363839
-30623038653835666131376639366165653965323435343338663662336237343130666136663066
-31363166373834373132386161306161393766663466383064313633383936653164663937643736
-30663233373139396438363336613361623133373830346333326135303635376362656139633464
-32383239353931663132393537663037616338353533663138373036353638333732356431616432
-35626530303361626432663732333539346461633963333730663038616563356266323061613431
-64383330363866326632316339333034626664356239626537373835633830333562636334336461
-37323830346136346633616433663961643137336439623763633936363430323034616538663134
-31623233346664643439356337326333363230326366636538313535666466306338643166353964
-33626336663035386564663965393065643562373664643661366638626265636236363961613965
-32636366333063613064313433333737373564346636333939393635656134643237623038343932
-65353134333234376634333637333438333737383738383461653436613266636161336231333365
-63653538663566383338656632653261653361633233636666643335616462386339383030366165
-36366338646332326439613834376562643966666434376238396663636630303835303031333438
-61623863643439646365303937356133666461356464323236346436353239633866393032626534
-62303561336536643265313636663639383164366233303966613364356262636266376131323662
-34336234666632363338393866326332306164313032623131623834666137663138353235316137
-38363363646136313335353834656430326531363864353430366433656261393936393364363966
-62666166373266633163636636353632663464616333393630626531306663323134646166656430
-31393436306336653237633538363461373139363131363633626263376161643933373439343333
-35343562616364326162623038616339323266313762326331623036383337326164353261383532
-66643166376330313634393065666638623831393161653561633135626462303566653836303434
-66376235313766616465393866653961393430646634613563303362353632373032656532613333
-34616439363237366332386161326331663237393439336433386466376462393139656634323230
-63323366633136633439636363396234393966333731393661323737616466316535316334613964
-33366433313865666335353663373363646232326333643833383664656333396634316630393539
-38623132613338396566656632623934343965323231363732373563643936636239303634306136
-35323230353837633765323532306239346539613833353936626561653261626462653436666533
-31313065613137613437303564643961646630653038303465316233373831623532613236633763
-38623131316431316563366532326532626538343635623762653536663733363462303162636130
-37363331623764656430633237333661663061343663366364373833313065333137393230363134
-65376234313231333964343365626361346561653233313665633062313837356363636235303762
-64636532383834613064663363323561306339353038323839356133613539666235376635393234
-36383436643533383438373762656338613835343864383431326466666536333137623636633938
-33326565356566396463643238626465376339616262346365646533656630306137663362636234
-33333238666131386531393939363662326138306563613139313964343665373636346461336434
-33393535393336626437613836366664356637623937646337363935666632336131336237316631
-62623365343337663336626631656466303762323162653735313965343936373631373963383538
-34623836383731386164386162303635386630623366316238663034643035623234303238353163
-36393664303431303034353065383163396666333036303437373364393432376330616330306538
-33626530373266613862353538653566316464666337323939393463303463663234653466623036
-31313561366633636532356366376639393138383931323439316139313236326630346565613965
-37633134646661626139666566613261346334656563633735366365313939356164333332356164
-61646637653561613630356438613462643762633732313132323331343931346164633430373335
-31616339353739643636613061383630313532306636356534326138383331326233333631663735
-38303636663439626139346532363536376362316363373963383765316663396134373266613664
-66303737323763653765353630616166656130383739383034663438346663373934613331313832
-37373535376665616237313765363866356439383465656537383761663465653266353264316231
-33623564383138356264396134386264366430363539396431666633613733303031336134313734
-63393633326534636631306535383236313135363962303665646536376364316464626139386462
-32643831323238363966646531613636616339316331666434383838396565626136376364363133
-39393661336539656364653361386366326164663330633130303635363664363038643831643339
-63316131373935343530333961363165393936653735346662363531666533343963383839656631
-31313463353731306563313562623364623363346266396234326264663630653361313666303337
-32366463313466646439613562333066383834666336383763396531633139393132616130336631
-61386532653738653631656435346235303962626162393164633935613532333830363866633563
-37396639393535343934663536346266353233316261366633626437636130626234363163383137
-32323832306266376464303931653731653965303962303533303736346263333732316337306333
-32303132353061396333313433656632373239356532396435333338653261653166316266613538
-31626334333138356338623038346333333564333732646664626232623134376132366634363032
-35363737303339303862336536653463633234656138643865663262386462363636363530376532
-38373363363331353437656666396139343732613730626661633736303264376639663964633036
-37366630343266323037363035353763633161376634636333303565636564646163646430633939
-39353563343464613964313630353434616336373531396438333831623432316430346132333139
-35643932343938663464316365616338343933363362393637376263313366303465626338653234
-34336465376338313039333733356264643761653535363165616261333262613132303534353736
-61313130363634356239653162613566366632373931363537376137393834396331383636343061
-62666136326465643330323631343732386434656362386630366462643433393334616636393538
-38363939336336643465323732316365616662336532356230323932663733343937353631633736
-33616534653235333639656264643266303130386330643332623739653531636332383339623065
-33623064643939383632346163323734343366663139326665336462303162653662336535653264
-36613865306635613530333966663462303736366432386634323136643631616132343233633834
-32656436376165356665386663333161303232326239643666313637373531626163636631386134
-61313134643735613336343736396532663561383561613566346432323332316232393139623434
-64393730616466323336303637353236393363326530623230663764653364373564323338303766
-30376130613766643530633266316238306433366239306164323266363430303834666564323463
-34626364633938396534633737396530613430366166383138303237616531666361363835313230
-33306138323534346265626665313962343766333138366338376637313034363061643133623431
-35626166363439363735653038616362393464656563343034333266363030643432386337633136
-62393934383835643534343932333962323062376561376630343762616461363134386365623331
-30393462313636653161656261303638373163373761636534323536346534383863383063383963
-61633333323565313366623832343764613930346134323263326163363531373631316136633838
-39373633333039313265653065343733383938663262363735333730623531633838643937363135
-62626234373066383831396637326134396562343933353666663531623762653333336231303265
-36643165343839623339643663366666613866346162363835336334386139383632396134366366
-64663566336532653438316133356466343061633239656666306366313232313936306433623461
-65623131376164353635353738623536656335393531326161333937613362353232373135306430
-31623435343330396639393834643535616632353634653236313030653539333035313266303466
-65303761376534343165313137396264326662313433396436633035366564373632373866653263
-66386134316336396135373030343031343135346133313735613939653865366533663666633531
-61623763396530386662393636376462366164666637303334653738383463646563623937633463
-30663363316563623434656665656334663832316238326233633461333161323630346138313065
-35376439383939326365363434373438353136303131323364356162393236653164613661663536
-61326164633661383762323962393164396331356634396639393736393166373432363336626630
-31346433353862313265643135373437636537643337383435343231373532363465373964333331
-33393135646465323763346130623737616631313131643666636465636430393664373363636162
-37653965313839303063656661666532326630393132356635626666376638376331326161393835
-33383731656537336438643463313337316334663834393266643065633335613565346239626337
-31663635666438656431613565363063353964376565623336316162653131633631653739343836
-39336531626434613130353564643061343333333861346131316463333531373234303736326532
-62353735393631393434343763373062343536636665663133333336326131373531306237616466
-63393361643865383965353663623863306131393464636533396263316135323433373362356532
-61333365313538313333343862336236313035306133313565663434326662666163386461656636
-63623936626464646135393430373236313865313761346539393931663262386433633431336334
-38623961613764633134323930303639626237323962376331303662613832333738303831643163
-61333534323663363032373738333135643338303761313966616333353232656535636138396665
-30323335333565303561373939306238306439373538303463343534616164353566393336623935
-32666463653739313165353439613930313566376532323563313835626237316332393134656638
-37623864326638306334386534623035633937356439306634653237393839333065623866653365
-35653964623636626665376237323338353961363535373363323239356237393835656538363436
-62366438653536633562353863613434363830636339323630333938353234613461396638306231
-31326133373235353563353863396266623432353536313831633261333265373935303531653632
-35316432666237656563626138376365383036633736336339356665653864636133336432343737
-37666130396439643834653838353264616162383837363039633433353732393534333163336562
-38353062346430633632356330633035613038313262353761613562623963303236663365363164
-64623637343838643565383938653536656235666162613439663061323134353539383337643239
-66396131343530366131373432656138396132336133666438343633373939343563356136633636
-64306266363531373535313962316635653261366634383735343438353337653232666466633237
-31643935646434356335303833343835646161373138316133633938643564616634396332363535
-30326231316264666264333436623366643337653833393735303166643730663833343366653634
-36343430313239353738316330303065626135356437643463663736363732663634383235623265
-33633865346561623738303066363438343934333337343538326162303264646238626331386165
-38366330393466646632326262343137383662623936653365636334363634323330643536353930
-38646363633666376566623562356161376236396336346566303463643965323935623363383034
-38323335343737303637303233633431613764363538666665313933623231383463636136356439
-63643361366536323637316461383365376232323634326135353936373962353732656334626163
-64346361666666336436636263336133313266353466346535306234353261633332353731646337
-37623063666339383662613663396630643330393234336664306330363033346363303230633635
-38643862616135623165616530313539373131616230626661306139356134303731653934313166
-32326366393066613062316663666537326238626139376166616363616236613564626534393633
-63303264326331393637323936623734353064393437353130626531356464363262666663623138
-66363736646364343938343666303338653930376266333832396438383236313130613765636530
-34663234303339386532633562623838393635373965366263653464353835313436666638323439
-63363630366661303163393830663134643563346633396266653239623337353836336436323462
-30363130386435323264666335313937653230643336613665623963646236356130613539373738
-30336234356564383662326636333034326334393061346133656161383364336365643262663565
-32333561323135663364643836646135356637333639376463336232643936396330383764326535
-39646233643832343561383339306437336566613838333235643935323635383865646236393962
-38616633376263303534363838663435346131306635363962633539313334333561333765613035
-33373536393533666237333237303636643261313762343031646465653361636461623030653034
-35346662343366353664393437393536323263386534323562323361373037653063386661643137
-37376335373730356131663263653265376262373233363635326636653931333332643761356363
-38393731663338396435626137323031316335326332663265653566636664333933656134663836
-31623661616331613135653932646666306165653061643061363237613263323232393837326334
-38646338616166326435323631323733343861373533656635666535666635343137316238303334
-33373439653231666562343135623862393066316331616563643566663061313162323364613562
-33393337653637306264343833653462356237623137303034303438613265313139663433303837
-34666261616532393430623261316537393633623430626130363938376561373933653333373461
-34656138353231396261346234323834323833323866376138396131636532616534623161336362
-30363866396465646266666366333866613431346335663333393434363662643662383566363239
-61313738393539366630666265626531393537383032663339353266303632656438383565656336
-64616366636537326461393632623562653430353362626466376233343263616333306531666163
-37343134336633393638653465613130326431643563313538666131346265313035313036343031
-65666634356363636566613265316164623862303038373536646136643065643432366665626438
-66373434316165636362306261313430376635363134373430333665386635383439363763383762
-34663261323761666637373665306337323639386634393439386131313565326535393234373339
-65636633663362353436306234303938633131373633343264323338626362663331633935643061
-39653661306465346661313164353335326336306534383631343761376438306332613065313538
-36343934353230313564613938383731663261623661643764636231316339373330633533323166
-38646262363863306566323162306536633362313131356132636639303032343464313764343335
-64323363336638383630613331393365353766616630303163636531623639663331393034373664
-39303336333031643332363430383937363432306561396661306232373262343533666435646264
-63613561346465346266356462396565626666353436346363643266656166313862393766373538
-33303964623130666638373937386238396235303332616266336163623538666438313638363136
-31396436636233663961363935313063613463363564323833303235363436323236396561316266
-37646563336464356231633633623564643339613135616561376665393865316664323636633633
-38306434393162616363656337363533373961626231323564366264383138613965383936616665
-31303939333166393331663362356631646234643732383633643061613161383830666432646337
-31363862396465333363663238383165643431356362396561303832376132343838656436663364
-37393731373732616431363839656361623037326436643539306136646261636435363433326538
-33376161306135353032623865383965666535653832373065643638633338393130353361333635
-65323730353962326161353864383763316466666332613736363935633239393164646432643763
-61653134356236363532383061323134643730333263316430613530616433336138353334303336
-30376233313832666461336439643538303132623337636437653036613763323533616230356631
-33313862363630353939303638646431656639393134656464666439323632323937326165366435
-39346561656335353534306434633639366336356635373830316266306164663235383164313835
-66343831303932353962396364616462353030303536396538396639393931363030363065636531
-61306533396264313338303439356164386638653836646633373939653734626266303838326239
-63346539643832373663643464313064623938326132633464623363653138636361653831326339
-39656234303433393939313831663832653564633564633332393265653561383936386133323461
-63363235653835316537396135666136633132373838636438313062353030613164636466363734
-64663530616634633938346534306435663931333061313831313565653137623830663435366532
-31303361626362646431636633313733363661623135306331313138323939636138613733323039
-66613938303963393666323164313632396635643364363639623339353233373536326431303931
-34333035333838336564373833636238623633316631306466366666643265643364626363333662
-31666463633134373534613961656565646465323164343330323438343936636463323561646435
-36316364363662393864373334383039643762366133363562323534643733333263333232393431
-33663732363539313235303364323936663733316234613334363263363434333135623862333737
-33383065343533383335303063303966326431333464303837363464323532623331316339393734
-32656536373332636534636235623039373162613131303333663164373366373735646531393434
-34623765376639343336653530356134633463313535303232653130326631376430323932636266
-66373635353062333736316561613762386138643364363465323130333266316562323732363330
-39356136613937333938656565613765303430613039313835623130333232366465323261626132
-61333138366630623262326337373666326664356535333133373931613730366665396235346538
-30313564376132653339373663333533373838633835666330353335643636316634653438393663
-64653864333938313237646465636233373266316563393861633036646562303030326139613731
-64366439343633333364343362343932343039626563326633303630316633383164623634333338
-36313637393430363937656536663562343562336231636366663135626261306236363834626162
-33356432366365613161636364383237363338393637646430373662356436363739356666343236
-39346235636538353536333364343930616637386231373762353661363830316239623833663734
-36613666393837663033646432363632356534383435333665643666626334346334306236373061
-32396630343933303361623530353361346538346639306465616533623039363634396161376430
-33616633613437353763343433633366633331343839333433666532646630383564613861363435
-62393738393532666633333565353834616463313632343161393239633631636264376334353239
-62366639313132636265613434633339653537343635623037383034393037363931326139376263
-30346665323335613363346262633833393265396462326439356631323936303339633664363564
-38393530386530666630663238366437333463623062336162313833616438383831353366353534
-35393364616438643566393731646261383335636436346438633630306266646464313464393138
-32613137653139376139323263396336353261663636363235353762333536343436306133373864
-66346231636537313763303435343032306535616139356362333536636339303965363663373137
-38303832643264336536396232336562366261643864643462343662336164336439623431313763
-62663039643636366361656239306563306562386637623666373838363365653137323965616434
-33363934333161313036396132386130663866316635623931393366653834613535373835636330
-62636464666561373337316536653539306564363435323038366135626231623634353133663663
-66373562386265306166663539323962393231393830663234663634656635316135396134623461
-33616136353666393938633363313562306261366465626666643936666331393161633631313964
-38363165363465356634303630373435626364306361653638643038363066663935363365326662
-64633661376338306463626130663165636463393035663362636531316665646234653430386435
-35353535343136376635353465363665666363353361333032663462316133633262633264613666
-36323231613532613864626237363033623862326163646462383666386230386464313737636331
-32386564393636613639663165663261323261376364363230323934373463336133376431393039
-31383532616531383637306433303131363431626566343066386538643339313030653839383532
-62643163626637623839373134373566666135633361663932643536663130623363623737303137
-33623532313430663634386264343336363534616536613832313263663037626132343530653732
-66623132636437303266313539653238346238633834363232323937623538653934373830663564
-35323732353734656433353433663164343662623936616637363262653431383938666639636433
-38626366643131393164346261666166643563383839653465396161656333353032353634633963
-30636434386661333639316131643861656264356663353063623163643462373630343535373535
-65623238633863373136386131663861316663376665653466626434636466303930666438383232
-38303234346331363163383637393763643534623932373931326632663661376333636365663662
-34663030623362383163613839343634663762313466383533306239336464626563353731353234
-31633934636335303962343461633565326139613139346463643865613766616435313866323335
-37613530306332633661623231666437383433366333336165633633326165393463313764356365
-61343137326562333039316338353033336331663636366339366236356434393865353838323934
-31666562373238666635656632383738386164393661383133636331333130623734326132626236
-35613731643466366464316531346663323662643961316438666563393036666332366230353466
-32643739643136313139383662353066326335613930386632306337353534613564613836343061
-35613862313730333637386262623530383465323138363032626639666639623932643934363532
-32356661656634316534383863313739613862363737356333386265653730346631313538356461
-66343337313736383733383964393066666539383031353531336234653131613763666138633961
-33383139646639373836336137626662346336383536396237393366303630626337323965373039
-35343466373931626330303031623333316462396534383364663461653136383162346366626265
-31653432393063383734393835643335393263393234393462623561663461363732626331633463
-38303536313738393430633839373765376261643266633865336662303339396163636532636137
-35376236396361376262303834326331336439353865323834366166616334663266306635376563
-37323236643732333434613436656633666462333631616330356234653236383362636461373437
-33393963656433316161333939663933636231353138663464306463323135333834326534393839
-38633332386237373765616534633239303461633833666464623465363835343130343164633938
-61343263333033633166343764316132303834333064373437313762306263363438323061613738
-31646463306136396436306238393831396362396131353264366162326432313633306362373164
-38306464663066386539316436666564356562363238616332306562323965366364633834316333
-65303264643937643432303638313931623631396536663161313332656563653465306365623731
-39306263333265633639343931366231306565316135363162323464336532653631363739663664
-39373261383337613631353436373838396637663635336661306630633530363337336336623037
-30323664303430313832336261396639323866303539616539336530663732333864656235626133
-64636261373036626664306365373663323134343665306233303835313766326366363631316535
-35616235353663646364613165356534396535333063396537643338333063623834623663626639
-38366633396531323931623366666463633531306435396233613033323065613235316235646166
-31366638623039366466363863386665613061663533613138373364363931663764653561363833
-30656234653633663835646136333733333562643263386563663634663862313939383139356163
-36646165393931336230393566656237303363353566356137373436313336316532656332656364
-30386339363066386564343737373834316235313961343962353634393766633031636264363732
-65623833363465636466313564373164353231306139663262326331663030373735643130333235
-65333337653233326166353863346236633062636134303562393939623462316631623536646436
-61373862336334373239616631656434643737346561353463376335663232326134303066656364
-61353666333164613466366466393966323666386234373430363266623134333034353933313633
-63313866393633336661303334653237396632343836623538306665636235316565363739396138
-63653265353765626563306266656263336432383465383232343039303234623331623962356463
-65623336333831323936333262623938636562616634373738373837306264323362396564376333
-32353535396266373939343863636131633134326135333132323066383965313134663031326638
-36356135663363333932376330363465323134636532373061346536353335313662336231633235
-30346261633132343733363631633065333839316238386539356565376335343531623033303961
-32333665633465373637393436666331353166666438366262623339663139333064343233353964
-61313433323532666537333237306237383539316631326364333635663033313061323561343362
-31383436366165613266376335313364373538613631306335646637393030366239623938316164
-61633938653837383837376634633532323130653963633366363035343532356537323230393331
-37396232396363626639353735643735346230633733633162333164663634613665303938383237
-62623432306237343833316636353137646236333131306563653639353633353830663434313035
-63646131363334643461373565333837346533643665626264373935633830663034333061383835
-31383736393234383534326237373538333738623265386333623936343034616139306534303531
-35346135373863653064343331613966333732366361643030636231306462633764333330623135
-37636634356337303463313062393061363836306638663063643465376262393930663034343339
-63383239616537323938386636663536653038323662313831626132343436313331653032613734
-62643364393366356137636261366238343566613139343639393038306530346133386266313833
-61353137636538663939663666666437336437333466663333653633626463666632356361313861
-32306439633934386331666139663062396531316530323332656663383434643131626138346662
-65303133323733653264623838636231633666633236646333303437613361373136613435643930
-32626135386466316537666536303234613364393965383539653561356335653462633162326134
-63613064363834373162346135613464356538613634323937383236336365363165336466393362
-33636466336464623262376166626438353361656465333335306264623961313231613562356264
-30356536306365373061306265653364323934656662313563333035663865376334313333653238
-65353634343565336535663332333632663036353633613331366337333665333434656235653261
-30396330356466386334343931363763313364646135306162633131333230313238646264613865
-65386666333035343336653461376335333033383935633037663462363837323964626361623031
-32326564643533303330336338316235363964316237313631393736333539376635386533333266
-39316637663536333162303332346438643864303232306132643234633931376336353937353032
-31323064383761643561343637646137346561623831383733626232303262383931323137303364
-34656462393337376438326666303837376330373065653261383433393464383030333537313136
-65323765346238363863623239396163656564653062333861633836656363306263303763663938
-36396661643239613834363233323530646338656136306461316633373164646261623332343437
-38663632323234393237306363393131303833663935376334336435633538376461386233353362
-37633536366161306130623863626465316530663964323734323464626335303331633937313537
-39343463636135666563353463323038383762333636376339363537353636316136373138633961
-61336666653964323033643239363761346530356461646263333739323831323364373835376230
-66336561643834313334633761613138376335373236626435366266373363353030663863616333
-61366132336637646161366438313764356131333733363031653238313666663431376437653333
-63333635363534376433356166306232323261316133633861336631643566303465346366393062
-66633734656261356363613238633134623163643864623633663230376336346262663961383931
-37666230306263393439623133656339633532633763363131626361626166653930306235336334
-31333135326631373462343032393765363336303035663638396132613732363934303731313731
-65346136633439656236616463633930633931373064623836353861336330393737333465393033
-62313437616564343365303134346466663032316635646433366435316264613632343765663234
-66613064613131393861373632353235613364306632373838643234313961633664383232613931
-37653561313465346335663362393634613531353933613365666166646236353462373062356263
-35306338363962303764303834656631613363653564613037626262666165636661376539386134
-30366433663761396562383931623839316461386466333139633031343765316539353138323865
-32356662323136656362323231643632333336346339393137316236623235363737333435326664
-33626466346230353261653937373663393135666638346264646334356366656164313763383532
-34363139306165316632613861363962613135666264363138303336326135393561316165323338
-36393766643161303730333431643466663330636661633237306662643534656338653465346664
-36333632633936366532363264343330373964326231313131376462623961393837346432623034
-36353863623534666661363964343761396231613161353633646431653530353832663334316566
-62303639393166663833653465613566623263633562656330613838376436376632373339386461
-37303639646661616534386537666330346661346461373631336335333664383965643762366338
-38636139373939663738643336353866633433323031306139376635373238303232343362386438
-66663136383161346635626261333862333637373763386462336131306165303766316438316532
-36643363373866313237376631386561633436366332313162306338366430643839666636663265
-64393262643530336230353836346131633239366236623666343162383731616663633237306336
-34343430623931393535333939653765656266323464323266646361633036656633343638623530
-61616136656162616265613331393830336638316237316264383034363462666161373465396565
-33353363626232643264643333316135386234303536386530336235393462363564633062656632
-62663166383931366531333934613964353430316232613966316134333263636333656364363062
-36633030383836663133386630306337313236303033373366633432373739643635633538646265
-61633761353064626637323662326162663662333936323330666536333936613631666562363935
-34666330313630396632666539613938373361376634313533396439396132363036656564316361
-63633863656232393730613162376237363435343837386336313462643934633833653137323461
-63346431313134623061323661373931386335393764383866383531303934633234363961633261
-65656535623935633466376335363966643830343365346632353538333837333030313338653464
-33663439666165366366643236323766356365336534336563376462663930646530623238323336
-31613934626334333266663965336164333035326639346136386538303631646230623862303466
-30633933653937326566653533366334613162653234653862643038326237306564366339376636
-31393634383230333938376662373630656330326332333838333062343330303135363734663338
-63363933323039333538623666383236386634643930646331626631393038613333616535303462
-61303236626531393764333734363038393332386532393033656161636563393039323163373737
-32313261663130373866633733313034373963313831353766343834383563303238336565303037
-33626134326330373063646334346537383430393135323466376164363737306161373331616336
-62646566626630623339333762613435626435643338626239303337336234333632623639313330
-32333135626464666133383733393336613066383235303337346431343462393230623062313132
-36653937373135643036653335303965323930316636373632623737363161643533373837623535
-37653931333238636236663935643938373032656264323136656263303364356537636135303466
-38333330366261663038346366366665383961666164363435643632663434313838626634646239
-33363965386565653266383939353330383438616562643331626334353530616231323566663139
-66323665386232323063306666303737646461383736396162363230636434346361383564363435
-39333538343736343262336238333435663665626235663664616438393139353463393632616362
-30373465316464643131316330623465666334383130386462633537663330626163353065396464
-39376265376634376263313462333266643961643761373565663337363732343832633234613833
-61636162643938333539306439613361376535616636643764653533393635366561646238326539
-63333564646461653534393465313135396239343861356435396436373032353036326461666134
-31646638643937633864346361313837323034343163373765336132663162323537303732323838
-31633630616437343237393031346665386561353834373566343164663930666364666339636233
-65313062353162383165343261346231386233633261323535633163333836353665316230323965
-63366361356462376166373236303635663765393664643030626464353834633536613735366463
-64653738613563393562636663396637396666343764613765366436316630303932663132636634
-32623566393361336431353233643563383564316433353432313633336562393635373530366462
-38623534386238386534343336363966363436343234326463656466386230643761633538316538
-66666237663763613933333563653563386237656335393232376235613139396366616237376332
-35383734363063376632636465386366343530646161663362356331373439366134633839323130
-37333261323136666632636537366634346561666437356563383834623064356531636665373764
-36633637393434346136336434356265613434656230616437306361303032633932383266653237
-61393239376666653939303638643136396536393332653839386231373636356561643536643234
-63393839373334303536383161303662343866326439633032333634353331633466653831396561
-65306366653164313333623433366236653437613334306364633139326362336461343037343366
-33346561656132396366363836633934666661343435643561306235366661356638643133643631
-65666462396532373165663434623939306136643938633834373133396630353933396365326637
-65613562643233353434653964616262383561613964626433393863386663623838646632656166
-34653038313261366236326137396537313534663738333966613737346466666231323737396164
-34316664613238386665386538353761653862613739626237643337323333303838363236613532
-35343238393731393538316635613130633839623863663237633064333530656361626465366233
-63326365663638633436613264643330613566646139353965623638373563656466346632333464
-61643862663030613463343431333234363164353030303233336263643139323937373832353539
-66393232386437633837376137323433333836323833636462376536306536343730366661633836
-36366531346235366636346436643061313263643833383765306633396564656334363835613062
-35623034333665313537373833646232616636613239653136366232313036323634383961306235
-36323736663434366462353034633964396261653130303861633362353865663731313430313330
-30343834633363383932343466343838623837613136396366613938653263373331653530336162
-30326234343937373464653039303536313363633434303639373763663337643935646162393066
-61626433303564646136343864356263616563323730366361383136646636663339366436343461
-63623336616136643433353964313735323131656535353236613165356166646231623135323530
-39636539346566396262376637303263373737646266666132363632616563393137383137326536
-33646264663633393665333838646634303630313466633231363831366362356534626634633162
-32323930343333373038643336336563626333386635636664306438643034303361323265613330
-38643632383433383635333264656661353461363230373238313164613735333962326638313334
-63313432656531653366373534616261366366316535636437343537343764393236393439333434
-38633637316364616664336463393231636134653634396361326464643438373539323538353661
-32656331346138356537313237303064383537656464336536343831306165353634323962653563
-65643736323531373436626638313938393934366633333062626439303437383364323166366136
-31313365653039386563656439306133313330313736663836666131653731326638616232613237
-63396166363434343565386366623733353031376461343263663666636632616437316362303235
-66333037663538393139393161306565633266616532643538633838616334333365343437643465
-33363434316632356631353265363236396234383366383636393661343864356166363636303965
-61306135653564323465363863666161313638633530396339653362346634666630326239373433
-38363137313465306162326330333336366562663730623163656338333538333439613136623232
-61373165373565653637356562336535663932356537616166633062336663373063613037626630
-31623638313661383362323233383364346236623230343261336132656639386337663739623736
-39313665636365343934323538663064626266356631376239613234633732396132376233376338
-62646563633363363165353937316632353038623030313737616130326137633538366633626530
-38313139616132306263313761343334376134333036353235323930353937643865636136346438
-39393836396637653934626362616566316231623537303431303364323034353436333834613666
-37613137623630663261313762643431386538373233643961326663666437636336326566306137
-65376131386436313565343439646234666665336166393963356166306638373631366466666166
-39323333326139383533626231633038323235636364376661336533623537366537333336376266
-65376634393137343037323533653866636235303837653635306430393338626631353665366633
-30343762313439386666656338386233376235333837376562363063366533633735326163323732
-32313331383963323363333362326235623839333263626462313731666134316534323665313034
-33383664373963353661656361366465336530303762646331656266663961366338396361626533
-32383265316137353237306433323631396437616634613331646265633236373261663038626338
-36336362663961353665363462653534383136353232643632656437323065663238383338363766
-32633331626337366566633534356366373638666563323864636164353061333538613963376234
-31653931353663363066333364306366326662303538626231336161393537326133353963393132
-63333230363238613437386131313636326238383137323034633465376462333364343962633266
-33333965386535313266343964643036623463643161313061353261353366316630323863383130
-30366630326136363536626635353166613034363038323532326263363833333362303831663661
-33356463666236663636313037646333353862343833333436646136363232396634643665366439
-61346639336635623465323361616233616161386664366365633862393264313964653536386631
-37303833313930386464396333386432313964613435333933623832313131633339356561663163
-32316462376430666338333661353935646662663662346362663636653236393161383662656363
-37356236623261346433633734646539336162333263666333626562616637636263646233653339
-32343334343166373130303961306233613932313165383438643634613733316534393966663761
-32336235313731393630366133346464666238323538353265663435356264393231633632636263
-36646563353364303662383866323431633132643934633437383162336539366538636363656165
-62393837633839353939373965353665393765643262306130336665333738393137353338353963
-66363133306136636333353665373439633663333436666431643636643066343035616562643638
-66623735343732626431303835313162653765663836383130353663646533356238353065373861
-64653264666564313263386234306634316339643133303361316165636661633439313731316564
-32613464663735306566383233623061633862323838383561356339653861376232666462356430
-39316464376231623838353066333666393238633135396339653233326132363163383635353536
-35366663623237653666396638656566353136326237646638656661346262623461373466643963
-33363539316337363239343664376233313136616564633731383863326262646264343837363562
-39393463353135366335306536643136363136343365316633646338623761313639623033653038
-65373632633731313539346339663465366531333266633461623235663631643264356265623866
-38666564393635313935636266613333613566393565653939353766363030363131623636316331
-39353162633837636561393530666336383531326538386239393261646261363934366335646335
-36386335623530313363373165356164636430643866313763636262613033623562353231333539
-63323138623432383235393637623633663331633739373633336335303438363537653736646239
-33313531336139666562366635383962373334333939383766363932616261353733616461663239
-66313739373334326337396363363339613536643464663962646637396439663534376436336161
-33626237366661653861643030376665393861643131333165353837396665353766323137373232
-37663363373639656562353761663161626164646366336162353630333134626631356530666465
-39336339663431313562333537323131336566366461333933613165376232386266653939626239
-66363761343864386165346531383162386434366636623363623331633131376339336462633535
-32373362323438633736623066636238343432303733633964353261663265323131636139333662
-61663461386136333734363130373637373636663763346165313137613232336665616633616262
-64376465643163323763
+39626435383866646264643632343836383132616162323536323732396265373539616464373932
+6237636263373339366163363739613139383330626437310a343862363835633663633164393464
+34653061656331363864323363663932306637613937383534343963316364636635313663343664
+3539373536313461350a626264363866306630656464646439303338383535323863393537346262
+61346533323162653766343763363934313937653237663437393133666463363962346331343836
+33393533313737626636356466623566393232303037636266353565653130646434323338376136
+32306537653134633062313732623830393166336135666263343933323138616436313632623533
+38646539623837626132346631393964663062386631313236353563393131376130316666343562
+35346632316461336564393264323632643232663136323334336336626339633365643565306436
+35333365356637316631666661356431396635636431383032643566373666363936363462616337
+62316234363963306338366638663064396365373264326635376134356333626130303834383534
+63356363373035623031666330626463613563313066303365303430643262346561633633666466
+63666661616139366431313832376665383638393835376261326465353938333963333264653236
+35613664656363643438316232306630353361343030353963386666656166373061666236326664
+63383033633733633361383061316232306566353062616163623563663032393734353963303361
+34323330336561323734373430323435393731323931343335613935396330663533323137323234
+39333132326364646336613362363365323331366430396535383138386261356534613832393863
+61363133356435303964353637346436613633366336386465326336313935323538643636313331
+39663832373337643865386164343764613764346331633261653039613136386636366431376565
+36373431303631323730343831363837303665353461303130326430636161623431613730356134
+66396632306139373732636165313834366339366363666566306461366266356338346566316363
+38386564313665306239646436386635396664643333383736396131353535336334383765653961
+31643833663361343036623634326662333935343332333066353732396132373561396631633265
+37643733393433336364353630666136616235656638343032333632373366616634343130313536
+64643834643236363731353664396636613266656263363664376539306539346639313838663738
+36623634396638313861636438306136613433313062306537653738316563613631363566623134
+62323161646464636131326661646535313436396534356335366564373165653662613536663561
+32366666356339326264326539393239666234633663366261623933366636636161343233383932
+34336638363864346436613164613161326363316431303963656233306663376332373731623437
+66353636336462663730316161313236393264633633363965653433306639643938383933373062
+30323331323735613139323963643335373335633265383235343835376363666132643431366665
+32396465313434343534343433633432396131323635356265663939616436343137393561633734
+36383961363964306431343939313837663166376133616365663939633161326338306561356666
+34663938613865383739376534306333653135383431316464613432366566623362393065306635
+64313737363065336234393463316138313864386163633966336662313366396431353632363365
+62313036656434616136626331333139343235333930363166313833306438616364393065333963
+36396137656634393066646330613365316562306164326133663365313938333337386137383864
+61376333346336396537613933323261663536353161643431383636316235393035313861326230
+31623566363138663866326231376561336534366435626134306463323032613630646361343165
+38663662653334316139313866346163623461656335616232353636636431636339313239346661
+33396133306132643732366232353166613263356165663866626465343936326461626336376462
+34376431643730616461376261356633356166313131623837343839323935343531356263336230
+62323236633339303031316165326362306535653064363862663330393034303964353437363565
+61616565656164313664306664663932333261333162383832326666393366353730306531343639
+64323530333466653534306130636161383463376632616232353361656661353831643966633639
+66336631396164663864653933623662343061316539306634393334653630393462376636346165
+33646635646633353263333838343534373838333836656536373639646636303033626537313464
+38323462396231653233333463313263313233353932356633366630623138376432383566363538
+38346336343765353830656139333564633533323538616166333865323439343361386135343130
+63343363303332313834313764356637643230386536613338623937393436613732383833366235
+64343862663234633232656333666438633464663463663737363431626361643532396664326661
+33383261643231313836326162373532626234383362653162656435366535643863316235656536
+62306334316566623732303834313864663636636334663130653230383365623031316164373161
+64326638636339303065386435303332333230666634323163393134613032326335313961306236
+37343666376235653637636136636133373966636136626137356331336234646366316364623134
+37633832386237346266376533663839343938623664653030636265303465643835666234383763
+36373439346566623739343361386562623962633539383134663237656662653939313938663938
+30653438306666613731326462633334313730363763666538666538356638633261353363393930
+37626261316565633162366636343539626238323861656565393162333662353563393139626261
+64663436336233636438326633303164333939633435373765333731666135366637653532396238
+61346538626662626463303965363061646261343232356639336366333065623765646335353638
+66616430343562366262333235323234383334343538633037643661623661306330343839333034
+62626533353238323064633862613736663666303666373262633533643539643962383333346264
+38346134363236633031393138313538666533643561373766613836636461393166306138333231
+63613735313636376538346230303662646633346363353535333232663033373036336564623766
+62316464363930366665663530626564346130316231313033323130323531396366303030616363
+36356431653435346561656132616632373834393833633865323762343037656439373331623664
+39633635306334646334386635356362346431366430326364303931336562333735613033346437
+37613636656261383034663633666138653537326364326430666632323633386636376635343232
+37643965663564376337616432623336326238626530333736313530386537383633653437356436
+66613230366666373734396538363362626531666331656362356364393230343132363033333061
+39396237316432663832343261393366306232363166313034383033313565373265353436666263
+38356564656331393733393333346164313233313937343330363662316431353233633063646438
+63386162363034363039663864636365666638343665386334383436353336313333653166343937
+35626138326333623362623639336461343737633730306630303963613465396464386534663763
+63383733643761613136386430646361363731343433656533653938366138373162313335373038
+63626639643634663962643130343566323730646432366136393335623134336238383761333733
+31633330343962316134333536376464663166316365386265393061316162363161376333393561
+31646361386332613837663634303134626133376630643730636466643961343462366566363737
+65373236323861343238343434316637663333346161633835306663313537383631303136323832
+30353862663462386262663461623432373034333631633133633563636336343831653934303033
+36303162323164663632393937643665643961313464623033383130663565333034636164643136
+62316639333662316133393533623561633435653036376637323739326339346632653837633637
+37663332386663396363653237353031343065366334333836343830363562383733653661323664
+61333633306531323639343931663061383031303937323261616165633163636133323130666133
+31353366386530323465646133343766663966663561616337313330353436303234346136326365
+64343561656532366538336662656261396337623763343966366136646638643739373037336361
+65336538373161396533613262326633343233653036656364636536636338623930316365353365
+61663435663333633435376535353963646566303130616364396539643366306635646538363464
+36623433663437363761313038666665306536353332633361316339666263306665636566393531
+66356565363839666130663866643134343632623837323630376638313131383036376464613331
+65366262663936623238303863303761313466656538343962326662646139363166616230323938
+35303265343132643938616330343833386261666432376666356532363933656461396633343831
+66623735623233363833656137626161643265633335396162626261633334613232363435613266
+39356663333532306662353538396565663666393063313630663133646365626461376363633735
+66343030306232396332313731313531333235636363383130373532633137383536316639626537
+33306330393737343563626234633531643334313363313466326564343530383337316238383362
+31306430313637613639356365343034393766313362613430646566643131646530313861383037
+31353636323963646236343866383166646633613539386333316164316532653036663236663039
+36306364613033616338643366303264343462393532393638316235303565333634396537353334
+36666361646237356430396636663032666264346561316533343438303238313537326263333766
+64313231303563626364663232363462643735346639373463376464383466636638663036353437
+64356338653862393637366233613366393635623637663332613961623733653362353234656130
+39383533626133313066646331343361303261376364356463383261356462333138643636306432
+34326135333137366339366561646337323134633033333365376666313763666630306261666263
+38386530356361633062663964333631393665343539366532316161616331383831396537323539
+66343138373463343434356465316662356233633861396337343762396366663361373161363838
+30363633313634623333383135623738343738396230343839316137633663396635643865373735
+64306238393833353065333731626131666134303264346662363433316161626632626430363861
+36656263313032643132383162386439613763333033396434613631656233653034353263386138
+35396465316664646339333630666432353064646461323463633237616338316362626538323234
+34343531633766396662306234356361646432393663303764323633333831636631323938396261
+65623064303234353861363261346139646633363965316337363962643430633864633061663462
+33393531613032386134303765373132306662633161383133376231636631643464393536636430
+32373238653166313231333733313865663862653537313736353338336634653032326465616565
+35626536386132363139303939623864613463633432643538383036616530323765376435643237
+65656463306533336661326462386636326630346664333838636332376530333432393235666332
+35663836313765363934313236333765386130623064653463323039666536646531646333633334
+32356439303333353536663638333138343965653663623465653938326565353535666662376364
+65613933323566313363366266343630396331366165306164663065343361666366616237316134
+31323236316163663030666265356531363266343337623561616163386336386266626634346436
+30303738626335313935303463363166313438663430363035336466346164373738306565653133
+30313134303563613835633739303137626562646533636263623336396233626266353130633262
+30396637613934616636643333316539653431323563616338343637303139373334386435626333
+37616265663435303130376137346361653463313934323837313331653662623261613962663833
+64386165343661663463643136643736333232346231396666383239313830386132356238343233
+65376535356238653663613336343632646234663633373238316363663162633535623962376135
+63396661373130383331623733343664653434336264343763303266303339626434316331336433
+32313066626262313438373631303337663232636538643863613939353266666463313733653830
+38666334663864373830313762346339653230393036653336663030346631333365613062633361
+36616538636336613930303065663637373433643937356461373030613733333434663736323864
+33376365323235333938353261653766663134313733393666623038646362666239373338336464
+38633433383938623463366335373439336331386336373631353232663662616261383831663339
+33663830653737306364633935393334306466383634326430326361613461316639393136373065
+34663234613434376430613365316438306162396239326531306638303132666266616238336538
+65393965646139383263366263376338396238393730643231616664323432653535613833363465
+38626166356463333938626131343638333635643661343162663931303937653835646364306164
+63663232653234383465353464616364656336653438313664313339313231633739303930316536
+32633037643561626362633231626634306335376333616562663039326466353165313962343434
+62613638313439663032366161666665663562623535643037646331323934616562623432323565
+35383939393134393931383030326237336535333862633637373730336339636239366439643863
+31626364306365303063346265343465623735346639386239616262393931643835393562326535
+62376536393965613035626664613034393533363961353864626666373639386133303634363034
+35323939323465366638386631656561636564303430643533323864333734386531376337353632
+38323161333865333663363239376133323063643931313464653464316161633637353165346233
+65373431663462656365326136346130663830313566313038303265366233626261356535633731
+65353666393935616634366335306363383831663462623034303434646431666138636231373336
+64366137336231376562313762343136646136353233326139346131336238343262623738336231
+35353031666632393237303834633536636161636561643463346339343164623732313537353433
+33343439373736336330383336303038393831386130323438633865623765623734316365313333
+33303265373562663734353938343762633230366564336137303134383661393638626465326561
+32633862393539316633616165666262623563333966353736363536656536343235303366633964
+61623434386335356435386464363035663162333761336361313263373138343965613538376435
+62646266346162363334363963653937353164653563343834346162323166386335383565353434
+30396434343465303538616463663532343938636135313739366632656332333733613737343536
+33323336356533663962386237333566323030306133666334366365373535333265333132353437
+35626435356234613539336232613335653662303365376163626535343163343036663631323031
+62393263396233316332373663613435356465616265363336393732666235373466306632383635
+64613962633435303834343231616264326666316366653433313232323835626238656439306361
+38326435363066366261363931333336613164353166353236373834316437303735623931613536
+31666335303330313664333566363063313337653163396531353137613562643039336338656164
+66663763313432386638323766323032386135643666313765313132393632323035643538313736
+38656439626261663636393034366466363437326561396261303636636265616237633537316139
+34353165303564343039656631313130316535336361393166656439623538313563343033373366
+63643862386464353330643537326331393133323765353436313136313435633261626534303736
+31346435343865396665663333323737333635343335346134343061613033393061343532623131
+66633864333838363937626135336231366434363634376635633566363536353461313866373836
+35356463313437313134323339366531633439353961346164626663613232656635666237363461
+62633832356433313934613763663433396666396435653433303733346639613762303534613939
+38343338663162346637633231626435333963376262353661313436623233616534373333313631
+34336433313964326339633466616533303031343935336266326663343937366331656539623535
+66383261303462346634626261363737386232633231616239633335303238383766643665663639
+35333731666432346665663736313435356231343132376532616439653963393934633037363366
+37363632333362333438646339336462396665373361616536306466306663623733626238646135
+37663863343339376162373065393130616538313939376137386566353361623937666330303538
+64653531653634636133353433353463323738316664666636643933646661353339326238316666
+64316137663236396234396130646533316438366337633437326539363130343765656639363334
+30663362393937393863633262323931336336343362646264656331343733386332356237653134
+62383966636130636231333539336465303838343365383135356464336139656637623233353236
+31643731326430313563613130626431353562383036373461353663363031663232353366393765
+64636261376666346132373161653430633934366165656139323232363463646461346336613964
+66313130636132323931316438613137356162313062343431393035303339306237343461326336
+38313261653231633836623739306438616439613730303332353434313934356431396565316238
+32306132646239336466663232386266656134633563646431613332393062633439646562303665
+65306665373532376362653737343061383036323535333330373831393635333663376237346565
+34646666633864363836626666623838333263633036656337656431616635353662613262336336
+62643965666364633865666432326137653864366435323332623536303465386661363162653064
+65393362336362313438366536613038316461376139376662356437343631636239633066306162
+38373638363233643531366338313434373034656635373731666230623663633430656266343933
+35663030316335646532393766306638346365396533326433646530313630636239356231646337
+62336163633162613862356138613863653432303064356638656135646264306363323664336263
+62323963333432376237626134323062626563623165386335313533356366333437353838363363
+64626230353262313138373535306538313765323435363732396437616134643931323232316463
+63396161653032653837613366346138366166313730656665623563333834653836656162393466
+65666436363465393934383732393963616236616263393366623130646134623730376462346532
+37373662306262366331323539323365356232323739333466383865653461313635356339633338
+61666330666338363533313462613739393863666439623033376336396364666365303432643137
+32663365376231333230663665326536333638303234663365303935626331626665663239323166
+64303966653566616630366432336264333639646236613038383134363336376363353961366435
+34313133346339306133303839313631663831353465376664656138616131653437626337343539
+33623834626263633939366238373232323165653236616361346533316463613063353064383633
+31366534303736316532306563366663363035636462323737633436326138306464313134323066
+33626538616536333338636664666334353832613135333832303862313061343363303362343461
+39316438396564613662356432346363336266356239303632323664393864343233633664636261
+35323831623133363937343639656637663133383637386635383137343165353932333665316434
+34393839633233396237643062623536393231373864396236613162323364663732666265633632
+32666134366137363463656131376630353130363538356334313239323939663263613863333161
+61386434306532313263326334623362623465336461326564313735333732333539653162343165
+34363861643532633137356466336430323961666133613031626631636631373464633832313035
+33343935643531383339326330303538333133666265313230373734303562366336363863353936
+33386566656633626239356334323765323435663233363265666231616363343537363438633766
+33613336366163653134333039333535303962366162613337356166393335366131643163316339
+31383132663331363762633662366462343663393062653866663766623830376135616263393839
+66326638316339633435306438663534356662336232303032376330383065336432623266383739
+64303866393235333561633434313763366333626631346563323662326537653339353834363961
+38393236333462343234663761336562383564613530323762626465643933386239396266313139
+31363138383138383236363464346163633166393232626634376533373862633039373964303331
+34323132636535663732646463656632333039333063356533663263633035666664343165623061
+64653637333637363632366562326431323932303233343433356431396564626632353334656631
+37623866633330313337653466353139393831373531656333313932376232363961663630353265
+31323864653664643030323531393736336165616632343766653032376665666263616438363064
+65646630613136343033343466643765656236393061613238356435383264383866363632333332
+61616437623065636135656330376262376130316336643263373362666336343331303534353965
+61316263633534396435373336363638326536363366383165353565373736353032633632646234
+31623233663333303232643163646630366432303933393131613461306264303932663038343435
+64376533363134343338643364626135386334316337373636653735373330386631336362623030
+32633562376164316637373639333230643065336436363163353263393630623065656263306231
+38366235366335326563323733303539383330383630613937326331303731396361653537373436
+62366333336131626138393839343463626436613664653137393731653332646661333136666232
+39383433643331383736356137663830396265336264316336393731343461356239393534313432
+37303838366264623034373538316234333536646436643661343363393161656633313530373465
+65313361656637623432393233326332373537383632316361333735663935363835646634396431
+36323335356637333530353366363661323762393131623737656238623036353937393730636333
+30613337386564383632333063396430306166396333346533333834343538356130353436323765
+38363664633330323163316233633864363262343732306363656237303534656466323231383130
+34636264343735316362643961386639353733336135613261303736313537333165323739343032
+65353363363161616531633462303539363734646661366464383334613734313137623731323939
+63323065366132623362333335663735306361393630326538613037383632663830356431373261
+33393063626436663933353864346264633535336532643136666363663237353030663761653933
+39623331366663373363356333373263643338653336343463333032646630323132636265333130
+64623765336336613161626336313361643265633735636436363037303432643265316465386335
+63316331363836626433393165356131396461333931646665613363313737613337333638306432
+33623063323065313865323732353362363333333331373766376465613638656465653035326531
+32366333363935666230666334653962623835303435336466663032623531616361643339666130
+31376265656165303864316239356339396665616461626362333862616364633432363135373332
+39313430303363623433623161643432643261613364393630633334303431366235393765653730
+38323639306161633434666161653564393436353031363131626336643664613232313463636431
+35633935393666376462656639363431333031363534383064333934663265396133373433616363
+39366461333034643631356264646362373439386161346337366165633639613939373930353562
+33643634646331376433373530623438373734353661623766623263616232376365656335636534
+35626665393636643830613466393061666338323464333230336666366135633661316537643764
+30653130356232646430653365303966303266336366373132636237623332363133323632646230
+33626361353464306566393438616465326266386262633566646134613166396635343733326635
+37363266386363633030356531643166333530313561303638346436376235623033363834316266
+36323363303636383334653533346335653939386237646436336437313161653932656331343064
+32646161623563303462386433356334306239646332383137613162363237613062323265616230
+38636334333762373138393833323231613062616535356664376239356433313264336163313138
+36353432613033333237353531656162616363353835376138666131306361623365323237353333
+64316364383866356338656237313539303434383064323831333832633063653264666261333032
+31336135613032366666613566303539626163313364303662356165643931353938356663636366
+38303063323337323661333464336339653833316163643235666133336438303930393766623931
+35386331323430333630616131663831653265396165323430333866626263356138323161303763
+37373233386562326462613364633138326535653238353662613864343835313031303362633131
+37373166363261313930316639646663396163646334623931313466663632393835633161393038
+39316363316330393266396564356338353037636632376133373231653864636365373638653438
+35326334386465623536343038336336643162616633343565383334373830656435363138636435
+36303764306235653534353161363162313764336138373332313338396134653134306338343561
+33346339646662636562333834313535316439303265306534353366353662623066363139663933
+39663165313666376362303838343765666162636337326565353761353132613737626539306163
+35383065336430396132663635663631393466663236653564366139663031326136383437383838
+32353239366232396235636132646531663563323661393332336361313738626437626335623463
+38316133646566653830633963613161303637333533363338663130663661656631646263323262
+64623032633866636237623665356436356165366165653666656161393865643931643730613664
+35663832363037653931313635313638343764316635633031616439626230323337303335623234
+32646330326632373738663465666236666565396162613361326464313965393830643237643865
+61653538333330613835623461353366633433336138653535336239343933643563633363656638
+38343966336630643030303665333563353661373064363934633566353363663334653939326263
+66623034633564383833653366323532386664633730376131656366613637363433376131356430
+64376337313930633030343230323662633762363538623331373035373166393432653836663836
+38303834313663383465376432656661343432373139653066323637643061323231383064356131
+32653065646636383534653462353534643931353035346432663266623431363066303064623435
+37613264616430386438616538643035623632336237656535343936376363616431633264303933
+34663465393337376539303431623666626339353237346338376637666331623762373132613866
+39353065653630373635383535316539303530353433376433653932636331623739633862616265
+63636163363765613730343061323930653735336364343239353633383461636133333065616632
+63396562333733306538353533646332353966396330616334636639373163323539353231623766
+35396261393066326232346330616133626634313964626531633234663637376238326666323561
+65383366373963323734366332633865623536623064643239366561623262633162353461326137
+38633862303932316362356366393861303366363335356134363638313533343434306161386261
+34323733666662313962613835613537393432623836633730306535366361336265646534353834
+64346461386630646130616663313035346232383533663863613364653461656564313834303961
+32346337346165313464326332393435356434653138343130363263396238343034646635343937
+30353361316435313634613930316237626162623562653036353966393362666438303637303333
+32383130323630336461323835373863396137343231306536613038393437623937636566376639
+36626634393035356136643831316664306662653061616464633237616566323437376634303634
+32633462383332663635623334353263313464613535323861313863343036653338343033303238
+39356239623163663330663131393334633961313066663266646631333464643366663637383434
+65323264376166666162346336383736666133666163356131326633336464613961653562663462
+63313935366166303061663066396532313830373936663865383132343466353233343165343961
+61343330616666323939643238636462353531343664343938366135323961366661323066663466
+35313635616637646336613830346165646664316464643266393665656465666263306662623062
+34306465636337633733643434373536393335363862316166373062353432626161353830336133
+37663531386463313334366634623533376131316138323337303738643238656661396633323838
+66663633306134353864643163363735303532373866323534333132373438383738366535353136
+66366262626636316435623436356263313037626431626133326339396164656535326563373932
+39373232306661356338333139313335323634636565303631356163383935663432303133346465
+37356234633362376633393265363736333132386432653961653536383136616236333263333263
+33356131396439393164633466303366343563643735343333336165636335616639663862656437
+37396262343131356665376638623236383634366532623064636636376638643133306666623733
+62343936653937663639646661353933306562643530393938313835313563343635333738303461
+38623534616363313862313366623762646531373262326666313736616461616232336537333037
+39643030333737643831333866656435663430313864656261333233336530326363653532376336
+63653532396539643966663230333435353533363239656561336531343231636362376538313037
+36633666316464376139643563313664343738373064393562633262393439393366393564666231
+34323731303839393266303465323766613864396461386465653739366634383461656537653732
+33313136366439623636636438363566333939303263346637353163613834396162303331663561
+35343237613031373065333636366336613732326662303463323461623839353439613132666563
+36646631393632613237663464373835636333366434356265363537653265383163653833663461
+31396665383334343966653166393762323837303735323366393335356230303033666232313361
+64383962636636643630326533393331313064346165313833333937303538343062653266303334
+66303063376265666538633565343166636562653639363533376637666631393764613438363333
+38636537363664643863613333633236663435323537303934613433386437666366333334363964
+34383738323339643836626562666566376336666262623736346535343639323737353163623439
+62633732353236373032646533633665313361653538396232616234623663663365396536633237
+61626366353062313665613836346233346631633131363061656662363864333065363234316230
+30613364343131366532356263313863333130653266623130636235303961353630376663396131
+32613633346434373630653663653536383933356133643666343966383532326236333537336135
+61633636653936303662646362333463653139366138373734356134326534656633316533393535
+66306337323164363334346663626663346535656137353534333731396537393835366261323233
+36633033613938386437386665366462323235656531656461313064333064393264366239346462
+38313737323962363465386435636539656432303162323665346531643139643438363630653538
+35636430336366353263396232316333396434616438613463313634633138616336306633643061
+63386335306261633739303532626261323566653762636262363430386134643735383937313136
+34643938356136623133623665363963623530363535353139653733393232333736383337383662
+35316237343935616538633861646238343438396131623061396232393331333038373432643465
+35643835396235323735636332383261303530653733613935646466626330333731323065303930
+33653061373765363439306464323761303464393136613864616665323837336664383238666634
+30396336303538313232633236326431313065663234323161653062363836323633363735366135
+35643562303534343832373632633962636636653562333666333563626166326435383732306332
+30383362393135646337616131633330393632613237333037353531323830363237643330643161
+66626563636635623464363533346466646133383538313730363538336637626538333830393164
+36343063346433633439313733303865383530336663636663643733396230333837353237313062
+30626330616234303039633736393161303863343234396262623436306136316366306432663930
+61346530633865396365396139613639326530353639333036313437383063633235366537626235
+62616365653761663566616133366536313338376162356662656432643532636633363838633637
+37643364643061656136323436626564363135636534383862613765616335323931643233393863
+61396463316564656136626365313065353038343936366134616136396461616265623331333633
+31613261656639333930653132633933336630663066613331386535373335333339313230616361
+33386535623363646631646262386463343031643138616464633961616137636633356238333864
+66633338343166323034333936396162663366373765353233393762373335656465656261343663
+63346330393161343236376665313639386136353265393431383563646665393462323336646263
+32616234376239386263613034626661383962656637363236323831633531313933386666313435
+39336539656530373137616138303361653331643637393066323665373132326162613461346434
+32616130386131663631396633353135323164333931393939386637356637303763663638376466
+35616230343862323037646139353838623031313361616265396136626561636338383063336238
+30393536373261396233373439633132303238323636396131386137306237643936636330353133
+38626135356238663536353733623337393061333465626531626232376430636231373162333463
+31666163316637303462663262313039663666383431373264323163663134636430663233346664
+36326636633038616531386334613762613736643038626335623835343864356366316266343131
+66383939636332613766363565346336386134306566616365336234383331383466356539306433
+64346138653536316336343931343538353235303565343663383866653139333132363035623465
+62363835303765643132643239376233386330383530373530386461663565613030303665396339
+39656262643563313064633832646565373236353235393032616532353733353630623566336265
+65653664303465393139303232636439663231326430393435336438633931303332633731393639
+30623430656465326136653361613734373835376661313135623032356562363830303139366337
+65636231323866366235313933643733313630376533343438643863386166656239336635393736
+34376232613362323839653139336261623034613334396234623432326563383737393562373939
+31653764393061656535663862333936643264613865366565386166663866666232366538373838
+65376534653866653864623237653337346431373730626335386630616137323164353464613463
+30336532386265376234663562306334313432623539336366653361653565643032643531633939
+30626165666134653264616639373830333130653263313534326337366466333032333939653263
+38636331653937353531646635653937376132313732313836353131343632353034663832383639
+36636338343563366566396166343734396636313866393938373266633832343832396664616266
+64613339616539303333656635636465313964383239376138643834393232323666386563303265
+64386437663539333234353461303763353930643861613461393865386638386633623633623937
+63663734306332313033646536616561316638643765623566616139653031336563383365636138
+65303930343461623535663834323132353533653333366630356431653733636566376336353464
+38376162636565323335343737376633653165396632323235663463323730326162316635346366
+39353736623262666462396338363765306264663232366463353966623239313666613839373530
+66613062633436333734383139323964326663323634373635636365663832303230636366333636
+65323737383633636338363066356135373166363936646262303236356166316533326437393735
+32363639303137623335643632323566373032656233363063313264396436626633313433636133
+35646464373665356136316536356530653966313935333931643639376537373735373331386537
+38646336356631623731653439613164303835643039346430353364653561626337333666616137
+33636434323938316661643939383937396533323661363365643164356538393765396134396433
+33343031633764643239643531373663633734646232656466643362383838393037363636323466
+31613433393132306364326430666639666561616664333035613863393335383034353039343265
+31633730363161646439373637643938356462343639383666636437623639653066323536653463
+39626239363130346539363961326331613764386531386436316564386135626335333439333539
+38353638653531353132323866663665663831353063623764346438323935643431326538336534
+30643934626236663762333062646363316635323735633336386339336366323861323438313137
+30356665663032653261356663373033326634623639396666396664363430303437303163376637
+61363866316434663433316565393363343938363131363635373934623233626463303731633662
+62663437616333363438366239323934656138663362376363353063633461333532356265336663
+66633366316433653038353734373566633330653737366363303164393536353232326465623063
+65333136306264326430393935306431646134383036626466663032643931633862323066363863
+32353231326334633031656562333266363436386535303465343437666431393234623662346137
+32626636656336653738333934383339646335316137326630373062663831636139383232343437
+66356138373465316431643937623432643965616130373239346661396330363433373834303932
+37363932623564303661323234376336323939646361636665386663653761353033666339303439
+66303261376263306566323135643835373365626463376262376666643331626236656139363134
+39373833393930363630663833633832613063333139326564633161346366326239623735376461
+34663063663232313138376336663836333136363639646539623661373635366264653965396431
+30633430333136656139613033353939653433393038323438313363346264333462653464346437
+37666532336136373762306533326633323135376538393932633165653932396334343530653166
+32323337623731366261376534616164613836333237323466323830313830396662633837313533
+32373238626339353031303136306139613639343437336566303936656435636531626464613366
+30636235356363306663366334396631613832613062363134313934646366303766636438653762
+64313931616563313939326365643635643730633562323834326433343238646362333631656630
+61643639316631303861633130326261613061353635333065656363653862366562663830366637
+33613938363538663736663934626464323538623831336664643935633866383562316637323132
+39393934656263633466636565316161376537343962383334323336643730323634326461303666
+33396364666339646135313039393538356436656338366536613934306431306664383532326331
+64623231363366313637613161316234336136613862633466363837653133343339376238393437
+36363638613635663564316138303365373165336239363935313631336533303562363165306366
+30363138666435653364633439303561626637333037663134633837303131376638613437643363
+39666139656636353630373631653631613664313965303335303138316634663139656337343064
+34653061333934326234336132303965303338383566613032396433393838333439656565633130
+63306564623635633835616264316138326630656532373235316538356230663966323730386164
+34623137626665613935646330383530326163316637306334323933643462623133363463626434
+38633730626432323732303361336462383361306433336335396162353838666233393364333932
+36626437613131303136633739386263363331646130346264333838646330326532646437353035
+32376231663466373439653531386230383565626465623938366637393866343566346135383935
+36623431636138383063333265636332633265646463353565636335363830616563356236343030
+64623365396237313138613163336239663765313831383765313538326539646437663732333031
+66343464646538633830326235643837366437313161666635643539393830656139356138343431
+61303734306161333235383532653935653133613333333531353265303136356362373932376135
+61623738336566363761316164353563376431623864623465343065663966616533333130623032
+30613661616232323430646564383466616630356461653866626666303165326364613861336639
+38333865663237343530643432613439626166633232303164663263323961643739363164343932
+39343330336530636364656336333539623732353431616334616333653665336361306431653535
+66393162653865383365313833373462356135343238623661333735393466396563316462306165
+31656136616539373834663430663266313564336639656137636538646538653735633761373534
+39303365303364326461653763333164353563613961396331653032363165316437356566646335
+30313262666230633533383966313437633235383232656133366165373434663264363266373466
+36333766366434343633656361326530383065616531363435313165343037353736653830373235
+36633534663738616436363330393136333066653935346466663234393563656266666362346564
+63396435303332626461643161646632623561313530396634336264633334313133636666323835
+66323634613864646566396562306661303438316135366138386662616361373432316237363166
+33656638316338373064656130613635653865636433383664663431393731376332656330613466
+64663636316166383663313861383136376234373863363135353733663166333638373364613435
+61366438346265643230623663303538623732623761376666383038656533343632303162633433
+37613238346237613666626430623262653764393664313633336536316535383765333562393362
+62326162343161623866386466633933613436383564666664346439333937623036656530666661
+37323331373464626637643065666230653165353735303634643966636630613335376162373231
+32306531333664653230613737363334656261326631633339383662636530316264353139343663
+63623662333336373563656236393034316263323438363361633835396238316362313561623236
+62353533383630333962323966663236316463633461366166333230356664646466363061633263
+61646666643735353230346433633765303931353466633837316161396336363161613664623861
+32663930373664376638386663343466663033626535643661303561353836346136333166613737
+39383164346463656137353237383662646263396366323838326165623037363736366664636462
+35663764333137656139376330353463363965626237366530663263656536336661613062646232
+32396131383436386539663935653061663263363161303765663966383035366137653265363463
+38383530383738306465396232336337646366666664666338663164363562626463326539393539
+30623838656238666639356239353535333637343439393233643136366337616431343165396563
+30633632653962623033306162633439643565333332626237663032383338396435633832383933
+39663336363934666638333839666463623763313638313735653137353734663432303963616232
+37386238353337356565633933383733373631356466616666613132633934626435643163346165
+31306234353866656430333566623761353531333930363431343233366362313032353365636163
+37623330356632626262373838376365626465373566666231663537666332356232313536613532
+66343265643536313436636563623933626232323431356164636265343464373536363837333837
+66663839393431653061396331303734353962373565653636366564396539303265393136356435
+65623138363463653330376431316330303334656538366461666364323137396265383663303262
+32393439343139386633643031666535623531316365653735323336353464383434643739356363
+63623364336364666535333134356535346136353461373839613639313964616131313235393736
+35613337326263633464383665333062356639626263306238306664396162343636316564616539
+65303730356266303361633939336637363930303865663632346535396238633934643332306434
+39383961653933376533383632653566343730613939393738393435663565633536363836376161
+61616466653662643963613765656336626535326166303962326133313562306134656266613863
+62356166353336333961313731363166396437663734353535663035663764356366396438326133
+39326264626235653132326363616165653835303731626630613166313361643364306466666463
+63363039343164636166626633326330656339623136653432333464376131663363636238343638
+63333433633861376131303136346335653033383361383963343839346137393538656364336134
+30386337306432313332626132383236333963366431333736363836326565336564353834373361
+35626535643266613334633736343061636365316539346330366431353134653264306162613332
+62323131316531333366303163373265653634396537613935326436343961633735323835356362
+64646137333065643830343131343565386566396238626461343165383363363430333737643635
+32666439633330303663653933633261333030626166643932613634653636323034386665613465
+65326461636265333563333730393730303238633666646463343531363131396234653134306531
+63633837313639336137663437353730356132313932666337643463383862376261356266656462
+31353936666331346463653363393036363032306566366562306138636234316265323538313364
+35303638663262613164313765306638306434333338626266663765306562366363376238666162
+31313964326431633736666466313066393736313662353436353665353136353136373038393162
+37333537336664616231323865666330336162383535373135613536656534666664663734336434
+34386365326133326165646563386366343264343435623461336434393962626330303065383732
+61323664336431303962313531303366616539616131363766656564313063303234386466633165
+62323337373664356138343236396361376137336564653930616263666236666233393531633563
+39653264626238636430373963643831643663363337373161376437653630323562313765373933
+35303165396132666134333832366264303164376536383065666431363039643336396332326233
+64373833303830313734616132666564653464656330323866346538623231303335363839613334
+34333236363866363039373238336431333666313536653433626435623337306364663939366261
+65383865653634316339643330626236376435623366633331343839643339333166353036653432
+31613161303339613531313536313539643430653666303432623933663637373734313366633930
+38393031313863343136326261316236373966373966356130643164313361396139343739356230
+36323465633262626430373531386164313365663233396332343965393934653135643832383230
+33653232366632373366366363636331316338386462333634666630393463333165653336323335
+65613361303663306430346630663762383134653130373134306338303038333365643064383765
+36636438663033643431616630346631393532626437626235306430306234326432353064663139
+64636662356630383138333935326165333235313764326436323864383938356638303331386666
+39326338343339633636623432343537633636626362616339656539326431306266636232613436
+34336534323363373331393962343730303161323538346335636463666635636461633234323465
+63343661343464336137343138343564616135333035636161646263326363363034383535303131
+64343062666635363133336135326565633738396332653663623432383134633265323739626438
+66313565333736306335653166306432326435346536323461313539393733653432366264666437
+31646438353361346166663733613835363338333032653261623830626532633665303631356134
+39613135373562663435303666363339346439386330636463313164383666313264656233313139
+63643639323964396130363637316230613734303035353165386661343737636363366137646539
+65306133393763323566343933663731363763313730376664326334613234666634643038636665
+36623636343566333666623963383365353231353137626236306636356631663433396238386364
+32316533343563616635393930396463353938346633633565356630353838303064346239346533
+31613231643039346339373032396163323161313133653237333966316665613132646662313935
+35316436616162373937383465363763663239366565323432393563326534646363646466316266
+30623166343636393331393232616335663862363264373038663035316261313938626334663964
+33326139613738346133663231356138653232633263643936393835396436383534326663303335
+62303537313730373536633334666130633765633339626631623966316661663538363437643430
+65363338653739623335313336626330666164613636366166356332363633343961643065646561
+65383466356463363566356230333939366535333335326333393838313331333862353030366364
+37383236663932323361653230373038366135383533633038613664353763373363393031616334
+30396138373163393262326238393363396364356533306166623432373165643938653561336664
+66383832383537356238653664323864616666623931396564656237333637376662346435663032
+32323261313561393662636139353438313036643135626634323465336139336162383066343765
+35633234623432366637323334616361333931306139323162343064643030393162303165633163
+64356235643037323365303836353634356336333635383031663438663536656233626465393361
+66633566336363333666613465613630623539316263613836386433303138333331396462333264
+65313362353736666234333563383039653832636165306264633966343266356239393761343934
+62363035373037396361303336356461303563323966663764643336393539623564373434383732
+65386631636137643636386430343165633837366333613038376135646637323031383533313937
+31376336313930376531643438323636323934303065643161653233616564376464313466643931
+31653433363233373731366261393066316531373365316166313531623230393062313832343438
+34643031613830653037643464393437636538663062376139386534343566393130643338346663
+32613134356134656333643434626163343938616234333861666234623233343732656165646161
+37316530323065356231376635656437346138666436313334303638653731643932643661656465
+63646263633035363066633561353134653336636464643231666233386339343232653239333864
+64663162653035353364656538336664356136333737373761333462376365626634333736306135
+36306337396131333564633438383963663036333935356262653533663031323066306164326366
+33666432353932393038316133636238633433303461323361666633386530326465633630383131
+62623035376232616639303864393566646630393063326463356666653535656438663538613066
+30343632303835336262396665356439343362626431303134313562663165323934303034386663
+30623530383936353965306563623161666535316231336232323031396239363764663635613231
+30306232646166393562626139363139356366383065626337663365633134386137343132636232
+64633139646130396364363037346262316635613461323763663163656435633165353131623436
+36363734383335353736346232326436623434626263323736356365653966333135663836623261
+38313461663838353165343563653361613735643435653638383265386536376266343534313636
+62663130613833306533386637333230363332386665633831643037393461386535323261396231
+31303733333938666634356633663734353432333764353136653730353565366638336538343938
+39326639346435313863663265633166393638343665393333353832353234316534356435363233
+38613035323861333662623662313462323762326533643632613866643633626632643039633234
+38346233333564343737363633366365383666633039323033373261303135613035373239343133
+38343961326661393838616165303438353832316334353966346666393233386631666163373662
+37373637613335616665623963323863343532666266383331393562383233336436373234396265
+66353766363631393366373563343034336266323164616262343863306136363766646430643263
+30323838393665333361636632313366323064376637626261616263616139613565656333353661
+63343263363930366565663537343538613130323537343462313365633763346635343935313964
+38356636643335666663373461306435636539396638336331653761323864373432303961396562
+31376131386363653366336331333232373833346331633536356632306638613036643834373833
+32333737353435633430663364383331383737623263303361356462303831623130343138643731
+65653439643839653263343632363837333337643732333165656438616563633030366334353965
+38386364393837363163306232323434646330323933323639313666636233326366313530653739
+37313964396161326336613238636133303136663434393336363963616265386436313835643234
+65343364663464356439363833383966383133613538333638303762366261353036323564623863
+65313030363138363362653538336235643832646262373163306634346164393634366261633964
+32353564396265303336323432353438656431643261663432323662376136326239376439393536
+39653833336662386364353161396539386534636464316433656662373836366534313136333430
+35303730353865333439316462366136663834626563323866663234313734666434393262333633
+61393636663062303337333432363931653761626632626336346462313863613931386536656435
+34666366616332366130343539383135613538366664343130333634316461636337633938383033
+65346234613863663561343234663535393930346634353530643231316536663834646266346338
+61353233356364336333646362336664366465646466363537396338343934383031666265666535
+38623163636135656562613666663166393866636364346366343733356339316465613330646538
+33646337633034343665656630316334366339626538373662616432323337313362333634643466
+63666235646432366535303438636662373830313864646639306362633463626437613932303161
+66393463346464666638333166326233613934303465386666633634633863363836616265383130
+65633334666330613363303039613562303739343961333863383763313938623337386634386238
+62656335663366303530346563353530656662303030356230383630386236393536346339643332
+35393766616534303934373136356461613461666332393632376537333864656666633835356463
+38616330383636313433653666396134343963663465393732363532613062656433663339353634
+65666530316434386165363535336637376266616662336431396533323838356534616536343732
+30326261323964636339356639356232383331666466323134333531346262363661663735656533
+34626162643834353862613731356130376132613063633830633135663238666231326338323365
+62363865616535623131383066653164336565333733336233613333613030313936363465393962
+30336331336336386564613564656639653037313238346137666234393431346563303434333638
+30366232386530386434613932333836316166653238313134356535393035663633393033613266
+64326566303565656438386532393665656338303832346133333031613761663838613864336565
+34353737363737366638653938346166356630373539353238316366363861313637623938326638
+30313432633532323539303936313462616635656232323832366561373331353331366630376663
+61343138363862613336303866373030333334306235626363616565623039373364656137666332
+34333735623964353464656131303533653031636339393335663739363234313134383865616365
+32313331323534383532663135353232643038373532626564373563383434303436636433366165
+34326465353737633336613038336534373166363636303165323035366533323939376238306235
+36386233356562356166303565366535376137636661313666623766393861666132363332333435
+33316234363137656564643639393739323736376434663132633864656161323261316534653063
+39666462343766623537336137373730636562313161666263613532333132316238643836323661
+39363562643039363562366663383737373737653439663930643466383938376664336436623337
+30376431633561656439393634633635636334363366383739613238636262316266313334373766
+39376133316331333937323131656230313734636532653437356634373935653365356339396236
+37613036666139623532656538393066313163303135396535356536303565616236646236366264
+62323233376235356462633034323639356465346136303138393234663164373834393565323062
+39383030613634396332643733313834366365313762636235306161313435313262616430633236
+34386332366262336231623732656431616630623235396538376663646262323761306663303539
+33366161303066653932333137326366363130373534306630626135313830326138343764373365
+66633462666666393461303265643239653531656631643930343730626336643037393232336163
+39376634326165623531633765666636383264613532323235663236353532336638313138666566
+63333632343161303630663431383037666265343564613636623238336564376239316665326461
+62613665353735633361383730663132356463336461653932313565306630323863663431336562
+34306537613530653934373434613463346636613465663761643065633235646365356266383761
+31303036613261376562333233623537333064313639636136306530393337373639663862356638
+30323365653136323535386134376335356531653133316530353061326666626536326239363366
+66623165623734386563316361313535393462633230646664626631396234303030376262616566
+33366234643065636633623338656331373761613432396530653839643836643537363863653139
+61643233393564393537356364613334633038633036343463383338653461623136383436353665
+34663136623332356434313664613434663032393737623039336631643133306661323432313663
+63316263353730613437393230633738346334653530663531306134316535663334316566623261
+66663539386363366335353265623939316636303938393131346434343565623266616637636332
+33616233636137613339343231386631636235346631386138356234386266326630346164343164
+37393063316633663863343830346466383636366234376466326366663239316438646366643635
+63326566616131333532353932643434386632616332333364613634376162323239633963303234
+33616132643031393039313933646434376232343862313736326639373436383466343336616535
+30323161343335646235663935636563336663306566316563356361386464373334313063656134
+35343866386234626565363866373534376364633431383062353439373566323266326662616263
+37376362366438353636636530353965646365316138303936373631623064666236616438373463
+65303431333738333236636336323037383739633839653663353463653638646635626265613430
+37616261386637643230636336303861616336646532306535326537623434383532623637666536
+37366566646466356432316461356538633834306364396338333931306231373530303462393465
+61326264616530636464343335623132376139653737636561313039353264376131636161633830
+39333737613433643962633862653434303165343232633765626335626338666232396264316530
+33373135633639366531366632643439306339393064343530666431336333643132623061306162
+30613438633232626163656134353739636463326538376338633164343166363631383336316266
+62653732643030353032353936646162626163636233616531646231636334323366626534636536
+65373033616139376466366662306566663363393164356638383431653437663366643866333263
+39306533306661363138303566656161633365386436623565376235313433356236636638633134
+63353233353030393833653363626663336561326437383161316531373364663666306330343063
+31323663636136396566643831633666323639303230636664393162366638626437343562643464
+39316239373338316136613839326663626462356138313839656239613835396638663037656232
+33393138363364353166663430663031383330356234376632333938353965376337346563393531
+63633065663332306535306466383165646663313938623434373831616431656237386363643637
+62313861643636353734626136366330376230636235663234303764656662373539333830653535
+31663030313334376531366631636636306265643235313635363736333334393239353262323238
+38326662363538636634303730303437336237666335666661366332333639663662383334313661
+30323836646630343062353562336334396235326235616536643835373163306235653562626532
+39373337333939666336333736366337653736633934343866393836316565373965613865386339
+35313762313436666162316534383462333961653932643666663866633961613961353962653962
+39326434646236393164383832613336386239663836396334653534616334346238343363393364
+66656330623839323134623939653761323561643632663234306333643662346364643834646362
+36346338656564633231303337333832663061303961396631653432346439623130623866356561
+34666465336362383833336262303637303964383636643231656565616361306666613732333734
+39303439336163383037663762316531343533343562383664626463623632626334303931626231
+35643665333161303564373662313462393732623663343530666430393636356166383636343761
+30613633383438613262646430623562363864363935353764613064636530616537613339616538
+65386262663236356237353834393331353633653462353034306164643334646364383533646632
+31636538376462303532633762373164383431613538663234396236313761323666613238646132
+62313832663335633430666632616466313930383236653231343035623233373538616562373834
+32323566353235613430643630313161353830623263313931323135633134393833376661353037
+36306234376532653232316133336434396463616536393738633439313036646364326133396633
+61393538636137376436636431356162366435626665326239646664363233383030353635333865
+31396161613062626561376337653262643861353061633863616633623737323134653334636663
+66376465386662656362313466356264323062366130336632323333373935626535303533633766
+65336636646338623039363764306634366438656137303238646361666132636464313338363262
+35613936386534656134633266356437663733346533653831386336343061336365373330363164
+39313038356163656233343834346632643435393764326166376639383563633637626464353131
+33653865326262626461653664616532343436376466666566313961343462666633653736626235
+30336135613338333166323339316363623339346566353132313165353436353465643438353238
+65646262666135616638323065316630646538383038663635646561343235366264643739373038
+33376361653438306137373632306130303733363535386664613332666662663565626266346239
+65333461653632343364323039613461336130383831376437363066656461386566363366316236
+31326630313339333732356634363162316261336666633766636665643463613061313263386261
+37376434616431383132633161633130306638643833366434323339353838303933363234663137
+62663666306534623731366333383963656638653836323864326431303334646535313532656137
+30636266353332626461636639353235303638656431653361366633356361623330393136643539
+33366635646438313432396235386630386537336235383637326632303463333664656634613661
+64323361666430343735623565623532353161653763313965666338636462313463346233666462
+65656161646531353134323832633936636533363761376131636536636661316433383837663065
+34653766636466636336643231636463623638373131633838343538383961383334613631303936
+37353734363132306534633531346261623239616338613034656335363033333164393938633430
+61663239316233643462333739626634303664353531656165303432353061306136333764373832
+63343438633063386464663734643064666330393036303333663764663736303664653239336237
+65353534633731366232333232613133633661653764303036363063323966353965343365366639
+39396161383966343264646362636632303235376165663137343436346134333930656161623632
+34636565306666376433353532396663383339333534343766333363303232343530663431386635
+30346637656665396163613232316365353537633062316532656661326362336230323331313230
+61633563353064333965636437643162613665316230633438666133663465663566373266353639
+36376264303666663431643963323731356531343234313337363533663862386366636565646231
+31346165663236336335623661356432373431366332633933313536633238353435376631396433
+31383835323934323434383965383531626366653437316135643036336339316635323534393137
+65366465346666313838383137346238646666383033346237386333626562313238333730323130
+65316530326639663661346362663862303862316161623463376536356265643462306466653138
+66306361353536386662343162353930383865666433623030313830623735353731363562623162
+39643463646237336638653136383663346131626264653861326164646336656363343639383064
+64313965636434663762646261386336626533643739343063323339343333313739343634613937
+34383839336338383736386561616166386634333533616530383635346262643239386161643136
+38323437643839323832623162636532376338346636666266663538653863633735613632386431
+65363462313538396335633033633966396339626632396430353461343864323463653162393666
+39643566613836616135323439636165626338333439373738313130666138343430386431353636
+33646134623134363462383765643365626435366433363830653836653731333731343161643166
+39653838373632636131656333306162633233313765316138613136336235343137343037656435
+62363065326330343663343766666165356662613133373634633036316435626562366165643035
+65636463356430666266343264396531636266363065303137636332626435616264353232383633
+61666635356531336632623338633230336166626261623635613439366162383035653437383130
+62386635653864306334613861383433353562363562306633653866633531663266356561363930
+35323163616162353163323330636330623865633636343264353939356137336531323964346261
+32363133613232656661653863306138393730386265353366393633373231323835303736306332
+62353039313539663936393530643063633936643162373933303665346337643133343866323831
+31386131646632323433613931623331316236353866363062343632613163363366383633393736
+35633830656366373030623431336138346237663336333733336136363735643962333261323135
+37356633653331343166323534393465316465383731633536343836653362663839376439343861
+39373661326336323535373534306362326533663464306462303533306137623434
diff --git a/resources/tools/testbed-setup/ansible/vpp_device.yaml b/resources/tools/testbed-setup/ansible/vpp_device.yaml
index 8a99166f04..ac42b8cafe 100644
--- a/resources/tools/testbed-setup/ansible/vpp_device.yaml
+++ b/resources/tools/testbed-setup/ansible/vpp_device.yaml
@@ -6,17 +6,25 @@
become: yes
become_user: root
roles:
+ - role: user_add
+ tags: user_add
- role: baremetal
tags: baremetal
- role: common
tags: common
- role: docker
tags: docker
+ - role: nomad
+ tags: nomad
+ - role: consul
+ tags: consul
- role: vpp_device
tags: vpp_device
- role: kernel_vm
tags: kernel_vm
- - role: nomad
- tags: nomad
+ - role: csit_sut_image
+ tags: csit_sut_image
+ - role: csit_shim_image
+ tags: csit_shim_image
- role: cleanup
tags: cleanup