cdash: distinguish between dpdk and octeon 48/43048/3
authorTibor Frank <[email protected]>
Wed, 28 May 2025 13:05:31 +0000 (13:05 +0000)
committerTibor Frank <[email protected]>
Wed, 28 May 2025 13:40:10 +0000 (13:40 +0000)
Change-Id: I62f0adf463d3ec6f8a86b93a9163c7ff4d4e4b8d
Signed-off-by: Tibor Frank <[email protected]>
12 files changed:
csit.infra.dash/app/cdash/comparisons/layout.py
csit.infra.dash/app/cdash/comparisons/tables.py
csit.infra.dash/app/cdash/coverage/layout.py
csit.infra.dash/app/cdash/coverage/tables.py
csit.infra.dash/app/cdash/report/graphs.py
csit.infra.dash/app/cdash/report/layout.py
csit.infra.dash/app/cdash/search/layout.py
csit.infra.dash/app/cdash/search/tables.py
csit.infra.dash/app/cdash/trending/graphs.py
csit.infra.dash/app/cdash/trending/layout.py
csit.infra.dash/app/cdash/utils/constants.py
csit.infra.dash/app/cdash/utils/utils.py

index 4342d4e..1073bcd 100644 (file)
@@ -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]
index bd9968a..7e801f2 100644 (file)
@@ -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,
index 7442891..d2380ee 100644 (file)
@@ -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:
index d38e51e..2421094 100644 (file)
@@ -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,
index 5e57713..bee9a5c 100644 (file)
@@ -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 += "-"
index cd16bfb..90a5107 100644 (file)
@@ -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]
index 8dd244a..d194555 100644 (file)
@@ -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", ):
index 3492fba..0cb14ea 100644 (file)
@@ -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":
index 512a9d8..aa13eba 100644 (file)
@@ -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 += "-"
index 1e2d4cd..6c6423d 100644 (file)
@@ -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]
index e75d814..b1cfa48 100644 (file)
@@ -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 = {
index 8171c90..b8b31e4 100644 (file)
@@ -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