From 47962ee624efeaec469473a5569b59bfd230babf Mon Sep 17 00:00:00 2001 From: Tibor Frank Date: Thu, 24 Mar 2022 08:43:32 +0100 Subject: [PATCH] UTI: PoC - Read data from parquets Change-Id: Ie53954b2b8695ed9e5415ea604a8f3b229552489 Signed-off-by: Tibor Frank --- resources/tools/dash/app/app.ini | 1 + resources/tools/dash/app/pal/__init__.py | 5 +- resources/tools/dash/app/pal/data/data.py | 202 ++ resources/tools/dash/app/pal/data/data.yaml | 182 ++ resources/tools/dash/app/pal/trending/data.py | 29 - resources/tools/dash/app/pal/trending/graphs.py | 126 ++ resources/tools/dash/app/pal/trending/layout.py | 143 +- .../dash/app/pal/trending/spec_test_selection.yaml | 1937 +++++++++++++++++++- resources/tools/dash/app/pal/trending/trending.py | 3 +- 9 files changed, 2432 insertions(+), 196 deletions(-) create mode 100644 resources/tools/dash/app/pal/data/data.py create mode 100644 resources/tools/dash/app/pal/data/data.yaml delete mode 100644 resources/tools/dash/app/pal/trending/data.py create mode 100644 resources/tools/dash/app/pal/trending/graphs.py diff --git a/resources/tools/dash/app/app.ini b/resources/tools/dash/app/app.ini index bff7c12c89..796f33235b 100644 --- a/resources/tools/dash/app/app.ini +++ b/resources/tools/dash/app/app.ini @@ -1,5 +1,6 @@ [uwsgi] ini = :pal +py-autoreload = 0 [pal] module = wsgi:app diff --git a/resources/tools/dash/app/pal/__init__.py b/resources/tools/dash/app/pal/__init__.py index 863fd081e7..17264c8ac2 100644 --- a/resources/tools/dash/app/pal/__init__.py +++ b/resources/tools/dash/app/pal/__init__.py @@ -50,8 +50,9 @@ def init_app(): from .trending.trending import init_trending app = init_trending(app) - from .report.report import init_report - app = init_report(app) + # Temporarily switched off + # from .report.report import init_report + # app = init_report(app) return app diff --git a/resources/tools/dash/app/pal/data/data.py b/resources/tools/dash/app/pal/data/data.py new file mode 100644 index 0000000000..9ce09e7f8b --- /dev/null +++ b/resources/tools/dash/app/pal/data/data.py @@ -0,0 +1,202 @@ +# Copyright (c) 2022 Cisco and/or its affiliates. +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at: +# +# 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. + +"""Prepare data for Plotly Dash.""" + +import logging +from time import time + +import awswrangler as wr + +from yaml import load, FullLoader, YAMLError +from awswrangler.exceptions import EmptyDataFrame, NoFilesFound + + +class Data: + """ + """ + + def __init__(self, data_spec_file, debug=False): + """ + """ + + # Inputs: + self._data_spec_file = data_spec_file + self._debug = debug + + # Specification of data to be read from parquets: + self._data_spec = None + + # Data frame to keep the data: + self._data = None + + # Read from files: + try: + with open(self._data_spec_file, "r") as file_read: + self._data_spec = load(file_read, Loader=FullLoader) + except IOError as err: + raise RuntimeError( + f"Not possible to open the file {self._data_spec_file,}\n{err}" + ) + except YAMLError as err: + raise RuntimeError( + f"An error occurred while parsing the specification file " + f"{self._data_spec_file,}\n" + f"{err}" + ) + + @property + def data(self): + return self._data + + def _get_columns(self, parquet): + try: + return self._data_spec[parquet]["columns"] + except KeyError as err: + raise RuntimeError( + f"The parquet {parquet} is not defined in the specification " + f"file {self._data_spec_file} or it does not have any columns " + f"specified.\n{err}" + ) + + def _get_path(self, parquet): + try: + return self._data_spec[parquet]["path"] + except KeyError as err: + raise RuntimeError( + f"The parquet {parquet} is not defined in the specification " + f"file {self._data_spec_file} or it does not have the path " + f"specified.\n{err}" + ) + + def _create_dataframe_from_parquet(self, + path, partition_filter=None, columns=None, + validate_schema=False, last_modified_begin=None, + last_modified_end=None): + """Read parquet stored in S3 compatible storage and returns Pandas + Dataframe. + + :param path: S3 prefix (accepts Unix shell-style wildcards) + (e.g. s3://bucket/prefix) or list of S3 objects paths + (e.g. [s3://bucket/key0, s3://bucket/key1]). + :param partition_filter: Callback Function filters to apply on PARTITION + columns (PUSH-DOWN filter). This function MUST receive a single + argument (Dict[str, str]) where keys are partitions names and values + are partitions values. Partitions values will be always strings + extracted from S3. This function MUST return a bool, True to read + the partition or False to ignore it. Ignored if dataset=False. + :param columns: Names of columns to read from the file(s). + :param validate_schema: Check that individual file schemas are all the + same / compatible. Schemas within a folder prefix should all be the + same. Disable if you have schemas that are different and want to + disable this check. + :param last_modified_begin: Filter the s3 files by the Last modified + date of the object. The filter is applied only after list all s3 + files. + :param last_modified_end: Filter the s3 files by the Last modified date + of the object. The filter is applied only after list all s3 files. + :type path: Union[str, List[str]] + :type partition_filter: Callable[[Dict[str, str]], bool], optional + :type columns: List[str], optional + :type validate_schema: bool, optional + :type last_modified_begin: datetime, optional + :type last_modified_end: datetime, optional + :returns: Pandas DataFrame or None if DataFrame cannot be fetched. + :rtype: DataFrame + """ + df = None + start = time() + try: + df = wr.s3.read_parquet( + path=path, + path_suffix="parquet", + ignore_empty=True, + validate_schema=validate_schema, + use_threads=True, + dataset=True, + columns=columns, + partition_filter=partition_filter, + last_modified_begin=last_modified_begin, + last_modified_end=last_modified_end + ) + if self._debug: + df.info(verbose=True, memory_usage='deep') + logging.info( + u"\n" + f"Creation of dataframe {path} took: {time() - start}" + u"\n" + f"{df}" + u"\n" + ) + except NoFilesFound as err: + logging.error(f"No parquets found.\n{err}") + except EmptyDataFrame as err: + logging.error(f"No data.\n{err}") + + self._data = df + return df + + def read_stats(self): + """Read Suite Result Analysis data partition from parquet. + """ + lambda_f = lambda part: True if part["stats_type"] == "sra" else False + + return self._create_dataframe_from_parquet( + path=self._get_path("statistics"), + partition_filter=lambda_f, + columns=None # Get all columns. + ) + + def read_trending_mrr(self): + """Read MRR data partition from parquet. + """ + lambda_f = lambda part: True if part["test_type"] == "mrr" else False + + return self._create_dataframe_from_parquet( + path=self._get_path("trending-mrr"), + partition_filter=lambda_f, + columns=self._get_columns("trending-mrr") + ) + + def read_trending_ndrpdr(self): + """Read NDRPDR data partition from iterative parquet. + """ + lambda_f = lambda part: True if part["test_type"] == "ndrpdr" else False + + return self._create_dataframe_from_parquet( + path=self._get_path("trending-ndrpdr"), + partition_filter=lambda_f, + columns=self._get_columns("trending-ndrpdr") + ) + + def read_iterative_mrr(self): + """Read MRR data partition from iterative parquet. + """ + lambda_f = lambda part: True if part["test_type"] == "mrr" else False + + return self._create_dataframe_from_parquet( + path=self._get_path("iterative-mrr"), + partition_filter=lambda_f, + columns=self._get_columns("iterative-mrr") + ) + + def read_iterative_ndrpdr(self): + """Read NDRPDR data partition from parquet. + """ + lambda_f = lambda part: True if part["test_type"] == "ndrpdr" else False + + return self._create_dataframe_from_parquet( + path=self._get_path("iterative-ndrpdr"), + partition_filter=lambda_f, + columns=self._get_columns("iterative-ndrpdr") + ) diff --git a/resources/tools/dash/app/pal/data/data.yaml b/resources/tools/dash/app/pal/data/data.yaml new file mode 100644 index 0000000000..45e7f6b7ed --- /dev/null +++ b/resources/tools/dash/app/pal/data/data.yaml @@ -0,0 +1,182 @@ +statistics: + path: s3://fdio-docs-s3-cloudfront-index/csit/parquet/stats +trending-mrr: + path: s3://fdio-docs-s3-cloudfront-index/csit/parquet/trending + columns: + - job + - build + - dut_type + - dut_version + - hosts + - start_time + - passed + - test_id + - test_name_long + - test_name_short + - version + - result_receive_rate_rate_avg + - result_receive_rate_rate_stdev + - result_receive_rate_rate_unit + - result_receive_rate_rate_values +trending-ndrpdr: + path: s3://fdio-docs-s3-cloudfront-index/csit/parquet/trending + columns: + - job + - build + - dut_type + - dut_version + - hosts + - start_time + - passed + - test_id + - test_name_long + - test_name_short + - version + - result_pdr_upper_rate_unit + - result_pdr_upper_rate_value + - result_pdr_upper_bandwidth_unit + - result_pdr_upper_bandwidth_value + - result_pdr_lower_rate_unit + - result_pdr_lower_rate_value + - result_pdr_lower_bandwidth_unit + - result_pdr_lower_bandwidth_value + - result_ndr_upper_rate_unit + - result_ndr_upper_rate_value + - result_ndr_upper_bandwidth_unit + - result_ndr_upper_bandwidth_value + - result_ndr_lower_rate_unit + - result_ndr_lower_rate_value + - result_ndr_lower_bandwidth_unit + - result_ndr_lower_bandwidth_value + - result_latency_reverse_pdr_90_avg + - result_latency_reverse_pdr_90_hdrh + - result_latency_reverse_pdr_90_max + - result_latency_reverse_pdr_90_min + - result_latency_reverse_pdr_90_unit + - result_latency_reverse_pdr_50_avg + - result_latency_reverse_pdr_50_hdrh + - result_latency_reverse_pdr_50_max + - result_latency_reverse_pdr_50_min + - result_latency_reverse_pdr_50_unit + - result_latency_reverse_pdr_10_avg + - result_latency_reverse_pdr_10_hdrh + - result_latency_reverse_pdr_10_max + - result_latency_reverse_pdr_10_min + - result_latency_reverse_pdr_10_unit + - result_latency_reverse_pdr_0_avg + - result_latency_reverse_pdr_0_hdrh + - result_latency_reverse_pdr_0_max + - result_latency_reverse_pdr_0_min + - result_latency_reverse_pdr_0_unit + - result_latency_forward_pdr_90_avg + - result_latency_forward_pdr_90_hdrh + - result_latency_forward_pdr_90_max + - result_latency_forward_pdr_90_min + - result_latency_forward_pdr_90_unit + - result_latency_forward_pdr_50_avg + - result_latency_forward_pdr_50_hdrh + - result_latency_forward_pdr_50_max + - result_latency_forward_pdr_50_min + - result_latency_forward_pdr_50_unit + - result_latency_forward_pdr_10_avg + - result_latency_forward_pdr_10_hdrh + - result_latency_forward_pdr_10_max + - result_latency_forward_pdr_10_min + - result_latency_forward_pdr_10_unit + - result_latency_forward_pdr_0_avg + - result_latency_forward_pdr_0_hdrh + - result_latency_forward_pdr_0_max + - result_latency_forward_pdr_0_min + - result_latency_forward_pdr_0_unit +iterative-mrr: + path: s3://fdio-docs-s3-cloudfront-index/csit/parquet/iterative_rls2202 + columns: + - job + - build + - dut_type + - dut_version + - hosts + - start_time + - passed + - test_id + - test_name_long + - test_name_short + - version + - result_receive_rate_rate_avg + - result_receive_rate_rate_stdev + - result_receive_rate_rate_unit + - result_receive_rate_rate_values +iterative-ndrpdr: + path: s3://fdio-docs-s3-cloudfront-index/csit/parquet/iterative_rls2202 + columns: + - job + - build + - dut_type + - dut_version + - hosts + - start_time + - passed + - test_id + - test_name_long + - test_name_short + - version + - result_pdr_upper_rate_unit + - result_pdr_upper_rate_value + - result_pdr_upper_bandwidth_unit + - result_pdr_upper_bandwidth_value + - result_pdr_lower_rate_unit + - result_pdr_lower_rate_value + - result_pdr_lower_bandwidth_unit + - result_pdr_lower_bandwidth_value + - result_ndr_upper_rate_unit + - result_ndr_upper_rate_value + - result_ndr_upper_bandwidth_unit + - result_ndr_upper_bandwidth_value + - result_ndr_lower_rate_unit + - result_ndr_lower_rate_value + - result_ndr_lower_bandwidth_unit + - result_ndr_lower_bandwidth_value + - result_latency_reverse_pdr_90_avg + - result_latency_reverse_pdr_90_hdrh + - result_latency_reverse_pdr_90_max + - result_latency_reverse_pdr_90_min + - result_latency_reverse_pdr_90_unit + - result_latency_reverse_pdr_50_avg + - result_latency_reverse_pdr_50_hdrh + - result_latency_reverse_pdr_50_max + - result_latency_reverse_pdr_50_min + - result_latency_reverse_pdr_50_unit + - result_latency_reverse_pdr_10_avg + - result_latency_reverse_pdr_10_hdrh + - result_latency_reverse_pdr_10_max + - result_latency_reverse_pdr_10_min + - result_latency_reverse_pdr_10_unit + - result_latency_reverse_pdr_0_avg + - result_latency_reverse_pdr_0_hdrh + - result_latency_reverse_pdr_0_max + - result_latency_reverse_pdr_0_min + - result_latency_reverse_pdr_0_unit + - result_latency_forward_pdr_90_avg + - result_latency_forward_pdr_90_hdrh + - result_latency_forward_pdr_90_max + - result_latency_forward_pdr_90_min + - result_latency_forward_pdr_90_unit + - result_latency_forward_pdr_50_avg + - result_latency_forward_pdr_50_hdrh + - result_latency_forward_pdr_50_max + - result_latency_forward_pdr_50_min + - result_latency_forward_pdr_50_unit + - result_latency_forward_pdr_10_avg + - result_latency_forward_pdr_10_hdrh + - result_latency_forward_pdr_10_max + - result_latency_forward_pdr_10_min + - result_latency_forward_pdr_10_unit + - result_latency_forward_pdr_0_avg + - result_latency_forward_pdr_0_hdrh + - result_latency_forward_pdr_0_max + - result_latency_forward_pdr_0_min + - result_latency_forward_pdr_0_unit +# coverage-ndrpdr: +# path: str +# columns: +# - list \ No newline at end of file diff --git a/resources/tools/dash/app/pal/trending/data.py b/resources/tools/dash/app/pal/trending/data.py deleted file mode 100644 index a4f183be96..0000000000 --- a/resources/tools/dash/app/pal/trending/data.py +++ /dev/null @@ -1,29 +0,0 @@ -# Copyright (c) 2022 Cisco and/or its affiliates. -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at: -# -# 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. - -"""Prepare data for Plotly Dash. -""" - -import pandas as pd - - -def read_data(): - """Create Pandas DataFrame from local CSV. - - Only for DEMO - """ - - return pd.read_csv( - u"https://s3-docs.fd.io/csit/master/trending/_static/vpp/" - u"csit-vpp-perf-mrr-weekly-master-2n-aws-trending.csv" - ) diff --git a/resources/tools/dash/app/pal/trending/graphs.py b/resources/tools/dash/app/pal/trending/graphs.py new file mode 100644 index 0000000000..a20ce8efd4 --- /dev/null +++ b/resources/tools/dash/app/pal/trending/graphs.py @@ -0,0 +1,126 @@ +# Copyright (c) 2022 Cisco and/or its affiliates. +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at: +# +# 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. + +""" +""" + + +import plotly.graph_objects as go +import pandas as pd +import re + +from datetime import datetime + +from dash import no_update + + +def trending_tput(data: pd.DataFrame, sel:dict, layout: dict, start: datetime, + end: datetime): + """ + """ + + if not sel: + return no_update, no_update + + def _generate_trace(ttype: str, name: str, df: pd.DataFrame, + start: datetime, end: datetime): + + value = { + "mrr": "result_receive_rate_rate_avg", + "ndr": "result_ndr_lower_rate_value", + "pdr": "result_pdr_lower_rate_value" + } + unit = { + "mrr": "result_receive_rate_rate_unit", + "ndr": "result_ndr_lower_rate_unit", + "pdr": "result_pdr_lower_rate_unit" + } + + x_axis = [ + d for d in df["start_time"] if d >= start and d <= end + ] + hover_txt = list() + for _, row in df.iterrows(): + hover_itm = ( + f"date: " + f"{row['start_time'].strftime('%d-%m-%Y %H:%M:%S')}
" + f"average [{row[unit[ttype]]}]: " + f"{row[value[ttype]]}
" + f"{row['dut_type']}-ref: {row['dut_version']}
" + f"csit-ref: {row['job']}/{row['build']}" + ) + if ttype == "mrr": + stdev = ( + f"stdev [{row['result_receive_rate_rate_unit']}]: " + f"{row['result_receive_rate_rate_stdev']}
" + ) + else: + stdev = "" + hover_itm = hover_itm.replace("", stdev) + hover_txt.append(hover_itm) + + return go.Scatter( + x=x_axis, + y=df[value[ttype]], + name=name, + mode="markers+lines", + text=hover_txt, + hoverinfo=u"text+name" + ) + + # Generate graph: + fig = go.Figure() + for itm in sel: + phy = itm["phy"].split("-") + if len(phy) == 4: + topo, arch, nic, drv = phy + if drv in ("dpdk", "ixgbe"): + drv = "" + else: + drv += "-" + else: + continue + cadence = \ + "weekly" if (arch == "aws" or itm["testtype"] != "mrr") else "daily" + sel_topo_arch = ( + f"csit-vpp-perf-" + f"{itm['testtype'] if itm['testtype'] == 'mrr' else 'ndrpdr'}-" + f"{cadence}-master-{topo}-{arch}" + ) + df_sel = data.loc[(data["job"] == sel_topo_arch)] + regex = ( + f"^.*{nic}.*\.{itm['framesize']}-{itm['core']}-{drv}{itm['test']}-" + f"{'mrr' if itm['testtype'] == 'mrr' else 'ndrpdr'}$" + ) + df = df_sel.loc[ + df_sel["test_id"].apply( + lambda x: True if re.search(regex, x) else False + ) + ].sort_values(by="start_time", ignore_index=True) + name = ( + f"{itm['phy']}-{itm['framesize']}-{itm['core']}-" + f"{itm['test']}-{itm['testtype']}" + ) + fig.add_trace(_generate_trace(itm['testtype'], name, df, start, end)) + + style={ + "vertical-align": "top", + "display": "inline-block", + "width": "80%", + "padding": "5px" + } + + layout = layout.get("plot-trending", dict()) + fig.update_layout(layout) + + return fig, style diff --git a/resources/tools/dash/app/pal/trending/layout.py b/resources/tools/dash/app/pal/trending/layout.py index 9153081cc3..081f977852 100644 --- a/resources/tools/dash/app/pal/trending/layout.py +++ b/resources/tools/dash/app/pal/trending/layout.py @@ -15,7 +15,7 @@ """ -import plotly.graph_objects as go +import pandas as pd from dash import dcc from dash import html @@ -25,16 +25,16 @@ from dash.exceptions import PreventUpdate from yaml import load, FullLoader, YAMLError from datetime import datetime, timedelta -from pprint import pformat - -from .data import read_data +from ..data.data import Data +from .graphs import trending_tput class Layout: """ """ - def __init__(self, app, html_layout_file, spec_file, graph_layout_file): + def __init__(self, app, html_layout_file, spec_file, graph_layout_file, + data_spec_file): """ """ @@ -43,9 +43,20 @@ class Layout: self._html_layout_file = html_layout_file self._spec_file = spec_file self._graph_layout_file = graph_layout_file + self._data_spec_file = data_spec_file # Read the data: - self._data = read_data() + data_mrr = Data( + data_spec_file=self._data_spec_file, + debug=True + ).read_trending_mrr() + + data_ndrpdr = Data( + data_spec_file=self._data_spec_file, + debug=True + ).read_trending_ndrpdr() + + self._data = pd.concat([data_mrr, data_ndrpdr], ignore_index=True) # Read from files: self._html_layout = "" @@ -105,6 +116,10 @@ class Layout: def data(self): return self._data + @property + def layout(self): + return self._graph_layout + def add_content(self): """ """ @@ -195,9 +210,6 @@ class Layout: ) ] ), - # Debug output, TODO: Remove - html.H5("Debug output"), - html.Pre(id="div-ctrl-info") ] ) @@ -289,11 +301,12 @@ class Layout: html.Br(), dcc.DatePickerRange( id="dpr-period", - min_date_allowed=datetime(2021, 1, 1), + min_date_allowed=datetime.utcnow() - timedelta(days=180), max_date_allowed=datetime.utcnow(), initial_visible_month=datetime.utcnow(), start_date=datetime.utcnow() - timedelta(days=180), - end_date=datetime.utcnow() + end_date=datetime.utcnow(), + display_format="D MMMM YY" ) ] ) @@ -446,7 +459,6 @@ class Layout: @app.callback( Output("graph", "figure"), - Output("div-ctrl-info", "children"), # Debug output TODO: Remove Output("selected-tests", "data"), # Store Output("cl-selected", "options"), # User selection Output("dd-ctrl-phy", "value"), @@ -525,12 +537,14 @@ class Layout: "core": core.lower(), "testtype": ttype.lower() }) - return (no_update, no_update, store_sel, _list_tests(), None, + return (no_update, store_sel, _list_tests(), None, None, None, no_update) elif trigger_id in ("btn-sel-display", "dpr-period"): - fig, style = _update_graph(store_sel, d_start, d_end) - return (fig, pformat(store_sel), no_update, no_update, + fig, style = trending_tput( + self.data, store_sel, self.layout, d_start, d_end + ) + return (fig, no_update, no_update, no_update, no_update, no_update, style) elif trigger_id == "btn-sel-remove": @@ -540,91 +554,18 @@ class Layout: if item["id"] not in list_sel: new_store_sel.append(item) store_sel = new_store_sel - fig, style = _update_graph(store_sel, d_start, d_end) - return (fig, pformat(store_sel), store_sel, _list_tests(), - no_update, no_update, no_update, style) - - def _update_graph(sel, start, end): - """ - """ - - if not sel: - return no_update, no_update - - def _is_selected(label, sel): - for itm in sel: - phy = itm["phy"].split("-") - if len(phy) == 4: - topo, arch, nic, drv = phy - else: - continue - if nic not in label: - continue - if drv != "dpdk" and drv not in label: - continue - if itm["test"] not in label: - continue - if itm["framesize"] not in label: - continue - if itm["core"] not in label: - continue - if itm["testtype"] not in label: - continue - return ( - f"{itm['phy']}-{itm['framesize']}-{itm['core']}-" - f"{itm['test']}-{itm['testtype']}" + if store_sel: + fig, style = trending_tput( + self.data, store_sel, self.layout, d_start, d_end ) + return (fig, store_sel, _list_tests(), + no_update, no_update, no_update, style) else: - return None - - style={ - "vertical-align": "top", - "display": "inline-block", - "width": "80%", - "padding": "5px" - } - - fig = go.Figure() - dates = self.data.iloc[[0], 1:].values.flatten().tolist()[::-1] - x_data = [ - datetime( - int(date[0:4]), int(date[4:6]), int(date[6:8]), - int(date[9:11]), int(date[12:]) - ) for date in dates - ] - x_data_range = [ - date for date in x_data if date >= start and date <= end - ] - vpp = self.data.iloc[[1], 1:].values.flatten().tolist()[::-1] - csit = list(self.data.columns[1:])[::-1] - labels = list(self.data["Build Number:"][3:]) - for i in range(3, len(self.data)): - name = _is_selected(labels[i-3], sel) - if not name: - continue - y_data = [ - float(v) / 1e6 for v in \ - self.data.iloc[[i], 1:].values.flatten().tolist()[::-1] - ] - hover_txt = list() - for x_idx, x_itm in enumerate(x_data): - hover_txt.append( - f"date: {x_itm}
" - f"average [Mpps]: {y_data[x_idx]}
" - f"vpp-ref: {vpp[x_idx]}
" - f"csit-ref: {csit[x_idx]}" - ) - fig.add_trace( - go.Scatter( - x=x_data_range, - y= y_data, - name=name, - mode="markers+lines", - text=hover_txt, - hoverinfo=u"text+name" - ) - ) - layout = self._graph_layout.get("plot-trending", dict()) - fig.update_layout(layout) - - return fig, style + style={ + "vertical-align": "top", + "display": "none", + "width": "80%", + "padding": "5px" + } + return (no_update, store_sel, _list_tests(), + no_update, no_update, no_update, style) diff --git a/resources/tools/dash/app/pal/trending/spec_test_selection.yaml b/resources/tools/dash/app/pal/trending/spec_test_selection.yaml index fe99801afe..4d177c0737 100644 --- a/resources/tools/dash/app/pal/trending/spec_test_selection.yaml +++ b/resources/tools/dash/app/pal/trending/spec_test_selection.yaml @@ -5,73 +5,1452 @@ - ethip4-ip4base core: [1C, 2C] frame-size: [64B, 1518B] + test-type: [MRR, ] + ip4-scale: + label: IPv4 Routing Scale + test: + - ethip4-ip4scale20k + - ethip4-ip4scale20k-rnd + core: [1C, 2C] + frame-size: [64B, 1518B] + test-type: [MRR, ] + ip6-base: + label: IPv6 Routing Base + test: + - ethip6-ip4base + core: [1C, 2C] + frame-size: [78B, 1518B] + test-type: [MRR, ] + ip6-scale: + label: IPv6 Routing Scale + test: + - ethip6-ip4scale20k + - ethip6-ip4scale20k-rnd + core: [1C, 2C] + frame-size: [78B, 1518B] + test-type: [MRR, ] +2n-clx-100ge2p1cx556a-rdma: + memif-base: + label: LXC/DRC Container Memif + test: + - eth-l2bdbasemaclrn-eth-2memif-1dcr + - eth-l2xcbase-eth-2memif-1dcr + - ethip4-ip4base-eth-2memif-1dcr + core: [1C, 2C, 4C] + frame-size: [64B, ] + test-type: [MRR, NDR, PDR] + ip4-base: + label: IPv4 Routing Base + test: + - ethip4-ip4base + core: [1C, 2C, 4C] + frame-size: [64B, ] + test-type: [MRR, NDR, PDR] + ip4-scale: + label: IPv4 Routing Scale + test: + - ethip4-ip4scale20k + - ethip4-ip4scale20k-rnd + core: [1C, 2C, 4C] + frame-size: [64B, ] + test-type: [MRR, NDR, PDR] + ip4-features: + label: IPv4 Routing Features + test: + - ethip4udp-ip4base-iacl50sf-10kflows + - ethip4udp-ip4base-iacl50sl-10kflows + - ethip4udp-ip4base-oacl50sf-10kflows + - ethip4udp-ip4base-oacl50sl-10kflows + core: [1C, 2C, 4C] + frame-size: [64B, ] + test-type: [MRR, NDR, PDR] + ip6-base: + label: IPv6 Routing Base + test: + - ethip6-ip6base + core: [1C, 2C, 4C] + frame-size: [78B, ] + test-type: [MRR, NDR, PDR] + ip6-scale: + label: IPv6 Routing Scale + test: + - ethip6-ip6scale20k + - ethip6-ip6scale20k-rnd + core: [1C, 2C, 4C] + frame-size: [78B, ] + test-type: [MRR, NDR, PDR] + vhost-base: + label: VMs vhost-user + test: + - eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm + - eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc + core: [1C, 2C, 4C] + frame-size: [64B, ] + test-type: [MRR, NDR, PDR] +2n-clx-10ge2p1x710-avf: + l2-base: + label: L2 Ethernet Switching Base + test: + - eth-l2bdbasemaclrn + core: [1C, 2C, 4C] + frame-size: [64B, ] + test-type: [MRR, NDR, PDR] + l2-scale: + label: L2 Ethernet Switching Scale + test: + - eth-l2bdscale1mmaclrn + core: [1C, 2C, 4C] + frame-size: [64B, ] + test-type: [MRR, NDR, PDR] + ip4-base: + label: IPv4 Routing Base + test: + - ethip4-ip4base + core: [1C, 2C, 4C] + frame-size: [64B, ] + test-type: [MRR, NDR, PDR] + ip6-base: + label: IPv6 Routing Base + test: + - ethip6-ip6base + core: [1C, 2C, 4C] + frame-size: [78B, ] + test-type: [MRR, NDR, PDR] +2n-clx-10ge2p1x710-dpdk: + l2-base: + label: L2 Ethernet Switching Base + test: + - eth-l2bdbasemaclrn + core: [1C, 2C, 4C] + frame-size: [64B, ] + test-type: [MRR, NDR, PDR] + ip4-base: + label: IPv4 Routing Base + test: + - ethip4-ip4base + core: [1C, 2C, 4C] + frame-size: [64B, ] + test-type: [MRR, NDR, PDR] + ip6-base: + label: IPv6 Routing Base + test: + - ethip6-ip6base + core: [1C, 2C, 4C] + frame-size: [78B, ] + test-type: [MRR, NDR, PDR] +2n-clx-25ge2p1xxv710-af_xdp: + ip4-base: + label: IPv4 Routing Base + test: + - ethip4-ip4base + core: [1C, 2C, 4C] + frame-size: [64B, ] + test-type: [MRR, NDR, PDR] + ip4-scale: + label: IPv4 Routing Scale + test: + - ethip4-ip4scale20k + - ethip4-ip4scale20k-rnd + core: [1C, 2C, 4C] + frame-size: [64B, ] + test-type: [MRR, NDR, PDR] + ip6-base: + label: IPv6 Routing Base + test: + - ethip6-ip6base + core: [1C, 2C, 4C] + frame-size: [78B, ] + test-type: [MRR, NDR, PDR] + ip6-scale: + label: IPv6 Routing Scale + test: + - ethip6-ip6scale20k + - ethip6-ip6scale20k-rnd + core: [1C, 2C, 4C] + frame-size: [78B, ] + test-type: [MRR, NDR, PDR] +2n-clx-25ge2p1xxv710-avf: + l2-base: + label: L2 Ethernet Switching Base + test: + - dot1q-l2bdbasemaclrn + - eth-l2xcbase + - eth-l2patch + - eth-l2bdbasemaclrn + core: [1C, 2C, 4C] + frame-size: [64B, ] + test-type: [MRR, NDR, PDR] + l2-scale: + label: L2 Ethernet Switching Scale + test: + - eth-l2bdscale10kmaclrn + - eth-l2bdscale100kmaclrn + - eth-l2bdscale1mmaclrn + core: [1C, 2C, 4C] + frame-size: [64B, ] + test-type: [MRR, NDR, PDR] + ip4-base: + label: IPv4 Routing Base + test: + - ethip4-ip4base + core: [1C, 2C, 4C] + frame-size: [64B, ] + test-type: [MRR, NDR, PDR] + ip4-scale: + label: IPv4 Routing Scale + test: + - ethip4-ip4scale20k + - ethip4-ip4scale200k + - ethip4-ip4scale2m + - ethip4-ip4scale20k-rnd + - ethip4-ip4scale200k-rnd + - ethip4-ip4scale2m-rnd + core: [1C, 2C, 4C] + frame-size: [64B, ] + test-type: [MRR, NDR, PDR] + ip4-features: + label: IPv4 Routing Features + test: + - ethip4udp-ip4base-iacl50sf-10kflows + - ethip4udp-ip4base-iacl50sl-10kflows + - ethip4udp-ip4base-oacl50sf-10kflows + - ethip4udp-ip4base-oacl50sl-10kflows + core: [1C, 2C, 4C] + frame-size: [64B, ] + test-type: [MRR, NDR, PDR] + ip6-base: + label: IPv6 Routing Base + test: + - ethip6-ip6base + core: [1C, 2C, 4C] + frame-size: [78B, ] + test-type: [MRR, NDR, PDR] + ip6-scale: + label: IPv6 Routing Scale + test: + - ethip6-ip6scale20k + - ethip6-ip6scale20k-rnd + - ethip6-ip6scale200k + - ethip6-ip6scale200k-rnd + - ethip6-ip6scale2m + - ethip6-ip6scale2m-rnd + core: [1C, 2C, 4C] + frame-size: [78B, ] + test-type: [MRR, NDR, PDR] + ethip4-ethip4udpgeneve: + label: IPv4 Tunnels + test: + - ethip4--ethip4udpgeneve-1tun-ip4base + - ethip4--ethip4udpgeneve-4tun-ip4base + - ethip4--ethip4udpgeneve-16tun-ip4base + - ethip4--ethip4udpgeneve-64tun-ip4base + - ethip4--ethip4udpgeneve-256tun-ip4base + core: [1C, 2C, 4C] + frame-size: [64B, ] + test-type: [MRR, NDR, PDR] + memif-base: + label: LXC/DRC Container Memif + test: + - eth-l2bdbasemaclrn-eth-2memif-1dcr + - eth-l2xcbase-eth-2memif-1dcr + - ethip4-ip4base-eth-2memif-1dcr + core: [1C, 2C, 4C] + frame-size: [64B, ] + test-type: [MRR, NDR, PDR] + nat44det-ip4-stl-bidir: + label: NAT44 Deterministic BiDir + test: + - ethip4udp-nat44det-h1024-p63-s64512 + - ethip4udp-nat44det-h16384-p63-s1032192 + - ethip4udp-nat44det-h65536-p63-s4128758 + core: [1C, 2C, 4C] + frame-size: [64B, ] + test-type: [MRR, NDR, PDR] + nat44ed-ip4-stl-unidir: + label: NAT44 ED UniDir + test: + - ethip4udp-nat44ed-h1024-p63-s64512-udir + core: [1C, 2C, 4C] + frame-size: [64B, ] + test-type: [MRR, NDR, PDR] + nat44ed-ip4-udp-stf-cps: + label: NAT44 ED UDP CPS + test: + - ethip4udp-ip4base-h1024-p63-s64512-cps + - ethip4udp-ip4base-h16384-p63-s1032192-cps + - ethip4udp-ip4base-h65536-p63-s4128768-cps + - ethip4udp-nat44ed-h1024-p63-s64512-cps + - ethip4udp-nat44ed-h16384-p63-s1032192-cps + - ethip4udp-nat44ed-h65536-p63-s4128768-cps + core: [1C, 2C, 4C] + frame-size: [64B, ] + test-type: [MRR, NDR, PDR] + nat44ed-ip4-tcp-stf-cps: + label: NAT44 ED TCP CPS + test: + - ethip4tcp-ip4base-h1024-p63-s64512-cps + - ethip4tcp-ip4base-h16384-p63-s1032192-cps + - ethip4tcp-ip4base-h65536-p63-s4128768-cps + - ethip4tcp-nat44ed-h1024-p63-s64512-cps + - ethip4tcp-nat44ed-h16384-p63-s1032192-cps + - ethip4tcp-nat44ed-h65536-p63-s4128768-cps + core: [1C, 2C, 4C] + frame-size: [64B, ] + test-type: [MRR, NDR, PDR] + nat44ed-ip4-udp-tput: + label: NAT44 ED UDP TPUT + test: + - ethip4udp-nat44ed-h1024-p63-s64512-tput + - ethip4udp-nat44ed-h16384-p63-s1032192-tput + - ethip4udp-nat44ed-h65536-p63-s4128768-tput + core: [1C, 2C, 4C] + frame-size: [64B, ] + test-type: [MRR, NDR, PDR] + nat44ed-ip4-tcp-tput: + label: NAT44 ED TCP TPUT + test: + - ethip4tcp-nat44ed-h1024-p63-s64512-tput + - ethip4tcp-nat44ed-h16384-p63-s1032192-tput + - ethip4tcp-nat44ed-h65536-p63-s4128768-tput + core: [1C, 2C, 4C] + frame-size: [64B, ] + test-type: [MRR, NDR, PDR] + vhost-base: + label: VMs vhost-user + test: + - eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm + - eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc + - eth-l2xcbase-eth-2vhostvr1024-1vm + - eth-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc + core: [1C, 2C, 4C] + frame-size: [64B, ] + test-type: [MRR, NDR, PDR] + # vnf-service-chains-routing: + # cnf-service-chains-routing: + # cnf-service-pipelines-routing: + # vnf-service-chains-tunnels: +2n-clx-25ge2p1xxv710-dpdk: + l2-base: + label: L2 Ethernet Switching Base + test: + - eth-l2xcbase + - eth-l2patch + - eth-l2bdbasemaclrn + core: [1C, 2C, 4C] + frame-size: [64B, ] + test-type: [MRR, NDR, PDR] + l2-scale: + label: L2 Ethernet Switching Scale + test: + - eth-l2bdscale10kmaclrn + - eth-l2bdscale100kmaclrn + - eth-l2bdscale1mmaclrn + core: [1C, 2C, 4C] + frame-size: [64B, ] + test-type: [MRR, NDR, PDR] + ip4-base: + label: IPv4 Routing Base + test: + - ethip4-ip4base + core: [1C, 2C, 4C] + frame-size: [64B, ] + test-type: [MRR, NDR, PDR] + ip4-scale: + label: IPv4 Routing Scale + test: + - ethip4-ip4scale20k + - ethip4-ip4scale20k-rnd + core: [1C, 2C, 4C] + frame-size: [64B, ] + test-type: [MRR, NDR, PDR] + ip6-base: + label: IPv6 Routing Base + test: + - ethip6-ip6base + core: [1C, 2C, 4C] + frame-size: [78B, ] + test-type: [MRR, NDR, PDR] + ip6-scale: + label: IPv6 Routing Scale + test: + - ethip6-ip6scale20k + - ethip6-ip6scale20k-rnd + core: [1C, 2C, 4C] + frame-size: [78B, ] + test-type: [MRR, NDR, PDR] + memif-base: + label: LXC/DRC Container Memif + test: + - eth-l2bdbasemaclrn-eth-2memif-1dcr + - eth-l2xcbase-eth-2memif-1dcr + - ethip4-ip4base-eth-2memif-1dcr + core: [1C, 2C, 4C] + frame-size: [64B, ] + test-type: [MRR, NDR, PDR] + vhost-base: + label: VMs vhost-user + test: + - eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm + - eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc + core: [1C, 2C, 4C] + frame-size: [64B, ] + test-type: [MRR, NDR, PDR] +2n-dnv-10ge2p1x553-ixgbe: + l2-base: + label: L2 Ethernet Switching Base + test: + - eth-l2xcbase + - eth-l2patch + - eth-l2bdbasemaclrn + core: [1C, 2C, 4C] + frame-size: [64B, ] + test-type: [MRR, ] + l2-scale: + label: L2 Ethernet Switching Scale + test: + - eth-l2bdscale10kmaclrn + core: [1C, 2C, 4C] + frame-size: [64B, ] + test-type: [MRR, ] + ip4-base: + label: IPv4 Routing Base + test: + - ethip4-ip4base + core: [1C, 2C, 4C] + frame-size: [64B, ] + test-type: [MRR, ] + ip4-scale: + label: IPv4 Routing Scale + test: + - ethip4-ip4scale20k + - ethip4-ip4scale20k-rnd + core: [1C, 2C, 4C] + frame-size: [64B, ] + test-type: [MRR, ] + ip6-base: + label: IPv6 Routing Base + test: + - ethip6-ip6base + core: [1C, 2C, 4C] + frame-size: [78B, ] + test-type: [MRR, ] + ip6-scale: + label: IPv6 Routing Scale + test: + - ethip6-ip6scale20k + - ethip6-ip6scale20k-rnd + core: [1C, 2C, 4C] + frame-size: [78B, ] + test-type: [MRR, ] +2n-icx-25ge2p1xxv710-af_xdp: + ip4-base: + label: IPv4 Routing Base + test: + - ethip4-ip4base + core: [1C, 2C, 4C] + frame-size: [64B, ] + test-type: [MRR, NDR, PDR] + ip4-scale: + label: IPv4 Routing Scale + test: + - ethip4-ip4scale20k + - ethip4-ip4scale20k-rnd + core: [1C, 2C, 4C] + frame-size: [64B, ] + test-type: [MRR, NDR, PDR] + ip6-base: + label: IPv6 Routing Base + test: + - ethip6-ip6base + core: [1C, 2C, 4C] + frame-size: [78B, ] + test-type: [MRR, NDR, PDR] + ip6-scale: + label: IPv6 Routing Scale + test: + - ethip6-ip6scale20k + - ethip6-ip6scale20k-rnd + core: [1C, 2C, 4C] + frame-size: [78B, ] + test-type: [MRR, NDR, PDR] +2n-icx-25ge2p1xxv710-avf: + l2-base: + label: L2 Ethernet Switching Base + test: + - dot1q-l2bdbasemaclrn + - eth-l2xcbase + - eth-l2patch + - eth-l2bdbasemaclrn + core: [1C, 2C, 4C] + frame-size: [64B, ] + test-type: [MRR, NDR, PDR] + l2-scale: + label: L2 Ethernet Switching Scale + test: + - eth-l2bdscale10kmaclrn + - eth-l2bdscale100kmaclrn + - eth-l2bdscale1mmaclrn + core: [1C, 2C, 4C] + frame-size: [64B, ] + test-type: [MRR, NDR, PDR] + ip4-base: + label: IPv4 Routing Base + test: + - ethip4-ip4base + core: [1C, 2C, 4C] + frame-size: [64B, ] + test-type: [MRR, NDR, PDR] + ip4-scale: + label: IPv4 Routing Scale + test: + - ethip4-ip4scale20k + - ethip4-ip4scale200k + - ethip4-ip4scale2m + - ethip4-ip4scale20k-rnd + - ethip4-ip4scale200k-rnd + - ethip4-ip4scale2m-rnd + core: [1C, 2C, 4C] + frame-size: [64B, ] + test-type: [MRR, NDR, PDR] + ip4-features: + label: IPv4 Routing Features + test: + - ethip4udp-ip4base-iacl50sf-10kflows + - ethip4udp-ip4base-iacl50sl-10kflows + - ethip4udp-ip4base-oacl50sf-10kflows + - ethip4udp-ip4base-oacl50sl-10kflows + core: [1C, 2C, 4C] + frame-size: [64B, ] + test-type: [MRR, NDR, PDR] + ip6-base: + label: IPv6 Routing Base + test: + - ethip6-ip6base + core: [1C, 2C, 4C] + frame-size: [78B, ] + test-type: [MRR, NDR, PDR] + ip6-scale: + label: IPv6 Routing Scale + test: + - ethip6-ip6scale20k + - ethip6-ip6scale20k-rnd + - ethip6-ip6scale200k + - ethip6-ip6scale200k-rnd + - ethip6-ip6scale2m + - ethip6-ip6scale2m-rnd + core: [1C, 2C, 4C] + frame-size: [78B, ] + test-type: [MRR, NDR, PDR] + ethip4-ethip4udpgeneve: + label: IPv4 Tunnels + test: + - ethip4--ethip4udpgeneve-1tun-ip4base + - ethip4--ethip4udpgeneve-4tun-ip4base + - ethip4--ethip4udpgeneve-16tun-ip4base + - ethip4--ethip4udpgeneve-64tun-ip4base + - ethip4--ethip4udpgeneve-256tun-ip4base + core: [1C, 2C, 4C] + frame-size: [64B, ] + test-type: [MRR, NDR, PDR] + nat44det-ip4-stl-bidir: + label: NAT44 Deterministic BiDir + test: + - ethip4udp-nat44det-h1024-p63-s64512 + - ethip4udp-nat44det-h16384-p63-s1032192 + - ethip4udp-nat44det-h65536-p63-s4128758 + core: [1C, 2C, 4C] + frame-size: [64B, ] + test-type: [MRR, NDR, PDR] + nat44ed-ip4-stl-unidir: + label: NAT44 ED UniDir + test: + - ethip4udp-nat44ed-h1024-p63-s64512-udir + core: [1C, 2C, 4C] + frame-size: [64B, ] + test-type: [MRR, NDR, PDR] + nat44ed-ip4-udp-stf-cps: + label: NAT44 ED UDP CPS + test: + - ethip4udp-ip4base-h1024-p63-s64512-cps + - ethip4udp-ip4base-h16384-p63-s1032192-cps + - ethip4udp-ip4base-h65536-p63-s4128768-cps + - ethip4udp-nat44ed-h1024-p63-s64512-cps + - ethip4udp-nat44ed-h16384-p63-s1032192-cps + - ethip4udp-nat44ed-h65536-p63-s4128768-cps + core: [1C, 2C, 4C] + frame-size: [64B, ] + test-type: [MRR, NDR, PDR] + nat44ed-ip4-tcp-stf-cps: + label: NAT44 ED TCP CPS + test: + - ethip4tcp-ip4base-h1024-p63-s64512-cps + - ethip4tcp-ip4base-h16384-p63-s1032192-cps + - ethip4tcp-ip4base-h65536-p63-s4128768-cps + - ethip4tcp-nat44ed-h1024-p63-s64512-cps + - ethip4tcp-nat44ed-h16384-p63-s1032192-cps + - ethip4tcp-nat44ed-h65536-p63-s4128768-cps + core: [1C, 2C, 4C] + frame-size: [64B, ] + test-type: [MRR, NDR, PDR] + nat44ed-ip4-udp-tput: + label: NAT44 ED UDP TPUT + test: + - ethip4udp-nat44ed-h1024-p63-s64512-tput + - ethip4udp-nat44ed-h16384-p63-s1032192-tput + - ethip4udp-nat44ed-h65536-p63-s4128768-tput + core: [1C, 2C, 4C] + frame-size: [64B, ] + test-type: [MRR, NDR, PDR] + nat44ed-ip4-tcp-tput: + label: NAT44 ED TCP TPUT + test: + - ethip4tcp-nat44ed-h1024-p63-s64512-tput + - ethip4tcp-nat44ed-h16384-p63-s1032192-tput + - ethip4tcp-nat44ed-h65536-p63-s4128768-tput + core: [1C, 2C, 4C] + frame-size: [64B, ] + test-type: [MRR, NDR, PDR] + vhost-base: + label: VMs vhost-user + test: + - eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm + - eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc + - eth-l2xcbase-eth-2vhostvr1024-1vm + - eth-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc + core: [1C, 2C, 4C] + frame-size: [64B, ] + test-type: [MRR, NDR, PDR] + memif-base: + label: LXC/DRC Container Memif + test: + - eth-l2bdbasemaclrn-eth-2memif-1dcr + - eth-l2xcbase-eth-2memif-1dcr + - ethip4-ip4base-eth-2memif-1dcr + core: [1C, 2C, 4C] + frame-size: [64B, ] + test-type: [MRR, NDR, PDR] +2n-icx-25ge2p1xxv710-dpdk: + l2-base: + label: L2 Ethernet Switching Base + test: + - eth-l2xcbase + - eth-l2patch + - eth-l2bdbasemaclrn + core: [1C, 2C, 4C] + frame-size: [64B, ] + test-type: [MRR, NDR, PDR] + l2-scale: + label: L2 Ethernet Switching Scale + test: + - eth-l2bdscale10kmaclrn + - eth-l2bdscale100kmaclrn + - eth-l2bdscale1mmaclrn + core: [1C, 2C, 4C] + frame-size: [64B, ] + test-type: [MRR, NDR, PDR] + ip4-base: + label: IPv4 Routing Base + test: + - ethip4-ip4base + core: [1C, 2C, 4C] + frame-size: [64B, ] + test-type: [MRR, NDR, PDR] + ip4-scale: + label: IPv4 Routing Scale + test: + - ethip4-ip4scale20k + - ethip4-ip4scale20k-rnd + core: [1C, 2C, 4C] + frame-size: [64B, ] + test-type: [MRR, NDR, PDR] + ip6-base: + label: IPv6 Routing Base + test: + - ethip6-ip6base + core: [1C, 2C, 4C] + frame-size: [78B, ] + test-type: [MRR, NDR, PDR] + ip6-scale: + label: IPv6 Routing Scale + test: + - ethip6-ip6scale20k + - ethip6-ip6scale20k-rnd + core: [1C, 2C, 4C] + frame-size: [78B, ] + test-type: [MRR, NDR, PDR] + memif-base: + label: LXC/DRC Container Memif + test: + - eth-l2bdbasemaclrn-eth-2memif-1dcr + - eth-l2xcbase-eth-2memif-1dcr + - ethip4-ip4base-eth-2memif-1dcr + core: [1C, 2C, 4C] + frame-size: [64B, ] + test-type: [MRR, NDR, PDR] + vhost-base: + label: VMs vhost-user + test: + - eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm + - eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc + core: [1C, 2C, 4C] + frame-size: [64B, ] + test-type: [MRR, NDR, PDR] +2n-skx-10ge2p1x710-avf: + l2-base: + label: L2 Ethernet Switching Base + test: + - eth-l2xcbase + - eth-l2patch + - eth-l2bdbasemaclrn + core: [1C, 2C, 4C] + frame-size: [64B, ] + test-type: [MRR, NDR, PDR] + l2-scale: + label: L2 Ethernet Switching Scale + test: + - eth-l2bdscale1mmaclrn + core: [1C, 2C, 4C] + frame-size: [64B, ] + test-type: [MRR, NDR, PDR] + ip4-base: + label: IPv4 Routing Base + test: + - ethip4-ip4base + core: [1C, 2C, 4C] + frame-size: [64B, ] + test-type: [MRR, NDR, PDR] + ip6-base: + label: IPv6 Routing Base + test: + - ethip6-ip6base + core: [1C, 2C, 4C] + frame-size: [78B, ] + test-type: [MRR, NDR, PDR] +2n-skx-10ge2p1x710-dpdk: + l2-base: + label: L2 Ethernet Switching Base + test: + - eth-l2xcbase + - eth-l2patch + - eth-l2bdbasemaclrn + core: [1C, 2C, 4C] + frame-size: [64B, ] + test-type: [MRR, NDR, PDR] + l2-scale: + label: L2 Ethernet Switching Scale + test: + - eth-l2bdscale1mmaclrn + core: [1C, 2C, 4C] + frame-size: [64B, ] + test-type: [MRR, NDR, PDR] + ip4-base: + label: IPv4 Routing Base + test: + - ethip4-ip4base + core: [1C, 2C, 4C] + frame-size: [64B, ] + test-type: [MRR, NDR, PDR] + ip6-base: + label: IPv6 Routing Base + test: + - ethip6-ip6base + core: [1C, 2C, 4C] + frame-size: [78B, ] + test-type: [MRR, NDR, PDR] +2n-skx-25ge2p1xxv710-af_xdp: + ip4-base: + label: IPv4 Routing Base + test: + - ethip4-ip4base + core: [1C, 2C, 4C] + frame-size: [64B, ] + test-type: [MRR, NDR, PDR] + ip4-scale: + label: IPv4 Routing Scale + test: + - ethip4-ip4scale20k + - ethip4-ip4scale20k-rnd + core: [1C, 2C, 4C] + frame-size: [64B, ] + test-type: [MRR, NDR, PDR] + ip6-base: + label: IPv6 Routing Base + test: + - ethip6-ip6base + core: [1C, 2C, 4C] + frame-size: [78B, ] + test-type: [MRR, NDR, PDR] + ip6-scale: + label: IPv6 Routing Scale + test: + - ethip6-ip6scale20k + - ethip6-ip6scale20k-rnd + core: [1C, 2C, 4C] + frame-size: [78B, ] + test-type: [MRR, NDR, PDR] +2n-skx-25ge2p1xxv710-avf: + l2-base: + label: L2 Ethernet Switching Base + test: + - dot1q-l2bdbasemaclrn + - eth-l2xcbase + - eth-l2patch + - eth-l2bdbasemaclrn + core: [1C, 2C, 4C] + frame-size: [64B, ] + test-type: [MRR, NDR, PDR] + l2-scale: + label: L2 Ethernet Switching Scale + test: + - eth-l2bdscale10kmaclrn + - eth-l2bdscale100kmaclrn + - eth-l2bdscale1mmaclrn + core: [1C, 2C, 4C] + frame-size: [64B, ] + test-type: [MRR, NDR, PDR] + ip4-base: + label: IPv4 Routing Base + test: + - ethip4-ip4base + core: [1C, 2C, 4C] + frame-size: [64B, ] + test-type: [MRR, NDR, PDR] + ip4-scale: + label: IPv4 Routing Scale + test: + - ethip4-ip4scale20k + - ethip4-ip4scale200k + - ethip4-ip4scale2m + - ethip4-ip4scale20k-rnd + - ethip4-ip4scale200k-rnd + - ethip4-ip4scale2m-rnd + core: [1C, 2C, 4C] + frame-size: [64B, ] + test-type: [MRR, NDR, PDR] + ip4-features: + label: IPv4 Routing Features + test: + - ethip4udp-ip4base-iacl50sf-10kflows + - ethip4udp-ip4base-iacl50sl-10kflows + - ethip4udp-ip4base-oacl50sf-10kflows + - ethip4udp-ip4base-oacl50sl-10kflows + core: [1C, 2C, 4C] + frame-size: [64B, ] + test-type: [MRR, NDR, PDR] + ip6-base: + label: IPv6 Routing Base + test: + - ethip6-ip6base + core: [1C, 2C, 4C] + frame-size: [78B, ] + test-type: [MRR, NDR, PDR] + ip6-scale: + label: IPv6 Routing Scale + test: + - ethip6-ip6scale20k + - ethip6-ip6scale20k-rnd + - ethip6-ip6scale200k + - ethip6-ip6scale200k-rnd + - ethip6-ip6scale2m + - ethip6-ip6scale2m-rnd + core: [1C, 2C, 4C] + frame-size: [78B, ] + test-type: [MRR, NDR, PDR] + ethip4-ethip4udpgeneve: + label: IPv4 Tunnels + test: + - ethip4--ethip4udpgeneve-1tun-ip4base + - ethip4--ethip4udpgeneve-4tun-ip4base + - ethip4--ethip4udpgeneve-16tun-ip4base + - ethip4--ethip4udpgeneve-64tun-ip4base + - ethip4--ethip4udpgeneve-256tun-ip4base + core: [1C, 2C, 4C] + frame-size: [64B, ] + test-type: [MRR, NDR, PDR] + memif-base: + label: LXC/DRC Container Memif + test: + - eth-l2bdbasemaclrn-eth-2memif-1dcr + - eth-l2xcbase-eth-2memif-1dcr + - ethip4-ip4base-eth-2memif-1dcr + core: [1C, 2C, 4C] + frame-size: [64B, ] + test-type: [MRR, NDR, PDR] + nat44det-ip4-stl-bidir: + label: NAT44 Deterministic BiDir + test: + - ethip4udp-nat44det-h1024-p63-s64512 + - ethip4udp-nat44det-h16384-p63-s1032192 + - ethip4udp-nat44det-h65536-p63-s4128758 + core: [1C, 2C, 4C] + frame-size: [64B, ] + test-type: [MRR, NDR, PDR] + nat44ed-ip4-stl-unidir: + label: NAT44 ED UniDir + test: + - ethip4udp-nat44ed-h1024-p63-s64512-udir + core: [1C, 2C, 4C] + frame-size: [64B, ] + test-type: [MRR, NDR, PDR] + nat44ed-ip4-udp-stf-cps: + label: NAT44 ED UDP CPS + test: + - ethip4udp-ip4base-h1024-p63-s64512-cps + - ethip4udp-ip4base-h16384-p63-s1032192-cps + - ethip4udp-ip4base-h65536-p63-s4128768-cps + - ethip4udp-nat44ed-h1024-p63-s64512-cps + - ethip4udp-nat44ed-h16384-p63-s1032192-cps + - ethip4udp-nat44ed-h65536-p63-s4128768-cps + core: [1C, 2C, 4C] + frame-size: [64B, ] + test-type: [MRR, NDR, PDR] + nat44ed-ip4-tcp-stf-cps: + label: NAT44 ED TCP CPS + test: + - ethip4tcp-ip4base-h1024-p63-s64512-cps + - ethip4tcp-ip4base-h16384-p63-s1032192-cps + - ethip4tcp-ip4base-h65536-p63-s4128768-cps + - ethip4tcp-nat44ed-h1024-p63-s64512-cps + - ethip4tcp-nat44ed-h16384-p63-s1032192-cps + - ethip4tcp-nat44ed-h65536-p63-s4128768-cps + core: [1C, 2C, 4C] + frame-size: [64B, ] + test-type: [MRR, NDR, PDR] + nat44ed-ip4-udp-tput: + label: NAT44 ED UDP TPUT + test: + - ethip4udp-nat44ed-h1024-p63-s64512-tput + - ethip4udp-nat44ed-h16384-p63-s1032192-tput + - ethip4udp-nat44ed-h65536-p63-s4128768-tput + core: [1C, 2C, 4C] + frame-size: [64B, ] + test-type: [MRR, NDR, PDR] + nat44ed-ip4-tcp-tput: + label: NAT44 ED TCP TPUT + test: + - ethip4tcp-nat44ed-h1024-p63-s64512-tput + - ethip4tcp-nat44ed-h16384-p63-s1032192-tput + - ethip4tcp-nat44ed-h65536-p63-s4128768-tput + core: [1C, 2C, 4C] + frame-size: [64B, ] + test-type: [MRR, NDR, PDR] + vhost-base: + label: VMs vhost-user + test: + - eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm + - eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc + - eth-l2xcbase-eth-2vhostvr1024-1vm + - eth-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc + core: [1C, 2C, 4C] + frame-size: [64B, ] + test-type: [MRR, NDR, PDR] +2n-skx-25ge2p1xxv710-dpdk: + l2-base: + label: L2 Ethernet Switching Base + test: + - eth-l2xcbase + - eth-l2patch + - eth-l2bdbasemaclrn + core: [1C, 2C, 4C] + frame-size: [64B, ] + test-type: [MRR, NDR, PDR] + l2-scale: + label: L2 Ethernet Switching Scale + test: + - eth-l2bdscale10kmaclrn + - eth-l2bdscale100kmaclrn + - eth-l2bdscale1mmaclrn + core: [1C, 2C, 4C] + frame-size: [64B, ] + test-type: [MRR, NDR, PDR] + ip4-base: + label: IPv4 Routing Base + test: + - ethip4-ip4base + core: [1C, 2C, 4C] + frame-size: [64B, ] test-type: [MRR, NDR, PDR] ip4-scale: label: IPv4 Routing Scale test: - ethip4-ip4scale20k - ethip4-ip4scale20k-rnd - core: [1C, 2C] - frame-size: [64B, 1518B] + core: [1C, 2C, 4C] + frame-size: [64B, ] test-type: [MRR, NDR, PDR] ip6-base: label: IPv6 Routing Base test: - - ethip6-ip4base - core: [1C, 2C] - frame-size: [78B, 1518B] + - ethip6-ip6base + core: [1C, 2C, 4C] + frame-size: [78B, ] test-type: [MRR, NDR, PDR] ip6-scale: label: IPv6 Routing Scale test: - - ethip6-ip4scale20k - - ethip6-ip4scale20k-rnd - core: [1C, 2C] - frame-size: [78B, 1518B] + - ethip6-ip6scale20k + - ethip6-ip6scale20k-rnd + core: [1C, 2C, 4C] + frame-size: [78B, ] + test-type: [MRR, NDR, PDR] + memif-base: + label: LXC/DRC Container Memif + test: + - eth-l2bdbasemaclrn-eth-2memif-1dcr + - eth-l2xcbase-eth-2memif-1dcr + - ethip4-ip4base-eth-2memif-1dcr + core: [1C, 2C, 4C] + frame-size: [64B, ] + test-type: [MRR, NDR, PDR] + vhost-base: + label: VMs vhost-user + test: + - eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm + - eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc + - eth-l2xcbase-eth-2vhostvr1024-1vm + - eth-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc + core: [1C, 2C, 4C] + frame-size: [64B, ] test-type: [MRR, NDR, PDR] -# 2n-clx-cx556a-rdma: -# 2n-clx-x710-avf: -# 2n-clx-x710-dpdk: -# 2n-clx-xxv710-af_xdp: -# 2n-clx-xxv710-avf: -# l2-base: -# l2-scale: -# ip4-base: -# ip4-scale: -# ip4-features: -# ip6-base: -# ip6-scale: -# ethip4-ethip4udpgeneve: -# nat44det-ip4-stl-bidir: -# nat44ed-ip4-stl-unidir: -# nat44ed-ip4-udp-stf-cps: -# nat44ed-ip4-tcp-stf-cps: -# nat44ed-ip4-udp-stf-pps: -# nat44ed-ip4-tcp-stf-pps: -# nat44ed-ip4-udp-tput: -# nat44ed-ip4-tcp-tput: -# vhost-base: -# memif-base: -# vnf-service-chains-routing: -# cnf-service-chains-routing: -# cnf-service-pipelines-routing: -# vnf-service-chains-tunnels: -# 2n-clx-xxv710-dpdk: -# 2n-dnv-x553-ixgbe: -# 2n-icx-xxv710-avf: -# 2n-icx-xxv710-dpdk: -# 2n-skx-x710-avf: -# 2n-skx-x710-dpdk: -# 2n-skx-xxv710-avf: -# 2n-skx-xxv710-dpdk: -# 2n-tx2-xl710-af_xdp: -# 2n-tx2-xl710-avf: -# 2n-tx2-xl710-dpdk: -# 2n-zn2-x710-avf: -# 2n-zn2-x710-dpdk: -# 2n-zn2-cx556a-rdma: -# 2n-zn2-xxv710-avf: -# 2n-zn2-xxv710-dpdk: +2n-tx2-40ge2p1xl710-af_xdp: + l2-base: + label: L2 Ethernet Switching Base + test: + - eth-l2xcbase + - eth-l2patch + - eth-l2bdbasemaclrn + core: [1C, 2C, 4C] + frame-size: [64B, ] + test-type: [MRR, ] + l2-scale: + label: L2 Ethernet Switching Scale + test: + - eth-l2bdscale10kmaclrn + - eth-l2bdscale100kmaclrn + core: [1C, 2C, 4C] + frame-size: [64B, ] + test-type: [MRR, ] + ip4-base: + label: IPv4 Routing Base + test: + - ethip4-ip4base + core: [1C, 2C, 4C] + frame-size: [64B, ] + test-type: [MRR, ] + ip4-scale: + label: IPv4 Routing Scale + test: + - ethip4-ip4scale20k + - ethip4-ip4scale200k + core: [1C, 2C, 4C] + frame-size: [64B, ] + test-type: [MRR, ] + ip6-base: + label: IPv6 Routing Base + test: + - ethip6-ip6base + core: [1C, 2C, 4C] + frame-size: [78B, ] + test-type: [MRR, ] + ip6-scale: + label: IPv6 Routing Scale + test: + - ethip6-ip6scale20k + - ethip6-ip6scale200k + core: [1C, 2C, 4C] + frame-size: [78B, ] + test-type: [MRR, ] +2n-tx2-40ge2p1xl710-dpdk: + l2-base: + label: L2 Ethernet Switching Base + test: + - dot1q-l2bdbasemaclrn + - eth-l2xcbase + - eth-l2patch + - eth-l2bdbasemaclrn + core: [1C, 2C, 4C] + frame-size: [64B, ] + test-type: [MRR, ] + l2-scale: + label: L2 Ethernet Switching Scale + test: + - eth-l2bdscale10kmaclrn + - eth-l2bdscale100kmaclrn + core: [1C, 2C, 4C] + frame-size: [64B, ] + test-type: [MRR, ] + l2-features: + label: L2 Ethernet Switching Features + test: + - eth-l2bdbasemaclrn-iacl50sf-10kflows + - eth-l2bdbasemaclrn-iacl50sl-10kflows + - eth-l2bdbasemaclrn-oacl50sf-10kflows + - eth-l2bdbasemaclrn-oacl50sl-10kflows + - eth-l2bdbasemaclrn-macip-iacl50sl-10kflows + core: [1C, 2C, 4C] + frame-size: [64B, ] + test-type: [MRR, ] + ipsec: + label: IPSec IPv4 Routing + test: + - ethip4ipsec4tnlsw-ip4base-int-aes128cbc-hmac512sha-udir + - ethip4ipsec4tnlsw-ip4base-int-aes128gcm-udir + - ethip4ipsec4tnlsw-ip4base-int-aes256gcm-udir + - ethip4ipsec1000tnlsw-ip4base-int-aes128cbc-hmac512sha-udir + - ethip4ipsec1000tnlsw-ip4base-int-aes128gcm-udir + - ethip4ipsec1000tnlsw-ip4base-int-aes256gcm-udir + - ethip4ipsec10000tnlsw-ip4base-int-aes128cbc-hmac512sha-udir + - ethip4ipsec10000tnlsw-ip4base-int-aes128gcm-udir + - ethip4ipsec10000tnlsw-ip4base-int-aes256gcm-udir + core: [1C, 2C, 4C] + frame-size: [1518B, IMIX] + test-type: [MRR, ] + ipsec-policy: + label: IPSec IPv4 Routing Policy + test: + - ethip4ipsec1spe-cache-ip4base-policy-outbound-nocrypto + - ethip4ipsec1spe-ip4base-policy-outbound-nocrypto + - ethip4ipsec1tnlsw-ip4base-policy-aes256gcm-udir + - ethip4ipsec100spe-cache-ip4base-policy-outbound-nocrypto + - ethip4ipsec100spe-ip4base-policy-outbound-nocrypto + - ethip4ipsec1000spe-cache-ip4base-policy-outbound-nocrypto + - ethip4ipsec1000spe-ip4base-policy-outbound-nocrypto + - ethip4ipsec1000tnlsw-ip4base-policy-aes256gcm-udir + core: [1C, 2C, 4C] + frame-size: [64B, ] + test-type: [MRR, ] + ip4-base: + label: IPv4 Routing Base + test: + - ethip4-ip4base + core: [1C, 2C, 4C] + frame-size: [64B, ] + test-type: [MRR, ] + ip4-scale: + label: IPv4 Routing Scale + test: + - ethip4-ip4scale20k + - ethip4-ip4scale200k + core: [1C, 2C, 4C] + frame-size: [64B, ] + test-type: [MRR, ] + ip4-features: + label: IPv4 Routing Features + test: + - ethip4-ip4base-iacldstbase + - ethip4udp-ip4base-iacl50sf-10kflows + - ethip4udp-ip4base-iacl50sl-10kflows + - ethip4udp-ip4base-oacl50sf-10kflows + - ethip4udp-ip4base-oacl50sl-10kflows + core: [1C, 2C, 4C] + frame-size: [64B, ] + test-type: [MRR, ] + ip6-base: + label: IPv6 Routing Base + test: + - ethip6-ip6base + core: [1C, 2C, 4C] + frame-size: [78B, ] + test-type: [MRR, ] + ip6-scale: + label: IPv6 Routing Scale + test: + - ethip6-ip6scale20k + - ethip6-ip6scale200k + core: [1C, 2C, 4C] + frame-size: [78B, ] + test-type: [MRR, ] + ip6-features: + label: IPv6 Routing Features + test: + - ethip6-ip6base-iacldstbase + core: [1C, 2C, 4C] + frame-size: [78B, ] + test-type: [MRR, ] + memif-base: + label: LXC/DRC Container Memif + test: + - eth-l2bdbasemaclrn-eth-2memif-1dcr + - eth-l2xcbase-eth-2memif-1dcr + - ethip4-ip4base-eth-2memif-1dcr + core: [1C, 2C, 4C] + frame-size: [64B, ] + test-type: [MRR, ] +2n-zn2-10ge2p1x710-avf: + l2-base: + label: L2 Ethernet Switching Base + test: + - eth-l2bdbasemaclrn + core: [1C, 2C, 4C] + frame-size: [64B, ] + test-type: [MRR, ] + ip4-base: + label: IPv4 Routing Base + test: + - ethip4-ip4base + core: [1C, 2C, 4C] + frame-size: [64B, ] + test-type: [MRR, ] + ip6-base: + label: IPv6 Routing Base + test: + - ethip6-ip6base + core: [1C, 2C, 4C] + frame-size: [78B, ] + test-type: [MRR, ] +2n-zn2-10ge2p1x710-dpdk: + l2-base: + label: L2 Ethernet Switching Base + test: + - eth-l2bdbasemaclrn + core: [1C, 2C, 4C] + frame-size: [64B, ] + test-type: [MRR, ] + ip4-base: + label: IPv4 Routing Base + test: + - ethip4-ip4base + core: [1C, 2C, 4C] + frame-size: [64B, ] + test-type: [MRR, ] + ip6-base: + label: IPv6 Routing Base + test: + - ethip6-ip6base + core: [1C, 2C, 4C] + frame-size: [78B, ] + test-type: [MRR, ] +2n-zn2-100ge2p1cx556a-rdma: + l2-base: + label: L2 Ethernet Switching Base + test: + - dot1q-l2bdbasemaclrn + - eth-l2xcbase + - eth-l2patch + - eth-l2bdbasemaclrn + core: [1C, 2C, 4C] + frame-size: [64B, ] + test-type: [MRR, ] + l2-scale: + label: L2 Ethernet Switching Scale + test: + - eth-l2bdscale10kmaclrn + - eth-l2bdscale100kmaclrn + core: [1C, 2C, 4C] + frame-size: [64B, ] + test-type: [MRR, ] + ip4-base: + label: IPv4 Routing Base + test: + - ethip4-ip4base + core: [1C, 2C, 4C] + frame-size: [64B, ] + test-type: [MRR, ] + ip4-scale: + label: IPv4 Routing Scale + test: + - ethip4-ip4scale20k + - ethip4-ip4scale20k-rnd + core: [1C, 2C, 4C] + frame-size: [64B, ] + test-type: [MRR, ] + ip6-base: + label: IPv6 Routing Base + test: + - ethip6-ip6base + core: [1C, 2C, 4C] + frame-size: [78B, ] + test-type: [MRR, ] + ip6-scale: + label: IPv6 Routing Scale + test: + - ethip6-ip6scale20k + - ethip6-ip6scale20k-rnd + - ethip6-ip6scale200k + - ethip6-ip6scale200k-rnd + core: [1C, 2C, 4C] + frame-size: [78B, ] + test-type: [MRR, ] + ip4-features: + label: IPv4 Routing Features + test: + - ethip4udp-ip4base-iacl50sf-10kflows + - ethip4udp-ip4base-iacl50sl-10kflows + - ethip4udp-ip4base-oacl50sf-10kflows + - ethip4udp-ip4base-oacl50sl-10kflows + core: [1C, 2C, 4C] + frame-size: [64B, ] + test-type: [MRR, ] + memif-base: + label: LXC/DRC Container Memif + test: + - eth-l2bdbasemaclrn-eth-2memif-1dcr + - eth-l2xcbase-eth-2memif-1dcr + - ethip4-ip4base-eth-2memif-1dcr + core: [1C, 2C, 4C] + frame-size: [64B, ] + test-type: [MRR, ] + vhost-base: + label: VMs vhost-user + test: + - eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm + - eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc + - eth-l2xcbase-eth-2vhostvr1024-1vm + - eth-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc + core: [1C, 2C, 4C] + frame-size: [64B, ] + test-type: [MRR, ] +2n-zn2-25ge2p1xxv710-avf: + l2-base: + label: L2 Ethernet Switching Base + test: + - dot1q-l2bdbasemaclrn + - eth-l2xcbase + - eth-l2patch + - eth-l2bdbasemaclrn + core: [1C, 2C, 4C] + frame-size: [64B, ] + test-type: [MRR, ] + l2-scale: + label: L2 Ethernet Switching Scale + test: + - eth-l2bdscale10kmaclrn + - eth-l2bdscale100kmaclrn + core: [1C, 2C, 4C] + frame-size: [64B, ] + test-type: [MRR, ] + ip4-base: + label: IPv4 Routing Base + test: + - ethip4-ip4base + core: [1C, 2C, 4C] + frame-size: [64B, ] + test-type: [MRR, ] + ip4-scale: + label: IPv4 Routing Scale + test: + - ethip4-ip4scale20k + - ethip4-ip4scale20k-rnd + core: [1C, 2C, 4C] + frame-size: [64B, ] + test-type: [MRR, ] + ip4-features: + label: IPv4 Routing Features + test: + - ethip4udp-ip4base-iacl50sf-10kflows + - ethip4udp-ip4base-iacl50sl-10kflows + - ethip4udp-ip4base-oacl50sf-10kflows + - ethip4udp-ip4base-oacl50sl-10kflows + core: [1C, 2C, 4C] + frame-size: [64B, ] + test-type: [MRR, ] + ip6-base: + label: IPv6 Routing Base + test: + - ethip6-ip6base + core: [1C, 2C, 4C] + frame-size: [78B, ] + test-type: [MRR, ] + ip6-scale: + label: IPv6 Routing Scale + test: + - ethip6-ip6scale20k + - ethip6-ip6scale20k-rnd + - ethip6-ip6scale200k + - ethip6-ip6scale200k-rnd + core: [1C, 2C, 4C] + frame-size: [78B, ] + test-type: [MRR, ] + ethip4-ethip4udpgeneve: + label: IPv4 Tunnels + test: + - ethip4--ethip4udpgeneve-1tun-ip4base + - ethip4--ethip4udpgeneve-4tun-ip4base + - ethip4--ethip4udpgeneve-16tun-ip4base + - ethip4--ethip4udpgeneve-64tun-ip4base + - ethip4--ethip4udpgeneve-256tun-ip4base + core: [1C, 2C, 4C] + frame-size: [64B, ] + test-type: [MRR, ] + memif-base: + label: LXC/DRC Container Memif + test: + - eth-l2bdbasemaclrn-eth-2memif-1dcr + - eth-l2xcbase-eth-2memif-1dcr + - ethip4-ip4base-eth-2memif-1dcr + core: [1C, 2C, 4C] + frame-size: [64B, ] + test-type: [MRR, ] + nat44det-ip4-stl-bidir: + label: NAT44 Deterministic BiDir + test: + - ethip4udp-nat44det-h1024-p63-s64512 + - ethip4udp-nat44det-h16384-p63-s1032192 + - ethip4udp-nat44det-h65536-p63-s4128758 + - ethip4udp-nat44det-h262144-p63-s16515072 + core: [1C, 2C, 4C] + frame-size: [64B, ] + test-type: [MRR, ] + vhost-base: + label: VMs vhost-user + test: + - eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm + - eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc + - eth-l2xcbase-eth-2vhostvr1024-1vm + - eth-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc + core: [1C, 2C, 4C] + frame-size: [64B, ] + test-type: [MRR, ] +2n-zn2-25ge2p1xxv710-dpdk: + l2-base: + label: L2 Ethernet Switching Base + test: + - eth-l2xcbase + - eth-l2patch + - eth-l2bdbasemaclrn + core: [1C, 2C, 4C] + frame-size: [64B, ] + test-type: [MRR, ] + l2-scale: + label: L2 Ethernet Switching Scale + test: + - eth-l2bdscale10kmaclrn + - eth-l2bdscale100kmaclrn + core: [1C, 2C, 4C] + frame-size: [64B, ] + test-type: [MRR, ] + ip4-base: + label: IPv4 Routing Base + test: + - ethip4-ip4base + core: [1C, 2C, 4C] + frame-size: [64B, ] + test-type: [MRR, ] + ip4-scale: + label: IPv4 Routing Scale + test: + - ethip4-ip4scale20k + - ethip4-ip4scale20k-rnd + core: [1C, 2C, 4C] + frame-size: [64B, ] + test-type: [MRR, ] + memif-base: + label: LXC/DRC Container Memif + test: + - eth-l2bdbasemaclrn-eth-2memif-1dcr + - eth-l2xcbase-eth-2memif-1dcr + - ethip4-ip4base-eth-2memif-1dcr + core: [1C, 2C, 4C] + frame-size: [64B, ] + test-type: [MRR, ] + vhost-base: + label: VMs vhost-user + test: + - eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm + - eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc + core: [1C, 2C, 4C] + frame-size: [64B, ] + test-type: [MRR, ] 3n-aws-50ge1p1ena-dpdk: ip4-base: label: IPv4 Routing Base @@ -79,8 +1458,7 @@ - ethip4-ip4base core: [1C, 2C] frame-size: [64B, 1518B] - test-type: [MRR, NDR, PDR] - + test-type: [MRR, ] ip4-scale: label: IPv4 Routing Scale test: @@ -88,19 +1466,452 @@ - ethip4-ip4scale20k-rnd core: [1C, 2C] frame-size: [64B, 1518B] - test-type: [MRR, NDR, PDR] - + test-type: [MRR, ] ipsec-base: label: IPSec IPv4 Routing Base test: - ethip4ipsec40tnlsw-ip4base-int-aes256gcm core: [1C, 2C] frame-size: [IMIX, 1518B] + test-type: [MRR, ] +3n-dnv-10ge2p1x553-ixgbe: + l2-base: + label: L2 Ethernet Switching Base + test: + - eth-l2xcbase + - eth-l2patch + - eth-l2bdbasemaclrn + core: [1C, 2C, 4C] + frame-size: [64B, ] + test-type: [MRR, ] + l2-scale: + label: L2 Ethernet Switching Scale + test: + - eth-l2bdscale10kmaclrn + core: [1C, 2C, 4C] + frame-size: [64B, ] + test-type: [MRR, ] + ip4-base: + label: IPv4 Routing Base + test: + - ethip4-ip4base + core: [1C, 2C, 4C] + frame-size: [64B, ] + test-type: [MRR, ] + ip4-scale: + label: IPv4 Routing Scale + test: + - ethip4-ip4scale20k + - ethip4-ip4scale20k-rnd + core: [1C, 2C, 4C] + frame-size: [64B, ] + test-type: [MRR, ] + ip6-base: + label: IPv6 Routing Base + test: + - ethip6-ip6base + core: [1C, 2C, 4C] + frame-size: [78B, ] + test-type: [MRR, ] + ip6-scale: + label: IPv6 Routing Scale + test: + - ethip6-ip6scale20k + - ethip6-ip6scale20k-rnd + core: [1C, 2C, 4C] + frame-size: [78B, ] + test-type: [MRR, ] + ip4-tunnels: + label: IPv4 Tunnels + test: + - ethip4vxlan-l2xcbase + - ethip4vxlan-l2bdbasemaclrn + core: [1C, 2C, 4C] + frame-size: [64B, ] + test-type: [MRR, ] + ipsec: + label: IPSec IPv4 Routing + test: + - ethip4ipsec4tnlsw-ip4base-int-aes128cbc-hmac512sha + - ethip4ipsec4tnlsw-ip4base-int-aes256gcm + - ethip4ipsec1000tnlsw-ip4base-int-aes128cbc-hmac512sha + - ethip4ipsec1000tnlsw-ip4base-int-aes256gcm + core: [1C, 2C, 4C] + frame-size: [1518B, IMIX] + test-type: [MRR, ] + ipsec-scheduler: + label: IPSec IPv4 Routing Scheduler + test: + - ethip4ipsec1tnlswasync-scheduler-ip4base-int-aes128cbc-hmac512sha + - ethip4ipsec1tnlswasync-scheduler-ip4base-int-aes256gcm + core: [2C, 3C, 4C] + frame-size: [1518B, IMIX] + test-type: [MRR, ] +3n-icx-25ge2p1xxv710-avf: + l2-base: + label: L2 Ethernet Switching Base + test: + - dot1q-l2bdbasemaclrn + - eth-l2xcbase + - eth-l2patch + - eth-l2bdbasemaclrn + core: [1C, 2C, 4C] + frame-size: [64B, ] + test-type: [MRR, NDR, PDR] + ip4-base: + label: IPv4 Routing Base + test: + - ethip4-ip4base + core: [1C, 2C, 4C] + frame-size: [64B, ] + test-type: [MRR, NDR, PDR] + ip6-base: + label: IPv6 Routing Base + test: + - ethip6-ip6base + core: [1C, 2C, 4C] + frame-size: [78B, ] + test-type: [MRR, NDR, PDR] + srv6: + label: SRv6 Routing + test: + - ethip6ip6-ip6base-srv6enc1sid + - ethip6srhip6-ip6base-srv6enc2sids + - ethip6srhip6-ip6base-srv6enc2sids-nodecaps + - ethip6srhip6-ip6base-srv6proxy-dyn + - ethip6srhip6-ip6base-srv6proxy-masq + - ethip6srhip6-ip6base-srv6proxy-stat + core: [1C, 2C, 4C] + frame-size: [78B, ] + test-type: [MRR, NDR, PDR] + ip4-tunnels: + label: IPv4 Tunnels + test: + - ethip4gtpusw-ip4base + - ethip4vxlan-l2bdbasemaclrn + - ethip4vxlan-l2xcbase + core: [1C, 2C, 4C] + frame-size: [64B, ] + test-type: [MRR, NDR, PDR] + ipsec: + label: IPSec IPv4 Routing + test: + - ethip4ipsec4tnlsw-ip4base-int-aes128cbc-hmac512sha + - ethip4ipsec4tnlsw-ip4base-int-aes256gcm + - ethip4ipsec40tnlsw-ip4base-int-aes128cbc-hmac512sha + - ethip4ipsec40tnlsw-ip4base-int-aes256gcm + - ethip4ipsec1000tnlsw-ip4base-int-aes128cbc-hmac512sha + - ethip4ipsec1000tnlsw-ip4base-int-aes256gcm + - ethip4ipsec10000tnlsw-ip4base-int-aes128cbc-hmac512sha + - ethip4ipsec10000tnlsw-ip4base-int-aes256gcm + core: [1C, 2C, 4C] + frame-size: [1518B, IMIX] + test-type: [MRR, NDR, PDR] + ipsec-scheduler: + label: IPSec IPv4 Routing Scheduler + test: + - ethip4ipsec1tnlswasync-scheduler-ip4base-int-aes128cbc-hmac512sha + - ethip4ipsec1tnlswasync-scheduler-ip4base-int-aes256gcm + - ethip4ipsec8tnlswasync-scheduler-ip4base-int-aes128cbc-hmac512sha + - ethip4ipsec8tnlswasync-scheduler-ip4base-int-aes256gcm + core: [2C, 3C, 4C] + frame-size: [1518B, IMIX] + test-type: [MRR, NDR, PDR] +3n-icx-25ge2p1xxv710-dpdk: + l2-base: + label: L2 Ethernet Switching Base + test: + - eth-l2xcbase + - eth-l2patch + - eth-l2bdbasemaclrn + core: [1C, 2C, 4C] + frame-size: [64B, ] + test-type: [MRR, NDR, PDR] + ip4-base: + label: IPv4 Routing Base + test: + - ethip4-ip4base + core: [1C, 2C, 4C] + frame-size: [64B, ] + test-type: [MRR, NDR, PDR] + ip6-base: + label: IPv6 Routing Base + test: + - ethip6-ip6base + core: [1C, 2C, 4C] + frame-size: [78B, ] + test-type: [MRR, NDR, PDR] + ip4-tunnels: + label: IPv4 Tunnels + test: + - ethip4gtpusw-ip4base + - ethip4vxlan-l2bdbasemaclrn + - ethip4vxlan-l2xcbase + core: [1C, 2C, 4C] + frame-size: [64B, ] + test-type: [MRR, NDR, PDR] + ipsec: + label: IPSec IPv4 Routing + test: + - ethip4ipsec4tnlsw-ip4base-int-aes256gcm + - ethip4ipsec40tnlsw-ip4base-int-aes256gcm + - ethip4ipsec10000tnlsw-ip4base-int-aes256gcm + core: [1C, 2C, 4C] + frame-size: [1518B, IMIX] + test-type: [MRR, NDR, PDR] + ipsec-scheduler: + label: IPSec IPv4 Routing Scheduler + test: + - ethip4ipsec1tnlswasync-scheduler-ip4base-int-aes256gcm + - ethip4ipsec8tnlswasync-scheduler-ip4base-int-aes256gcm + core: [2C, 3C, 4C] + frame-size: [1518B, IMIX] test-type: [MRR, NDR, PDR] -# 3n-dnv-x553-ixgbe: -# 3n-icx-xxv710-avf: -# 3n-icx-xxv710-dpdk: -# 3n-skx-x710-avf: -# 3n-skx-xxv710-avf: -# 3n-skx-xxv710-dpdk: -# 3n-tsh-x520-ixgbe: +3n-skx-10ge2p1x710-avf: + l2-base: + label: L2 Ethernet Switching Base + test: + - eth-l2xcbase + - eth-l2patch + - eth-l2bdbasemaclrn + core: [1C, 2C, 4C] + frame-size: [64B, ] + test-type: [MRR, NDR, PDR] + ip4-base: + label: IPv4 Routing Base + test: + - ethip4-ip4base + core: [1C, 2C, 4C] + frame-size: [64B, ] + test-type: [MRR, NDR, PDR] + ip6-base: + label: IPv6 Routing Base + test: + - ethip6-ip6base + core: [1C, 2C, 4C] + frame-size: [78B, ] + test-type: [MRR, NDR, PDR] +3n-skx-25ge2p1xxv710-avf: + l2-base: + label: L2 Ethernet Switching Base + test: + - dot1q-l2bdbasemaclrn + - eth-l2xcbase + - eth-l2patch + - eth-l2bdbasemaclrn + core: [1C, 2C, 4C] + frame-size: [64B, ] + test-type: [MRR, NDR, PDR] + ip4-base: + label: IPv4 Routing Base + test: + - ethip4-ip4base + core: [1C, 2C, 4C] + frame-size: [64B, ] + test-type: [MRR, NDR, PDR] + ip4-tunnels: + label: IPv4 Tunnels + test: + - ethip4gtpusw-ip4base + - ethip4vxlan-l2bdbasemaclrn + - ethip4vxlan-l2xcbase + core: [1C, 2C, 4C] + frame-size: [64B, ] + test-type: [MRR, NDR, PDR] + ip6-base: + label: IPv6 Routing Base + test: + - ethip6-ip6base + core: [1C, 2C, 4C] + frame-size: [78B, ] + test-type: [MRR, NDR, PDR] + srv6: + label: SRv6 Routing + test: + - ethip6ip6-ip6base-srv6enc1sid + - ethip6srhip6-ip6base-srv6enc2sids + - ethip6srhip6-ip6base-srv6enc2sids-nodecaps + - ethip6srhip6-ip6base-srv6proxy-dyn + - ethip6srhip6-ip6base-srv6proxy-masq + - ethip6srhip6-ip6base-srv6proxy-stat + core: [1C, 2C, 4C] + frame-size: [78B, ] + test-type: [MRR, NDR, PDR] + ipsec: + label: IPSec IPv4 Routing + test: + - ethip4ipsec4tnlsw-ip4base-int-aes128cbc-hmac512sha + - ethip4ipsec4tnlsw-ip4base-int-aes256gcm + - ethip4ipsec40tnlsw-ip4base-int-aes128cbc-hmac512sha + - ethip4ipsec40tnlsw-ip4base-int-aes256gcm + - ethip4ipsec1000tnlsw-ip4base-int-aes128cbc-hmac512sha + - ethip4ipsec1000tnlsw-ip4base-int-aes256gcm + - ethip4ipsec10000tnlsw-ip4base-int-aes128cbc-hmac512sha + - ethip4ipsec10000tnlsw-ip4base-int-aes256gcm + core: [1C, 2C, 4C] + frame-size: [1518B, IMIX] + test-type: [MRR, NDR, PDR] + ipsec-scheduler: + label: IPSec IPv4 Routing Scheduler + test: + - ethip4ipsec1tnlswasync-scheduler-ip4base-int-aes128cbc-hmac512sha + - ethip4ipsec1tnlswasync-scheduler-ip4base-int-aes256gcm + - ethip4ipsec8tnlswasync-scheduler-ip4base-int-aes128cbc-hmac512sha + - ethip4ipsec8tnlswasync-scheduler-ip4base-int-aes256gcm + core: [2C, 3C, 4C] + frame-size: [1518B, IMIX] + test-type: [MRR, NDR, PDR] +3n-skx-25ge2p1xxv710-dpdk: + l2-base: + label: L2 Ethernet Switching Base + test: + - eth-l2xcbase + - eth-l2patch + - eth-l2bdbasemaclrn + core: [1C, 2C, 4C] + frame-size: [64B, ] + test-type: [MRR, NDR, PDR] + ip4-base: + label: IPv4 Routing Base + test: + - ethip4-ip4base + core: [1C, 2C, 4C] + frame-size: [64B, ] + test-type: [MRR, NDR, PDR] + ip6-base: + label: IPv6 Routing Base + test: + - ethip6-ip6base + core: [1C, 2C, 4C] + frame-size: [78B, ] + test-type: [MRR, NDR, PDR] + ip4-tunnels: + label: IPv4 Tunnels + test: + - ethip4gtpusw-ip4base + - ethip4vxlan-l2bdbasemaclrn + - ethip4vxlan-l2xcbase + core: [1C, 2C, 4C] + frame-size: [64B, ] + test-type: [MRR, NDR, PDR] + ipsec: + label: IPSec IPv4 Routing + test: + - ethip4ipsec4tnlsw-ip4base-int-aes256gcm + - ethip4ipsec40tnlsw-ip4base-int-aes256gcm + - ethip4ipsec10000tnlsw-ip4base-int-aes256gcm + core: [1C, 2C, 4C] + frame-size: [1518B, IMIX] + test-type: [MRR, NDR, PDR] + ipsec-scheduler: + label: IPSec IPv4 Routing Scheduler + test: + - ethip4ipsec1tnlswasync-scheduler-ip4base-int-aes256gcm + - ethip4ipsec8tnlswasync-scheduler-ip4base-int-aes256gcm + core: [2C, 3C, 4C] + frame-size: [1518B, IMIX] + test-type: [MRR, NDR, PDR] +3n-tsh-10ge2p1x520-ixgbe: + l2-base: + label: L2 Ethernet Switching Base + test: + - dot1q-l2bdbasemaclrn + - eth-l2xcbase + - eth-l2patch + - eth-l2bdbasemaclrn + core: [1C, 2C, 4C] + frame-size: [64B, ] + test-type: [MRR, ] + l2-features: + label: L2 Ethernet Switching Features + test: + - eth-l2bdbasemaclrn-iacl50sf-10kflows + - eth-l2bdbasemaclrn-iacl50sl-10kflows + - eth-l2bdbasemaclrn-oacl50sf-10kflows + - eth-l2bdbasemaclrn-oacl50sl-10kflows + - eth-l2bdbasemaclrn-macip-iacl50sl-10kflows + core: [1C, 2C, 4C] + frame-size: [64B, ] + test-type: [MRR, ] + ip4-base: + label: IPv4 Routing Base + test: + - ethip4-ip4base + core: [1C, 2C, 4C] + frame-size: [64B, ] + test-type: [MRR, ] + ip4-features: + label: IPv4 Routing Features + test: + - ethip4udp-ip4base-iacl50sf-10kflows + - ethip4udp-ip4base-iacl50sl-10kflows + - ethip4udp-ip4base-oacl50sf-10kflows + - ethip4udp-ip4base-oacl50sl-10kflows + core: [1C, 2C, 4C] + frame-size: [64B, ] + test-type: [MRR, ] + ip6-base: + label: IPv6 Routing Base + test: + - ethip6-ip6base + core: [1C, 2C, 4C] + frame-size: [78B, ] + test-type: [MRR, ] + srv6: + label: SRv6 Routing + test: + - ethip6ip6-ip6base-srv6enc1sid + - ethip6srhip6-ip6base-srv6enc2sids + - ethip6srhip6-ip6base-srv6enc2sids-nodecaps + - ethip6srhip6-ip6base-srv6proxy-dyn + - ethip6srhip6-ip6base-srv6proxy-masq + - ethip6srhip6-ip6base-srv6proxy-stat + core: [1C, 2C, 4C] + frame-size: [78B, ] + test-type: [MRR, ] + ip4-tunnels: + label: IPv4 Tunnels + test: + - ethip4vxlan-l2bdbasemaclrn + - ethip4vxlan-l2xcbase + core: [1C, 2C, 4C] + frame-size: [64B, ] + test-type: [MRR, ] + ipsec: + label: IPSec IPv4 Routing + test: + - ethip4ipsec4tnlsw-ip4base-int-aes128cbc-hmac512sha + - ethip4ipsec4tnlsw-ip4base-int-aes128gcm + - ethip4ipsec4tnlsw-ip4base-int-aes256gcm + - ethip4ipsec1000tnlsw-ip4base-int-aes128cbc-hmac512sha + - ethip4ipsec1000tnlsw-ip4base-int-aes128gcm + - ethip4ipsec1000tnlsw-ip4base-int-aes256gcm + - ethip4ipsec10000tnlsw-ip4base-int-aes128cbc-hmac512sha + - ethip4ipsec10000tnlsw-ip4base-int-aes128gcm + - ethip4ipsec10000tnlsw-ip4base-int-aes256gcm + core: [1C, 2C, 4C] + frame-size: [1518B, IMIX] + test-type: [MRR, ] + ipsec-policy: + label: IPSec IPv4 Routing Policy + test: + - ethip4ipsec1tnlsw-ip4base-policy-aes256gcm + - ethip4ipsec40tnlsw-ip4base-policy-aes256gcm + - ethip4ipsec1000tnlsw-ip4base-policy-aes256gcm + core: [1C, 2C, 4C] + frame-size: [64B, ] + test-type: [MRR, ] + vhost-base: + label: VMs vhost-user + test: + - eth-l2xcbase-eth-2vhostvr1024-1vm + - eth-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc + - eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm + - eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc + - ethip4-ip4base-eth-2vhostvr1024-1vm + - ethip4-ip4base-eth-2vhostvr1024-1vm-vppip4 + - ethip4vxlan-l2bdbasemaclrn-eth-2vhostvr1024-1vm + - ethip4vxlan-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc + core: [1C, 2C, 4C] + frame-size: [64B, ] + test-type: [MRR, ] diff --git a/resources/tools/dash/app/pal/trending/trending.py b/resources/tools/dash/app/pal/trending/trending.py index dd323c5895..7801e9cfeb 100644 --- a/resources/tools/dash/app/pal/trending/trending.py +++ b/resources/tools/dash/app/pal/trending/trending.py @@ -41,7 +41,8 @@ def init_trending(server): app=dash_app, html_layout_file="pal/trending/html_layout.txt", spec_file="pal/trending/spec_test_selection.yaml", - graph_layout_file="pal/trending/layout.yaml" + graph_layout_file="pal/trending/layout.yaml", + data_spec_file="pal/data/data.yaml" ) dash_app.index_string = layout.html_layout dash_app.layout = layout.add_content() -- 2.16.6