From 87d88eab6fe50101abc607857f13af9273aef80a Mon Sep 17 00:00:00 2001 From: Gwenael Lambrouin Date: Fri, 3 Jun 2022 17:54:16 +0200 Subject: 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 --- behave_tests/features/steps/steps.py | 106 +- behave_tests/features/steps/testapi.py | 8 +- ...h&case=non-regression&criteria=PASS&page=1.json | 8124 ++++++++++++++++++++ test/ut_behave_tests/test_steps.py | 151 + test/ut_behave_tests/test_testapi.py | 21 + 5 files changed, 8353 insertions(+), 57 deletions(-) create mode 100644 test/ut_behave_tests/test_data/project=nfvbench&case=non-regression&criteria=PASS&page=1.json create mode 100644 test/ut_behave_tests/test_steps.py 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") -- cgit 1.2.3-korg