aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorGwenael Lambrouin <gwenael.lambrouin@orange.com>2022-06-03 17:54:16 +0200
committerGwenael Lambrouin <gwenael.lambrouin@orange.com>2022-10-27 15:52:22 +0200
commit87d88eab6fe50101abc607857f13af9273aef80a (patch)
tree3cbe2963b8998b949b95ce8bea7a76378732dccf
parente2faa91512043386aa3a11ca44792bd3c009db76 (diff)
behave_tests: refactor TestAPI DB lookup
- use testapi.TestapiClient everywhere - relax search constraints: match only project name (nfvbench), test case name (characterization or non-regression), scenario tag (throughput or latency) and user_label (test chain identifier: identifies, among other things, the platform, the compute class under test, ...) - add unit tests for some of the related behave steps Change-Id: I26763f845c2286601cb958b326525b29320a1627 Signed-off-by: Gwenael Lambrouin <gwenael.lambrouin@orange.com>
-rw-r--r--behave_tests/features/steps/steps.py106
-rw-r--r--behave_tests/features/steps/testapi.py8
-rw-r--r--test/ut_behave_tests/test_data/project=nfvbench&case=non-regression&criteria=PASS&page=1.json8124
-rw-r--r--test/ut_behave_tests/test_steps.py151
-rw-r--r--test/ut_behave_tests/test_testapi.py21
5 files changed, 8353 insertions, 57 deletions
diff --git a/behave_tests/features/steps/steps.py b/behave_tests/features/steps/steps.py
index 512a4e5..c347871 100644
--- a/behave_tests/features/steps/steps.py
+++ b/behave_tests/features/steps/steps.py
@@ -29,7 +29,7 @@ from typing import Optional
from nfvbench.summarizer import Formatter
from nfvbench.traffic_gen.traffic_utils import parse_rate_str
-from testapi import TestapiClient, nfvbench_input_to_str
+from behave_tests.features.steps.testapi import TestapiClient, nfvbench_input_to_str
STATUS_ERROR = "ERROR"
@@ -176,8 +176,7 @@ def add_packet_rate(context, percentage: str):
"case_name": "characterization"}
nfvbench_test_conditions = deepcopy(context.json)
nfvbench_test_conditions['rate'] = 'ndr'
- testapi_client = TestapiClient(testapi_url=context.data['TEST_DB_URL'],
- logger=context.logger)
+ testapi_client = TestapiClient(testapi_url=context.data['TEST_DB_URL'])
last_result = testapi_client.find_last_result(testapi_params,
scenario_tag="throughput",
nfvbench_test_input=nfvbench_test_conditions)
@@ -185,6 +184,7 @@ def add_packet_rate(context, percentage: str):
error_msg = "No characterization result found for scenario_tag=throughput"
error_msg += " and nfvbench test conditions "
error_msg += nfvbench_input_to_str(nfvbench_test_conditions)
+ context.logger.error(error_msg)
raise AssertionError(error_msg)
# From the results report, extract the max throughput in packets per second
@@ -551,34 +551,6 @@ def latency_comparison(context, old_latency=None, threshold=None, reference_valu
max_reference_value=Formatter.standard(reference_values[1])))
-def get_result_from_input_values(input, result):
- """Check test conditions in scenario results input.
-
- Check whether the input parameters of a behave scenario results record from
- testapi match the input parameters of the latest test. In other words,
- check that the test results from testapi come from a test done under the
- same conditions (frame size, flow count, rate, ...)
-
- Args:
- input: input dict of a results dict of a behave scenario from testapi
-
- result: dict of nfvbench params used during the last test
-
- Returns:
- True if test conditions match, else False.
-
- """
- # Select required keys (other keys can be not set or unconsistent between scenarios)
- required_keys = ['duration_sec', 'frame_sizes', 'flow_count', 'rate']
- if 'user_label' in result:
- required_keys.append('user_label')
- if 'flavor_type' in result:
- required_keys.append('flavor_type')
- subset_input = dict((k, input[k]) for k in required_keys if k in input)
- subset_result = dict((k, result[k]) for k in required_keys if k in result)
- return subset_input == subset_result
-
-
def extract_value(obj, key):
"""Pull all values of specified key from nested JSON."""
arr = []
@@ -600,28 +572,58 @@ def extract_value(obj, key):
return results[0]
-def get_last_result(context, reference=None, page=None):
+def get_last_result(context, reference: bool = False):
+ """Look for a previous result in TestAPI database.
+
+ Search TestAPI results from newest to oldest and return the first result
+ record matching the context constraints. Log an overview of the results
+ found (max rate pps, avg delay usec, test conditions, date of measurement).
+
+ The result record test case must match the current test case
+ ('characterization' or 'non-regression') unless `reference` is set to True.
+
+ The result record scenario tag must match the current scenario tag
+ ('throughput' or 'latency').
+
+ Args:
+ context: behave context including project name, test case name, traffic
+ configuration (frame size, flow count, test duration), type of the
+ compute node under test (via loop VM flavor_type) and platform (via
+ user_label).
+
+ reference: when True, look for results with the 'characterization' test
+ case name instead of the current test case name.
+
+ Returns:
+ a JSON dictionary with the results, ie a dict with the keys "input",
+ "output" and "synthesis" when the scenario tag is 'throughput' or
+ 'latency'
+ """
if reference:
case_name = 'characterization'
else:
case_name = context.CASE_NAME
- url = context.data['TEST_DB_URL'] + '?project={project_name}&case={case_name}'.format(
- project_name=context.data['PROJECT_NAME'], case_name=case_name)
- if context.data['INSTALLER_TYPE']:
- url += '&installer={installer_name}'.format(installer_name=context.data['INSTALLER_TYPE'])
- if context.data['NODE_NAME']:
- url += '&pod={pod_name}'.format(pod_name=context.data['NODE_NAME'])
- url += '&criteria=PASS'
- if page:
- url += '&page={page}'.format(page=page)
- last_results = requests.get(url)
- assert last_results.status_code == 200
- last_results = json.loads(last_results.text)
- for result in last_results["results"]:
- for tagged_result in result["details"]["results"][context.tag]:
- if get_result_from_input_values(tagged_result["input"], context.json):
- return tagged_result
- if last_results["pagination"]["current_page"] < last_results["pagination"]["total_pages"]:
- page = last_results["pagination"]["current_page"] + 1
- return get_last_result(context, reference, page)
- return None
+ testapi_params = {"project_name": context.data['PROJECT_NAME'],
+ "case_name": case_name}
+ testapi_client = TestapiClient(testapi_url=context.data['TEST_DB_URL'])
+ last_result = testapi_client.find_last_result(testapi_params,
+ scenario_tag=context.tag,
+ nfvbench_test_input=context.json)
+ if last_result is None:
+ error_msg = "get_last_result: No result found in TestAPI database:"
+ error_msg += f" case_name={case_name} scenario_tag={context.tag} "
+ error_msg += nfvbench_input_to_str(context.json)
+ context.logger.error(error_msg)
+ raise AssertionError(error_msg)
+
+ # Log an overview of the last result (latency and max throughput)
+ measurement_date = last_result["output"]["result"]["date"]
+ total_tx_rate = extract_value(last_result["output"], "total_tx_rate")
+ avg_delay_usec = extract_value(extract_value(last_result["output"], "overall"),
+ "avg_delay_usec")
+ context.logger.info(f"get_last_result: case_name={case_name} scenario_tag={context.tag}"
+ f' measurement_date="{measurement_date}"'
+ f" total_tx_rate(pps)={total_tx_rate:,}"
+ f" avg_latency_usec={round(avg_delay_usec)}")
+
+ return last_result
diff --git a/behave_tests/features/steps/testapi.py b/behave_tests/features/steps/testapi.py
index 15ef8b1..f211ee5 100644
--- a/behave_tests/features/steps/testapi.py
+++ b/behave_tests/features/steps/testapi.py
@@ -48,7 +48,7 @@ class TestapiClient:
to filter the testapi results. The following keys are currently
supported:
- mandatory keys: 'duration_sec', 'frame_sizes', 'flow_count', 'rate'
- - optional keys: 'user_label', 'flavor_type'
+ - optional keys: 'user_label'
Returns:
None if no result matching the filters can be found, else a dictionary
@@ -159,7 +159,7 @@ def equal_test_conditions(testapi_input, nfvbench_input):
The following dict keys are currently supported:
- mandatory keys: 'duration_sec', 'frame_sizes', 'flow_count', 'rate'
- - optional keys: 'user_label', 'flavor_type'
+ - optional keys: 'user_label'
Optional keys are taken into account only when they can be found in
`nfvbench_input`, else they are ignored.
@@ -172,8 +172,6 @@ def equal_test_conditions(testapi_input, nfvbench_input):
required_keys = ['duration_sec', 'frame_sizes', 'flow_count', 'rate']
if 'user_label' in nfvbench_input:
required_keys.append('user_label')
- if 'flavor_type' in nfvbench_input:
- required_keys.append('flavor_type')
try:
testapi_subset = {k: testapi_input[k] for k in required_keys}
@@ -191,7 +189,7 @@ def nfvbench_input_to_str(nfvbench_input: dict) -> str:
nfvbench_input: dict of nfvbench test parameters
"""
string = ""
- for key in ['user_label', 'flavor_type', 'frame_sizes', 'flow_count', 'rate', 'duration_sec']:
+ for key in ['user_label', 'frame_sizes', 'flow_count', 'rate', 'duration_sec']:
if key in nfvbench_input:
string += f"{key}={nfvbench_input[key]} "
return string
diff --git a/test/ut_behave_tests/test_data/project=nfvbench&case=non-regression&criteria=PASS&page=1.json b/test/ut_behave_tests/test_data/project=nfvbench&case=non-regression&criteria=PASS&page=1.json
new file mode 100644
index 0000000..6af5404
--- /dev/null
+++ b/test/ut_behave_tests/test_data/project=nfvbench&case=non-regression&criteria=PASS&page=1.json
@@ -0,0 +1,8124 @@
+{
+ "pagination": {
+ "current_page": 1,
+ "total_pages": 1
+ },
+ "results": [
+ {
+ "project_name": "nfvbench",
+ "scenario": "basic",
+ "stop_date": "2022-03-30 06:48:26",
+ "case_name": "non-regression",
+ "build_tag": "RPDOUC5V2ARA",
+ "version": "unknown",
+ "pod_name": "AMICAL",
+ "criteria": "PASS",
+ "installer": "unknown",
+ "_id": "6243fd3bc0d88e001ca15689",
+ "start_date": "2022-03-30 06:15:40",
+ "details": {
+ "tests": [
+ {
+ "status": "passed",
+ "elements": [
+ {
+ "status": "passed",
+ "name": "Run a NDR test for a defined frame size -- @1.1 Frame sizes",
+ "keyword": "Scenario Outline",
+ "tags": [
+ "throughput"
+ ],
+ "steps": [
+ {
+ "name": "10 sec run duration",
+ "keyword": "Given",
+ "step_type": "given",
+ "location": "../../opt/nfvbench/behave_tests/features/non-regression.feature:6",
+ "match": {
+ "arguments": [
+ {
+ "name": "duration",
+ "value": "10"
+ }
+ ],
+ "location": "../../opt/nfvbench/behave_tests/features/steps/steps.py:124"
+ },
+ "result": {
+ "duration": 0.00010585784912109375,
+ "status": "passed"
+ }
+ },
+ {
+ "name": "64 frame size",
+ "keyword": "And",
+ "step_type": "given",
+ "location": "../../opt/nfvbench/behave_tests/features/non-regression.feature:7",
+ "match": {
+ "arguments": [
+ {
+ "name": "frame_size",
+ "value": "64"
+ }
+ ],
+ "location": "../../opt/nfvbench/behave_tests/features/steps/steps.py:109"
+ },
+ "result": {
+ "duration": 9.799003601074219e-05,
+ "status": "passed"
+ }
+ },
+ {
+ "name": "100k flow count",
+ "keyword": "And",
+ "step_type": "given",
+ "location": "../../opt/nfvbench/behave_tests/features/non-regression.feature:8",
+ "match": {
+ "arguments": [
+ {
+ "name": "flow_count",
+ "value": "100k"
+ }
+ ],
+ "location": "../../opt/nfvbench/behave_tests/features/steps/steps.py:114"
+ },
+ "result": {
+ "duration": 0.00010967254638671875,
+ "status": "passed"
+ }
+ },
+ {
+ "name": "ndr rate",
+ "keyword": "And",
+ "step_type": "given",
+ "location": "../../opt/nfvbench/behave_tests/features/non-regression.feature:9",
+ "match": {
+ "arguments": [
+ {
+ "name": "rate",
+ "value": "ndr"
+ }
+ ],
+ "location": "../../opt/nfvbench/behave_tests/features/steps/steps.py:119"
+ },
+ "result": {
+ "duration": 9.608268737792969e-05,
+ "status": "passed"
+ }
+ },
+ {
+ "name": "NFVbench API is ready",
+ "keyword": "When",
+ "step_type": "when",
+ "location": "../../opt/nfvbench/behave_tests/features/non-regression.feature:10",
+ "match": {
+ "arguments": [],
+ "location": "../../opt/nfvbench/behave_tests/features/steps/steps.py:210"
+ },
+ "result": {
+ "duration": 10.035421133041382,
+ "status": "passed"
+ }
+ },
+ {
+ "name": "3 runs are started and waiting for maximum result",
+ "keyword": "Then",
+ "step_type": "then",
+ "location": "../../opt/nfvbench/behave_tests/features/non-regression.feature:11",
+ "match": {
+ "arguments": [
+ {
+ "name": "repeat",
+ "value": 3,
+ "original": "3"
+ }
+ ],
+ "location": "../../opt/nfvbench/behave_tests/features/steps/steps.py:264"
+ },
+ "result": {
+ "duration": 449.58826899528503,
+ "status": "passed"
+ }
+ },
+ {
+ "name": "push result to database",
+ "keyword": "And",
+ "step_type": "then",
+ "location": "../../opt/nfvbench/behave_tests/features/non-regression.feature:12",
+ "match": {
+ "arguments": [],
+ "location": "../../opt/nfvbench/behave_tests/features/steps/steps.py:426"
+ },
+ "result": {
+ "duration": 0.00013637542724609375,
+ "status": "passed"
+ }
+ },
+ {
+ "name": "extract offered rate result",
+ "keyword": "And",
+ "step_type": "then",
+ "location": "../../opt/nfvbench/behave_tests/features/non-regression.feature:13",
+ "match": {
+ "arguments": [],
+ "location": "../../opt/nfvbench/behave_tests/features/steps/steps.py:327"
+ },
+ "result": {
+ "duration": 0.0003008842468261719,
+ "status": "passed"
+ }
+ },
+ {
+ "name": "verify throughput result is in same range as the previous result",
+ "keyword": "And",
+ "step_type": "then",
+ "location": "../../opt/nfvbench/behave_tests/features/non-regression.feature:14",
+ "match": {
+ "arguments": [],
+ "location": "../../opt/nfvbench/behave_tests/features/steps/steps.py:333"
+ },
+ "result": {
+ "duration": 0.02466893196105957,
+ "status": "passed"
+ }
+ },
+ {
+ "name": "verify throughput result is in same range as the characterization result",
+ "keyword": "And",
+ "step_type": "then",
+ "location": "../../opt/nfvbench/behave_tests/features/non-regression.feature:15",
+ "match": {
+ "arguments": [],
+ "location": "../../opt/nfvbench/behave_tests/features/steps/steps.py:409"
+ },
+ "result": {
+ "duration": 0.6800198554992676,
+ "status": "passed"
+ }
+ }
+ ],
+ "location": "../../opt/nfvbench/behave_tests/features/non-regression.feature:19",
+ "type": "scenario"
+ },
+ {
+ "status": "passed",
+ "name": "Run a NDR test for a defined frame size -- @1.2 Frame sizes",
+ "keyword": "Scenario Outline",
+ "tags": [
+ "throughput"
+ ],
+ "steps": [
+ {
+ "name": "10 sec run duration",
+ "keyword": "Given",
+ "step_type": "given",
+ "location": "../../opt/nfvbench/behave_tests/features/non-regression.feature:6",
+ "match": {
+ "arguments": [
+ {
+ "name": "duration",
+ "value": "10"
+ }
+ ],
+ "location": "../../opt/nfvbench/behave_tests/features/steps/steps.py:124"
+ },
+ "result": {
+ "duration": 0.00011587142944335938,
+ "status": "passed"
+ }
+ },
+ {
+ "name": "768 frame size",
+ "keyword": "And",
+ "step_type": "given",
+ "location": "../../opt/nfvbench/behave_tests/features/non-regression.feature:7",
+ "match": {
+ "arguments": [
+ {
+ "name": "frame_size",
+ "value": "768"
+ }
+ ],
+ "location": "../../opt/nfvbench/behave_tests/features/steps/steps.py:109"
+ },
+ "result": {
+ "duration": 0.00011491775512695312,
+ "status": "passed"
+ }
+ },
+ {
+ "name": "100k flow count",
+ "keyword": "And",
+ "step_type": "given",
+ "location": "../../opt/nfvbench/behave_tests/features/non-regression.feature:8",
+ "match": {
+ "arguments": [
+ {
+ "name": "flow_count",
+ "value": "100k"
+ }
+ ],
+ "location": "../../opt/nfvbench/behave_tests/features/steps/steps.py:114"
+ },
+ "result": {
+ "duration": 9.5367431640625e-05,
+ "status": "passed"
+ }
+ },
+ {
+ "name": "ndr rate",
+ "keyword": "And",
+ "step_type": "given",
+ "location": "../../opt/nfvbench/behave_tests/features/non-regression.feature:9",
+ "match": {
+ "arguments": [
+ {
+ "name": "rate",
+ "value": "ndr"
+ }
+ ],
+ "location": "../../opt/nfvbench/behave_tests/features/steps/steps.py:119"
+ },
+ "result": {
+ "duration": 9.322166442871094e-05,
+ "status": "passed"
+ }
+ },
+ {
+ "name": "NFVbench API is ready",
+ "keyword": "When",
+ "step_type": "when",
+ "location": "../../opt/nfvbench/behave_tests/features/non-regression.feature:10",
+ "match": {
+ "arguments": [],
+ "location": "../../opt/nfvbench/behave_tests/features/steps/steps.py:210"
+ },
+ "result": {
+ "duration": 0.008649349212646484,
+ "status": "passed"
+ }
+ },
+ {
+ "name": "3 runs are started and waiting for maximum result",
+ "keyword": "Then",
+ "step_type": "then",
+ "location": "../../opt/nfvbench/behave_tests/features/non-regression.feature:11",
+ "match": {
+ "arguments": [
+ {
+ "name": "repeat",
+ "value": 3,
+ "original": "3"
+ }
+ ],
+ "location": "../../opt/nfvbench/behave_tests/features/steps/steps.py:264"
+ },
+ "result": {
+ "duration": 439.46048855781555,
+ "status": "passed"
+ }
+ },
+ {
+ "name": "push result to database",
+ "keyword": "And",
+ "step_type": "then",
+ "location": "../../opt/nfvbench/behave_tests/features/non-regression.feature:12",
+ "match": {
+ "arguments": [],
+ "location": "../../opt/nfvbench/behave_tests/features/steps/steps.py:426"
+ },
+ "result": {
+ "duration": 0.00012159347534179688,
+ "status": "passed"
+ }
+ },
+ {
+ "name": "extract offered rate result",
+ "keyword": "And",
+ "step_type": "then",
+ "location": "../../opt/nfvbench/behave_tests/features/non-regression.feature:13",
+ "match": {
+ "arguments": [],
+ "location": "../../opt/nfvbench/behave_tests/features/steps/steps.py:327"
+ },
+ "result": {
+ "duration": 0.0003330707550048828,
+ "status": "passed"
+ }
+ },
+ {
+ "name": "verify throughput result is in same range as the previous result",
+ "keyword": "And",
+ "step_type": "then",
+ "location": "../../opt/nfvbench/behave_tests/features/non-regression.feature:14",
+ "match": {
+ "arguments": [],
+ "location": "../../opt/nfvbench/behave_tests/features/steps/steps.py:333"
+ },
+ "result": {
+ "duration": 0.023331880569458008,
+ "status": "passed"
+ }
+ },
+ {
+ "name": "verify throughput result is in same range as the characterization result",
+ "keyword": "And",
+ "step_type": "then",
+ "location": "../../opt/nfvbench/behave_tests/features/non-regression.feature:15",
+ "match": {
+ "arguments": [],
+ "location": "../../opt/nfvbench/behave_tests/features/steps/steps.py:409"
+ },
+ "result": {
+ "duration": 0.690040111541748,
+ "status": "passed"
+ }
+ }
+ ],
+ "location": "../../opt/nfvbench/behave_tests/features/non-regression.feature:20",
+ "type": "scenario"
+ },
+ {
+ "status": "passed",
+ "name": "Run a NDR test for a defined frame size -- @1.3 Frame sizes",
+ "keyword": "Scenario Outline",
+ "tags": [
+ "throughput"
+ ],
+ "steps": [
+ {
+ "name": "10 sec run duration",
+ "keyword": "Given",
+ "step_type": "given",
+ "location": "../../opt/nfvbench/behave_tests/features/non-regression.feature:6",
+ "match": {
+ "arguments": [
+ {
+ "name": "duration",
+ "value": "10"
+ }
+ ],
+ "location": "../../opt/nfvbench/behave_tests/features/steps/steps.py:124"
+ },
+ "result": {
+ "duration": 0.00010156631469726562,
+ "status": "passed"
+ }
+ },
+ {
+ "name": "1518 frame size",
+ "keyword": "And",
+ "step_type": "given",
+ "location": "../../opt/nfvbench/behave_tests/features/non-regression.feature:7",
+ "match": {
+ "arguments": [
+ {
+ "name": "frame_size",
+ "value": "1518"
+ }
+ ],
+ "location": "../../opt/nfvbench/behave_tests/features/steps/steps.py:109"
+ },
+ "result": {
+ "duration": 9.584426879882812e-05,
+ "status": "passed"
+ }
+ },
+ {
+ "name": "100k flow count",
+ "keyword": "And",
+ "step_type": "given",
+ "location": "../../opt/nfvbench/behave_tests/features/non-regression.feature:8",
+ "match": {
+ "arguments": [
+ {
+ "name": "flow_count",
+ "value": "100k"
+ }
+ ],
+ "location": "../../opt/nfvbench/behave_tests/features/steps/steps.py:114"
+ },
+ "result": {
+ "duration": 9.489059448242188e-05,
+ "status": "passed"
+ }
+ },
+ {
+ "name": "ndr rate",
+ "keyword": "And",
+ "step_type": "given",
+ "location": "../../opt/nfvbench/behave_tests/features/non-regression.feature:9",
+ "match": {
+ "arguments": [
+ {
+ "name": "rate",
+ "value": "ndr"
+ }
+ ],
+ "location": "../../opt/nfvbench/behave_tests/features/steps/steps.py:119"
+ },
+ "result": {
+ "duration": 9.632110595703125e-05,
+ "status": "passed"
+ }
+ },
+ {
+ "name": "NFVbench API is ready",
+ "keyword": "When",
+ "step_type": "when",
+ "location": "../../opt/nfvbench/behave_tests/features/non-regression.feature:10",
+ "match": {
+ "arguments": [],
+ "location": "../../opt/nfvbench/behave_tests/features/steps/steps.py:210"
+ },
+ "result": {
+ "duration": 0.008922100067138672,
+ "status": "passed"
+ }
+ },
+ {
+ "name": "3 runs are started and waiting for maximum result",
+ "keyword": "Then",
+ "step_type": "then",
+ "location": "../../opt/nfvbench/behave_tests/features/non-regression.feature:11",
+ "match": {
+ "arguments": [
+ {
+ "name": "repeat",
+ "value": 3,
+ "original": "3"
+ }
+ ],
+ "location": "../../opt/nfvbench/behave_tests/features/steps/steps.py:264"
+ },
+ "result": {
+ "duration": 441.5395607948303,
+ "status": "passed"
+ }
+ },
+ {
+ "name": "push result to database",
+ "keyword": "And",
+ "step_type": "then",
+ "location": "../../opt/nfvbench/behave_tests/features/non-regression.feature:12",
+ "match": {
+ "arguments": [],
+ "location": "../../opt/nfvbench/behave_tests/features/steps/steps.py:426"
+ },
+ "result": {
+ "duration": 0.00012230873107910156,
+ "status": "passed"
+ }
+ },
+ {
+ "name": "extract offered rate result",
+ "keyword": "And",
+ "step_type": "then",
+ "location": "../../opt/nfvbench/behave_tests/features/non-regression.feature:13",
+ "match": {
+ "arguments": [],
+ "location": "../../opt/nfvbench/behave_tests/features/steps/steps.py:327"
+ },
+ "result": {
+ "duration": 0.00034332275390625,
+ "status": "passed"
+ }
+ },
+ {
+ "name": "verify throughput result is in same range as the previous result",
+ "keyword": "And",
+ "step_type": "then",
+ "location": "../../opt/nfvbench/behave_tests/features/non-regression.feature:14",
+ "match": {
+ "arguments": [],
+ "location": "../../opt/nfvbench/behave_tests/features/steps/steps.py:333"
+ },
+ "result": {
+ "duration": 0.022931814193725586,
+ "status": "passed"
+ }
+ },
+ {
+ "name": "verify throughput result is in same range as the characterization result",
+ "keyword": "And",
+ "step_type": "then",
+ "location": "../../opt/nfvbench/behave_tests/features/non-regression.feature:15",
+ "match": {
+ "arguments": [],
+ "location": "../../opt/nfvbench/behave_tests/features/steps/steps.py:409"
+ },
+ "result": {
+ "duration": 0.5106196403503418,
+ "status": "passed"
+ }
+ }
+ ],
+ "location": "../../opt/nfvbench/behave_tests/features/non-regression.feature:21",
+ "type": "scenario"
+ },
+ {
+ "status": "passed",
+ "name": "Run a NDR test for a defined frame size -- @1.4 Frame sizes",
+ "keyword": "Scenario Outline",
+ "tags": [
+ "throughput"
+ ],
+ "steps": [
+ {
+ "name": "10 sec run duration",
+ "keyword": "Given",
+ "step_type": "given",
+ "location": "../../opt/nfvbench/behave_tests/features/non-regression.feature:6",
+ "match": {
+ "arguments": [
+ {
+ "name": "duration",
+ "value": "10"
+ }
+ ],
+ "location": "../../opt/nfvbench/behave_tests/features/steps/steps.py:124"
+ },
+ "result": {
+ "duration": 0.00010037422180175781,
+ "status": "passed"
+ }
+ },
+ {
+ "name": "9000 frame size",
+ "keyword": "And",
+ "step_type": "given",
+ "location": "../../opt/nfvbench/behave_tests/features/non-regression.feature:7",
+ "match": {
+ "arguments": [
+ {
+ "name": "frame_size",
+ "value": "9000"
+ }
+ ],
+ "location": "../../opt/nfvbench/behave_tests/features/steps/steps.py:109"
+ },
+ "result": {
+ "duration": 9.560585021972656e-05,
+ "status": "passed"
+ }
+ },
+ {
+ "name": "100k flow count",
+ "keyword": "And",
+ "step_type": "given",
+ "location": "../../opt/nfvbench/behave_tests/features/non-regression.feature:8",
+ "match": {
+ "arguments": [
+ {
+ "name": "flow_count",
+ "value": "100k"
+ }
+ ],
+ "location": "../../opt/nfvbench/behave_tests/features/steps/steps.py:114"
+ },
+ "result": {
+ "duration": 9.465217590332031e-05,
+ "status": "passed"
+ }
+ },
+ {
+ "name": "ndr rate",
+ "keyword": "And",
+ "step_type": "given",
+ "location": "../../opt/nfvbench/behave_tests/features/non-regression.feature:9",
+ "match": {
+ "arguments": [
+ {
+ "name": "rate",
+ "value": "ndr"
+ }
+ ],
+ "location": "../../opt/nfvbench/behave_tests/features/steps/steps.py:119"
+ },
+ "result": {
+ "duration": 0.000102996826171875,
+ "status": "passed"
+ }
+ },
+ {
+ "name": "NFVbench API is ready",
+ "keyword": "When",
+ "step_type": "when",
+ "location": "../../opt/nfvbench/behave_tests/features/non-regression.feature:10",
+ "match": {
+ "arguments": [],
+ "location": "../../opt/nfvbench/behave_tests/features/steps/steps.py:210"
+ },
+ "result": {
+ "duration": 0.00852203369140625,
+ "status": "passed"
+ }
+ },
+ {
+ "name": "3 runs are started and waiting for maximum result",
+ "keyword": "Then",
+ "step_type": "then",
+ "location": "../../opt/nfvbench/behave_tests/features/non-regression.feature:11",
+ "match": {
+ "arguments": [
+ {
+ "name": "repeat",
+ "value": 3,
+ "original": "3"
+ }
+ ],
+ "location": "../../opt/nfvbench/behave_tests/features/steps/steps.py:264"
+ },
+ "result": {
+ "duration": 439.5287985801697,
+ "status": "passed"
+ }
+ },
+ {
+ "name": "push result to database",
+ "keyword": "And",
+ "step_type": "then",
+ "location": "../../opt/nfvbench/behave_tests/features/non-regression.feature:12",
+ "match": {
+ "arguments": [],
+ "location": "../../opt/nfvbench/behave_tests/features/steps/steps.py:426"
+ },
+ "result": {
+ "duration": 0.00012087821960449219,
+ "status": "passed"
+ }
+ },
+ {
+ "name": "extract offered rate result",
+ "keyword": "And",
+ "step_type": "then",
+ "location": "../../opt/nfvbench/behave_tests/features/non-regression.feature:13",
+ "match": {
+ "arguments": [],
+ "location": "../../opt/nfvbench/behave_tests/features/steps/steps.py:327"
+ },
+ "result": {
+ "duration": 0.000316619873046875,
+ "status": "passed"
+ }
+ },
+ {
+ "name": "verify throughput result is in same range as the previous result",
+ "keyword": "And",
+ "step_type": "then",
+ "location": "../../opt/nfvbench/behave_tests/features/non-regression.feature:14",
+ "match": {
+ "arguments": [],
+ "location": "../../opt/nfvbench/behave_tests/features/steps/steps.py:333"
+ },
+ "result": {
+ "duration": 0.02317047119140625,
+ "status": "passed"
+ }
+ },
+ {
+ "name": "verify throughput result is in same range as the characterization result",
+ "keyword": "And",
+ "step_type": "then",
+ "location": "../../opt/nfvbench/behave_tests/features/non-regression.feature:15",
+ "match": {
+ "arguments": [],
+ "location": "../../opt/nfvbench/behave_tests/features/steps/steps.py:409"
+ },
+ "result": {
+ "duration": 0.6906359195709229,
+ "status": "passed"
+ }
+ }
+ ],
+ "location": "../../opt/nfvbench/behave_tests/features/non-regression.feature:22",
+ "type": "scenario"
+ },
+ {
+ "status": "passed",
+ "name": "Run a latency test for a defined frame size and throughput percentage -- @1.1 Frame sizes and throughput percentages",
+ "keyword": "Scenario Outline",
+ "tags": [
+ "latency"
+ ],
+ "steps": [
+ {
+ "name": "10 sec run duration",
+ "keyword": "Given",
+ "step_type": "given",
+ "location": "../../opt/nfvbench/behave_tests/features/non-regression.feature:27",
+ "match": {
+ "arguments": [
+ {
+ "name": "duration",
+ "value": "10"
+ }
+ ],
+ "location": "../../opt/nfvbench/behave_tests/features/steps/steps.py:124"
+ },
+ "result": {
+ "duration": 0.0001735687255859375,
+ "status": "passed"
+ }
+ },
+ {
+ "name": "64 frame size",
+ "keyword": "And",
+ "step_type": "given",
+ "location": "../../opt/nfvbench/behave_tests/features/non-regression.feature:28",
+ "match": {
+ "arguments": [
+ {
+ "name": "frame_size",
+ "value": "64"
+ }
+ ],
+ "location": "../../opt/nfvbench/behave_tests/features/steps/steps.py:109"
+ },
+ "result": {
+ "duration": 9.799003601074219e-05,
+ "status": "passed"
+ }
+ },
+ {
+ "name": "100k flow count",
+ "keyword": "And",
+ "step_type": "given",
+ "location": "../../opt/nfvbench/behave_tests/features/non-regression.feature:29",
+ "match": {
+ "arguments": [
+ {
+ "name": "flow_count",
+ "value": "100k"
+ }
+ ],
+ "location": "../../opt/nfvbench/behave_tests/features/steps/steps.py:114"
+ },
+ "result": {
+ "duration": 9.751319885253906e-05,
+ "status": "passed"
+ }
+ },
+ {
+ "name": "packet rate equal to 70% of max throughput of last characterization",
+ "keyword": "And",
+ "step_type": "given",
+ "location": "../../opt/nfvbench/behave_tests/features/non-regression.feature:30",
+ "match": {
+ "arguments": [
+ {
+ "name": "percentage",
+ "value": "70%"
+ }
+ ],
+ "location": "../../opt/nfvbench/behave_tests/features/steps/steps.py:137"
+ },
+ "result": {
+ "duration": 3.042870044708252,
+ "status": "passed"
+ }
+ },
+ {
+ "name": "NFVbench API is ready",
+ "keyword": "When",
+ "step_type": "when",
+ "location": "../../opt/nfvbench/behave_tests/features/non-regression.feature:31",
+ "match": {
+ "arguments": [],
+ "location": "../../opt/nfvbench/behave_tests/features/steps/steps.py:210"
+ },
+ "result": {
+ "duration": 0.00884389877319336,
+ "status": "passed"
+ }
+ },
+ {
+ "name": "run is started and waiting for result",
+ "keyword": "Then",
+ "step_type": "then",
+ "location": "../../opt/nfvbench/behave_tests/features/non-regression.feature:32",
+ "match": {
+ "arguments": [],
+ "location": "../../opt/nfvbench/behave_tests/features/steps/steps.py:264"
+ },
+ "result": {
+ "duration": 20.07615303993225,
+ "status": "passed"
+ }
+ },
+ {
+ "name": "push result to database",
+ "keyword": "And",
+ "step_type": "then",
+ "location": "../../opt/nfvbench/behave_tests/features/non-regression.feature:33",
+ "match": {
+ "arguments": [],
+ "location": "../../opt/nfvbench/behave_tests/features/steps/steps.py:426"
+ },
+ "result": {
+ "duration": 0.00012111663818359375,
+ "status": "passed"
+ }
+ },
+ {
+ "name": "verify latency result is lower than 1000 microseconds",
+ "keyword": "And",
+ "step_type": "then",
+ "location": "../../opt/nfvbench/behave_tests/features/non-regression.feature:34",
+ "match": {
+ "arguments": [
+ {
+ "name": "max_avg_latency_usec",
+ "value": 1000.0,
+ "original": "1000"
+ }
+ ],
+ "location": "../../opt/nfvbench/behave_tests/features/steps/steps.py:351"
+ },
+ "result": {
+ "duration": 0.0001919269561767578,
+ "status": "passed"
+ }
+ }
+ ],
+ "location": "../../opt/nfvbench/behave_tests/features/non-regression.feature:38",
+ "type": "scenario"
+ },
+ {
+ "status": "passed",
+ "name": "Run a latency test for a defined frame size and throughput percentage -- @1.2 Frame sizes and throughput percentages",
+ "keyword": "Scenario Outline",
+ "tags": [
+ "latency"
+ ],
+ "steps": [
+ {
+ "name": "10 sec run duration",
+ "keyword": "Given",
+ "step_type": "given",
+ "location": "../../opt/nfvbench/behave_tests/features/non-regression.feature:27",
+ "match": {
+ "arguments": [
+ {
+ "name": "duration",
+ "value": "10"
+ }
+ ],
+ "location": "../../opt/nfvbench/behave_tests/features/steps/steps.py:124"
+ },
+ "result": {
+ "duration": 0.00010085105895996094,
+ "status": "passed"
+ }
+ },
+ {
+ "name": "64 frame size",
+ "keyword": "And",
+ "step_type": "given",
+ "location": "../../opt/nfvbench/behave_tests/features/non-regression.feature:28",
+ "match": {
+ "arguments": [
+ {
+ "name": "frame_size",
+ "value": "64"
+ }
+ ],
+ "location": "../../opt/nfvbench/behave_tests/features/steps/steps.py:109"
+ },
+ "result": {
+ "duration": 0.00011873245239257812,
+ "status": "passed"
+ }
+ },
+ {
+ "name": "100k flow count",
+ "keyword": "And",
+ "step_type": "given",
+ "location": "../../opt/nfvbench/behave_tests/features/non-regression.feature:29",
+ "match": {
+ "arguments": [
+ {
+ "name": "flow_count",
+ "value": "100k"
+ }
+ ],
+ "location": "../../opt/nfvbench/behave_tests/features/steps/steps.py:114"
+ },
+ "result": {
+ "duration": 9.560585021972656e-05,
+ "status": "passed"
+ }
+ },
+ {
+ "name": "packet rate equal to 90% of max throughput of last characterization",
+ "keyword": "And",
+ "step_type": "given",
+ "location": "../../opt/nfvbench/behave_tests/features/non-regression.feature:30",
+ "match": {
+ "arguments": [
+ {
+ "name": "percentage",
+ "value": "90%"
+ }
+ ],
+ "location": "../../opt/nfvbench/behave_tests/features/steps/steps.py:137"
+ },
+ "result": {
+ "duration": 2.90081524848938,
+ "status": "passed"
+ }
+ },
+ {
+ "name": "NFVbench API is ready",
+ "keyword": "When",
+ "step_type": "when",
+ "location": "../../opt/nfvbench/behave_tests/features/non-regression.feature:31",
+ "match": {
+ "arguments": [],
+ "location": "../../opt/nfvbench/behave_tests/features/steps/steps.py:210"
+ },
+ "result": {
+ "duration": 0.008797883987426758,
+ "status": "passed"
+ }
+ },
+ {
+ "name": "run is started and waiting for result",
+ "keyword": "Then",
+ "step_type": "then",
+ "location": "../../opt/nfvbench/behave_tests/features/non-regression.feature:32",
+ "match": {
+ "arguments": [],
+ "location": "../../opt/nfvbench/behave_tests/features/steps/steps.py:264"
+ },
+ "result": {
+ "duration": 20.11899709701538,
+ "status": "passed"
+ }
+ },
+ {
+ "name": "push result to database",
+ "keyword": "And",
+ "step_type": "then",
+ "location": "../../opt/nfvbench/behave_tests/features/non-regression.feature:33",
+ "match": {
+ "arguments": [],
+ "location": "../../opt/nfvbench/behave_tests/features/steps/steps.py:426"
+ },
+ "result": {
+ "duration": 0.00013256072998046875,
+ "status": "passed"
+ }
+ },
+ {
+ "name": "verify latency result is lower than 1000 microseconds",
+ "keyword": "And",
+ "step_type": "then",
+ "location": "../../opt/nfvbench/behave_tests/features/non-regression.feature:34",
+ "match": {
+ "arguments": [
+ {
+ "name": "max_avg_latency_usec",
+ "value": 1000.0,
+ "original": "1000"
+ }
+ ],
+ "location": "../../opt/nfvbench/behave_tests/features/steps/steps.py:351"
+ },
+ "result": {
+ "duration": 0.0001926422119140625,
+ "status": "passed"
+ }
+ }
+ ],
+ "location": "../../opt/nfvbench/behave_tests/features/non-regression.feature:39",
+ "type": "scenario"
+ },
+ {
+ "status": "passed",
+ "name": "Run a latency test for a defined frame size and throughput percentage -- @1.3 Frame sizes and throughput percentages",
+ "keyword": "Scenario Outline",
+ "tags": [
+ "latency"
+ ],
+ "steps": [
+ {
+ "name": "10 sec run duration",
+ "keyword": "Given",
+ "step_type": "given",
+ "location": "../../opt/nfvbench/behave_tests/features/non-regression.feature:27",
+ "match": {
+ "arguments": [
+ {
+ "name": "duration",
+ "value": "10"
+ }
+ ],
+ "location": "../../opt/nfvbench/behave_tests/features/steps/steps.py:124"
+ },
+ "result": {
+ "duration": 9.822845458984375e-05,
+ "status": "passed"
+ }
+ },
+ {
+ "name": "768 frame size",
+ "keyword": "And",
+ "step_type": "given",
+ "location": "../../opt/nfvbench/behave_tests/features/non-regression.feature:28",
+ "match": {
+ "arguments": [
+ {
+ "name": "frame_size",
+ "value": "768"
+ }
+ ],
+ "location": "../../opt/nfvbench/behave_tests/features/steps/steps.py:109"
+ },
+ "result": {
+ "duration": 0.00011396408081054688,
+ "status": "passed"
+ }
+ },
+ {
+ "name": "100k flow count",
+ "keyword": "And",
+ "step_type": "given",
+ "location": "../../opt/nfvbench/behave_tests/features/non-regression.feature:29",
+ "match": {
+ "arguments": [
+ {
+ "name": "flow_count",
+ "value": "100k"
+ }
+ ],
+ "location": "../../opt/nfvbench/behave_tests/features/steps/steps.py:114"
+ },
+ "result": {
+ "duration": 9.775161743164062e-05,
+ "status": "passed"
+ }
+ },
+ {
+ "name": "packet rate equal to 70% of max throughput of last characterization",
+ "keyword": "And",
+ "step_type": "given",
+ "location": "../../opt/nfvbench/behave_tests/features/non-regression.feature:30",
+ "match": {
+ "arguments": [
+ {
+ "name": "percentage",
+ "value": "70%"
+ }
+ ],
+ "location": "../../opt/nfvbench/behave_tests/features/steps/steps.py:137"
+ },
+ "result": {
+ "duration": 3.1052234172821045,
+ "status": "passed"
+ }
+ },
+ {
+ "name": "NFVbench API is ready",
+ "keyword": "When",
+ "step_type": "when",
+ "location": "../../opt/nfvbench/behave_tests/features/non-regression.feature:31",
+ "match": {
+ "arguments": [],
+ "location": "../../opt/nfvbench/behave_tests/features/steps/steps.py:210"
+ },
+ "result": {
+ "duration": 0.008736610412597656,
+ "status": "passed"
+ }
+ },
+ {
+ "name": "run is started and waiting for result",
+ "keyword": "Then",
+ "step_type": "then",
+ "location": "../../opt/nfvbench/behave_tests/features/non-regression.feature:32",
+ "match": {
+ "arguments": [],
+ "location": "../../opt/nfvbench/behave_tests/features/steps/steps.py:264"
+ },
+ "result": {
+ "duration": 20.07916784286499,
+ "status": "passed"
+ }
+ },
+ {
+ "name": "push result to database",
+ "keyword": "And",
+ "step_type": "then",
+ "location": "../../opt/nfvbench/behave_tests/features/non-regression.feature:33",
+ "match": {
+ "arguments": [],
+ "location": "../../opt/nfvbench/behave_tests/features/steps/steps.py:426"
+ },
+ "result": {
+ "duration": 0.00011897087097167969,
+ "status": "passed"
+ }
+ },
+ {
+ "name": "verify latency result is lower than 1000 microseconds",
+ "keyword": "And",
+ "step_type": "then",
+ "location": "../../opt/nfvbench/behave_tests/features/non-regression.feature:34",
+ "match": {
+ "arguments": [
+ {
+ "name": "max_avg_latency_usec",
+ "value": 1000.0,
+ "original": "1000"
+ }
+ ],
+ "location": "../../opt/nfvbench/behave_tests/features/steps/steps.py:351"
+ },
+ "result": {
+ "duration": 0.0002129077911376953,
+ "status": "passed"
+ }
+ }
+ ],
+ "location": "../../opt/nfvbench/behave_tests/features/non-regression.feature:40",
+ "type": "scenario"
+ },
+ {
+ "status": "passed",
+ "name": "Run a latency test for a defined frame size and throughput percentage -- @1.4 Frame sizes and throughput percentages",
+ "keyword": "Scenario Outline",
+ "tags": [
+ "latency"
+ ],
+ "steps": [
+ {
+ "name": "10 sec run duration",
+ "keyword": "Given",
+ "step_type": "given",
+ "location": "../../opt/nfvbench/behave_tests/features/non-regression.feature:27",
+ "match": {
+ "arguments": [
+ {
+ "name": "duration",
+ "value": "10"
+ }
+ ],
+ "location": "../../opt/nfvbench/behave_tests/features/steps/steps.py:124"
+ },
+ "result": {
+ "duration": 0.00010061264038085938,
+ "status": "passed"
+ }
+ },
+ {
+ "name": "768 frame size",
+ "keyword": "And",
+ "step_type": "given",
+ "location": "../../opt/nfvbench/behave_tests/features/non-regression.feature:28",
+ "match": {
+ "arguments": [
+ {
+ "name": "frame_size",
+ "value": "768"
+ }
+ ],
+ "location": "../../opt/nfvbench/behave_tests/features/steps/steps.py:109"
+ },
+ "result": {
+ "duration": 9.560585021972656e-05,
+ "status": "passed"
+ }
+ },
+ {
+ "name": "100k flow count",
+ "keyword": "And",
+ "step_type": "given",
+ "location": "../../opt/nfvbench/behave_tests/features/non-regression.feature:29",
+ "match": {
+ "arguments": [
+ {
+ "name": "flow_count",
+ "value": "100k"
+ }
+ ],
+ "location": "../../opt/nfvbench/behave_tests/features/steps/steps.py:114"
+ },
+ "result": {
+ "duration": 9.632110595703125e-05,
+ "status": "passed"
+ }
+ },
+ {
+ "name": "packet rate equal to 90% of max throughput of last characterization",
+ "keyword": "And",
+ "step_type": "given",
+ "location": "../../opt/nfvbench/behave_tests/features/non-regression.feature:30",
+ "match": {
+ "arguments": [
+ {
+ "name": "percentage",
+ "value": "90%"
+ }
+ ],
+ "location": "../../opt/nfvbench/behave_tests/features/steps/steps.py:137"
+ },
+ "result": {
+ "duration": 2.9584743976593018,
+ "status": "passed"
+ }
+ },
+ {
+ "name": "NFVbench API is ready",
+ "keyword": "When",
+ "step_type": "when",
+ "location": "../../opt/nfvbench/behave_tests/features/non-regression.feature:31",
+ "match": {
+ "arguments": [],
+ "location": "../../opt/nfvbench/behave_tests/features/steps/steps.py:210"
+ },
+ "result": {
+ "duration": 0.008613348007202148,
+ "status": "passed"
+ }
+ },
+ {
+ "name": "run is started and waiting for result",
+ "keyword": "Then",
+ "step_type": "then",
+ "location": "../../opt/nfvbench/behave_tests/features/non-regression.feature:32",
+ "match": {
+ "arguments": [],
+ "location": "../../opt/nfvbench/behave_tests/features/steps/steps.py:264"
+ },
+ "result": {
+ "duration": 20.074522256851196,
+ "status": "passed"
+ }
+ },
+ {
+ "name": "push result to database",
+ "keyword": "And",
+ "step_type": "then",
+ "location": "../../opt/nfvbench/behave_tests/features/non-regression.feature:33",
+ "match": {
+ "arguments": [],
+ "location": "../../opt/nfvbench/behave_tests/features/steps/steps.py:426"
+ },
+ "result": {
+ "duration": 0.0001220703125,
+ "status": "passed"
+ }
+ },
+ {
+ "name": "verify latency result is lower than 1000 microseconds",
+ "keyword": "And",
+ "step_type": "then",
+ "location": "../../opt/nfvbench/behave_tests/features/non-regression.feature:34",
+ "match": {
+ "arguments": [
+ {
+ "name": "max_avg_latency_usec",
+ "value": 1000.0,
+ "original": "1000"
+ }
+ ],
+ "location": "../../opt/nfvbench/behave_tests/features/steps/steps.py:351"
+ },
+ "result": {
+ "duration": 0.00019407272338867188,
+ "status": "passed"
+ }
+ }
+ ],
+ "location": "../../opt/nfvbench/behave_tests/features/non-regression.feature:41",
+ "type": "scenario"
+ },
+ {
+ "status": "passed",
+ "name": "Run a latency test for a defined frame size and throughput percentage -- @1.5 Frame sizes and throughput percentages",
+ "keyword": "Scenario Outline",
+ "tags": [
+ "latency"
+ ],
+ "steps": [
+ {
+ "name": "10 sec run duration",
+ "keyword": "Given",
+ "step_type": "given",
+ "location": "../../opt/nfvbench/behave_tests/features/non-regression.feature:27",
+ "match": {
+ "arguments": [
+ {
+ "name": "duration",
+ "value": "10"
+ }
+ ],
+ "location": "../../opt/nfvbench/behave_tests/features/steps/steps.py:124"
+ },
+ "result": {
+ "duration": 0.00010061264038085938,
+ "status": "passed"
+ }
+ },
+ {
+ "name": "1518 frame size",
+ "keyword": "And",
+ "step_type": "given",
+ "location": "../../opt/nfvbench/behave_tests/features/non-regression.feature:28",
+ "match": {
+ "arguments": [
+ {
+ "name": "frame_size",
+ "value": "1518"
+ }
+ ],
+ "location": "../../opt/nfvbench/behave_tests/features/steps/steps.py:109"
+ },
+ "result": {
+ "duration": 9.703636169433594e-05,
+ "status": "passed"
+ }
+ },
+ {
+ "name": "100k flow count",
+ "keyword": "And",
+ "step_type": "given",
+ "location": "../../opt/nfvbench/behave_tests/features/non-regression.feature:29",
+ "match": {
+ "arguments": [
+ {
+ "name": "flow_count",
+ "value": "100k"
+ }
+ ],
+ "location": "../../opt/nfvbench/behave_tests/features/steps/steps.py:114"
+ },
+ "result": {
+ "duration": 0.00011610984802246094,
+ "status": "passed"
+ }
+ },
+ {
+ "name": "packet rate equal to 70% of max throughput of last characterization",
+ "keyword": "And",
+ "step_type": "given",
+ "location": "../../opt/nfvbench/behave_tests/features/non-regression.feature:30",
+ "match": {
+ "arguments": [
+ {
+ "name": "percentage",
+ "value": "70%"
+ }
+ ],
+ "location": "../../opt/nfvbench/behave_tests/features/steps/steps.py:137"
+ },
+ "result": {
+ "duration": 3.118863821029663,
+ "status": "passed"
+ }
+ },
+ {
+ "name": "NFVbench API is ready",
+ "keyword": "When",
+ "step_type": "when",
+ "location": "../../opt/nfvbench/behave_tests/features/non-regression.feature:31",
+ "match": {
+ "arguments": [],
+ "location": "../../opt/nfvbench/behave_tests/features/steps/steps.py:210"
+ },
+ "result": {
+ "duration": 0.008606433868408203,
+ "status": "passed"
+ }
+ },
+ {
+ "name": "run is started and waiting for result",
+ "keyword": "Then",
+ "step_type": "then",
+ "location": "../../opt/nfvbench/behave_tests/features/non-regression.feature:32",
+ "match": {
+ "arguments": [],
+ "location": "../../opt/nfvbench/behave_tests/features/steps/steps.py:264"
+ },
+ "result": {
+ "duration": 20.080474376678467,
+ "status": "passed"
+ }
+ },
+ {
+ "name": "push result to database",
+ "keyword": "And",
+ "step_type": "then",
+ "location": "../../opt/nfvbench/behave_tests/features/non-regression.feature:33",
+ "match": {
+ "arguments": [],
+ "location": "../../opt/nfvbench/behave_tests/features/steps/steps.py:426"
+ },
+ "result": {
+ "duration": 0.00012254714965820312,
+ "status": "passed"
+ }
+ },
+ {
+ "name": "verify latency result is lower than 1000 microseconds",
+ "keyword": "And",
+ "step_type": "then",
+ "location": "../../opt/nfvbench/behave_tests/features/non-regression.feature:34",
+ "match": {
+ "arguments": [
+ {
+ "name": "max_avg_latency_usec",
+ "value": 1000.0,
+ "original": "1000"
+ }
+ ],
+ "location": "../../opt/nfvbench/behave_tests/features/steps/steps.py:351"
+ },
+ "result": {
+ "duration": 0.00019216537475585938,
+ "status": "passed"
+ }
+ }
+ ],
+ "location": "../../opt/nfvbench/behave_tests/features/non-regression.feature:42",
+ "type": "scenario"
+ },
+ {
+ "status": "passed",
+ "name": "Run a latency test for a defined frame size and throughput percentage -- @1.6 Frame sizes and throughput percentages",
+ "keyword": "Scenario Outline",
+ "tags": [
+ "latency"
+ ],
+ "steps": [
+ {
+ "name": "10 sec run duration",
+ "keyword": "Given",
+ "step_type": "given",
+ "location": "../../opt/nfvbench/behave_tests/features/non-regression.feature:27",
+ "match": {
+ "arguments": [
+ {
+ "name": "duration",
+ "value": "10"
+ }
+ ],
+ "location": "../../opt/nfvbench/behave_tests/features/steps/steps.py:124"
+ },
+ "result": {
+ "duration": 0.00010013580322265625,
+ "status": "passed"
+ }
+ },
+ {
+ "name": "1518 frame size",
+ "keyword": "And",
+ "step_type": "given",
+ "location": "../../opt/nfvbench/behave_tests/features/non-regression.feature:28",
+ "match": {
+ "arguments": [
+ {
+ "name": "frame_size",
+ "value": "1518"
+ }
+ ],
+ "location": "../../opt/nfvbench/behave_tests/features/steps/steps.py:109"
+ },
+ "result": {
+ "duration": 9.942054748535156e-05,
+ "status": "passed"
+ }
+ },
+ {
+ "name": "100k flow count",
+ "keyword": "And",
+ "step_type": "given",
+ "location": "../../opt/nfvbench/behave_tests/features/non-regression.feature:29",
+ "match": {
+ "arguments": [
+ {
+ "name": "flow_count",
+ "value": "100k"
+ }
+ ],
+ "location": "../../opt/nfvbench/behave_tests/features/steps/steps.py:114"
+ },
+ "result": {
+ "duration": 9.703636169433594e-05,
+ "status": "passed"
+ }
+ },
+ {
+ "name": "packet rate equal to 90% of max throughput of last characterization",
+ "keyword": "And",
+ "step_type": "given",
+ "location": "../../opt/nfvbench/behave_tests/features/non-regression.feature:30",
+ "match": {
+ "arguments": [
+ {
+ "name": "percentage",
+ "value": "90%"
+ }
+ ],
+ "location": "../../opt/nfvbench/behave_tests/features/steps/steps.py:137"
+ },
+ "result": {
+ "duration": 2.9169235229492188,
+ "status": "passed"
+ }
+ },
+ {
+ "name": "NFVbench API is ready",
+ "keyword": "When",
+ "step_type": "when",
+ "location": "../../opt/nfvbench/behave_tests/features/non-regression.feature:31",
+ "match": {
+ "arguments": [],
+ "location": "../../opt/nfvbench/behave_tests/features/steps/steps.py:210"
+ },
+ "result": {
+ "duration": 0.008793830871582031,
+ "status": "passed"
+ }
+ },
+ {
+ "name": "run is started and waiting for result",
+ "keyword": "Then",
+ "step_type": "then",
+ "location": "../../opt/nfvbench/behave_tests/features/non-regression.feature:32",
+ "match": {
+ "arguments": [],
+ "location": "../../opt/nfvbench/behave_tests/features/steps/steps.py:264"
+ },
+ "result": {
+ "duration": 18.160871744155884,
+ "status": "passed"
+ }
+ },
+ {
+ "name": "push result to database",
+ "keyword": "And",
+ "step_type": "then",
+ "location": "../../opt/nfvbench/behave_tests/features/non-regression.feature:33",
+ "match": {
+ "arguments": [],
+ "location": "../../opt/nfvbench/behave_tests/features/steps/steps.py:426"
+ },
+ "result": {
+ "duration": 0.00012159347534179688,
+ "status": "passed"
+ }
+ },
+ {
+ "name": "verify latency result is lower than 1000 microseconds",
+ "keyword": "And",
+ "step_type": "then",
+ "location": "../../opt/nfvbench/behave_tests/features/non-regression.feature:34",
+ "match": {
+ "arguments": [
+ {
+ "name": "max_avg_latency_usec",
+ "value": 1000.0,
+ "original": "1000"
+ }
+ ],
+ "location": "../../opt/nfvbench/behave_tests/features/steps/steps.py:351"
+ },
+ "result": {
+ "duration": 0.00019097328186035156,
+ "status": "passed"
+ }
+ }
+ ],
+ "location": "../../opt/nfvbench/behave_tests/features/non-regression.feature:43",
+ "type": "scenario"
+ },
+ {
+ "status": "passed",
+ "name": "Run a latency test for a defined frame size and throughput percentage -- @1.7 Frame sizes and throughput percentages",
+ "keyword": "Scenario Outline",
+ "tags": [
+ "latency"
+ ],
+ "steps": [
+ {
+ "name": "10 sec run duration",
+ "keyword": "Given",
+ "step_type": "given",
+ "location": "../../opt/nfvbench/behave_tests/features/non-regression.feature:27",
+ "match": {
+ "arguments": [
+ {
+ "name": "duration",
+ "value": "10"
+ }
+ ],
+ "location": "../../opt/nfvbench/behave_tests/features/steps/steps.py:124"
+ },
+ "result": {
+ "duration": 9.965896606445312e-05,
+ "status": "passed"
+ }
+ },
+ {
+ "name": "9000 frame size",
+ "keyword": "And",
+ "step_type": "given",
+ "location": "../../opt/nfvbench/behave_tests/features/non-regression.feature:28",
+ "match": {
+ "arguments": [
+ {
+ "name": "frame_size",
+ "value": "9000"
+ }
+ ],
+ "location": "../../opt/nfvbench/behave_tests/features/steps/steps.py:109"
+ },
+ "result": {
+ "duration": 9.918212890625e-05,
+ "status": "passed"
+ }
+ },
+ {
+ "name": "100k flow count",
+ "keyword": "And",
+ "step_type": "given",
+ "location": "../../opt/nfvbench/behave_tests/features/non-regression.feature:29",
+ "match": {
+ "arguments": [
+ {
+ "name": "flow_count",
+ "value": "100k"
+ }
+ ],
+ "location": "../../opt/nfvbench/behave_tests/features/steps/steps.py:114"
+ },
+ "result": {
+ "duration": 9.655952453613281e-05,
+ "status": "passed"
+ }
+ },
+ {
+ "name": "packet rate equal to 70% of max throughput of last characterization",
+ "keyword": "And",
+ "step_type": "given",
+ "location": "../../opt/nfvbench/behave_tests/features/non-regression.feature:30",
+ "match": {
+ "arguments": [
+ {
+ "name": "percentage",
+ "value": "70%"
+ }
+ ],
+ "location": "../../opt/nfvbench/behave_tests/features/steps/steps.py:137"
+ },
+ "result": {
+ "duration": 2.906872272491455,
+ "status": "passed"
+ }
+ },
+ {
+ "name": "NFVbench API is ready",
+ "keyword": "When",
+ "step_type": "when",
+ "location": "../../opt/nfvbench/behave_tests/features/non-regression.feature:31",
+ "match": {
+ "arguments": [],
+ "location": "../../opt/nfvbench/behave_tests/features/steps/steps.py:210"
+ },
+ "result": {
+ "duration": 0.008602142333984375,
+ "status": "passed"
+ }
+ },
+ {
+ "name": "run is started and waiting for result",
+ "keyword": "Then",
+ "step_type": "then",
+ "location": "../../opt/nfvbench/behave_tests/features/non-regression.feature:32",
+ "match": {
+ "arguments": [],
+ "location": "../../opt/nfvbench/behave_tests/features/steps/steps.py:264"
+ },
+ "result": {
+ "duration": 20.075267791748047,
+ "status": "passed"
+ }
+ },
+ {
+ "name": "push result to database",
+ "keyword": "And",
+ "step_type": "then",
+ "location": "../../opt/nfvbench/behave_tests/features/non-regression.feature:33",
+ "match": {
+ "arguments": [],
+ "location": "../../opt/nfvbench/behave_tests/features/steps/steps.py:426"
+ },
+ "result": {
+ "duration": 0.00011920928955078125,
+ "status": "passed"
+ }
+ },
+ {
+ "name": "verify latency result is lower than 1000 microseconds",
+ "keyword": "And",
+ "step_type": "then",
+ "location": "../../opt/nfvbench/behave_tests/features/non-regression.feature:34",
+ "match": {
+ "arguments": [
+ {
+ "name": "max_avg_latency_usec",
+ "value": 1000.0,
+ "original": "1000"
+ }
+ ],
+ "location": "../../opt/nfvbench/behave_tests/features/steps/steps.py:351"
+ },
+ "result": {
+ "duration": 0.00020933151245117188,
+ "status": "passed"
+ }
+ }
+ ],
+ "location": "../../opt/nfvbench/behave_tests/features/non-regression.feature:44",
+ "type": "scenario"
+ },
+ {
+ "status": "passed",
+ "name": "Run a latency test for a defined frame size and throughput percentage -- @1.8 Frame sizes and throughput percentages",
+ "keyword": "Scenario Outline",
+ "tags": [
+ "latency"
+ ],
+ "steps": [
+ {
+ "name": "10 sec run duration",
+ "keyword": "Given",
+ "step_type": "given",
+ "location": "../../opt/nfvbench/behave_tests/features/non-regression.feature:27",
+ "match": {
+ "arguments": [
+ {
+ "name": "duration",
+ "value": "10"
+ }
+ ],
+ "location": "../../opt/nfvbench/behave_tests/features/steps/steps.py:124"
+ },
+ "result": {
+ "duration": 0.00010251998901367188,
+ "status": "passed"
+ }
+ },
+ {
+ "name": "9000 frame size",
+ "keyword": "And",
+ "step_type": "given",
+ "location": "../../opt/nfvbench/behave_tests/features/non-regression.feature:28",
+ "match": {
+ "arguments": [
+ {
+ "name": "frame_size",
+ "value": "9000"
+ }
+ ],
+ "location": "../../opt/nfvbench/behave_tests/features/steps/steps.py:109"
+ },
+ "result": {
+ "duration": 9.72747802734375e-05,
+ "status": "passed"
+ }
+ },
+ {
+ "name": "100k flow count",
+ "keyword": "And",
+ "step_type": "given",
+ "location": "../../opt/nfvbench/behave_tests/features/non-regression.feature:29",
+ "match": {
+ "arguments": [
+ {
+ "name": "flow_count",
+ "value": "100k"
+ }
+ ],
+ "location": "../../opt/nfvbench/behave_tests/features/steps/steps.py:114"
+ },
+ "result": {
+ "duration": 9.465217590332031e-05,
+ "status": "passed"
+ }
+ },
+ {
+ "name": "packet rate equal to 90% of max throughput of last characterization",
+ "keyword": "And",
+ "step_type": "given",
+ "location": "../../opt/nfvbench/behave_tests/features/non-regression.feature:30",
+ "match": {
+ "arguments": [
+ {
+ "name": "percentage",
+ "value": "90%"
+ }
+ ],
+ "location": "../../opt/nfvbench/behave_tests/features/steps/steps.py:137"
+ },
+ "result": {
+ "duration": 2.828930139541626,
+ "status": "passed"
+ }
+ },
+ {
+ "name": "NFVbench API is ready",
+ "keyword": "When",
+ "step_type": "when",
+ "location": "../../opt/nfvbench/behave_tests/features/non-regression.feature:31",
+ "match": {
+ "arguments": [],
+ "location": "../../opt/nfvbench/behave_tests/features/steps/steps.py:210"
+ },
+ "result": {
+ "duration": 0.008794546127319336,
+ "status": "passed"
+ }
+ },
+ {
+ "name": "run is started and waiting for result",
+ "keyword": "Then",
+ "step_type": "then",
+ "location": "../../opt/nfvbench/behave_tests/features/non-regression.feature:32",
+ "match": {
+ "arguments": [],
+ "location": "../../opt/nfvbench/behave_tests/features/steps/steps.py:264"
+ },
+ "result": {
+ "duration": 20.077053785324097,
+ "status": "passed"
+ }
+ },
+ {
+ "name": "push result to database",
+ "keyword": "And",
+ "step_type": "then",
+ "location": "../../opt/nfvbench/behave_tests/features/non-regression.feature:33",
+ "match": {
+ "arguments": [],
+ "location": "../../opt/nfvbench/behave_tests/features/steps/steps.py:426"
+ },
+ "result": {
+ "duration": 0.00011849403381347656,
+ "status": "passed"
+ }
+ },
+ {
+ "name": "verify latency result is lower than 1000 microseconds",
+ "keyword": "And",
+ "step_type": "then",
+ "location": "../../opt/nfvbench/behave_tests/features/non-regression.feature:34",
+ "match": {
+ "arguments": [
+ {
+ "name": "max_avg_latency_usec",
+ "value": 1000.0,
+ "original": "1000"
+ }
+ ],
+ "location": "../../opt/nfvbench/behave_tests/features/steps/steps.py:351"
+ },
+ "result": {
+ "duration": 0.0002167224884033203,
+ "status": "passed"
+ }
+ }
+ ],
+ "location": "../../opt/nfvbench/behave_tests/features/non-regression.feature:45",
+ "type": "scenario"
+ }
+ ],
+ "name": "non-regression",
+ "keyword": "Feature",
+ "tags": [
+ "non-regression"
+ ],
+ "location": "../../opt/nfvbench/behave_tests/features/non-regression.feature:2"
+ }
+ ],
+ "skip_tests": 0,
+ "links": [
+ "http://172.20.73.203:8181/RPDOUC5V2ARA/nfvbench-amical-e2e-basic-_-nfvbench-launcher-latest-devel-nfvbench_e2e_only_test_non-regression-run-41/xtesting.log",
+ "http://172.20.73.203:8181/RPDOUC5V2ARA/nfvbench-amical-e2e-basic-_-nfvbench-launcher-latest-devel-nfvbench_e2e_only_test_non-regression-run-41/non-regression/nfvbench-throughput-fs_768-fc_100k-rate_ndr-0.json",
+ "http://172.20.73.203:8181/RPDOUC5V2ARA/nfvbench-amical-e2e-basic-_-nfvbench-launcher-latest-devel-nfvbench_e2e_only_test_non-regression-run-41/non-regression/nfvbench-throughput-fs_1518-fc_100k-rate_ndr-2.json",
+ "http://172.20.73.203:8181/RPDOUC5V2ARA/nfvbench-amical-e2e-basic-_-nfvbench-launcher-latest-devel-nfvbench_e2e_only_test_non-regression-run-41/non-regression/nfvbench-throughput-fs_9000-fc_100k-rate_ndr-1.json",
+ "http://172.20.73.203:8181/RPDOUC5V2ARA/nfvbench-amical-e2e-basic-_-nfvbench-launcher-latest-devel-nfvbench_e2e_only_test_non-regression-run-41/non-regression/output.html",
+ "http://172.20.73.203:8181/RPDOUC5V2ARA/nfvbench-amical-e2e-basic-_-nfvbench-launcher-latest-devel-nfvbench_e2e_only_test_non-regression-run-41/non-regression/nfvbench-throughput-fs_9000-fc_100k-rate_ndr-2.json",
+ "http://172.20.73.203:8181/RPDOUC5V2ARA/nfvbench-amical-e2e-basic-_-nfvbench-launcher-latest-devel-nfvbench_e2e_only_test_non-regression-run-41/non-regression/nfvbench-throughput-fs_64-fc_100k-rate_ndr-1.json",
+ "http://172.20.73.203:8181/RPDOUC5V2ARA/nfvbench-amical-e2e-basic-_-nfvbench-launcher-latest-devel-nfvbench_e2e_only_test_non-regression-run-41/non-regression/nfvbench-latency-fs_64-fc_100k-rate_70%.json",
+ "http://172.20.73.203:8181/RPDOUC5V2ARA/nfvbench-amical-e2e-basic-_-nfvbench-launcher-latest-devel-nfvbench_e2e_only_test_non-regression-run-41/non-regression/nfvbench-throughput-fs_64-fc_100k-rate_ndr-0.json",
+ "http://172.20.73.203:8181/RPDOUC5V2ARA/nfvbench-amical-e2e-basic-_-nfvbench-launcher-latest-devel-nfvbench_e2e_only_test_non-regression-run-41/non-regression/nfvbench-throughput-fs_1518-fc_100k-rate_ndr-1.json",
+ "http://172.20.73.203:8181/RPDOUC5V2ARA/nfvbench-amical-e2e-basic-_-nfvbench-launcher-latest-devel-nfvbench_e2e_only_test_non-regression-run-41/non-regression/behave_tests.log",
+ "http://172.20.73.203:8181/RPDOUC5V2ARA/nfvbench-amical-e2e-basic-_-nfvbench-launcher-latest-devel-nfvbench_e2e_only_test_non-regression-run-41/non-regression/nfvbench-latency-fs_9000-fc_100k-rate_70%.json",
+ "http://172.20.73.203:8181/RPDOUC5V2ARA/nfvbench-amical-e2e-basic-_-nfvbench-launcher-latest-devel-nfvbench_e2e_only_test_non-regression-run-41/non-regression/nfvbench-throughput-fs_768-fc_100k-rate_ndr-1.json",
+ "http://172.20.73.203:8181/RPDOUC5V2ARA/nfvbench-amical-e2e-basic-_-nfvbench-launcher-latest-devel-nfvbench_e2e_only_test_non-regression-run-41/non-regression/campaign_result.json",
+ "http://172.20.73.203:8181/RPDOUC5V2ARA/nfvbench-amical-e2e-basic-_-nfvbench-launcher-latest-devel-nfvbench_e2e_only_test_non-regression-run-41/non-regression/nfvbench-latency-fs_768-fc_100k-rate_90%.json",
+ "http://172.20.73.203:8181/RPDOUC5V2ARA/nfvbench-amical-e2e-basic-_-nfvbench-launcher-latest-devel-nfvbench_e2e_only_test_non-regression-run-41/non-regression/nfvbench-throughput-fs_64-fc_100k-rate_ndr-2.json",
+ "http://172.20.73.203:8181/RPDOUC5V2ARA/nfvbench-amical-e2e-basic-_-nfvbench-launcher-latest-devel-nfvbench_e2e_only_test_non-regression-run-41/non-regression/nfvbench-latency-fs_1518-fc_100k-rate_90%.json",
+ "http://172.20.73.203:8181/RPDOUC5V2ARA/nfvbench-amical-e2e-basic-_-nfvbench-launcher-latest-devel-nfvbench_e2e_only_test_non-regression-run-41/non-regression/nfvbench-throughput-fs_9000-fc_100k-rate_ndr-0.json",
+ "http://172.20.73.203:8181/RPDOUC5V2ARA/nfvbench-amical-e2e-basic-_-nfvbench-launcher-latest-devel-nfvbench_e2e_only_test_non-regression-run-41/non-regression/nfvbench-throughput-fs_1518-fc_100k-rate_ndr-0.json",
+ "http://172.20.73.203:8181/RPDOUC5V2ARA/nfvbench-amical-e2e-basic-_-nfvbench-launcher-latest-devel-nfvbench_e2e_only_test_non-regression-run-41/non-regression/nfvbench-throughput-fs_768-fc_100k-rate_ndr-2.json",
+ "http://172.20.73.203:8181/RPDOUC5V2ARA/nfvbench-amical-e2e-basic-_-nfvbench-launcher-latest-devel-nfvbench_e2e_only_test_non-regression-run-41/non-regression/nfvbench-latency-fs_64-fc_100k-rate_90%.json",
+ "http://172.20.73.203:8181/RPDOUC5V2ARA/nfvbench-amical-e2e-basic-_-nfvbench-launcher-latest-devel-nfvbench_e2e_only_test_non-regression-run-41/non-regression/TESTS-non-regression.xml",
+ "http://172.20.73.203:8181/RPDOUC5V2ARA/nfvbench-amical-e2e-basic-_-nfvbench-launcher-latest-devel-nfvbench_e2e_only_test_non-regression-run-41/non-regression/nfvbench-latency-fs_768-fc_100k-rate_70%.json",
+ "http://172.20.73.203:8181/RPDOUC5V2ARA/nfvbench-amical-e2e-basic-_-nfvbench-launcher-latest-devel-nfvbench_e2e_only_test_non-regression-run-41/non-regression/nfvbench.log",
+ "http://172.20.73.203:8181/RPDOUC5V2ARA/nfvbench-amical-e2e-basic-_-nfvbench-launcher-latest-devel-nfvbench_e2e_only_test_non-regression-run-41/non-regression/nfvbench-latency-fs_9000-fc_100k-rate_90%.json",
+ "http://172.20.73.203:8181/RPDOUC5V2ARA/nfvbench-amical-e2e-basic-_-nfvbench-launcher-latest-devel-nfvbench_e2e_only_test_non-regression-run-41/non-regression/nfvbench-latency-fs_1518-fc_100k-rate_70%.json",
+ "http://172.20.73.203:8181/RPDOUC5V2ARA/nfvbench-amical-e2e-basic-_-nfvbench-launcher-latest-devel-nfvbench_e2e_only_test_non-regression-run-41/non-regression/output.json"
+ ],
+ "results": {
+ "latency": [
+ {
+ "input": {
+ "duration_sec": "10",
+ "flavor_type": "nfvbench.loop.basic",
+ "json": "/var/lib/xtesting/results/non-regression/nfvbench-latency-fs_64-fc_100k-rate_70%.json",
+ "frame_sizes": [
+ "64"
+ ],
+ "rate": "70%",
+ "flow_count": "100k",
+ "log_file": "/var/lib/xtesting/results/non-regression/nfvbench.log",
+ "user_label": "amical_tc12_basic"
+ },
+ "output": {
+ "status": "OK",
+ "result": {
+ "date": "2022-03-30 06:45:29",
+ "nfvbench_version": "5.0.4.dev29",
+ "config": {
+ "compute_nodes": null,
+ "traffic_generator": {
+ "mac_addrs_left": null,
+ "gateway_ip_addrs": [
+ "192.168.30.2",
+ "192.168.31.2"
+ ],
+ "mac_addrs_right": null,
+ "default_profile": "trex-local",
+ "src_vteps": null,
+ "generator_profile": [
+ {
+ "intf_speed": null,
+ "name": "trex-local",
+ "ip": "127.0.0.1",
+ "zmq_rpc_port": 4501,
+ "tool": "TRex",
+ "platform": {
+ "master_thread_id": "0",
+ "latency_thread_id": "1",
+ "dual_if": [
+ {
+ "threads": [
+ 2,
+ 3,
+ 4,
+ 5,
+ 6,
+ 7
+ ],
+ "socket": 0
+ }
+ ]
+ },
+ "zmq_pub_port": 4500,
+ "interfaces": [
+ {
+ "switch": null,
+ "pci": "0000:00:05.0",
+ "port": 0
+ },
+ {
+ "switch": null,
+ "pci": "0000:00:06.0",
+ "port": 1
+ }
+ ],
+ "cores": 5,
+ "software_mode": false
+ }
+ ],
+ "vtep_gateway_ips": null,
+ "tg_gateway_ip_addrs_step": "0.0.0.1",
+ "udp_port_step": "1",
+ "udp_src_port": [
+ "49152",
+ "49168"
+ ],
+ "gateway_ip_addrs_step": "0.0.0.1",
+ "tg_gateway_ip_addrs": [
+ "192.168.30.1",
+ "192.168.31.1"
+ ],
+ "ip_addrs": [
+ "198.18.0.0/16",
+ "198.19.0.0/16"
+ ],
+ "ip_src_static": true,
+ "host_name": "nfvbench_tg",
+ "ip_addrs_step": "0.0.0.1",
+ "tg_gateway_ip_cidrs": [
+ "192.168.1.0/24",
+ "192.168.2.0/24"
+ ],
+ "dst_vtep": null,
+ "vtep_vlan": null,
+ "udp_dst_port": [
+ "49152",
+ "49168"
+ ]
+ },
+ "availability_zone": "nova",
+ "vif_multiqueue_size": 8,
+ "periodic_gratuitous_arp": false,
+ "flavor": {
+ "vcpus": 2,
+ "disk": 0,
+ "extra_specs": {
+ "hw:cpu_policy": "dedicated",
+ "hw:mem_page_size": "large"
+ },
+ "ram": 4096
+ },
+ "floating_network": {
+ "subnet": "nfvbench-floating-subnet",
+ "name": "nfvbench-floating-net",
+ "segmentation_id": null,
+ "physical_network": null,
+ "cidr": "192.168.0.0/24",
+ "network_type": "vlan"
+ },
+ "user_info": null,
+ "service_chain": "PVP",
+ "sriov": false,
+ "vxlan": false,
+ "intf_speed_detected": 25000000000.0,
+ "pause_sec": 2.0,
+ "internal_networks": {
+ "middle": {
+ "subnet": "nfvbench-msubnet",
+ "name": "nfvbench-mnet",
+ "segmentation_id": null,
+ "physical_network": null,
+ "mpls_transport_labels": null,
+ "cidr": "192.168.3.0/24",
+ "network_type": "vlan"
+ },
+ "right": {
+ "subnet": "subnet_nfvbench_vn2bis",
+ "name": "net_nfvbench_vn2bis",
+ "segmentation_id": null,
+ "physical_network": null,
+ "mpls_transport_labels": null,
+ "cidr": "192.168.31.0/24",
+ "network_type": "vlan"
+ },
+ "left": {
+ "subnet": "subnet_nfvbench_vn1bis",
+ "name": "net_nfvbench_vn1bis",
+ "segmentation_id": null,
+ "physical_network": null,
+ "mpls_transport_labels": null,
+ "cidr": "192.168.30.0/24",
+ "network_type": "vlan"
+ }
+ },
+ "no_vswitch_access": false,
+ "traffic": {
+ "bidirectional": true,
+ "profile": "custom_traffic_profile"
+ },
+ "restart": false,
+ "vm_image_file": "nfvbenchvm-0.15.0901.qcow2",
+ "name": "nfvbench.conf",
+ "std_json": null,
+ "l2_loopback": false,
+ "request_id": "75ed0568a3cf49929e20d9d4c44a23a0",
+ "debug": false,
+ "group_id": null,
+ "loop_vm_name": "nfvbench-loop-vm",
+ "check_traffic_time_sec": 200,
+ "num_mbufs": 128000,
+ "rate": "404398pps",
+ "service_chain_count": 1,
+ "service_chain_shared_net": true,
+ "measurement": {
+ "NDR": 0.001,
+ "PDR": 0.1,
+ "load_epsilon": 0.1
+ },
+ "l3_router": false,
+ "debug_mask": 0,
+ "factory_class": "BasicFactory",
+ "tg-tool": "TRex",
+ "frame_sizes": [
+ "64"
+ ],
+ "service_mode": false,
+ "edge_networks": {
+ "right": {
+ "subnet": "nfvbench-subnet3",
+ "name": "nfvbench-net3",
+ "segmentation_id": null,
+ "network_type": null,
+ "physical_network": null,
+ "cidr": "192.168.4.0/24",
+ "router_name": "router_right",
+ "gateway": null
+ },
+ "left": {
+ "subnet": "nfvbench-subnet2",
+ "name": "nfvbench-net2",
+ "segmentation_id": null,
+ "network_type": null,
+ "physical_network": null,
+ "cidr": "192.168.3.0/24",
+ "router_name": "router_left",
+ "gateway": null
+ }
+ },
+ "ndr_run": false,
+ "use_management_port": false,
+ "hypervisor_hostname": "localdomain",
+ "cache_size": 16,
+ "pdr_run": false,
+ "vlan_tagging": false,
+ "fluentd": [
+ {
+ "ip": "172.20.73.203",
+ "result_tag": "nfvbench.results.amical",
+ "logging_tag": "nfvbench.logs.amical",
+ "port": 25225
+ }
+ ],
+ "use_floating_ip": false,
+ "flow_count": 100000,
+ "loop_vm_arp": false,
+ "user_id": null,
+ "openrc_file": null,
+ "disable_hdrh": false,
+ "json": "/var/lib/xtesting/results/non-regression/nfvbench-latency-fs_64-fc_100k-rate_70%.json",
+ "vm_forwarder": "vpp",
+ "factory_module": "nfvbench.factory",
+ "no_latency_streams": false,
+ "single_run": true,
+ "no_arp": false,
+ "cores_used": 5,
+ "traffic_profile": [
+ {
+ "l2frame_size": [
+ "64"
+ ],
+ "name": "custom_traffic_profile"
+ }
+ ],
+ "vlans": [
+ 2512,
+ 2517
+ ],
+ "tg-name": "trex-local",
+ "management_network": {
+ "subnet": "nfvbench-management-subnet",
+ "name": "nfvbench-management-net",
+ "segmentation_id": null,
+ "network_type": "vlan",
+ "physical_network": null,
+ "cidr": "192.168.0.0/24",
+ "gateway": "192.168.0.254"
+ },
+ "no_traffic": false,
+ "mpls": false,
+ "duration_sec": 10.0,
+ "clouds_detail": "openstack",
+ "mbuf_64": null,
+ "generic_poll_sec": 2,
+ "idle_interfaces_per_vm": 0,
+ "no_flow_stats": true,
+ "lat_percentiles": [
+ 25,
+ 75,
+ 99
+ ],
+ "no_cleanup": true,
+ "no_e2e_check": false,
+ "intf_speed_used": 25000000000.0,
+ "generator_profile": "trex-local",
+ "mbuf_factor": 0.2,
+ "user_label": "amical_tc12_basic",
+ "intf_speed": null,
+ "generic_retry_count": 100,
+ "flavor_type": "nfvbench.loop.basic",
+ "use_sriov_middle_net": false,
+ "json_file": "/var/lib/xtesting/results/non-regression/nfvbench-latency-fs_64-fc_100k-rate_70%.json",
+ "std_json_path": null,
+ "unidir_reverse_traffic_pps": 1,
+ "i40e_mixed": "ignore",
+ "gratuitous_arp_pps": 1,
+ "idle_networks": {
+ "subnet": "nfvbench-idle-subnet",
+ "name": "nfvbench-idle-net",
+ "segmentation_id": null,
+ "physical_network": null,
+ "cidr": "192.169.1.0/24",
+ "network_type": "vlan"
+ },
+ "interval_sec": 10.0,
+ "no_latency_stats": false,
+ "cores": null,
+ "log_file": "/var/lib/xtesting/results/non-regression/nfvbench.log",
+ "external_networks": {
+ "right": null,
+ "left": null
+ }
+ },
+ "benchmarks": {
+ "network": {
+ "service_chain": {
+ "PVP": {
+ "result": {
+ "compute_nodes": {},
+ "profile": "custom_traffic_profile",
+ "service_chain_count": 1,
+ "result": {
+ "64": {
+ "run_config": {
+ "direction-forward": {
+ "rx": {
+ "rate_percent": 0.5414414208000001,
+ "rate_pps": 201429,
+ "initial_rate_type": "rate_pps",
+ "rate_bps": 135360355
+ },
+ "tx": {
+ "rate_percent": 0.5414497536,
+ "rate_pps": 201432,
+ "initial_rate_type": "rate_pps",
+ "rate_bps": 135362438
+ },
+ "orig": {
+ "rate_percent": 0.543510912,
+ "rate_pps": 202199,
+ "initial_rate_type": "rate_pps",
+ "rate_bps": 135877728
+ }
+ },
+ "direction-total": {
+ "rx": {
+ "rate_percent": 1.082844672,
+ "rate_pps": 402843.0,
+ "rate_bps": 270711167.0
+ },
+ "tx": {
+ "rate_percent": 1.0828995072,
+ "rate_pps": 402864.0,
+ "rate_bps": 270724876.0
+ },
+ "orig": {
+ "rate_percent": 1.087021824,
+ "rate_pps": 404398.0,
+ "rate_bps": 271755456.0
+ }
+ },
+ "direction-reverse": {
+ "rx": {
+ "rate_percent": 0.5414032511999999,
+ "rate_pps": 201414,
+ "initial_rate_type": "rate_pps",
+ "rate_bps": 135350812
+ },
+ "tx": {
+ "rate_percent": 0.5414497536,
+ "rate_pps": 201432,
+ "initial_rate_type": "rate_pps",
+ "rate_bps": 135362438
+ },
+ "orig": {
+ "rate_percent": 0.543510912,
+ "rate_pps": 202199,
+ "initial_rate_type": "rate_pps",
+ "rate_bps": 135877728
+ }
+ }
+ },
+ "packet_path_stats": {
+ "Forward": {
+ "interfaces": [
+ "TRex.TX.p0",
+ "TRex.RX.p1"
+ ],
+ "chains": {
+ "0": {
+ "packets": [
+ 9937,
+ 9937
+ ],
+ "lat_max_usec": 4057,
+ "lat_avg_usec": 78,
+ "lat_min_usec": 31,
+ "hdrh": "HISTFAAAAB54nJNpmSzMwMDAyAABzFAawp8xrcH+A1QAAE9IBCo=",
+ "lat_percentile": {
+ "99": "n/a",
+ "25": "n/a",
+ "75": "n/a"
+ }
+ }
+ }
+ },
+ "Reverse": {
+ "interfaces": [
+ "TRex.TX.p1",
+ "TRex.RX.p0"
+ ],
+ "chains": {
+ "0": {
+ "packets": [
+ 9937,
+ 9937
+ ],
+ "lat_max_usec": 5209,
+ "lat_avg_usec": 76,
+ "lat_min_usec": 32,
+ "hdrh": "HISTFAAAAB54nJNpmSzMwMDAyAABzFAawp8xrcH+A1QAAE9IBCo=",
+ "lat_percentile": {
+ "99": "n/a",
+ "25": "n/a",
+ "75": "n/a"
+ }
+ }
+ }
+ }
+ },
+ "stats": {
+ "total_tx_rate": 402864,
+ "overall": {
+ "drop_rate_percent": 0.005063738568113737,
+ "rx": {
+ "dropped_pkts": 204,
+ "pkt_bit_rate": 109803088.0,
+ "pkt_rate": 201839.0,
+ "max_delay_usec": 5209,
+ "lat_percentile": {
+ "99": "n/a",
+ "25": "n/a",
+ "75": "n/a"
+ },
+ "avg_delay_usec": 76.99996475062306,
+ "total_pkt_bytes": 273933920,
+ "total_pkts": 4028440,
+ "min_delay_usec": 31
+ },
+ "hdrh": "HISTFAAAABt4nJNpmSzMgADMUJoRTM6Y1mD/ASIAAEr9BCg=",
+ "tx": {
+ "total_pkt_bytes": 273947792,
+ "total_pkts": 4028644,
+ "pkt_bit_rate": 109803752.0,
+ "pkt_rate": 201840.5
+ }
+ },
+ "1": {
+ "drop_rate_percent": 0.0015389793687404496,
+ "rx": {
+ "dropped_pkts": 31,
+ "pkt_bit_rate": 109811680,
+ "pkt_rate": 201855,
+ "max_delay_usec": 5209,
+ "total_pkt_bytes": 136971788,
+ "avg_delay_usec": 76,
+ "total_pkts": 2014291,
+ "min_delay_usec": 32
+ },
+ "tx": {
+ "total_pkt_bytes": 136973896,
+ "total_pkts": 2014322,
+ "pkt_bit_rate": 109806936,
+ "pkt_rate": 201846
+ }
+ },
+ "0": {
+ "drop_rate_percent": 0.008588497767487026,
+ "rx": {
+ "dropped_pkts": 173,
+ "pkt_bit_rate": 109794496,
+ "pkt_rate": 201823,
+ "max_delay_usec": 4057,
+ "total_pkt_bytes": 136962132,
+ "avg_delay_usec": 78,
+ "total_pkts": 2014149,
+ "min_delay_usec": 31
+ },
+ "tx": {
+ "total_pkt_bytes": 136973896,
+ "total_pkts": 2014322,
+ "pkt_bit_rate": 109800568,
+ "pkt_rate": 201835
+ }
+ },
+ "theoretical_tx_rate_bps": 50000000000.0,
+ "offered_tx_rate_bps": 270724608.0,
+ "theoretical_tx_rate_pps": 74404761.90476191
+ }
+ }
+ },
+ "flow_count": 100000,
+ "bidirectional": true
+ }
+ }
+ },
+ "versions": {
+ "Traffic_Generator": {
+ "build_date": "Apr 14 2021",
+ "version": "v2.89",
+ "built_by": "hhaim",
+ "mode": "STL",
+ "build_time": "11:22:15"
+ }
+ }
+ }
+ }
+ },
+ "request_id": "75ed0568a3cf49929e20d9d4c44a23a0"
+ },
+ "synthesis": {
+ "avg_delay_usec": 76.99996475062306,
+ "total_tx_rate": 402864
+ }
+ },
+ {
+ "input": {
+ "duration_sec": "10",
+ "flavor_type": "nfvbench.loop.basic",
+ "json": "/var/lib/xtesting/results/non-regression/nfvbench-latency-fs_64-fc_100k-rate_90%.json",
+ "frame_sizes": [
+ "64"
+ ],
+ "rate": "90%",
+ "flow_count": "100k",
+ "log_file": "/var/lib/xtesting/results/non-regression/nfvbench.log",
+ "user_label": "amical_tc12_basic"
+ },
+ "output": {
+ "status": "OK",
+ "result": {
+ "date": "2022-03-30 06:45:52",
+ "nfvbench_version": "5.0.4.dev29",
+ "config": {
+ "compute_nodes": null,
+ "traffic_generator": {
+ "mac_addrs_left": null,
+ "gateway_ip_addrs": [
+ "192.168.30.2",
+ "192.168.31.2"
+ ],
+ "mac_addrs_right": null,
+ "default_profile": "trex-local",
+ "src_vteps": null,
+ "generator_profile": [
+ {
+ "intf_speed": null,
+ "name": "trex-local",
+ "ip": "127.0.0.1",
+ "zmq_rpc_port": 4501,
+ "tool": "TRex",
+ "platform": {
+ "master_thread_id": "0",
+ "latency_thread_id": "1",
+ "dual_if": [
+ {
+ "threads": [
+ 2,
+ 3,
+ 4,
+ 5,
+ 6,
+ 7
+ ],
+ "socket": 0
+ }
+ ]
+ },
+ "zmq_pub_port": 4500,
+ "interfaces": [
+ {
+ "switch": null,
+ "pci": "0000:00:05.0",
+ "port": 0
+ },
+ {
+ "switch": null,
+ "pci": "0000:00:06.0",
+ "port": 1
+ }
+ ],
+ "cores": 5,
+ "software_mode": false
+ }
+ ],
+ "vtep_gateway_ips": null,
+ "tg_gateway_ip_addrs_step": "0.0.0.1",
+ "udp_port_step": "1",
+ "udp_src_port": [
+ "49152",
+ "49168"
+ ],
+ "gateway_ip_addrs_step": "0.0.0.1",
+ "tg_gateway_ip_addrs": [
+ "192.168.30.1",
+ "192.168.31.1"
+ ],
+ "ip_addrs": [
+ "198.18.0.0/16",
+ "198.19.0.0/16"
+ ],
+ "ip_src_static": true,
+ "host_name": "nfvbench_tg",
+ "ip_addrs_step": "0.0.0.1",
+ "tg_gateway_ip_cidrs": [
+ "192.168.1.0/24",
+ "192.168.2.0/24"
+ ],
+ "dst_vtep": null,
+ "vtep_vlan": null,
+ "udp_dst_port": [
+ "49152",
+ "49168"
+ ]
+ },
+ "availability_zone": "nova",
+ "vif_multiqueue_size": 8,
+ "periodic_gratuitous_arp": false,
+ "flavor": {
+ "vcpus": 2,
+ "disk": 0,
+ "extra_specs": {
+ "hw:cpu_policy": "dedicated",
+ "hw:mem_page_size": "large"
+ },
+ "ram": 4096
+ },
+ "floating_network": {
+ "subnet": "nfvbench-floating-subnet",
+ "name": "nfvbench-floating-net",
+ "segmentation_id": null,
+ "physical_network": null,
+ "cidr": "192.168.0.0/24",
+ "network_type": "vlan"
+ },
+ "user_info": null,
+ "service_chain": "PVP",
+ "sriov": false,
+ "vxlan": false,
+ "intf_speed_detected": 25000000000.0,
+ "pause_sec": 2.0,
+ "internal_networks": {
+ "middle": {
+ "subnet": "nfvbench-msubnet",
+ "name": "nfvbench-mnet",
+ "segmentation_id": null,
+ "physical_network": null,
+ "mpls_transport_labels": null,
+ "cidr": "192.168.3.0/24",
+ "network_type": "vlan"
+ },
+ "right": {
+ "subnet": "subnet_nfvbench_vn2bis",
+ "name": "net_nfvbench_vn2bis",
+ "segmentation_id": null,
+ "physical_network": null,
+ "mpls_transport_labels": null,
+ "cidr": "192.168.31.0/24",
+ "network_type": "vlan"
+ },
+ "left": {
+ "subnet": "subnet_nfvbench_vn1bis",
+ "name": "net_nfvbench_vn1bis",
+ "segmentation_id": null,
+ "physical_network": null,
+ "mpls_transport_labels": null,
+ "cidr": "192.168.30.0/24",
+ "network_type": "vlan"
+ }
+ },
+ "no_vswitch_access": false,
+ "traffic": {
+ "bidirectional": true,
+ "profile": "custom_traffic_profile"
+ },
+ "restart": false,
+ "vm_image_file": "nfvbenchvm-0.15.0901.qcow2",
+ "name": "nfvbench.conf",
+ "std_json": null,
+ "l2_loopback": false,
+ "request_id": "79137fde73644833ac7d36e6523616ef",
+ "debug": false,
+ "group_id": null,
+ "loop_vm_name": "nfvbench-loop-vm",
+ "check_traffic_time_sec": 200,
+ "num_mbufs": 128000,
+ "rate": "519940pps",
+ "service_chain_count": 1,
+ "service_chain_shared_net": true,
+ "measurement": {
+ "NDR": 0.001,
+ "PDR": 0.1,
+ "load_epsilon": 0.1
+ },
+ "l3_router": false,
+ "debug_mask": 0,
+ "factory_class": "BasicFactory",
+ "tg-tool": "TRex",
+ "frame_sizes": [
+ "64"
+ ],
+ "service_mode": false,
+ "edge_networks": {
+ "right": {
+ "subnet": "nfvbench-subnet3",
+ "name": "nfvbench-net3",
+ "segmentation_id": null,
+ "network_type": null,
+ "physical_network": null,
+ "cidr": "192.168.4.0/24",
+ "router_name": "router_right",
+ "gateway": null
+ },
+ "left": {
+ "subnet": "nfvbench-subnet2",
+ "name": "nfvbench-net2",
+ "segmentation_id": null,
+ "network_type": null,
+ "physical_network": null,
+ "cidr": "192.168.3.0/24",
+ "router_name": "router_left",
+ "gateway": null
+ }
+ },
+ "ndr_run": false,
+ "use_management_port": false,
+ "hypervisor_hostname": "localdomain",
+ "cache_size": 16,
+ "pdr_run": false,
+ "vlan_tagging": false,
+ "fluentd": [
+ {
+ "ip": "172.20.73.203",
+ "result_tag": "nfvbench.results.amical",
+ "logging_tag": "nfvbench.logs.amical",
+ "port": 25225
+ }
+ ],
+ "use_floating_ip": false,
+ "flow_count": 100000,
+ "loop_vm_arp": false,
+ "user_id": null,
+ "openrc_file": null,
+ "disable_hdrh": false,
+ "json": "/var/lib/xtesting/results/non-regression/nfvbench-latency-fs_64-fc_100k-rate_90%.json",
+ "vm_forwarder": "vpp",
+ "factory_module": "nfvbench.factory",
+ "no_latency_streams": false,
+ "single_run": true,
+ "no_arp": false,
+ "cores_used": 5,
+ "traffic_profile": [
+ {
+ "l2frame_size": [
+ "64"
+ ],
+ "name": "custom_traffic_profile"
+ }
+ ],
+ "vlans": [
+ 2512,
+ 2517
+ ],
+ "tg-name": "trex-local",
+ "management_network": {
+ "subnet": "nfvbench-management-subnet",
+ "name": "nfvbench-management-net",
+ "segmentation_id": null,
+ "network_type": "vlan",
+ "physical_network": null,
+ "cidr": "192.168.0.0/24",
+ "gateway": "192.168.0.254"
+ },
+ "no_traffic": false,
+ "mpls": false,
+ "duration_sec": 10.0,
+ "clouds_detail": "openstack",
+ "mbuf_64": null,
+ "generic_poll_sec": 2,
+ "idle_interfaces_per_vm": 0,
+ "no_flow_stats": true,
+ "lat_percentiles": [
+ 25,
+ 75,
+ 99
+ ],
+ "no_cleanup": true,
+ "no_e2e_check": false,
+ "intf_speed_used": 25000000000.0,
+ "generator_profile": "trex-local",
+ "mbuf_factor": 0.2,
+ "user_label": "amical_tc12_basic",
+ "intf_speed": null,
+ "generic_retry_count": 100,
+ "flavor_type": "nfvbench.loop.basic",
+ "use_sriov_middle_net": false,
+ "json_file": "/var/lib/xtesting/results/non-regression/nfvbench-latency-fs_64-fc_100k-rate_90%.json",
+ "std_json_path": null,
+ "unidir_reverse_traffic_pps": 1,
+ "i40e_mixed": "ignore",
+ "gratuitous_arp_pps": 1,
+ "idle_networks": {
+ "subnet": "nfvbench-idle-subnet",
+ "name": "nfvbench-idle-net",
+ "segmentation_id": null,
+ "physical_network": null,
+ "cidr": "192.169.1.0/24",
+ "network_type": "vlan"
+ },
+ "interval_sec": 10.0,
+ "no_latency_stats": false,
+ "cores": null,
+ "log_file": "/var/lib/xtesting/results/non-regression/nfvbench.log",
+ "external_networks": {
+ "right": null,
+ "left": null
+ }
+ },
+ "benchmarks": {
+ "network": {
+ "service_chain": {
+ "PVP": {
+ "result": {
+ "compute_nodes": {},
+ "profile": "custom_traffic_profile",
+ "service_chain_count": 1,
+ "result": {
+ "64": {
+ "run_config": {
+ "direction-forward": {
+ "rx": {
+ "rate_percent": 0.6964035456000001,
+ "rate_pps": 259078,
+ "initial_rate_type": "rate_pps",
+ "rate_bps": 174100886
+ },
+ "tx": {
+ "rate_percent": 0.6964035456000001,
+ "rate_pps": 259078,
+ "initial_rate_type": "rate_pps",
+ "rate_bps": 174100886
+ },
+ "orig": {
+ "rate_percent": 0.69879936,
+ "rate_pps": 259970,
+ "initial_rate_type": "rate_pps",
+ "rate_bps": 174699840
+ }
+ },
+ "direction-total": {
+ "rx": {
+ "rate_percent": 1.3929753599999999,
+ "rate_pps": 518219.0,
+ "rate_bps": 348243839.0
+ },
+ "tx": {
+ "rate_percent": 1.3929753599999999,
+ "rate_pps": 518219.0,
+ "rate_bps": 348243839.0
+ },
+ "orig": {
+ "rate_percent": 1.39759872,
+ "rate_pps": 519940.0,
+ "rate_bps": 349399680.0
+ }
+ },
+ "direction-reverse": {
+ "rx": {
+ "rate_percent": 0.6965718143999999,
+ "rate_pps": 259141,
+ "initial_rate_type": "rate_pps",
+ "rate_bps": 174142953
+ },
+ "tx": {
+ "rate_percent": 0.6965718143999999,
+ "rate_pps": 259141,
+ "initial_rate_type": "rate_pps",
+ "rate_bps": 174142953
+ },
+ "orig": {
+ "rate_percent": 0.69879936,
+ "rate_pps": 259970,
+ "initial_rate_type": "rate_pps",
+ "rate_bps": 174699840
+ }
+ }
+ },
+ "packet_path_stats": {
+ "Forward": {
+ "interfaces": [
+ "TRex.TX.p0",
+ "TRex.RX.p1"
+ ],
+ "chains": {
+ "0": {
+ "packets": [
+ 9943,
+ 9943
+ ],
+ "lat_max_usec": 769,
+ "lat_avg_usec": 108,
+ "lat_min_usec": 36,
+ "hdrh": "HISTFAAAAB54nJNpmSzMwMDAyAABzFAawp8xrcH+A1QAAE9IBCo=",
+ "lat_percentile": {
+ "99": "n/a",
+ "25": "n/a",
+ "75": "n/a"
+ }
+ }
+ }
+ },
+ "Reverse": {
+ "interfaces": [
+ "TRex.TX.p1",
+ "TRex.RX.p0"
+ ],
+ "chains": {
+ "0": {
+ "packets": [
+ 9948,
+ 9948
+ ],
+ "lat_max_usec": 6239,
+ "lat_avg_usec": 113,
+ "lat_min_usec": 34,
+ "hdrh": "HISTFAAAAB54nJNpmSzMwMDAyAABzFAawp8xrcH+A1QAAE9IBCo=",
+ "lat_percentile": {
+ "99": "n/a",
+ "25": "n/a",
+ "75": "n/a"
+ }
+ }
+ }
+ }
+ },
+ "stats": {
+ "total_tx_rate": 518220,
+ "overall": {
+ "drop_rate_percent": 0.0,
+ "rx": {
+ "dropped_pkts": 0,
+ "pkt_bit_rate": 141244984.0,
+ "pkt_rate": 259641.0,
+ "max_delay_usec": 6239,
+ "lat_percentile": {
+ "99": "n/a",
+ "25": "n/a",
+ "75": "n/a"
+ },
+ "avg_delay_usec": 110.49969800470842,
+ "total_pkt_bytes": 352389600,
+ "total_pkts": 5182200,
+ "min_delay_usec": 34
+ },
+ "hdrh": "HISTFAAAABt4nJNpmSzMgADMUJoRTM6Y1mD/ASIAAEr9BCg=",
+ "tx": {
+ "total_pkt_bytes": 352389600,
+ "total_pkts": 5182200,
+ "pkt_bit_rate": 141253832.0,
+ "pkt_rate": 259656.5
+ }
+ },
+ "1": {
+ "drop_rate_percent": 0.0,
+ "rx": {
+ "dropped_pkts": 0,
+ "pkt_bit_rate": 141247136,
+ "pkt_rate": 259645,
+ "max_delay_usec": 6239,
+ "total_pkt_bytes": 176173516,
+ "avg_delay_usec": 113,
+ "total_pkts": 2590787,
+ "min_delay_usec": 34
+ },
+ "tx": {
+ "total_pkt_bytes": 176216084,
+ "total_pkts": 2591413,
+ "pkt_bit_rate": 141261952,
+ "pkt_rate": 259671
+ }
+ },
+ "0": {
+ "drop_rate_percent": 0.0,
+ "rx": {
+ "dropped_pkts": 0,
+ "pkt_bit_rate": 141242832,
+ "pkt_rate": 259637,
+ "max_delay_usec": 769,
+ "total_pkt_bytes": 176216084,
+ "avg_delay_usec": 108,
+ "total_pkts": 2591413,
+ "min_delay_usec": 36
+ },
+ "tx": {
+ "total_pkt_bytes": 176173516,
+ "total_pkts": 2590787,
+ "pkt_bit_rate": 141245712,
+ "pkt_rate": 259642
+ }
+ },
+ "theoretical_tx_rate_bps": 50000000000.0,
+ "offered_tx_rate_bps": 348243840.0,
+ "theoretical_tx_rate_pps": 74404761.90476191
+ }
+ }
+ },
+ "flow_count": 100000,
+ "bidirectional": true
+ }
+ }
+ },
+ "versions": {
+ "Traffic_Generator": {
+ "build_date": "Apr 14 2021",
+ "version": "v2.89",
+ "built_by": "hhaim",
+ "mode": "STL",
+ "build_time": "11:22:15"
+ }
+ }
+ }
+ }
+ },
+ "request_id": "79137fde73644833ac7d36e6523616ef"
+ },
+ "synthesis": {
+ "avg_delay_usec": 110.49969800470842,
+ "total_tx_rate": 518220
+ }
+ },
+ {
+ "input": {
+ "duration_sec": "10",
+ "flavor_type": "nfvbench.loop.basic",
+ "json": "/var/lib/xtesting/results/non-regression/nfvbench-latency-fs_768-fc_100k-rate_70%.json",
+ "frame_sizes": [
+ "768"
+ ],
+ "rate": "70%",
+ "flow_count": "100k",
+ "log_file": "/var/lib/xtesting/results/non-regression/nfvbench.log",
+ "user_label": "amical_tc12_basic"
+ },
+ "output": {
+ "status": "OK",
+ "result": {
+ "date": "2022-03-30 06:46:15",
+ "nfvbench_version": "5.0.4.dev29",
+ "config": {
+ "compute_nodes": null,
+ "traffic_generator": {
+ "mac_addrs_left": null,
+ "gateway_ip_addrs": [
+ "192.168.30.2",
+ "192.168.31.2"
+ ],
+ "mac_addrs_right": null,
+ "default_profile": "trex-local",
+ "src_vteps": null,
+ "generator_profile": [
+ {
+ "intf_speed": null,
+ "name": "trex-local",
+ "ip": "127.0.0.1",
+ "zmq_rpc_port": 4501,
+ "tool": "TRex",
+ "platform": {
+ "master_thread_id": "0",
+ "latency_thread_id": "1",
+ "dual_if": [
+ {
+ "threads": [
+ 2,
+ 3,
+ 4,
+ 5,
+ 6,
+ 7
+ ],
+ "socket": 0
+ }
+ ]
+ },
+ "zmq_pub_port": 4500,
+ "interfaces": [
+ {
+ "switch": null,
+ "pci": "0000:00:05.0",
+ "port": 0
+ },
+ {
+ "switch": null,
+ "pci": "0000:00:06.0",
+ "port": 1
+ }
+ ],
+ "cores": 5,
+ "software_mode": false
+ }
+ ],
+ "vtep_gateway_ips": null,
+ "tg_gateway_ip_addrs_step": "0.0.0.1",
+ "udp_port_step": "1",
+ "udp_src_port": [
+ "49152",
+ "49168"
+ ],
+ "gateway_ip_addrs_step": "0.0.0.1",
+ "tg_gateway_ip_addrs": [
+ "192.168.30.1",
+ "192.168.31.1"
+ ],
+ "ip_addrs": [
+ "198.18.0.0/16",
+ "198.19.0.0/16"
+ ],
+ "ip_src_static": true,
+ "host_name": "nfvbench_tg",
+ "ip_addrs_step": "0.0.0.1",
+ "tg_gateway_ip_cidrs": [
+ "192.168.1.0/24",
+ "192.168.2.0/24"
+ ],
+ "dst_vtep": null,
+ "vtep_vlan": null,
+ "udp_dst_port": [
+ "49152",
+ "49168"
+ ]
+ },
+ "availability_zone": "nova",
+ "vif_multiqueue_size": 8,
+ "periodic_gratuitous_arp": false,
+ "flavor": {
+ "vcpus": 2,
+ "disk": 0,
+ "extra_specs": {
+ "hw:cpu_policy": "dedicated",
+ "hw:mem_page_size": "large"
+ },
+ "ram": 4096
+ },
+ "floating_network": {
+ "subnet": "nfvbench-floating-subnet",
+ "name": "nfvbench-floating-net",
+ "segmentation_id": null,
+ "physical_network": null,
+ "cidr": "192.168.0.0/24",
+ "network_type": "vlan"
+ },
+ "user_info": null,
+ "service_chain": "PVP",
+ "sriov": false,
+ "vxlan": false,
+ "intf_speed_detected": 25000000000.0,
+ "pause_sec": 2.0,
+ "internal_networks": {
+ "middle": {
+ "subnet": "nfvbench-msubnet",
+ "name": "nfvbench-mnet",
+ "segmentation_id": null,
+ "physical_network": null,
+ "mpls_transport_labels": null,
+ "cidr": "192.168.3.0/24",
+ "network_type": "vlan"
+ },
+ "right": {
+ "subnet": "subnet_nfvbench_vn2bis",
+ "name": "net_nfvbench_vn2bis",
+ "segmentation_id": null,
+ "physical_network": null,
+ "mpls_transport_labels": null,
+ "cidr": "192.168.31.0/24",
+ "network_type": "vlan"
+ },
+ "left": {
+ "subnet": "subnet_nfvbench_vn1bis",
+ "name": "net_nfvbench_vn1bis",
+ "segmentation_id": null,
+ "physical_network": null,
+ "mpls_transport_labels": null,
+ "cidr": "192.168.30.0/24",
+ "network_type": "vlan"
+ }
+ },
+ "no_vswitch_access": false,
+ "traffic": {
+ "bidirectional": true,
+ "profile": "custom_traffic_profile"
+ },
+ "restart": false,
+ "vm_image_file": "nfvbenchvm-0.15.0901.qcow2",
+ "name": "nfvbench.conf",
+ "std_json": null,
+ "l2_loopback": false,
+ "request_id": "018ded21d6884356b306acecf1de061e",
+ "debug": false,
+ "group_id": null,
+ "loop_vm_name": "nfvbench-loop-vm",
+ "check_traffic_time_sec": 200,
+ "num_mbufs": 128000,
+ "rate": "323313pps",
+ "service_chain_count": 1,
+ "service_chain_shared_net": true,
+ "measurement": {
+ "NDR": 0.001,
+ "PDR": 0.1,
+ "load_epsilon": 0.1
+ },
+ "l3_router": false,
+ "debug_mask": 0,
+ "factory_class": "BasicFactory",
+ "tg-tool": "TRex",
+ "frame_sizes": [
+ "768"
+ ],
+ "service_mode": false,
+ "edge_networks": {
+ "right": {
+ "subnet": "nfvbench-subnet3",
+ "name": "nfvbench-net3",
+ "segmentation_id": null,
+ "network_type": null,
+ "physical_network": null,
+ "cidr": "192.168.4.0/24",
+ "router_name": "router_right",
+ "gateway": null
+ },
+ "left": {
+ "subnet": "nfvbench-subnet2",
+ "name": "nfvbench-net2",
+ "segmentation_id": null,
+ "network_type": null,
+ "physical_network": null,
+ "cidr": "192.168.3.0/24",
+ "router_name": "router_left",
+ "gateway": null
+ }
+ },
+ "ndr_run": false,
+ "use_management_port": false,
+ "hypervisor_hostname": "localdomain",
+ "cache_size": 16,
+ "pdr_run": false,
+ "vlan_tagging": false,
+ "fluentd": [
+ {
+ "ip": "172.20.73.203",
+ "result_tag": "nfvbench.results.amical",
+ "logging_tag": "nfvbench.logs.amical",
+ "port": 25225
+ }
+ ],
+ "use_floating_ip": false,
+ "flow_count": 100000,
+ "loop_vm_arp": false,
+ "user_id": null,
+ "openrc_file": null,
+ "disable_hdrh": false,
+ "json": "/var/lib/xtesting/results/non-regression/nfvbench-latency-fs_768-fc_100k-rate_70%.json",
+ "vm_forwarder": "vpp",
+ "factory_module": "nfvbench.factory",
+ "no_latency_streams": false,
+ "single_run": true,
+ "no_arp": false,
+ "cores_used": 5,
+ "traffic_profile": [
+ {
+ "l2frame_size": [
+ "768"
+ ],
+ "name": "custom_traffic_profile"
+ }
+ ],
+ "vlans": [
+ 2512,
+ 2517
+ ],
+ "tg-name": "trex-local",
+ "management_network": {
+ "subnet": "nfvbench-management-subnet",
+ "name": "nfvbench-management-net",
+ "segmentation_id": null,
+ "network_type": "vlan",
+ "physical_network": null,
+ "cidr": "192.168.0.0/24",
+ "gateway": "192.168.0.254"
+ },
+ "no_traffic": false,
+ "mpls": false,
+ "duration_sec": 10.0,
+ "clouds_detail": "openstack",
+ "mbuf_64": null,
+ "generic_poll_sec": 2,
+ "idle_interfaces_per_vm": 0,
+ "no_flow_stats": true,
+ "lat_percentiles": [
+ 25,
+ 75,
+ 99
+ ],
+ "no_cleanup": true,
+ "no_e2e_check": false,
+ "intf_speed_used": 25000000000.0,
+ "generator_profile": "trex-local",
+ "mbuf_factor": 0.2,
+ "user_label": "amical_tc12_basic",
+ "intf_speed": null,
+ "generic_retry_count": 100,
+ "flavor_type": "nfvbench.loop.basic",
+ "use_sriov_middle_net": false,
+ "json_file": "/var/lib/xtesting/results/non-regression/nfvbench-latency-fs_768-fc_100k-rate_70%.json",
+ "std_json_path": null,
+ "unidir_reverse_traffic_pps": 1,
+ "i40e_mixed": "ignore",
+ "gratuitous_arp_pps": 1,
+ "idle_networks": {
+ "subnet": "nfvbench-idle-subnet",
+ "name": "nfvbench-idle-net",
+ "segmentation_id": null,
+ "physical_network": null,
+ "cidr": "192.169.1.0/24",
+ "network_type": "vlan"
+ },
+ "interval_sec": 10.0,
+ "no_latency_stats": false,
+ "cores": null,
+ "log_file": "/var/lib/xtesting/results/non-regression/nfvbench.log",
+ "external_networks": {
+ "right": null,
+ "left": null
+ }
+ },
+ "benchmarks": {
+ "network": {
+ "service_chain": {
+ "PVP": {
+ "result": {
+ "compute_nodes": {},
+ "profile": "custom_traffic_profile",
+ "service_chain_count": 1,
+ "result": {
+ "768": {
+ "run_config": {
+ "direction-forward": {
+ "rx": {
+ "rate_percent": 4.060615692799999,
+ "rate_pps": 161033,
+ "initial_rate_type": "rate_pps",
+ "rate_bps": 1015153923
+ },
+ "tx": {
+ "rate_percent": 4.060615692799999,
+ "rate_pps": 161033,
+ "initial_rate_type": "rate_pps",
+ "rate_bps": 1015153923
+ },
+ "orig": {
+ "rate_percent": 4.076330304,
+ "rate_pps": 161656,
+ "initial_rate_type": "rate_pps",
+ "rate_bps": 1019082576
+ }
+ },
+ "direction-total": {
+ "rx": {
+ "rate_percent": 8.1214759808,
+ "rate_pps": 322076.0,
+ "rate_bps": 2030368995.0
+ },
+ "tx": {
+ "rate_percent": 8.1214759808,
+ "rate_pps": 322076.0,
+ "rate_bps": 2030368995.0
+ },
+ "orig": {
+ "rate_percent": 8.152660608,
+ "rate_pps": 323312.0,
+ "rate_bps": 2038165152.0
+ }
+ },
+ "direction-reverse": {
+ "rx": {
+ "rate_percent": 4.060860288,
+ "rate_pps": 161043,
+ "initial_rate_type": "rate_pps",
+ "rate_bps": 1015215072
+ },
+ "tx": {
+ "rate_percent": 4.060860288,
+ "rate_pps": 161043,
+ "initial_rate_type": "rate_pps",
+ "rate_bps": 1015215072
+ },
+ "orig": {
+ "rate_percent": 4.076330304,
+ "rate_pps": 161656,
+ "initial_rate_type": "rate_pps",
+ "rate_bps": 1019082576
+ }
+ }
+ },
+ "packet_path_stats": {
+ "Forward": {
+ "interfaces": [
+ "TRex.TX.p0",
+ "TRex.RX.p1"
+ ],
+ "chains": {
+ "0": {
+ "packets": [
+ 9936,
+ 9936
+ ],
+ "lat_max_usec": 372,
+ "lat_avg_usec": 145,
+ "lat_min_usec": 54,
+ "hdrh": "HISTFAAAAB54nJNpmSzMwMDAyAABzFAawp8xrcH+A1QAAE9IBCo=",
+ "lat_percentile": {
+ "99": "n/a",
+ "25": "n/a",
+ "75": "n/a"
+ }
+ }
+ }
+ },
+ "Reverse": {
+ "interfaces": [
+ "TRex.TX.p1",
+ "TRex.RX.p0"
+ ],
+ "chains": {
+ "0": {
+ "packets": [
+ 9937,
+ 9937
+ ],
+ "lat_max_usec": 4837,
+ "lat_avg_usec": 145,
+ "lat_min_usec": 60,
+ "hdrh": "HISTFAAAAB54nJNpmSzMwMDAyAABzFAawp8xrcH+A1QAAE9IBCo=",
+ "lat_percentile": {
+ "99": "n/a",
+ "25": "n/a",
+ "75": "n/a"
+ }
+ }
+ }
+ }
+ },
+ "stats": {
+ "total_tx_rate": 322076,
+ "overall": {
+ "drop_rate_percent": 0.0,
+ "rx": {
+ "dropped_pkts": 0,
+ "pkt_bit_rate": 997521760.0,
+ "pkt_rate": 161515.5,
+ "max_delay_usec": 4837,
+ "lat_percentile": {
+ "99": "n/a",
+ "25": "n/a",
+ "75": "n/a"
+ },
+ "avg_delay_usec": 145.0,
+ "total_pkt_bytes": 2486429036,
+ "total_pkts": 3220763,
+ "min_delay_usec": 54
+ },
+ "hdrh": "HISTFAAAABt4nJNpmSzMgADMUJoRTM6Y1mD/ASIAAEr9BCg=",
+ "tx": {
+ "total_pkt_bytes": 2486429036,
+ "total_pkts": 3220763,
+ "pkt_bit_rate": 997554144.0,
+ "pkt_rate": 161520.5
+ }
+ },
+ "1": {
+ "drop_rate_percent": 0.0,
+ "rx": {
+ "dropped_pkts": 0,
+ "pkt_bit_rate": 997543808,
+ "pkt_rate": 161519,
+ "max_delay_usec": 4837,
+ "total_pkt_bytes": 1243177076,
+ "avg_delay_usec": 145,
+ "total_pkts": 1610333,
+ "min_delay_usec": 60
+ },
+ "tx": {
+ "total_pkt_bytes": 1243251960,
+ "total_pkts": 1610430,
+ "pkt_bit_rate": 997507712,
+ "pkt_rate": 161513
+ }
+ },
+ "0": {
+ "drop_rate_percent": 0.0,
+ "rx": {
+ "dropped_pkts": 0,
+ "pkt_bit_rate": 997499712,
+ "pkt_rate": 161512,
+ "max_delay_usec": 372,
+ "total_pkt_bytes": 1243251960,
+ "avg_delay_usec": 145,
+ "total_pkts": 1610430,
+ "min_delay_usec": 54
+ },
+ "tx": {
+ "total_pkt_bytes": 1243177076,
+ "total_pkts": 1610333,
+ "pkt_bit_rate": 997600576,
+ "pkt_rate": 161528
+ }
+ },
+ "theoretical_tx_rate_bps": 50000000000.0,
+ "offered_tx_rate_bps": 2030367104.0,
+ "theoretical_tx_rate_pps": 7931472.081218274
+ }
+ }
+ },
+ "flow_count": 100000,
+ "bidirectional": true
+ }
+ }
+ },
+ "versions": {
+ "Traffic_Generator": {
+ "build_date": "Apr 14 2021",
+ "version": "v2.89",
+ "built_by": "hhaim",
+ "mode": "STL",
+ "build_time": "11:22:15"
+ }
+ }
+ }
+ }
+ },
+ "request_id": "018ded21d6884356b306acecf1de061e"
+ },
+ "synthesis": {
+ "avg_delay_usec": 145.0,
+ "total_tx_rate": 322076
+ }
+ },
+ {
+ "input": {
+ "duration_sec": "10",
+ "flavor_type": "nfvbench.loop.basic",
+ "json": "/var/lib/xtesting/results/non-regression/nfvbench-latency-fs_768-fc_100k-rate_90%.json",
+ "frame_sizes": [
+ "768"
+ ],
+ "rate": "90%",
+ "flow_count": "100k",
+ "log_file": "/var/lib/xtesting/results/non-regression/nfvbench.log",
+ "user_label": "amical_tc12_basic"
+ },
+ "output": {
+ "status": "OK",
+ "result": {
+ "date": "2022-03-30 06:46:38",
+ "nfvbench_version": "5.0.4.dev29",
+ "config": {
+ "compute_nodes": null,
+ "traffic_generator": {
+ "mac_addrs_left": null,
+ "gateway_ip_addrs": [
+ "192.168.30.2",
+ "192.168.31.2"
+ ],
+ "mac_addrs_right": null,
+ "default_profile": "trex-local",
+ "src_vteps": null,
+ "generator_profile": [
+ {
+ "intf_speed": null,
+ "name": "trex-local",
+ "ip": "127.0.0.1",
+ "zmq_rpc_port": 4501,
+ "tool": "TRex",
+ "platform": {
+ "master_thread_id": "0",
+ "latency_thread_id": "1",
+ "dual_if": [
+ {
+ "threads": [
+ 2,
+ 3,
+ 4,
+ 5,
+ 6,
+ 7
+ ],
+ "socket": 0
+ }
+ ]
+ },
+ "zmq_pub_port": 4500,
+ "interfaces": [
+ {
+ "switch": null,
+ "pci": "0000:00:05.0",
+ "port": 0
+ },
+ {
+ "switch": null,
+ "pci": "0000:00:06.0",
+ "port": 1
+ }
+ ],
+ "cores": 5,
+ "software_mode": false
+ }
+ ],
+ "vtep_gateway_ips": null,
+ "tg_gateway_ip_addrs_step": "0.0.0.1",
+ "udp_port_step": "1",
+ "udp_src_port": [
+ "49152",
+ "49168"
+ ],
+ "gateway_ip_addrs_step": "0.0.0.1",
+ "tg_gateway_ip_addrs": [
+ "192.168.30.1",
+ "192.168.31.1"
+ ],
+ "ip_addrs": [
+ "198.18.0.0/16",
+ "198.19.0.0/16"
+ ],
+ "ip_src_static": true,
+ "host_name": "nfvbench_tg",
+ "ip_addrs_step": "0.0.0.1",
+ "tg_gateway_ip_cidrs": [
+ "192.168.1.0/24",
+ "192.168.2.0/24"
+ ],
+ "dst_vtep": null,
+ "vtep_vlan": null,
+ "udp_dst_port": [
+ "49152",
+ "49168"
+ ]
+ },
+ "availability_zone": "nova",
+ "vif_multiqueue_size": 8,
+ "periodic_gratuitous_arp": false,
+ "flavor": {
+ "vcpus": 2,
+ "disk": 0,
+ "extra_specs": {
+ "hw:cpu_policy": "dedicated",
+ "hw:mem_page_size": "large"
+ },
+ "ram": 4096
+ },
+ "floating_network": {
+ "subnet": "nfvbench-floating-subnet",
+ "name": "nfvbench-floating-net",
+ "segmentation_id": null,
+ "physical_network": null,
+ "cidr": "192.168.0.0/24",
+ "network_type": "vlan"
+ },
+ "user_info": null,
+ "service_chain": "PVP",
+ "sriov": false,
+ "vxlan": false,
+ "intf_speed_detected": 25000000000.0,
+ "pause_sec": 2.0,
+ "internal_networks": {
+ "middle": {
+ "subnet": "nfvbench-msubnet",
+ "name": "nfvbench-mnet",
+ "segmentation_id": null,
+ "physical_network": null,
+ "mpls_transport_labels": null,
+ "cidr": "192.168.3.0/24",
+ "network_type": "vlan"
+ },
+ "right": {
+ "subnet": "subnet_nfvbench_vn2bis",
+ "name": "net_nfvbench_vn2bis",
+ "segmentation_id": null,
+ "physical_network": null,
+ "mpls_transport_labels": null,
+ "cidr": "192.168.31.0/24",
+ "network_type": "vlan"
+ },
+ "left": {
+ "subnet": "subnet_nfvbench_vn1bis",
+ "name": "net_nfvbench_vn1bis",
+ "segmentation_id": null,
+ "physical_network": null,
+ "mpls_transport_labels": null,
+ "cidr": "192.168.30.0/24",
+ "network_type": "vlan"
+ }
+ },
+ "no_vswitch_access": false,
+ "traffic": {
+ "bidirectional": true,
+ "profile": "custom_traffic_profile"
+ },
+ "restart": false,
+ "vm_image_file": "nfvbenchvm-0.15.0901.qcow2",
+ "name": "nfvbench.conf",
+ "std_json": null,
+ "l2_loopback": false,
+ "request_id": "ad05bbb2c1a747e2a90c860566eea05b",
+ "debug": false,
+ "group_id": null,
+ "loop_vm_name": "nfvbench-loop-vm",
+ "check_traffic_time_sec": 200,
+ "num_mbufs": 128000,
+ "rate": "415688pps",
+ "service_chain_count": 1,
+ "service_chain_shared_net": true,
+ "measurement": {
+ "NDR": 0.001,
+ "PDR": 0.1,
+ "load_epsilon": 0.1
+ },
+ "l3_router": false,
+ "debug_mask": 0,
+ "factory_class": "BasicFactory",
+ "tg-tool": "TRex",
+ "frame_sizes": [
+ "768"
+ ],
+ "service_mode": false,
+ "edge_networks": {
+ "right": {
+ "subnet": "nfvbench-subnet3",
+ "name": "nfvbench-net3",
+ "segmentation_id": null,
+ "network_type": null,
+ "physical_network": null,
+ "cidr": "192.168.4.0/24",
+ "router_name": "router_right",
+ "gateway": null
+ },
+ "left": {
+ "subnet": "nfvbench-subnet2",
+ "name": "nfvbench-net2",
+ "segmentation_id": null,
+ "network_type": null,
+ "physical_network": null,
+ "cidr": "192.168.3.0/24",
+ "router_name": "router_left",
+ "gateway": null
+ }
+ },
+ "ndr_run": false,
+ "use_management_port": false,
+ "hypervisor_hostname": "localdomain",
+ "cache_size": 16,
+ "pdr_run": false,
+ "vlan_tagging": false,
+ "fluentd": [
+ {
+ "ip": "172.20.73.203",
+ "result_tag": "nfvbench.results.amical",
+ "logging_tag": "nfvbench.logs.amical",
+ "port": 25225
+ }
+ ],
+ "use_floating_ip": false,
+ "flow_count": 100000,
+ "loop_vm_arp": false,
+ "user_id": null,
+ "openrc_file": null,
+ "disable_hdrh": false,
+ "json": "/var/lib/xtesting/results/non-regression/nfvbench-latency-fs_768-fc_100k-rate_90%.json",
+ "vm_forwarder": "vpp",
+ "factory_module": "nfvbench.factory",
+ "no_latency_streams": false,
+ "single_run": true,
+ "no_arp": false,
+ "cores_used": 5,
+ "traffic_profile": [
+ {
+ "l2frame_size": [
+ "768"
+ ],
+ "name": "custom_traffic_profile"
+ }
+ ],
+ "vlans": [
+ 2512,
+ 2517
+ ],
+ "tg-name": "trex-local",
+ "management_network": {
+ "subnet": "nfvbench-management-subnet",
+ "name": "nfvbench-management-net",
+ "segmentation_id": null,
+ "network_type": "vlan",
+ "physical_network": null,
+ "cidr": "192.168.0.0/24",
+ "gateway": "192.168.0.254"
+ },
+ "no_traffic": false,
+ "mpls": false,
+ "duration_sec": 10.0,
+ "clouds_detail": "openstack",
+ "mbuf_64": null,
+ "generic_poll_sec": 2,
+ "idle_interfaces_per_vm": 0,
+ "no_flow_stats": true,
+ "lat_percentiles": [
+ 25,
+ 75,
+ 99
+ ],
+ "no_cleanup": true,
+ "no_e2e_check": false,
+ "intf_speed_used": 25000000000.0,
+ "generator_profile": "trex-local",
+ "mbuf_factor": 0.2,
+ "user_label": "amical_tc12_basic",
+ "intf_speed": null,
+ "generic_retry_count": 100,
+ "flavor_type": "nfvbench.loop.basic",
+ "use_sriov_middle_net": false,
+ "json_file": "/var/lib/xtesting/results/non-regression/nfvbench-latency-fs_768-fc_100k-rate_90%.json",
+ "std_json_path": null,
+ "unidir_reverse_traffic_pps": 1,
+ "i40e_mixed": "ignore",
+ "gratuitous_arp_pps": 1,
+ "idle_networks": {
+ "subnet": "nfvbench-idle-subnet",
+ "name": "nfvbench-idle-net",
+ "segmentation_id": null,
+ "physical_network": null,
+ "cidr": "192.169.1.0/24",
+ "network_type": "vlan"
+ },
+ "interval_sec": 10.0,
+ "no_latency_stats": false,
+ "cores": null,
+ "log_file": "/var/lib/xtesting/results/non-regression/nfvbench.log",
+ "external_networks": {
+ "right": null,
+ "left": null
+ }
+ },
+ "benchmarks": {
+ "network": {
+ "service_chain": {
+ "PVP": {
+ "result": {
+ "compute_nodes": {},
+ "profile": "custom_traffic_profile",
+ "service_chain_count": 1,
+ "result": {
+ "768": {
+ "run_config": {
+ "direction-forward": {
+ "rx": {
+ "rate_percent": 5.2271154176,
+ "rate_pps": 207293,
+ "initial_rate_type": "rate_pps",
+ "rate_bps": 1306778854
+ },
+ "tx": {
+ "rate_percent": 5.2271154176,
+ "rate_pps": 207293,
+ "initial_rate_type": "rate_pps",
+ "rate_bps": 1306778854
+ },
+ "orig": {
+ "rate_percent": 5.240994304,
+ "rate_pps": 207844,
+ "initial_rate_type": "rate_pps",
+ "rate_bps": 1310248576
+ }
+ },
+ "direction-total": {
+ "rx": {
+ "rate_percent": 10.454548556800003,
+ "rate_pps": 414599.0,
+ "rate_bps": 2613637138.0
+ },
+ "tx": {
+ "rate_percent": 10.454548556800003,
+ "rate_pps": 414599.0,
+ "rate_bps": 2613637138.0
+ },
+ "orig": {
+ "rate_percent": 10.481988608,
+ "rate_pps": 415688.0,
+ "rate_bps": 2620497152.0
+ }
+ },
+ "direction-reverse": {
+ "rx": {
+ "rate_percent": 5.227433139200001,
+ "rate_pps": 207306,
+ "initial_rate_type": "rate_pps",
+ "rate_bps": 1306858284
+ },
+ "tx": {
+ "rate_percent": 5.227433139200001,
+ "rate_pps": 207306,
+ "initial_rate_type": "rate_pps",
+ "rate_bps": 1306858284
+ },
+ "orig": {
+ "rate_percent": 5.240994304,
+ "rate_pps": 207844,
+ "initial_rate_type": "rate_pps",
+ "rate_bps": 1310248576
+ }
+ }
+ },
+ "packet_path_stats": {
+ "Forward": {
+ "interfaces": [
+ "TRex.TX.p0",
+ "TRex.RX.p1"
+ ],
+ "chains": {
+ "0": {
+ "packets": [
+ 9956,
+ 9956
+ ],
+ "lat_max_usec": 213,
+ "lat_avg_usec": 79,
+ "lat_min_usec": 33,
+ "hdrh": "HISTFAAAAB54nJNpmSzMwMDAyAABzFAawp8xrcH+A1QAAE9IBCo=",
+ "lat_percentile": {
+ "99": "n/a",
+ "25": "n/a",
+ "75": "n/a"
+ }
+ }
+ }
+ },
+ "Reverse": {
+ "interfaces": [
+ "TRex.TX.p1",
+ "TRex.RX.p0"
+ ],
+ "chains": {
+ "0": {
+ "packets": [
+ 9958,
+ 9958
+ ],
+ "lat_max_usec": 3751,
+ "lat_avg_usec": 80,
+ "lat_min_usec": 32,
+ "hdrh": "HISTFAAAAB54nJNpmSzMwMDAyAABzFAawp8xrcH+A1QAAE9IBCo=",
+ "lat_percentile": {
+ "99": "n/a",
+ "25": "n/a",
+ "75": "n/a"
+ }
+ }
+ }
+ }
+ },
+ "stats": {
+ "total_tx_rate": 414599,
+ "overall": {
+ "drop_rate_percent": 0.0,
+ "rx": {
+ "dropped_pkts": 0,
+ "pkt_bit_rate": 1277907840.0,
+ "pkt_rate": 206914.5,
+ "max_delay_usec": 3751,
+ "lat_percentile": {
+ "99": "n/a",
+ "25": "n/a",
+ "75": "n/a"
+ },
+ "avg_delay_usec": 79.49998480462364,
+ "total_pkt_bytes": 3200710456,
+ "total_pkts": 4145998,
+ "min_delay_usec": 32
+ },
+ "hdrh": "HISTFAAAABt4nJNpmSzMgADMUJoRTM6Y1mD/ASIAAEr9BCg=",
+ "tx": {
+ "total_pkt_bytes": 3200710456,
+ "total_pkts": 4145998,
+ "pkt_bit_rate": 1279049856.0,
+ "pkt_rate": 207099.5
+ }
+ },
+ "1": {
+ "drop_rate_percent": 0.0,
+ "rx": {
+ "dropped_pkts": 0,
+ "pkt_bit_rate": 1275807616,
+ "pkt_rate": 206575,
+ "max_delay_usec": 3751,
+ "total_pkt_bytes": 1600306592,
+ "avg_delay_usec": 80,
+ "total_pkts": 2072936,
+ "min_delay_usec": 32
+ },
+ "tx": {
+ "total_pkt_bytes": 1600403864,
+ "total_pkts": 2073062,
+ "pkt_bit_rate": 1279909120,
+ "pkt_rate": 207239
+ }
+ },
+ "0": {
+ "drop_rate_percent": 0.0,
+ "rx": {
+ "dropped_pkts": 0,
+ "pkt_bit_rate": 1280008064,
+ "pkt_rate": 207254,
+ "max_delay_usec": 213,
+ "total_pkt_bytes": 1600403864,
+ "avg_delay_usec": 79,
+ "total_pkts": 2073062,
+ "min_delay_usec": 33
+ },
+ "tx": {
+ "total_pkt_bytes": 1600306592,
+ "total_pkts": 2072936,
+ "pkt_bit_rate": 1278190592,
+ "pkt_rate": 206960
+ }
+ },
+ "theoretical_tx_rate_bps": 50000000000.0,
+ "offered_tx_rate_bps": 2613632096.0,
+ "theoretical_tx_rate_pps": 7931472.081218274
+ }
+ }
+ },
+ "flow_count": 100000,
+ "bidirectional": true
+ }
+ }
+ },
+ "versions": {
+ "Traffic_Generator": {
+ "build_date": "Apr 14 2021",
+ "version": "v2.89",
+ "built_by": "hhaim",
+ "mode": "STL",
+ "build_time": "11:22:15"
+ }
+ }
+ }
+ }
+ },
+ "request_id": "ad05bbb2c1a747e2a90c860566eea05b"
+ },
+ "synthesis": {
+ "avg_delay_usec": 79.49998480462364,
+ "total_tx_rate": 414599
+ }
+ },
+ {
+ "input": {
+ "duration_sec": "10",
+ "flavor_type": "nfvbench.loop.basic",
+ "json": "/var/lib/xtesting/results/non-regression/nfvbench-latency-fs_1518-fc_100k-rate_70%.json",
+ "frame_sizes": [
+ "1518"
+ ],
+ "rate": "70%",
+ "flow_count": "100k",
+ "log_file": "/var/lib/xtesting/results/non-regression/nfvbench.log",
+ "user_label": "amical_tc12_basic"
+ },
+ "output": {
+ "status": "OK",
+ "result": {
+ "date": "2022-03-30 06:47:01",
+ "nfvbench_version": "5.0.4.dev29",
+ "config": {
+ "compute_nodes": null,
+ "traffic_generator": {
+ "mac_addrs_left": null,
+ "gateway_ip_addrs": [
+ "192.168.30.2",
+ "192.168.31.2"
+ ],
+ "mac_addrs_right": null,
+ "default_profile": "trex-local",
+ "src_vteps": null,
+ "generator_profile": [
+ {
+ "intf_speed": null,
+ "name": "trex-local",
+ "ip": "127.0.0.1",
+ "zmq_rpc_port": 4501,
+ "tool": "TRex",
+ "platform": {
+ "master_thread_id": "0",
+ "latency_thread_id": "1",
+ "dual_if": [
+ {
+ "threads": [
+ 2,
+ 3,
+ 4,
+ 5,
+ 6,
+ 7
+ ],
+ "socket": 0
+ }
+ ]
+ },
+ "zmq_pub_port": 4500,
+ "interfaces": [
+ {
+ "switch": null,
+ "pci": "0000:00:05.0",
+ "port": 0
+ },
+ {
+ "switch": null,
+ "pci": "0000:00:06.0",
+ "port": 1
+ }
+ ],
+ "cores": 5,
+ "software_mode": false
+ }
+ ],
+ "vtep_gateway_ips": null,
+ "tg_gateway_ip_addrs_step": "0.0.0.1",
+ "udp_port_step": "1",
+ "udp_src_port": [
+ "49152",
+ "49168"
+ ],
+ "gateway_ip_addrs_step": "0.0.0.1",
+ "tg_gateway_ip_addrs": [
+ "192.168.30.1",
+ "192.168.31.1"
+ ],
+ "ip_addrs": [
+ "198.18.0.0/16",
+ "198.19.0.0/16"
+ ],
+ "ip_src_static": true,
+ "host_name": "nfvbench_tg",
+ "ip_addrs_step": "0.0.0.1",
+ "tg_gateway_ip_cidrs": [
+ "192.168.1.0/24",
+ "192.168.2.0/24"
+ ],
+ "dst_vtep": null,
+ "vtep_vlan": null,
+ "udp_dst_port": [
+ "49152",
+ "49168"
+ ]
+ },
+ "availability_zone": "nova",
+ "vif_multiqueue_size": 8,
+ "periodic_gratuitous_arp": false,
+ "flavor": {
+ "vcpus": 2,
+ "disk": 0,
+ "extra_specs": {
+ "hw:cpu_policy": "dedicated",
+ "hw:mem_page_size": "large"
+ },
+ "ram": 4096
+ },
+ "floating_network": {
+ "subnet": "nfvbench-floating-subnet",
+ "name": "nfvbench-floating-net",
+ "segmentation_id": null,
+ "physical_network": null,
+ "cidr": "192.168.0.0/24",
+ "network_type": "vlan"
+ },
+ "user_info": null,
+ "service_chain": "PVP",
+ "sriov": false,
+ "vxlan": false,
+ "intf_speed_detected": 25000000000.0,
+ "pause_sec": 2.0,
+ "internal_networks": {
+ "middle": {
+ "subnet": "nfvbench-msubnet",
+ "name": "nfvbench-mnet",
+ "segmentation_id": null,
+ "physical_network": null,
+ "mpls_transport_labels": null,
+ "cidr": "192.168.3.0/24",
+ "network_type": "vlan"
+ },
+ "right": {
+ "subnet": "subnet_nfvbench_vn2bis",
+ "name": "net_nfvbench_vn2bis",
+ "segmentation_id": null,
+ "physical_network": null,
+ "mpls_transport_labels": null,
+ "cidr": "192.168.31.0/24",
+ "network_type": "vlan"
+ },
+ "left": {
+ "subnet": "subnet_nfvbench_vn1bis",
+ "name": "net_nfvbench_vn1bis",
+ "segmentation_id": null,
+ "physical_network": null,
+ "mpls_transport_labels": null,
+ "cidr": "192.168.30.0/24",
+ "network_type": "vlan"
+ }
+ },
+ "no_vswitch_access": false,
+ "traffic": {
+ "bidirectional": true,
+ "profile": "custom_traffic_profile"
+ },
+ "restart": false,
+ "vm_image_file": "nfvbenchvm-0.15.0901.qcow2",
+ "name": "nfvbench.conf",
+ "std_json": null,
+ "l2_loopback": false,
+ "request_id": "cc041b8004d74c0a8d8594f9b1cb7094",
+ "debug": false,
+ "group_id": null,
+ "loop_vm_name": "nfvbench-loop-vm",
+ "check_traffic_time_sec": 200,
+ "num_mbufs": 128000,
+ "rate": "353370pps",
+ "service_chain_count": 1,
+ "service_chain_shared_net": true,
+ "measurement": {
+ "NDR": 0.001,
+ "PDR": 0.1,
+ "load_epsilon": 0.1
+ },
+ "l3_router": false,
+ "debug_mask": 0,
+ "factory_class": "BasicFactory",
+ "tg-tool": "TRex",
+ "frame_sizes": [
+ "1518"
+ ],
+ "service_mode": false,
+ "edge_networks": {
+ "right": {
+ "subnet": "nfvbench-subnet3",
+ "name": "nfvbench-net3",
+ "segmentation_id": null,
+ "network_type": null,
+ "physical_network": null,
+ "cidr": "192.168.4.0/24",
+ "router_name": "router_right",
+ "gateway": null
+ },
+ "left": {
+ "subnet": "nfvbench-subnet2",
+ "name": "nfvbench-net2",
+ "segmentation_id": null,
+ "network_type": null,
+ "physical_network": null,
+ "cidr": "192.168.3.0/24",
+ "router_name": "router_left",
+ "gateway": null
+ }
+ },
+ "ndr_run": false,
+ "use_management_port": false,
+ "hypervisor_hostname": "localdomain",
+ "cache_size": 16,
+ "pdr_run": false,
+ "vlan_tagging": false,
+ "fluentd": [
+ {
+ "ip": "172.20.73.203",
+ "result_tag": "nfvbench.results.amical",
+ "logging_tag": "nfvbench.logs.amical",
+ "port": 25225
+ }
+ ],
+ "use_floating_ip": false,
+ "flow_count": 100000,
+ "loop_vm_arp": false,
+ "user_id": null,
+ "openrc_file": null,
+ "disable_hdrh": false,
+ "json": "/var/lib/xtesting/results/non-regression/nfvbench-latency-fs_1518-fc_100k-rate_70%.json",
+ "vm_forwarder": "vpp",
+ "factory_module": "nfvbench.factory",
+ "no_latency_streams": false,
+ "single_run": true,
+ "no_arp": false,
+ "cores_used": 5,
+ "traffic_profile": [
+ {
+ "l2frame_size": [
+ "1518"
+ ],
+ "name": "custom_traffic_profile"
+ }
+ ],
+ "vlans": [
+ 2512,
+ 2517
+ ],
+ "tg-name": "trex-local",
+ "management_network": {
+ "subnet": "nfvbench-management-subnet",
+ "name": "nfvbench-management-net",
+ "segmentation_id": null,
+ "network_type": "vlan",
+ "physical_network": null,
+ "cidr": "192.168.0.0/24",
+ "gateway": "192.168.0.254"
+ },
+ "no_traffic": false,
+ "mpls": false,
+ "duration_sec": 10.0,
+ "clouds_detail": "openstack",
+ "mbuf_64": null,
+ "generic_poll_sec": 2,
+ "idle_interfaces_per_vm": 0,
+ "no_flow_stats": true,
+ "lat_percentiles": [
+ 25,
+ 75,
+ 99
+ ],
+ "no_cleanup": true,
+ "no_e2e_check": false,
+ "intf_speed_used": 25000000000.0,
+ "generator_profile": "trex-local",
+ "mbuf_factor": 0.2,
+ "user_label": "amical_tc12_basic",
+ "intf_speed": null,
+ "generic_retry_count": 100,
+ "flavor_type": "nfvbench.loop.basic",
+ "use_sriov_middle_net": false,
+ "json_file": "/var/lib/xtesting/results/non-regression/nfvbench-latency-fs_1518-fc_100k-rate_70%.json",
+ "std_json_path": null,
+ "unidir_reverse_traffic_pps": 1,
+ "i40e_mixed": "ignore",
+ "gratuitous_arp_pps": 1,
+ "idle_networks": {
+ "subnet": "nfvbench-idle-subnet",
+ "name": "nfvbench-idle-net",
+ "segmentation_id": null,
+ "physical_network": null,
+ "cidr": "192.169.1.0/24",
+ "network_type": "vlan"
+ },
+ "interval_sec": 10.0,
+ "no_latency_stats": false,
+ "cores": null,
+ "log_file": "/var/lib/xtesting/results/non-regression/nfvbench.log",
+ "external_networks": {
+ "right": null,
+ "left": null
+ }
+ },
+ "benchmarks": {
+ "network": {
+ "service_chain": {
+ "PVP": {
+ "result": {
+ "compute_nodes": {},
+ "profile": "custom_traffic_profile",
+ "service_chain_count": 1,
+ "result": {
+ "1518": {
+ "run_config": {
+ "direction-forward": {
+ "rx": {
+ "rate_percent": 8.6593927872,
+ "rate_pps": 175946,
+ "initial_rate_type": "rate_pps",
+ "rate_bps": 2164848196
+ },
+ "tx": {
+ "rate_percent": 8.662744396799999,
+ "rate_pps": 176014,
+ "initial_rate_type": "rate_pps",
+ "rate_bps": 2165686099
+ },
+ "orig": {
+ "rate_percent": 8.69572896,
+ "rate_pps": 176685,
+ "initial_rate_type": "rate_pps",
+ "rate_bps": 2173932240
+ }
+ },
+ "direction-total": {
+ "rx": {
+ "rate_percent": 17.321684396800002,
+ "rate_pps": 351951.0,
+ "rate_bps": 4330421098.0
+ },
+ "tx": {
+ "rate_percent": 17.326015404799996,
+ "rate_pps": 352039.0,
+ "rate_bps": 4331503851.0
+ },
+ "orig": {
+ "rate_percent": 17.39145792,
+ "rate_pps": 353370.0,
+ "rate_bps": 4347864480.0
+ }
+ },
+ "direction-reverse": {
+ "rx": {
+ "rate_percent": 8.6622916096,
+ "rate_pps": 176005,
+ "initial_rate_type": "rate_pps",
+ "rate_bps": 2165572902
+ },
+ "tx": {
+ "rate_percent": 8.663271007999999,
+ "rate_pps": 176025,
+ "initial_rate_type": "rate_pps",
+ "rate_bps": 2165817752
+ },
+ "orig": {
+ "rate_percent": 8.69572896,
+ "rate_pps": 176685,
+ "initial_rate_type": "rate_pps",
+ "rate_bps": 2173932240
+ }
+ }
+ },
+ "packet_path_stats": {
+ "Forward": {
+ "interfaces": [
+ "TRex.TX.p0",
+ "TRex.RX.p1"
+ ],
+ "chains": {
+ "0": {
+ "packets": [
+ 9938,
+ "-4 (-0.0402%)"
+ ],
+ "lat_max_usec": 2443,
+ "lat_avg_usec": 112,
+ "lat_min_usec": 36,
+ "hdrh": "HISTFAAAAB54nJNpmSzMwMDAyAABzFAawp8xrcH+A1QAAE9IBCo=",
+ "lat_percentile": {
+ "99": "n/a",
+ "25": "n/a",
+ "75": "n/a"
+ }
+ }
+ }
+ },
+ "Reverse": {
+ "interfaces": [
+ "TRex.TX.p1",
+ "TRex.RX.p0"
+ ],
+ "chains": {
+ "0": {
+ "packets": [
+ 9939,
+ 9939
+ ],
+ "lat_max_usec": 12936,
+ "lat_avg_usec": 116,
+ "lat_min_usec": 38,
+ "hdrh": "HISTFAAAAB54nJNpmSzMwMDAyAABzFAawp8xrcH+A1QAAE9IBCo=",
+ "lat_percentile": {
+ "99": "n/a",
+ "25": "n/a",
+ "75": "n/a"
+ }
+ }
+ }
+ }
+ },
+ "stats": {
+ "total_tx_rate": 352040,
+ "overall": {
+ "drop_rate_percent": 0.02499713811174459,
+ "rx": {
+ "dropped_pkts": 880,
+ "pkt_bit_rate": 2018299584.0,
+ "pkt_rate": 165760.0,
+ "max_delay_usec": 12936,
+ "lat_percentile": {
+ "99": "n/a",
+ "25": "n/a",
+ "75": "n/a"
+ },
+ "avg_delay_usec": 113.99966529555283,
+ "total_pkt_bytes": 5356714006,
+ "total_pkts": 3519523,
+ "min_delay_usec": 36
+ },
+ "hdrh": "HISTFAAAABt4nJNpmSzMgADMUJoRTM6Y1mD/ASIAAEr9BCg=",
+ "tx": {
+ "total_pkt_bytes": 5358053366,
+ "total_pkts": 3520403,
+ "pkt_bit_rate": 2018089472.0,
+ "pkt_rate": 165742.5
+ }
+ },
+ "1": {
+ "drop_rate_percent": 0.03868757651590252,
+ "rx": {
+ "dropped_pkts": 681,
+ "pkt_bit_rate": 2007099776,
+ "pkt_rate": 164840,
+ "max_delay_usec": 12936,
+ "total_pkt_bytes": 2677908774,
+ "avg_delay_usec": 116,
+ "total_pkts": 1759467,
+ "min_delay_usec": 38
+ },
+ "tx": {
+ "total_pkt_bytes": 2679108110,
+ "total_pkts": 1760255,
+ "pkt_bit_rate": 2018672768,
+ "pkt_rate": 165791
+ }
+ },
+ "0": {
+ "drop_rate_percent": 0.011305867461145312,
+ "rx": {
+ "dropped_pkts": 199,
+ "pkt_bit_rate": 2029499392,
+ "pkt_rate": 166680,
+ "max_delay_usec": 2443,
+ "total_pkt_bytes": 2678805232,
+ "avg_delay_usec": 112,
+ "total_pkts": 1760056,
+ "min_delay_usec": 36
+ },
+ "tx": {
+ "total_pkt_bytes": 2678945256,
+ "total_pkts": 1760148,
+ "pkt_bit_rate": 2017506176,
+ "pkt_rate": 165694
+ }
+ },
+ "theoretical_tx_rate_bps": 50000000000.0,
+ "offered_tx_rate_bps": 4331500160.0,
+ "theoretical_tx_rate_pps": 4063719.1157347206
+ }
+ }
+ },
+ "flow_count": 100000,
+ "bidirectional": true
+ }
+ }
+ },
+ "versions": {
+ "Traffic_Generator": {
+ "build_date": "Apr 14 2021",
+ "version": "v2.89",
+ "built_by": "hhaim",
+ "mode": "STL",
+ "build_time": "11:22:15"
+ }
+ }
+ }
+ }
+ },
+ "request_id": "cc041b8004d74c0a8d8594f9b1cb7094"
+ },
+ "synthesis": {
+ "avg_delay_usec": 113.99966529555283,
+ "total_tx_rate": 352040
+ }
+ },
+ {
+ "input": {
+ "duration_sec": "10",
+ "flavor_type": "nfvbench.loop.basic",
+ "json": "/var/lib/xtesting/results/non-regression/nfvbench-latency-fs_1518-fc_100k-rate_90%.json",
+ "frame_sizes": [
+ "1518"
+ ],
+ "rate": "90%",
+ "flow_count": "100k",
+ "log_file": "/var/lib/xtesting/results/non-regression/nfvbench.log",
+ "user_label": "amical_tc12_basic"
+ },
+ "output": {
+ "status": "OK",
+ "result": {
+ "date": "2022-03-30 06:47:24",
+ "nfvbench_version": "5.0.4.dev29",
+ "config": {
+ "compute_nodes": null,
+ "traffic_generator": {
+ "mac_addrs_left": null,
+ "gateway_ip_addrs": [
+ "192.168.30.2",
+ "192.168.31.2"
+ ],
+ "mac_addrs_right": null,
+ "default_profile": "trex-local",
+ "src_vteps": null,
+ "generator_profile": [
+ {
+ "intf_speed": null,
+ "name": "trex-local",
+ "ip": "127.0.0.1",
+ "zmq_rpc_port": 4501,
+ "tool": "TRex",
+ "platform": {
+ "master_thread_id": "0",
+ "latency_thread_id": "1",
+ "dual_if": [
+ {
+ "threads": [
+ 2,
+ 3,
+ 4,
+ 5,
+ 6,
+ 7
+ ],
+ "socket": 0
+ }
+ ]
+ },
+ "zmq_pub_port": 4500,
+ "interfaces": [
+ {
+ "switch": null,
+ "pci": "0000:00:05.0",
+ "port": 0
+ },
+ {
+ "switch": null,
+ "pci": "0000:00:06.0",
+ "port": 1
+ }
+ ],
+ "cores": 5,
+ "software_mode": false
+ }
+ ],
+ "vtep_gateway_ips": null,
+ "tg_gateway_ip_addrs_step": "0.0.0.1",
+ "udp_port_step": "1",
+ "udp_src_port": [
+ "49152",
+ "49168"
+ ],
+ "gateway_ip_addrs_step": "0.0.0.1",
+ "tg_gateway_ip_addrs": [
+ "192.168.30.1",
+ "192.168.31.1"
+ ],
+ "ip_addrs": [
+ "198.18.0.0/16",
+ "198.19.0.0/16"
+ ],
+ "ip_src_static": true,
+ "host_name": "nfvbench_tg",
+ "ip_addrs_step": "0.0.0.1",
+ "tg_gateway_ip_cidrs": [
+ "192.168.1.0/24",
+ "192.168.2.0/24"
+ ],
+ "dst_vtep": null,
+ "vtep_vlan": null,
+ "udp_dst_port": [
+ "49152",
+ "49168"
+ ]
+ },
+ "availability_zone": "nova",
+ "vif_multiqueue_size": 8,
+ "periodic_gratuitous_arp": false,
+ "flavor": {
+ "vcpus": 2,
+ "disk": 0,
+ "extra_specs": {
+ "hw:cpu_policy": "dedicated",
+ "hw:mem_page_size": "large"
+ },
+ "ram": 4096
+ },
+ "floating_network": {
+ "subnet": "nfvbench-floating-subnet",
+ "name": "nfvbench-floating-net",
+ "segmentation_id": null,
+ "physical_network": null,
+ "cidr": "192.168.0.0/24",
+ "network_type": "vlan"
+ },
+ "user_info": null,
+ "service_chain": "PVP",
+ "sriov": false,
+ "vxlan": false,
+ "intf_speed_detected": 25000000000.0,
+ "pause_sec": 2.0,
+ "internal_networks": {
+ "middle": {
+ "subnet": "nfvbench-msubnet",
+ "name": "nfvbench-mnet",
+ "segmentation_id": null,
+ "physical_network": null,
+ "mpls_transport_labels": null,
+ "cidr": "192.168.3.0/24",
+ "network_type": "vlan"
+ },
+ "right": {
+ "subnet": "subnet_nfvbench_vn2bis",
+ "name": "net_nfvbench_vn2bis",
+ "segmentation_id": null,
+ "physical_network": null,
+ "mpls_transport_labels": null,
+ "cidr": "192.168.31.0/24",
+ "network_type": "vlan"
+ },
+ "left": {
+ "subnet": "subnet_nfvbench_vn1bis",
+ "name": "net_nfvbench_vn1bis",
+ "segmentation_id": null,
+ "physical_network": null,
+ "mpls_transport_labels": null,
+ "cidr": "192.168.30.0/24",
+ "network_type": "vlan"
+ }
+ },
+ "no_vswitch_access": false,
+ "traffic": {
+ "bidirectional": true,
+ "profile": "custom_traffic_profile"
+ },
+ "restart": false,
+ "vm_image_file": "nfvbenchvm-0.15.0901.qcow2",
+ "name": "nfvbench.conf",
+ "std_json": null,
+ "l2_loopback": false,
+ "request_id": "c882cf33b2e045618c1b76b924573708",
+ "debug": false,
+ "group_id": null,
+ "loop_vm_name": "nfvbench-loop-vm",
+ "check_traffic_time_sec": 200,
+ "num_mbufs": 128000,
+ "rate": "454333pps",
+ "service_chain_count": 1,
+ "service_chain_shared_net": true,
+ "measurement": {
+ "NDR": 0.001,
+ "PDR": 0.1,
+ "load_epsilon": 0.1
+ },
+ "l3_router": false,
+ "debug_mask": 0,
+ "factory_class": "BasicFactory",
+ "tg-tool": "TRex",
+ "frame_sizes": [
+ "1518"
+ ],
+ "service_mode": false,
+ "edge_networks": {
+ "right": {
+ "subnet": "nfvbench-subnet3",
+ "name": "nfvbench-net3",
+ "segmentation_id": null,
+ "network_type": null,
+ "physical_network": null,
+ "cidr": "192.168.4.0/24",
+ "router_name": "router_right",
+ "gateway": null
+ },
+ "left": {
+ "subnet": "nfvbench-subnet2",
+ "name": "nfvbench-net2",
+ "segmentation_id": null,
+ "network_type": null,
+ "physical_network": null,
+ "cidr": "192.168.3.0/24",
+ "router_name": "router_left",
+ "gateway": null
+ }
+ },
+ "ndr_run": false,
+ "use_management_port": false,
+ "hypervisor_hostname": "localdomain",
+ "cache_size": 16,
+ "pdr_run": false,
+ "vlan_tagging": false,
+ "fluentd": [
+ {
+ "ip": "172.20.73.203",
+ "result_tag": "nfvbench.results.amical",
+ "logging_tag": "nfvbench.logs.amical",
+ "port": 25225
+ }
+ ],
+ "use_floating_ip": false,
+ "flow_count": 100000,
+ "loop_vm_arp": false,
+ "user_id": null,
+ "openrc_file": null,
+ "disable_hdrh": false,
+ "json": "/var/lib/xtesting/results/non-regression/nfvbench-latency-fs_1518-fc_100k-rate_90%.json",
+ "vm_forwarder": "vpp",
+ "factory_module": "nfvbench.factory",
+ "no_latency_streams": false,
+ "single_run": true,
+ "no_arp": false,
+ "cores_used": 5,
+ "traffic_profile": [
+ {
+ "l2frame_size": [
+ "1518"
+ ],
+ "name": "custom_traffic_profile"
+ }
+ ],
+ "vlans": [
+ 2512,
+ 2517
+ ],
+ "tg-name": "trex-local",
+ "management_network": {
+ "subnet": "nfvbench-management-subnet",
+ "name": "nfvbench-management-net",
+ "segmentation_id": null,
+ "network_type": "vlan",
+ "physical_network": null,
+ "cidr": "192.168.0.0/24",
+ "gateway": "192.168.0.254"
+ },
+ "no_traffic": false,
+ "mpls": false,
+ "duration_sec": 10.0,
+ "clouds_detail": "openstack",
+ "mbuf_64": null,
+ "generic_poll_sec": 2,
+ "idle_interfaces_per_vm": 0,
+ "no_flow_stats": true,
+ "lat_percentiles": [
+ 25,
+ 75,
+ 99
+ ],
+ "no_cleanup": true,
+ "no_e2e_check": false,
+ "intf_speed_used": 25000000000.0,
+ "generator_profile": "trex-local",
+ "mbuf_factor": 0.2,
+ "user_label": "amical_tc12_basic",
+ "intf_speed": null,
+ "generic_retry_count": 100,
+ "flavor_type": "nfvbench.loop.basic",
+ "use_sriov_middle_net": false,
+ "json_file": "/var/lib/xtesting/results/non-regression/nfvbench-latency-fs_1518-fc_100k-rate_90%.json",
+ "std_json_path": null,
+ "unidir_reverse_traffic_pps": 1,
+ "i40e_mixed": "ignore",
+ "gratuitous_arp_pps": 1,
+ "idle_networks": {
+ "subnet": "nfvbench-idle-subnet",
+ "name": "nfvbench-idle-net",
+ "segmentation_id": null,
+ "physical_network": null,
+ "cidr": "192.169.1.0/24",
+ "network_type": "vlan"
+ },
+ "interval_sec": 10.0,
+ "no_latency_stats": false,
+ "cores": null,
+ "log_file": "/var/lib/xtesting/results/non-regression/nfvbench.log",
+ "external_networks": {
+ "right": null,
+ "left": null
+ }
+ },
+ "benchmarks": {
+ "network": {
+ "service_chain": {
+ "PVP": {
+ "result": {
+ "compute_nodes": {},
+ "profile": "custom_traffic_profile",
+ "service_chain_count": 1,
+ "result": {
+ "1518": {
+ "run_config": {
+ "direction-forward": {
+ "rx": {
+ "rate_percent": 11.1361683008,
+ "rate_pps": 226271,
+ "initial_rate_type": "rate_pps",
+ "rate_bps": 2784042075
+ },
+ "tx": {
+ "rate_percent": 11.137846566399999,
+ "rate_pps": 226305,
+ "initial_rate_type": "rate_pps",
+ "rate_bps": 2784461641
+ },
+ "orig": {
+ "rate_percent": 11.180226464,
+ "rate_pps": 227166,
+ "initial_rate_type": "rate_pps",
+ "rate_bps": 2795056616
+ }
+ },
+ "direction-total": {
+ "rx": {
+ "rate_percent": 22.2746891264,
+ "rate_pps": 452590.0,
+ "rate_bps": 5568672281.0
+ },
+ "tx": {
+ "rate_percent": 22.276367391999997,
+ "rate_pps": 452624.0,
+ "rate_bps": 5569091847.0
+ },
+ "orig": {
+ "rate_percent": 22.360452928,
+ "rate_pps": 454332.0,
+ "rate_bps": 5590113232.0
+ }
+ },
+ "direction-reverse": {
+ "rx": {
+ "rate_percent": 11.1385208256,
+ "rate_pps": 226319,
+ "initial_rate_type": "rate_pps",
+ "rate_bps": 2784630206
+ },
+ "tx": {
+ "rate_percent": 11.1385208256,
+ "rate_pps": 226319,
+ "initial_rate_type": "rate_pps",
+ "rate_bps": 2784630206
+ },
+ "orig": {
+ "rate_percent": 11.180226464,
+ "rate_pps": 227166,
+ "initial_rate_type": "rate_pps",
+ "rate_bps": 2795056616
+ }
+ }
+ },
+ "packet_path_stats": {
+ "Forward": {
+ "interfaces": [
+ "TRex.TX.p0",
+ "TRex.RX.p1"
+ ],
+ "chains": {
+ "0": {
+ "packets": [
+ 9937,
+ "-1 (-0.0101%)"
+ ],
+ "lat_max_usec": 198,
+ "lat_avg_usec": 90,
+ "lat_min_usec": 37,
+ "hdrh": "HISTFAAAAB54nJNpmSzMwMDAyAABzFAawp8xrcH+A1QAAE9IBCo=",
+ "lat_percentile": {
+ "99": "n/a",
+ "25": "n/a",
+ "75": "n/a"
+ }
+ }
+ }
+ },
+ "Reverse": {
+ "interfaces": [
+ "TRex.TX.p1",
+ "TRex.RX.p0"
+ ],
+ "chains": {
+ "0": {
+ "packets": [
+ 9938,
+ 9938
+ ],
+ "lat_max_usec": 5322,
+ "lat_avg_usec": 93,
+ "lat_min_usec": 35,
+ "hdrh": "HISTFAAAAB54nJNpmSzMwMDAyAABzFAawp8xrcH+A1QAAE9IBCo=",
+ "lat_percentile": {
+ "99": "n/a",
+ "25": "n/a",
+ "75": "n/a"
+ }
+ }
+ }
+ }
+ },
+ "stats": {
+ "total_tx_rate": 452624,
+ "overall": {
+ "drop_rate_percent": 0.007533838755966591,
+ "rx": {
+ "dropped_pkts": 341,
+ "pkt_bit_rate": 2761265024.0,
+ "pkt_rate": 226779.0,
+ "max_delay_usec": 5322,
+ "lat_percentile": {
+ "99": "n/a",
+ "25": "n/a",
+ "75": "n/a"
+ },
+ "avg_delay_usec": 91.4998415786106,
+ "total_pkt_bytes": 6888425888,
+ "total_pkts": 4525904,
+ "min_delay_usec": 35
+ },
+ "hdrh": "HISTFAAAABt4nJNpmSzMgADMUJoRTM6Y1mD/ASIAAEr9BCg=",
+ "tx": {
+ "total_pkt_bytes": 6888944890,
+ "total_pkts": 4526245,
+ "pkt_bit_rate": 2761356672.0,
+ "pkt_rate": 226786.5
+ }
+ },
+ "1": {
+ "drop_rate_percent": 0.015067221458551222,
+ "rx": {
+ "dropped_pkts": 341,
+ "pkt_bit_rate": 2761269504,
+ "pkt_rate": 226779,
+ "max_delay_usec": 5322,
+ "total_pkt_bytes": 3443849186,
+ "avg_delay_usec": 93,
+ "total_pkts": 2262713,
+ "min_delay_usec": 35
+ },
+ "tx": {
+ "total_pkt_bytes": 3444576702,
+ "total_pkts": 2263191,
+ "pkt_bit_rate": 2761352192,
+ "pkt_rate": 226786
+ }
+ },
+ "0": {
+ "drop_rate_percent": 0.0,
+ "rx": {
+ "dropped_pkts": 0,
+ "pkt_bit_rate": 2761260544,
+ "pkt_rate": 226779,
+ "max_delay_usec": 198,
+ "total_pkt_bytes": 3444576702,
+ "avg_delay_usec": 90,
+ "total_pkts": 2263191,
+ "min_delay_usec": 37
+ },
+ "tx": {
+ "total_pkt_bytes": 3444368188,
+ "total_pkts": 2263054,
+ "pkt_bit_rate": 2761361152,
+ "pkt_rate": 226787
+ }
+ },
+ "theoretical_tx_rate_bps": 50000000000.0,
+ "offered_tx_rate_bps": 5569085696.0,
+ "theoretical_tx_rate_pps": 4063719.1157347206
+ }
+ }
+ },
+ "flow_count": 100000,
+ "bidirectional": true
+ }
+ }
+ },
+ "versions": {
+ "Traffic_Generator": {
+ "build_date": "Apr 14 2021",
+ "version": "v2.89",
+ "built_by": "hhaim",
+ "mode": "STL",
+ "build_time": "11:22:15"
+ }
+ }
+ }
+ }
+ },
+ "request_id": "c882cf33b2e045618c1b76b924573708"
+ },
+ "synthesis": {
+ "avg_delay_usec": 91.4998415786106,
+ "total_tx_rate": 452624
+ }
+ },
+ {
+ "input": {
+ "duration_sec": "10",
+ "flavor_type": "nfvbench.loop.basic",
+ "json": "/var/lib/xtesting/results/non-regression/nfvbench-latency-fs_9000-fc_100k-rate_70%.json",
+ "frame_sizes": [
+ "9000"
+ ],
+ "rate": "70%",
+ "flow_count": "100k",
+ "log_file": "/var/lib/xtesting/results/non-regression/nfvbench.log",
+ "user_label": "amical_tc12_basic"
+ },
+ "output": {
+ "status": "OK",
+ "result": {
+ "date": "2022-03-30 06:47:45",
+ "nfvbench_version": "5.0.4.dev29",
+ "config": {
+ "compute_nodes": null,
+ "traffic_generator": {
+ "mac_addrs_left": null,
+ "gateway_ip_addrs": [
+ "192.168.30.2",
+ "192.168.31.2"
+ ],
+ "mac_addrs_right": null,
+ "default_profile": "trex-local",
+ "src_vteps": null,
+ "generator_profile": [
+ {
+ "intf_speed": null,
+ "name": "trex-local",
+ "ip": "127.0.0.1",
+ "zmq_rpc_port": 4501,
+ "tool": "TRex",
+ "platform": {
+ "master_thread_id": "0",
+ "latency_thread_id": "1",
+ "dual_if": [
+ {
+ "threads": [
+ 2,
+ 3,
+ 4,
+ 5,
+ 6,
+ 7
+ ],
+ "socket": 0
+ }
+ ]
+ },
+ "zmq_pub_port": 4500,
+ "interfaces": [
+ {
+ "switch": null,
+ "pci": "0000:00:05.0",
+ "port": 0
+ },
+ {
+ "switch": null,
+ "pci": "0000:00:06.0",
+ "port": 1
+ }
+ ],
+ "cores": 5,
+ "software_mode": false
+ }
+ ],
+ "vtep_gateway_ips": null,
+ "tg_gateway_ip_addrs_step": "0.0.0.1",
+ "udp_port_step": "1",
+ "udp_src_port": [
+ "49152",
+ "49168"
+ ],
+ "gateway_ip_addrs_step": "0.0.0.1",
+ "tg_gateway_ip_addrs": [
+ "192.168.30.1",
+ "192.168.31.1"
+ ],
+ "ip_addrs": [
+ "198.18.0.0/16",
+ "198.19.0.0/16"
+ ],
+ "ip_src_static": true,
+ "host_name": "nfvbench_tg",
+ "ip_addrs_step": "0.0.0.1",
+ "tg_gateway_ip_cidrs": [
+ "192.168.1.0/24",
+ "192.168.2.0/24"
+ ],
+ "dst_vtep": null,
+ "vtep_vlan": null,
+ "udp_dst_port": [
+ "49152",
+ "49168"
+ ]
+ },
+ "availability_zone": "nova",
+ "vif_multiqueue_size": 8,
+ "periodic_gratuitous_arp": false,
+ "flavor": {
+ "vcpus": 2,
+ "disk": 0,
+ "extra_specs": {
+ "hw:cpu_policy": "dedicated",
+ "hw:mem_page_size": "large"
+ },
+ "ram": 4096
+ },
+ "floating_network": {
+ "subnet": "nfvbench-floating-subnet",
+ "name": "nfvbench-floating-net",
+ "segmentation_id": null,
+ "physical_network": null,
+ "cidr": "192.168.0.0/24",
+ "network_type": "vlan"
+ },
+ "user_info": null,
+ "service_chain": "PVP",
+ "sriov": false,
+ "vxlan": false,
+ "intf_speed_detected": 25000000000.0,
+ "pause_sec": 2.0,
+ "internal_networks": {
+ "middle": {
+ "subnet": "nfvbench-msubnet",
+ "name": "nfvbench-mnet",
+ "segmentation_id": null,
+ "physical_network": null,
+ "mpls_transport_labels": null,
+ "cidr": "192.168.3.0/24",
+ "network_type": "vlan"
+ },
+ "right": {
+ "subnet": "subnet_nfvbench_vn2bis",
+ "name": "net_nfvbench_vn2bis",
+ "segmentation_id": null,
+ "physical_network": null,
+ "mpls_transport_labels": null,
+ "cidr": "192.168.31.0/24",
+ "network_type": "vlan"
+ },
+ "left": {
+ "subnet": "subnet_nfvbench_vn1bis",
+ "name": "net_nfvbench_vn1bis",
+ "segmentation_id": null,
+ "physical_network": null,
+ "mpls_transport_labels": null,
+ "cidr": "192.168.30.0/24",
+ "network_type": "vlan"
+ }
+ },
+ "no_vswitch_access": false,
+ "traffic": {
+ "bidirectional": true,
+ "profile": "custom_traffic_profile"
+ },
+ "restart": false,
+ "vm_image_file": "nfvbenchvm-0.15.0901.qcow2",
+ "name": "nfvbench.conf",
+ "std_json": null,
+ "l2_loopback": false,
+ "request_id": "c78cef8058b74f9885f125b3bf43f1da",
+ "debug": false,
+ "group_id": null,
+ "loop_vm_name": "nfvbench-loop-vm",
+ "check_traffic_time_sec": 200,
+ "num_mbufs": 128000,
+ "rate": "183574pps",
+ "service_chain_count": 1,
+ "service_chain_shared_net": true,
+ "measurement": {
+ "NDR": 0.001,
+ "PDR": 0.1,
+ "load_epsilon": 0.1
+ },
+ "l3_router": false,
+ "debug_mask": 0,
+ "factory_class": "BasicFactory",
+ "tg-tool": "TRex",
+ "frame_sizes": [
+ "9000"
+ ],
+ "service_mode": false,
+ "edge_networks": {
+ "right": {
+ "subnet": "nfvbench-subnet3",
+ "name": "nfvbench-net3",
+ "segmentation_id": null,
+ "network_type": null,
+ "physical_network": null,
+ "cidr": "192.168.4.0/24",
+ "router_name": "router_right",
+ "gateway": null
+ },
+ "left": {
+ "subnet": "nfvbench-subnet2",
+ "name": "nfvbench-net2",
+ "segmentation_id": null,
+ "network_type": null,
+ "physical_network": null,
+ "cidr": "192.168.3.0/24",
+ "router_name": "router_left",
+ "gateway": null
+ }
+ },
+ "ndr_run": false,
+ "use_management_port": false,
+ "hypervisor_hostname": "localdomain",
+ "cache_size": 16,
+ "pdr_run": false,
+ "vlan_tagging": false,
+ "fluentd": [
+ {
+ "ip": "172.20.73.203",
+ "result_tag": "nfvbench.results.amical",
+ "logging_tag": "nfvbench.logs.amical",
+ "port": 25225
+ }
+ ],
+ "use_floating_ip": false,
+ "flow_count": 100000,
+ "loop_vm_arp": false,
+ "user_id": null,
+ "openrc_file": null,
+ "disable_hdrh": false,
+ "json": "/var/lib/xtesting/results/non-regression/nfvbench-latency-fs_9000-fc_100k-rate_70%.json",
+ "vm_forwarder": "vpp",
+ "factory_module": "nfvbench.factory",
+ "no_latency_streams": false,
+ "single_run": true,
+ "no_arp": false,
+ "cores_used": 5,
+ "traffic_profile": [
+ {
+ "l2frame_size": [
+ "9000"
+ ],
+ "name": "custom_traffic_profile"
+ }
+ ],
+ "vlans": [
+ 2512,
+ 2517
+ ],
+ "tg-name": "trex-local",
+ "management_network": {
+ "subnet": "nfvbench-management-subnet",
+ "name": "nfvbench-management-net",
+ "segmentation_id": null,
+ "network_type": "vlan",
+ "physical_network": null,
+ "cidr": "192.168.0.0/24",
+ "gateway": "192.168.0.254"
+ },
+ "no_traffic": false,
+ "mpls": false,
+ "duration_sec": 10.0,
+ "clouds_detail": "openstack",
+ "mbuf_64": null,
+ "generic_poll_sec": 2,
+ "idle_interfaces_per_vm": 0,
+ "no_flow_stats": true,
+ "lat_percentiles": [
+ 25,
+ 75,
+ 99
+ ],
+ "no_cleanup": true,
+ "no_e2e_check": false,
+ "intf_speed_used": 25000000000.0,
+ "generator_profile": "trex-local",
+ "mbuf_factor": 0.2,
+ "user_label": "amical_tc12_basic",
+ "intf_speed": null,
+ "generic_retry_count": 100,
+ "flavor_type": "nfvbench.loop.basic",
+ "use_sriov_middle_net": false,
+ "json_file": "/var/lib/xtesting/results/non-regression/nfvbench-latency-fs_9000-fc_100k-rate_70%.json",
+ "std_json_path": null,
+ "unidir_reverse_traffic_pps": 1,
+ "i40e_mixed": "ignore",
+ "gratuitous_arp_pps": 1,
+ "idle_networks": {
+ "subnet": "nfvbench-idle-subnet",
+ "name": "nfvbench-idle-net",
+ "segmentation_id": null,
+ "physical_network": null,
+ "cidr": "192.169.1.0/24",
+ "network_type": "vlan"
+ },
+ "interval_sec": 10.0,
+ "no_latency_stats": false,
+ "cores": null,
+ "log_file": "/var/lib/xtesting/results/non-regression/nfvbench.log",
+ "external_networks": {
+ "right": null,
+ "left": null
+ }
+ },
+ "benchmarks": {
+ "network": {
+ "service_chain": {
+ "PVP": {
+ "result": {
+ "compute_nodes": {},
+ "profile": "custom_traffic_profile",
+ "service_chain_count": 1,
+ "result": {
+ "9000": {
+ "run_config": {
+ "direction-forward": {
+ "rx": {
+ "rate_percent": 26.390961344,
+ "rate_pps": 91432,
+ "initial_rate_type": "rate_pps",
+ "rate_bps": 6597740336
+ },
+ "tx": {
+ "rate_percent": 26.390961344,
+ "rate_pps": 91432,
+ "initial_rate_type": "rate_pps",
+ "rate_bps": 6597740336
+ },
+ "orig": {
+ "rate_percent": 26.493399680000003,
+ "rate_pps": 91787,
+ "initial_rate_type": "rate_pps",
+ "rate_bps": 6623349920
+ }
+ },
+ "direction-total": {
+ "rx": {
+ "rate_percent": 52.783539071999996,
+ "rate_pps": 182869.0,
+ "rate_bps": 13195884768.0
+ },
+ "tx": {
+ "rate_percent": 52.783539071999996,
+ "rate_pps": 182869.0,
+ "rate_bps": 13195884768.0
+ },
+ "orig": {
+ "rate_percent": 52.986799360000006,
+ "rate_pps": 183574.0,
+ "rate_bps": 13246699840.0
+ }
+ },
+ "direction-reverse": {
+ "rx": {
+ "rate_percent": 26.392577728,
+ "rate_pps": 91437,
+ "initial_rate_type": "rate_pps",
+ "rate_bps": 6598144432
+ },
+ "tx": {
+ "rate_percent": 26.392577728,
+ "rate_pps": 91437,
+ "initial_rate_type": "rate_pps",
+ "rate_bps": 6598144432
+ },
+ "orig": {
+ "rate_percent": 26.493399680000003,
+ "rate_pps": 91787,
+ "initial_rate_type": "rate_pps",
+ "rate_bps": 6623349920
+ }
+ }
+ },
+ "packet_path_stats": {
+ "Forward": {
+ "interfaces": [
+ "TRex.TX.p0",
+ "TRex.RX.p1"
+ ],
+ "chains": {
+ "0": {
+ "packets": [
+ 9937,
+ 9937
+ ],
+ "lat_max_usec": 4143,
+ "lat_avg_usec": 306,
+ "lat_min_usec": 66,
+ "hdrh": "HISTFAAAAB54nJNpmSzMwMDAyAABzFAawp8xrcH+A1QAAE9IBCo=",
+ "lat_percentile": {
+ "99": "n/a",
+ "25": "n/a",
+ "75": "n/a"
+ }
+ }
+ }
+ },
+ "Reverse": {
+ "interfaces": [
+ "TRex.TX.p1",
+ "TRex.RX.p0"
+ ],
+ "chains": {
+ "0": {
+ "packets": [
+ 9938,
+ 9938
+ ],
+ "lat_max_usec": 6704,
+ "lat_avg_usec": 322,
+ "lat_min_usec": 65,
+ "hdrh": "HISTFAAAAB54nJNpmSzMwMDAyAABzFAawp8xrcH+A1QAAE9IBCo=",
+ "lat_percentile": {
+ "99": "n/a",
+ "25": "n/a",
+ "75": "n/a"
+ }
+ }
+ }
+ }
+ },
+ "stats": {
+ "total_tx_rate": 182869,
+ "overall": {
+ "drop_rate_percent": 0.0,
+ "rx": {
+ "dropped_pkts": 0,
+ "pkt_bit_rate": 6603213824.0,
+ "pkt_rate": 91670.5,
+ "max_delay_usec": 6704,
+ "lat_percentile": {
+ "99": "n/a",
+ "25": "n/a",
+ "75": "n/a"
+ },
+ "avg_delay_usec": 313.9997550169574,
+ "total_pkt_bytes": 16465596792,
+ "total_pkts": 1828698,
+ "min_delay_usec": 65
+ },
+ "hdrh": "HISTFAAAABt4nJNpmSzMgADMUJoRTM6Y1mD/ASIAAEr9BCg=",
+ "tx": {
+ "total_pkt_bytes": 16465596792,
+ "total_pkts": 1828698,
+ "pkt_bit_rate": 6603036928.0,
+ "pkt_rate": 91668.5
+ }
+ },
+ "1": {
+ "drop_rate_percent": 0.0,
+ "rx": {
+ "dropped_pkts": 0,
+ "pkt_bit_rate": 6603323392,
+ "pkt_rate": 91672,
+ "max_delay_usec": 6704,
+ "total_pkt_bytes": 8232546284,
+ "avg_delay_usec": 322,
+ "total_pkts": 914321,
+ "min_delay_usec": 65
+ },
+ "tx": {
+ "total_pkt_bytes": 8233050508,
+ "total_pkts": 914377,
+ "pkt_bit_rate": 6603299840,
+ "pkt_rate": 91672
+ }
+ },
+ "0": {
+ "drop_rate_percent": 0.0,
+ "rx": {
+ "dropped_pkts": 0,
+ "pkt_bit_rate": 6603104256,
+ "pkt_rate": 91669,
+ "max_delay_usec": 4143,
+ "total_pkt_bytes": 8233050508,
+ "avg_delay_usec": 306,
+ "total_pkts": 914377,
+ "min_delay_usec": 66
+ },
+ "tx": {
+ "total_pkt_bytes": 8232546284,
+ "total_pkts": 914321,
+ "pkt_bit_rate": 6602774016,
+ "pkt_rate": 91665
+ }
+ },
+ "theoretical_tx_rate_bps": 50000000000.0,
+ "offered_tx_rate_bps": 13195827040.0,
+ "theoretical_tx_rate_pps": 692904.6563192905
+ }
+ }
+ },
+ "flow_count": 100000,
+ "bidirectional": true
+ }
+ }
+ },
+ "versions": {
+ "Traffic_Generator": {
+ "build_date": "Apr 14 2021",
+ "version": "v2.89",
+ "built_by": "hhaim",
+ "mode": "STL",
+ "build_time": "11:22:15"
+ }
+ }
+ }
+ }
+ },
+ "request_id": "c78cef8058b74f9885f125b3bf43f1da"
+ },
+ "synthesis": {
+ "avg_delay_usec": 313.9997550169574,
+ "total_tx_rate": 182869
+ }
+ },
+ {
+ "input": {
+ "duration_sec": "10",
+ "flavor_type": "nfvbench.loop.basic",
+ "json": "/var/lib/xtesting/results/non-regression/nfvbench-latency-fs_9000-fc_100k-rate_90%.json",
+ "frame_sizes": [
+ "9000"
+ ],
+ "rate": "90%",
+ "flow_count": "100k",
+ "log_file": "/var/lib/xtesting/results/non-regression/nfvbench.log",
+ "user_label": "amical_tc12_basic"
+ },
+ "output": {
+ "status": "OK",
+ "result": {
+ "date": "2022-03-30 06:48:08",
+ "nfvbench_version": "5.0.4.dev29",
+ "config": {
+ "compute_nodes": null,
+ "traffic_generator": {
+ "mac_addrs_left": null,
+ "gateway_ip_addrs": [
+ "192.168.30.2",
+ "192.168.31.2"
+ ],
+ "mac_addrs_right": null,
+ "default_profile": "trex-local",
+ "src_vteps": null,
+ "generator_profile": [
+ {
+ "intf_speed": null,
+ "name": "trex-local",
+ "ip": "127.0.0.1",
+ "zmq_rpc_port": 4501,
+ "tool": "TRex",
+ "platform": {
+ "master_thread_id": "0",
+ "latency_thread_id": "1",
+ "dual_if": [
+ {
+ "threads": [
+ 2,
+ 3,
+ 4,
+ 5,
+ 6,
+ 7
+ ],
+ "socket": 0
+ }
+ ]
+ },
+ "zmq_pub_port": 4500,
+ "interfaces": [
+ {
+ "switch": null,
+ "pci": "0000:00:05.0",
+ "port": 0
+ },
+ {
+ "switch": null,
+ "pci": "0000:00:06.0",
+ "port": 1
+ }
+ ],
+ "cores": 5,
+ "software_mode": false
+ }
+ ],
+ "vtep_gateway_ips": null,
+ "tg_gateway_ip_addrs_step": "0.0.0.1",
+ "udp_port_step": "1",
+ "udp_src_port": [
+ "49152",
+ "49168"
+ ],
+ "gateway_ip_addrs_step": "0.0.0.1",
+ "tg_gateway_ip_addrs": [
+ "192.168.30.1",
+ "192.168.31.1"
+ ],
+ "ip_addrs": [
+ "198.18.0.0/16",
+ "198.19.0.0/16"
+ ],
+ "ip_src_static": true,
+ "host_name": "nfvbench_tg",
+ "ip_addrs_step": "0.0.0.1",
+ "tg_gateway_ip_cidrs": [
+ "192.168.1.0/24",
+ "192.168.2.0/24"
+ ],
+ "dst_vtep": null,
+ "vtep_vlan": null,
+ "udp_dst_port": [
+ "49152",
+ "49168"
+ ]
+ },
+ "availability_zone": "nova",
+ "vif_multiqueue_size": 8,
+ "periodic_gratuitous_arp": false,
+ "flavor": {
+ "vcpus": 2,
+ "disk": 0,
+ "extra_specs": {
+ "hw:cpu_policy": "dedicated",
+ "hw:mem_page_size": "large"
+ },
+ "ram": 4096
+ },
+ "floating_network": {
+ "subnet": "nfvbench-floating-subnet",
+ "name": "nfvbench-floating-net",
+ "segmentation_id": null,
+ "physical_network": null,
+ "cidr": "192.168.0.0/24",
+ "network_type": "vlan"
+ },
+ "user_info": null,
+ "service_chain": "PVP",
+ "sriov": false,
+ "vxlan": false,
+ "intf_speed_detected": 25000000000.0,
+ "pause_sec": 2.0,
+ "internal_networks": {
+ "middle": {
+ "subnet": "nfvbench-msubnet",
+ "name": "nfvbench-mnet",
+ "segmentation_id": null,
+ "physical_network": null,
+ "mpls_transport_labels": null,
+ "cidr": "192.168.3.0/24",
+ "network_type": "vlan"
+ },
+ "right": {
+ "subnet": "subnet_nfvbench_vn2bis",
+ "name": "net_nfvbench_vn2bis",
+ "segmentation_id": null,
+ "physical_network": null,
+ "mpls_transport_labels": null,
+ "cidr": "192.168.31.0/24",
+ "network_type": "vlan"
+ },
+ "left": {
+ "subnet": "subnet_nfvbench_vn1bis",
+ "name": "net_nfvbench_vn1bis",
+ "segmentation_id": null,
+ "physical_network": null,
+ "mpls_transport_labels": null,
+ "cidr": "192.168.30.0/24",
+ "network_type": "vlan"
+ }
+ },
+ "no_vswitch_access": false,
+ "traffic": {
+ "bidirectional": true,
+ "profile": "custom_traffic_profile"
+ },
+ "restart": false,
+ "vm_image_file": "nfvbenchvm-0.15.0901.qcow2",
+ "name": "nfvbench.conf",
+ "std_json": null,
+ "l2_loopback": false,
+ "request_id": "4a306639173f4526b3a835abe92c709d",
+ "debug": false,
+ "group_id": null,
+ "loop_vm_name": "nfvbench-loop-vm",
+ "check_traffic_time_sec": 200,
+ "num_mbufs": 128000,
+ "rate": "236023pps",
+ "service_chain_count": 1,
+ "service_chain_shared_net": true,
+ "measurement": {
+ "NDR": 0.001,
+ "PDR": 0.1,
+ "load_epsilon": 0.1
+ },
+ "l3_router": false,
+ "debug_mask": 0,
+ "factory_class": "BasicFactory",
+ "tg-tool": "TRex",
+ "frame_sizes": [
+ "9000"
+ ],
+ "service_mode": false,
+ "edge_networks": {
+ "right": {
+ "subnet": "nfvbench-subnet3",
+ "name": "nfvbench-net3",
+ "segmentation_id": null,
+ "network_type": null,
+ "physical_network": null,
+ "cidr": "192.168.4.0/24",
+ "router_name": "router_right",
+ "gateway": null
+ },
+ "left": {
+ "subnet": "nfvbench-subnet2",
+ "name": "nfvbench-net2",
+ "segmentation_id": null,
+ "network_type": null,
+ "physical_network": null,
+ "cidr": "192.168.3.0/24",
+ "router_name": "router_left",
+ "gateway": null
+ }
+ },
+ "ndr_run": false,
+ "use_management_port": false,
+ "hypervisor_hostname": "localdomain",
+ "cache_size": 16,
+ "pdr_run": false,
+ "vlan_tagging": false,
+ "fluentd": [
+ {
+ "ip": "172.20.73.203",
+ "result_tag": "nfvbench.results.amical",
+ "logging_tag": "nfvbench.logs.amical",
+ "port": 25225
+ }
+ ],
+ "use_floating_ip": false,
+ "flow_count": 100000,
+ "loop_vm_arp": false,
+ "user_id": null,
+ "openrc_file": null,
+ "disable_hdrh": false,
+ "json": "/var/lib/xtesting/results/non-regression/nfvbench-latency-fs_9000-fc_100k-rate_90%.json",
+ "vm_forwarder": "vpp",
+ "factory_module": "nfvbench.factory",
+ "no_latency_streams": false,
+ "single_run": true,
+ "no_arp": false,
+ "cores_used": 5,
+ "traffic_profile": [
+ {
+ "l2frame_size": [
+ "9000"
+ ],
+ "name": "custom_traffic_profile"
+ }
+ ],
+ "vlans": [
+ 2512,
+ 2517
+ ],
+ "tg-name": "trex-local",
+ "management_network": {
+ "subnet": "nfvbench-management-subnet",
+ "name": "nfvbench-management-net",
+ "segmentation_id": null,
+ "network_type": "vlan",
+ "physical_network": null,
+ "cidr": "192.168.0.0/24",
+ "gateway": "192.168.0.254"
+ },
+ "no_traffic": false,
+ "mpls": false,
+ "duration_sec": 10.0,
+ "clouds_detail": "openstack",
+ "mbuf_64": null,
+ "generic_poll_sec": 2,
+ "idle_interfaces_per_vm": 0,
+ "no_flow_stats": true,
+ "lat_percentiles": [
+ 25,
+ 75,
+ 99
+ ],
+ "no_cleanup": true,
+ "no_e2e_check": false,
+ "intf_speed_used": 25000000000.0,
+ "generator_profile": "trex-local",
+ "mbuf_factor": 0.2,
+ "user_label": "amical_tc12_basic",
+ "intf_speed": null,
+ "generic_retry_count": 100,
+ "flavor_type": "nfvbench.loop.basic",
+ "use_sriov_middle_net": false,
+ "json_file": "/var/lib/xtesting/results/non-regression/nfvbench-latency-fs_9000-fc_100k-rate_90%.json",
+ "std_json_path": null,
+ "unidir_reverse_traffic_pps": 1,
+ "i40e_mixed": "ignore",
+ "gratuitous_arp_pps": 1,
+ "idle_networks": {
+ "subnet": "nfvbench-idle-subnet",
+ "name": "nfvbench-idle-net",
+ "segmentation_id": null,
+ "physical_network": null,
+ "cidr": "192.169.1.0/24",
+ "network_type": "vlan"
+ },
+ "interval_sec": 10.0,
+ "no_latency_stats": false,
+ "cores": null,
+ "log_file": "/var/lib/xtesting/results/non-regression/nfvbench.log",
+ "external_networks": {
+ "right": null,
+ "left": null
+ }
+ },
+ "benchmarks": {
+ "network": {
+ "service_chain": {
+ "PVP": {
+ "result": {
+ "compute_nodes": {},
+ "profile": "custom_traffic_profile",
+ "service_chain_count": 1,
+ "result": {
+ "9000": {
+ "run_config": {
+ "direction-forward": {
+ "rx": {
+ "rate_percent": 33.933413184,
+ "rate_pps": 117563,
+ "initial_rate_type": "rate_pps",
+ "rate_bps": 8483353296
+ },
+ "tx": {
+ "rate_percent": 33.933413184,
+ "rate_pps": 117563,
+ "initial_rate_type": "rate_pps",
+ "rate_bps": 8483353296
+ },
+ "orig": {
+ "rate_percent": 34.062839360000005,
+ "rate_pps": 118011,
+ "initial_rate_type": "rate_pps",
+ "rate_bps": 8515709840
+ }
+ },
+ "direction-total": {
+ "rx": {
+ "rate_percent": 67.868846848,
+ "rate_pps": 235133.0,
+ "rate_bps": 16967211712.0
+ },
+ "tx": {
+ "rate_percent": 67.868846848,
+ "rate_pps": 235133.0,
+ "rate_bps": 16967211712.0
+ },
+ "orig": {
+ "rate_percent": 68.12567872000001,
+ "rate_pps": 236022.0,
+ "rate_bps": 17031419680.0
+ }
+ },
+ "direction-reverse": {
+ "rx": {
+ "rate_percent": 33.935433663999994,
+ "rate_pps": 117570,
+ "initial_rate_type": "rate_pps",
+ "rate_bps": 8483858416
+ },
+ "tx": {
+ "rate_percent": 33.935433663999994,
+ "rate_pps": 117570,
+ "initial_rate_type": "rate_pps",
+ "rate_bps": 8483858416
+ },
+ "orig": {
+ "rate_percent": 34.062839360000005,
+ "rate_pps": 118011,
+ "initial_rate_type": "rate_pps",
+ "rate_bps": 8515709840
+ }
+ }
+ },
+ "packet_path_stats": {
+ "Forward": {
+ "interfaces": [
+ "TRex.TX.p0",
+ "TRex.RX.p1"
+ ],
+ "chains": {
+ "0": {
+ "packets": [
+ 9938,
+ 9938
+ ],
+ "lat_max_usec": 3154,
+ "lat_avg_usec": 503,
+ "lat_min_usec": 113,
+ "hdrh": "HISTFAAAAB54nJNpmSzMwMDAyAABzFAawp8xrcH+A1QAAE9IBCo=",
+ "lat_percentile": {
+ "99": "n/a",
+ "25": "n/a",
+ "75": "n/a"
+ }
+ }
+ }
+ },
+ "Reverse": {
+ "interfaces": [
+ "TRex.TX.p1",
+ "TRex.RX.p0"
+ ],
+ "chains": {
+ "0": {
+ "packets": [
+ 9938,
+ 9938
+ ],
+ "lat_max_usec": 6539,
+ "lat_avg_usec": 390,
+ "lat_min_usec": 114,
+ "hdrh": "HISTFAAAAB54nJNpmSzMwMDAyAABzFAawp8xrcH+A1QAAE9IBCo=",
+ "lat_percentile": {
+ "99": "n/a",
+ "25": "n/a",
+ "75": "n/a"
+ }
+ }
+ }
+ }
+ },
+ "stats": {
+ "total_tx_rate": 235133,
+ "overall": {
+ "drop_rate_percent": 0.0,
+ "rx": {
+ "dropped_pkts": 0,
+ "pkt_bit_rate": 8493890560.0,
+ "pkt_rate": 117917.5,
+ "max_delay_usec": 6539,
+ "lat_percentile": {
+ "99": "n/a",
+ "25": "n/a",
+ "75": "n/a"
+ },
+ "avg_delay_usec": 446.5016820253371,
+ "total_pkt_bytes": 21171393328,
+ "total_pkts": 2351332,
+ "min_delay_usec": 113
+ },
+ "hdrh": "HISTFAAAABt4nJNpmSzMgADMUJoRTM6Y1mD/ASIAAEr9BCg=",
+ "tx": {
+ "total_pkt_bytes": 21171393328,
+ "total_pkts": 2351332,
+ "pkt_bit_rate": 8494719232.0,
+ "pkt_rate": 117929.0
+ }
+ },
+ "1": {
+ "drop_rate_percent": 0.0,
+ "rx": {
+ "dropped_pkts": 0,
+ "pkt_bit_rate": 8494009856,
+ "pkt_rate": 117919,
+ "max_delay_usec": 6539,
+ "total_pkt_bytes": 10585381524,
+ "avg_delay_usec": 390,
+ "total_pkts": 1175631,
+ "min_delay_usec": 114
+ },
+ "tx": {
+ "total_pkt_bytes": 10586011804,
+ "total_pkts": 1175701,
+ "pkt_bit_rate": 8494438400,
+ "pkt_rate": 117925
+ }
+ },
+ "0": {
+ "drop_rate_percent": 0.0,
+ "rx": {
+ "dropped_pkts": 0,
+ "pkt_bit_rate": 8493771264,
+ "pkt_rate": 117916,
+ "max_delay_usec": 3154,
+ "total_pkt_bytes": 10586011804,
+ "avg_delay_usec": 503,
+ "total_pkts": 1175701,
+ "min_delay_usec": 113
+ },
+ "tx": {
+ "total_pkt_bytes": 10585381524,
+ "total_pkts": 1175631,
+ "pkt_bit_rate": 8495000064,
+ "pkt_rate": 117933
+ }
+ },
+ "theoretical_tx_rate_bps": 50000000000.0,
+ "offered_tx_rate_bps": 16967197280.0,
+ "theoretical_tx_rate_pps": 692904.6563192905
+ }
+ }
+ },
+ "flow_count": 100000,
+ "bidirectional": true
+ }
+ }
+ },
+ "versions": {
+ "Traffic_Generator": {
+ "build_date": "Apr 14 2021",
+ "version": "v2.89",
+ "built_by": "hhaim",
+ "mode": "STL",
+ "build_time": "11:22:15"
+ }
+ }
+ }
+ }
+ },
+ "request_id": "4a306639173f4526b3a835abe92c709d"
+ },
+ "synthesis": {
+ "avg_delay_usec": 446.5016820253371,
+ "total_tx_rate": 235133
+ }
+ }
+ ],
+ "throughput": [
+ {
+ "input": {
+ "duration_sec": "10",
+ "flavor_type": "nfvbench.loop.basic",
+ "json": "/var/lib/xtesting/results/non-regression/nfvbench-throughput-fs_64-fc_100k-rate_ndr-2.json",
+ "frame_sizes": [
+ "64"
+ ],
+ "rate": "ndr",
+ "flow_count": "100k",
+ "log_file": "/var/lib/xtesting/results/non-regression/nfvbench.log",
+ "user_label": "amical_tc12_basic"
+ },
+ "output": {
+ "status": "OK",
+ "result": {
+ "date": "2022-03-30 06:20:56",
+ "nfvbench_version": "5.0.4.dev29",
+ "config": {
+ "compute_nodes": null,
+ "traffic_generator": {
+ "mac_addrs_left": null,
+ "gateway_ip_addrs": [
+ "192.168.30.2",
+ "192.168.31.2"
+ ],
+ "mac_addrs_right": null,
+ "default_profile": "trex-local",
+ "src_vteps": null,
+ "generator_profile": [
+ {
+ "intf_speed": null,
+ "name": "trex-local",
+ "ip": "127.0.0.1",
+ "zmq_rpc_port": 4501,
+ "tool": "TRex",
+ "platform": {
+ "master_thread_id": "0",
+ "latency_thread_id": "1",
+ "dual_if": [
+ {
+ "threads": [
+ 2,
+ 3,
+ 4,
+ 5,
+ 6,
+ 7
+ ],
+ "socket": 0
+ }
+ ]
+ },
+ "zmq_pub_port": 4500,
+ "interfaces": [
+ {
+ "switch": null,
+ "pci": "0000:00:05.0",
+ "port": 0
+ },
+ {
+ "switch": null,
+ "pci": "0000:00:06.0",
+ "port": 1
+ }
+ ],
+ "cores": 5,
+ "software_mode": false
+ }
+ ],
+ "vtep_gateway_ips": null,
+ "tg_gateway_ip_addrs_step": "0.0.0.1",
+ "udp_port_step": "1",
+ "udp_src_port": [
+ "49152",
+ "49168"
+ ],
+ "gateway_ip_addrs_step": "0.0.0.1",
+ "tg_gateway_ip_addrs": [
+ "192.168.30.1",
+ "192.168.31.1"
+ ],
+ "ip_addrs": [
+ "198.18.0.0/16",
+ "198.19.0.0/16"
+ ],
+ "ip_src_static": true,
+ "host_name": "nfvbench_tg",
+ "ip_addrs_step": "0.0.0.1",
+ "tg_gateway_ip_cidrs": [
+ "192.168.1.0/24",
+ "192.168.2.0/24"
+ ],
+ "dst_vtep": null,
+ "vtep_vlan": null,
+ "udp_dst_port": [
+ "49152",
+ "49168"
+ ]
+ },
+ "availability_zone": "nova",
+ "vif_multiqueue_size": 8,
+ "periodic_gratuitous_arp": false,
+ "flavor": {
+ "vcpus": 2,
+ "disk": 0,
+ "extra_specs": {
+ "hw:cpu_policy": "dedicated",
+ "hw:mem_page_size": "large"
+ },
+ "ram": 4096
+ },
+ "floating_network": {
+ "subnet": "nfvbench-floating-subnet",
+ "name": "nfvbench-floating-net",
+ "segmentation_id": null,
+ "physical_network": null,
+ "cidr": "192.168.0.0/24",
+ "network_type": "vlan"
+ },
+ "user_info": null,
+ "service_chain": "PVP",
+ "sriov": false,
+ "vxlan": false,
+ "intf_speed_detected": 25000000000.0,
+ "pause_sec": 2.0,
+ "internal_networks": {
+ "middle": {
+ "subnet": "nfvbench-msubnet",
+ "name": "nfvbench-mnet",
+ "segmentation_id": null,
+ "physical_network": null,
+ "mpls_transport_labels": null,
+ "cidr": "192.168.3.0/24",
+ "network_type": "vlan"
+ },
+ "right": {
+ "subnet": "subnet_nfvbench_vn2bis",
+ "name": "net_nfvbench_vn2bis",
+ "segmentation_id": null,
+ "physical_network": null,
+ "mpls_transport_labels": null,
+ "cidr": "192.168.31.0/24",
+ "network_type": "vlan"
+ },
+ "left": {
+ "subnet": "subnet_nfvbench_vn1bis",
+ "name": "net_nfvbench_vn1bis",
+ "segmentation_id": null,
+ "physical_network": null,
+ "mpls_transport_labels": null,
+ "cidr": "192.168.30.0/24",
+ "network_type": "vlan"
+ }
+ },
+ "no_vswitch_access": false,
+ "traffic": {
+ "bidirectional": true,
+ "profile": "custom_traffic_profile"
+ },
+ "restart": false,
+ "vm_image_file": "nfvbenchvm-0.15.0901.qcow2",
+ "name": "nfvbench.conf",
+ "std_json": null,
+ "l2_loopback": false,
+ "request_id": "38389ab0308e45b1a8769cbbff9ef2b2",
+ "debug": false,
+ "group_id": null,
+ "loop_vm_name": "nfvbench-loop-vm",
+ "check_traffic_time_sec": 200,
+ "num_mbufs": 128000,
+ "rate": "ndr",
+ "service_chain_count": 1,
+ "service_chain_shared_net": true,
+ "measurement": {
+ "NDR": 0.001,
+ "PDR": 0.1,
+ "load_epsilon": 0.1
+ },
+ "l3_router": false,
+ "debug_mask": 0,
+ "factory_class": "BasicFactory",
+ "tg-tool": "TRex",
+ "frame_sizes": [
+ "64"
+ ],
+ "service_mode": false,
+ "edge_networks": {
+ "right": {
+ "subnet": "nfvbench-subnet3",
+ "name": "nfvbench-net3",
+ "segmentation_id": null,
+ "network_type": null,
+ "physical_network": null,
+ "cidr": "192.168.4.0/24",
+ "router_name": "router_right",
+ "gateway": null
+ },
+ "left": {
+ "subnet": "nfvbench-subnet2",
+ "name": "nfvbench-net2",
+ "segmentation_id": null,
+ "network_type": null,
+ "physical_network": null,
+ "cidr": "192.168.3.0/24",
+ "router_name": "router_left",
+ "gateway": null
+ }
+ },
+ "ndr_run": true,
+ "use_management_port": false,
+ "hypervisor_hostname": "localdomain",
+ "cache_size": 16,
+ "pdr_run": false,
+ "vlan_tagging": false,
+ "fluentd": [
+ {
+ "ip": "172.20.73.203",
+ "result_tag": "nfvbench.results.amical",
+ "logging_tag": "nfvbench.logs.amical",
+ "port": 25225
+ }
+ ],
+ "use_floating_ip": false,
+ "flow_count": 100000,
+ "loop_vm_arp": false,
+ "user_id": null,
+ "openrc_file": null,
+ "disable_hdrh": false,
+ "json": "/var/lib/xtesting/results/non-regression/nfvbench-throughput-fs_64-fc_100k-rate_ndr-2.json",
+ "vm_forwarder": "vpp",
+ "factory_module": "nfvbench.factory",
+ "no_latency_streams": false,
+ "single_run": false,
+ "no_arp": false,
+ "cores_used": 5,
+ "traffic_profile": [
+ {
+ "l2frame_size": [
+ "64"
+ ],
+ "name": "custom_traffic_profile"
+ }
+ ],
+ "vlans": [
+ 2512,
+ 2517
+ ],
+ "tg-name": "trex-local",
+ "management_network": {
+ "subnet": "nfvbench-management-subnet",
+ "name": "nfvbench-management-net",
+ "segmentation_id": null,
+ "network_type": "vlan",
+ "physical_network": null,
+ "cidr": "192.168.0.0/24",
+ "gateway": "192.168.0.254"
+ },
+ "no_traffic": false,
+ "mpls": false,
+ "duration_sec": 10.0,
+ "clouds_detail": "openstack",
+ "mbuf_64": null,
+ "generic_poll_sec": 2,
+ "idle_interfaces_per_vm": 0,
+ "no_flow_stats": true,
+ "lat_percentiles": [
+ 25,
+ 75,
+ 99
+ ],
+ "no_cleanup": true,
+ "no_e2e_check": false,
+ "intf_speed_used": 25000000000.0,
+ "generator_profile": "trex-local",
+ "mbuf_factor": 0.2,
+ "user_label": "amical_tc12_basic",
+ "intf_speed": null,
+ "generic_retry_count": 100,
+ "flavor_type": "nfvbench.loop.basic",
+ "use_sriov_middle_net": false,
+ "json_file": "/var/lib/xtesting/results/non-regression/nfvbench-throughput-fs_64-fc_100k-rate_ndr-2.json",
+ "std_json_path": null,
+ "unidir_reverse_traffic_pps": 1,
+ "i40e_mixed": "ignore",
+ "gratuitous_arp_pps": 1,
+ "idle_networks": {
+ "subnet": "nfvbench-idle-subnet",
+ "name": "nfvbench-idle-net",
+ "segmentation_id": null,
+ "physical_network": null,
+ "cidr": "192.169.1.0/24",
+ "network_type": "vlan"
+ },
+ "interval_sec": 10.0,
+ "no_latency_stats": false,
+ "cores": null,
+ "log_file": "/var/lib/xtesting/results/non-regression/nfvbench.log",
+ "external_networks": {
+ "right": null,
+ "left": null
+ }
+ },
+ "benchmarks": {
+ "network": {
+ "service_chain": {
+ "PVP": {
+ "result": {
+ "compute_nodes": {},
+ "profile": "custom_traffic_profile",
+ "service_chain_count": 1,
+ "result": {
+ "64": {
+ "ndr": {
+ "load_percent_per_direction": 0.78125,
+ "timestamp_sec": 1648621399.3161063,
+ "stats": {
+ "total_tx_rate": 577711,
+ "overall": {
+ "rx_pkts": 5777112,
+ "drop_percentage": 0.0,
+ "drop_pct": 0,
+ "max_delay_usec": 518,
+ "lat_percentile": {
+ "99": "n/a",
+ "25": "n/a",
+ "75": "n/a"
+ },
+ "tx_pkts": 5777112,
+ "avg_delay_usec": 108.49992470286192,
+ "min_delay_usec": 29,
+ "hdrh": "HISTFAAAABt4nJNpmSzMgADMUJoRTM6Y1mD/ASIAAEr9BCg="
+ },
+ "1": {
+ "rx_pkts": 2888411,
+ "min_delay_usec": 29,
+ "drop_pct": 0,
+ "max_delay_usec": 263,
+ "tx_pkts": 2888701,
+ "avg_delay_usec": 110,
+ "drop_percentage": 0.0
+ },
+ "0": {
+ "rx_pkts": 2888701,
+ "min_delay_usec": 31,
+ "drop_pct": 0,
+ "max_delay_usec": 518,
+ "tx_pkts": 2888411,
+ "avg_delay_usec": 107,
+ "drop_percentage": 0.0
+ },
+ "theoretical_tx_rate_bps": 50000000000.0,
+ "offered_tx_rate_bps": 388221792.0,
+ "theoretical_tx_rate_pps": 74404761.90476191
+ },
+ "initial_rate_type": "rate_percent",
+ "rate_percent": 1.5625,
+ "duration_sec": 10.0,
+ "l2frame_size": "64",
+ "rate_pps": 581286,
+ "rate_bps": 390625000.0,
+ "time_taken_sec": 137.66617798805237
+ },
+ "iteration_stats": {
+ "ndr_pdr": [
+ {
+ "rx_pps": 1275063.5983414354,
+ "rx_pkts": 7250590,
+ "time_ms": 1648621274137,
+ "drop_pct": 415848626,
+ "total_tx_pps": 42309921,
+ "tx_pps": 74404760,
+ "tx_pkts": 423099216,
+ "warning": "WARNING: There is a significant difference between requested TX rate (74404760) and actual TX rate (42309921). The traffic generator may not have sufficient CPU to achieve the requested TX rate.",
+ "drop_percentage": 98.28631447995876
+ },
+ {
+ "rx_pps": 1826535.749662823,
+ "rx_pkts": 18151199,
+ "time_ms": 1648621286633,
+ "drop_pct": 351547452,
+ "total_tx_pps": 36969865,
+ "tx_pps": 37202380,
+ "tx_pkts": 369698651,
+ "drop_percentage": 95.09027177921729
+ },
+ {
+ "rx_pps": 1361841.6268887145,
+ "rx_pkts": 13533302,
+ "time_ms": 1648621299138,
+ "drop_pct": 171316035,
+ "total_tx_pps": 18484933,
+ "tx_pps": 18601190,
+ "tx_pkts": 184849337,
+ "drop_percentage": 92.678739226422
+ },
+ {
+ "rx_pps": 774061.5668982501,
+ "rx_pkts": 7703074,
+ "time_ms": 1648621311660,
+ "drop_pct": 84851791,
+ "total_tx_pps": 9255486,
+ "tx_pps": 9300594,
+ "tx_pkts": 92554865,
+ "drop_percentage": 91.67728892479072
+ },
+ {
+ "rx_pps": 792412.735924586,
+ "rx_pkts": 7874998,
+ "time_ms": 1648621324177,
+ "drop_pct": 38339645,
+ "total_tx_pps": 4621464,
+ "tx_pps": 4650296,
+ "tx_pkts": 46214643,
+ "drop_percentage": 82.9599505940141
+ },
+ {
+ "rx_pps": 1930194.9831442875,
+ "rx_pkts": 19183245,
+ "time_ms": 1648621336700,
+ "drop_pct": 3925241,
+ "total_tx_pps": 2310848,
+ "tx_pps": 2325148,
+ "tx_pkts": 23108486,
+ "drop_percentage": 16.986145262826824
+ },
+ {
+ "rx_pps": 1161679.8008522235,
+ "rx_pkts": 11545357,
+ "time_ms": 1648621349196,
+ "drop_pct": 8887,
+ "total_tx_pps": 1155424,
+ "tx_pps": 1162574,
+ "tx_pkts": 11554244,
+ "drop_percentage": 0.07691546067401726
+ },
+ {
+ "rx_pps": 581286.0,
+ "rx_pkts": 5777112,
+ "time_ms": 1648621361693,
+ "drop_pct": 0,
+ "total_tx_pps": 577711,
+ "tx_pps": 581286,
+ "tx_pkts": 5777112,
+ "drop_percentage": 0.0
+ },
+ {
+ "rx_pps": 871250.6221139021,
+ "rx_pkts": 8658928,
+ "time_ms": 1648621374223,
+ "drop_pct": 6752,
+ "total_tx_pps": 866568,
+ "tx_pps": 871930,
+ "tx_pkts": 8665680,
+ "drop_percentage": 0.07791656280868899
+ },
+ {
+ "rx_pps": 726098.0996491228,
+ "rx_pkts": 7223952,
+ "time_ms": 1648621386809,
+ "drop_pct": 5073,
+ "total_tx_pps": 722902,
+ "tx_pps": 726608,
+ "tx_pkts": 7229025,
+ "drop_percentage": 0.07017543859649122
+ },
+ {
+ "rx_pps": 653878.4654382298,
+ "rx_pkts": 6497920,
+ "time_ms": 1648621399315,
+ "drop_pct": 691,
+ "total_tx_pps": 649861,
+ "tx_pps": 653948,
+ "tx_pkts": 6498611,
+ "ndr_pps": 290643,
+ "drop_percentage": 0.010633041429930181
+ }
+ ]
+ }
+ }
+ },
+ "flow_count": 100000,
+ "bidirectional": true
+ }
+ }
+ },
+ "versions": {
+ "Traffic_Generator": {
+ "build_date": "Apr 14 2021",
+ "version": "v2.89",
+ "built_by": "hhaim",
+ "mode": "STL",
+ "build_time": "11:22:15"
+ }
+ }
+ }
+ }
+ },
+ "request_id": "38389ab0308e45b1a8769cbbff9ef2b2"
+ },
+ "synthesis": {
+ "avg_delay_usec": 108.49992470286192,
+ "total_tx_rate": 577711
+ }
+ },
+ {
+ "input": {
+ "duration_sec": "10",
+ "flavor_type": "nfvbench.loop.basic",
+ "json": "/var/lib/xtesting/results/non-regression/nfvbench-throughput-fs_768-fc_100k-rate_ndr-2.json",
+ "frame_sizes": [
+ "768"
+ ],
+ "rate": "ndr",
+ "flow_count": "100k",
+ "log_file": "/var/lib/xtesting/results/non-regression/nfvbench.log",
+ "user_label": "amical_tc12_basic"
+ },
+ "output": {
+ "status": "OK",
+ "result": {
+ "date": "2022-03-30 06:25:50",
+ "nfvbench_version": "5.0.4.dev29",
+ "config": {
+ "compute_nodes": null,
+ "traffic_generator": {
+ "mac_addrs_left": null,
+ "gateway_ip_addrs": [
+ "192.168.30.2",
+ "192.168.31.2"
+ ],
+ "mac_addrs_right": null,
+ "default_profile": "trex-local",
+ "src_vteps": null,
+ "generator_profile": [
+ {
+ "intf_speed": null,
+ "name": "trex-local",
+ "ip": "127.0.0.1",
+ "zmq_rpc_port": 4501,
+ "tool": "TRex",
+ "platform": {
+ "master_thread_id": "0",
+ "latency_thread_id": "1",
+ "dual_if": [
+ {
+ "threads": [
+ 2,
+ 3,
+ 4,
+ 5,
+ 6,
+ 7
+ ],
+ "socket": 0
+ }
+ ]
+ },
+ "zmq_pub_port": 4500,
+ "interfaces": [
+ {
+ "switch": null,
+ "pci": "0000:00:05.0",
+ "port": 0
+ },
+ {
+ "switch": null,
+ "pci": "0000:00:06.0",
+ "port": 1
+ }
+ ],
+ "cores": 5,
+ "software_mode": false
+ }
+ ],
+ "vtep_gateway_ips": null,
+ "tg_gateway_ip_addrs_step": "0.0.0.1",
+ "udp_port_step": "1",
+ "udp_src_port": [
+ "49152",
+ "49168"
+ ],
+ "gateway_ip_addrs_step": "0.0.0.1",
+ "tg_gateway_ip_addrs": [
+ "192.168.30.1",
+ "192.168.31.1"
+ ],
+ "ip_addrs": [
+ "198.18.0.0/16",
+ "198.19.0.0/16"
+ ],
+ "ip_src_static": true,
+ "host_name": "nfvbench_tg",
+ "ip_addrs_step": "0.0.0.1",
+ "tg_gateway_ip_cidrs": [
+ "192.168.1.0/24",
+ "192.168.2.0/24"
+ ],
+ "dst_vtep": null,
+ "vtep_vlan": null,
+ "udp_dst_port": [
+ "49152",
+ "49168"
+ ]
+ },
+ "availability_zone": "nova",
+ "vif_multiqueue_size": 8,
+ "periodic_gratuitous_arp": false,
+ "flavor": {
+ "vcpus": 2,
+ "disk": 0,
+ "extra_specs": {
+ "hw:cpu_policy": "dedicated",
+ "hw:mem_page_size": "large"
+ },
+ "ram": 4096
+ },
+ "floating_network": {
+ "subnet": "nfvbench-floating-subnet",
+ "name": "nfvbench-floating-net",
+ "segmentation_id": null,
+ "physical_network": null,
+ "cidr": "192.168.0.0/24",
+ "network_type": "vlan"
+ },
+ "user_info": null,
+ "service_chain": "PVP",
+ "sriov": false,
+ "vxlan": false,
+ "intf_speed_detected": 25000000000.0,
+ "pause_sec": 2.0,
+ "internal_networks": {
+ "middle": {
+ "subnet": "nfvbench-msubnet",
+ "name": "nfvbench-mnet",
+ "segmentation_id": null,
+ "physical_network": null,
+ "mpls_transport_labels": null,
+ "cidr": "192.168.3.0/24",
+ "network_type": "vlan"
+ },
+ "right": {
+ "subnet": "subnet_nfvbench_vn2bis",
+ "name": "net_nfvbench_vn2bis",
+ "segmentation_id": null,
+ "physical_network": null,
+ "mpls_transport_labels": null,
+ "cidr": "192.168.31.0/24",
+ "network_type": "vlan"
+ },
+ "left": {
+ "subnet": "subnet_nfvbench_vn1bis",
+ "name": "net_nfvbench_vn1bis",
+ "segmentation_id": null,
+ "physical_network": null,
+ "mpls_transport_labels": null,
+ "cidr": "192.168.30.0/24",
+ "network_type": "vlan"
+ }
+ },
+ "no_vswitch_access": false,
+ "traffic": {
+ "bidirectional": true,
+ "profile": "custom_traffic_profile"
+ },
+ "restart": false,
+ "vm_image_file": "nfvbenchvm-0.15.0901.qcow2",
+ "name": "nfvbench.conf",
+ "std_json": null,
+ "l2_loopback": false,
+ "request_id": "42bb799d87974e05a9480378a9074174",
+ "debug": false,
+ "group_id": null,
+ "loop_vm_name": "nfvbench-loop-vm",
+ "check_traffic_time_sec": 200,
+ "num_mbufs": 128000,
+ "rate": "ndr",
+ "service_chain_count": 1,
+ "service_chain_shared_net": true,
+ "measurement": {
+ "NDR": 0.001,
+ "PDR": 0.1,
+ "load_epsilon": 0.1
+ },
+ "l3_router": false,
+ "debug_mask": 0,
+ "factory_class": "BasicFactory",
+ "tg-tool": "TRex",
+ "frame_sizes": [
+ "768"
+ ],
+ "service_mode": false,
+ "edge_networks": {
+ "right": {
+ "subnet": "nfvbench-subnet3",
+ "name": "nfvbench-net3",
+ "segmentation_id": null,
+ "network_type": null,
+ "physical_network": null,
+ "cidr": "192.168.4.0/24",
+ "router_name": "router_right",
+ "gateway": null
+ },
+ "left": {
+ "subnet": "nfvbench-subnet2",
+ "name": "nfvbench-net2",
+ "segmentation_id": null,
+ "network_type": null,
+ "physical_network": null,
+ "cidr": "192.168.3.0/24",
+ "router_name": "router_left",
+ "gateway": null
+ }
+ },
+ "ndr_run": true,
+ "use_management_port": false,
+ "hypervisor_hostname": "localdomain",
+ "cache_size": 16,
+ "pdr_run": false,
+ "vlan_tagging": false,
+ "fluentd": [
+ {
+ "ip": "172.20.73.203",
+ "result_tag": "nfvbench.results.amical",
+ "logging_tag": "nfvbench.logs.amical",
+ "port": 25225
+ }
+ ],
+ "use_floating_ip": false,
+ "flow_count": 100000,
+ "loop_vm_arp": false,
+ "user_id": null,
+ "openrc_file": null,
+ "disable_hdrh": false,
+ "json": "/var/lib/xtesting/results/non-regression/nfvbench-throughput-fs_768-fc_100k-rate_ndr-1.json",
+ "vm_forwarder": "vpp",
+ "factory_module": "nfvbench.factory",
+ "no_latency_streams": false,
+ "single_run": false,
+ "no_arp": false,
+ "cores_used": 5,
+ "traffic_profile": [
+ {
+ "l2frame_size": [
+ "768"
+ ],
+ "name": "custom_traffic_profile"
+ }
+ ],
+ "vlans": [
+ 2512,
+ 2517
+ ],
+ "tg-name": "trex-local",
+ "management_network": {
+ "subnet": "nfvbench-management-subnet",
+ "name": "nfvbench-management-net",
+ "segmentation_id": null,
+ "network_type": "vlan",
+ "physical_network": null,
+ "cidr": "192.168.0.0/24",
+ "gateway": "192.168.0.254"
+ },
+ "no_traffic": false,
+ "mpls": false,
+ "duration_sec": 10.0,
+ "clouds_detail": "openstack",
+ "mbuf_64": null,
+ "generic_poll_sec": 2,
+ "idle_interfaces_per_vm": 0,
+ "no_flow_stats": true,
+ "lat_percentiles": [
+ 25,
+ 75,
+ 99
+ ],
+ "no_cleanup": true,
+ "no_e2e_check": false,
+ "intf_speed_used": 25000000000.0,
+ "generator_profile": "trex-local",
+ "mbuf_factor": 0.2,
+ "user_label": "amical_tc12_basic",
+ "intf_speed": null,
+ "generic_retry_count": 100,
+ "flavor_type": "nfvbench.loop.basic",
+ "use_sriov_middle_net": false,
+ "json_file": "/var/lib/xtesting/results/non-regression/nfvbench-throughput-fs_768-fc_100k-rate_ndr-1.json",
+ "std_json_path": null,
+ "unidir_reverse_traffic_pps": 1,
+ "i40e_mixed": "ignore",
+ "gratuitous_arp_pps": 1,
+ "idle_networks": {
+ "subnet": "nfvbench-idle-subnet",
+ "name": "nfvbench-idle-net",
+ "segmentation_id": null,
+ "physical_network": null,
+ "cidr": "192.169.1.0/24",
+ "network_type": "vlan"
+ },
+ "interval_sec": 10.0,
+ "no_latency_stats": false,
+ "cores": null,
+ "log_file": "/var/lib/xtesting/results/non-regression/nfvbench.log",
+ "external_networks": {
+ "right": null,
+ "left": null
+ }
+ },
+ "benchmarks": {
+ "network": {
+ "service_chain": {
+ "PVP": {
+ "result": {
+ "compute_nodes": {},
+ "profile": "custom_traffic_profile",
+ "service_chain_count": 1,
+ "result": {
+ "768": {
+ "ndr": {
+ "load_percent_per_direction": 6.640625,
+ "timestamp_sec": 1648621693.1637194,
+ "stats": {
+ "total_tx_rate": 523406,
+ "overall": {
+ "rx_pkts": 5234062,
+ "drop_percentage": 1.910561642074236e-05,
+ "drop_pct": 1,
+ "max_delay_usec": 318,
+ "lat_percentile": {
+ "99": "n/a",
+ "25": "n/a",
+ "75": "n/a"
+ },
+ "tx_pkts": 5234063,
+ "avg_delay_usec": 106.50022525526063,
+ "min_delay_usec": 32,
+ "hdrh": "HISTFAAAABt4nJNpmSzMgADMUJoRTM6Y1mD/ASIAAEr9BCg="
+ },
+ "1": {
+ "rx_pkts": 2616900,
+ "min_delay_usec": 32,
+ "drop_pct": 0,
+ "max_delay_usec": 273,
+ "tx_pkts": 2617163,
+ "avg_delay_usec": 102,
+ "drop_percentage": 0.0
+ },
+ "0": {
+ "rx_pkts": 2617162,
+ "min_delay_usec": 32,
+ "drop_pct": 1,
+ "max_delay_usec": 318,
+ "tx_pkts": 2616900,
+ "avg_delay_usec": 111,
+ "drop_percentage": 3.821315296725133e-05
+ },
+ "theoretical_tx_rate_bps": 50000000000.0,
+ "offered_tx_rate_bps": 3299551424.0,
+ "theoretical_tx_rate_pps": 7931472.081218274
+ },
+ "initial_rate_type": "rate_percent",
+ "rate_percent": 13.28125,
+ "duration_sec": 10.0,
+ "l2frame_size": "768",
+ "rate_pps": 526698,
+ "rate_bps": 3320312500.0,
+ "time_taken_sec": 137.53268241882324
+ },
+ "iteration_stats": {
+ "ndr_pdr": [
+ {
+ "rx_pps": 1419133.1802420425,
+ "rx_pkts": 13668934,
+ "time_ms": 1648621568128,
+ "drop_pct": 62726128,
+ "total_tx_pps": 7639506,
+ "tx_pps": 7931472,
+ "tx_pkts": 76395062,
+ "drop_percentage": 82.10756868028983
+ },
+ {
+ "rx_pps": 1499465.703933795,
+ "rx_pkts": 14900941,
+ "time_ms": 1648621580622,
+ "drop_pct": 24508562,
+ "total_tx_pps": 3940950,
+ "tx_pps": 3965736,
+ "tx_pkts": 39409503,
+ "drop_percentage": 62.189472422425624
+ },
+ {
+ "rx_pps": 1746588.0892852556,
+ "rx_pkts": 17356722,
+ "time_ms": 1648621593115,
+ "drop_pct": 2348032,
+ "total_tx_pps": 1970475,
+ "tx_pps": 1982868,
+ "tx_pkts": 19704754,
+ "drop_percentage": 11.916068579186526
+ },
+ {
+ "rx_pps": 991022.0667012471,
+ "rx_pkts": 9849275,
+ "time_ms": 1648621605613,
+ "drop_pct": 4094,
+ "total_tx_pps": 985336,
+ "tx_pps": 991434,
+ "tx_pkts": 9853369,
+ "drop_percentage": 0.0415492406708812
+ },
+ {
+ "rx_pps": 495716.0,
+ "rx_pkts": 4926180,
+ "time_ms": 1648621618110,
+ "drop_pct": 0,
+ "total_tx_pps": 492618,
+ "tx_pps": 495716,
+ "tx_pkts": 4926180,
+ "drop_percentage": 0.0
+ },
+ {
+ "rx_pps": 743159.3083655083,
+ "rx_pkts": 7385149,
+ "time_ms": 1648621630627,
+ "drop_pct": 4121,
+ "total_tx_pps": 738927,
+ "tx_pps": 743574,
+ "tx_pkts": 7389270,
+ "drop_percentage": 0.05577005577005577
+ },
+ {
+ "rx_pps": 619263.0064059279,
+ "rx_pkts": 6153928,
+ "time_ms": 1648621643143,
+ "drop_pct": 3806,
+ "total_tx_pps": 615773,
+ "tx_pps": 619646,
+ "tx_pkts": 6157734,
+ "drop_percentage": 0.06180845096589102
+ },
+ {
+ "rx_pps": 557594.6752731256,
+ "rx_pkts": 5541656,
+ "time_ms": 1648621655641,
+ "drop_pct": 848,
+ "total_tx_pps": 554250,
+ "tx_pps": 557680,
+ "tx_pkts": 5542504,
+ "drop_percentage": 0.015299943852092844
+ },
+ {
+ "rx_pps": 526697.8993711005,
+ "rx_pkts": 5234062,
+ "time_ms": 1648621668148,
+ "drop_pct": 1,
+ "total_tx_pps": 523406,
+ "tx_pps": 526698,
+ "tx_pkts": 5234063,
+ "drop_percentage": 1.9105616420742355e-05
+ },
+ {
+ "rx_pps": 542111.0142915759,
+ "rx_pkts": 5387774,
+ "time_ms": 1648621680646,
+ "drop_pct": 785,
+ "total_tx_pps": 538855,
+ "tx_pps": 542190,
+ "tx_pkts": 5388559,
+ "drop_percentage": 0.01456790210518248
+ },
+ {
+ "rx_pps": 534373.8016685186,
+ "rx_pkts": 5321028,
+ "time_ms": 1648621693162,
+ "drop_pct": 699,
+ "total_tx_pps": 532172,
+ "tx_pps": 534444,
+ "tx_pkts": 5321727,
+ "ndr_pps": 263349,
+ "drop_percentage": 0.013134833861263458
+ }
+ ]
+ }
+ }
+ },
+ "flow_count": 100000,
+ "bidirectional": true
+ }
+ }
+ },
+ "versions": {
+ "Traffic_Generator": {
+ "build_date": "Apr 14 2021",
+ "version": "v2.89",
+ "built_by": "hhaim",
+ "mode": "STL",
+ "build_time": "11:22:15"
+ }
+ }
+ }
+ }
+ },
+ "request_id": "42bb799d87974e05a9480378a9074174"
+ },
+ "synthesis": {
+ "avg_delay_usec": 106.50022525526063,
+ "total_tx_rate": 523406
+ }
+ },
+ {
+ "input": {
+ "duration_sec": "10",
+ "flavor_type": "nfvbench.loop.basic",
+ "json": "/var/lib/xtesting/results/non-regression/nfvbench-throughput-fs_1518-fc_100k-rate_ndr-2.json",
+ "frame_sizes": [
+ "1518"
+ ],
+ "rate": "ndr",
+ "flow_count": "100k",
+ "log_file": "/var/lib/xtesting/results/non-regression/nfvbench.log",
+ "user_label": "amical_tc12_basic"
+ },
+ "output": {
+ "status": "OK",
+ "result": {
+ "date": "2022-03-30 06:30:43",
+ "nfvbench_version": "5.0.4.dev29",
+ "config": {
+ "compute_nodes": null,
+ "traffic_generator": {
+ "mac_addrs_left": null,
+ "gateway_ip_addrs": [
+ "192.168.30.2",
+ "192.168.31.2"
+ ],
+ "mac_addrs_right": null,
+ "default_profile": "trex-local",
+ "src_vteps": null,
+ "generator_profile": [
+ {
+ "intf_speed": null,
+ "name": "trex-local",
+ "ip": "127.0.0.1",
+ "zmq_rpc_port": 4501,
+ "tool": "TRex",
+ "platform": {
+ "master_thread_id": "0",
+ "latency_thread_id": "1",
+ "dual_if": [
+ {
+ "threads": [
+ 2,
+ 3,
+ 4,
+ 5,
+ 6,
+ 7
+ ],
+ "socket": 0
+ }
+ ]
+ },
+ "zmq_pub_port": 4500,
+ "interfaces": [
+ {
+ "switch": null,
+ "pci": "0000:00:05.0",
+ "port": 0
+ },
+ {
+ "switch": null,
+ "pci": "0000:00:06.0",
+ "port": 1
+ }
+ ],
+ "cores": 5,
+ "software_mode": false
+ }
+ ],
+ "vtep_gateway_ips": null,
+ "tg_gateway_ip_addrs_step": "0.0.0.1",
+ "udp_port_step": "1",
+ "udp_src_port": [
+ "49152",
+ "49168"
+ ],
+ "gateway_ip_addrs_step": "0.0.0.1",
+ "tg_gateway_ip_addrs": [
+ "192.168.30.1",
+ "192.168.31.1"
+ ],
+ "ip_addrs": [
+ "198.18.0.0/16",
+ "198.19.0.0/16"
+ ],
+ "ip_src_static": true,
+ "host_name": "nfvbench_tg",
+ "ip_addrs_step": "0.0.0.1",
+ "tg_gateway_ip_cidrs": [
+ "192.168.1.0/24",
+ "192.168.2.0/24"
+ ],
+ "dst_vtep": null,
+ "vtep_vlan": null,
+ "udp_dst_port": [
+ "49152",
+ "49168"
+ ]
+ },
+ "availability_zone": "nova",
+ "vif_multiqueue_size": 8,
+ "periodic_gratuitous_arp": false,
+ "flavor": {
+ "vcpus": 2,
+ "disk": 0,
+ "extra_specs": {
+ "hw:cpu_policy": "dedicated",
+ "hw:mem_page_size": "large"
+ },
+ "ram": 4096
+ },
+ "floating_network": {
+ "subnet": "nfvbench-floating-subnet",
+ "name": "nfvbench-floating-net",
+ "segmentation_id": null,
+ "physical_network": null,
+ "cidr": "192.168.0.0/24",
+ "network_type": "vlan"
+ },
+ "user_info": null,
+ "service_chain": "PVP",
+ "sriov": false,
+ "vxlan": false,
+ "intf_speed_detected": 25000000000.0,
+ "pause_sec": 2.0,
+ "internal_networks": {
+ "middle": {
+ "subnet": "nfvbench-msubnet",
+ "name": "nfvbench-mnet",
+ "segmentation_id": null,
+ "physical_network": null,
+ "mpls_transport_labels": null,
+ "cidr": "192.168.3.0/24",
+ "network_type": "vlan"
+ },
+ "right": {
+ "subnet": "subnet_nfvbench_vn2bis",
+ "name": "net_nfvbench_vn2bis",
+ "segmentation_id": null,
+ "physical_network": null,
+ "mpls_transport_labels": null,
+ "cidr": "192.168.31.0/24",
+ "network_type": "vlan"
+ },
+ "left": {
+ "subnet": "subnet_nfvbench_vn1bis",
+ "name": "net_nfvbench_vn1bis",
+ "segmentation_id": null,
+ "physical_network": null,
+ "mpls_transport_labels": null,
+ "cidr": "192.168.30.0/24",
+ "network_type": "vlan"
+ }
+ },
+ "no_vswitch_access": false,
+ "traffic": {
+ "bidirectional": true,
+ "profile": "custom_traffic_profile"
+ },
+ "restart": false,
+ "vm_image_file": "nfvbenchvm-0.15.0901.qcow2",
+ "name": "nfvbench.conf",
+ "std_json": null,
+ "l2_loopback": false,
+ "request_id": "53e4dda50a71447681903270ab2e5a3e",
+ "debug": false,
+ "group_id": null,
+ "loop_vm_name": "nfvbench-loop-vm",
+ "check_traffic_time_sec": 200,
+ "num_mbufs": 128000,
+ "rate": "ndr",
+ "service_chain_count": 1,
+ "service_chain_shared_net": true,
+ "measurement": {
+ "NDR": 0.001,
+ "PDR": 0.1,
+ "load_epsilon": 0.1
+ },
+ "l3_router": false,
+ "debug_mask": 0,
+ "factory_class": "BasicFactory",
+ "tg-tool": "TRex",
+ "frame_sizes": [
+ "1518"
+ ],
+ "service_mode": false,
+ "edge_networks": {
+ "right": {
+ "subnet": "nfvbench-subnet3",
+ "name": "nfvbench-net3",
+ "segmentation_id": null,
+ "network_type": null,
+ "physical_network": null,
+ "cidr": "192.168.4.0/24",
+ "router_name": "router_right",
+ "gateway": null
+ },
+ "left": {
+ "subnet": "nfvbench-subnet2",
+ "name": "nfvbench-net2",
+ "segmentation_id": null,
+ "network_type": null,
+ "physical_network": null,
+ "cidr": "192.168.3.0/24",
+ "router_name": "router_left",
+ "gateway": null
+ }
+ },
+ "ndr_run": true,
+ "use_management_port": false,
+ "hypervisor_hostname": "localdomain",
+ "cache_size": 16,
+ "pdr_run": false,
+ "vlan_tagging": false,
+ "fluentd": [
+ {
+ "ip": "172.20.73.203",
+ "result_tag": "nfvbench.results.amical",
+ "logging_tag": "nfvbench.logs.amical",
+ "port": 25225
+ }
+ ],
+ "use_floating_ip": false,
+ "flow_count": 100000,
+ "loop_vm_arp": false,
+ "user_id": null,
+ "openrc_file": null,
+ "disable_hdrh": false,
+ "json": "/var/lib/xtesting/results/non-regression/nfvbench-throughput-fs_1518-fc_100k-rate_ndr-0.json",
+ "vm_forwarder": "vpp",
+ "factory_module": "nfvbench.factory",
+ "no_latency_streams": false,
+ "single_run": false,
+ "no_arp": false,
+ "cores_used": 5,
+ "traffic_profile": [
+ {
+ "l2frame_size": [
+ "1518"
+ ],
+ "name": "custom_traffic_profile"
+ }
+ ],
+ "vlans": [
+ 2512,
+ 2517
+ ],
+ "tg-name": "trex-local",
+ "management_network": {
+ "subnet": "nfvbench-management-subnet",
+ "name": "nfvbench-management-net",
+ "segmentation_id": null,
+ "network_type": "vlan",
+ "physical_network": null,
+ "cidr": "192.168.0.0/24",
+ "gateway": "192.168.0.254"
+ },
+ "no_traffic": false,
+ "mpls": false,
+ "duration_sec": 10.0,
+ "clouds_detail": "openstack",
+ "mbuf_64": null,
+ "generic_poll_sec": 2,
+ "idle_interfaces_per_vm": 0,
+ "no_flow_stats": true,
+ "lat_percentiles": [
+ 25,
+ 75,
+ 99
+ ],
+ "no_cleanup": true,
+ "no_e2e_check": false,
+ "intf_speed_used": 25000000000.0,
+ "generator_profile": "trex-local",
+ "mbuf_factor": 0.2,
+ "user_label": "amical_tc12_basic",
+ "intf_speed": null,
+ "generic_retry_count": 100,
+ "flavor_type": "nfvbench.loop.basic",
+ "use_sriov_middle_net": false,
+ "json_file": "/var/lib/xtesting/results/non-regression/nfvbench-throughput-fs_1518-fc_100k-rate_ndr-0.json",
+ "std_json_path": null,
+ "unidir_reverse_traffic_pps": 1,
+ "i40e_mixed": "ignore",
+ "gratuitous_arp_pps": 1,
+ "idle_networks": {
+ "subnet": "nfvbench-idle-subnet",
+ "name": "nfvbench-idle-net",
+ "segmentation_id": null,
+ "physical_network": null,
+ "cidr": "192.169.1.0/24",
+ "network_type": "vlan"
+ },
+ "interval_sec": 10.0,
+ "no_latency_stats": false,
+ "cores": null,
+ "log_file": "/var/lib/xtesting/results/non-regression/nfvbench.log",
+ "external_networks": {
+ "right": null,
+ "left": null
+ }
+ },
+ "benchmarks": {
+ "network": {
+ "service_chain": {
+ "PVP": {
+ "result": {
+ "compute_nodes": {},
+ "profile": "custom_traffic_profile",
+ "service_chain_count": 1,
+ "result": {
+ "1518": {
+ "ndr": {
+ "load_percent_per_direction": 12.6953125,
+ "timestamp_sec": 1648621986.5806987,
+ "stats": {
+ "total_tx_rate": 512701,
+ "overall": {
+ "rx_pkts": 5127015,
+ "drop_percentage": 3.900903780892476e-05,
+ "drop_pct": 2,
+ "max_delay_usec": 304,
+ "lat_percentile": {
+ "99": "n/a",
+ "25": "n/a",
+ "75": "n/a"
+ },
+ "tx_pkts": 5127017,
+ "avg_delay_usec": 148.00000409595057,
+ "min_delay_usec": 34,
+ "hdrh": "HISTFAAAABt4nJNpmSzMgADMUJoRTM6Y1mD/ASIAAEr9BCg="
+ },
+ "1": {
+ "rx_pkts": 2563507,
+ "min_delay_usec": 34,
+ "drop_pct": 2,
+ "max_delay_usec": 304,
+ "tx_pkts": 2563508,
+ "avg_delay_usec": 127,
+ "drop_percentage": 7.801809083490279e-05
+ },
+ "0": {
+ "rx_pkts": 2563508,
+ "min_delay_usec": 35,
+ "drop_pct": 0,
+ "max_delay_usec": 301,
+ "tx_pkts": 2563509,
+ "avg_delay_usec": 169,
+ "drop_percentage": 0.0
+ },
+ "theoretical_tx_rate_bps": 50000000000.0,
+ "offered_tx_rate_bps": 6308273104.0,
+ "theoretical_tx_rate_pps": 4063719.1157347206
+ },
+ "initial_rate_type": "rate_percent",
+ "rate_percent": 25.390625,
+ "duration_sec": 10.0,
+ "l2frame_size": "1518",
+ "rate_pps": 515900,
+ "rate_bps": 6347656250.0,
+ "time_taken_sec": 137.57492327690125
+ },
+ "iteration_stats": {
+ "ndr_pdr": [
+ {
+ "rx_pps": 1534778.8969990357,
+ "rx_pkts": 15015623,
+ "time_ms": 1648621861490,
+ "drop_pct": 24742063,
+ "total_tx_pps": 3975768,
+ "tx_pps": 4063718,
+ "tx_pkts": 39757686,
+ "drop_percentage": 62.23215053310698
+ },
+ {
+ "rx_pps": 1446228.6489812837,
+ "rx_pkts": 14371898,
+ "time_ms": 1648621874016,
+ "drop_pct": 5819692,
+ "total_tx_pps": 2019159,
+ "tx_pps": 2031858,
+ "tx_pkts": 20191590,
+ "drop_percentage": 28.822356238414113
+ },
+ {
+ "rx_pps": 1015743.6478261326,
+ "rx_pkts": 10093954,
+ "time_ms": 1648621886513,
+ "drop_pct": 1832,
+ "total_tx_pps": 1009578,
+ "tx_pps": 1015928,
+ "tx_pkts": 10095786,
+ "drop_percentage": 0.018146184952811003
+ },
+ {
+ "rx_pps": 507963.59748457576,
+ "rx_pkts": 5047892,
+ "time_ms": 1648621899009,
+ "drop_pct": 4,
+ "total_tx_pps": 504789,
+ "tx_pps": 507964,
+ "tx_pkts": 5047896,
+ "drop_percentage": 7.9240935233214e-05
+ },
+ {
+ "rx_pps": 761669.4717574592,
+ "rx_pkts": 7569092,
+ "time_ms": 1648621911525,
+ "drop_pct": 2748,
+ "total_tx_pps": 757184,
+ "tx_pps": 761946,
+ "tx_pkts": 7571840,
+ "drop_percentage": 0.0362923675090863
+ },
+ {
+ "rx_pps": 634709.9871290971,
+ "rx_pkts": 6308068,
+ "time_ms": 1648621924063,
+ "drop_pct": 2445,
+ "total_tx_pps": 631051,
+ "tx_pps": 634956,
+ "tx_pkts": 6310513,
+ "drop_percentage": 0.038744869077997304
+ },
+ {
+ "rx_pps": 570817.786304882,
+ "rx_pkts": 5672503,
+ "time_ms": 1648621936573,
+ "drop_pct": 6382,
+ "total_tx_pps": 567888,
+ "tx_pps": 571460,
+ "tx_pkts": 5678885,
+ "drop_percentage": 0.11238121567878201
+ },
+ {
+ "rx_pps": 539659.9475749807,
+ "rx_pkts": 5370429,
+ "time_ms": 1648621949076,
+ "drop_pct": 518,
+ "total_tx_pps": 537094,
+ "tx_pps": 539712,
+ "tx_pkts": 5370947,
+ "drop_percentage": 0.009644481690100461
+ },
+ {
+ "rx_pps": 523812.0403582982,
+ "rx_pkts": 5205908,
+ "time_ms": 1648621961578,
+ "drop_pct": 258,
+ "total_tx_pps": 520616,
+ "tx_pps": 523838,
+ "tx_pkts": 5206166,
+ "drop_percentage": 0.004955662189795715
+ },
+ {
+ "rx_pps": 515899.79875237396,
+ "rx_pkts": 5127015,
+ "time_ms": 1648621974085,
+ "drop_pct": 2,
+ "total_tx_pps": 512701,
+ "tx_pps": 515900,
+ "tx_pkts": 5127017,
+ "drop_percentage": 3.900903780892476e-05
+ },
+ {
+ "rx_pps": 519853.3979002963,
+ "rx_pkts": 5166564,
+ "time_ms": 1648621986579,
+ "drop_pct": 165,
+ "total_tx_pps": 516672,
+ "tx_pps": 519870,
+ "tx_pkts": 5166729,
+ "ndr_pps": 257950,
+ "drop_percentage": 0.003193509858945573
+ }
+ ]
+ }
+ }
+ },
+ "flow_count": 100000,
+ "bidirectional": true
+ }
+ }
+ },
+ "versions": {
+ "Traffic_Generator": {
+ "build_date": "Apr 14 2021",
+ "version": "v2.89",
+ "built_by": "hhaim",
+ "mode": "STL",
+ "build_time": "11:22:15"
+ }
+ }
+ }
+ }
+ },
+ "request_id": "53e4dda50a71447681903270ab2e5a3e"
+ },
+ "synthesis": {
+ "avg_delay_usec": 148.00000409595057,
+ "total_tx_rate": 512701
+ }
+ },
+ {
+ "input": {
+ "duration_sec": "10",
+ "flavor_type": "nfvbench.loop.basic",
+ "json": "/var/lib/xtesting/results/non-regression/nfvbench-throughput-fs_9000-fc_100k-rate_ndr-2.json",
+ "frame_sizes": [
+ "9000"
+ ],
+ "rate": "ndr",
+ "flow_count": "100k",
+ "log_file": "/var/lib/xtesting/results/non-regression/nfvbench.log",
+ "user_label": "amical_tc12_basic"
+ },
+ "output": {
+ "status": "OK",
+ "result": {
+ "date": "2022-03-30 06:42:59",
+ "nfvbench_version": "5.0.4.dev29",
+ "config": {
+ "compute_nodes": null,
+ "traffic_generator": {
+ "mac_addrs_left": null,
+ "gateway_ip_addrs": [
+ "192.168.30.2",
+ "192.168.31.2"
+ ],
+ "mac_addrs_right": null,
+ "default_profile": "trex-local",
+ "src_vteps": null,
+ "generator_profile": [
+ {
+ "intf_speed": null,
+ "name": "trex-local",
+ "ip": "127.0.0.1",
+ "zmq_rpc_port": 4501,
+ "tool": "TRex",
+ "platform": {
+ "master_thread_id": "0",
+ "latency_thread_id": "1",
+ "dual_if": [
+ {
+ "threads": [
+ 2,
+ 3,
+ 4,
+ 5,
+ 6,
+ 7
+ ],
+ "socket": 0
+ }
+ ]
+ },
+ "zmq_pub_port": 4500,
+ "interfaces": [
+ {
+ "switch": null,
+ "pci": "0000:00:05.0",
+ "port": 0
+ },
+ {
+ "switch": null,
+ "pci": "0000:00:06.0",
+ "port": 1
+ }
+ ],
+ "cores": 5,
+ "software_mode": false
+ }
+ ],
+ "vtep_gateway_ips": null,
+ "tg_gateway_ip_addrs_step": "0.0.0.1",
+ "udp_port_step": "1",
+ "udp_src_port": [
+ "49152",
+ "49168"
+ ],
+ "gateway_ip_addrs_step": "0.0.0.1",
+ "tg_gateway_ip_addrs": [
+ "192.168.30.1",
+ "192.168.31.1"
+ ],
+ "ip_addrs": [
+ "198.18.0.0/16",
+ "198.19.0.0/16"
+ ],
+ "ip_src_static": true,
+ "host_name": "nfvbench_tg",
+ "ip_addrs_step": "0.0.0.1",
+ "tg_gateway_ip_cidrs": [
+ "192.168.1.0/24",
+ "192.168.2.0/24"
+ ],
+ "dst_vtep": null,
+ "vtep_vlan": null,
+ "udp_dst_port": [
+ "49152",
+ "49168"
+ ]
+ },
+ "availability_zone": "nova",
+ "vif_multiqueue_size": 8,
+ "periodic_gratuitous_arp": false,
+ "flavor": {
+ "vcpus": 2,
+ "disk": 0,
+ "extra_specs": {
+ "hw:cpu_policy": "dedicated",
+ "hw:mem_page_size": "large"
+ },
+ "ram": 4096
+ },
+ "floating_network": {
+ "subnet": "nfvbench-floating-subnet",
+ "name": "nfvbench-floating-net",
+ "segmentation_id": null,
+ "physical_network": null,
+ "cidr": "192.168.0.0/24",
+ "network_type": "vlan"
+ },
+ "user_info": null,
+ "service_chain": "PVP",
+ "sriov": false,
+ "vxlan": false,
+ "intf_speed_detected": 25000000000.0,
+ "pause_sec": 2.0,
+ "internal_networks": {
+ "middle": {
+ "subnet": "nfvbench-msubnet",
+ "name": "nfvbench-mnet",
+ "segmentation_id": null,
+ "physical_network": null,
+ "mpls_transport_labels": null,
+ "cidr": "192.168.3.0/24",
+ "network_type": "vlan"
+ },
+ "right": {
+ "subnet": "subnet_nfvbench_vn2bis",
+ "name": "net_nfvbench_vn2bis",
+ "segmentation_id": null,
+ "physical_network": null,
+ "mpls_transport_labels": null,
+ "cidr": "192.168.31.0/24",
+ "network_type": "vlan"
+ },
+ "left": {
+ "subnet": "subnet_nfvbench_vn1bis",
+ "name": "net_nfvbench_vn1bis",
+ "segmentation_id": null,
+ "physical_network": null,
+ "mpls_transport_labels": null,
+ "cidr": "192.168.30.0/24",
+ "network_type": "vlan"
+ }
+ },
+ "no_vswitch_access": false,
+ "traffic": {
+ "bidirectional": true,
+ "profile": "custom_traffic_profile"
+ },
+ "restart": false,
+ "vm_image_file": "nfvbenchvm-0.15.0901.qcow2",
+ "name": "nfvbench.conf",
+ "std_json": null,
+ "l2_loopback": false,
+ "request_id": "f621b77faf384c08b3fcb9b6a3ec9523",
+ "debug": false,
+ "group_id": null,
+ "loop_vm_name": "nfvbench-loop-vm",
+ "check_traffic_time_sec": 200,
+ "num_mbufs": 128000,
+ "rate": "ndr",
+ "service_chain_count": 1,
+ "service_chain_shared_net": true,
+ "measurement": {
+ "NDR": 0.001,
+ "PDR": 0.1,
+ "load_epsilon": 0.1
+ },
+ "l3_router": false,
+ "debug_mask": 0,
+ "factory_class": "BasicFactory",
+ "tg-tool": "TRex",
+ "frame_sizes": [
+ "9000"
+ ],
+ "service_mode": false,
+ "edge_networks": {
+ "right": {
+ "subnet": "nfvbench-subnet3",
+ "name": "nfvbench-net3",
+ "segmentation_id": null,
+ "network_type": null,
+ "physical_network": null,
+ "cidr": "192.168.4.0/24",
+ "router_name": "router_right",
+ "gateway": null
+ },
+ "left": {
+ "subnet": "nfvbench-subnet2",
+ "name": "nfvbench-net2",
+ "segmentation_id": null,
+ "network_type": null,
+ "physical_network": null,
+ "cidr": "192.168.3.0/24",
+ "router_name": "router_left",
+ "gateway": null
+ }
+ },
+ "ndr_run": true,
+ "use_management_port": false,
+ "hypervisor_hostname": "localdomain",
+ "cache_size": 16,
+ "pdr_run": false,
+ "vlan_tagging": false,
+ "fluentd": [
+ {
+ "ip": "172.20.73.203",
+ "result_tag": "nfvbench.results.amical",
+ "logging_tag": "nfvbench.logs.amical",
+ "port": 25225
+ }
+ ],
+ "use_floating_ip": false,
+ "flow_count": 100000,
+ "loop_vm_arp": false,
+ "user_id": null,
+ "openrc_file": null,
+ "disable_hdrh": false,
+ "json": "/var/lib/xtesting/results/non-regression/nfvbench-throughput-fs_9000-fc_100k-rate_ndr-2.json",
+ "vm_forwarder": "vpp",
+ "factory_module": "nfvbench.factory",
+ "no_latency_streams": false,
+ "single_run": false,
+ "no_arp": false,
+ "cores_used": 5,
+ "traffic_profile": [
+ {
+ "l2frame_size": [
+ "9000"
+ ],
+ "name": "custom_traffic_profile"
+ }
+ ],
+ "vlans": [
+ 2512,
+ 2517
+ ],
+ "tg-name": "trex-local",
+ "management_network": {
+ "subnet": "nfvbench-management-subnet",
+ "name": "nfvbench-management-net",
+ "segmentation_id": null,
+ "network_type": "vlan",
+ "physical_network": null,
+ "cidr": "192.168.0.0/24",
+ "gateway": "192.168.0.254"
+ },
+ "no_traffic": false,
+ "mpls": false,
+ "duration_sec": 10.0,
+ "clouds_detail": "openstack",
+ "mbuf_64": null,
+ "generic_poll_sec": 2,
+ "idle_interfaces_per_vm": 0,
+ "no_flow_stats": true,
+ "lat_percentiles": [
+ 25,
+ 75,
+ 99
+ ],
+ "no_cleanup": true,
+ "no_e2e_check": false,
+ "intf_speed_used": 25000000000.0,
+ "generator_profile": "trex-local",
+ "mbuf_factor": 0.2,
+ "user_label": "amical_tc12_basic",
+ "intf_speed": null,
+ "generic_retry_count": 100,
+ "flavor_type": "nfvbench.loop.basic",
+ "use_sriov_middle_net": false,
+ "json_file": "/var/lib/xtesting/results/non-regression/nfvbench-throughput-fs_9000-fc_100k-rate_ndr-2.json",
+ "std_json_path": null,
+ "unidir_reverse_traffic_pps": 1,
+ "i40e_mixed": "ignore",
+ "gratuitous_arp_pps": 1,
+ "idle_networks": {
+ "subnet": "nfvbench-idle-subnet",
+ "name": "nfvbench-idle-net",
+ "segmentation_id": null,
+ "physical_network": null,
+ "cidr": "192.169.1.0/24",
+ "network_type": "vlan"
+ },
+ "interval_sec": 10.0,
+ "no_latency_stats": false,
+ "cores": null,
+ "log_file": "/var/lib/xtesting/results/non-regression/nfvbench.log",
+ "external_networks": {
+ "right": null,
+ "left": null
+ }
+ },
+ "benchmarks": {
+ "network": {
+ "service_chain": {
+ "PVP": {
+ "result": {
+ "compute_nodes": {},
+ "profile": "custom_traffic_profile",
+ "service_chain_count": 1,
+ "result": {
+ "9000": {
+ "ndr": {
+ "load_percent_per_direction": 39.84375,
+ "timestamp_sec": 1648622722.125216,
+ "stats": {
+ "total_tx_rate": 274380,
+ "overall": {
+ "rx_pkts": 2743802,
+ "drop_percentage": 0.0,
+ "drop_pct": 0,
+ "max_delay_usec": 1244,
+ "lat_percentile": {
+ "99": "n/a",
+ "25": "n/a",
+ "75": "n/a"
+ },
+ "tx_pkts": 2743802,
+ "avg_delay_usec": 641.5002263282846,
+ "min_delay_usec": 72,
+ "hdrh": "HISTFAAAABt4nJNpmSzMgADMUJoRTM6Y1mD/ASIAAEr9BCg="
+ },
+ "1": {
+ "rx_pkts": 1371832,
+ "min_delay_usec": 74,
+ "drop_pct": 0,
+ "max_delay_usec": 1244,
+ "tx_pkts": 1371970,
+ "avg_delay_usec": 637,
+ "drop_percentage": 0.0
+ },
+ "0": {
+ "rx_pkts": 1371970,
+ "min_delay_usec": 72,
+ "drop_pct": 0,
+ "max_delay_usec": 1235,
+ "tx_pkts": 1371832,
+ "avg_delay_usec": 646,
+ "drop_percentage": 0.0
+ },
+ "theoretical_tx_rate_bps": 50000000000.0,
+ "offered_tx_rate_bps": 19799260800.0,
+ "theoretical_tx_rate_pps": 692904.6563192905
+ },
+ "initial_rate_type": "rate_percent",
+ "rate_percent": 79.6875,
+ "duration_sec": 10.0,
+ "l2frame_size": "9000",
+ "rate_pps": 276078,
+ "rate_bps": 19921875000.0,
+ "time_taken_sec": 137.65054941177368
+ },
+ "iteration_stats": {
+ "ndr_pdr": [
+ {
+ "rx_pps": 273698.46051110676,
+ "rx_pkts": 2718128,
+ "time_ms": 1648622596961,
+ "drop_pct": 4163174,
+ "total_tx_pps": 688130,
+ "tx_pps": 692904,
+ "tx_pkts": 6881302,
+ "drop_percentage": 60.49980076444836
+ },
+ {
+ "rx_pps": 276582.23920405895,
+ "rx_pkts": 2748537,
+ "time_ms": 1648622609474,
+ "drop_pct": 694331,
+ "total_tx_pps": 344286,
+ "tx_pps": 346452,
+ "tx_pkts": 3442868,
+ "drop_percentage": 20.167226858537706
+ },
+ {
+ "rx_pps": 173226.0,
+ "rx_pkts": 1721434,
+ "time_ms": 1648622622000,
+ "drop_pct": 0,
+ "total_tx_pps": 172143,
+ "tx_pps": 173226,
+ "tx_pkts": 1721434,
+ "drop_percentage": 0.0
+ },
+ {
+ "rx_pps": 259838.0,
+ "rx_pkts": 2582143,
+ "time_ms": 1648622634517,
+ "drop_pct": 0,
+ "total_tx_pps": 258214,
+ "tx_pps": 259838,
+ "tx_pkts": 2582143,
+ "drop_percentage": 0.0
+ },
+ {
+ "rx_pps": 276973.17842007434,
+ "rx_pkts": 2752701,
+ "time_ms": 1648622647105,
+ "drop_pct": 260099,
+ "total_tx_pps": 301280,
+ "tx_pps": 303144,
+ "tx_pkts": 3012800,
+ "drop_percentage": 8.633131970260223
+ },
+ {
+ "rx_pps": 276794.44570930133,
+ "rx_pkts": 2750648,
+ "time_ms": 1648622659614,
+ "drop_pct": 46682,
+ "total_tx_pps": 279733,
+ "tx_pps": 281492,
+ "tx_pkts": 2797330,
+ "drop_percentage": 1.6688056110648368
+ },
+ {
+ "rx_pps": 270664.0,
+ "rx_pkts": 2694191,
+ "time_ms": 1648622672130,
+ "drop_pct": 0,
+ "total_tx_pps": 269419,
+ "tx_pps": 270664,
+ "tx_pkts": 2694191,
+ "drop_percentage": 0.0
+ },
+ {
+ "rx_pps": 276078.0,
+ "rx_pkts": 2743802,
+ "time_ms": 1648622684633,
+ "drop_pct": 0,
+ "total_tx_pps": 274380,
+ "tx_pps": 276078,
+ "tx_pkts": 2743802,
+ "drop_percentage": 0.0
+ },
+ {
+ "rx_pps": 276955.355288579,
+ "rx_pkts": 2752523,
+ "time_ms": 1648622697132,
+ "drop_pct": 18174,
+ "total_tx_pps": 277069,
+ "tx_pps": 278784,
+ "tx_pkts": 2770697,
+ "drop_percentage": 0.6559360334240807
+ },
+ {
+ "rx_pps": 276409.30910346564,
+ "rx_pkts": 2746820,
+ "time_ms": 1648622709624,
+ "drop_pct": 10163,
+ "total_tx_pps": 275698,
+ "tx_pps": 277432,
+ "tx_pkts": 2756983,
+ "drop_percentage": 0.3686275903768721
+ },
+ {
+ "rx_pps": 276744.94431529724,
+ "rx_pkts": 2750432,
+ "time_ms": 1648622722124,
+ "drop_pct": 90,
+ "total_tx_pps": 275052,
+ "tx_pps": 276754,
+ "tx_pkts": 2750522,
+ "ndr_pps": 138039,
+ "drop_percentage": 0.003272106167483845
+ }
+ ]
+ }
+ }
+ },
+ "flow_count": 100000,
+ "bidirectional": true
+ }
+ }
+ },
+ "versions": {
+ "Traffic_Generator": {
+ "build_date": "Apr 14 2021",
+ "version": "v2.89",
+ "built_by": "hhaim",
+ "mode": "STL",
+ "build_time": "11:22:15"
+ }
+ }
+ }
+ }
+ },
+ "request_id": "f621b77faf384c08b3fcb9b6a3ec9523"
+ },
+ "synthesis": {
+ "avg_delay_usec": 641.5002263282846,
+ "total_tx_rate": 274380
+ }
+ }
+ ]
+ },
+ "fail_tests": 0,
+ "total_tests": 1,
+ "pass_tests": 1
+ }
+ }
+ ]
+}
diff --git a/test/ut_behave_tests/test_steps.py b/test/ut_behave_tests/test_steps.py
new file mode 100644
index 0000000..ae6df45
--- /dev/null
+++ b/test/ut_behave_tests/test_steps.py
@@ -0,0 +1,151 @@
+#!/usr/bin/env python
+# Copyright 2022 Orange
+#
+# 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.
+#
+
+"""
+Unit tests for some of the functions found in behave_tests/features/steps/steps.py
+"""
+
+import logging
+import unittest
+from unittest.mock import call, Mock, patch
+
+from behave_tests.features.steps.steps import get_last_result
+from .test_utils import setup_logging, stub_requests_get
+
+
+def setUpModule():
+ setup_logging()
+
+
+class TestGetLastResult(unittest.TestCase):
+ def setUp(self):
+ # Mock requests.get() so that TestAPI results come from JSON files
+ # found in test_data/ directory.
+ patcher = patch('behave_tests.features.steps.testapi.requests')
+ self._mock_requests = patcher.start()
+ self._mock_requests.get.side_effect = stub_requests_get
+ self.addCleanup(patcher.stop)
+
+ # Setup a mock for behave context
+ self._context = Mock()
+ self._context.data = {
+ 'PROJECT_NAME': "nfvbench",
+ 'TEST_DB_URL': "http://127.0.0.1:8000/api/v1/results"
+ }
+ self._context.logger = logging.getLogger("behave_tests")
+
+ def test_get_last_result_throughput_characterization(self):
+ self._context.json = {
+ "frame_sizes": ['64'],
+ "flow_count": "100k",
+ "duration_sec": '10',
+ "rate": "ndr",
+ "user_label": "amical_tc18_loopback"
+ }
+ self._context.tag = "throughput"
+
+ last_result = get_last_result(self._context, reference=True)
+
+ self.assertIsNotNone(last_result)
+ self.assertEqual(16765582, last_result["synthesis"]["total_tx_rate"])
+ self.assertEqual(25, round(last_result["synthesis"]["avg_delay_usec"]))
+
+ self._mock_requests.get.assert_called_once_with(
+ "http://127.0.0.1:8000/api/v1/results?"
+ "project=nfvbench&case=characterization&criteria=PASS&page=1")
+
+ def test_get_last_result_latency_characterization(self):
+ self._context.json = {
+ "frame_sizes": ['768'],
+ "flow_count": "100k",
+ "duration_sec": '10',
+ "rate": "90%",
+ "user_label": "amical_tc6_intensive"
+ }
+ self._context.tag = "latency"
+
+ last_result = get_last_result(self._context, reference=True)
+
+ self.assertIsNotNone(last_result)
+ self.assertEqual(262275, last_result["synthesis"]["total_tx_rate"])
+ self.assertEqual(353, round(last_result["synthesis"]["avg_delay_usec"]))
+
+ self._mock_requests.get.assert_has_calls([
+ call("http://127.0.0.1:8000/api/v1/results?"
+ "project=nfvbench&case=characterization&criteria=PASS&page=1"),
+ call("http://127.0.0.1:8000/api/v1/results?"
+ "project=nfvbench&case=characterization&criteria=PASS&page=2")])
+
+ def test_last_result_not_found(self):
+ self._context.json = {
+ "frame_sizes": ['64'],
+ "flow_count": "100k",
+ "duration_sec": '10',
+ "rate": "ndr",
+ "user_label": "toto_titi_tata" # User label not in test data
+ }
+ self._context.tag = "throughput"
+
+ with self.assertRaises(AssertionError):
+ get_last_result(self._context, reference=True)
+
+ self._mock_requests.get.assert_has_calls([
+ call("http://127.0.0.1:8000/api/v1/results?"
+ "project=nfvbench&case=characterization&criteria=PASS&page=1"),
+ call("http://127.0.0.1:8000/api/v1/results?"
+ "project=nfvbench&case=characterization&criteria=PASS&page=2")])
+
+ def test_get_last_result_throughput_non_regression(self):
+ self._context.CASE_NAME = "non-regression"
+ self._context.json = {
+ "frame_sizes": ['1518'],
+ "flow_count": "100k",
+ "duration_sec": '10',
+ "rate": "ndr",
+ "user_label": "amical_tc12_basic"
+ }
+ self._context.tag = "throughput"
+
+ last_result = get_last_result(self._context)
+
+ self.assertIsNotNone(last_result)
+ self.assertEqual(512701, last_result["synthesis"]["total_tx_rate"])
+ self.assertEqual(148, round(last_result["synthesis"]["avg_delay_usec"]))
+
+ self._mock_requests.get.assert_called_once_with(
+ "http://127.0.0.1:8000/api/v1/results?"
+ "project=nfvbench&case=non-regression&criteria=PASS&page=1")
+
+ def test_get_last_result_latency_non_regression(self):
+ self._context.CASE_NAME = "non-regression"
+ self._context.json = {
+ "frame_sizes": ['1518'],
+ "flow_count": "100k",
+ "duration_sec": '10',
+ "rate": "70%",
+ "user_label": "amical_tc12_basic"
+ }
+ self._context.tag = "latency"
+
+ last_result = get_last_result(self._context)
+
+ self.assertIsNotNone(last_result)
+ self.assertEqual(352040, last_result["synthesis"]["total_tx_rate"])
+ self.assertEqual(114, round(last_result["synthesis"]["avg_delay_usec"]))
+
+ self._mock_requests.get.assert_called_once_with(
+ "http://127.0.0.1:8000/api/v1/results?"
+ "project=nfvbench&case=non-regression&criteria=PASS&page=1")
diff --git a/test/ut_behave_tests/test_testapi.py b/test/ut_behave_tests/test_testapi.py
index 2b57483..0fbcd96 100644
--- a/test/ut_behave_tests/test_testapi.py
+++ b/test/ut_behave_tests/test_testapi.py
@@ -109,3 +109,24 @@ class TestTestapiClient(unittest.TestCase):
with self.assertRaises(ValueError):
client.find_last_result(testapi_params, scenario_tag="throughput",
nfvbench_test_input=nfvbench_test_input)
+
+ def test_flavor_is_ignored(self):
+ """Check that lookup in TestAPI does not filter on the flavor_type."""
+ client = TestapiClient("http://127.0.0.1:8000/api/v1/results")
+ testapi_params = {"project_name": "nfvbench", "case_name": "characterization"}
+ nfvbench_test_input = {"frame_sizes": ['64'],
+ "flow_count": "100k",
+ "duration_sec": '10',
+ "rate": "ndr",
+ "user_label": "amical_tc18_loopback",
+ "flavor_type": "no_such_flavor"}
+ last_result = client.find_last_result(testapi_params,
+ scenario_tag="throughput",
+ nfvbench_test_input=nfvbench_test_input)
+ self.assertIsNotNone(last_result)
+ self.assertEqual(16765582, last_result["synthesis"]["total_tx_rate"])
+ self.assertEqual(25, round(last_result["synthesis"]["avg_delay_usec"]))
+
+ self.mock_requests.get.assert_called_once_with(
+ "http://127.0.0.1:8000/api/v1/results?"
+ "project=nfvbench&case=characterization&criteria=PASS&page=1")