aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--docs/model/current/schema/test_case.info.schema.json63
-rw-r--r--docs/model/current/schema/test_case.info.schema.yaml47
-rw-r--r--docs/model/current/schema/todos.txt8
-rw-r--r--docs/model/current/top.rst4
-rw-r--r--resources/libraries/python/Constants.py2
-rw-r--r--resources/libraries/python/Iperf3.py27
-rw-r--r--resources/libraries/python/TrafficGenerator.py33
-rw-r--r--resources/libraries/python/model/ExportResult.py54
-rw-r--r--resources/libraries/python/model/export_json.py3
-rw-r--r--resources/libraries/robot/shared/default.robot10
-rw-r--r--resources/libraries/robot/shared/suite_setup.robot40
-rw-r--r--resources/tools/ab/ABTools.py27
-rw-r--r--tests/vpp/perf/gso/2n1l-10ge2p1x710-ethip4-ip4base-2tap-gso-iperf3-mrr.robot4
-rw-r--r--tests/vpp/perf/gso/2n1l-10ge2p1x710-ethip4-ip4base-2tap-iperf3-mrr.robot4
-rw-r--r--tests/vpp/perf/gso/2n1l-10ge2p1x710-ethip4-ip4base-2vhost-gso-iperf3-mrr.robot4
-rw-r--r--tests/vpp/perf/gso/2n1l-10ge2p1x710-ethip4-ip4base-2vhost-iperf3-mrr.robot4
-rw-r--r--tests/vpp/perf/hoststack/10ge2p1x710-eth-ip4tcpbase-ldpreload-iperf3-bps.robot4
-rw-r--r--tests/vpp/perf/hoststack/10ge2p1x710-eth-ip4tcpbase-nsim-ldpreload-iperf3-bps.robot4
-rw-r--r--tests/vpp/perf/hoststack/10ge2p1x710-eth-ip4tcpscale1cl10s-ldpreload-iperf3-bps.robot4
-rw-r--r--tests/vpp/perf/hoststack/10ge2p1x710-eth-ip4tcpscale1cl10s-nsim-ldpreload-iperf3-bps.robot4
-rw-r--r--tests/vpp/perf/hoststack/10ge2p1x710-eth-ip4udpbase-ldpreload-iperf3-bps.robot4
-rw-r--r--tests/vpp/perf/hoststack/10ge2p1x710-eth-ip4udpquicbase-vppecho-bps.robot4
-rw-r--r--tests/vpp/perf/hoststack/10ge2p1x710-eth-ip4udpquicscale10cl10s-vppecho-bps.robot4
-rw-r--r--tests/vpp/perf/hoststack/10ge2p1x710-eth-ip4udpquicscale10cl1s-vppecho-bps.robot4
-rw-r--r--tests/vpp/perf/hoststack/10ge2p1x710-eth-ip4udpquicscale1cl10s-vppecho-bps.robot4
-rw-r--r--tests/vpp/perf/hoststack/10ge2p1x710-eth-ip4udpscale1cl10s-ldpreload-iperf3-bps.robot4
26 files changed, 229 insertions, 145 deletions
diff --git a/docs/model/current/schema/test_case.info.schema.json b/docs/model/current/schema/test_case.info.schema.json
index 7df6caad61..d99dd4766a 100644
--- a/docs/model/current/schema/test_case.info.schema.json
+++ b/docs/model/current/schema/test_case.info.schema.json
@@ -1,5 +1,5 @@
{
- "$id": "https://fd.io/FIXME/CSIT/UTI/test_case/info/1.0.0",
+ "$id": "https://fd.io/FIXME/CSIT/UTI/test_case/info/1.0.1",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"description": "Schema for info output of test case.",
"allOf": [
@@ -14,11 +14,13 @@
},
"dut_type": {
"description": "DUT type used, e.g. VPP or DPDK.",
- "type": "string"
+ "type": "string",
+ "minLength": 1
},
"dut_version": {
"description": "Version string appropriate to DUT type used.",
- "type": "string"
+ "type": "string",
+ "minLength": 1
},
"end_time": {
"description": "UTC date and time in RFC 3339 format, specifying calendar time just before test case ended (at the end of test case teardown).",
@@ -183,10 +185,20 @@
"vsap"
]
},
+ "tg_type": {
+ "description": "TG type used, e.g. TREX.",
+ "type": "string",
+ "minLength": 1
+ },
+ "tg_version": {
+ "description": "Version string appropriate to TG type used.",
+ "type": "string",
+ "minLength": 1
+ },
"version": {
"description": "CSIT model version (semver format) the exporting code adhered to.",
"type": "string",
- "const": "1.0.0"
+ "const": "1.0.1"
}
},
"required": [
@@ -206,6 +218,8 @@
"test_name_long",
"test_name_short",
"test_type",
+ "tg_type",
+ "tg_version",
"version"
]
},
@@ -237,47 +251,6 @@
}
}
]
- },
- {
- "description": "Subschema validating relation between dut_type and dut_version.",
- "oneOf": [
- {
- "description": "Subschema for tests with no DUT, e.g. TRex self-test.",
- "type": "object",
- "properties": {
- "dut_type": {
- "const": "none"
- },
- "dut_version": {
- "const": ""
- }
- }
- },
- {
- "description": "Subschema for DUT type VPP.",
- "type": "object",
- "properties": {
- "dut_type": {
- "const": "VPP"
- },
- "dut_version": {
- "minLength": 1
- }
- }
- },
- {
- "description": "Subschema for DUT type DPDK.",
- "type": "object",
- "properties": {
- "dut_type": {
- "const": "DPDK"
- },
- "dut_version": {
- "minLength": 1
- }
- }
- }
- ]
}
],
"$defs": {
diff --git a/docs/model/current/schema/test_case.info.schema.yaml b/docs/model/current/schema/test_case.info.schema.yaml
index 295c2fa7cb..9fd105a972 100644
--- a/docs/model/current/schema/test_case.info.schema.yaml
+++ b/docs/model/current/schema/test_case.info.schema.yaml
@@ -1,4 +1,4 @@
-# Copyright (c) 2021 Cisco and/or its affiliates.
+# Copyright (c) 2022 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:
@@ -13,7 +13,7 @@
---
-$id: https://fd.io/FIXME/CSIT/UTI/test_case/info/1.0.0
+$id: https://fd.io/FIXME/CSIT/UTI/test_case/info/1.0.1
$schema: https://json-schema.org/draft/2020-12/schema
description: >-
Schema for info output of test case.
@@ -32,10 +32,12 @@ allOf:
description: >-
DUT type used, e.g. VPP or DPDK.
type: string
+ minLength: 1
dut_version:
description: >-
Version string appropriate to DUT type used.
type: string
+ minLength: 1
end_time:
description: >-
UTC date and time in RFC 3339 format, specifying calendar time
@@ -281,12 +283,22 @@ allOf:
- reconf
- soak
- vsap
+ tg_type:
+ description: >-
+ TG type used, e.g. TREX.
+ type: string
+ minLength: 1
+ tg_version:
+ description: >-
+ Version string appropriate to TG type used.
+ type: string
+ minLength: 1
version:
description: >-
CSIT model version (semver format)
the exporting code adhered to.
type: string
- const: 1.0.0
+ const: 1.0.1
required:
- duration
- dut_type
@@ -304,6 +316,8 @@ allOf:
- test_name_long
- test_name_short
- test_type
+ - tg_type
+ - tg_version
- version
- description: >-
Subschema validating relation between status and message.
@@ -324,33 +338,6 @@ allOf:
const: false
message:
minLength: 1
-- description: >-
- Subschema validating relation between dut_type and dut_version.
- oneOf:
- - description: >-
- Subschema for tests with no DUT, e.g. TRex self-test.
- type: object
- properties:
- dut_type:
- const: none
- dut_version:
- const: ""
- - description: >-
- Subschema for DUT type VPP.
- type: object
- properties:
- dut_type:
- const: VPP
- dut_version:
- minLength: 1
- - description: >-
- Subschema for DUT type DPDK.
- type: object
- properties:
- dut_type:
- const: DPDK
- dut_version:
- minLength: 1
$defs:
types:
diff --git a/docs/model/current/schema/todos.txt b/docs/model/current/schema/todos.txt
index 8e63b21a19..91e8bb49bb 100644
--- a/docs/model/current/schema/todos.txt
+++ b/docs/model/current/schema/todos.txt
@@ -1,6 +1,4 @@
-Export also tg_type and tg_version properties.
-
Add description with link to methodology for MRR, NDRPDR and SOAK.
Add multiplicity field to MRR result, so PAL can detect incomplete samples.
@@ -8,9 +6,3 @@ Add multiplicity field to MRR result, so PAL can detect incomplete samples.
Add link explaining our L1 bandwidth calculation.
Add a link to URL explaining how to decode the hdrh data.
-
-Do we want to require more structure for dut_version, e.g. at least two dots?
-
-Should we parse version strings?
-E.g.: Turn dut_version from "21.11.0"
-into {"major": 21, "minor": 11, "patch": 0}.
diff --git a/docs/model/current/top.rst b/docs/model/current/top.rst
index d86e3fde4c..ee33a29cd3 100644
--- a/docs/model/current/top.rst
+++ b/docs/model/current/top.rst
@@ -1,5 +1,5 @@
..
- Copyright (c) 2021 Cisco and/or its affiliates.
+ Copyright (c) 2022 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:
@@ -22,7 +22,7 @@ especially the export side (UTI), not import side (PAL).
Version
~~~~~~~
-This document is valid for CSIT model version 1.0.0.
+This document is valid for CSIT model version 1.0.1.
It is recommended to use semantic versioning: https://semver.org/
That means, if the new model misses a field present in the old model,
diff --git a/resources/libraries/python/Constants.py b/resources/libraries/python/Constants.py
index 2ecf50b770..a7bda2124b 100644
--- a/resources/libraries/python/Constants.py
+++ b/resources/libraries/python/Constants.py
@@ -120,7 +120,7 @@ class Constants:
"""Constants used in CSIT."""
# Version for CSIT data model. See docs/model/.
- MODEL_VERSION = u"1.0.0"
+ MODEL_VERSION = u"1.0.1"
# Global off-switch in case JSON export is large or slow.
EXPORT_JSON = get_optimistic_bool_from_env(u"EXPORT_JSON")
diff --git a/resources/libraries/python/Iperf3.py b/resources/libraries/python/Iperf3.py
index ed186f0757..12d0633abc 100644
--- a/resources/libraries/python/Iperf3.py
+++ b/resources/libraries/python/Iperf3.py
@@ -1,4 +1,4 @@
-# Copyright (c) 2021 Cisco and/or its affiliates.
+# Copyright (c) 2022 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:
@@ -33,6 +33,31 @@ class Iperf3:
# Computed affinity for iPerf client.
self._c_affinity = None
+ @staticmethod
+ def get_iperf_type(node):
+ """Log and return the installed traffic generator type.
+
+ :param node: Node from topology file.
+ :type node: dict
+ :returns: Traffic generator type string.
+ :rtype: str
+ """
+ return "IPERF"
+
+ @staticmethod
+ def get_iperf_version(node):
+ """Log and return the installed traffic generator version.
+
+ :param node: Node from topology file.
+ :type node: dict
+ :returns: Traffic generator version string.
+ :rtype: str
+ """
+ command = f"iperf3 --version | head -1"
+ message = u"Get iPerf version failed!"
+ stdout, _ = exec_cmd_no_error(node, command, message=message)
+ return stdout.strip()
+
def initialize_iperf_server(
self, node, pf_key, interface, bind, bind_gw, bind_mask,
namespace=None, cpu_skip_cnt=0, cpu_cnt=1, instances=1):
diff --git a/resources/libraries/python/TrafficGenerator.py b/resources/libraries/python/TrafficGenerator.py
index 03e3890959..5d9a0568f1 100644
--- a/resources/libraries/python/TrafficGenerator.py
+++ b/resources/libraries/python/TrafficGenerator.py
@@ -252,7 +252,38 @@ class TrafficGenerator(AbstractMeasurer):
f"{self._node[u'subtype']} not running in {expected_mode} mode!"
)
- # TODO: pylint says disable=too-many-locals.
+ @staticmethod
+ def get_tg_type(tg_node):
+ """Log and return the installed traffic generator type.
+
+ :param tg_node: Node from topology file.
+ :type tg_node: dict
+ :returns: Traffic generator type string.
+ :rtype: str
+ :raises RuntimeError: If command returns nonzero return code.
+ """
+ return str(check_subtype(tg_node))
+
+ @staticmethod
+ def get_tg_version(tg_node):
+ """Log and return the installed traffic generator version.
+
+ :param tg_node: Node from topology file.
+ :type tg_node: dict
+ :returns: Traffic generator version string.
+ :rtype: str
+ :raises RuntimeError: If command returns nonzero return code.
+ """
+ subtype = check_subtype(tg_node)
+ if subtype == NodeSubTypeTG.TREX:
+ command = f"cat {Constants.TREX_INSTALL_DIR}/VERSION"
+ message = u"Get T-Rex version failed!"
+ stdout, _ = exec_cmd_no_error(tg_node, command, message=message)
+ return stdout.strip()
+ else:
+ return "none"
+
+ # TODO: pylint disable=too-many-locals.
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,
diff --git a/resources/libraries/python/model/ExportResult.py b/resources/libraries/python/model/ExportResult.py
index d74a6ab5df..16c6b89fb3 100644
--- a/resources/libraries/python/model/ExportResult.py
+++ b/resources/libraries/python/model/ExportResult.py
@@ -1,4 +1,4 @@
-# Copyright (c) 2021 Cisco and/or its affiliates.
+# Copyright (c) 2022 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:
@@ -39,18 +39,13 @@ def export_dut_type_and_version(dut_type=u"unknown", dut_version=u"unknown"):
else:
# We want to set a variable in higher level suite setup
# to be available to test setup several levels lower.
- # Documentation [0] looks like "children" is a keyword argument,
- # but code [1] lines 1458 and 1511-1512 show
- # it is just last stringy argument.
- # [0] http://robotframework.org/robotframework/
- # 3.1.2/libraries/BuiltIn.html#Set%20Suite%20Variable
- # [1] https://github.com/robotframework/robotframework/blob/
- # v3.1.2/src/robot/libraries/BuiltIn.py
BuiltIn().set_suite_variable(
u"\\${DUT_TYPE}", dut_type, u"children=True"
)
if dut_version == u"unknown":
- dut_version = BuiltIn().get_variable_value(u"\\${DUT_VERSION}", u"unknown")
+ dut_version = BuiltIn().get_variable_value(
+ u"\\${DUT_VERSION}", u"unknown"
+ )
if dut_type == u"unknown":
raise RuntimeError(u"Dut version not provided.")
else:
@@ -58,10 +53,49 @@ def export_dut_type_and_version(dut_type=u"unknown", dut_version=u"unknown"):
u"\\${DUT_VERSION}", dut_version, u"children=True"
)
data = get_export_data()
- data[u"dut_type"] = dut_type
+ data[u"dut_type"] = dut_type.lower()
data[u"dut_version"] = dut_version
+def export_tg_type_and_version(tg_type=u"unknown", tg_version=u"unknown"):
+ """Export the arguments as tg type and version.
+
+ Robot tends to convert "none" into None, hence the unusual default values.
+
+ If either argument is missing, the value from robot variable is used.
+ If argument is present, the value is also stored to robot suite variable.
+
+ :param tg_type: TG type, e.g. TREX.
+ :param tg_version: TG version as determined by the caller.
+ :type tg_type: Optional[str]
+ :type tg_version: Optiona[str]
+ :raises RuntimeError: If value is neither in argument not robot variable.
+ """
+ if tg_type == u"unknown":
+ tg_type = BuiltIn().get_variable_value(u"\\${TG_TYPE}", u"unknown")
+ if tg_type == u"unknown":
+ raise RuntimeError(u"TG type not provided.")
+ else:
+ # We want to set a variable in higher level suite setup
+ # to be available to test setup several levels lower.
+ BuiltIn().set_suite_variable(
+ u"\\${TG_TYPE}", tg_type, u"children=True"
+ )
+ if tg_version == u"unknown":
+ tg_version = BuiltIn().get_variable_value(
+ u"\\${TG_VERSION}", u"unknown"
+ )
+ if tg_type == u"unknown":
+ raise RuntimeError(u"TG version not provided.")
+ else:
+ BuiltIn().set_suite_variable(
+ u"\\${TG_VERSION}", tg_version, u"children=True"
+ )
+ data = get_export_data()
+ data[u"tg_type"] = tg_type.lower()
+ data[u"tg_version"] = tg_version
+
+
def append_mrr_value(mrr_value, unit):
"""Store mrr value to proper place so it is dumped into json.
diff --git a/resources/libraries/python/model/export_json.py b/resources/libraries/python/model/export_json.py
index b5d4328084..840c49fa70 100644
--- a/resources/libraries/python/model/export_json.py
+++ b/resources/libraries/python/model/export_json.py
@@ -34,7 +34,7 @@ from robot.libraries.BuiltIn import BuiltIn
from resources.libraries.python.Constants import Constants
from resources.libraries.python.model.ExportResult import (
- export_dut_type_and_version
+ export_dut_type_and_version, export_tg_type_and_version
)
from resources.libraries.python.model.mem2raw import write_raw_output
from resources.libraries.python.model.raw2info import convert_content_to_info
@@ -167,6 +167,7 @@ class export_json():
self.raw_data[u"hosts"] = set()
self.raw_data[u"log"] = list()
export_dut_type_and_version()
+ export_tg_type_and_version()
def start_suite_teardown_export(self):
"""Set new file path, initialize data for the suite teardown.
diff --git a/resources/libraries/robot/shared/default.robot b/resources/libraries/robot/shared/default.robot
index 4f045dad50..b7eadbe2fa 100644
--- a/resources/libraries/robot/shared/default.robot
+++ b/resources/libraries/robot/shared/default.robot
@@ -336,16 +336,6 @@
| | Run Keyword If | ${with_trace} | VPP Enable Traces On Dut
| | ... | ${nodes['${dut}']}
-| Get And Export DPDK Version
-| | [Documentation] | Add version to test export as detected on DUT1.
-| |
-| | ... | *Example:*
-| |
-| | ... | \| Get And Export DPDK Version \|
-| |
-| | ${version} = | Get Dpdk Version | ${nodes}[DUT1]
-| | Export Dut Type And Version | DPDK | ${version}
-
| Save VPP PIDs
| | [Documentation] | Get PIDs of VPP processes from all DUTs in topology and\
| | ... | set it as a test variable. The PIDs are stored as dictionary items\
diff --git a/resources/libraries/robot/shared/suite_setup.robot b/resources/libraries/robot/shared/suite_setup.robot
index 232158a6e0..e2272242c6 100644
--- a/resources/libraries/robot/shared/suite_setup.robot
+++ b/resources/libraries/robot/shared/suite_setup.robot
@@ -1,4 +1,4 @@
-# Copyright (c) 2021 Cisco and/or its affiliates.
+# Copyright (c) 2022 Cisco and/or its affiliates.
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at:
@@ -18,6 +18,7 @@
| Library | resources.libraries.python.InterfaceUtil
| Library | resources.libraries.python.NGINX.NGINXTools
| Library | resources.tools.ab.ABTools
+| Library | resources.libraries.python.Iperf3
| Library | resources.libraries.python.NodePath
| Library | resources.libraries.python.topology.Topology
| Library | resources.libraries.python.TrafficGenerator
@@ -143,6 +144,7 @@
| | [Documentation]
| | ... | Additional Setup for suites which uses scapy as Traffic generator.
| |
+| | Export TG Type And Version | scapy | 2.4.3
| | FOR | ${dut} | IN | @{duts}
| | | Set Suite Variable | ${${dut}_vf1} | ${${dut}_${int}1}
| | | Set Suite Variable | ${${dut}_vf2} | ${${dut}_${int}2}
@@ -154,11 +156,12 @@
| | [Documentation]
| | ... | Additional Setup for suites which uses dpdk.
| |
+| | ${version} = | Get Dpdk Version | ${nodes}[DUT1]
+| | Export Dut Type And Version | dpdk | ${version}
| | FOR | ${dut} | IN | @{duts}
| | | Initialize DPDK Framework | ${nodes['${dut}']}
| | | ... | ${${dut}_${int}1}[0] | ${${dut}_${int}2}[0] | ${nic_driver}
| | END
-| | Get And Export DPDK Version
| Additional Suite Setup Action For performance vf
| | [Documentation]
@@ -235,6 +238,9 @@
| | | ... | ELSE
| | | ... | Additional Suite Setup Action For performance pf | ${dut}
| | END
+| | ${type} = | Get TG Type | ${nodes}[TG]
+| | ${version} = | Get TG Version | ${nodes}[TG]
+| | Export TG Type And Version | ${type} | ${version}
| | Initialize traffic generator
| | ... | ${tg} | ${TG_pf1}[0] | ${TG_pf2}[0]
| | ... | ${dut1} | ${DUT1_${int}1}[0]
@@ -246,14 +252,25 @@
| | ... | Additional Setup for suites which uses performance measurement
| | ... | for L1 cross connect tests
| |
-| | # TRex suites have only TG (and a loopback cable), no SUT nor DUT.
-| | Export Dut Type And Version | none | ${EMPTY}
+| | ${type} = | Get TG Type | ${nodes}[TG]
+| | ${version} = | Get TG Version | ${nodes}[TG]
+| | Export Dut Type And Version | ${type} | ${version}
+| | Export TG Type And Version | ${type} | ${version}
| | Initialize traffic generator
| | ... | ${tg} | ${TG_pf1}[0] | ${TG_pf2}[0]
| | ... | ${tg} | ${TG_pf2}[0]
| | ... | ${tg} | ${TG_pf1}[0]
| | ... | ${osi_layer}
+| Additional Suite Setup Action For iPerf3
+| | [Documentation]
+| | ... | Additional Setup for suites which uses performance measurement over
+| | ... | iPerf3.
+| |
+| | ${type} = | Get iPerf Type | ${nodes}[TG]
+| | ${version} = | Get iPerf Version | ${nodes}[TG]
+| | Export DUT Type And Version | ${type} | ${version}
+
| Additional Suite Setup Action For ipsechw
| | [Documentation]
| | ... | Additional Setup for suites which uses QAT HW.
@@ -272,11 +289,17 @@
| | Install NGINX framework on all DUTs | ${nodes} | ${packages_dir}
| | ... | ${nginx_version}
+| Additional Suite Setup Action For vppecho
+| | [Documentation]
+| | ... | Additional Setup for suites which uses performance measurement over
+| | ... | VPP Echo.
+| |
+| | Export DUT Type And Version | ${DUT_TYPE} | ${DUT_VERSION}
+
| Additional Suite Setup Action For ab
| | [Documentation]
| | ... | Additional Setup for suites which uses ab TG.
| |
-| | Verify Program Installed | ${tg} | ab
| | Iface update numa node | ${tg}
| | ${running}= | Is TRex running | ${tg}
| | Run keyword if | ${running}==${True} | Teardown traffic generator | ${tg}
@@ -296,5 +319,8 @@
| | | Run Keyword If | ${ip_addr_on_intf}==${False} | Set Linux interface IP
| | | ... | ${tg} | ${intf_name} | ${ip_addr} | ${ab_ip_prefix}
| | END
-| | Set Linux interface up | ${tg} | ${intf_name}
-| | Check ab | ${tg}
+| | Set Linux interface up | ${nodes}[TG] | ${intf_name}
+| | Check AB | ${tg}
+| | ${type} = | Get AB Type | ${nodes}[TG]
+| | ${version} = | Get AB Version | ${nodes}[TG]
+| | Export TG Type And Version | ${type} | ${version}
diff --git a/resources/tools/ab/ABTools.py b/resources/tools/ab/ABTools.py
index cbd1adf21f..54aff19e92 100644
--- a/resources/tools/ab/ABTools.py
+++ b/resources/tools/ab/ABTools.py
@@ -1,4 +1,4 @@
-# Copyright (c) 2021 Intel and/or its affiliates.
+# Copyright (c) 2022 Intel 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:
@@ -79,6 +79,31 @@ class ABTools:
exec_cmd_no_error(tg_node, cmd, message=message)
@staticmethod
+ def get_ab_type(node):
+ """Log and return the installed traffic generator type.
+
+ :param node: Node from topology file.
+ :type node: dict
+ :returns: Traffic generator type string.
+ :rtype: str
+ """
+ return "AB"
+
+ @staticmethod
+ def get_ab_version(node):
+ """Log and return the installed traffic generator version.
+
+ :param node: Node from topology file.
+ :type node: dict
+ :returns: Traffic generator version string.
+ :rtype: str
+ """
+ command = f"ab -V | head -1 | cut -d',' -f2"
+ message = u"Get AB version failed!"
+ stdout, _ = exec_cmd_no_error(node, command, message=message)
+ return stdout.strip()
+
+ @staticmethod
def run_ab(tg_node, ip_addr, tg_addr, tls_tcp, cipher, files_num, rps_cps,
r_total, c_total, port, protocol=u"TLS1.3"):
""" Run ab test.
diff --git a/tests/vpp/perf/gso/2n1l-10ge2p1x710-ethip4-ip4base-2tap-gso-iperf3-mrr.robot b/tests/vpp/perf/gso/2n1l-10ge2p1x710-ethip4-ip4base-2tap-gso-iperf3-mrr.robot
index 5b4aa39551..4abc4893f0 100644
--- a/tests/vpp/perf/gso/2n1l-10ge2p1x710-ethip4-ip4base-2tap-gso-iperf3-mrr.robot
+++ b/tests/vpp/perf/gso/2n1l-10ge2p1x710-ethip4-ip4base-2tap-gso-iperf3-mrr.robot
@@ -1,4 +1,4 @@
-# Copyright (c) 2021 Cisco and/or its affiliates.
+# Copyright (c) 2022 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:
@@ -19,7 +19,7 @@
| ... | RXQ_SIZE_4096 | TXQ_SIZE_4096 | GSO_TRUE
| ... | ethip4-ip4base-2tap-gso-iperf3
|
-| Suite Setup | Setup suite topology interfaces
+| Suite Setup | Setup suite topology interfaces | iPerf3
| Suite Teardown | Tear down suite
| Test Setup | Setup test
| Test Teardown | Tear down test | iPerf3 | namespace
diff --git a/tests/vpp/perf/gso/2n1l-10ge2p1x710-ethip4-ip4base-2tap-iperf3-mrr.robot b/tests/vpp/perf/gso/2n1l-10ge2p1x710-ethip4-ip4base-2tap-iperf3-mrr.robot
index dddf50b2eb..6d64c05fdd 100644
--- a/tests/vpp/perf/gso/2n1l-10ge2p1x710-ethip4-ip4base-2tap-iperf3-mrr.robot
+++ b/tests/vpp/perf/gso/2n1l-10ge2p1x710-ethip4-ip4base-2tap-iperf3-mrr.robot
@@ -1,4 +1,4 @@
-# Copyright (c) 2021 Cisco and/or its affiliates.
+# Copyright (c) 2022 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:
@@ -19,7 +19,7 @@
| ... | RXQ_SIZE_4096 | TXQ_SIZE_4096 | GSO_FALSE
| ... | ethip4-ip4base-2tap-iperf3
|
-| Suite Setup | Setup suite topology interfaces
+| Suite Setup | Setup suite topology interfaces | iPerf3
| Suite Teardown | Tear down suite
| Test Setup | Setup test
| Test Teardown | Tear down test | iPerf3 | namespace
diff --git a/tests/vpp/perf/gso/2n1l-10ge2p1x710-ethip4-ip4base-2vhost-gso-iperf3-mrr.robot b/tests/vpp/perf/gso/2n1l-10ge2p1x710-ethip4-ip4base-2vhost-gso-iperf3-mrr.robot
index a2ece2f89a..858269258a 100644
--- a/tests/vpp/perf/gso/2n1l-10ge2p1x710-ethip4-ip4base-2vhost-gso-iperf3-mrr.robot
+++ b/tests/vpp/perf/gso/2n1l-10ge2p1x710-ethip4-ip4base-2vhost-gso-iperf3-mrr.robot
@@ -1,4 +1,4 @@
-# Copyright (c) 2021 Cisco and/or its affiliates.
+# Copyright (c) 2022 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:
@@ -19,7 +19,7 @@
| ... | RXQ_SIZE_4096 | TXQ_SIZE_4096 | GSO_TRUE
| ... | ethip4-ip4base-2vhost-gso-iperf3
|
-| Suite Setup | Setup suite topology interfaces
+| Suite Setup | Setup suite topology interfaces | iPerf3
| Suite Teardown | Tear down suite
| Test Setup | Setup test
| Test Teardown | Tear down test | iPerf3 | vhost
diff --git a/tests/vpp/perf/gso/2n1l-10ge2p1x710-ethip4-ip4base-2vhost-iperf3-mrr.robot b/tests/vpp/perf/gso/2n1l-10ge2p1x710-ethip4-ip4base-2vhost-iperf3-mrr.robot
index def7e9ce63..9f925fb01a 100644
--- a/tests/vpp/perf/gso/2n1l-10ge2p1x710-ethip4-ip4base-2vhost-iperf3-mrr.robot
+++ b/tests/vpp/perf/gso/2n1l-10ge2p1x710-ethip4-ip4base-2vhost-iperf3-mrr.robot
@@ -1,4 +1,4 @@
-# Copyright (c) 2021 Cisco and/or its affiliates.
+# Copyright (c) 2022 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:
@@ -19,7 +19,7 @@
| ... | RXQ_SIZE_1024 | TXQ_SIZE_1024 | GSO_TRUE
| ... | ethip4-ip4base-2vhost-iperf3
|
-| Suite Setup | Setup suite topology interfaces
+| Suite Setup | Setup suite topology interfaces | iPerf3
| Suite Teardown | Tear down suite
| Test Setup | Setup test
| Test Teardown | Tear down test | iPerf3 | vhost
diff --git a/tests/vpp/perf/hoststack/10ge2p1x710-eth-ip4tcpbase-ldpreload-iperf3-bps.robot b/tests/vpp/perf/hoststack/10ge2p1x710-eth-ip4tcpbase-ldpreload-iperf3-bps.robot
index 49b4671a8a..72952b00a7 100644
--- a/tests/vpp/perf/hoststack/10ge2p1x710-eth-ip4tcpbase-ldpreload-iperf3-bps.robot
+++ b/tests/vpp/perf/hoststack/10ge2p1x710-eth-ip4tcpbase-ldpreload-iperf3-bps.robot
@@ -1,4 +1,4 @@
-# Copyright (c) 2021 Cisco and/or its affiliates.
+# Copyright (c) 2022 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:
@@ -22,7 +22,7 @@
| ... | LDPRELOAD | IPERF3 | 1CLIENT | 1STREAM | 1460B
| ... | eth-ip4tcpbase-ldpreload-iperf3
|
-| Suite Setup | Setup suite topology interfaces with no TG
+| Suite Setup | Setup suite topology interfaces with no TG | iPerf3
| Suite Teardown | Tear down suite | hoststack
| Test Setup | Setup test
| Test Teardown | Tear down test
diff --git a/tests/vpp/perf/hoststack/10ge2p1x710-eth-ip4tcpbase-nsim-ldpreload-iperf3-bps.robot b/tests/vpp/perf/hoststack/10ge2p1x710-eth-ip4tcpbase-nsim-ldpreload-iperf3-bps.robot
index 48bf68c5d2..bca2bcf5d1 100644
--- a/tests/vpp/perf/hoststack/10ge2p1x710-eth-ip4tcpbase-nsim-ldpreload-iperf3-bps.robot
+++ b/tests/vpp/perf/hoststack/10ge2p1x710-eth-ip4tcpbase-nsim-ldpreload-iperf3-bps.robot
@@ -1,4 +1,4 @@
-# Copyright (c) 2021 Cisco and/or its affiliates.
+# Copyright (c) 2022 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:
@@ -22,7 +22,7 @@
| ... | NSIM | LDPRELOAD | IPERF3 | 1CLIENT | 1STREAM | 1460B
| ... | eth-ip4tcpbase-nsim-ldpreload-iperf3
|
-| Suite Setup | Setup suite topology interfaces with no TG
+| Suite Setup | Setup suite topology interfaces with no TG | iPerf3
| Suite Teardown | Tear down suite
| Test Setup | Setup test
| Test Teardown | Tear down test
diff --git a/tests/vpp/perf/hoststack/10ge2p1x710-eth-ip4tcpscale1cl10s-ldpreload-iperf3-bps.robot b/tests/vpp/perf/hoststack/10ge2p1x710-eth-ip4tcpscale1cl10s-ldpreload-iperf3-bps.robot
index 2e7f39d29e..79c6db294b 100644
--- a/tests/vpp/perf/hoststack/10ge2p1x710-eth-ip4tcpscale1cl10s-ldpreload-iperf3-bps.robot
+++ b/tests/vpp/perf/hoststack/10ge2p1x710-eth-ip4tcpscale1cl10s-ldpreload-iperf3-bps.robot
@@ -1,4 +1,4 @@
-# Copyright (c) 2021 Cisco and/or its affiliates.
+# Copyright (c) 2022 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:
@@ -22,7 +22,7 @@
| ... | LDPRELOAD | IPERF3 | 1CLIENT | 10STREAM | 1460B
| ... | eth-ip4tcpscale1cl10s-ldpreload-iperf3
|
-| Suite Setup | Setup suite topology interfaces with no TG
+| Suite Setup | Setup suite topology interfaces with no TG | iPerf3
| Suite Teardown | Tear down suite | hoststack
| Test Setup | Setup test
| Test Teardown | Tear down test
diff --git a/tests/vpp/perf/hoststack/10ge2p1x710-eth-ip4tcpscale1cl10s-nsim-ldpreload-iperf3-bps.robot b/tests/vpp/perf/hoststack/10ge2p1x710-eth-ip4tcpscale1cl10s-nsim-ldpreload-iperf3-bps.robot
index 7c272a120d..b21623606a 100644
--- a/tests/vpp/perf/hoststack/10ge2p1x710-eth-ip4tcpscale1cl10s-nsim-ldpreload-iperf3-bps.robot
+++ b/tests/vpp/perf/hoststack/10ge2p1x710-eth-ip4tcpscale1cl10s-nsim-ldpreload-iperf3-bps.robot
@@ -1,4 +1,4 @@
-# Copyright (c) 2021 Cisco and/or its affiliates.
+# Copyright (c) 2022 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:
@@ -22,7 +22,7 @@
| ... | NSIM | LDPRELOAD | IPERF3 | 1CLIENT | 10STREAM | 1460B
| ... | eth-ip4tcpscale1cl10s-nsim-ldpreload-iperf3
|
-| Suite Setup | Setup suite topology interfaces with no TG
+| Suite Setup | Setup suite topology interfaces with no TG | iPerf3
| Suite Teardown | Tear down suite
| Test Setup | Setup test
| Test Teardown | Tear down test
diff --git a/tests/vpp/perf/hoststack/10ge2p1x710-eth-ip4udpbase-ldpreload-iperf3-bps.robot b/tests/vpp/perf/hoststack/10ge2p1x710-eth-ip4udpbase-ldpreload-iperf3-bps.robot
index a4aa2a06b4..0717e39dc7 100644
--- a/tests/vpp/perf/hoststack/10ge2p1x710-eth-ip4udpbase-ldpreload-iperf3-bps.robot
+++ b/tests/vpp/perf/hoststack/10ge2p1x710-eth-ip4udpbase-ldpreload-iperf3-bps.robot
@@ -1,4 +1,4 @@
-# Copyright (c) 2021 Cisco and/or its affiliates.
+# Copyright (c) 2022 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:
@@ -22,7 +22,7 @@
| ... | LDPRELOAD | IPERF3 | 1CLIENT | 1STREAM | 1460B
| ... | eth-ip4udpbase-ldpreload-iperf3
|
-| Suite Setup | Setup suite topology interfaces with no TG
+| Suite Setup | Setup suite topology interfaces with no TG | iPerf3
| Suite Teardown | Tear down suite | hoststack
| Test Setup | Setup test
| Test Teardown | Tear down test
diff --git a/tests/vpp/perf/hoststack/10ge2p1x710-eth-ip4udpquicbase-vppecho-bps.robot b/tests/vpp/perf/hoststack/10ge2p1x710-eth-ip4udpquicbase-vppecho-bps.robot
index 199e652d91..6077a7abf4 100644
--- a/tests/vpp/perf/hoststack/10ge2p1x710-eth-ip4udpquicbase-vppecho-bps.robot
+++ b/tests/vpp/perf/hoststack/10ge2p1x710-eth-ip4udpquicbase-vppecho-bps.robot
@@ -1,4 +1,4 @@
-# Copyright (c) 2021 Cisco and/or its affiliates.
+# Copyright (c) 2022 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:
@@ -21,7 +21,7 @@
| ... | RXQ_SIZE_0 | TXQ_SIZE_0 | UDP | QUIC | VPPECHO
| ... | 1CLIENT | 1STREAM | HOSTSTACK | 1280B | eth-ip4udpquicbase-vppecho
|
-| Suite Setup | Setup suite topology interfaces with no TG
+| Suite Setup | Setup suite topology interfaces with no TG | vppecho
| Suite Teardown | Tear down suite
| Test Setup | Setup test
| Test Teardown | Tear down test
diff --git a/tests/vpp/perf/hoststack/10ge2p1x710-eth-ip4udpquicscale10cl10s-vppecho-bps.robot b/tests/vpp/perf/hoststack/10ge2p1x710-eth-ip4udpquicscale10cl10s-vppecho-bps.robot
index 9bb0975080..a853579acd 100644
--- a/tests/vpp/perf/hoststack/10ge2p1x710-eth-ip4udpquicscale10cl10s-vppecho-bps.robot
+++ b/tests/vpp/perf/hoststack/10ge2p1x710-eth-ip4udpquicscale10cl10s-vppecho-bps.robot
@@ -1,4 +1,4 @@
-# Copyright (c) 2021 Cisco and/or its affiliates.
+# Copyright (c) 2022 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:
@@ -22,7 +22,7 @@
| ... | HOSTSTACK | 10CLIENT | 10STREAM | 1280B
| ... | eth-ip4udpquicscale10cl10s-vppecho
|
-| Suite Setup | Setup suite topology interfaces with no TG
+| Suite Setup | Setup suite topology interfaces with no TG | vppecho
| Suite Teardown | Tear down suite
| Test Setup | Setup test
| Test Teardown | Tear down test
diff --git a/tests/vpp/perf/hoststack/10ge2p1x710-eth-ip4udpquicscale10cl1s-vppecho-bps.robot b/tests/vpp/perf/hoststack/10ge2p1x710-eth-ip4udpquicscale10cl1s-vppecho-bps.robot
index cc34797eac..c1deff32ea 100644
--- a/tests/vpp/perf/hoststack/10ge2p1x710-eth-ip4udpquicscale10cl1s-vppecho-bps.robot
+++ b/tests/vpp/perf/hoststack/10ge2p1x710-eth-ip4udpquicscale10cl1s-vppecho-bps.robot
@@ -1,4 +1,4 @@
-# Copyright (c) 2021 Cisco and/or its affiliates.
+# Copyright (c) 2022 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:
@@ -22,7 +22,7 @@
| ... | HOSTSTACK | 10CLIENT | 1STREAM | 1280B
| ... | eth-ip4udpquicscale10cl1s-vppecho
|
-| Suite Setup | Setup suite topology interfaces with no TG
+| Suite Setup | Setup suite topology interfaces with no TG | vppecho
| Suite Teardown | Tear down suite
| Test Setup | Setup test
| Test Teardown | Tear down test
diff --git a/tests/vpp/perf/hoststack/10ge2p1x710-eth-ip4udpquicscale1cl10s-vppecho-bps.robot b/tests/vpp/perf/hoststack/10ge2p1x710-eth-ip4udpquicscale1cl10s-vppecho-bps.robot
index 52f399c8e4..28549bb709 100644
--- a/tests/vpp/perf/hoststack/10ge2p1x710-eth-ip4udpquicscale1cl10s-vppecho-bps.robot
+++ b/tests/vpp/perf/hoststack/10ge2p1x710-eth-ip4udpquicscale1cl10s-vppecho-bps.robot
@@ -1,4 +1,4 @@
-# Copyright (c) 2021 Cisco and/or its affiliates.
+# Copyright (c) 2022 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:
@@ -22,7 +22,7 @@
| ... | HOSTSTACK | 1CLIENT | 10STREAM | 1280B
| ... | eth-ip4udpquicscale1cl10s-vppecho
|
-| Suite Setup | Setup suite topology interfaces with no TG
+| Suite Setup | Setup suite topology interfaces with no TG | vppecho
| Suite Teardown | Tear down suite
| Test Setup | Setup test
| Test Teardown | Tear down test
diff --git a/tests/vpp/perf/hoststack/10ge2p1x710-eth-ip4udpscale1cl10s-ldpreload-iperf3-bps.robot b/tests/vpp/perf/hoststack/10ge2p1x710-eth-ip4udpscale1cl10s-ldpreload-iperf3-bps.robot
index d452f88972..42fd601bb6 100644
--- a/tests/vpp/perf/hoststack/10ge2p1x710-eth-ip4udpscale1cl10s-ldpreload-iperf3-bps.robot
+++ b/tests/vpp/perf/hoststack/10ge2p1x710-eth-ip4udpscale1cl10s-ldpreload-iperf3-bps.robot
@@ -1,4 +1,4 @@
-# Copyright (c) 2021 Cisco and/or its affiliates.
+# Copyright (c) 2022 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:
@@ -22,7 +22,7 @@
| ... | LDPRELOAD | IPERF3 | 1CLIENT | 10STREAM | 1460B
| ... | eth-ip4udpscale1cl10s-ldpreload-iperf3
|
-| Suite Setup | Setup suite topology interfaces with no TG
+| Suite Setup | Setup suite topology interfaces with no TG | iPerf3
| Suite Teardown | Tear down suite | hoststack
| Test Setup | Setup test
| Test Teardown | Tear down test