From 1003829468ea7228233a81c9a648ab646d4280e6 Mon Sep 17 00:00:00 2001 From: Tibor Frank Date: Wed, 28 May 2025 13:05:31 +0000 Subject: [PATCH] cdash: distinguish between dpdk and octeon Change-Id: I62f0adf463d3ec6f8a86b93a9163c7ff4d4e4b8d Signed-off-by: Tibor Frank --- csit.infra.dash/app/cdash/comparisons/layout.py | 10 ++----- csit.infra.dash/app/cdash/comparisons/tables.py | 7 +++-- csit.infra.dash/app/cdash/coverage/layout.py | 10 ++----- csit.infra.dash/app/cdash/coverage/tables.py | 4 +-- csit.infra.dash/app/cdash/report/graphs.py | 2 +- csit.infra.dash/app/cdash/report/layout.py | 10 ++----- csit.infra.dash/app/cdash/search/layout.py | 9 ++----- csit.infra.dash/app/cdash/search/tables.py | 8 ++++-- csit.infra.dash/app/cdash/trending/graphs.py | 2 +- csit.infra.dash/app/cdash/trending/layout.py | 13 ++------- csit.infra.dash/app/cdash/utils/constants.py | 3 ++- csit.infra.dash/app/cdash/utils/utils.py | 36 +++++++++++++++++++++++++ 12 files changed, 63 insertions(+), 51 deletions(-) diff --git a/csit.infra.dash/app/cdash/comparisons/layout.py b/csit.infra.dash/app/cdash/comparisons/layout.py index 4342d4ee83..1073bcd2d6 100644 --- a/csit.infra.dash/app/cdash/comparisons/layout.py +++ b/csit.infra.dash/app/cdash/comparisons/layout.py @@ -34,7 +34,7 @@ from ..utils.trigger import Trigger from ..utils.url_processing import url_decode from ..utils.utils import generate_options, gen_new_url, navbar_report, \ filter_table_data, sort_table_data, show_iterative_graph_data, \ - show_tooltip, get_topo_arch + show_tooltip, get_topo_arch, get_drv_name from .tables import comparison_table from ..report.graphs import graph_iterative @@ -132,13 +132,7 @@ class Layout: replace("2n-", "") test = lst_test_id[-1] nic = suite.split("-")[0] - for driver in C.DRIVERS: - if driver in test: - drv = driver.replace("-", "_") - test = test.replace(f"{driver}-", "") - break - else: - drv = "dpdk" + drv, test = get_drv_name(test, tbed) infra = "-".join((tbed, nic, drv)) lst_test = test.split("-") fsize = lst_test[0] diff --git a/csit.infra.dash/app/cdash/comparisons/tables.py b/csit.infra.dash/app/cdash/comparisons/tables.py index bd9968a8d0..7e801f2aee 100644 --- a/csit.infra.dash/app/cdash/comparisons/tables.py +++ b/csit.infra.dash/app/cdash/comparisons/tables.py @@ -131,7 +131,10 @@ def select_comp_data( (data["release"] == dutver[0]) )]) - drv = "" if itm["driver"] == "dpdk" else itm["driver"].replace("_", "-") + if itm["driver"] in C.DRVS_NOT_IN_NAME: + drv = str() + else: + itm["driver"].replace("_", "-") core = str() if itm["dut"] == "trex" else itm["core"].lower() ttype = "ndrpdr" if itm["ttype"] in ("NDR", "PDR", "Latency") \ else itm["ttype"].lower() @@ -145,7 +148,7 @@ def select_comp_data( regex=True )) ] - if itm["driver"] == "dpdk": + if itm["driver"] in C.DRVS_NOT_IN_NAME: for drv in C.DRIVERS: tmp_df.drop( tmp_df[tmp_df.test_id.str.contains(f"-{drv}-")].index, diff --git a/csit.infra.dash/app/cdash/coverage/layout.py b/csit.infra.dash/app/cdash/coverage/layout.py index 7442891198..d2380ee5f5 100644 --- a/csit.infra.dash/app/cdash/coverage/layout.py +++ b/csit.infra.dash/app/cdash/coverage/layout.py @@ -32,7 +32,7 @@ from ..utils.constants import Constants as C from ..utils.control_panel import ControlPanel from ..utils.trigger import Trigger from ..utils.utils import label, gen_new_url, generate_options, navbar_report, \ - show_tooltip, get_topo_arch + show_tooltip, get_topo_arch, get_drv_name from ..utils.url_processing import url_decode from .tables import coverage_tables, select_coverage_data @@ -106,13 +106,7 @@ class Layout: replace("2n-", "") test = lst_test_id[-1] nic = suite.split("-")[0] - for drv in C.DRIVERS: - if drv in test: - driver = drv.replace("-", "_") - test = test.replace(f"{drv}-", "") - break - else: - driver = "dpdk" + driver, test = get_drv_name(test, tbed) infra = "-".join((tbed, nic, driver)) if tbs.get(rls, None) is None: diff --git a/csit.infra.dash/app/cdash/coverage/tables.py b/csit.infra.dash/app/cdash/coverage/tables.py index d38e51e243..24210947dd 100644 --- a/csit.infra.dash/app/cdash/coverage/tables.py +++ b/csit.infra.dash/app/cdash/coverage/tables.py @@ -55,7 +55,7 @@ def select_coverage_data( phy = selected["phy"].rsplit("-", maxsplit=2) if len(phy) == 3: topo_arch, nic, drv = phy - drv_str = "" if drv == "dpdk" else drv.replace("_", "-") + drv_str = "" if drv in C.DRVS_NOT_IN_NAME else drv.replace("_", "-") else: return l_data, None @@ -72,7 +72,7 @@ def select_coverage_data( regex=True )) ] - if drv == "dpdk": + if drv in C.DRVS_NOT_IN_NAME: for driver in C.DRIVERS: df.drop( df[df.test_id.str.contains(f"-{driver}-")].index, diff --git a/csit.infra.dash/app/cdash/report/graphs.py b/csit.infra.dash/app/cdash/report/graphs.py index 5e57713f11..bee9a5c749 100644 --- a/csit.infra.dash/app/cdash/report/graphs.py +++ b/csit.infra.dash/app/cdash/report/graphs.py @@ -39,7 +39,7 @@ def select_iterative_data(data: pd.DataFrame, itm: dict) -> pd.DataFrame: phy = itm["phy"].rsplit("-", maxsplit=2) if len(phy) == 3: topo_arch, nic, drv = phy - if drv == "dpdk": + if drv in C.DRVS_NOT_IN_NAME: drv = "" else: drv += "-" diff --git a/csit.infra.dash/app/cdash/report/layout.py b/csit.infra.dash/app/cdash/report/layout.py index cd16bfbca0..90a5107a6d 100644 --- a/csit.infra.dash/app/cdash/report/layout.py +++ b/csit.infra.dash/app/cdash/report/layout.py @@ -33,7 +33,7 @@ from ..utils.control_panel import ControlPanel from ..utils.trigger import Trigger from ..utils.utils import show_tooltip, label, sync_checklists, gen_new_url, \ generate_options, get_list_group_items, navbar_report, get_topo_arch, \ - show_iterative_graph_data + show_iterative_graph_data, get_drv_name from ..utils.url_processing import url_decode from .graphs import graph_iterative, select_iterative_data @@ -132,13 +132,7 @@ class Layout: replace("2n-", "") test = lst_test_id[-1] nic = suite.split("-")[0] - for drv in C.DRIVERS: - if drv in test: - driver = drv.replace("-", "_") - test = test.replace(f"{drv}-", "") - break - else: - driver = "dpdk" + driver, test = get_drv_name(test, tbed) infra = "-".join((tbed, nic, driver)) lst_test = test.split("-") framesize = lst_test[0] diff --git a/csit.infra.dash/app/cdash/search/layout.py b/csit.infra.dash/app/cdash/search/layout.py index 8dd244a3c1..d194555e7e 100644 --- a/csit.infra.dash/app/cdash/search/layout.py +++ b/csit.infra.dash/app/cdash/search/layout.py @@ -33,7 +33,7 @@ from ..utils.control_panel import ControlPanel from ..utils.trigger import Trigger from ..utils.utils import gen_new_url, generate_options, navbar_trending, \ filter_table_data, sort_table_data, show_trending_graph_data, \ - show_iterative_graph_data, show_tooltip, get_topo_arch + show_iterative_graph_data, show_tooltip, get_topo_arch, get_drv_name from ..utils.url_processing import url_decode from .tables import search_table from ..coverage.tables import coverage_tables @@ -112,12 +112,7 @@ class Layout: replace("2n-", "") tb = get_topo_arch(row["job"].split("-")) nic = suite.split("-")[0] - for driver in C.DRIVERS: - if driver in suite: - drv = driver - break - else: - drv = "dpdk" + drv, _ = get_drv_name(suite, tb, replace=False) test = l_id[-1] if data_type in ("iterative", "coverage", ): diff --git a/csit.infra.dash/app/cdash/search/tables.py b/csit.infra.dash/app/cdash/search/tables.py index 3492fba16f..0cb14eaa7f 100644 --- a/csit.infra.dash/app/cdash/search/tables.py +++ b/csit.infra.dash/app/cdash/search/tables.py @@ -81,7 +81,8 @@ def search_table(data: pd.DataFrame, selection: list) -> pd.DataFrame: l_id = row["test_id"].split(".") suite = l_id[-2].replace("2n1l-", "").replace("1n1l-", "").\ replace("2n-", "") - l_tb.append(get_topo_arch(row["job"].split("-"))) + tb = get_topo_arch(row["job"].split("-")) + l_tb.append(tb) l_nic.append(suite.split("-")[0]) if selection["datatype"] != "trending": l_dutver.append(row["dut_version"]) @@ -90,7 +91,10 @@ def search_table(data: pd.DataFrame, selection: list) -> pd.DataFrame: l_drv.append(driver) break else: - l_drv.append("dpdk") + if tb == "3n-oct": + l_drv.append("octeon") + else: + l_drv.append("dpdk") l_test.append(l_id[-1]) if selection["datatype"] == "trending": diff --git a/csit.infra.dash/app/cdash/trending/graphs.py b/csit.infra.dash/app/cdash/trending/graphs.py index 512a9d8de9..aa13ebad1f 100644 --- a/csit.infra.dash/app/cdash/trending/graphs.py +++ b/csit.infra.dash/app/cdash/trending/graphs.py @@ -42,7 +42,7 @@ def select_trending_data(data: pd.DataFrame, itm: dict) -> pd.DataFrame: phy = itm["phy"].rsplit("-", maxsplit=2) if len(phy) == 3: topo_arch, nic, drv = phy - if drv == "dpdk": + if drv in C.DRVS_NOT_IN_NAME: drv = "" else: drv += "-" diff --git a/csit.infra.dash/app/cdash/trending/layout.py b/csit.infra.dash/app/cdash/trending/layout.py index 1e2d4cdbd2..6c6423d4a2 100644 --- a/csit.infra.dash/app/cdash/trending/layout.py +++ b/csit.infra.dash/app/cdash/trending/layout.py @@ -35,7 +35,7 @@ from ..utils.trigger import Trigger from ..utils.telemetry_data import TelemetryData from ..utils.utils import show_tooltip, label, sync_checklists, gen_new_url, \ generate_options, get_list_group_items, navbar_trending, get_topo_arch, \ - show_trending_graph_data + show_trending_graph_data, get_drv_name from ..utils.url_processing import url_decode from .graphs import graph_trending, select_trending_data, graph_tm_trending @@ -126,16 +126,7 @@ class Layout: replace("2n-", "") test = lst_test[-1] nic = suite.split("-")[0] - for drv in C.DRIVERS: - if drv in test: - if drv == "af-xdp": - driver = "af_xdp" - else: - driver = drv - test = test.replace(f"{drv}-", "") - break - else: - driver = "dpdk" + driver, test = get_drv_name(test, tbed) infra = "-".join((tbed, nic, driver)) lst_test = test.split("-") framesize = lst_test[0] diff --git a/csit.infra.dash/app/cdash/utils/constants.py b/csit.infra.dash/app/cdash/utils/constants.py index e75d814e29..b1cfa481d8 100644 --- a/csit.infra.dash/app/cdash/utils/constants.py +++ b/csit.infra.dash/app/cdash/utils/constants.py @@ -214,7 +214,8 @@ class Constants: PLACEHOLDER = html.Nobr("") # List of drivers used in CSIT. - DRIVERS = ("avf", "af-xdp", "rdma", "dpdk", "mlx5") + DRIVERS = ("avf", "af-xdp", "rdma", "dpdk", "mlx5", "octeon") + DRVS_NOT_IN_NAME = ("dpdk", "octeon") # Labels for input elements (dropdowns, ...). LABELS = { diff --git a/csit.infra.dash/app/cdash/utils/utils.py b/csit.infra.dash/app/cdash/utils/utils.py index 8171c905c3..b8b31e4b74 100644 --- a/csit.infra.dash/app/cdash/utils/utils.py +++ b/csit.infra.dash/app/cdash/utils/utils.py @@ -968,3 +968,39 @@ def get_topo_arch(lst_job: list) -> str: else: # Topology and architecture are the last two substrings. return "-".join(lst_job[-2:]) + + +def get_drv_name(in_str: str, tb: str, replace: bool = True) -> tuple: + """Identifies driver name from test or suite name and unifies its name. + + The driver name is then removed from test / suite name and returned together + with the driver name. + + If vfio_pci driver is used, the plugin name is returned: + - "octeon" for octeon testbeds, + - "dpdk" otherwise. + + :param in_str: Test or suite name to be used to identify the driver name. + :param tb: Testbed name. + :param replace: (Optional, default True) If True, the "-" is replaced by "_" + in the driver name. + :type in_str: str + :type tb: str + :type replace: bool + """ + + for drv in C.DRIVERS: + if drv in in_str: + if replace: + driver = drv.replace("-", "_") + else: + driver = drv + in_str = in_str.replace(f"{drv}-", "") + break + else: + if tb == "3n-oct": + driver = "octeon" + else: + driver = "dpdk" + + return driver, in_str -- 2.16.6