PAL: Optimize specification of elements 24/31524/29
authorTibor Frank <tifrank@cisco.com>
Thu, 4 Mar 2021 11:30:07 +0000 (12:30 +0100)
committerTibor Frank <tifrank@cisco.com>
Fri, 12 Mar 2021 06:51:28 +0000 (07:51 +0100)
- plot_mrr_box_name
- plot_ndrpdr_box_name
- plot_perf_box_name
- plot_tsa_name
- plot_nf_reconf_box_name
- plot_nf_heatmap
- plot_cpta

Change-Id: I28ff2ea0e4f610e5ce48ffd083bf9a37bdc2f62d
Signed-off-by: Tibor Frank <tifrank@cisco.com>
resources/tools/presentation/generator_cpta.py
resources/tools/presentation/generator_plots.py
resources/tools/presentation/input_data_parser.py
resources/tools/presentation/specification.yaml
resources/tools/presentation/specification_CPTA.yaml

index 2f2ab97..43adba7 100644 (file)
@@ -14,6 +14,7 @@
 """Generation of Continuous Performance Trending and Analysis.
 """
 
+import re
 import logging
 import csv
 
@@ -157,7 +158,7 @@ def generate_cpta(spec, data):
 
 
 def _generate_trending_traces(in_data, job_name, build_info,
-                              name=u"", color=u"", incl_tests=u"MRR"):
+                              name=u"", color=u"", incl_tests=u"mrr"):
     """Generate the trending traces:
      - samples,
      - outliers, regress, progress
@@ -168,7 +169,7 @@ def _generate_trending_traces(in_data, job_name, build_info,
     :param build_info: Information about the builds.
     :param name: Name of the plot
     :param color: Name of the color for the plot.
-    :param incl_tests: Included tests, accepted values: MRR, NDR, PDR
+    :param incl_tests: Included tests, accepted values: mrr, ndr, pdr
     :type in_data: OrderedDict
     :type job_name: str
     :type build_info: dict
@@ -179,7 +180,7 @@ def _generate_trending_traces(in_data, job_name, build_info,
     :rtype: tuple(traces, result)
     """
 
-    if incl_tests not in (u"MRR", u"NDR", u"PDR"):
+    if incl_tests not in (u"mrr", u"ndr", u"pdr"):
         return list(), None
 
     data_x = list(in_data.keys())
@@ -202,7 +203,7 @@ def _generate_trending_traces(in_data, job_name, build_info,
                      u"{sut}-ref: {build}<br>"
                      u"csit-ref: {test}-{period}-build-{build_nr}<br>"
                      u"testbed: {testbed}")
-        if incl_tests == u"MRR":
+        if incl_tests == u"mrr":
             hover_str = hover_str.replace(
                 u"<stdev>", f"stdev [Mpps]: {data_y_stdev[index]:.3f}<br>"
             )
@@ -213,23 +214,23 @@ def _generate_trending_traces(in_data, job_name, build_info,
         if u"dpdk" in job_name:
             hover_text.append(hover_str.format(
                 date=date,
-                property=u"average" if incl_tests == u"MRR" else u"throughput",
+                property=u"average" if incl_tests == u"mrr" else u"throughput",
                 value=data_y_mpps[index],
                 sut=u"dpdk",
                 build=build_info[job_name][str_key][1].rsplit(u'~', 1)[0],
-                test=incl_tests.lower(),
+                test=incl_tests,
                 period=u"weekly",
                 build_nr=str_key,
                 testbed=build_info[job_name][str_key][2]))
         elif u"vpp" in job_name:
             hover_str = hover_str.format(
                 date=date,
-                property=u"average" if incl_tests == u"MRR" else u"throughput",
+                property=u"average" if incl_tests == u"mrr" else u"throughput",
                 value=data_y_mpps[index],
                 sut=u"vpp",
                 build=build_info[job_name][str_key][1].rsplit(u'~', 1)[0],
-                test=incl_tests.lower(),
-                period=u"daily" if incl_tests == u"MRR" else u"weekly",
+                test=incl_tests,
+                period=u"daily" if incl_tests == u"mrr" else u"weekly",
                 build_nr=str_key,
                 testbed=build_info[job_name][str_key][2])
             if u"-cps" in name:
@@ -382,198 +383,221 @@ def _generate_all_charts(spec, input_data):
 
         logging.info(f"  Generating the chart {graph.get(u'title', u'')} ...")
 
-        incl_tests = graph.get(u"include-tests", u"MRR")
-
         job_name = list(graph[u"data"].keys())[0]
 
-        csv_tbl = list()
-        res = dict()
-
         # Transform the data
         logging.info(
             f"    Creating the data set for the {graph.get(u'type', u'')} "
             f"{graph.get(u'title', u'')}."
         )
 
-        if graph.get(u"include", None):
-            data = input_data.filter_tests_by_name(
-                graph,
-                params=[u"type", u"result", u"throughput", u"tags"],
-                continue_on_error=True
-            )
-        else:
-            data = input_data.filter_data(
-                graph,
-                params=[u"type", u"result", u"throughput", u"tags"],
-                continue_on_error=True)
+        data = input_data.filter_tests_by_name(
+            graph,
+            params=[u"type", u"result", u"throughput", u"tags"],
+            continue_on_error=True
+        )
 
         if data is None or data.empty:
             logging.error(u"No data.")
             return dict()
 
-        chart_data = dict()
-        chart_tags = dict()
-        for job, job_data in data.items():
-            if job != job_name:
-                continue
-            for index, bld in job_data.items():
-                for test_name, test in bld.items():
-                    if chart_data.get(test_name, None) is None:
-                        chart_data[test_name] = OrderedDict()
-                    try:
-                        if incl_tests == u"MRR":
-                            rate = test[u"result"][u"receive-rate"]
-                            stdev = test[u"result"][u"receive-stdev"]
-                        elif incl_tests == u"NDR":
-                            rate = test[u"throughput"][u"NDR"][u"LOWER"]
-                            stdev = float(u"nan")
-                        elif incl_tests == u"PDR":
-                            rate = test[u"throughput"][u"PDR"][u"LOWER"]
-                            stdev = float(u"nan")
-                        else:
+        return_lst = list()
+
+        for ttype in graph.get(u"test-type", (u"mrr", )):
+            for core in graph.get(u"core", tuple()):
+                csv_tbl = list()
+                res = dict()
+                chart_data = dict()
+                chart_tags = dict()
+                for item in graph.get(u"include", tuple()):
+                    reg_ex = re.compile(str(item.format(core=core)).lower())
+                    for job, job_data in data.items():
+                        if job != job_name:
                             continue
-                        chart_data[test_name][int(index)] = {
-                            u"receive-rate": rate,
-                            u"receive-stdev": stdev
-                        }
-                        chart_tags[test_name] = test.get(u"tags", None)
-                    except (KeyError, TypeError):
-                        pass
-
-        # Add items to the csv table:
-        for tst_name, tst_data in chart_data.items():
-            tst_lst = list()
-            for bld in builds_dict[job_name]:
-                itm = tst_data.get(int(bld), dict())
-                # CSIT-1180: Itm will be list, compute stats.
-                try:
-                    tst_lst.append(str(itm.get(u"receive-rate", u"")))
-                except AttributeError:
-                    tst_lst.append(u"")
-            csv_tbl.append(f"{tst_name}," + u",".join(tst_lst) + u'\n')
-
-        # Generate traces:
-        traces = list()
-        index = 0
-        groups = graph.get(u"groups", None)
-        visibility = list()
-
-        if groups:
-            for group in groups:
-                visible = list()
-                for tag in group:
+                        for index, bld in job_data.items():
+                            for test_id, test in bld.items():
+                                if not re.match(reg_ex, str(test_id).lower()):
+                                    continue
+                                if chart_data.get(test_id, None) is None:
+                                    chart_data[test_id] = OrderedDict()
+                                try:
+                                    if ttype == u"mrr":
+                                        rate = test[u"result"][u"receive-rate"]
+                                        stdev = \
+                                            test[u"result"][u"receive-stdev"]
+                                    elif ttype == u"ndr":
+                                        rate = \
+                                            test["throughput"][u"NDR"][u"LOWER"]
+                                        stdev = float(u"nan")
+                                    elif ttype == u"pdr":
+                                        rate = \
+                                            test["throughput"][u"PDR"][u"LOWER"]
+                                        stdev = float(u"nan")
+                                    else:
+                                        continue
+                                    chart_data[test_id][int(index)] = {
+                                        u"receive-rate": rate,
+                                        u"receive-stdev": stdev
+                                    }
+                                    chart_tags[test_id] = \
+                                        test.get(u"tags", None)
+                                except (KeyError, TypeError):
+                                    pass
+
+                # Add items to the csv table:
+                for tst_name, tst_data in chart_data.items():
+                    tst_lst = list()
+                    for bld in builds_dict[job_name]:
+                        itm = tst_data.get(int(bld), dict())
+                        # CSIT-1180: Itm will be list, compute stats.
+                        try:
+                            tst_lst.append(str(itm.get(u"receive-rate", u"")))
+                        except AttributeError:
+                            tst_lst.append(u"")
+                    csv_tbl.append(f"{tst_name}," + u",".join(tst_lst) + u'\n')
+
+                # Generate traces:
+                traces = list()
+                index = 0
+                groups = graph.get(u"groups", None)
+                visibility = list()
+
+                if groups:
+                    for group in groups:
+                        visible = list()
+                        for tag in group:
+                            for tst_name, test_data in chart_data.items():
+                                if not test_data:
+                                    logging.warning(
+                                        f"No data for the test {tst_name}"
+                                    )
+                                    continue
+                                if tag not in chart_tags[tst_name]:
+                                    continue
+                                try:
+                                    trace, rslt = _generate_trending_traces(
+                                        test_data,
+                                        job_name=job_name,
+                                        build_info=build_info,
+                                        name=u'-'.join(tst_name.split(u'.')[-1].
+                                                       split(u'-')[2:-1]),
+                                        color=COLORS[index],
+                                        incl_tests=ttype
+                                    )
+                                except IndexError:
+                                    logging.error(f"Out of colors: index: "
+                                                  f"{index}, test: {tst_name}")
+                                    index += 1
+                                    continue
+                                traces.extend(trace)
+                                visible.extend(
+                                    [True for _ in range(len(trace))]
+                                )
+                                res[tst_name] = rslt
+                                index += 1
+                                break
+                        visibility.append(visible)
+                else:
                     for tst_name, test_data in chart_data.items():
                         if not test_data:
                             logging.warning(f"No data for the test {tst_name}")
                             continue
-                        if tag not in chart_tags[tst_name]:
-                            continue
                         try:
                             trace, rslt = _generate_trending_traces(
                                 test_data,
                                 job_name=job_name,
                                 build_info=build_info,
-                                name=u'-'.join(tst_name.split(u'.')[-1].
-                                               split(u'-')[2:-1]),
+                                name=u'-'.join(
+                                    tst_name.split(u'.')[-1].split(u'-')[2:-1]),
                                 color=COLORS[index],
-                                incl_tests=incl_tests
+                                incl_tests=ttype
                             )
                         except IndexError:
-                            logging.error(f"Out of colors: index: "
-                                          f"{index}, test: {tst_name}")
+                            logging.error(
+                                f"Out of colors: index: "
+                                f"{index}, test: {tst_name}"
+                            )
                             index += 1
                             continue
                         traces.extend(trace)
-                        visible.extend([True for _ in range(len(trace))])
                         res[tst_name] = rslt
                         index += 1
-                        break
-                visibility.append(visible)
-        else:
-            for tst_name, test_data in chart_data.items():
-                if not test_data:
-                    logging.warning(f"No data for the test {tst_name}")
-                    continue
-                try:
-                    trace, rslt = _generate_trending_traces(
-                        test_data,
-                        job_name=job_name,
-                        build_info=build_info,
-                        name=u'-'.join(
-                            tst_name.split(u'.')[-1].split(u'-')[2:-1]),
-                        color=COLORS[index],
-                        incl_tests=incl_tests
-                    )
-                except IndexError:
-                    logging.error(
-                        f"Out of colors: index: {index}, test: {tst_name}"
-                    )
-                    index += 1
-                    continue
-                traces.extend(trace)
-                res[tst_name] = rslt
-                index += 1
-
-        if traces:
-            # Generate the chart:
-            try:
-                layout = deepcopy(graph[u"layout"])
-            except KeyError as err:
-                logging.error(u"Finished with error: No layout defined")
-                logging.error(repr(err))
-                return dict()
-            if groups:
-                show = list()
-                for i in range(len(visibility)):
-                    visible = list()
-                    for vis_idx, _ in enumerate(visibility):
-                        for _ in range(len(visibility[vis_idx])):
-                            visible.append(i == vis_idx)
-                    show.append(visible)
-
-                buttons = list()
-                buttons.append(dict(
-                    label=u"All",
-                    method=u"update",
-                    args=[{u"visible": [True for _ in range(len(show[0]))]}, ]
-                ))
-                for i in range(len(groups)):
+
+                if traces:
+                    # Generate the chart:
                     try:
-                        label = graph[u"group-names"][i]
-                    except (IndexError, KeyError):
-                        label = f"Group {i + 1}"
-                    buttons.append(dict(
-                        label=label,
-                        method=u"update",
-                        args=[{u"visible": show[i]}, ]
-                    ))
-
-                layout[u"updatemenus"] = list([
-                    dict(
-                        active=0,
-                        type=u"dropdown",
-                        direction=u"down",
-                        xanchor=u"left",
-                        yanchor=u"bottom",
-                        x=-0.12,
-                        y=1.0,
-                        buttons=buttons
+                        layout = deepcopy(graph[u"layout"])
+                    except KeyError as err:
+                        logging.error(u"Finished with error: No layout defined")
+                        logging.error(repr(err))
+                        return dict()
+                    if groups:
+                        show = list()
+                        for i in range(len(visibility)):
+                            visible = list()
+                            for vis_idx, _ in enumerate(visibility):
+                                for _ in range(len(visibility[vis_idx])):
+                                    visible.append(i == vis_idx)
+                            show.append(visible)
+
+                        buttons = list()
+                        buttons.append(dict(
+                            label=u"All",
+                            method=u"update",
+                            args=[{u"visible":
+                                       [True for _ in range(len(show[0]))]}, ]
+                        ))
+                        for i in range(len(groups)):
+                            try:
+                                label = graph[u"group-names"][i]
+                            except (IndexError, KeyError):
+                                label = f"Group {i + 1}"
+                            buttons.append(dict(
+                                label=label,
+                                method=u"update",
+                                args=[{u"visible": show[i]}, ]
+                            ))
+
+                        layout[u"updatemenus"] = list([
+                            dict(
+                                active=0,
+                                type=u"dropdown",
+                                direction=u"down",
+                                xanchor=u"left",
+                                yanchor=u"bottom",
+                                x=-0.12,
+                                y=1.0,
+                                buttons=buttons
+                            )
+                        ])
+
+                    name_file = (
+                        f"{spec.cpta[u'output-file']}/"
+                        f"{graph[u'output-file-name']}.html"
                     )
-                ])
+                    name_file = name_file.format(core=core, test_type=ttype)
 
-            name_file = (
-                f"{spec.cpta[u'output-file']}/{graph[u'output-file-name']}"
-                f"{spec.cpta[u'output-file-type']}")
+                    logging.info(f"    Writing the file {name_file}")
+                    plpl = plgo.Figure(data=traces, layout=layout)
+                    try:
+                        ploff.plot(
+                            plpl,
+                            show_link=False,
+                            auto_open=False,
+                            filename=name_file
+                        )
+                    except plerr.PlotlyEmptyDataError:
+                        logging.warning(u"No data for the plot. Skipped.")
 
-            logging.info(f"    Writing the file {name_file} ...")
-            plpl = plgo.Figure(data=traces, layout=layout)
-            try:
-                ploff.plot(plpl, show_link=False, auto_open=False,
-                           filename=name_file)
-            except plerr.PlotlyEmptyDataError:
-                logging.warning(u"No data for the plot. Skipped.")
+                return_lst.append(
+                    {
+                        u"job_name": job_name,
+                        u"csv_table": csv_tbl,
+                        u"results": res
+                    }
+                )
 
-        return {u"job_name": job_name, u"csv_table": csv_tbl, u"results": res}
+        return return_lst
 
     builds_dict = dict()
     for job in spec.input[u"builds"].keys():
@@ -618,15 +642,17 @@ def _generate_all_charts(spec, input_data):
         csv_tables[job_name].append(header)
 
     for chart in spec.cpta[u"plots"]:
-        result = _generate_chart(chart)
-        if not result:
+        results = _generate_chart(chart)
+        if not results:
             continue
 
-        csv_tables[result[u"job_name"]].extend(result[u"csv_table"])
+        for result in results:
+            csv_tables[result[u"job_name"]].extend(result[u"csv_table"])
 
-        if anomaly_classifications.get(result[u"job_name"], None) is None:
-            anomaly_classifications[result[u"job_name"]] = dict()
-        anomaly_classifications[result[u"job_name"]].update(result[u"results"])
+            if anomaly_classifications.get(result[u"job_name"], None) is None:
+                anomaly_classifications[result[u"job_name"]] = dict()
+            anomaly_classifications[result[u"job_name"]].\
+                update(result[u"results"])
 
     # Write the tables:
     for job_name, csv_table in csv_tables.items():
index 4bdb847..1bfbda1 100644 (file)
@@ -83,8 +83,8 @@ def generate_plots(spec, data):
         u"plot_nf_heatmap": plot_nf_heatmap,
         u"plot_hdrh_lat_by_percentile": plot_hdrh_lat_by_percentile,
         u"plot_hdrh_lat_by_percentile_x_log": plot_hdrh_lat_by_percentile_x_log,
-        u"plot_mrr_error_bars_name": plot_mrr_error_bars_name,
-        u"plot_mrr_box_name": plot_mrr_box_name
+        u"plot_mrr_box_name": plot_mrr_box_name,
+        u"plot_ndrpdr_box_name": plot_ndrpdr_box_name
     }
 
     logging.info(u"Generating the plots ...")
@@ -459,84 +459,93 @@ def plot_nf_reconf_box_name(plot, input_data):
         logging.error(u"No data.")
         return
 
-    # Prepare the data for the plot
-    y_vals = OrderedDict()
-    loss = dict()
-    for job in data:
-        for build in job:
-            for test in build:
-                if y_vals.get(test[u"parent"], None) is None:
-                    y_vals[test[u"parent"]] = list()
-                    loss[test[u"parent"]] = list()
-                try:
-                    y_vals[test[u"parent"]].append(test[u"result"][u"time"])
-                    loss[test[u"parent"]].append(test[u"result"][u"loss"])
-                except (KeyError, TypeError):
-                    y_vals[test[u"parent"]].append(None)
-
-    # Add None to the lists with missing data
-    max_len = 0
-    nr_of_samples = list()
-    for val in y_vals.values():
-        if len(val) > max_len:
-            max_len = len(val)
-        nr_of_samples.append(len(val))
-    for val in y_vals.values():
-        if len(val) < max_len:
-            val.extend([None for _ in range(max_len - len(val))])
-
-    # Add plot traces
-    traces = list()
-    df_y = pd.DataFrame(y_vals)
-    df_y.head()
-    for i, col in enumerate(df_y.columns):
-
-        tst_name = re.sub(REGEX_NIC, u"",
-                          col.lower().replace(u'-reconf', u'').
-                          replace(u'2n1l-', u'').replace(u'2n-', u'').
-                          replace(u'-testpmd', u''))
-
-        traces.append(plgo.Box(
-            x=[str(i + 1) + u'.'] * len(df_y[col]),
-            y=df_y[col],
-            name=(
-                f"{i + 1}. "
-                f"({nr_of_samples[i]:02d} "
-                f"run{u's' if nr_of_samples[i] > 1 else u''}, "
-                f"packets lost average: {mean(loss[col]):.1f}) "
-                f"{u'-'.join(tst_name.split(u'-')[2:])}"
-            ),
-            hoverinfo=u"y+name"
-        ))
-    try:
-        # Create plot
-        layout = deepcopy(plot[u"layout"])
-        layout[u"title"] = f"<b>Time Lost:</b> {layout[u'title']}"
-        layout[u"yaxis"][u"title"] = u"<b>Effective Blocked Time [s]</b>"
-        layout[u"legend"][u"font"][u"size"] = 14
-        layout[u"yaxis"].pop(u"range")
-        plpl = plgo.Figure(data=traces, layout=layout)
-
-        # Export Plot
-        file_type = plot.get(u"output-file-type", u".html")
-        logging.info(f"    Writing file {plot[u'output-file']}{file_type}.")
-        ploff.plot(
-            plpl,
-            show_link=False,
-            auto_open=False,
-            filename=f"{plot[u'output-file']}{file_type}"
-        )
-    except PlotlyError as err:
-        logging.error(
-            f"   Finished with error: {repr(err)}".replace(u"\n", u" ")
-        )
-        return
+    for core in plot.get(u"core", tuple()):
+        # Prepare the data for the plot
+        y_vals = OrderedDict()
+        loss = dict()
+        for item in plot.get(u"include", tuple()):
+            reg_ex = re.compile(str(item.format(core=core)).lower())
+            for job in data:
+                for build in job:
+                    for test_id, test in build.iteritems():
+                        if not re.match(reg_ex, str(test_id).lower()):
+                            continue
+                        if y_vals.get(test[u"parent"], None) is None:
+                            y_vals[test[u"parent"]] = list()
+                            loss[test[u"parent"]] = list()
+                        try:
+                            y_vals[test[u"parent"]].append(
+                                test[u"result"][u"time"]
+                            )
+                            loss[test[u"parent"]].append(
+                                test[u"result"][u"loss"]
+                            )
+                        except (KeyError, TypeError):
+                            y_vals[test[u"parent"]].append(None)
+
+        # Add None to the lists with missing data
+        max_len = 0
+        nr_of_samples = list()
+        for val in y_vals.values():
+            if len(val) > max_len:
+                max_len = len(val)
+            nr_of_samples.append(len(val))
+        for val in y_vals.values():
+            if len(val) < max_len:
+                val.extend([None for _ in range(max_len - len(val))])
+
+        # Add plot traces
+        traces = list()
+        df_y = pd.DataFrame(y_vals)
+        df_y.head()
+        for i, col in enumerate(df_y.columns):
+            tst_name = re.sub(
+                REGEX_NIC, u"",
+                col.lower().replace(u'-reconf', u'').replace(u'2n1l-', u'').
+                replace(u'2n-', u'').replace(u'-testpmd', u'')
+            )
+            traces.append(plgo.Box(
+                x=[str(i + 1) + u'.'] * len(df_y[col]),
+                y=df_y[col],
+                name=(
+                    f"{i + 1}. "
+                    f"({nr_of_samples[i]:02d} "
+                    f"run{u's' if nr_of_samples[i] > 1 else u''}, "
+                    f"packets lost average: {mean(loss[col]):.1f}) "
+                    f"{u'-'.join(tst_name.split(u'-')[2:])}"
+                ),
+                hoverinfo=u"y+name"
+            ))
+        try:
+            # Create plot
+            layout = deepcopy(plot[u"layout"])
+            layout[u"title"] = f"<b>Time Lost:</b> {layout[u'title']}"
+            layout[u"yaxis"][u"title"] = u"<b>Effective Blocked Time [s]</b>"
+            layout[u"legend"][u"font"][u"size"] = 14
+            layout[u"yaxis"].pop(u"range")
+            plpl = plgo.Figure(data=traces, layout=layout)
+
+            # Export Plot
+            file_name = f"{plot[u'output-file'].format(core=core)}.html"
+            logging.info(f"    Writing file {file_name}")
+            ploff.plot(
+                plpl,
+                show_link=False,
+                auto_open=False,
+                filename=file_name
+            )
+        except PlotlyError as err:
+            logging.error(
+                f"   Finished with error: {repr(err)}".replace(u"\n", u" ")
+            )
 
 
 def plot_perf_box_name(plot, input_data):
     """Generate the plot(s) with algorithm: plot_perf_box_name
     specified in the specification file.
 
+    Use only for soak and hoststack tests.
+
     :param plot: Plot to generate.
     :param input_data: Data to process.
     :type plot: pandas.Series
@@ -556,14 +565,6 @@ def plot_perf_box_name(plot, input_data):
         return
 
     # Prepare the data for the plot
-    plot_title = plot.get(u"title", u"").lower()
-
-    if u"-gbps" in plot_title:
-        value = u"gbps"
-        multiplier = 1e6
-    else:
-        value = u"throughput"
-        multiplier = 1.0
     y_vals = OrderedDict()
     test_type = u""
 
@@ -577,25 +578,7 @@ def plot_perf_box_name(plot, input_data):
                     if y_vals.get(test[u"parent"], None) is None:
                         y_vals[test[u"parent"]] = list()
                     try:
-                        if test[u"type"] in (u"NDRPDR", u"CPS"):
-                            test_type = test[u"type"]
-
-                            if u"-pdr" in plot_title:
-                                ttype = u"PDR"
-                            elif u"-ndr" in plot_title:
-                                ttype = u"NDR"
-                            else:
-                                raise RuntimeError(
-                                    u"Wrong title. No information about test "
-                                    u"type. Add '-ndr' or '-pdr' to the test "
-                                    u"title."
-                                )
-
-                            y_vals[test[u"parent"]].append(
-                                test[value][ttype][u"LOWER"] * multiplier
-                            )
-
-                        elif test[u"type"] in (u"SOAK",):
+                        if test[u"type"] in (u"SOAK",):
                             y_vals[test[u"parent"]]. \
                                 append(test[u"throughput"][u"LOWER"])
                             test_type = u"SOAK"
@@ -677,8 +660,6 @@ def plot_perf_box_name(plot, input_data):
         if layout.get(u"title", None):
             if test_type in (u"HOSTSTACK", ):
                 layout[u"title"] = f"<b>Bandwidth:</b> {layout[u'title']}"
-            elif test_type in (u"CPS", ):
-                layout[u"title"] = f"<b>CPS:</b> {layout[u'title']}"
             else:
                 layout[u"title"] = f"<b>Throughput:</b> {layout[u'title']}"
         if y_max:
@@ -700,8 +681,8 @@ def plot_perf_box_name(plot, input_data):
         return
 
 
-def plot_mrr_box_name(plot, input_data):
-    """Generate the plot(s) with algorithm: plot_mrr_box_name
+def plot_ndrpdr_box_name(plot, input_data):
+    """Generate the plot(s) with algorithm: plot_ndrpdr_box_name
     specified in the specification file.
 
     :param plot: Plot to generate.
@@ -717,79 +698,106 @@ def plot_mrr_box_name(plot, input_data):
     )
     data = input_data.filter_tests_by_name(
         plot,
-        params=[u"result", u"parent", u"tags", u"type"])
+        params=[u"throughput", u"gbps", u"parent", u"tags", u"type"]
+    )
     if data is None:
         logging.error(u"No data.")
         return
 
-    # Prepare the data for the plot
-    data_x = list()
-    data_names = list()
-    data_y = list()
-    data_y_max = list()
-    idx = 1
-    for item in plot.get(u"include", tuple()):
-        reg_ex = re.compile(str(item).lower())
-        for job in data:
-            for build in job:
-                for test_id, test in build.iteritems():
-                    if not re.match(reg_ex, str(test_id).lower()):
-                        continue
-                    try:
-                        data_x.append(idx)
-                        name = re.sub(REGEX_NIC, u'', test[u'parent'].lower().
-                                      replace(u'-mrr', u'').
-                                      replace(u'2n1l-', u''))
-                        data_y.append(test[u"result"][u"samples"])
-                        data_names.append(
-                            f"{idx}."
-                            f"({len(data_y[-1]):02d} "
-                            f"run{u's' if len(data_y[-1]) > 1 else u''}) "
-                            f"{name}"
-                        )
-                        data_y_max.append(max(test[u"result"][u"samples"]))
-                        idx += 1
-                    except (KeyError, TypeError):
-                        pass
+    if u"-gbps" in plot.get(u"title", u"").lower():
+        value = u"gbps"
+        multiplier = 1e6
+    else:
+        value = u"throughput"
+        multiplier = 1.0
 
-    # Add plot traces
-    traces = list()
-    for idx in range(len(data_x)):
-        traces.append(
-            plgo.Box(
-                x=[data_x[idx], ] * len(data_y[idx]),
-                y=data_y[idx],
-                name=data_names[idx],
-                hoverinfo=u"y+name"
-            )
-        )
+    test_type = u""
 
-    try:
-        # Create plot
-        layout = deepcopy(plot[u"layout"])
-        if layout.get(u"title", None):
-            layout[u"title"] = f"<b>Throughput:</b> {layout[u'title']}"
-        if data_y_max:
-            layout[u"yaxis"][u"range"] = [0, max(data_y_max) + 1]
-        plpl = plgo.Figure(data=traces, layout=layout)
+    for ttype in plot.get(u"test-type", (u"ndr", u"pdr")):
+        for core in plot.get(u"core", tuple()):
+            # Prepare the data for the plot
+            data_x = list()
+            data_y = OrderedDict()
+            data_y_max = list()
+            idx = 1
+            for item in plot.get(u"include", tuple()):
+                reg_ex = re.compile(str(item.format(core=core)).lower())
+                for job in data:
+                    for build in job:
+                        for test_id, test in build.iteritems():
+                            if not re.match(reg_ex, str(test_id).lower()):
+                                continue
+                            if data_y.get(test[u"parent"], None) is None:
+                                data_y[test[u"parent"]] = list()
+                                test_type = test[u"type"]
+                                data_x.append(idx)
+                                idx += 1
+                            try:
+                                data_y[test[u"parent"]].append(
+                                    test[value][ttype.upper()][u"LOWER"] *
+                                    multiplier
+                                )
+                            except (KeyError, TypeError):
+                                pass
 
-        # Export Plot
-        logging.info(f"    Writing file {plot[u'output-file']}.html.")
-        ploff.plot(
-            plpl,
-            show_link=False,
-            auto_open=False,
-            filename=f"{plot[u'output-file']}.html"
-        )
-    except PlotlyError as err:
-        logging.error(
-            f"   Finished with error: {repr(err)}".replace(u"\n", u" ")
-        )
-        return
+            # Add plot traces
+            traces = list()
+            for idx, (key, vals) in enumerate(data_y.items()):
+                name = re.sub(
+                    REGEX_NIC, u'', key.lower().replace(u'-ndrpdr', u'').
+                    replace(u'2n1l-', u'')
+                )
+                traces.append(
+                    plgo.Box(
+                        x=[data_x[idx], ] * len(data_x),
+                        y=[y / 1e6 if y else None for y in vals],
+                        name=(
+                            f"{idx+1}."
+                            f"({len(vals):02d} "
+                            f"run"
+                            f"{u's' if len(vals) > 1 else u''}) "
+                            f"{name}"
+                        ),
+                        hoverinfo=u"y+name"
+                    )
+                )
+                data_y_max.append(max(vals))
+
+            try:
+                # Create plot
+                layout = deepcopy(plot[u"layout"])
+                if layout.get(u"title", None):
+                    layout[u"title"] = \
+                        layout[u'title'].format(core=core, test_type=ttype)
+                    if test_type in (u"CPS", ):
+                        layout[u"title"] = f"<b>CPS:</b> {layout[u'title']}"
+                    else:
+                        layout[u"title"] = \
+                            f"<b>Throughput:</b> {layout[u'title']}"
+                if data_y_max:
+                    layout[u"yaxis"][u"range"] = [0, max(data_y_max) / 1e6 + 1]
+                plpl = plgo.Figure(data=traces, layout=layout)
+
+                # Export Plot
+                file_name = (
+                    f"{plot[u'output-file'].format(core=core, test_type=ttype)}"
+                    f".html"
+                )
+                logging.info(f"    Writing file {file_name}")
+                ploff.plot(
+                    plpl,
+                    show_link=False,
+                    auto_open=False,
+                    filename=file_name
+                )
+            except PlotlyError as err:
+                logging.error(
+                    f"   Finished with error: {repr(err)}".replace(u"\n", u" ")
+                )
 
 
-def plot_mrr_error_bars_name(plot, input_data):
-    """Generate the plot(s) with algorithm: plot_mrr_error_bars_name
+def plot_mrr_box_name(plot, input_data):
+    """Generate the plot(s) with algorithm: plot_mrr_box_name
     specified in the specification file.
 
     :param plot: Plot to generate.
@@ -805,90 +813,80 @@ def plot_mrr_error_bars_name(plot, input_data):
     )
     data = input_data.filter_tests_by_name(
         plot,
-        params=[u"result", u"parent", u"tags", u"type"])
+        params=[u"result", u"parent", u"tags", u"type"]
+    )
     if data is None:
         logging.error(u"No data.")
         return
 
-    # Prepare the data for the plot
-    data_x = list()
-    data_names = list()
-    data_y_avg = list()
-    data_y_stdev = list()
-    data_y_max = 0
-    hover_info = list()
-    idx = 1
-    for item in plot.get(u"include", tuple()):
-        reg_ex = re.compile(str(item).lower())
-        for job in data:
-            for build in job:
-                for test_id, test in build.iteritems():
-                    if not re.match(reg_ex, str(test_id).lower()):
-                        continue
-                    try:
-                        data_x.append(idx)
-                        name = re.sub(REGEX_NIC, u'', test[u'parent'].lower().
-                                      replace(u'-mrr', u'').
-                                      replace(u'2n1l-', u''))
-                        data_names.append(f"{idx}. {name}")
-                        data_y_avg.append(
-                            round(test[u"result"][u"receive-rate"], 3)
-                        )
-                        data_y_stdev.append(
-                            round(test[u"result"][u"receive-stdev"], 3)
-                        )
-                        hover_info.append(
-                            f"{data_names[-1]}<br>"
-                            f"average [Gbps]: {data_y_avg[-1]}<br>"
-                            f"stdev [Gbps]: {data_y_stdev[-1]}"
-                        )
-                        if data_y_avg[-1] + data_y_stdev[-1] > data_y_max:
-                            data_y_max = data_y_avg[-1] + data_y_stdev[-1]
-                        idx += 1
-                    except (KeyError, TypeError):
-                        pass
+    for core in plot.get(u"core", tuple()):
+        # Prepare the data for the plot
+        data_x = list()
+        data_names = list()
+        data_y = list()
+        data_y_max = list()
+        idx = 1
+        for item in plot.get(u"include", tuple()):
+            reg_ex = re.compile(str(item.format(core=core)).lower())
+            for job in data:
+                for build in job:
+                    for test_id, test in build.iteritems():
+                        if not re.match(reg_ex, str(test_id).lower()):
+                            continue
+                        try:
+                            data_x.append(idx)
+                            name = re.sub(
+                                REGEX_NIC, u'', test[u'parent'].lower().
+                                replace(u'-mrr', u'').replace(u'2n1l-', u'')
+                            )
+                            data_y.append(test[u"result"][u"samples"])
+                            data_names.append(
+                                f"{idx}."
+                                f"({len(data_y[-1]):02d} "
+                                f"run{u's' if len(data_y[-1]) > 1 else u''}) "
+                                f"{name}"
+                            )
+                            data_y_max.append(max(data_y[-1]))
+                            idx += 1
+                        except (KeyError, TypeError):
+                            pass
 
-    # Add plot traces
-    traces = list()
-    for idx in range(len(data_x)):
-        traces.append(
-            plgo.Scatter(
-                x=[data_x[idx], ],
-                y=[data_y_avg[idx], ],
-                error_y=dict(
-                    type=u"data",
-                    array=[data_y_stdev[idx], ],
-                    visible=True
-                ),
-                name=data_names[idx],
-                mode=u"markers",
-                text=hover_info[idx],
-                hoverinfo=u"text"
+        # Add plot traces
+        traces = list()
+        for idx in range(len(data_x)):
+            traces.append(
+                plgo.Box(
+                    x=[data_x[idx], ] * len(data_y[idx]),
+                    y=data_y[idx],
+                    name=data_names[idx],
+                    hoverinfo=u"y+name"
+                )
             )
-        )
 
-    try:
-        # Create plot
-        layout = deepcopy(plot[u"layout"])
-        if layout.get(u"title", None):
-            layout[u"title"] = f"<b>Throughput:</b> {layout[u'title']}"
-        if data_y_max:
-            layout[u"yaxis"][u"range"] = [0, int(data_y_max) + 1]
-        plpl = plgo.Figure(data=traces, layout=layout)
+        try:
+            # Create plot
+            layout = deepcopy(plot[u"layout"])
+            if layout.get(u"title", None):
+                layout[u"title"] = (
+                    f"<b>Throughput:</b> {layout[u'title'].format(core=core)}"
+                )
+            if data_y_max:
+                layout[u"yaxis"][u"range"] = [0, max(data_y_max) + 1]
+            plpl = plgo.Figure(data=traces, layout=layout)
 
-        # Export Plot
-        logging.info(f"    Writing file {plot[u'output-file']}.html.")
-        ploff.plot(
-            plpl,
-            show_link=False,
-            auto_open=False,
-            filename=f"{plot[u'output-file']}.html"
-        )
-    except PlotlyError as err:
-        logging.error(
-            f"   Finished with error: {repr(err)}".replace(u"\n", u" ")
-        )
-        return
+            # Export Plot
+            file_name = f"{plot[u'output-file'].format(core=core)}.html"
+            logging.info(f"    Writing file {file_name}")
+            ploff.plot(
+                plpl,
+                show_link=False,
+                auto_open=False,
+                filename=file_name
+            )
+        except PlotlyError as err:
+            logging.error(
+                f"   Finished with error: {repr(err)}".replace(u"\n", u" ")
+            )
 
 
 def plot_tsa_name(plot, input_data):
@@ -926,330 +924,332 @@ def plot_tsa_name(plot, input_data):
         h_unit = u"Mpps"
         multiplier = 1.0
 
-    y_vals = OrderedDict()
-    for item in plot.get(u"include", tuple()):
-        reg_ex = re.compile(str(item).lower())
-        for job in data:
-            for build in job:
-                for test_id, test in build.iteritems():
-                    if re.match(reg_ex, str(test_id).lower()):
-                        if y_vals.get(test[u"parent"], None) is None:
-                            y_vals[test[u"parent"]] = {
-                                u"1": list(),
-                                u"2": list(),
-                                u"4": list()
-                            }
-                        try:
-                            if test[u"type"] not in (u"NDRPDR", u"CPS"):
-                                continue
-
-                            if u"-pdr" in plot_title:
-                                ttype = u"PDR"
-                            elif u"-ndr" in plot_title:
-                                ttype = u"NDR"
-                            else:
-                                continue
-
-                            if u"1C" in test[u"tags"]:
-                                y_vals[test[u"parent"]][u"1"].append(
-                                    test[value][ttype][u"LOWER"] * multiplier
-                                )
-                            elif u"2C" in test[u"tags"]:
-                                y_vals[test[u"parent"]][u"2"].append(
-                                    test[value][ttype][u"LOWER"] * multiplier
-                                )
-                            elif u"4C" in test[u"tags"]:
-                                y_vals[test[u"parent"]][u"4"].append(
-                                    test[value][ttype][u"LOWER"] * multiplier
-                                )
-                        except (KeyError, TypeError):
-                            pass
+    for ttype in plot.get(u"test-type", (u"ndr", u"pdr")):
+        y_vals = OrderedDict()
+        for item in plot.get(u"include", tuple()):
+            reg_ex = re.compile(str(item).lower())
+            for job in data:
+                for build in job:
+                    for test_id, test in build.iteritems():
+                        if re.match(reg_ex, str(test_id).lower()):
+                            if y_vals.get(test[u"parent"], None) is None:
+                                y_vals[test[u"parent"]] = {
+                                    u"1": list(),
+                                    u"2": list(),
+                                    u"4": list()
+                                }
+                            try:
+                                if test[u"type"] not in (u"NDRPDR", u"CPS"):
+                                    continue
+
+                                if u"1C" in test[u"tags"]:
+                                    y_vals[test[u"parent"]][u"1"].append(
+                                        test[value][ttype.upper()][u"LOWER"] *
+                                        multiplier
+                                    )
+                                elif u"2C" in test[u"tags"]:
+                                    y_vals[test[u"parent"]][u"2"].append(
+                                        test[value][ttype.upper()][u"LOWER"] *
+                                        multiplier
+                                    )
+                                elif u"4C" in test[u"tags"]:
+                                    y_vals[test[u"parent"]][u"4"].append(
+                                        test[value][ttype.upper()][u"LOWER"] *
+                                        multiplier
+                                    )
+                            except (KeyError, TypeError):
+                                pass
+
+        if not y_vals:
+            logging.warning(f"No data for the plot {plot.get(u'title', u'')}")
+            return
+
+        y_1c_max = dict()
+        for test_name, test_vals in y_vals.items():
+            for key, test_val in test_vals.items():
+                if test_val:
+                    avg_val = sum(test_val) / len(test_val)
+                    y_vals[test_name][key] = [avg_val, len(test_val)]
+                    ideal = avg_val / (int(key) * 1e6)
+                    if test_name not in y_1c_max or ideal > y_1c_max[test_name]:
+                        y_1c_max[test_name] = ideal
+
+        vals = OrderedDict()
+        y_max = list()
+        nic_limit = 0
+        lnk_limit = 0
+        pci_limit = 0
+        for test_name, test_vals in y_vals.items():
+            try:
+                if test_vals[u"1"][1]:
+                    name = re.sub(
+                        REGEX_NIC,
+                        u"",
+                        test_name.replace(u'-ndrpdr', u'').
+                            replace(u'2n1l-', u'')
+                    )
+                    vals[name] = OrderedDict()
+                    y_val_1 = test_vals[u"1"][0] / 1e6
+                    y_val_2 = test_vals[u"2"][0] / 1e6 if test_vals[u"2"][0] \
+                        else None
+                    y_val_4 = test_vals[u"4"][0] / 1e6 if test_vals[u"4"][0] \
+                        else None
+
+                    vals[name][u"val"] = [y_val_1, y_val_2, y_val_4]
+                    vals[name][u"rel"] = [1.0, None, None]
+                    vals[name][u"ideal"] = [
+                        y_1c_max[test_name],
+                        y_1c_max[test_name] * 2,
+                        y_1c_max[test_name] * 4
+                    ]
+                    vals[name][u"diff"] = [
+                        (y_val_1 - y_1c_max[test_name]) * 100 / y_val_1,
+                        None,
+                        None
+                    ]
+                    vals[name][u"count"] = [
+                        test_vals[u"1"][1],
+                        test_vals[u"2"][1],
+                        test_vals[u"4"][1]
+                    ]
 
-    if not y_vals:
-        logging.warning(f"No data for the plot {plot.get(u'title', u'')}")
-        return
+                    try:
+                        val_max = max(vals[name][u"val"])
+                    except ValueError as err:
+                        logging.error(repr(err))
+                        continue
+                    if val_max:
+                        y_max.append(val_max)
+
+                    if y_val_2:
+                        vals[name][u"rel"][1] = round(y_val_2 / y_val_1, 2)
+                        vals[name][u"diff"][1] = \
+                            (y_val_2 - vals[name][u"ideal"][1]) * 100 / y_val_2
+                    if y_val_4:
+                        vals[name][u"rel"][2] = round(y_val_4 / y_val_1, 2)
+                        vals[name][u"diff"][2] = \
+                            (y_val_4 - vals[name][u"ideal"][2]) * 100 / y_val_4
+            except IndexError as err:
+                logging.warning(f"No data for {test_name}")
+                logging.warning(repr(err))
+
+            # Limits:
+            if u"x520" in test_name:
+                limit = plot[u"limits"][u"nic"][u"x520"]
+            elif u"x710" in test_name:
+                limit = plot[u"limits"][u"nic"][u"x710"]
+            elif u"xxv710" in test_name:
+                limit = plot[u"limits"][u"nic"][u"xxv710"]
+            elif u"xl710" in test_name:
+                limit = plot[u"limits"][u"nic"][u"xl710"]
+            elif u"x553" in test_name:
+                limit = plot[u"limits"][u"nic"][u"x553"]
+            elif u"cx556a" in test_name:
+                limit = plot[u"limits"][u"nic"][u"cx556a"]
+            else:
+                limit = 0
+            if limit > nic_limit:
+                nic_limit = limit
+
+            mul = 2 if u"ge2p" in test_name else 1
+            if u"10ge" in test_name:
+                limit = plot[u"limits"][u"link"][u"10ge"] * mul
+            elif u"25ge" in test_name:
+                limit = plot[u"limits"][u"link"][u"25ge"] * mul
+            elif u"40ge" in test_name:
+                limit = plot[u"limits"][u"link"][u"40ge"] * mul
+            elif u"100ge" in test_name:
+                limit = plot[u"limits"][u"link"][u"100ge"] * mul
+            else:
+                limit = 0
+            if limit > lnk_limit:
+                lnk_limit = limit
 
-    y_1c_max = dict()
-    for test_name, test_vals in y_vals.items():
-        for key, test_val in test_vals.items():
-            if test_val:
-                avg_val = sum(test_val) / len(test_val)
-                y_vals[test_name][key] = [avg_val, len(test_val)]
-                ideal = avg_val / (int(key) * 1e6)
-                if test_name not in y_1c_max or ideal > y_1c_max[test_name]:
-                    y_1c_max[test_name] = ideal
-
-    vals = OrderedDict()
-    y_max = list()
-    nic_limit = 0
-    lnk_limit = 0
-    pci_limit = 0
-    for test_name, test_vals in y_vals.items():
-        try:
-            if test_vals[u"1"][1]:
-                name = re.sub(
-                    REGEX_NIC,
-                    u"",
-                    test_name.replace(u'-ndrpdr', u'').replace(u'2n1l-', u'')
-                )
-                vals[name] = OrderedDict()
-                y_val_1 = test_vals[u"1"][0] / 1e6
-                y_val_2 = test_vals[u"2"][0] / 1e6 if test_vals[u"2"][0] \
-                    else None
-                y_val_4 = test_vals[u"4"][0] / 1e6 if test_vals[u"4"][0] \
-                    else None
-
-                vals[name][u"val"] = [y_val_1, y_val_2, y_val_4]
-                vals[name][u"rel"] = [1.0, None, None]
-                vals[name][u"ideal"] = [
-                    y_1c_max[test_name],
-                    y_1c_max[test_name] * 2,
-                    y_1c_max[test_name] * 4
-                ]
-                vals[name][u"diff"] = [
-                    (y_val_1 - y_1c_max[test_name]) * 100 / y_val_1, None, None
-                ]
-                vals[name][u"count"] = [
-                    test_vals[u"1"][1],
-                    test_vals[u"2"][1],
-                    test_vals[u"4"][1]
-                ]
+            if u"cx556a" in test_name:
+                limit = plot[u"limits"][u"pci"][u"pci-g3-x8"]
+            else:
+                limit = plot[u"limits"][u"pci"][u"pci-g3-x16"]
+            if limit > pci_limit:
+                pci_limit = limit
 
-                try:
-                    val_max = max(vals[name][u"val"])
-                except ValueError as err:
-                    logging.error(repr(err))
-                    continue
-                if val_max:
-                    y_max.append(val_max)
-
-                if y_val_2:
-                    vals[name][u"rel"][1] = round(y_val_2 / y_val_1, 2)
-                    vals[name][u"diff"][1] = \
-                        (y_val_2 - vals[name][u"ideal"][1]) * 100 / y_val_2
-                if y_val_4:
-                    vals[name][u"rel"][2] = round(y_val_4 / y_val_1, 2)
-                    vals[name][u"diff"][2] = \
-                        (y_val_4 - vals[name][u"ideal"][2]) * 100 / y_val_4
-        except IndexError as err:
-            logging.warning(f"No data for {test_name}")
-            logging.warning(repr(err))
+        traces = list()
+        annotations = list()
+        x_vals = [1, 2, 4]
 
         # Limits:
-        if u"x520" in test_name:
-            limit = plot[u"limits"][u"nic"][u"x520"]
-        elif u"x710" in test_name:
-            limit = plot[u"limits"][u"nic"][u"x710"]
-        elif u"xxv710" in test_name:
-            limit = plot[u"limits"][u"nic"][u"xxv710"]
-        elif u"xl710" in test_name:
-            limit = plot[u"limits"][u"nic"][u"xl710"]
-        elif u"x553" in test_name:
-            limit = plot[u"limits"][u"nic"][u"x553"]
-        elif u"cx556a" in test_name:
-            limit = plot[u"limits"][u"nic"][u"cx556a"]
-        else:
-            limit = 0
-        if limit > nic_limit:
-            nic_limit = limit
-
-        mul = 2 if u"ge2p" in test_name else 1
-        if u"10ge" in test_name:
-            limit = plot[u"limits"][u"link"][u"10ge"] * mul
-        elif u"25ge" in test_name:
-            limit = plot[u"limits"][u"link"][u"25ge"] * mul
-        elif u"40ge" in test_name:
-            limit = plot[u"limits"][u"link"][u"40ge"] * mul
-        elif u"100ge" in test_name:
-            limit = plot[u"limits"][u"link"][u"100ge"] * mul
-        else:
-            limit = 0
-        if limit > lnk_limit:
-            lnk_limit = limit
-
-        if u"cx556a" in test_name:
-            limit = plot[u"limits"][u"pci"][u"pci-g3-x8"]
-        else:
-            limit = plot[u"limits"][u"pci"][u"pci-g3-x16"]
-        if limit > pci_limit:
-            pci_limit = limit
-
-    traces = list()
-    annotations = list()
-    x_vals = [1, 2, 4]
-
-    # Limits:
-    if u"-gbps" not in plot_title and u"-cps-" not in plot_title:
-        nic_limit /= 1e6
-        lnk_limit /= 1e6
-        pci_limit /= 1e6
-        min_limit = min((nic_limit, lnk_limit, pci_limit))
-        if nic_limit == min_limit:
-            traces.append(plgo.Scatter(
-                x=x_vals,
-                y=[nic_limit, ] * len(x_vals),
-                name=f"NIC: {nic_limit:.2f}Mpps",
-                showlegend=False,
-                mode=u"lines",
-                line=dict(
-                    dash=u"dot",
-                    color=COLORS[-1],
-                    width=1),
-                hoverinfo=u"none"
-            ))
-            annotations.append(dict(
-                x=1,
-                y=nic_limit,
-                xref=u"x",
-                yref=u"y",
-                xanchor=u"left",
-                yanchor=u"bottom",
-                text=f"NIC: {nic_limit:.2f}Mpps",
-                font=dict(
-                    size=14,
-                    color=COLORS[-1],
-                ),
-                align=u"left",
-                showarrow=False
-            ))
-            y_max.append(nic_limit)
-        elif lnk_limit == min_limit:
-            traces.append(plgo.Scatter(
-                x=x_vals,
-                y=[lnk_limit, ] * len(x_vals),
-                name=f"Link: {lnk_limit:.2f}Mpps",
-                showlegend=False,
-                mode=u"lines",
-                line=dict(
-                    dash=u"dot",
-                    color=COLORS[-1],
-                    width=1),
-                hoverinfo=u"none"
-            ))
-            annotations.append(dict(
-                x=1,
-                y=lnk_limit,
-                xref=u"x",
-                yref=u"y",
-                xanchor=u"left",
-                yanchor=u"bottom",
-                text=f"Link: {lnk_limit:.2f}Mpps",
-                font=dict(
-                    size=14,
-                    color=COLORS[-1],
-                ),
-                align=u"left",
-                showarrow=False
-            ))
-            y_max.append(lnk_limit)
-        elif pci_limit == min_limit:
-            traces.append(plgo.Scatter(
-                x=x_vals,
-                y=[pci_limit, ] * len(x_vals),
-                name=f"PCIe: {pci_limit:.2f}Mpps",
-                showlegend=False,
-                mode=u"lines",
-                line=dict(
-                    dash=u"dot",
-                    color=COLORS[-1],
-                    width=1),
-                hoverinfo=u"none"
-            ))
-            annotations.append(dict(
-                x=1,
-                y=pci_limit,
-                xref=u"x",
-                yref=u"y",
-                xanchor=u"left",
-                yanchor=u"bottom",
-                text=f"PCIe: {pci_limit:.2f}Mpps",
-                font=dict(
-                    size=14,
-                    color=COLORS[-1],
-                ),
-                align=u"left",
-                showarrow=False
-            ))
-            y_max.append(pci_limit)
-
-    # Perfect and measured:
-    cidx = 0
-    for name, val in vals.items():
-        hovertext = list()
-        try:
-            for idx in range(len(val[u"val"])):
-                htext = ""
-                if isinstance(val[u"val"][idx], float):
-                    htext += (
-                        f"No. of Runs: {val[u'count'][idx]}<br>"
-                        f"Mean: {val[u'val'][idx]:.2f}{h_unit}<br>"
-                    )
-                if isinstance(val[u"diff"][idx], float):
-                    htext += f"Diff: {round(val[u'diff'][idx]):.0f}%<br>"
-                if isinstance(val[u"rel"][idx], float):
-                    htext += f"Speedup: {val[u'rel'][idx]:.2f}"
-                hovertext.append(htext)
-            traces.append(
-                plgo.Scatter(
+        if u"-gbps" not in plot_title and u"-cps-" not in plot_title:
+            nic_limit /= 1e6
+            lnk_limit /= 1e6
+            pci_limit /= 1e6
+            min_limit = min((nic_limit, lnk_limit, pci_limit))
+            if nic_limit == min_limit:
+                traces.append(plgo.Scatter(
+                    x=x_vals,
+                    y=[nic_limit, ] * len(x_vals),
+                    name=f"NIC: {nic_limit:.2f}Mpps",
+                    showlegend=False,
+                    mode=u"lines",
+                    line=dict(
+                        dash=u"dot",
+                        color=COLORS[-1],
+                        width=1),
+                    hoverinfo=u"none"
+                ))
+                annotations.append(dict(
+                    x=1,
+                    y=nic_limit,
+                    xref=u"x",
+                    yref=u"y",
+                    xanchor=u"left",
+                    yanchor=u"bottom",
+                    text=f"NIC: {nic_limit:.2f}Mpps",
+                    font=dict(
+                        size=14,
+                        color=COLORS[-1],
+                    ),
+                    align=u"left",
+                    showarrow=False
+                ))
+                y_max.append(nic_limit)
+            elif lnk_limit == min_limit:
+                traces.append(plgo.Scatter(
                     x=x_vals,
-                    y=val[u"val"],
-                    name=name,
-                    legendgroup=name,
-                    mode=u"lines+markers",
+                    y=[lnk_limit, ] * len(x_vals),
+                    name=f"Link: {lnk_limit:.2f}Mpps",
+                    showlegend=False,
+                    mode=u"lines",
                     line=dict(
-                        color=COLORS[cidx],
-                        width=2),
-                    marker=dict(
-                        symbol=u"circle",
-                        size=10
+                        dash=u"dot",
+                        color=COLORS[-1],
+                        width=1),
+                    hoverinfo=u"none"
+                ))
+                annotations.append(dict(
+                    x=1,
+                    y=lnk_limit,
+                    xref=u"x",
+                    yref=u"y",
+                    xanchor=u"left",
+                    yanchor=u"bottom",
+                    text=f"Link: {lnk_limit:.2f}Mpps",
+                    font=dict(
+                        size=14,
+                        color=COLORS[-1],
                     ),
-                    text=hovertext,
-                    hoverinfo=u"text+name"
-                )
-            )
-            traces.append(
-                plgo.Scatter(
+                    align=u"left",
+                    showarrow=False
+                ))
+                y_max.append(lnk_limit)
+            elif pci_limit == min_limit:
+                traces.append(plgo.Scatter(
                     x=x_vals,
-                    y=val[u"ideal"],
-                    name=f"{name} perfect",
-                    legendgroup=name,
+                    y=[pci_limit, ] * len(x_vals),
+                    name=f"PCIe: {pci_limit:.2f}Mpps",
                     showlegend=False,
                     mode=u"lines",
                     line=dict(
-                        color=COLORS[cidx],
-                        width=2,
-                        dash=u"dash"),
-                    text=[f"Perfect: {y:.2f}Mpps" for y in val[u"ideal"]],
-                    hoverinfo=u"text"
+                        dash=u"dot",
+                        color=COLORS[-1],
+                        width=1),
+                    hoverinfo=u"none"
+                ))
+                annotations.append(dict(
+                    x=1,
+                    y=pci_limit,
+                    xref=u"x",
+                    yref=u"y",
+                    xanchor=u"left",
+                    yanchor=u"bottom",
+                    text=f"PCIe: {pci_limit:.2f}Mpps",
+                    font=dict(
+                        size=14,
+                        color=COLORS[-1],
+                    ),
+                    align=u"left",
+                    showarrow=False
+                ))
+                y_max.append(pci_limit)
+
+        # Perfect and measured:
+        cidx = 0
+        for name, val in vals.items():
+            hovertext = list()
+            try:
+                for idx in range(len(val[u"val"])):
+                    htext = ""
+                    if isinstance(val[u"val"][idx], float):
+                        htext += (
+                            f"No. of Runs: {val[u'count'][idx]}<br>"
+                            f"Mean: {val[u'val'][idx]:.2f}{h_unit}<br>"
+                        )
+                    if isinstance(val[u"diff"][idx], float):
+                        htext += f"Diff: {round(val[u'diff'][idx]):.0f}%<br>"
+                    if isinstance(val[u"rel"][idx], float):
+                        htext += f"Speedup: {val[u'rel'][idx]:.2f}"
+                    hovertext.append(htext)
+                traces.append(
+                    plgo.Scatter(
+                        x=x_vals,
+                        y=val[u"val"],
+                        name=name,
+                        legendgroup=name,
+                        mode=u"lines+markers",
+                        line=dict(
+                            color=COLORS[cidx],
+                            width=2),
+                        marker=dict(
+                            symbol=u"circle",
+                            size=10
+                        ),
+                        text=hovertext,
+                        hoverinfo=u"text+name"
+                    )
                 )
-            )
-            cidx += 1
-        except (IndexError, ValueError, KeyError) as err:
-            logging.warning(f"No data for {name}\n{repr(err)}")
-
-    try:
-        # Create plot
-        file_type = plot.get(u"output-file-type", u".html")
-        logging.info(f"    Writing file {plot[u'output-file']}{file_type}.")
-        layout = deepcopy(plot[u"layout"])
-        if layout.get(u"title", None):
-            layout[u"title"] = f"<b>Speedup Multi-core:</b> {layout[u'title']}"
-        layout[u"yaxis"][u"range"] = [0, int(max(y_max) * 1.1)]
-        layout[u"annotations"].extend(annotations)
-        plpl = plgo.Figure(data=traces, layout=layout)
+                traces.append(
+                    plgo.Scatter(
+                        x=x_vals,
+                        y=val[u"ideal"],
+                        name=f"{name} perfect",
+                        legendgroup=name,
+                        showlegend=False,
+                        mode=u"lines",
+                        line=dict(
+                            color=COLORS[cidx],
+                            width=2,
+                            dash=u"dash"),
+                        text=[f"Perfect: {y:.2f}Mpps" for y in val[u"ideal"]],
+                        hoverinfo=u"text"
+                    )
+                )
+                cidx += 1
+            except (IndexError, ValueError, KeyError) as err:
+                logging.warning(f"No data for {name}\n{repr(err)}")
 
-        # Export Plot
-        ploff.plot(
-            plpl,
-            show_link=False,
-            auto_open=False,
-            filename=f"{plot[u'output-file']}{file_type}"
-        )
-    except PlotlyError as err:
-        logging.error(
-            f"   Finished with error: {repr(err)}".replace(u"\n", u" ")
-        )
-        return
+        try:
+            # Create plot
+            file_name = f"{plot[u'output-file'].format(test_type=ttype)}.html"
+            logging.info(f"    Writing file {file_name}")
+            layout = deepcopy(plot[u"layout"])
+            if layout.get(u"title", None):
+                layout[u"title"] = (
+                    f"<b>Speedup Multi-core:</b> "
+                    f"{layout[u'title'].format(test_type=ttype)}"
+                )
+            layout[u"yaxis"][u"range"] = [0, int(max(y_max) * 1.1)]
+            layout[u"annotations"].extend(annotations)
+            plpl = plgo.Figure(data=traces, layout=layout)
+
+            # Export Plot
+            ploff.plot(
+                plpl,
+                show_link=False,
+                auto_open=False,
+                filename=file_name
+            )
+        except PlotlyError as err:
+            logging.error(
+                f"   Finished with error: {repr(err)}".replace(u"\n", u" ")
+            )
 
 
 def plot_http_server_perf_box(plot, input_data):
@@ -1352,6 +1352,16 @@ def plot_nf_heatmap(plot, input_data):
     :type input_data: InputData
     """
 
+    def sort_by_int(value):
+        """Makes possible to sort a list of strings which represent integers.
+
+        :param value: Integer as a string.
+        :type value: str
+        :returns: Integer representation of input parameter 'value'.
+        :rtype: int
+        """
+        return int(value)
+
     regex_cn = re.compile(r'^(\d*)R(\d*)C$')
     regex_test_name = re.compile(r'^.*-(\d+ch|\d+pl)-'
                                  r'(\d+mif|\d+vh)-'
@@ -1363,306 +1373,321 @@ def plot_nf_heatmap(plot, input_data):
         f"    Creating the data set for the {plot.get(u'type', u'')} "
         f"{plot.get(u'title', u'')}."
     )
-    data = input_data.filter_data(plot, continue_on_error=True)
-    if data is None or data.empty:
-        logging.error(u"No data.")
-        return
-
-    for job in data:
-        for build in job:
-            for test in build:
-                for tag in test[u"tags"]:
-                    groups = re.search(regex_cn, tag)
-                    if groups:
-                        chain = str(groups.group(1))
-                        node = str(groups.group(2))
-                        break
-                else:
-                    continue
-                groups = re.search(regex_test_name, test[u"name"])
-                if groups and len(groups.groups()) == 3:
-                    hover_name = (
-                        f"{str(groups.group(1))}-"
-                        f"{str(groups.group(2))}-"
-                        f"{str(groups.group(3))}"
-                    )
-                else:
-                    hover_name = u""
-                if vals.get(chain, None) is None:
-                    vals[chain] = dict()
-                if vals[chain].get(node, None) is None:
-                    vals[chain][node] = dict(
-                        name=hover_name,
-                        vals=list(),
-                        nr=None,
-                        mean=None,
-                        stdev=None
-                    )
-                try:
-                    if plot[u"include-tests"] == u"MRR":
-                        result = test[u"result"][u"receive-rate"]
-                    elif plot[u"include-tests"] == u"PDR":
-                        result = test[u"throughput"][u"PDR"][u"LOWER"]
-                    elif plot[u"include-tests"] == u"NDR":
-                        result = test[u"throughput"][u"NDR"][u"LOWER"]
-                    else:
-                        result = None
-                except TypeError:
-                    result = None
-
-                if result:
-                    vals[chain][node][u"vals"].append(result)
-
-    if not vals:
+    in_data = input_data.filter_tests_by_name(
+        plot,
+        continue_on_error=True,
+        params=[u"throughput", u"result", u"name", u"tags", u"type"]
+    )
+    if in_data is None or in_data.empty:
         logging.error(u"No data.")
         return
 
-    txt_chains = list()
-    txt_nodes = list()
-    for key_c in vals:
-        txt_chains.append(key_c)
-        for key_n in vals[key_c].keys():
-            txt_nodes.append(key_n)
-            if vals[key_c][key_n][u"vals"]:
-                vals[key_c][key_n][u"nr"] = len(vals[key_c][key_n][u"vals"])
-                vals[key_c][key_n][u"mean"] = \
-                    round(mean(vals[key_c][key_n][u"vals"]) / 1000000, 1)
-                vals[key_c][key_n][u"stdev"] = \
-                    round(stdev(vals[key_c][key_n][u"vals"]) / 1000000, 1)
-    txt_nodes = list(set(txt_nodes))
-
-    def sort_by_int(value):
-        """Makes possible to sort a list of strings which represent integers.
-
-        :param value: Integer as a string.
-        :type value: str
-        :returns: Integer representation of input parameter 'value'.
-        :rtype: int
-        """
-        return int(value)
-
-    txt_chains = sorted(txt_chains, key=sort_by_int)
-    txt_nodes = sorted(txt_nodes, key=sort_by_int)
-
-    chains = [i + 1 for i in range(len(txt_chains))]
-    nodes = [i + 1 for i in range(len(txt_nodes))]
-
-    data = [list() for _ in range(len(chains))]
-    for chain in chains:
-        for node in nodes:
-            try:
-                val = vals[txt_chains[chain - 1]][txt_nodes[node - 1]][u"mean"]
-            except (KeyError, IndexError):
-                val = None
-            data[chain - 1].append(val)
-
-    # Color scales:
-    my_green = [[0.0, u"rgb(235, 249, 242)"],
-                [1.0, u"rgb(45, 134, 89)"]]
-
-    my_blue = [[0.0, u"rgb(236, 242, 248)"],
-               [1.0, u"rgb(57, 115, 172)"]]
-
-    my_grey = [[0.0, u"rgb(230, 230, 230)"],
-               [1.0, u"rgb(102, 102, 102)"]]
-
-    hovertext = list()
-    annotations = list()
-
-    text = (u"Test: {name}<br>"
-            u"Runs: {nr}<br>"
-            u"Thput: {val}<br>"
-            u"StDev: {stdev}")
+    for ttype in plot.get(u"test-type", (u"ndr", u"pdr")):
+        for core in plot.get(u"core", tuple()):
+            for item in plot.get(u"include", tuple()):
+                reg_ex = re.compile(str(item.format(core=core)).lower())
+                for job in in_data:
+                    for build in job:
+                        for test_id, test in build.iteritems():
+                            if not re.match(reg_ex, str(test_id).lower()):
+                                continue
+                            for tag in test[u"tags"]:
+                                groups = re.search(regex_cn, tag)
+                                if groups:
+                                    chain = str(groups.group(1))
+                                    node = str(groups.group(2))
+                                    break
+                            else:
+                                continue
+                            groups = re.search(regex_test_name, test[u"name"])
+                            if groups and len(groups.groups()) == 3:
+                                hover_name = (
+                                    f"{str(groups.group(1))}-"
+                                    f"{str(groups.group(2))}-"
+                                    f"{str(groups.group(3))}"
+                                )
+                            else:
+                                hover_name = u""
+                            if vals.get(chain, None) is None:
+                                vals[chain] = dict()
+                            if vals[chain].get(node, None) is None:
+                                vals[chain][node] = dict(
+                                    name=hover_name,
+                                    vals=list(),
+                                    nr=None,
+                                    mean=None,
+                                    stdev=None
+                                )
+                            try:
+                                if ttype == u"mrr":
+                                    result = test[u"result"][u"receive-rate"]
+                                elif ttype == u"pdr":
+                                    result = \
+                                        test[u"throughput"][u"PDR"][u"LOWER"]
+                                elif ttype == u"ndr":
+                                    result = \
+                                        test[u"throughput"][u"NDR"][u"LOWER"]
+                                else:
+                                    result = None
+                            except TypeError:
+                                result = None
+
+                            if result:
+                                vals[chain][node][u"vals"].append(result)
+
+            if not vals:
+                logging.error(u"No data.")
+                return
+
+            txt_chains = list()
+            txt_nodes = list()
+            for key_c in vals:
+                txt_chains.append(key_c)
+                for key_n in vals[key_c].keys():
+                    txt_nodes.append(key_n)
+                    if vals[key_c][key_n][u"vals"]:
+                        vals[key_c][key_n][u"nr"] = \
+                            len(vals[key_c][key_n][u"vals"])
+                        vals[key_c][key_n][u"mean"] = \
+                            round(mean(vals[key_c][key_n][u"vals"]) / 1e6, 1)
+                        vals[key_c][key_n][u"stdev"] = \
+                            round(stdev(vals[key_c][key_n][u"vals"]) / 1e6, 1)
+            txt_nodes = list(set(txt_nodes))
+
+            txt_chains = sorted(txt_chains, key=sort_by_int)
+            txt_nodes = sorted(txt_nodes, key=sort_by_int)
+
+            chains = [i + 1 for i in range(len(txt_chains))]
+            nodes = [i + 1 for i in range(len(txt_nodes))]
+
+            data = [list() for _ in range(len(chains))]
+            for chain in chains:
+                for node in nodes:
+                    try:
+                        val = vals[txt_chains[chain - 1]] \
+                            [txt_nodes[node - 1]][u"mean"]
+                    except (KeyError, IndexError):
+                        val = None
+                    data[chain - 1].append(val)
+
+            # Color scales:
+            my_green = [[0.0, u"rgb(235, 249, 242)"],
+                        [1.0, u"rgb(45, 134, 89)"]]
+
+            my_blue = [[0.0, u"rgb(236, 242, 248)"],
+                       [1.0, u"rgb(57, 115, 172)"]]
+
+            my_grey = [[0.0, u"rgb(230, 230, 230)"],
+                       [1.0, u"rgb(102, 102, 102)"]]
+
+            hovertext = list()
+            annotations = list()
+
+            text = (u"Test: {name}<br>"
+                    u"Runs: {nr}<br>"
+                    u"Thput: {val}<br>"
+                    u"StDev: {stdev}")
+
+            for chain, _ in enumerate(txt_chains):
+                hover_line = list()
+                for node, _ in enumerate(txt_nodes):
+                    if data[chain][node] is not None:
+                        annotations.append(
+                            dict(
+                                x=node+1,
+                                y=chain+1,
+                                xref=u"x",
+                                yref=u"y",
+                                xanchor=u"center",
+                                yanchor=u"middle",
+                                text=str(data[chain][node]),
+                                font=dict(
+                                    size=14,
+                                ),
+                                align=u"center",
+                                showarrow=False
+                            )
+                        )
+                        hover_line.append(text.format(
+                            name=vals[txt_chains[chain]][txt_nodes[node]]
+                            [u"name"],
+                            nr=vals[txt_chains[chain]][txt_nodes[node]][u"nr"],
+                            val=data[chain][node],
+                            stdev=vals[txt_chains[chain]][txt_nodes[node]]
+                            [u"stdev"]
+                        ))
+                hovertext.append(hover_line)
+
+            traces = [
+                plgo.Heatmap(
+                    x=nodes,
+                    y=chains,
+                    z=data,
+                    colorbar=dict(
+                        title=plot.get(u"z-axis", u"{test_type}").
+                        format(test_type=ttype.upper()),
+                        titleside=u"right",
+                        titlefont=dict(
+                            size=16
+                        ),
+                        tickfont=dict(
+                            size=16,
+                        ),
+                        tickformat=u".1f",
+                        yanchor=u"bottom",
+                        y=-0.02,
+                        len=0.925,
+                    ),
+                    showscale=True,
+                    colorscale=my_green,
+                    text=hovertext,
+                    hoverinfo=u"text"
+                )
+            ]
 
-    for chain, _ in enumerate(txt_chains):
-        hover_line = list()
-        for node, _ in enumerate(txt_nodes):
-            if data[chain][node] is not None:
+            for idx, item in enumerate(txt_nodes):
+                # X-axis, numbers:
                 annotations.append(
                     dict(
-                        x=node+1,
-                        y=chain+1,
+                        x=idx+1,
+                        y=0.05,
                         xref=u"x",
                         yref=u"y",
                         xanchor=u"center",
+                        yanchor=u"top",
+                        text=item,
+                        font=dict(
+                            size=16,
+                        ),
+                        align=u"center",
+                        showarrow=False
+                    )
+                )
+            for idx, item in enumerate(txt_chains):
+                # Y-axis, numbers:
+                annotations.append(
+                    dict(
+                        x=0.35,
+                        y=idx+1,
+                        xref=u"x",
+                        yref=u"y",
+                        xanchor=u"right",
                         yanchor=u"middle",
-                        text=str(data[chain][node]),
+                        text=item,
                         font=dict(
-                            size=14,
+                            size=16,
                         ),
                         align=u"center",
                         showarrow=False
                     )
                 )
-                hover_line.append(text.format(
-                    name=vals[txt_chains[chain]][txt_nodes[node]][u"name"],
-                    nr=vals[txt_chains[chain]][txt_nodes[node]][u"nr"],
-                    val=data[chain][node],
-                    stdev=vals[txt_chains[chain]][txt_nodes[node]][u"stdev"]))
-        hovertext.append(hover_line)
-
-    traces = [
-        plgo.Heatmap(
-            x=nodes,
-            y=chains,
-            z=data,
-            colorbar=dict(
-                title=plot.get(u"z-axis", u""),
-                titleside=u"right",
-                titlefont=dict(
-                    size=16
-                ),
-                tickfont=dict(
-                    size=16,
-                ),
-                tickformat=u".1f",
-                yanchor=u"bottom",
-                y=-0.02,
-                len=0.925,
-            ),
-            showscale=True,
-            colorscale=my_green,
-            text=hovertext,
-            hoverinfo=u"text"
-        )
-    ]
-
-    for idx, item in enumerate(txt_nodes):
-        # X-axis, numbers:
-        annotations.append(
-            dict(
-                x=idx+1,
-                y=0.05,
-                xref=u"x",
-                yref=u"y",
-                xanchor=u"center",
-                yanchor=u"top",
-                text=item,
-                font=dict(
-                    size=16,
-                ),
-                align=u"center",
-                showarrow=False
-            )
-        )
-    for idx, item in enumerate(txt_chains):
-        # Y-axis, numbers:
-        annotations.append(
-            dict(
-                x=0.35,
-                y=idx+1,
-                xref=u"x",
-                yref=u"y",
-                xanchor=u"right",
-                yanchor=u"middle",
-                text=item,
-                font=dict(
-                    size=16,
-                ),
-                align=u"center",
-                showarrow=False
-            )
-        )
-    # X-axis, title:
-    annotations.append(
-        dict(
-            x=0.55,
-            y=-0.15,
-            xref=u"paper",
-            yref=u"y",
-            xanchor=u"center",
-            yanchor=u"bottom",
-            text=plot.get(u"x-axis", u""),
-            font=dict(
-                size=16,
-            ),
-            align=u"center",
-            showarrow=False
-        )
-    )
-    # Y-axis, title:
-    annotations.append(
-        dict(
-            x=-0.1,
-            y=0.5,
-            xref=u"x",
-            yref=u"paper",
-            xanchor=u"center",
-            yanchor=u"middle",
-            text=plot.get(u"y-axis", u""),
-            font=dict(
-                size=16,
-            ),
-            align=u"center",
-            textangle=270,
-            showarrow=False
-        )
-    )
-    updatemenus = list([
-        dict(
-            x=1.0,
-            y=0.0,
-            xanchor=u"right",
-            yanchor=u"bottom",
-            direction=u"up",
-            buttons=list([
+            # X-axis, title:
+            annotations.append(
                 dict(
-                    args=[
-                        {
-                            u"colorscale": [my_green, ],
-                            u"reversescale": False
-                        }
-                    ],
-                    label=u"Green",
-                    method=u"update"
-                ),
+                    x=0.55,
+                    y=-0.15,
+                    xref=u"paper",
+                    yref=u"y",
+                    xanchor=u"center",
+                    yanchor=u"bottom",
+                    text=plot.get(u"x-axis", u""),
+                    font=dict(
+                        size=16,
+                    ),
+                    align=u"center",
+                    showarrow=False
+                )
+            )
+            # Y-axis, title:
+            annotations.append(
                 dict(
-                    args=[
-                        {
-                            u"colorscale": [my_blue, ],
-                            u"reversescale": False
-                        }
-                    ],
-                    label=u"Blue",
-                    method=u"update"
-                ),
+                    x=-0.1,
+                    y=0.5,
+                    xref=u"x",
+                    yref=u"paper",
+                    xanchor=u"center",
+                    yanchor=u"middle",
+                    text=plot.get(u"y-axis", u""),
+                    font=dict(
+                        size=16,
+                    ),
+                    align=u"center",
+                    textangle=270,
+                    showarrow=False
+                )
+            )
+            updatemenus = list([
                 dict(
-                    args=[
-                        {
-                            u"colorscale": [my_grey, ],
-                            u"reversescale": False
-                        }
-                    ],
-                    label=u"Grey",
-                    method=u"update"
+                    x=1.0,
+                    y=0.0,
+                    xanchor=u"right",
+                    yanchor=u"bottom",
+                    direction=u"up",
+                    buttons=list([
+                        dict(
+                            args=[
+                                {
+                                    u"colorscale": [my_green, ],
+                                    u"reversescale": False
+                                }
+                            ],
+                            label=u"Green",
+                            method=u"update"
+                        ),
+                        dict(
+                            args=[
+                                {
+                                    u"colorscale": [my_blue, ],
+                                    u"reversescale": False
+                                }
+                            ],
+                            label=u"Blue",
+                            method=u"update"
+                        ),
+                        dict(
+                            args=[
+                                {
+                                    u"colorscale": [my_grey, ],
+                                    u"reversescale": False
+                                }
+                            ],
+                            label=u"Grey",
+                            method=u"update"
+                        )
+                    ])
                 )
             ])
-        )
-    ])
 
-    try:
-        layout = deepcopy(plot[u"layout"])
-    except KeyError as err:
-        logging.error(f"Finished with error: No layout defined\n{repr(err)}")
-        return
+            try:
+                layout = deepcopy(plot[u"layout"])
+            except KeyError as err:
+                logging.error(
+                    f"Finished with error: No layout defined\n{repr(err)}"
+                )
+                return
 
-    layout[u"annotations"] = annotations
-    layout[u'updatemenus'] = updatemenus
+            layout[u"annotations"] = annotations
+            layout[u'updatemenus'] = updatemenus
+            if layout.get(u"title", None):
+                layout[u"title"] = layout[u'title'].replace(u"test_type", ttype)
 
-    try:
-        # Create plot
-        plpl = plgo.Figure(data=traces, layout=layout)
+            try:
+                # Create plot
+                plpl = plgo.Figure(data=traces, layout=layout)
 
-        # Export Plot
-        logging.info(f"    Writing file {plot[u'output-file']}.html")
-        ploff.plot(
-            plpl,
-            show_link=False,
-            auto_open=False,
-            filename=f"{plot[u'output-file']}.html"
-        )
-    except PlotlyError as err:
-        logging.error(
-            f"   Finished with error: {repr(err)}".replace(u"\n", u" ")
-        )
-        return
+                # Export Plot
+                file_name = (
+                    f"{plot[u'output-file'].format(core=core, test_type=ttype)}"
+                    f".html"
+                )
+                logging.info(f"    Writing file {file_name}")
+                ploff.plot(
+                    plpl,
+                    show_link=False,
+                    auto_open=False,
+                    filename=file_name
+                )
+            except PlotlyError as err:
+                logging.error(
+                    f"   Finished with error: {repr(err)}".replace(u"\n", u" ")
+                )
index cc98bb7..b6b9301 100644 (file)
@@ -1954,16 +1954,25 @@ class InputData:
 
         if params is None:
             params = element.get(u"parameters", None)
-            if params:
+            if params and u"type" not in params:
                 params.append(u"type")
 
+        cores = element.get(u"core", None)
+        if cores:
+            tests = list()
+            for core in cores:
+                for test in include:
+                    tests.append(test.format(core=core))
+        else:
+            tests = include
+
         data = pd.Series()
         try:
             for job, builds in element[u"data"].items():
                 data[job] = pd.Series()
                 for build in builds:
                     data[job][str(build)] = pd.Series()
-                    for test in include:
+                    for test in tests:
                         try:
                             reg_ex = re.compile(str(test).lower())
                             for test_id in self.data[job][
index 5acef65..3723af2 100644 (file)
 #      # No data
 #    # csit-dpdk-perf-report-iterative-2009-2n-dnv:
 #      # No data
-
+#
 #    csit-dpdk-perf-report-iterative-2005-3n-dnv:
 #      # No data
 #    # csit-dpdk-perf-report-iterative-2009-3n-dnv:
   format:
     html:
     - full
-    pdf:
-    - minimal
+    pdf:
+    - minimal
 
 ################################################################################
 ###                               T A B L E S                                ###
 # Reconf tests 2n-skx
 
 - type: "plot"
-  title: "NFV Effective Blocked Time: 2n-skx-xxv710-imix-2t1c-dot1qip4vxlan-l2bd-{Y}ch-1ach-{2XY}vh-{XY}vm-reconf"
-  algorithm: "plot_nf_reconf_box_name"
-  output-file: "{DIR[STATIC,VPP]}/2n-skx-xxv710-imix-2t1c-dot1qip4vxlan-l2bd-reconf"
-  data: "plot-vpp-nfv-reconf-2n-skx"
-  include:
-    - "Tests.Vpp.Perf.Nfv Density.Vm Vhost.Chain Dot1Qip4Vxlan.2N-25Ge2P1Xxv710-Avf-Dot1Qip4Vxlan-L2Bd-1Ch-1Ach-2Vh-1Vm1T-Testpmd-Reconf.IMIX-2t1c-avf-dot1qip4vxlan-l2bd-1ch-1ach-2vh-1vm1t-testpmd-reconf"
-    - "Tests.Vpp.Perf.Nfv Density.Vm Vhost.Chain Dot1Qip4Vxlan.2N-25Ge2P1Xxv710-Avf-Dot1Qip4Vxlan-L2Bd-2Ch-1Ach-4Vh-2Vm1T-Testpmd-Reconf.IMIX-2t1c-avf-dot1qip4vxlan-l2bd-2ch-1ach-4vh-2vm1t-testpmd-reconf"
-    - "Tests.Vpp.Perf.Nfv Density.Vm Vhost.Chain Dot1Qip4Vxlan.2N-25Ge2P1Xxv710-Avf-Dot1Qip4Vxlan-L2Bd-4Ch-1Ach-8Vh-4Vm1T-Testpmd-Reconf.IMIX-2t1c-avf-dot1qip4vxlan-l2bd-4ch-1ach-8vh-4vm1t-testpmd-reconf"
-    - "Tests.Vpp.Perf.Nfv Density.Vm Vhost.Chain Dot1Qip4Vxlan.2N-25Ge2P1Xxv710-Avf-Dot1Qip4Vxlan-L2Bd-6Ch-1Ach-12Vh-6Vm1T-Testpmd-Reconf.IMIX-2t1c-avf-dot1qip4vxlan-l2bd-6ch-1ach-12vh-6vm1t-testpmd-reconf"
-    - "Tests.Vpp.Perf.Nfv Density.Vm Vhost.Chain Dot1Qip4Vxlan.2N-25Ge2P1Xxv710-Avf-Dot1Qip4Vxlan-L2Bd-8Ch-1Ach-16Vh-8Vm1T-Testpmd-Reconf.IMIX-2t1c-avf-dot1qip4vxlan-l2bd-8ch-1ach-16vh-8vm1t-testpmd-reconf"
-    - "Tests.Vpp.Perf.Nfv Density.Vm Vhost.Chain Dot1Qip4Vxlan.2N-25Ge2P1Xxv710-Avf-Dot1Qip4Vxlan-L2Bd-10Ch-1Ach-20Vh-10Vm1T-Testpmd-Reconf.IMIX-2t1c-avf-dot1qip4vxlan-l2bd-10ch-1ach-20vh-10vm1t-testpmd-reconf"
-  layout:
-    title: "dot1qip4vxlan-l2bd-{Y}ch-1ach-{2XY}vh-{XY}vm-testpmd"
-    layout: "plot-throughput"
-
-- type: "plot"
-  title: "NFV Effective Blocked Time: 2n-skx-xxv710-imix-4t2c-dot1qip4vxlan-l2bd-{Y}ch-1ach-{2XY}vh-{XY}vm-reconf"
-  algorithm: "plot_nf_reconf_box_name"
-  output-file: "{DIR[STATIC,VPP]}/2n-skx-xxv710-imix-4t2c-dot1qip4vxlan-l2bd-reconf"
-  data: "plot-vpp-nfv-reconf-2n-skx"
-  include:
-    - "Tests.Vpp.Perf.Nfv Density.Vm Vhost.Chain Dot1Qip4Vxlan.2N-25Ge2P1Xxv710-Avf-Dot1Qip4Vxlan-L2Bd-1Ch-1Ach-2Vh-1Vm1T-Testpmd-Reconf.IMIX-4t2c-avf-dot1qip4vxlan-l2bd-1ch-1ach-2vh-1vm1t-testpmd-reconf"
-    - "Tests.Vpp.Perf.Nfv Density.Vm Vhost.Chain Dot1Qip4Vxlan.2N-25Ge2P1Xxv710-Avf-Dot1Qip4Vxlan-L2Bd-2Ch-1Ach-4Vh-2Vm1T-Testpmd-Reconf.IMIX-4t2c-avf-dot1qip4vxlan-l2bd-2ch-1ach-4vh-2vm1t-testpmd-reconf"
-    - "Tests.Vpp.Perf.Nfv Density.Vm Vhost.Chain Dot1Qip4Vxlan.2N-25Ge2P1Xxv710-Avf-Dot1Qip4Vxlan-L2Bd-4Ch-1Ach-8Vh-4Vm1T-Testpmd-Reconf.IMIX-4t2c-avf-dot1qip4vxlan-l2bd-4ch-1ach-8vh-4vm1t-testpmd-reconf"
-    - "Tests.Vpp.Perf.Nfv Density.Vm Vhost.Chain Dot1Qip4Vxlan.2N-25Ge2P1Xxv710-Avf-Dot1Qip4Vxlan-L2Bd-6Ch-1Ach-12Vh-6Vm1T-Testpmd-Reconf.IMIX-4t2c-avf-dot1qip4vxlan-l2bd-6ch-1ach-12vh-6vm1t-testpmd-reconf"
-    - "Tests.Vpp.Perf.Nfv Density.Vm Vhost.Chain Dot1Qip4Vxlan.2N-25Ge2P1Xxv710-Avf-Dot1Qip4Vxlan-L2Bd-8Ch-1Ach-16Vh-8Vm1T-Testpmd-Reconf.IMIX-4t2c-avf-dot1qip4vxlan-l2bd-8ch-1ach-16vh-8vm1t-testpmd-reconf"
-    - "Tests.Vpp.Perf.Nfv Density.Vm Vhost.Chain Dot1Qip4Vxlan.2N-25Ge2P1Xxv710-Avf-Dot1Qip4Vxlan-L2Bd-10Ch-1Ach-20Vh-10Vm1T-Testpmd-Reconf.IMIX-4t2c-avf-dot1qip4vxlan-l2bd-10ch-1ach-20vh-10vm1t-testpmd-reconf"
-  layout:
-    title: "dot1qip4vxlan-l2bd-{Y}ch-1ach-{2XY}vh-{XY}vm-testpmd"
-    layout: "plot-throughput"
-
-- type: "plot"
-  title: "NFV Effective Blocked Time: 2n-skx-xxv710-imix-8t4c-dot1qip4vxlan-l2bd-{Y}ch-1ach-{2XY}vh-{XY}vm-reconf"
+  title: "NFV Effective Blocked Time: 2n-skx-xxv710-imix-{core}-dot1qip4vxlan-l2bd-{Y}ch-1ach-{2XY}vh-{XY}vm-reconf"
   algorithm: "plot_nf_reconf_box_name"
-  output-file: "{DIR[STATIC,VPP]}/2n-skx-xxv710-imix-8t4c-dot1qip4vxlan-l2bd-reconf"
+  output-file: "{DIR[STATIC,VPP]}/2n-skx-xxv710-imix-{core}-dot1qip4vxlan-l2bd-reconf"
   data: "plot-vpp-nfv-reconf-2n-skx"
+  core: ["2t1c", "4t2c", "8t4c"]
   include:
-    - "Tests.Vpp.Perf.Nfv Density.Vm Vhost.Chain Dot1Qip4Vxlan.2N-25Ge2P1Xxv710-Avf-Dot1Qip4Vxlan-L2Bd-1Ch-1Ach-2Vh-1Vm1T-Testpmd-Reconf.IMIX-8t4c-avf-dot1qip4vxlan-l2bd-1ch-1ach-2vh-1vm1t-testpmd-reconf"
-    - "Tests.Vpp.Perf.Nfv Density.Vm Vhost.Chain Dot1Qip4Vxlan.2N-25Ge2P1Xxv710-Avf-Dot1Qip4Vxlan-L2Bd-2Ch-1Ach-4Vh-2Vm1T-Testpmd-Reconf.IMIX-8t4c-avf-dot1qip4vxlan-l2bd-2ch-1ach-4vh-2vm1t-testpmd-reconf"
-    - "Tests.Vpp.Perf.Nfv Density.Vm Vhost.Chain Dot1Qip4Vxlan.2N-25Ge2P1Xxv710-Avf-Dot1Qip4Vxlan-L2Bd-4Ch-1Ach-8Vh-4Vm1T-Testpmd-Reconf.IMIX-8t4c-avf-dot1qip4vxlan-l2bd-4ch-1ach-8vh-4vm1t-testpmd-reconf"
-    - "Tests.Vpp.Perf.Nfv Density.Vm Vhost.Chain Dot1Qip4Vxlan.2N-25Ge2P1Xxv710-Avf-Dot1Qip4Vxlan-L2Bd-6Ch-1Ach-12Vh-6Vm1T-Testpmd-Reconf.IMIX-8t4c-avf-dot1qip4vxlan-l2bd-6ch-1ach-12vh-6vm1t-testpmd-reconf"
-    - "Tests.Vpp.Perf.Nfv Density.Vm Vhost.Chain Dot1Qip4Vxlan.2N-25Ge2P1Xxv710-Avf-Dot1Qip4Vxlan-L2Bd-8Ch-1Ach-16Vh-8Vm1T-Testpmd-Reconf.IMIX-8t4c-avf-dot1qip4vxlan-l2bd-8ch-1ach-16vh-8vm1t-testpmd-reconf"
-    - "Tests.Vpp.Perf.Nfv Density.Vm Vhost.Chain Dot1Qip4Vxlan.2N-25Ge2P1Xxv710-Avf-Dot1Qip4Vxlan-L2Bd-10Ch-1Ach-20Vh-10Vm1T-Testpmd-Reconf.IMIX-8t4c-avf-dot1qip4vxlan-l2bd-10ch-1ach-20vh-10vm1t-testpmd-reconf"
+    - "Tests.Vpp.Perf.Nfv Density.Vm Vhost.Chain Dot1Qip4Vxlan.2N-25Ge2P1Xxv710-Avf-Dot1Qip4Vxlan-L2Bd-1Ch-1Ach-2Vh-1Vm1T-Testpmd-Reconf.IMIX-{core}-avf-dot1qip4vxlan-l2bd-1ch-1ach-2vh-1vm1t-testpmd-reconf"
+    - "Tests.Vpp.Perf.Nfv Density.Vm Vhost.Chain Dot1Qip4Vxlan.2N-25Ge2P1Xxv710-Avf-Dot1Qip4Vxlan-L2Bd-2Ch-1Ach-4Vh-2Vm1T-Testpmd-Reconf.IMIX-{core}-avf-dot1qip4vxlan-l2bd-2ch-1ach-4vh-2vm1t-testpmd-reconf"
+    - "Tests.Vpp.Perf.Nfv Density.Vm Vhost.Chain Dot1Qip4Vxlan.2N-25Ge2P1Xxv710-Avf-Dot1Qip4Vxlan-L2Bd-4Ch-1Ach-8Vh-4Vm1T-Testpmd-Reconf.IMIX-{core}-avf-dot1qip4vxlan-l2bd-4ch-1ach-8vh-4vm1t-testpmd-reconf"
+    - "Tests.Vpp.Perf.Nfv Density.Vm Vhost.Chain Dot1Qip4Vxlan.2N-25Ge2P1Xxv710-Avf-Dot1Qip4Vxlan-L2Bd-6Ch-1Ach-12Vh-6Vm1T-Testpmd-Reconf.IMIX-{core}-avf-dot1qip4vxlan-l2bd-6ch-1ach-12vh-6vm1t-testpmd-reconf"
+    - "Tests.Vpp.Perf.Nfv Density.Vm Vhost.Chain Dot1Qip4Vxlan.2N-25Ge2P1Xxv710-Avf-Dot1Qip4Vxlan-L2Bd-8Ch-1Ach-16Vh-8Vm1T-Testpmd-Reconf.IMIX-{core}-avf-dot1qip4vxlan-l2bd-8ch-1ach-16vh-8vm1t-testpmd-reconf"
+    - "Tests.Vpp.Perf.Nfv Density.Vm Vhost.Chain Dot1Qip4Vxlan.2N-25Ge2P1Xxv710-Avf-Dot1Qip4Vxlan-L2Bd-10Ch-1Ach-20Vh-10Vm1T-Testpmd-Reconf.IMIX-{core}-avf-dot1qip4vxlan-l2bd-10ch-1ach-20vh-10vm1t-testpmd-reconf"
   layout:
     title: "dot1qip4vxlan-l2bd-{Y}ch-1ach-{2XY}vh-{XY}vm-testpmd"
     layout: "plot-throughput"
 # Reconf tests 2n-clx
 
 - type: "plot"
-  title: "NFV Effective Blocked Time: 2n-clx-xxv710-imix-2t1c-dot1qip4vxlan-l2bd-{Y}ch-1ach-{2XY}vh-{XY}vm-reconf"
-  algorithm: "plot_nf_reconf_box_name"
-  output-file: "{DIR[STATIC,VPP]}/2n-clx-xxv710-imix-2t1c-dot1qip4vxlan-l2bd-reconf"
-  data: "plot-vpp-nfv-reconf-2n-clx"
-  include:
-    - "Tests.Vpp.Perf.Nfv Density.Vm Vhost.Chain Dot1Qip4Vxlan.2N-25Ge2P1Xxv710-Avf-Dot1Qip4Vxlan-L2Bd-1Ch-1Ach-2Vh-1Vm1T-Testpmd-Reconf.IMIX-2t1c-avf-dot1qip4vxlan-l2bd-1ch-1ach-2vh-1vm1t-testpmd-reconf"
-    - "Tests.Vpp.Perf.Nfv Density.Vm Vhost.Chain Dot1Qip4Vxlan.2N-25Ge2P1Xxv710-Avf-Dot1Qip4Vxlan-L2Bd-2Ch-1Ach-4Vh-2Vm1T-Testpmd-Reconf.IMIX-2t1c-avf-dot1qip4vxlan-l2bd-2ch-1ach-4vh-2vm1t-testpmd-reconf"
-    - "Tests.Vpp.Perf.Nfv Density.Vm Vhost.Chain Dot1Qip4Vxlan.2N-25Ge2P1Xxv710-Avf-Dot1Qip4Vxlan-L2Bd-4Ch-1Ach-8Vh-4Vm1T-Testpmd-Reconf.IMIX-2t1c-avf-dot1qip4vxlan-l2bd-4ch-1ach-8vh-4vm1t-testpmd-reconf"
-    - "Tests.Vpp.Perf.Nfv Density.Vm Vhost.Chain Dot1Qip4Vxlan.2N-25Ge2P1Xxv710-Avf-Dot1Qip4Vxlan-L2Bd-6Ch-1Ach-12Vh-6Vm1T-Testpmd-Reconf.IMIX-2t1c-avf-dot1qip4vxlan-l2bd-6ch-1ach-12vh-6vm1t-testpmd-reconf"
-  layout:
-    title: "dot1qip4vxlan-l2bd-{Y}ch-1ach-{2XY}vh-{XY}vm-testpmd"
-    layout: "plot-throughput"
-
-- type: "plot"
-  title: "NFV Effective Blocked Time: 2n-clx-xxv710-imix-4t2c-dot1qip4vxlan-l2bd-{Y}ch-1ach-{2XY}vh-{XY}vm-reconf"
-  algorithm: "plot_nf_reconf_box_name"
-  output-file: "{DIR[STATIC,VPP]}/2n-clx-xxv710-imix-4t2c-dot1qip4vxlan-l2bd-reconf"
-  data: "plot-vpp-nfv-reconf-2n-clx"
-  include:
-    - "Tests.Vpp.Perf.Nfv Density.Vm Vhost.Chain Dot1Qip4Vxlan.2N-25Ge2P1Xxv710-Avf-Dot1Qip4Vxlan-L2Bd-1Ch-1Ach-2Vh-1Vm1T-Testpmd-Reconf.IMIX-4t2c-avf-dot1qip4vxlan-l2bd-1ch-1ach-2vh-1vm1t-testpmd-reconf"
-    - "Tests.Vpp.Perf.Nfv Density.Vm Vhost.Chain Dot1Qip4Vxlan.2N-25Ge2P1Xxv710-Avf-Dot1Qip4Vxlan-L2Bd-2Ch-1Ach-4Vh-2Vm1T-Testpmd-Reconf.IMIX-4t2c-avf-dot1qip4vxlan-l2bd-2ch-1ach-4vh-2vm1t-testpmd-reconf"
-    - "Tests.Vpp.Perf.Nfv Density.Vm Vhost.Chain Dot1Qip4Vxlan.2N-25Ge2P1Xxv710-Avf-Dot1Qip4Vxlan-L2Bd-4Ch-1Ach-8Vh-4Vm1T-Testpmd-Reconf.IMIX-4t2c-avf-dot1qip4vxlan-l2bd-4ch-1ach-8vh-4vm1t-testpmd-reconf"
-    - "Tests.Vpp.Perf.Nfv Density.Vm Vhost.Chain Dot1Qip4Vxlan.2N-25Ge2P1Xxv710-Avf-Dot1Qip4Vxlan-L2Bd-6Ch-1Ach-12Vh-6Vm1T-Testpmd-Reconf.IMIX-4t2c-avf-dot1qip4vxlan-l2bd-6ch-1ach-12vh-6vm1t-testpmd-reconf"
-  layout:
-    title: "dot1qip4vxlan-l2bd-{Y}ch-1ach-{2XY}vh-{XY}vm-testpmd"
-    layout: "plot-throughput"
-
-- type: "plot"
-  title: "NFV Effective Blocked Time: 2n-clx-xxv710-imix-8t4c-dot1qip4vxlan-l2bd-{Y}ch-1ach-{2XY}vh-{XY}vm-reconf"
+  title: "NFV Effective Blocked Time: 2n-clx-xxv710-imix-{core}-dot1qip4vxlan-l2bd-{Y}ch-1ach-{2XY}vh-{XY}vm-reconf"
   algorithm: "plot_nf_reconf_box_name"
-  output-file: "{DIR[STATIC,VPP]}/2n-clx-xxv710-imix-8t4c-dot1qip4vxlan-l2bd-reconf"
+  output-file: "{DIR[STATIC,VPP]}/2n-clx-xxv710-imix-{core}-dot1qip4vxlan-l2bd-reconf"
   data: "plot-vpp-nfv-reconf-2n-clx"
+  core: ["2t1c", "4t2c", "8t4c"]
   include:
-    - "Tests.Vpp.Perf.Nfv Density.Vm Vhost.Chain Dot1Qip4Vxlan.2N-25Ge2P1Xxv710-Avf-Dot1Qip4Vxlan-L2Bd-1Ch-1Ach-2Vh-1Vm1T-Testpmd-Reconf.IMIX-8t4c-avf-dot1qip4vxlan-l2bd-1ch-1ach-2vh-1vm1t-testpmd-reconf"
-    - "Tests.Vpp.Perf.Nfv Density.Vm Vhost.Chain Dot1Qip4Vxlan.2N-25Ge2P1Xxv710-Avf-Dot1Qip4Vxlan-L2Bd-2Ch-1Ach-4Vh-2Vm1T-Testpmd-Reconf.IMIX-8t4c-avf-dot1qip4vxlan-l2bd-2ch-1ach-4vh-2vm1t-testpmd-reconf"
-    - "Tests.Vpp.Perf.Nfv Density.Vm Vhost.Chain Dot1Qip4Vxlan.2N-25Ge2P1Xxv710-Avf-Dot1Qip4Vxlan-L2Bd-4Ch-1Ach-8Vh-4Vm1T-Testpmd-Reconf.IMIX-8t4c-avf-dot1qip4vxlan-l2bd-4ch-1ach-8vh-4vm1t-testpmd-reconf"
-    - "Tests.Vpp.Perf.Nfv Density.Vm Vhost.Chain Dot1Qip4Vxlan.2N-25Ge2P1Xxv710-Avf-Dot1Qip4Vxlan-L2Bd-6Ch-1Ach-12Vh-6Vm1T-Testpmd-Reconf.IMIX-8t4c-avf-dot1qip4vxlan-l2bd-6ch-1ach-12vh-6vm1t-testpmd-reconf"
+    - "Tests.Vpp.Perf.Nfv Density.Vm Vhost.Chain Dot1Qip4Vxlan.2N-25Ge2P1Xxv710-Avf-Dot1Qip4Vxlan-L2Bd-1Ch-1Ach-2Vh-1Vm1T-Testpmd-Reconf.IMIX-{core}-avf-dot1qip4vxlan-l2bd-1ch-1ach-2vh-1vm1t-testpmd-reconf"
+    - "Tests.Vpp.Perf.Nfv Density.Vm Vhost.Chain Dot1Qip4Vxlan.2N-25Ge2P1Xxv710-Avf-Dot1Qip4Vxlan-L2Bd-2Ch-1Ach-4Vh-2Vm1T-Testpmd-Reconf.IMIX-{core}-avf-dot1qip4vxlan-l2bd-2ch-1ach-4vh-2vm1t-testpmd-reconf"
+    - "Tests.Vpp.Perf.Nfv Density.Vm Vhost.Chain Dot1Qip4Vxlan.2N-25Ge2P1Xxv710-Avf-Dot1Qip4Vxlan-L2Bd-4Ch-1Ach-8Vh-4Vm1T-Testpmd-Reconf.IMIX-{core}-avf-dot1qip4vxlan-l2bd-4ch-1ach-8vh-4vm1t-testpmd-reconf"
+    - "Tests.Vpp.Perf.Nfv Density.Vm Vhost.Chain Dot1Qip4Vxlan.2N-25Ge2P1Xxv710-Avf-Dot1Qip4Vxlan-L2Bd-6Ch-1Ach-12Vh-6Vm1T-Testpmd-Reconf.IMIX-{core}-avf-dot1qip4vxlan-l2bd-6ch-1ach-12vh-6vm1t-testpmd-reconf"
   layout:
     title: "dot1qip4vxlan-l2bd-{Y}ch-1ach-{2XY}vh-{XY}vm-testpmd"
     layout: "plot-throughput"
 # Reconf tests 3n-hsw
 
 - type: "plot"
-  title: "Effective Blocked Time: 3n-hsw-xl710-64b-1t1c-ethip4ipsec4tnlsw-1atnl-ip4base-reconf"
-  algorithm: "plot_nf_reconf_box_name"
-  output-file: "{DIR[STATIC,VPP]}/3n-hsw-xl710-64b-1t1c-ethip4ipsec4tnlsw-1atnl-ip4base-reconf"
-  data: "plot-vpp-ipsec-reconf-3n-hsw"
-  include:
-    - "Tests.Vpp.Perf.Crypto.40Ge2P1Xl710-Ethip4Ipsec4Tnlsw-1Atnl-Ip4Base-Int-Aes128Cbc-Hmac256Sha-Reconf.64B-1t1c-ethip4ipsec4tnlsw-1atnl-ip4base-int-aes128cbc-hmac256sha-reconf"
-    - "Tests.Vpp.Perf.Crypto.40Ge2P1Xl710-Ethip4Ipsec4Tnlsw-1Atnl-Ip4Base-Int-Aes128Cbc-Hmac512Sha-Reconf.64B-1t1c-ethip4ipsec4tnlsw-1atnl-ip4base-int-aes128cbc-hmac512sha-reconf"
-    - "Tests.Vpp.Perf.Crypto.40Ge2P1Xl710-Ethip4Ipsec4Tnlsw-1Atnl-Ip4Base-Int-Aes128Gcm-Reconf.64B-1t1c-ethip4ipsec4tnlsw-1atnl-ip4base-int-aes128gcm-reconf"
-    - "Tests.Vpp.Perf.Crypto.40Ge2P1Xl710-Ethip4Ipsec4Tnlsw-1Atnl-Ip4Base-Int-Aes256Gcm-Reconf.64B-1t1c-ethip4ipsec4tnlsw-1atnl-ip4base-int-aes256gcm-reconf"
-  layout:
-    title: "ethip4ipsec4tnlsw-1atnl-ip4base"
-    layout: "plot-throughput"
-
-- type: "plot"
-  title: "Effective Blocked Time: 3n-hsw-xl710-64b-1t1c-ethip4ipsec1000tnlsw-1atnl-ip4base-reconf"
-  algorithm: "plot_nf_reconf_box_name"
-  output-file: "{DIR[STATIC,VPP]}/3n-hsw-xl710-64b-1t1c-ethip4ipsec1000tnlsw-1atnl-ip4base-reconf"
-  data: "plot-vpp-ipsec-reconf-3n-hsw"
-  include:
-    - "Tests.Vpp.Perf.Crypto.40Ge2P1Xl710-Ethip4Ipsec1000Tnlsw-1Atnl-Ip4Base-Int-Aes128Cbc-Hmac256Sha-Reconf.64B-1t1c-ethip4ipsec1000tnlsw-1atnl-ip4base-int-aes128cbc-hmac256sha-reconf"
-    - "Tests.Vpp.Perf.Crypto.40Ge2P1Xl710-Ethip4Ipsec1000Tnlsw-1Atnl-Ip4Base-Int-Aes128Cbc-Hmac512Sha-Reconf.64B-1t1c-ethip4ipsec1000tnlsw-1atnl-ip4base-int-aes128cbc-hmac512sha-reconf"
-    - "Tests.Vpp.Perf.Crypto.40Ge2P1Xl710-Ethip4Ipsec1000Tnlsw-1Atnl-Ip4Base-Int-Aes128Gcm-Reconf.64B-1t1c-ethip4ipsec1000tnlsw-1atnl-ip4base-int-aes128gcm-reconf"
-    - "Tests.Vpp.Perf.Crypto.40Ge2P1Xl710-Ethip4Ipsec1000Tnlsw-1Atnl-Ip4Base-Int-Aes256Gcm-Reconf.64B-1t1c-ethip4ipsec1000tnlsw-1atnl-ip4base-int-aes256gcm-reconf"
-  layout:
-    title: "ethip4ipsec1000tnlsw-1atnl-ip4base"
-    layout: "plot-throughput"
-
-- type: "plot"
-  title: "Effective Blocked Time: 3n-hsw-xl710-64b-1t1c-ethip4ipsec60000tnlsw-1atnl-ip4base-reconf"
-  algorithm: "plot_nf_reconf_box_name"
-  output-file: "{DIR[STATIC,VPP]}/3n-hsw-xl710-64b-1t1c-ethip4ipsec60000tnlsw-1atnl-ip4base-reconf"
-  data: "plot-vpp-ipsec-reconf-3n-hsw"
-  include:
-    - "Tests.Vpp.Perf.Crypto.40Ge2P1Xl710-Ethip4Ipsec60000Tnlsw-1Atnl-Ip4Base-Int-Aes128Cbc-Hmac256Sha-Reconf.64B-1t1c-ethip4ipsec60000tnlsw-1atnl-ip4base-int-aes128cbc-hmac256sha-reconf"
-    - "Tests.Vpp.Perf.Crypto.40Ge2P1Xl710-Ethip4Ipsec60000Tnlsw-1Atnl-Ip4Base-Int-Aes128Cbc-Hmac512Sha-Reconf.64B-1t1c-ethip4ipsec60000tnlsw-1atnl-ip4base-int-aes128cbc-hmac512sha-reconf"
-    - "Tests.Vpp.Perf.Crypto.40Ge2P1Xl710-Ethip4Ipsec60000Tnlsw-1Atnl-Ip4Base-Int-Aes128Gcm-Reconf.64B-1t1c-ethip4ipsec60000tnlsw-1atnl-ip4base-int-aes128gcm-reconf"
-    - "Tests.Vpp.Perf.Crypto.40Ge2P1Xl710-Ethip4Ipsec60000Tnlsw-1Atnl-Ip4Base-Int-Aes256Gcm-Reconf.64B-1t1c-ethip4ipsec60000tnlsw-1atnl-ip4base-int-aes256gcm-reconf"
-  layout:
-    title: "ethip4ipsec60000tnlsw-1atnl-ip4base"
-    layout: "plot-throughput"
-
-- type: "plot"
-  title: "Effective Blocked Time: 3n-hsw-xl710-64b-2t2c-ethip4ipsec4tnlsw-1atnl-ip4base-reconf"
-  algorithm: "plot_nf_reconf_box_name"
-  output-file: "{DIR[STATIC,VPP]}/3n-hsw-xl710-64b-2t2c-ethip4ipsec4tnlsw-1atnl-ip4base-reconf"
-  data: "plot-vpp-ipsec-reconf-3n-hsw"
-  include:
-    - "Tests.Vpp.Perf.Crypto.40Ge2P1Xl710-Ethip4Ipsec4Tnlsw-1Atnl-Ip4Base-Int-Aes128Cbc-Hmac256Sha-Reconf.64B-2t2c-ethip4ipsec4tnlsw-1atnl-ip4base-int-aes128cbc-hmac256sha-reconf"
-    - "Tests.Vpp.Perf.Crypto.40Ge2P1Xl710-Ethip4Ipsec4Tnlsw-1Atnl-Ip4Base-Int-Aes128Cbc-Hmac512Sha-Reconf.64B-2t2c-ethip4ipsec4tnlsw-1atnl-ip4base-int-aes128cbc-hmac512sha-reconf"
-    - "Tests.Vpp.Perf.Crypto.40Ge2P1Xl710-Ethip4Ipsec4Tnlsw-1Atnl-Ip4Base-Int-Aes128Gcm-Reconf.64B-2t2c-ethip4ipsec4tnlsw-1atnl-ip4base-int-aes128gcm-reconf"
-    - "Tests.Vpp.Perf.Crypto.40Ge2P1Xl710-Ethip4Ipsec4Tnlsw-1Atnl-Ip4Base-Int-Aes256Gcm-Reconf.64B-2t2c-ethip4ipsec4tnlsw-1atnl-ip4base-int-aes256gcm-reconf"
-  layout:
-    title: "ethip4ipsec4tnlsw-1atnl-ip4base"
-    layout: "plot-throughput"
-
-- type: "plot"
-  title: "Effective Blocked Time: 3n-hsw-xl710-64b-2t2c-ethip4ipsec1000tnlsw-1atnl-ip4base-reconf"
-  algorithm: "plot_nf_reconf_box_name"
-  output-file: "{DIR[STATIC,VPP]}/3n-hsw-xl710-64b-2t2c-ethip4ipsec1000tnlsw-1atnl-ip4base-reconf"
-  data: "plot-vpp-ipsec-reconf-3n-hsw"
-  include:
-    - "Tests.Vpp.Perf.Crypto.40Ge2P1Xl710-Ethip4Ipsec1000Tnlsw-1Atnl-Ip4Base-Int-Aes128Cbc-Hmac256Sha-Reconf.64B-2t2c-ethip4ipsec1000tnlsw-1atnl-ip4base-int-aes128cbc-hmac256sha-reconf"
-    - "Tests.Vpp.Perf.Crypto.40Ge2P1Xl710-Ethip4Ipsec1000Tnlsw-1Atnl-Ip4Base-Int-Aes128Cbc-Hmac512Sha-Reconf.64B-2t2c-ethip4ipsec1000tnlsw-1atnl-ip4base-int-aes128cbc-hmac512sha-reconf"
-    - "Tests.Vpp.Perf.Crypto.40Ge2P1Xl710-Ethip4Ipsec1000Tnlsw-1Atnl-Ip4Base-Int-Aes128Gcm-Reconf.64B-2t2c-ethip4ipsec1000tnlsw-1atnl-ip4base-int-aes128gcm-reconf"
-    - "Tests.Vpp.Perf.Crypto.40Ge2P1Xl710-Ethip4Ipsec1000Tnlsw-1Atnl-Ip4Base-Int-Aes256Gcm-Reconf.64B-2t2c-ethip4ipsec1000tnlsw-1atnl-ip4base-int-aes256gcm-reconf"
-  layout:
-    title: "ethip4ipsec1000tnlsw-1atnl-ip4base"
-    layout: "plot-throughput"
-
-- type: "plot"
-  title: "Effective Blocked Time: 3n-hsw-xl710-64b-2t2c-ethip4ipsec60000tnlsw-1atnl-ip4base-reconf"
-  algorithm: "plot_nf_reconf_box_name"
-  output-file: "{DIR[STATIC,VPP]}/3n-hsw-xl710-64b-2t2c-ethip4ipsec60000tnlsw-1atnl-ip4base-reconf"
-  data: "plot-vpp-ipsec-reconf-3n-hsw"
-  include:
-    - "Tests.Vpp.Perf.Crypto.40Ge2P1Xl710-Ethip4Ipsec60000Tnlsw-1Atnl-Ip4Base-Int-Aes128Cbc-Hmac256Sha-Reconf.64B-2t2c-ethip4ipsec60000tnlsw-1atnl-ip4base-int-aes128cbc-hmac256sha-reconf"
-    - "Tests.Vpp.Perf.Crypto.40Ge2P1Xl710-Ethip4Ipsec60000Tnlsw-1Atnl-Ip4Base-Int-Aes128Cbc-Hmac512Sha-Reconf.64B-2t2c-ethip4ipsec60000tnlsw-1atnl-ip4base-int-aes128cbc-hmac512sha-reconf"
-    - "Tests.Vpp.Perf.Crypto.40Ge2P1Xl710-Ethip4Ipsec60000Tnlsw-1Atnl-Ip4Base-Int-Aes128Gcm-Reconf.64B-2t2c-ethip4ipsec60000tnlsw-1atnl-ip4base-int-aes128gcm-reconf"
-    - "Tests.Vpp.Perf.Crypto.40Ge2P1Xl710-Ethip4Ipsec60000Tnlsw-1Atnl-Ip4Base-Int-Aes256Gcm-Reconf.64B-2t2c-ethip4ipsec60000tnlsw-1atnl-ip4base-int-aes256gcm-reconf"
-  layout:
-    title: "ethip4ipsec60000tnlsw-1atnl-ip4base"
-    layout: "plot-throughput"
-
-- type: "plot"
-  title: "Effective Blocked Time: 3n-hsw-xl710-64b-4t4c-ethip4ipsec4tnlsw-1atnl-ip4base-reconf"
+  title: "Effective Blocked Time: 3n-hsw-xl710-64b-{core}-ethip4ipsec4tnlsw-1atnl-ip4base-reconf"
   algorithm: "plot_nf_reconf_box_name"
-  output-file: "{DIR[STATIC,VPP]}/3n-hsw-xl710-64b-4t4c-ethip4ipsec4tnlsw-1atnl-ip4base-reconf"
+  output-file: "{DIR[STATIC,VPP]}/3n-hsw-xl710-64b-{core}-ethip4ipsec4tnlsw-1atnl-ip4base-reconf"
   data: "plot-vpp-ipsec-reconf-3n-hsw"
+  core: ["1t1c", "2t2c", "4t4c"]
   include:
-    - "Tests.Vpp.Perf.Crypto.40Ge2P1Xl710-Ethip4Ipsec4Tnlsw-1Atnl-Ip4Base-Int-Aes128Cbc-Hmac256Sha-Reconf.64B-4t4c-ethip4ipsec4tnlsw-1atnl-ip4base-int-aes128cbc-hmac256sha-reconf"
-    - "Tests.Vpp.Perf.Crypto.40Ge2P1Xl710-Ethip4Ipsec4Tnlsw-1Atnl-Ip4Base-Int-Aes128Cbc-Hmac512Sha-Reconf.64B-4t4c-ethip4ipsec4tnlsw-1atnl-ip4base-int-aes128cbc-hmac512sha-reconf"
-    - "Tests.Vpp.Perf.Crypto.40Ge2P1Xl710-Ethip4Ipsec4Tnlsw-1Atnl-Ip4Base-Int-Aes128Gcm-Reconf.64B-4t4c-ethip4ipsec4tnlsw-1atnl-ip4base-int-aes128gcm-reconf"
-    - "Tests.Vpp.Perf.Crypto.40Ge2P1Xl710-Ethip4Ipsec4Tnlsw-1Atnl-Ip4Base-Int-Aes256Gcm-Reconf.64B-4t4c-ethip4ipsec4tnlsw-1atnl-ip4base-int-aes256gcm-reconf"
+    - "Tests.Vpp.Perf.Crypto.40Ge2P1Xl710-Ethip4Ipsec4Tnlsw-1Atnl-Ip4Base-Int-Aes128Cbc-Hmac256Sha-Reconf.64B-{core}-ethip4ipsec4tnlsw-1atnl-ip4base-int-aes128cbc-hmac256sha-reconf"
+    - "Tests.Vpp.Perf.Crypto.40Ge2P1Xl710-Ethip4Ipsec4Tnlsw-1Atnl-Ip4Base-Int-Aes128Cbc-Hmac512Sha-Reconf.64B-{core}-ethip4ipsec4tnlsw-1atnl-ip4base-int-aes128cbc-hmac512sha-reconf"
+    - "Tests.Vpp.Perf.Crypto.40Ge2P1Xl710-Ethip4Ipsec4Tnlsw-1Atnl-Ip4Base-Int-Aes128Gcm-Reconf.64B-{core}-ethip4ipsec4tnlsw-1atnl-ip4base-int-aes128gcm-reconf"
+    - "Tests.Vpp.Perf.Crypto.40Ge2P1Xl710-Ethip4Ipsec4Tnlsw-1Atnl-Ip4Base-Int-Aes256Gcm-Reconf.64B-{core}-ethip4ipsec4tnlsw-1atnl-ip4base-int-aes256gcm-reconf"
   layout:
     title: "ethip4ipsec4tnlsw-1atnl-ip4base"
     layout: "plot-throughput"
 
 - type: "plot"
-  title: "Effective Blocked Time: 3n-hsw-xl710-64b-4t4c-ethip4ipsec1000tnlsw-1atnl-ip4base-reconf"
+  title: "Effective Blocked Time: 3n-hsw-xl710-64b-{core}-ethip4ipsec1000tnlsw-1atnl-ip4base-reconf"
   algorithm: "plot_nf_reconf_box_name"
-  output-file: "{DIR[STATIC,VPP]}/3n-hsw-xl710-64b-4t4c-ethip4ipsec1000tnlsw-1atnl-ip4base-reconf"
+  output-file: "{DIR[STATIC,VPP]}/3n-hsw-xl710-64b-{core}-ethip4ipsec1000tnlsw-1atnl-ip4base-reconf"
   data: "plot-vpp-ipsec-reconf-3n-hsw"
+  core: ["1t1c", "2t2c", "4t4c"]
   include:
-    - "Tests.Vpp.Perf.Crypto.40Ge2P1Xl710-Ethip4Ipsec1000Tnlsw-1Atnl-Ip4Base-Int-Aes128Cbc-Hmac256Sha-Reconf.64B-4t4c-ethip4ipsec1000tnlsw-1atnl-ip4base-int-aes128cbc-hmac256sha-reconf"
-    - "Tests.Vpp.Perf.Crypto.40Ge2P1Xl710-Ethip4Ipsec1000Tnlsw-1Atnl-Ip4Base-Int-Aes128Cbc-Hmac512Sha-Reconf.64B-4t4c-ethip4ipsec1000tnlsw-1atnl-ip4base-int-aes128cbc-hmac512sha-reconf"
-    - "Tests.Vpp.Perf.Crypto.40Ge2P1Xl710-Ethip4Ipsec1000Tnlsw-1Atnl-Ip4Base-Int-Aes128Gcm-Reconf.64B-4t4c-ethip4ipsec1000tnlsw-1atnl-ip4base-int-aes128gcm-reconf"
-    - "Tests.Vpp.Perf.Crypto.40Ge2P1Xl710-Ethip4Ipsec1000Tnlsw-1Atnl-Ip4Base-Int-Aes256Gcm-Reconf.64B-4t4c-ethip4ipsec1000tnlsw-1atnl-ip4base-int-aes256gcm-reconf"
+    - "Tests.Vpp.Perf.Crypto.40Ge2P1Xl710-Ethip4Ipsec1000Tnlsw-1Atnl-Ip4Base-Int-Aes128Cbc-Hmac256Sha-Reconf.64B-{core}-ethip4ipsec1000tnlsw-1atnl-ip4base-int-aes128cbc-hmac256sha-reconf"
+    - "Tests.Vpp.Perf.Crypto.40Ge2P1Xl710-Ethip4Ipsec1000Tnlsw-1Atnl-Ip4Base-Int-Aes128Cbc-Hmac512Sha-Reconf.64B-{core}-ethip4ipsec1000tnlsw-1atnl-ip4base-int-aes128cbc-hmac512sha-reconf"
+    - "Tests.Vpp.Perf.Crypto.40Ge2P1Xl710-Ethip4Ipsec1000Tnlsw-1Atnl-Ip4Base-Int-Aes128Gcm-Reconf.64B-{core}-ethip4ipsec1000tnlsw-1atnl-ip4base-int-aes128gcm-reconf"
+    - "Tests.Vpp.Perf.Crypto.40Ge2P1Xl710-Ethip4Ipsec1000Tnlsw-1Atnl-Ip4Base-Int-Aes256Gcm-Reconf.64B-{core}-ethip4ipsec1000tnlsw-1atnl-ip4base-int-aes256gcm-reconf"
   layout:
     title: "ethip4ipsec1000tnlsw-1atnl-ip4base"
     layout: "plot-throughput"
 
 - type: "plot"
-  title: "Effective Blocked Time: 3n-hsw-xl710-64b-4t4c-ethip4ipsec60000tnlsw-1atnl-ip4base-reconf"
+  title: "Effective Blocked Time: 3n-hsw-xl710-64b-{core}-ethip4ipsec60000tnlsw-1atnl-ip4base-reconf"
   algorithm: "plot_nf_reconf_box_name"
-  output-file: "{DIR[STATIC,VPP]}/3n-hsw-xl710-64b-4t4c-ethip4ipsec60000tnlsw-1atnl-ip4base-reconf"
+  output-file: "{DIR[STATIC,VPP]}/3n-hsw-xl710-64b-{core}-ethip4ipsec60000tnlsw-1atnl-ip4base-reconf"
   data: "plot-vpp-ipsec-reconf-3n-hsw"
+  core: ["1t1c", "2t2c", "4t4c"]
   include:
-    - "Tests.Vpp.Perf.Crypto.40Ge2P1Xl710-Ethip4Ipsec60000Tnlsw-1Atnl-Ip4Base-Int-Aes128Cbc-Hmac256Sha-Reconf.64B-4t4c-ethip4ipsec60000tnlsw-1atnl-ip4base-int-aes128cbc-hmac256sha-reconf"
-    - "Tests.Vpp.Perf.Crypto.40Ge2P1Xl710-Ethip4Ipsec60000Tnlsw-1Atnl-Ip4Base-Int-Aes128Cbc-Hmac512Sha-Reconf.64B-4t4c-ethip4ipsec60000tnlsw-1atnl-ip4base-int-aes128cbc-hmac512sha-reconf"
-    - "Tests.Vpp.Perf.Crypto.40Ge2P1Xl710-Ethip4Ipsec60000Tnlsw-1Atnl-Ip4Base-Int-Aes128Gcm-Reconf.64B-4t4c-ethip4ipsec60000tnlsw-1atnl-ip4base-int-aes128gcm-reconf"
-    - "Tests.Vpp.Perf.Crypto.40Ge2P1Xl710-Ethip4Ipsec60000Tnlsw-1Atnl-Ip4Base-Int-Aes256Gcm-Reconf.64B-4t4c-ethip4ipsec60000tnlsw-1atnl-ip4base-int-aes256gcm-reconf"
+    - "Tests.Vpp.Perf.Crypto.40Ge2P1Xl710-Ethip4Ipsec60000Tnlsw-1Atnl-Ip4Base-Int-Aes128Cbc-Hmac256Sha-Reconf.64B-{core}-ethip4ipsec60000tnlsw-1atnl-ip4base-int-aes128cbc-hmac256sha-reconf"
+    - "Tests.Vpp.Perf.Crypto.40Ge2P1Xl710-Ethip4Ipsec60000Tnlsw-1Atnl-Ip4Base-Int-Aes128Cbc-Hmac512Sha-Reconf.64B-{core}-ethip4ipsec60000tnlsw-1atnl-ip4base-int-aes128cbc-hmac512sha-reconf"
+    - "Tests.Vpp.Perf.Crypto.40Ge2P1Xl710-Ethip4Ipsec60000Tnlsw-1Atnl-Ip4Base-Int-Aes128Gcm-Reconf.64B-{core}-ethip4ipsec60000tnlsw-1atnl-ip4base-int-aes128gcm-reconf"
+    - "Tests.Vpp.Perf.Crypto.40Ge2P1Xl710-Ethip4Ipsec60000Tnlsw-1Atnl-Ip4Base-Int-Aes256Gcm-Reconf.64B-{core}-ethip4ipsec60000tnlsw-1atnl-ip4base-int-aes256gcm-reconf"
   layout:
     title: "ethip4ipsec60000tnlsw-1atnl-ip4base"
     layout: "plot-throughput"
 
 ###############################################################################
 
-# Plots - NF Density - VSC - MRR IMIX
+# Plots - NF Density - 2n-skx - VSC - MRR IMIX
 - type: "plot"
-  title: "Packet Throughput: eth-l2bd-{Y}ch-{2XY}vh-{XY}vm-vppip4-mrr"
+  title: "Packet Throughput: eth-l2bd-{Y}ch-{2XY}vh-{XY}vm-vppip4-{test_type}"
   algorithm: "plot_nf_heatmap"
-  output-file-type: ".html"
-  output-file: "{DIR[STATIC,VPP]}/l2bd-2n-skx-xxv710-imix-2t1c-base-vsc-mrr"
+  output-file: "{DIR[STATIC,VPP]}/l2bd-2n-skx-xxv710-imix-{core}-base-vsc-{test_type}"
   data: "plot-vpp-nfv-2n-skx-mrr"
-  filter: "'NIC_Intel-XXV710' and
-           'NF_DENSITY' and
-           'VHOST' and
-           not 'VXLAN' and
-           'CHAIN' and
-           'NF_VPPIP4' and
-           'IMIX' and
-           '2T1C' and
-           'MRR'"
-  parameters:
-  - "result"
-  - "name"
-  - "tags"
-  include-tests: "MRR" # "PDR" | "NDR" | "MRR"
+  core: ["2t1c", "4t2c", "8t4c"]
+  test-type: ["mrr", ]
+  include:
+    - "Tests.Vpp.Perf.Nfv Density.Vm Vhost.Chain.2N-25Ge2P1Xxv710-Avf-Eth-L2Bd-1Ch-2Vh-1Vm1T-Vppip4-Mrr.IMIX-{core}-avf-eth-l2bd-1ch-2vh-1vm1t-vppip4-mrr"
+    - "Tests.Vpp.Perf.Nfv Density.Vm Vhost.Chain.2N-25Ge2P1Xxv710-Avf-Eth-L2Bd-1Ch-4Vh-2Vm1T-Vppip4-Mrr.IMIX-{core}-avf-eth-l2bd-1ch-4vh-2vm1t-vppip4-mrr"
+    - "Tests.Vpp.Perf.Nfv Density.Vm Vhost.Chain.2N-25Ge2P1Xxv710-Avf-Eth-L2Bd-1Ch-8Vh-4Vm1T-Vppip4-Mrr.IMIX-{core}-avf-eth-l2bd-1ch-8vh-4vm1t-vppip4-mrr"
+    - "Tests.Vpp.Perf.Nfv Density.Vm Vhost.Chain.2N-25Ge2P1Xxv710-Avf-Eth-L2Bd-1Ch-12Vh-6Vm1T-Vppip4-Mrr.IMIX-{core}-avf-eth-l2bd-1ch-12vh-6vm1t-vppip4-mrr"
+    - "Tests.Vpp.Perf.Nfv Density.Vm Vhost.Chain.2N-25Ge2P1Xxv710-Avf-Eth-L2Bd-2Ch-4Vh-2Vm1T-Vppip4-Mrr.IMIX-{core}-avf-eth-l2bd-2ch-4vh-2vm1t-vppip4-mrr"
+    - "Tests.Vpp.Perf.Nfv Density.Vm Vhost.Chain.2N-25Ge2P1Xxv710-Avf-Eth-L2Bd-2Ch-8Vh-4Vm1T-Vppip4-Mrr.IMIX-{core}-avf-eth-l2bd-2ch-8vh-4vm1t-vppip4-mrr"
+    - "Tests.Vpp.Perf.Nfv Density.Vm Vhost.Chain.2N-25Ge2P1Xxv710-Avf-Eth-L2Bd-4Ch-8Vh-4Vm1T-Vppip4-Mrr.IMIX-{core}-avf-eth-l2bd-4ch-8vh-4vm1t-vppip4-mrr"
+    - "Tests.Vpp.Perf.Nfv Density.Vm Vhost.Chain.2N-25Ge2P1Xxv710-Avf-Eth-L2Bd-6Ch-12Vh-6Vm1T-Vppip4-Mrr.IMIX-{core}-avf-eth-l2bd-6ch-12vh-6vm1t-vppip4-mrr"
   x-axis: "X = VNFs per Service Chain"
   y-axis: "Y = Number of Service Chains"
-  z-axis: "IMIX Packet Throughput (mean MRR) [Mpps]"
+  z-axis: "IMIX Packet Throughput (mean {test_type}) [Mpps]"
   layout:
-    title: "<b>Throughput:</b> eth-l2bd-{Y}ch-{2XY}vh-{XY}vm-vppip4-mrr"
+    title: "<b>Throughput:</b> eth-l2bd-{Y}ch-{2XY}vh-{XY}vm-vppip4-test_type"
     layout: "plot-service-density"
 
+# Plots - NF Density - 2n-skx - VSC - NDRPDR IMIX
 - type: "plot"
-  title: "Packet Throughput: eth-l2bd-{Y}ch-{2XY}vh-{XY}vm-vppip4-mrr"
+  title: "Packet Throughput: eth-l2bd-{Y}ch-{2XY}vh-{XY}vm-vppip4-{test_type}"
   algorithm: "plot_nf_heatmap"
-  output-file-type: ".html"
-  output-file: "{DIR[STATIC,VPP]}/l2bd-2n-skx-xxv710-imix-4t2c-base-vsc-mrr"
-  data: "plot-vpp-nfv-2n-skx-mrr"
-  filter: "'NIC_Intel-XXV710' and
-           'NF_DENSITY' and
-           'VHOST' and
-           not 'VXLAN' and
-           'CHAIN' and
-           'NF_VPPIP4' and
-           'IMIX' and
-           '4T2C' and
-           'MRR'"
-  parameters:
-  - "result"
-  - "name"
-  - "tags"
-  include-tests: "MRR" # "PDR" | "NDR" | "MRR"
+  output-file: "{DIR[STATIC,VPP]}/l2bd-2n-skx-xxv710-imix-{core}-base-vsc-{test_type}"
+  data: "plot-vpp-nfv-2n-skx-ndrpdr"
+  core: ["2t1c", "4t2c", "8t4c"]
+  include:
+    - "Tests.Vpp.Perf.Nfv Density.Vm Vhost.Chain.2N-25Ge2P1Xxv710-Avf-Eth-L2Bd-1Ch-2Vh-1Vm1T-Vppip4-ndrpdr.IMIX-{core}-avf-eth-l2bd-1ch-2vh-1vm1t-vppip4-ndrpdr"
+    - "Tests.Vpp.Perf.Nfv Density.Vm Vhost.Chain.2N-25Ge2P1Xxv710-Avf-Eth-L2Bd-1Ch-4Vh-2Vm1T-Vppip4-ndrpdr.IMIX-{core}-avf-eth-l2bd-1ch-4vh-2vm1t-vppip4-ndrpdr"
+    - "Tests.Vpp.Perf.Nfv Density.Vm Vhost.Chain.2N-25Ge2P1Xxv710-Avf-Eth-L2Bd-1Ch-8Vh-4Vm1T-Vppip4-ndrpdr.IMIX-{core}-avf-eth-l2bd-1ch-8vh-4vm1t-vppip4-ndrpdr"
+    - "Tests.Vpp.Perf.Nfv Density.Vm Vhost.Chain.2N-25Ge2P1Xxv710-Avf-Eth-L2Bd-1Ch-12Vh-6Vm1T-Vppip4-ndrpdr.IMIX-{core}-avf-eth-l2bd-1ch-12vh-6vm1t-vppip4-ndrpdr"
+    - "Tests.Vpp.Perf.Nfv Density.Vm Vhost.Chain.2N-25Ge2P1Xxv710-Avf-Eth-L2Bd-2Ch-4Vh-2Vm1T-Vppip4-ndrpdr.IMIX-{core}-avf-eth-l2bd-2ch-4vh-2vm1t-vppip4-ndrpdr"
+    - "Tests.Vpp.Perf.Nfv Density.Vm Vhost.Chain.2N-25Ge2P1Xxv710-Avf-Eth-L2Bd-2Ch-8Vh-4Vm1T-Vppip4-ndrpdr.IMIX-{core}-avf-eth-l2bd-2ch-8vh-4vm1t-vppip4-ndrpdr"
+    - "Tests.Vpp.Perf.Nfv Density.Vm Vhost.Chain.2N-25Ge2P1Xxv710-Avf-Eth-L2Bd-4Ch-8Vh-4Vm1T-Vppip4-ndrpdr.IMIX-{core}-avf-eth-l2bd-4ch-8vh-4vm1t-vppip4-ndrpdr"
+    - "Tests.Vpp.Perf.Nfv Density.Vm Vhost.Chain.2N-25Ge2P1Xxv710-Avf-Eth-L2Bd-6Ch-12Vh-6Vm1T-Vppip4-ndrpdr.IMIX-{core}-avf-eth-l2bd-6ch-12vh-6vm1t-vppip4-ndrpdr"
   x-axis: "X = VNFs per Service Chain"
   y-axis: "Y = Number of Service Chains"
-  z-axis: "IMIX Packet Throughput (mean MRR) [Mpps]"
+  z-axis: "IMIX Packet Throughput (mean {test_type}) [Mpps]"
   layout:
-    title: "<b>Throughput:</b> eth-l2bd-{Y}ch-{2XY}vh-{XY}vm-vppip4-mrr"
+    title: "<b>Throughput:</b> eth-l2bd-{Y}ch-{2XY}vh-{XY}vm-vppip4-test_type"
     layout: "plot-service-density"
 
+# Plots - NF Density - 2n-skx - VSC vxlan - MRR IMIX
 - type: "plot"
-  title: "Packet Throughput: eth-l2bd-{Y}ch-{2XY}vh-{XY}vm-vppip4-mrr"
+  title: "Packet Throughput: eth-l2bd-{Y}ch-{2XY}vh-{XY}vm-vxlan-vppip4-{test_type}"
   algorithm: "plot_nf_heatmap"
-  output-file-type: ".html"
-  output-file: "{DIR[STATIC,VPP]}/l2bd-2n-skx-xxv710-imix-8t4c-base-vsc-mrr"
+  output-file: "{DIR[STATIC,VPP]}/l2bd-2n-skx-xxv710-imix-{core}-base-vsc-vxlan-{test_type}"
   data: "plot-vpp-nfv-2n-skx-mrr"
-  filter: "'NIC_Intel-XXV710' and
-           'NF_DENSITY' and
-           'VHOST' and
-           not 'VXLAN' and
-           'CHAIN' and
-           'NF_VPPIP4' and
-           'IMIX' and
-           '8T4C' and
-           'MRR'"
-  parameters:
-  - "result"
-  - "name"
-  - "tags"
-  include-tests: "MRR" # "PDR" | "NDR" | "MRR"
+  core: ["2t1c", "4t2c", "8t4c"]
+  test-type: ["mrr", ]
+  include:
+    - "Tests.Vpp.Perf.Nfv Density.Vm Vhost.Chain Dot1Qip4Vxlan.2N-25Ge2P1Xxv710-Avf-Dot1Qip4Vxlan-L2Bd-1Ch-2Vh-1Vm1T-Testpmd-Mrr.IMIX-{core}-avf-dot1qip4vxlan-l2bd-1ch-2vh-1vm1t-testpmd-mrr"
+    - "Tests.Vpp.Perf.Nfv Density.Vm Vhost.Chain Dot1Qip4Vxlan.2N-25Ge2P1Xxv710-Avf-Dot1Qip4Vxlan-L2Bd-2Ch-4Vh-2Vm1T-Testpmd-Mrr.IMIX-{core}-avf-dot1qip4vxlan-l2bd-2ch-4vh-2vm1t-testpmd-mrr"
+    - "Tests.Vpp.Perf.Nfv Density.Vm Vhost.Chain Dot1Qip4Vxlan.2N-25Ge2P1Xxv710-Avf-Dot1Qip4Vxlan-L2Bd-4Ch-8Vh-4Vm1T-Testpmd-Mrr.IMIX-{core}-avf-dot1qip4vxlan-l2bd-4ch-8vh-4vm1t-testpmd-mrr"
+    - "Tests.Vpp.Perf.Nfv Density.Vm Vhost.Chain Dot1Qip4Vxlan.2N-25Ge2P1Xxv710-Avf-Dot1Qip4Vxlan-L2Bd-6Ch-12Vh-6Vm1T-Testpmd-Mrr.IMIX-{core}-avf-dot1qip4vxlan-l2bd-6ch-12vh-6vm1t-testpmd-mrr"
   x-axis: "X = VNFs per Service Chain"
   y-axis: "Y = Number of Service Chains"
-  z-axis: "IMIX Packet Throughput (mean MRR) [Mpps]"
+  z-axis: "IMIX Packet Throughput (mean {test_type}) [Mpps]"
   layout:
-    title: "<b>Throughput:</b> eth-l2bd-{Y}ch-{2XY}vh-{XY}vm-vppip4-mrr"
+    title: "<b>Throughput:</b> eth-l2bd-{Y}ch-{2XY}vh-{XY}vm-vxlan-vppip4-test_type"
     layout: "plot-service-density"
 
-# Plots - NF Density - VSC - NDR IMIX
+# Plots - NF Density - 2n-skx - VSC vxlan - NDRPDR IMIX
 - type: "plot"
-  title: "Packet Throughput: eth-l2bd-{Y}ch-{2XY}vh-{XY}vm-vppip4-ndr"
+  title: "Packet Throughput: eth-l2bd-{Y}ch-{2XY}vh-{XY}vm-vxlan-vppip4-{test_type}"
   algorithm: "plot_nf_heatmap"
-  output-file-type: ".html"
-  output-file: "{DIR[STATIC,VPP]}/l2bd-2n-skx-xxv710-imix-2t1c-base-vsc-ndr"
+  output-file: "{DIR[STATIC,VPP]}/l2bd-2n-skx-xxv710-imix-{core}-base-vsc-vxlan-{test_type}"
   data: "plot-vpp-nfv-2n-skx-ndrpdr"
-  filter: "'NIC_Intel-XXV710' and
-           'NF_DENSITY' and
-           'VHOST' and
-           not 'VXLAN' and
-           'CHAIN' and
-           'NF_VPPIP4' and
-           'IMIX' and
-           '2T1C' and
-           'NDRPDR'"
-  parameters:
-  - "throughput"
-  - "name"
-  - "tags"
-  include-tests: "NDR" # "PDR" | "NDR" | "MRR"
+  core: ["2t1c", "4t2c", "8t4c"]
+  include:
+    - "Tests.Vpp.Perf.Nfv Density.Vm Vhost.Chain Dot1Qip4Vxlan.2N-25Ge2P1Xxv710-Avf-Dot1Qip4Vxlan-L2Bd-1Ch-2Vh-1Vm1T-Testpmd-ndrpdr.IMIX-{core}-avf-dot1qip4vxlan-l2bd-1ch-2vh-1vm1t-testpmd-ndrpdr"
+    - "Tests.Vpp.Perf.Nfv Density.Vm Vhost.Chain Dot1Qip4Vxlan.2N-25Ge2P1Xxv710-Avf-Dot1Qip4Vxlan-L2Bd-2Ch-4Vh-2Vm1T-Testpmd-ndrpdr.IMIX-{core}-avf-dot1qip4vxlan-l2bd-2ch-4vh-2vm1t-testpmd-ndrpdr"
+    - "Tests.Vpp.Perf.Nfv Density.Vm Vhost.Chain Dot1Qip4Vxlan.2N-25Ge2P1Xxv710-Avf-Dot1Qip4Vxlan-L2Bd-4Ch-8Vh-4Vm1T-Testpmd-ndrpdr.IMIX-{core}-avf-dot1qip4vxlan-l2bd-4ch-8vh-4vm1t-testpmd-ndrpdr"
+    - "Tests.Vpp.Perf.Nfv Density.Vm Vhost.Chain Dot1Qip4Vxlan.2N-25Ge2P1Xxv710-Avf-Dot1Qip4Vxlan-L2Bd-6Ch-12Vh-6Vm1T-Testpmd-ndrpdr.IMIX-{core}-avf-dot1qip4vxlan-l2bd-6ch-12vh-6vm1t-testpmd-ndrpdr"
   x-axis: "X = VNFs per Service Chain"
   y-axis: "Y = Number of Service Chains"
-  z-axis: "IMIX Packet Throughput (mean NDR) [Mpps]"
+  z-axis: "IMIX Packet Throughput (mean {test_type}) [Mpps]"
   layout:
-    title: "<b>Throughput:</b> eth-l2bd-{Y}ch-{2XY}vh-{XY}vm-vppip4-ndr"
+    title: "<b>Throughput:</b> eth-l2bd-{Y}ch-{2XY}vh-{XY}vm-vxlan-vppip4-test_type"
     layout: "plot-service-density"
 
-- type: "plot"
-  title: "Packet Throughput: eth-l2bd-{Y}ch-{2XY}vh-{XY}vm-vppip4-ndr"
-  algorithm: "plot_nf_heatmap"
-  output-file-type: ".html"
-  output-file: "{DIR[STATIC,VPP]}/l2bd-2n-skx-xxv710-imix-4t2c-base-vsc-ndr"
-  data: "plot-vpp-nfv-2n-skx-ndrpdr"
-  filter: "'NIC_Intel-XXV710' and
-           'NF_DENSITY' and
-           'VHOST' and
-           not 'VXLAN' and
-           'CHAIN' and
-           'NF_VPPIP4' and
-           'IMIX' and
-           '4T2C' and
-           'NDRPDR'"
-  parameters:
-  - "throughput"
-  - "name"
-  - "tags"
-  include-tests: "NDR" # "PDR" | "NDR" | "MRR"
-  x-axis: "X = VNFs per Service Chain"
-  y-axis: "Y = Number of Service Chains"
-  z-axis: "IMIX Packet Throughput (mean NDR) [Mpps]"
-  layout:
-    title: "<b>Throughput:</b> eth-l2bd-{Y}ch-{2XY}vh-{XY}vm-vppip4-ndr"
-    layout: "plot-service-density"
+###############################################################################
 
+# Plots - NF Density - 2n-skx - CSC - MRR IMIX
 - type: "plot"
-  title: "Packet Throughput: eth-l2bd-{Y}ch-{2XY}vh-{XY}vm-vppip4-ndr"
+  title: "Packet Throughput: eth-l2bd-{Y}ch-{2XY}mif-{XY}dcr-vppip4-{test_type}"
   algorithm: "plot_nf_heatmap"
-  output-file-type: ".html"
-  output-file: "{DIR[STATIC,VPP]}/l2bd-2n-skx-xxv710-imix-8t4c-base-vsc-ndr"
-  data: "plot-vpp-nfv-2n-skx-ndrpdr"
-  filter: "'NIC_Intel-XXV710' and
-           'NF_DENSITY' and
-           'VHOST' and
-           not 'VXLAN' and
-           'CHAIN' and
-           'NF_VPPIP4' and
-           'IMIX' and
-           '8T4C' and
-           'NDRPDR'"
-  parameters:
-  - "throughput"
-  - "name"
-  - "tags"
-  include-tests: "NDR" # "PDR" | "NDR" | "MRR"
-  x-axis: "X = VNFs per Service Chain"
+  output-file: "{DIR[STATIC,VPP]}/l2bd-2n-skx-xxv710-imix-{core}-base-csc-{test_type}"
+  data: "plot-vpp-nfv-2n-skx-mrr"
+  core: ["2t1c", "4t2c", "8t4c"]
+  test-type: ["mrr", ]
+  include:
+    - "Tests.Vpp.Perf.Nfv Density.Dcr Memif.Chain.2N-25Ge2P1Xxv710-Avf-Eth-L2Bd-1Ch-2Mif-1Dcr1T-Vppip4-Mrr.IMIX-{core}-avf-eth-l2bd-1ch-2mif-1dcr1t-vppip4-mrr"
+    - "Tests.Vpp.Perf.Nfv Density.Dcr Memif.Chain.2N-25Ge2P1Xxv710-Avf-Eth-L2Bd-1Ch-4Mif-2Dcr1T-Vppip4-Mrr.IMIX-{core}-avf-eth-l2bd-1ch-4mif-2dcr1t-vppip4-mrr"
+    - "Tests.Vpp.Perf.Nfv Density.Dcr Memif.Chain.2N-25Ge2P1Xxv710-Avf-Eth-L2Bd-1Ch-8Mif-4Dcr1T-Vppip4-Mrr.IMIX-{core}-avf-eth-l2bd-1ch-8mif-4dcr1t-vppip4-mrr"
+    - "Tests.Vpp.Perf.Nfv Density.Dcr Memif.Chain.2N-25Ge2P1Xxv710-Avf-Eth-L2Bd-1Ch-12Mif-6Dcr1T-Vppip4-Mrr.IMIX-{core}-avf-eth-l2bd-1ch-12mif-6dcr1t-vppip4-mrr"
+    - "Tests.Vpp.Perf.Nfv Density.Dcr Memif.Chain.2N-25Ge2P1Xxv710-Avf-Eth-L2Bd-2Ch-4Mif-2Dcr1T-Vppip4-Mrr.IMIX-{core}-avf-eth-l2bd-2ch-4mif-2dcr1t-vppip4-mrr"
+    - "Tests.Vpp.Perf.Nfv Density.Dcr Memif.Chain.2N-25Ge2P1Xxv710-Avf-Eth-L2Bd-2Ch-8Mif-4Dcr1T-Vppip4-Mrr.IMIX-{core}-avf-eth-l2bd-2ch-8mif-4dcr1t-vppip4-mrr"
+    - "Tests.Vpp.Perf.Nfv Density.Dcr Memif.Chain.2N-25Ge2P1Xxv710-Avf-Eth-L2Bd-4Ch-8Mif-4Dcr1T-Vppip4-Mrr.IMIX-{core}-avf-eth-l2bd-4ch-8mif-4dcr1t-vppip4-mrr"
+    - "Tests.Vpp.Perf.Nfv Density.Dcr Memif.Chain.2N-25Ge2P1Xxv710-Avf-Eth-L2Bd-6Ch-12Mif-6Dcr1T-Vppip4-Mrr.IMIX-{core}-avf-eth-l2bd-6ch-12mif-6dcr1t-vppip4-mrr"
+  x-axis: "X = CNFs per Service Chain"
   y-axis: "Y = Number of Service Chains"
-  z-axis: "IMIX Packet Throughput (mean NDR) [Mpps]"
+  z-axis: "IMIX Packet Throughput (mean {test_type}) [Mpps]"
   layout:
-    title: "<b>Throughput:</b> eth-l2bd-{Y}ch-{2XY}vh-{XY}vm-vppip4-ndr"
+    title: "<b>Throughput:</b> eth-l2bd-{Y}ch-{2XY}mif-{XY}dcr-vppip4-test_type"
     layout: "plot-service-density"
 
-# Plots - NF Density - VSC - PDR IMIX
+# Plots - NF Density - 2n-skx - CSC - NDRPDR IMIX
 - type: "plot"
-  title: "Packet Throughput: eth-l2bd-{Y}ch-{2XY}vh-{XY}vm-vppip4-pdr"
+  title: "Packet Throughput: eth-l2bd-{Y}ch-{2XY}mif-{XY}dcr-vppip4-{test_type}"
   algorithm: "plot_nf_heatmap"
-  output-file-type: ".html"
-  output-file: "{DIR[STATIC,VPP]}/l2bd-2n-skx-xxv710-imix-2t1c-base-vsc-pdr"
+  output-file: "{DIR[STATIC,VPP]}/l2bd-2n-skx-xxv710-imix-{core}-base-csc-{test_type}"
   data: "plot-vpp-nfv-2n-skx-ndrpdr"
-  filter: "'NIC_Intel-XXV710' and
-           'NF_DENSITY' and
-           'VHOST' and
-           not 'VXLAN' and
-           'CHAIN' and
-           'NF_VPPIP4' and
-           'IMIX' and
-           '2T1C' and
-           'NDRPDR'"
-  parameters:
-  - "throughput"
-  - "name"
-  - "tags"
-  include-tests: "PDR" # "PDR" | "NDR" | "MRR"
-  x-axis: "X = VNFs per Service Chain"
+  core: ["2t1c", "4t2c", "8t4c"]
+  include:
+    - "Tests.Vpp.Perf.Nfv Density.Dcr Memif.Chain.2N-25Ge2P1Xxv710-Avf-Eth-L2Bd-1Ch-2Mif-1Dcr1T-Vppip4-ndrpdr.IMIX-{core}-avf-eth-l2bd-1ch-2mif-1dcr1t-vppip4-ndrpdr"
+    - "Tests.Vpp.Perf.Nfv Density.Dcr Memif.Chain.2N-25Ge2P1Xxv710-Avf-Eth-L2Bd-1Ch-4Mif-2Dcr1T-Vppip4-ndrpdr.IMIX-{core}-avf-eth-l2bd-1ch-4mif-2dcr1t-vppip4-ndrpdr"
+    - "Tests.Vpp.Perf.Nfv Density.Dcr Memif.Chain.2N-25Ge2P1Xxv710-Avf-Eth-L2Bd-1Ch-8Mif-4Dcr1T-Vppip4-ndrpdr.IMIX-{core}-avf-eth-l2bd-1ch-8mif-4dcr1t-vppip4-ndrpdr"
+    - "Tests.Vpp.Perf.Nfv Density.Dcr Memif.Chain.2N-25Ge2P1Xxv710-Avf-Eth-L2Bd-1Ch-12Mif-6Dcr1T-Vppip4-ndrpdr.IMIX-{core}-avf-eth-l2bd-1ch-12mif-6dcr1t-vppip4-ndrpdr"
+    - "Tests.Vpp.Perf.Nfv Density.Dcr Memif.Chain.2N-25Ge2P1Xxv710-Avf-Eth-L2Bd-2Ch-4Mif-2Dcr1T-Vppip4-ndrpdr.IMIX-{core}-avf-eth-l2bd-2ch-4mif-2dcr1t-vppip4-ndrpdr"
+    - "Tests.Vpp.Perf.Nfv Density.Dcr Memif.Chain.2N-25Ge2P1Xxv710-Avf-Eth-L2Bd-2Ch-8Mif-4Dcr1T-Vppip4-ndrpdr.IMIX-{core}-avf-eth-l2bd-2ch-8mif-4dcr1t-vppip4-ndrpdr"
+    - "Tests.Vpp.Perf.Nfv Density.Dcr Memif.Chain.2N-25Ge2P1Xxv710-Avf-Eth-L2Bd-4Ch-8Mif-4Dcr1T-Vppip4-ndrpdr.IMIX-{core}-avf-eth-l2bd-4ch-8mif-4dcr1t-vppip4-ndrpdr"
+    - "Tests.Vpp.Perf.Nfv Density.Dcr Memif.Chain.2N-25Ge2P1Xxv710-Avf-Eth-L2Bd-6Ch-12Mif-6Dcr1T-Vppip4-ndrpdr.IMIX-{core}-avf-eth-l2bd-6ch-12mif-6dcr1t-vppip4-ndrpdr"
+  x-axis: "X = CNFs per Service Chain"
   y-axis: "Y = Number of Service Chains"
-  z-axis: "IMIX Packet Throughput (mean PDR) [Mpps]"
+  z-axis: "IMIX Packet Throughput (mean {test_type}) [Mpps]"
   layout:
-    title: "<b>Throughput:</b> eth-l2bd-{Y}ch-{2XY}vh-{XY}vm-vppip4-pdr"
+    title: "<b>Throughput:</b> eth-l2bd-{Y}ch-{2XY}mif-{XY}dcr-vppip4-test_type"
     layout: "plot-service-density"
 
+###############################################################################
+
+# Plots - NF Density - 2n-skx - CSP - MRR IMIX
 - type: "plot"
-  title: "Packet Throughput: eth-l2bd-{Y}ch-{2XY}vh-{XY}vm-vppip4-pdr"
+  title: "Packet Throughput: eth-l2bd-{Y}pl-{2Y}mif-{XY}dcr-vppip4-{test_type}"
   algorithm: "plot_nf_heatmap"
-  output-file-type: ".html"
-  output-file: "{DIR[STATIC,VPP]}/l2bd-2n-skx-xxv710-imix-4t2c-base-vsc-pdr"
-  data: "plot-vpp-nfv-2n-skx-ndrpdr"
-  filter: "'NIC_Intel-XXV710' and
-           'NF_DENSITY' and
-           'VHOST' and
-           not 'VXLAN' and
-           'CHAIN' and
-           'NF_VPPIP4' and
-           'IMIX' and
-           '4T2C' and
-           'NDRPDR'"
-  parameters:
-  - "throughput"
-  - "name"
-  - "tags"
-  include-tests: "PDR" # "PDR" | "NDR" | "MRR"
-  x-axis: "X = VNFs per Service Chain"
-  y-axis: "Y = Number of Service Chains"
-  z-axis: "IMIX Packet Throughput (mean PDR) [Mpps]"
+  output-file: "{DIR[STATIC,VPP]}/l2bd-2n-skx-xxv710-imix-{core}-base-csp-{test_type}"
+  data: "plot-vpp-nfv-2n-skx-mrr"
+  core: ["2t1c", "4t2c", "8t4c"]
+  test-type: ["mrr", ]
+  include:
+    - "Tests.Vpp.Perf.Nfv Density.Dcr Memif.Pipeline.2N-25Ge2P1Xxv710-Avf-Eth-L2Bd-1Pl-2Mif-1Dcr1T-Vppip4-Mrr.IMIX-{core}-avf-eth-l2bd-1pl-2mif-1dcr1t-vppip4-mrr"
+    - "Tests.Vpp.Perf.Nfv Density.Dcr Memif.Pipeline.2N-25Ge2P1Xxv710-Avf-Eth-L2Bd-1Pl-2Mif-2Dcr1T-Vppip4-Mrr.IMIX-{core}-avf-eth-l2bd-1pl-2mif-2dcr1t-vppip4-mrr"
+    - "Tests.Vpp.Perf.Nfv Density.Dcr Memif.Pipeline.2N-25Ge2P1Xxv710-Avf-Eth-L2Bd-1Pl-2Mif-4Dcr1T-Vppip4-Mrr.IMIX-{core}-avf-eth-l2bd-1pl-2mif-4dcr1t-vppip4-mrr"
+    - "Tests.Vpp.Perf.Nfv Density.Dcr Memif.Pipeline.2N-25Ge2P1Xxv710-Avf-Eth-L2Bd-1Pl-2Mif-6Dcr1T-Vppip4-Mrr.IMIX-{core}-avf-eth-l2bd-1pl-2mif-6dcr1t-vppip4-mrr"
+    - "Tests.Vpp.Perf.Nfv Density.Dcr Memif.Pipeline.2N-25Ge2P1Xxv710-Avf-Eth-L2Bd-2Pl-4Mif-2Dcr1T-Vppip4-Mrr.IMIX-{core}-avf-eth-l2bd-2pl-4mif-2dcr1t-vppip4-mrr"
+    - "Tests.Vpp.Perf.Nfv Density.Dcr Memif.Pipeline.2N-25Ge2P1Xxv710-Avf-Eth-L2Bd-2Pl-4Mif-4Dcr1T-Vppip4-Mrr.IMIX-{core}-avf-eth-l2bd-2pl-4mif-4dcr1t-vppip4-mrr"
+    - "Tests.Vpp.Perf.Nfv Density.Dcr Memif.Pipeline.2N-25Ge2P1Xxv710-Avf-Eth-L2Bd-2Pl-8Mif-4Dcr1T-Vppip4-Mrr.IMIX-{core}-avf-eth-l2bd-2pl-8mif-4dcr1t-vppip4-mrr"
+    - "Tests.Vpp.Perf.Nfv Density.Dcr Memif.Pipeline.2N-25Ge2P1Xxv710-Avf-Eth-L2Bd-6Pl-12Mif-6Dcr1T-Vppip4-Mrr.IMIX-{core}-avf-eth-l2bd-6pl-12mif-6dcr1t-vppip4-mrr"
+  x-axis: "X = CNFs per Service Pipeline"
+  y-axis: "Y = Number of Service Pipelines"
+  z-axis: "IMIX Packet Throughput (mean {test_type}) [Mpps]"
   layout:
-    title: "<b>Throughput:</b> eth-l2bd-{Y}ch-{2XY}vh-{XY}vm-vppip4-pdr"
+    title: "<b>Throughput:</b> eth-l2bd-{Y}pl-{2Y}mif-{XY}dcr-vppip4-test_type"
     layout: "plot-service-density"
 
+# Plots - NF Density - 2n-skx - CSP - NDRPDR IMIX
 - type: "plot"
-  title: "Packet Throughput: eth-l2bd-{Y}ch-{2XY}vh-{XY}vm-vppip4-pdr"
+  title: "Packet Throughput: eth-l2bd-{Y}pl-{2Y}mif-{XY}dcr-vppip4-{test_type}"
   algorithm: "plot_nf_heatmap"
-  output-file-type: ".html"
-  output-file: "{DIR[STATIC,VPP]}/l2bd-2n-skx-xxv710-imix-8t4c-base-vsc-pdr"
+  output-file: "{DIR[STATIC,VPP]}/l2bd-2n-skx-xxv710-imix-{core}-base-csp-{test_type}"
   data: "plot-vpp-nfv-2n-skx-ndrpdr"
-  filter: "'NIC_Intel-XXV710' and
-           'NF_DENSITY' and
-           'VHOST' and
-           not 'VXLAN' and
-           'CHAIN' and
-           'NF_VPPIP4' and
-           'IMIX' and
-           '8T4C' and
-           'NDRPDR'"
-  parameters:
-  - "throughput"
-  - "name"
-  - "tags"
-  include-tests: "PDR" # "PDR" | "NDR" | "MRR"
-  x-axis: "X = VNFs per Service Chain"
-  y-axis: "Y = Number of Service Chains"
-  z-axis: "IMIX Packet Throughput (mean PDR) [Mpps]"
+  core: ["2t1c", "4t2c", "8t4c"]
+  include:
+    - "Tests.Vpp.Perf.Nfv Density.Dcr Memif.Pipeline.2N-25Ge2P1Xxv710-Avf-Eth-L2Bd-1Pl-2Mif-1Dcr1T-Vppip4-ndrpdr.IMIX-{core}-avf-eth-l2bd-1pl-2mif-1dcr1t-vppip4-ndrpdr"
+    - "Tests.Vpp.Perf.Nfv Density.Dcr Memif.Pipeline.2N-25Ge2P1Xxv710-Avf-Eth-L2Bd-1Pl-2Mif-2Dcr1T-Vppip4-ndrpdr.IMIX-{core}-avf-eth-l2bd-1pl-2mif-2dcr1t-vppip4-ndrpdr"
+    - "Tests.Vpp.Perf.Nfv Density.Dcr Memif.Pipeline.2N-25Ge2P1Xxv710-Avf-Eth-L2Bd-1Pl-2Mif-4Dcr1T-Vppip4-ndrpdr.IMIX-{core}-avf-eth-l2bd-1pl-2mif-4dcr1t-vppip4-ndrpdr"
+    - "Tests.Vpp.Perf.Nfv Density.Dcr Memif.Pipeline.2N-25Ge2P1Xxv710-Avf-Eth-L2Bd-1Pl-2Mif-6Dcr1T-Vppip4-ndrpdr.IMIX-{core}-avf-eth-l2bd-1pl-2mif-6dcr1t-vppip4-ndrpdr"
+    - "Tests.Vpp.Perf.Nfv Density.Dcr Memif.Pipeline.2N-25Ge2P1Xxv710-Avf-Eth-L2Bd-2Pl-4Mif-2Dcr1T-Vppip4-ndrpdr.IMIX-{core}-avf-eth-l2bd-2pl-4mif-2dcr1t-vppip4-ndrpdr"
+    - "Tests.Vpp.Perf.Nfv Density.Dcr Memif.Pipeline.2N-25Ge2P1Xxv710-Avf-Eth-L2Bd-2Pl-4Mif-4Dcr1T-Vppip4-ndrpdr.IMIX-{core}-avf-eth-l2bd-2pl-4mif-4dcr1t-vppip4-ndrpdr"
+    - "Tests.Vpp.Perf.Nfv Density.Dcr Memif.Pipeline.2N-25Ge2P1Xxv710-Avf-Eth-L2Bd-2Pl-8Mif-4Dcr1T-Vppip4-ndrpdr.IMIX-{core}-avf-eth-l2bd-2pl-8mif-4dcr1t-vppip4-ndrpdr"
+    - "Tests.Vpp.Perf.Nfv Density.Dcr Memif.Pipeline.2N-25Ge2P1Xxv710-Avf-Eth-L2Bd-6Pl-12Mif-6Dcr1T-Vppip4-ndrpdr.IMIX-{core}-avf-eth-l2bd-6pl-12mif-6dcr1t-vppip4-ndrpdr"
+  x-axis: "X = CNFs per Service Pipeline"
+  y-axis: "Y = Number of Service Pipelines"
+  z-axis: "IMIX Packet Throughput (mean {test_type}) [Mpps]"
   layout:
-    title: "<b>Throughput:</b> eth-l2bd-{Y}ch-{2XY}vh-{XY}vm-vppip4-pdr"
+    title: "<b>Throughput:</b> eth-l2bd-{Y}pl-{2Y}mif-{XY}dcr-vppip4-test_type"
     layout: "plot-service-density"
 
 ###############################################################################
 
-# Plots - NF Density - VSC - MRR IMIX
+# Plots - NF Density - 2n-clx - VSC - MRR IMIX
 - type: "plot"
-  title: "Packet Throughput: eth-l2bd-{Y}ch-{2XY}vh-{XY}vm-vxlan-vppip4-mrr"
+  title: "Packet Throughput: eth-l2bd-{Y}ch-{2XY}vh-{XY}vm-vppip4-{test_type}"
   algorithm: "plot_nf_heatmap"
-  output-file-type: ".html"
-  output-file: "{DIR[STATIC,VPP]}/l2bd-2n-skx-xxv710-imix-2t1c-base-vsc-vxlan-mrr"
-  data: "plot-vpp-nfv-2n-skx-mrr"
-  filter: "'NIC_Intel-XXV710' and
-           'NF_DENSITY' and
-           'VHOST' and
-           'VXLAN' and
-           'CHAIN' and
-           'IMIX' and
-           '2T1C' and
-           'MRR'"
-  parameters:
-  - "result"
-  - "name"
-  - "tags"
-  include-tests: "MRR" # "PDR" | "NDR" | "MRR"
+  output-file: "{DIR[STATIC,VPP]}/l2bd-2n-clx-xxv710-imix-{core}-base-vsc-{test_type}"
+  data: "plot-vpp-nfv-2n-clx-mrr"
+  core: ["2t1c", "4t2c", "8t4c"]
+  test-type: ["mrr", ]
+  include:
+    - "Tests.Vpp.Perf.Nfv Density.Vm Vhost.Chain.2N-25Ge2P1Xxv710-Avf-Eth-L2Bd-1Ch-2Vh-1Vm1T-Vppip4-Mrr.IMIX-{core}-avf-eth-l2bd-1ch-2vh-1vm1t-vppip4-mrr"
+    - "Tests.Vpp.Perf.Nfv Density.Vm Vhost.Chain.2N-25Ge2P1Xxv710-Avf-Eth-L2Bd-1Ch-4Vh-2Vm1T-Vppip4-Mrr.IMIX-{core}-avf-eth-l2bd-1ch-4vh-2vm1t-vppip4-mrr"
+    - "Tests.Vpp.Perf.Nfv Density.Vm Vhost.Chain.2N-25Ge2P1Xxv710-Avf-Eth-L2Bd-1Ch-8Vh-4Vm1T-Vppip4-Mrr.IMIX-{core}-avf-eth-l2bd-1ch-8vh-4vm1t-vppip4-mrr"
+    - "Tests.Vpp.Perf.Nfv Density.Vm Vhost.Chain.2N-25Ge2P1Xxv710-Avf-Eth-L2Bd-1Ch-12Vh-6Vm1T-Vppip4-Mrr.IMIX-{core}-avf-eth-l2bd-1ch-12vh-6vm1t-vppip4-mrr"
+    - "Tests.Vpp.Perf.Nfv Density.Vm Vhost.Chain.2N-25Ge2P1Xxv710-Avf-Eth-L2Bd-2Ch-4Vh-2Vm1T-Vppip4-Mrr.IMIX-{core}-avf-eth-l2bd-2ch-4vh-2vm1t-vppip4-mrr"
+    - "Tests.Vpp.Perf.Nfv Density.Vm Vhost.Chain.2N-25Ge2P1Xxv710-Avf-Eth-L2Bd-2Ch-8Vh-4Vm1T-Vppip4-Mrr.IMIX-{core}-avf-eth-l2bd-2ch-8vh-4vm1t-vppip4-mrr"
+    - "Tests.Vpp.Perf.Nfv Density.Vm Vhost.Chain.2N-25Ge2P1Xxv710-Avf-Eth-L2Bd-4Ch-8Vh-4Vm1T-Vppip4-Mrr.IMIX-{core}-avf-eth-l2bd-4ch-8vh-4vm1t-vppip4-mrr"
+    - "Tests.Vpp.Perf.Nfv Density.Vm Vhost.Chain.2N-25Ge2P1Xxv710-Avf-Eth-L2Bd-6Ch-12Vh-6Vm1T-Vppip4-Mrr.IMIX-{core}-avf-eth-l2bd-6ch-12vh-6vm1t-vppip4-mrr"
   x-axis: "X = VNFs per Service Chain"
   y-axis: "Y = Number of Service Chains"
-  z-axis: "IMIX Packet Throughput (mean MRR) [Mpps]"
+  z-axis: "IMIX Packet Throughput (mean {test_type}) [Mpps]"
   layout:
-    title: "<b>Throughput:</b> eth-l2bd-{Y}ch-{2XY}vh-{XY}vm-vxlan-vppip4-mrr"
+    title: "<b>Throughput:</b> eth-l2bd-{Y}ch-{2XY}vh-{XY}vm-vppip4-test_type"
     layout: "plot-service-density"
 
+# Plots - NF Density - 2n-clx - VSC - NDRPDR IMIX
 - type: "plot"
-  title: "Packet Throughput: eth-l2bd-{Y}ch-{2XY}vh-{XY}vm-vxlan-vppip4-mrr"
+  title: "Packet Throughput: eth-l2bd-{Y}ch-{2XY}vh-{XY}vm-vppip4-{test_type}"
   algorithm: "plot_nf_heatmap"
-  output-file-type: ".html"
-  output-file: "{DIR[STATIC,VPP]}/l2bd-2n-skx-xxv710-imix-4t2c-base-vsc-vxlan-mrr"
-  data: "plot-vpp-nfv-2n-skx-mrr"
-  filter: "'NIC_Intel-XXV710' and
-           'NF_DENSITY' and
-           'VHOST' and
-           'VXLAN' and
-           'CHAIN' and
-           'IMIX' and
-           '4T2C' and
-           'MRR'"
-  parameters:
-  - "result"
-  - "name"
-  - "tags"
-  include-tests: "MRR" # "PDR" | "NDR" | "MRR"
+  output-file: "{DIR[STATIC,VPP]}/l2bd-2n-clx-xxv710-imix-{core}-base-vsc-{test_type}"
+  data: "plot-vpp-nfv-2n-clx-ndrpdr"
+  core: ["2t1c", "4t2c", "8t4c"]
+  include:
+    - "Tests.Vpp.Perf.Nfv Density.Vm Vhost.Chain.2N-25Ge2P1Xxv710-Avf-Eth-L2Bd-1Ch-2Vh-1Vm1T-Vppip4-ndrpdr.IMIX-{core}-avf-eth-l2bd-1ch-2vh-1vm1t-vppip4-ndrpdr"
+    - "Tests.Vpp.Perf.Nfv Density.Vm Vhost.Chain.2N-25Ge2P1Xxv710-Avf-Eth-L2Bd-1Ch-4Vh-2Vm1T-Vppip4-ndrpdr.IMIX-{core}-avf-eth-l2bd-1ch-4vh-2vm1t-vppip4-ndrpdr"
+    - "Tests.Vpp.Perf.Nfv Density.Vm Vhost.Chain.2N-25Ge2P1Xxv710-Avf-Eth-L2Bd-1Ch-8Vh-4Vm1T-Vppip4-ndrpdr.IMIX-{core}-avf-eth-l2bd-1ch-8vh-4vm1t-vppip4-ndrpdr"
+    - "Tests.Vpp.Perf.Nfv Density.Vm Vhost.Chain.2N-25Ge2P1Xxv710-Avf-Eth-L2Bd-1Ch-12Vh-6Vm1T-Vppip4-ndrpdr.IMIX-{core}-avf-eth-l2bd-1ch-12vh-6vm1t-vppip4-ndrpdr"
+    - "Tests.Vpp.Perf.Nfv Density.Vm Vhost.Chain.2N-25Ge2P1Xxv710-Avf-Eth-L2Bd-2Ch-4Vh-2Vm1T-Vppip4-ndrpdr.IMIX-{core}-avf-eth-l2bd-2ch-4vh-2vm1t-vppip4-ndrpdr"
+    - "Tests.Vpp.Perf.Nfv Density.Vm Vhost.Chain.2N-25Ge2P1Xxv710-Avf-Eth-L2Bd-2Ch-8Vh-4Vm1T-Vppip4-ndrpdr.IMIX-{core}-avf-eth-l2bd-2ch-8vh-4vm1t-vppip4-ndrpdr"
+    - "Tests.Vpp.Perf.Nfv Density.Vm Vhost.Chain.2N-25Ge2P1Xxv710-Avf-Eth-L2Bd-4Ch-8Vh-4Vm1T-Vppip4-ndrpdr.IMIX-{core}-avf-eth-l2bd-4ch-8vh-4vm1t-vppip4-ndrpdr"
+    - "Tests.Vpp.Perf.Nfv Density.Vm Vhost.Chain.2N-25Ge2P1Xxv710-Avf-Eth-L2Bd-6Ch-12Vh-6Vm1T-Vppip4-ndrpdr.IMIX-{core}-avf-eth-l2bd-6ch-12vh-6vm1t-vppip4-ndrpdr"
   x-axis: "X = VNFs per Service Chain"
   y-axis: "Y = Number of Service Chains"
-  z-axis: "IMIX Packet Throughput (mean MRR) [Mpps]"
+  z-axis: "IMIX Packet Throughput (mean {test_type}) [Mpps]"
   layout:
-    title: "<b>Throughput:</b> eth-l2bd-{Y}ch-{2XY}vh-{XY}vm-vxlan-vppip4-mrr"
+    title: "<b>Throughput:</b> eth-l2bd-{Y}ch-{2XY}vh-{XY}vm-vppip4-test_type"
     layout: "plot-service-density"
 
+# Plots - NF Density - 2n-clx - VSC vxlan - MRR IMIX
 - type: "plot"
-  title: "Packet Throughput: eth-l2bd-{Y}ch-{2XY}vh-{XY}vm-vxlan-vppip4-mrr"
+  title: "Packet Throughput: eth-l2bd-{Y}ch-{2XY}vh-{XY}vm-vxlan-vppip4-{test_type}"
   algorithm: "plot_nf_heatmap"
-  output-file-type: ".html"
-  output-file: "{DIR[STATIC,VPP]}/l2bd-2n-skx-xxv710-imix-8t4c-base-vsc-vxlan-mrr"
-  data: "plot-vpp-nfv-2n-skx-mrr"
-  filter: "'NIC_Intel-XXV710' and
-           'NF_DENSITY' and
-           'VHOST' and
-           'VXLAN' and
-           'CHAIN' and
-           'IMIX' and
-           '8T4C' and
-           'MRR'"
-  parameters:
-  - "result"
-  - "name"
-  - "tags"
-  include-tests: "MRR" # "PDR" | "NDR" | "MRR"
+  output-file: "{DIR[STATIC,VPP]}/l2bd-2n-clx-xxv710-imix-{core}-base-vsc-vxlan-{test_type}"
+  data: "plot-vpp-nfv-2n-clx-mrr"
+  core: ["2t1c", "4t2c", "8t4c"]
+  test-type: ["mrr", ]
+  include:
+    - "Tests.Vpp.Perf.Nfv Density.Vm Vhost.Chain Dot1Qip4Vxlan.2N-25Ge2P1Xxv710-Avf-Dot1Qip4Vxlan-L2Bd-1Ch-2Vh-1Vm1T-Testpmd-Mrr.IMIX-{core}-avf-dot1qip4vxlan-l2bd-1ch-2vh-1vm1t-testpmd-mrr"
+    - "Tests.Vpp.Perf.Nfv Density.Vm Vhost.Chain Dot1Qip4Vxlan.2N-25Ge2P1Xxv710-Avf-Dot1Qip4Vxlan-L2Bd-2Ch-4Vh-2Vm1T-Testpmd-Mrr.IMIX-{core}-avf-dot1qip4vxlan-l2bd-2ch-4vh-2vm1t-testpmd-mrr"
+    - "Tests.Vpp.Perf.Nfv Density.Vm Vhost.Chain Dot1Qip4Vxlan.2N-25Ge2P1Xxv710-Avf-Dot1Qip4Vxlan-L2Bd-4Ch-8Vh-4Vm1T-Testpmd-Mrr.IMIX-{core}-avf-dot1qip4vxlan-l2bd-4ch-8vh-4vm1t-testpmd-mrr"
+    - "Tests.Vpp.Perf.Nfv Density.Vm Vhost.Chain Dot1Qip4Vxlan.2N-25Ge2P1Xxv710-Avf-Dot1Qip4Vxlan-L2Bd-6Ch-12Vh-6Vm1T-Testpmd-Mrr.IMIX-{core}-avf-dot1qip4vxlan-l2bd-6ch-12vh-6vm1t-testpmd-mrr"
   x-axis: "X = VNFs per Service Chain"
   y-axis: "Y = Number of Service Chains"
-  z-axis: "IMIX Packet Throughput (mean MRR) [Mpps]"
+  z-axis: "IMIX Packet Throughput (mean {test_type}) [Mpps]"
   layout:
-    title: "<b>Throughput:</b> eth-l2bd-{Y}ch-{2XY}vh-{XY}vm-vxlan-vppip4-mrr"
+    title: "<b>Throughput:</b> eth-l2bd-{Y}ch-{2XY}vh-{XY}vm-vxlan-vppip4-test_type"
     layout: "plot-service-density"
 
-# Plots - NF Density - VSC - NDR IMIX
+# Plots - NF Density - 2n-clx - VSC vxlan - NDRPDR IMIX
 - type: "plot"
-  title: "Packet Throughput: eth-l2bd-{Y}ch-{2XY}vh-{XY}vm-vxlan-vppip4-ndr"
+  title: "Packet Throughput: eth-l2bd-{Y}ch-{2XY}vh-{XY}vm-vxlan-vppip4-{test_type}"
   algorithm: "plot_nf_heatmap"
-  output-file-type: ".html"
-  output-file: "{DIR[STATIC,VPP]}/l2bd-2n-skx-xxv710-imix-2t1c-base-vsc-vxlan-ndr"
-  data: "plot-vpp-nfv-2n-skx-ndrpdr"
-  filter: "'NIC_Intel-XXV710' and
-           'NF_DENSITY' and
-           'VHOST' and
-           'VXLAN' and
-           'CHAIN' and
-           'IMIX' and
-           '2T1C' and
-           'NDRPDR'"
-  parameters:
-  - "throughput"
-  - "name"
-  - "tags"
-  include-tests: "NDR" # "PDR" | "NDR" | "MRR"
+  output-file: "{DIR[STATIC,VPP]}/l2bd-2n-clx-xxv710-imix-{core}-base-vsc-vxlan-{test_type}"
+  data: "plot-vpp-nfv-2n-clx-ndrpdr"
+  core: ["2t1c", "4t2c", "8t4c"]
+  include:
+    - "Tests.Vpp.Perf.Nfv Density.Vm Vhost.Chain Dot1Qip4Vxlan.2N-25Ge2P1Xxv710-Avf-Dot1Qip4Vxlan-L2Bd-1Ch-2Vh-1Vm1T-Testpmd-ndrpdr.IMIX-{core}-avf-dot1qip4vxlan-l2bd-1ch-2vh-1vm1t-testpmd-ndrpdr"
+    - "Tests.Vpp.Perf.Nfv Density.Vm Vhost.Chain Dot1Qip4Vxlan.2N-25Ge2P1Xxv710-Avf-Dot1Qip4Vxlan-L2Bd-2Ch-4Vh-2Vm1T-Testpmd-ndrpdr.IMIX-{core}-avf-dot1qip4vxlan-l2bd-2ch-4vh-2vm1t-testpmd-ndrpdr"
+    - "Tests.Vpp.Perf.Nfv Density.Vm Vhost.Chain Dot1Qip4Vxlan.2N-25Ge2P1Xxv710-Avf-Dot1Qip4Vxlan-L2Bd-4Ch-8Vh-4Vm1T-Testpmd-ndrpdr.IMIX-{core}-avf-dot1qip4vxlan-l2bd-4ch-8vh-4vm1t-testpmd-ndrpdr"
+    - "Tests.Vpp.Perf.Nfv Density.Vm Vhost.Chain Dot1Qip4Vxlan.2N-25Ge2P1Xxv710-Avf-Dot1Qip4Vxlan-L2Bd-6Ch-12Vh-6Vm1T-Testpmd-ndrpdr.IMIX-{core}-avf-dot1qip4vxlan-l2bd-6ch-12vh-6vm1t-testpmd-ndrpdr"
   x-axis: "X = VNFs per Service Chain"
   y-axis: "Y = Number of Service Chains"
-  z-axis: "IMIX Packet Throughput (mean NDR) [Mpps]"
+  z-axis: "IMIX Packet Throughput (mean {test_type}) [Mpps]"
   layout:
-    title: "<b>Throughput:</b> eth-l2bd-{Y}ch-{2XY}vh-{XY}vm-vxlan-vppip4-ndr"
+    title: "<b>Throughput:</b> eth-l2bd-{Y}ch-{2XY}vh-{XY}vm-vxlan-vppip4-test_type"
     layout: "plot-service-density"
 
+###############################################################################
+
+# Plots - NF Density - 2n-clx - CSC - MRR IMIX
 - type: "plot"
-  title: "Packet Throughput: eth-l2bd-{Y}ch-{2XY}vh-{XY}vm-vxlan-vppip4-ndr"
+  title: "Packet Throughput: eth-l2bd-{Y}ch-{2XY}mif-{XY}dcr-vppip4-{test_type}"
   algorithm: "plot_nf_heatmap"
-  output-file-type: ".html"
-  output-file: "{DIR[STATIC,VPP]}/l2bd-2n-skx-xxv710-imix-4t2c-base-vsc-vxlan-ndr"
-  data: "plot-vpp-nfv-2n-skx-ndrpdr"
-  filter: "'NIC_Intel-XXV710' and
-           'NF_DENSITY' and
-           'VHOST' and
-           'VXLAN' and
-           'CHAIN' and
-           'IMIX' and
-           '4T2C' and
-           'NDRPDR'"
-  parameters:
-  - "throughput"
-  - "name"
-  - "tags"
-  include-tests: "NDR" # "PDR" | "NDR" | "MRR"
-  x-axis: "X = VNFs per Service Chain"
+  output-file: "{DIR[STATIC,VPP]}/l2bd-2n-clx-xxv710-imix-{core}-base-csc-{test_type}"
+  data: "plot-vpp-nfv-2n-clx-mrr"
+  core: ["2t1c", "4t2c", "8t4c"]
+  test-type: ["mrr", ]
+  include:
+    - "Tests.Vpp.Perf.Nfv Density.Dcr Memif.Chain.2N-25Ge2P1Xxv710-Avf-Eth-L2Bd-1Ch-2Mif-1Dcr1T-Vppip4-Mrr.IMIX-{core}-avf-eth-l2bd-1ch-2mif-1dcr1t-vppip4-mrr"
+    - "Tests.Vpp.Perf.Nfv Density.Dcr Memif.Chain.2N-25Ge2P1Xxv710-Avf-Eth-L2Bd-1Ch-4Mif-2Dcr1T-Vppip4-Mrr.IMIX-{core}-avf-eth-l2bd-1ch-4mif-2dcr1t-vppip4-mrr"
+    - "Tests.Vpp.Perf.Nfv Density.Dcr Memif.Chain.2N-25Ge2P1Xxv710-Avf-Eth-L2Bd-1Ch-8Mif-4Dcr1T-Vppip4-Mrr.IMIX-{core}-avf-eth-l2bd-1ch-8mif-4dcr1t-vppip4-mrr"
+    - "Tests.Vpp.Perf.Nfv Density.Dcr Memif.Chain.2N-25Ge2P1Xxv710-Avf-Eth-L2Bd-1Ch-12Mif-6Dcr1T-Vppip4-Mrr.IMIX-{core}-avf-eth-l2bd-1ch-12mif-6dcr1t-vppip4-mrr"
+    - "Tests.Vpp.Perf.Nfv Density.Dcr Memif.Chain.2N-25Ge2P1Xxv710-Avf-Eth-L2Bd-2Ch-4Mif-2Dcr1T-Vppip4-Mrr.IMIX-{core}-avf-eth-l2bd-2ch-4mif-2dcr1t-vppip4-mrr"
+    - "Tests.Vpp.Perf.Nfv Density.Dcr Memif.Chain.2N-25Ge2P1Xxv710-Avf-Eth-L2Bd-2Ch-8Mif-4Dcr1T-Vppip4-Mrr.IMIX-{core}-avf-eth-l2bd-2ch-8mif-4dcr1t-vppip4-mrr"
+    - "Tests.Vpp.Perf.Nfv Density.Dcr Memif.Chain.2N-25Ge2P1Xxv710-Avf-Eth-L2Bd-4Ch-8Mif-4Dcr1T-Vppip4-Mrr.IMIX-{core}-avf-eth-l2bd-4ch-8mif-4dcr1t-vppip4-mrr"
+    - "Tests.Vpp.Perf.Nfv Density.Dcr Memif.Chain.2N-25Ge2P1Xxv710-Avf-Eth-L2Bd-6Ch-12Mif-6Dcr1T-Vppip4-Mrr.IMIX-{core}-avf-eth-l2bd-6ch-12mif-6dcr1t-vppip4-mrr"
+  x-axis: "X = CNFs per Service Chain"
   y-axis: "Y = Number of Service Chains"
-  z-axis: "IMIX Packet Throughput (mean NDR) [Mpps]"
+  z-axis: "IMIX Packet Throughput (mean {test_type}) [Mpps]"
   layout:
-    title: "<b>Throughput:</b> eth-l2bd-{Y}ch-{2XY}vh-{XY}vm-vxlan-vppip4-ndr"
+    title: "<b>Throughput:</b> eth-l2bd-{Y}ch-{2XY}mif-{XY}dcr-vppip4-test_type"
     layout: "plot-service-density"
 
+# Plots - NF Density - 2n-clx - CSC - NDRPDR IMIX
 - type: "plot"
-  title: "Packet Throughput: eth-l2bd-{Y}ch-{2XY}vh-{XY}vm-vxlan-vppip4-ndr"
+  title: "Packet Throughput: eth-l2bd-{Y}ch-{2XY}mif-{XY}dcr-vppip4-{test_type}"
   algorithm: "plot_nf_heatmap"
-  output-file-type: ".html"
-  output-file: "{DIR[STATIC,VPP]}/l2bd-2n-skx-xxv710-imix-8t4c-base-vsc-vxlan-ndr"
-  data: "plot-vpp-nfv-2n-skx-ndrpdr"
-  filter: "'NIC_Intel-XXV710' and
-           'NF_DENSITY' and
-           'VHOST' and
-           'VXLAN' and
-           'CHAIN' and
-           'IMIX' and
-           '8T4C' and
-           'NDRPDR'"
-  parameters:
-  - "throughput"
-  - "name"
-  - "tags"
-  include-tests: "NDR" # "PDR" | "NDR" | "MRR"
-  x-axis: "X = VNFs per Service Chain"
+  output-file: "{DIR[STATIC,VPP]}/l2bd-2n-clx-xxv710-imix-{core}-base-csc-{test_type}"
+  data: "plot-vpp-nfv-2n-clx-ndrpdr"
+  core: ["2t1c", "4t2c", "8t4c"]
+  include:
+    - "Tests.Vpp.Perf.Nfv Density.Dcr Memif.Chain.2N-25Ge2P1Xxv710-Avf-Eth-L2Bd-1Ch-4Mif-2Dcr1T-Vppip4-ndrpdr.IMIX-{core}-avf-eth-l2bd-1ch-4mif-2dcr1t-vppip4-ndrpdr"
+    - "Tests.Vpp.Perf.Nfv Density.Dcr Memif.Chain.2N-25Ge2P1Xxv710-Avf-Eth-L2Bd-1Ch-8Mif-4Dcr1T-Vppip4-ndrpdr.IMIX-{core}-avf-eth-l2bd-1ch-8mif-4dcr1t-vppip4-ndrpdr"
+    - "Tests.Vpp.Perf.Nfv Density.Dcr Memif.Chain.2N-25Ge2P1Xxv710-Avf-Eth-L2Bd-1Ch-12Mif-6Dcr1T-Vppip4-ndrpdr.IMIX-{core}-avf-eth-l2bd-1ch-12mif-6dcr1t-vppip4-ndrpdr"
+    - "Tests.Vpp.Perf.Nfv Density.Dcr Memif.Chain.2N-25Ge2P1Xxv710-Avf-Eth-L2Bd-2Ch-4Mif-2Dcr1T-Vppip4-ndrpdr.IMIX-{core}-avf-eth-l2bd-2ch-4mif-2dcr1t-vppip4-ndrpdr"
+    - "Tests.Vpp.Perf.Nfv Density.Dcr Memif.Chain.2N-25Ge2P1Xxv710-Avf-Eth-L2Bd-2Ch-8Mif-4Dcr1T-Vppip4-ndrpdr.IMIX-{core}-avf-eth-l2bd-2ch-8mif-4dcr1t-vppip4-ndrpdr"
+    - "Tests.Vpp.Perf.Nfv Density.Dcr Memif.Chain.2N-25Ge2P1Xxv710-Avf-Eth-L2Bd-4Ch-8Mif-4Dcr1T-Vppip4-ndrpdr.IMIX-{core}-avf-eth-l2bd-4ch-8mif-4dcr1t-vppip4-ndrpdr"
+    - "Tests.Vpp.Perf.Nfv Density.Dcr Memif.Chain.2N-25Ge2P1Xxv710-Avf-Eth-L2Bd-6Ch-12Mif-6Dcr1T-Vppip4-ndrpdr.IMIX-{core}-avf-eth-l2bd-6ch-12mif-6dcr1t-vppip4-ndrpdr"
+  x-axis: "X = CNFs per Service Chain"
   y-axis: "Y = Number of Service Chains"
-  z-axis: "IMIX Packet Throughput (mean NDR) [Mpps]"
+  z-axis: "IMIX Packet Throughput (mean {test_type}) [Mpps]"
   layout:
-    title: "<b>Throughput:</b> eth-l2bd-{Y}ch-{2XY}vh-{XY}vm-vxlan-vppip4-ndr"
+    title: "<b>Throughput:</b> eth-l2bd-{Y}ch-{2XY}mif-{XY}dcr-vppip4-test_type"
     layout: "plot-service-density"
 
-# Plots - NF Density - VSC - PDR IMIX
+###############################################################################
+
+# Plots - NF Density - 2n-clx - CSP - MRR IMIX
 - type: "plot"
-  title: "Packet Throughput: eth-l2bd-{Y}ch-{2XY}vh-{XY}vm-vxlan-vppip4-pdr"
+  title: "Packet Throughput: eth-l2bd-{Y}pl-{2Y}mif-{XY}dcr-vppip4-{test_type}"
   algorithm: "plot_nf_heatmap"
-  output-file-type: ".html"
-  output-file: "{DIR[STATIC,VPP]}/l2bd-2n-skx-xxv710-imix-2t1c-base-vsc-vxlan-pdr"
-  data: "plot-vpp-nfv-2n-skx-ndrpdr"
-  filter: "'NIC_Intel-XXV710' and
-           'NF_DENSITY' and
-           'VHOST' and
-           'VXLAN' and
-           'CHAIN' and
-           'IMIX' and
-           '2T1C' and
-           'NDRPDR'"
-  parameters:
-  - "throughput"
-  - "name"
-  - "tags"
-  include-tests: "PDR" # "PDR" | "NDR" | "MRR"
-  x-axis: "X = VNFs per Service Chain"
-  y-axis: "Y = Number of Service Chains"
-  z-axis: "IMIX Packet Throughput (mean PDR) [Mpps]"
+  output-file: "{DIR[STATIC,VPP]}/l2bd-2n-clx-xxv710-imix-{core}-base-csp-{test_type}"
+  data: "plot-vpp-nfv-2n-clx-mrr"
+  core: ["2t1c", "4t2c", "8t4c"]
+  test-type: ["mrr", ]
+  include:
+    - "Tests.Vpp.Perf.Nfv Density.Dcr Memif.Pipeline.2N-25Ge2P1Xxv710-Avf-Eth-L2Bd-1Pl-2Mif-1Dcr1T-Vppip4-Mrr.IMIX-{core}-avf-eth-l2bd-1pl-2mif-1dcr1t-vppip4-mrr"
+    - "Tests.Vpp.Perf.Nfv Density.Dcr Memif.Pipeline.2N-25Ge2P1Xxv710-Avf-Eth-L2Bd-1Pl-2Mif-2Dcr1T-Vppip4-Mrr.IMIX-{core}-avf-eth-l2bd-1pl-2mif-2dcr1t-vppip4-mrr"
+    - "Tests.Vpp.Perf.Nfv Density.Dcr Memif.Pipeline.2N-25Ge2P1Xxv710-Avf-Eth-L2Bd-1Pl-2Mif-4Dcr1T-Vppip4-Mrr.IMIX-{core}-avf-eth-l2bd-1pl-2mif-4dcr1t-vppip4-mrr"
+    - "Tests.Vpp.Perf.Nfv Density.Dcr Memif.Pipeline.2N-25Ge2P1Xxv710-Avf-Eth-L2Bd-1Pl-2Mif-6Dcr1T-Vppip4-Mrr.IMIX-{core}-avf-eth-l2bd-1pl-2mif-6dcr1t-vppip4-mrr"
+    - "Tests.Vpp.Perf.Nfv Density.Dcr Memif.Pipeline.2N-25Ge2P1Xxv710-Avf-Eth-L2Bd-2Pl-4Mif-2Dcr1T-Vppip4-Mrr.IMIX-{core}-avf-eth-l2bd-2pl-4mif-2dcr1t-vppip4-mrr"
+    - "Tests.Vpp.Perf.Nfv Density.Dcr Memif.Pipeline.2N-25Ge2P1Xxv710-Avf-Eth-L2Bd-2Pl-4Mif-4Dcr1T-Vppip4-Mrr.IMIX-{core}-avf-eth-l2bd-2pl-4mif-4dcr1t-vppip4-mrr"
+    - "Tests.Vpp.Perf.Nfv Density.Dcr Memif.Pipeline.2N-25Ge2P1Xxv710-Avf-Eth-L2Bd-2Pl-8Mif-4Dcr1T-Vppip4-Mrr.IMIX-{core}-avf-eth-l2bd-2pl-8mif-4dcr1t-vppip4-mrr"
+    - "Tests.Vpp.Perf.Nfv Density.Dcr Memif.Pipeline.2N-25Ge2P1Xxv710-Avf-Eth-L2Bd-6Pl-12Mif-6Dcr1T-Vppip4-Mrr.IMIX-{core}-avf-eth-l2bd-6pl-12mif-6dcr1t-vppip4-mrr"
+  x-axis: "X = CNFs per Service Pipeline"
+  y-axis: "Y = Number of Service Pipelines"
+  z-axis: "IMIX Packet Throughput (mean {test_type}) [Mpps]"
   layout:
-    title: "<b>Throughput:</b> eth-l2bd-{Y}ch-{2XY}vh-{XY}vm-vxlan-vppip4-pdr"
+    title: "<b>Throughput:</b> eth-l2bd-{Y}pl-{2Y}mif-{XY}dcr-vppip4-test_type"
     layout: "plot-service-density"
 
+# Plots - NF Density - 2n-clx - CSP - NDRPDR IMIX
 - type: "plot"
-  title: "Packet Throughput: eth-l2bd-{Y}ch-{2XY}vh-{XY}vm-vxlan-vppip4-pdr"
+  title: "Packet Throughput: eth-l2bd-{Y}pl-{2Y}mif-{XY}dcr-vppip4-{test_type}"
   algorithm: "plot_nf_heatmap"
-  output-file-type: ".html"
-  output-file: "{DIR[STATIC,VPP]}/l2bd-2n-skx-xxv710-imix-4t2c-base-vsc-vxlan-pdr"
-  data: "plot-vpp-nfv-2n-skx-ndrpdr"
-  filter: "'NIC_Intel-XXV710' and
-           'NF_DENSITY' and
-           'VHOST' and
-           'VXLAN' and
-           'CHAIN' and
-           'IMIX' and
-           '4T2C' and
-           'NDRPDR'"
-  parameters:
-  - "throughput"
-  - "name"
-  - "tags"
-  include-tests: "PDR" # "PDR" | "NDR" | "MRR"
-  x-axis: "X = VNFs per Service Chain"
-  y-axis: "Y = Number of Service Chains"
-  z-axis: "IMIX Packet Throughput (mean PDR) [Mpps]"
+  output-file: "{DIR[STATIC,VPP]}/l2bd-2n-clx-xxv710-imix-{core}-base-csp-{test_type}"
+  data: "plot-vpp-nfv-2n-clx-ndrpdr"
+  core: ["2t1c", "4t2c", "8t4c"]
+  include:
+    - "Tests.Vpp.Perf.Nfv Density.Dcr Memif.Pipeline.2N-25Ge2P1Xxv710-Avf-Eth-L2Bd-1Pl-2Mif-1Dcr1T-Vppip4-ndrpdr.IMIX-{core}-avf-eth-l2bd-1pl-2mif-1dcr1t-vppip4-ndrpdr"
+    - "Tests.Vpp.Perf.Nfv Density.Dcr Memif.Pipeline.2N-25Ge2P1Xxv710-Avf-Eth-L2Bd-1Pl-2Mif-2Dcr1T-Vppip4-ndrpdr.IMIX-{core}-avf-eth-l2bd-1pl-2mif-2dcr1t-vppip4-ndrpdr"
+    - "Tests.Vpp.Perf.Nfv Density.Dcr Memif.Pipeline.2N-25Ge2P1Xxv710-Avf-Eth-L2Bd-1Pl-2Mif-4Dcr1T-Vppip4-ndrpdr.IMIX-{core}-avf-eth-l2bd-1pl-2mif-4dcr1t-vppip4-ndrpdr"
+    - "Tests.Vpp.Perf.Nfv Density.Dcr Memif.Pipeline.2N-25Ge2P1Xxv710-Avf-Eth-L2Bd-1Pl-2Mif-6Dcr1T-Vppip4-ndrpdr.IMIX-{core}-avf-eth-l2bd-1pl-2mif-6dcr1t-vppip4-ndrpdr"
+    - "Tests.Vpp.Perf.Nfv Density.Dcr Memif.Pipeline.2N-25Ge2P1Xxv710-Avf-Eth-L2Bd-2Pl-4Mif-2Dcr1T-Vppip4-ndrpdr.IMIX-{core}-avf-eth-l2bd-2pl-4mif-2dcr1t-vppip4-ndrpdr"
+    - "Tests.Vpp.Perf.Nfv Density.Dcr Memif.Pipeline.2N-25Ge2P1Xxv710-Avf-Eth-L2Bd-2Pl-4Mif-4Dcr1T-Vppip4-ndrpdr.IMIX-{core}-avf-eth-l2bd-2pl-4mif-4dcr1t-vppip4-ndrpdr"
+    - "Tests.Vpp.Perf.Nfv Density.Dcr Memif.Pipeline.2N-25Ge2P1Xxv710-Avf-Eth-L2Bd-2Pl-8Mif-4Dcr1T-Vppip4-ndrpdr.IMIX-{core}-avf-eth-l2bd-2pl-8mif-4dcr1t-vppip4-ndrpdr"
+    - "Tests.Vpp.Perf.Nfv Density.Dcr Memif.Pipeline.2N-25Ge2P1Xxv710-Avf-Eth-L2Bd-6Pl-12Mif-6Dcr1T-Vppip4-ndrpdr.IMIX-{core}-avf-eth-l2bd-6pl-12mif-6dcr1t-vppip4-ndrpdr"
+  x-axis: "X = CNFs per Service Pipeline"
+  y-axis: "Y = Number of Service Pipelines"
+  z-axis: "IMIX Packet Throughput (mean {test_type}) [Mpps]"
   layout:
-    title: "<b>Throughput:</b> eth-l2bd-{Y}ch-{2XY}vh-{XY}vm-vxlan-vppip4-pdr"
+    title: "<b>Throughput:</b> eth-l2bd-{Y}pl-{2Y}mif-{XY}dcr-vppip4-test_type"
     layout: "plot-service-density"
 
+################################################################################
+
+# Packet Throughput
+
 - type: "plot"
-  title: "Packet Throughput: eth-l2bd-{Y}ch-{2XY}vh-{XY}vm-vxlan-vppip4-pdr"
-  algorithm: "plot_nf_heatmap"
-  output-file-type: ".html"
-  output-file: "{DIR[STATIC,VPP]}/l2bd-2n-skx-xxv710-imix-8t4c-base-vsc-vxlan-pdr"
-  data: "plot-vpp-nfv-2n-skx-ndrpdr"
-  filter: "'NIC_Intel-XXV710' and
-           'NF_DENSITY' and
-           'VHOST' and
-           'VXLAN' and
-           'CHAIN' and
-           'IMIX' and
-           '8T4C' and
-           'NDRPDR'"
-  parameters:
-  - "throughput"
-  - "name"
-  - "tags"
-  include-tests: "PDR" # "PDR" | "NDR" | "MRR"
-  x-axis: "X = VNFs per Service Chain"
-  y-axis: "Y = Number of Service Chains"
-  z-axis: "IMIX Packet Throughput (mean PDR) [Mpps]"
+  title: "Throughput: 2n-skx-xxv710-64b-{core}-memif-base-avf-{test_type}"
+  algorithm: "plot_ndrpdr_box_name"
+  output-file: "{DIR[STATIC,VPP]}/2n-skx-xxv710-64b-{core}-memif-base-avf-{test_type}"
+  data: "plot-vpp-throughput-lat-tsa-2n-skx"
+  core: ["2t1c", ]
+  include:
+    - "Tests.Vpp.Perf.Container Memif.2N1L-25Ge2P1Xxv710-Avf-Eth-L2Xcbase-Eth-2Memif-1Dcr-Ndrpdr.64B-{core}-avf-eth-l2xcbase-eth-2memif-1dcr-ndrpdr"
+    - "Tests.Vpp.Perf.Container Memif.2N1L-25Ge2P1Xxv710-Avf-Dot1Q-L2Bdbasemaclrn-Eth-2Memif-1Dcr-Ndrpdr.64B-{core}-avf-dot1q-l2bdbasemaclrn-eth-2memif-1dcr-ndrpdr"
+    - "Tests.Vpp.Perf.Container Memif.2N1L-25Ge2P1Xxv710-Avf-Eth-L2Bdbasemaclrn-Eth-2Memif-1Dcr-Ndrpdr.64B-{core}-avf-eth-l2bdbasemaclrn-eth-2memif-1dcr-ndrpdr"
+    - "Tests.Vpp.Perf.Container Memif.2N1L-25Ge2P1Xxv710-Avf-Ethip4-Ip4Base-Eth-2Memif-1Dcr-Ndrpdr.64B-{core}-avf-ethip4-ip4base-eth-2memif-1dcr-ndrpdr"
   layout:
-    title: "<b>Throughput:</b> eth-l2bd-{Y}ch-{2XY}vh-{XY}vm-vxlan-vppip4-pdr"
-    layout: "plot-service-density"
-
-###############################################################################
+    title: "2n-skx-xxv710-64b-{core}-memif-base-avf-{test_type}"
+    layout: "plot-throughput"
 
-# Plots - NF Density - CSC - MRR IMIX
 - type: "plot"
-  title: "Packet Throughput: eth-l2bd-{Y}ch-{2XY}mif-{XY}dcr-vppip4-mrr"
-  algorithm: "plot_nf_heatmap"
-  output-file-type: ".html"
-  output-file: "{DIR[STATIC,VPP]}/l2bd-2n-skx-xxv710-imix-2t1c-base-csc-mrr"
-  data: "plot-vpp-nfv-2n-skx-mrr"
-  filter: "'NIC_Intel-XXV710' and
-           'NF_DENSITY' and
-           'DOCKER' and
-           'CHAIN' and
-           'NF_VPPIP4' and
-           'IMIX' and
-           '2T1C' and
-           'MRR'"
-  parameters:
-  - "result"
-  - "name"
-  - "tags"
-  include-tests: "MRR" # "PDR" | "NDR" | "MRR"
-  x-axis: "X = CNFs per Service Chain"
-  y-axis: "Y = Number of Service Chains"
-  z-axis: "IMIX Packet Throughput (mean MRR) [Mpps]"
+  title: "Throughput: 2n-skx-xxv710-64b-{core}-memif-base-dpdk-{test_type}"
+  algorithm: "plot_ndrpdr_box_name"
+  output-file: "{DIR[STATIC,VPP]}/2n-skx-xxv710-64b-{core}-memif-base-dpdk-{test_type}"
+  data: "plot-vpp-throughput-lat-tsa-2n-skx"
+  core: ["2t1c", ]
+  include:
+    - "Tests.Vpp.Perf.Container Memif.2N1L-25Ge2P1Xxv710-Eth-L2Xcbase-Eth-2Memif-1Dcr-Ndrpdr.64B-{core}-eth-l2xcbase-eth-2memif-1dcr-ndrpdr"
+    - "Tests.Vpp.Perf.Container Memif.2N1L-25Ge2P1Xxv710-Dot1Q-L2Bdbasemaclrn-Eth-2Memif-1Dcr-Ndrpdr.64B-{core}-dot1q-l2bdbasemaclrn-eth-2memif-1dcr-ndrpdr"
+    - "Tests.Vpp.Perf.Container Memif.2N1L-25Ge2P1Xxv710-Eth-L2Bdbasemaclrn-Eth-2Memif-1Dcr-Ndrpdr.64B-{core}-eth-l2bdbasemaclrn-eth-2memif-1dcr-ndrpdr"
+    - "Tests.Vpp.Perf.Container Memif.2N1L-25Ge2P1Xxv710-Ethip4-Ip4Base-Eth-2Memif-1Dcr-Ndrpdr.64B-{core}-ethip4-ip4base-eth-2memif-1dcr-ndrpdr"
   layout:
-    title: "<b>Throughput:</b> eth-l2bd-{Y}ch-{2XY}mif-{XY}dcr-vppip4-mrr"
-    layout: "plot-service-density"
+    title: "2n-skx-xxv710-64b-{core}-memif-base-dpdk-{test_type}"
+    layout: "plot-throughput"
 
 - type: "plot"
-  title: "Packet Throughput: eth-l2bd-{Y}ch-{2XY}mif-{XY}dcr-vppip4-mrr"
-  algorithm: "plot_nf_heatmap"
-  output-file-type: ".html"
-  output-file: "{DIR[STATIC,VPP]}/l2bd-2n-skx-xxv710-imix-4t2c-base-csc-mrr"
-  data: "plot-vpp-nfv-2n-skx-mrr"
-  filter: "'NIC_Intel-XXV710' and
-           'NF_DENSITY' and
-           'DOCKER' and
-           'CHAIN' and
-           'NF_VPPIP4' and
-           'IMIX' and
-           '4T2C' and
-           'MRR'"
-  parameters:
-  - "result"
-  - "name"
-  - "tags"
-  include-tests: "MRR" # "PDR" | "NDR" | "MRR"
-  x-axis: "X = CNFs per Service Chain"
-  y-axis: "Y = Number of Service Chains"
-  z-axis: "IMIX Packet Throughput (mean MRR) [Mpps]"
+  title: "Throughput: 3n-skx-xxv710-64b-{core}-memif-base-avf-{test_type}"
+  algorithm: "plot_ndrpdr_box_name"
+  output-file: "{DIR[STATIC,VPP]}/3n-skx-xxv710-64b-{core}-memif-base-avf-{test_type}"
+  data: "plot-vpp-throughput-lat-tsa-3n-skx"
+  core: ["2t1c", ]
+  include:
+    - "Tests.Vpp.Perf.Container Memif.25Ge2P1Xxv710-Avf-Eth-L2Xcbase-Eth-2Memif-1Dcr-Ndrpdr.64B-{core}-avf-eth-l2xcbase-eth-2memif-1dcr-ndrpdr"
+    - "Tests.Vpp.Perf.Container Memif.25Ge2P1Xxv710-Avf-Eth-L2Xcbase-Eth-2Memif-1Lxc-Ndrpdr.64B-{core}-avf-eth-l2xcbase-eth-2memif-1lxc-ndrpdr"
+    - "Tests.Vpp.Perf.Container Memif.25Ge2P1Xxv710-Avf-Dot1Q-L2Bdbasemaclrn-Eth-2Memif-1Dcr-Ndrpdr.64B-{core}-avf-dot1q-l2bdbasemaclrn-eth-2memif-1dcr-ndrpdr"
+    - "Tests.Vpp.Perf.Container Memif.25Ge2P1Xxv710-Avf-Eth-L2Bdbasemaclrn-Eth-2Memif-1Lxc-Ndrpdr.64B-{core}-avf-eth-l2bdbasemaclrn-eth-2memif-1lxc-ndrpdr"
+    - "Tests.Vpp.Perf.Container Memif.25Ge2P1Xxv710-Avf-Ethip4-Ip4Base-Eth-2Memif-1Dcr-Ndrpdr.64B-{core}-avf-ethip4-ip4base-eth-2memif-1dcr-ndrpdr"
   layout:
-    title: "<b>Throughput:</b> eth-l2bd-{Y}ch-{2XY}mif-{XY}dcr-vppip4-mrr"
-    layout: "plot-service-density"
+    title: "3n-skx-xxv710-64b-{core}-memif-base-avf-{test_type}"
+    layout: "plot-throughput"
 
 - type: "plot"
-  title: "Packet Throughput: eth-l2bd-{Y}ch-{2XY}mif-{XY}dcr-vppip4-mrr"
-  algorithm: "plot_nf_heatmap"
-  output-file-type: ".html"
-  output-file: "{DIR[STATIC,VPP]}/l2bd-2n-skx-xxv710-imix-8t4c-base-csc-mrr"
-  data: "plot-vpp-nfv-2n-skx-mrr"
-  filter: "'NIC_Intel-XXV710' and
-           'NF_DENSITY' and
-           'DOCKER' and
-           'CHAIN' and
-           'NF_VPPIP4' and
-           'IMIX' and
-           '8T4C' and
-           'MRR'"
-  parameters:
-  - "result"
-  - "name"
-  - "tags"
-  include-tests: "MRR" # "PDR" | "NDR" | "MRR"
-  x-axis: "X = CNFs per Service Chain"
-  y-axis: "Y = Number of Service Chains"
-  z-axis: "IMIX Packet Throughput (mean MRR) [Mpps]"
-  layout:
-    title: "<b>Throughput:</b> eth-l2bd-{Y}ch-{2XY}mif-{XY}dcr-vppip4-mrr"
-    layout: "plot-service-density"
-
-# Plots - NF Density - CSC - NDR IMIX
-- type: "plot"
-  title: "Packet Throughput: eth-l2bd-{Y}ch-{2XY}mif-{XY}dcr-vppip4-ndr"
-  algorithm: "plot_nf_heatmap"
-  output-file-type: ".html"
-  output-file: "{DIR[STATIC,VPP]}/l2bd-2n-skx-xxv710-imix-2t1c-base-csc-ndr"
-  data: "plot-vpp-nfv-2n-skx-ndrpdr"
-  filter: "'NIC_Intel-XXV710' and
-           'NF_DENSITY' and
-           'DOCKER' and
-           'CHAIN' and
-           'NF_VPPIP4' and
-           'IMIX' and
-           '2T1C' and
-           'NDRPDR'"
-  parameters:
-  - "throughput"
-  - "name"
-  - "tags"
-  include-tests: "NDR" # "PDR" | "NDR" | "MRR"
-  x-axis: "X = CNFs per Service Chain"
-  y-axis: "Y = Number of Service Chains"
-  z-axis: "IMIX Packet Throughput (mean NDR) [Mpps]"
-  layout:
-    title: "<b>Throughput:</b> eth-l2bd-{Y}ch-{2XY}mif-{XY}dcr-vppip4-ndr"
-    layout: "plot-service-density"
-
-- type: "plot"
-  title: "Packet Throughput: eth-l2bd-{Y}ch-{2XY}mif-{XY}dcr-vppip4-ndr"
-  algorithm: "plot_nf_heatmap"
-  output-file-type: ".html"
-  output-file: "{DIR[STATIC,VPP]}/l2bd-2n-skx-xxv710-imix-4t2c-base-csc-ndr"
-  data: "plot-vpp-nfv-2n-skx-ndrpdr"
-  filter: "'NIC_Intel-XXV710' and
-           'NF_DENSITY' and
-           'DOCKER' and
-           'CHAIN' and
-           'NF_VPPIP4' and
-           'IMIX' and
-           '4T2C' and
-           'NDRPDR'"
-  parameters:
-  - "throughput"
-  - "name"
-  - "tags"
-  include-tests: "NDR" # "PDR" | "NDR" | "MRR"
-  x-axis: "X = CNFs per Service Chain"
-  y-axis: "Y = Number of Service Chains"
-  z-axis: "IMIX Packet Throughput (mean NDR) [Mpps]"
-  layout:
-    title: "<b>Throughput:</b> eth-l2bd-{Y}ch-{2XY}mif-{XY}dcr-vppip4-ndr"
-    layout: "plot-service-density"
-
-- type: "plot"
-  title: "Packet Throughput: eth-l2bd-{Y}ch-{2XY}mif-{XY}dcr-vppip4-ndr"
-  algorithm: "plot_nf_heatmap"
-  output-file-type: ".html"
-  output-file: "{DIR[STATIC,VPP]}/l2bd-2n-skx-xxv710-imix-8t4c-base-csc-ndr"
-  data: "plot-vpp-nfv-2n-skx-ndrpdr"
-  filter: "'NIC_Intel-XXV710' and
-           'NF_DENSITY' and
-           'DOCKER' and
-           'CHAIN' and
-           'NF_VPPIP4' and
-           'IMIX' and
-           '8T4C' and
-           'NDRPDR'"
-  parameters:
-  - "throughput"
-  - "name"
-  - "tags"
-  include-tests: "NDR" # "PDR" | "NDR" | "MRR"
-  x-axis: "X = CNFs per Service Chain"
-  y-axis: "Y = Number of Service Chains"
-  z-axis: "IMIX Packet Throughput (mean NDR) [Mpps]"
-  layout:
-    title: "<b>Throughput:</b> eth-l2bd-{Y}ch-{2XY}mif-{XY}dcr-vppip4-ndr"
-    layout: "plot-service-density"
-
-# Plots - NF Density - CSC - PDR IMIX
-- type: "plot"
-  title: "Packet Throughput: eth-l2bd-{Y}ch-{2XY}mif-{XY}dcr-vppip4-pdr"
-  algorithm: "plot_nf_heatmap"
-  output-file-type: ".html"
-  output-file: "{DIR[STATIC,VPP]}/l2bd-2n-skx-xxv710-imix-2t1c-base-csc-pdr"
-  data: "plot-vpp-nfv-2n-skx-ndrpdr"
-  filter: "'NIC_Intel-XXV710' and
-           'NF_DENSITY' and
-           'DOCKER' and
-           'CHAIN' and
-           'NF_VPPIP4' and
-           'IMIX' and
-           '2T1C' and
-           'NDRPDR'"
-  parameters:
-  - "throughput"
-  - "name"
-  - "tags"
-  include-tests: "PDR" # "PDR" | "NDR" | "MRR"
-  x-axis: "X = CNFs per Service Chain"
-  y-axis: "Y = Number of Service Chains"
-  z-axis: "IMIX Packet Throughput (mean PDR) [Mpps]"
-  layout:
-    title: "<b>Throughput:</b> eth-l2bd-{Y}ch-{2XY}mif-{XY}dcr-vppip4-pdr"
-    layout: "plot-service-density"
-
-- type: "plot"
-  title: "Packet Throughput: eth-l2bd-{Y}ch-{2XY}mif-{XY}dcr-vppip4-pdr"
-  algorithm: "plot_nf_heatmap"
-  output-file-type: ".html"
-  output-file: "{DIR[STATIC,VPP]}/l2bd-2n-skx-xxv710-imix-4t2c-base-csc-pdr"
-  data: "plot-vpp-nfv-2n-skx-ndrpdr"
-  filter: "'NIC_Intel-XXV710' and
-           'NF_DENSITY' and
-           'DOCKER' and
-           'CHAIN' and
-           'NF_VPPIP4' and
-           'IMIX' and
-           '4T2C' and
-           'NDRPDR'"
-  parameters:
-  - "throughput"
-  - "name"
-  - "tags"
-  include-tests: "PDR" # "PDR" | "NDR" | "MRR"
-  x-axis: "X = CNFs per Service Chain"
-  y-axis: "Y = Number of Service Chains"
-  z-axis: "IMIX Packet Throughput (mean PDR) [Mpps]"
-  layout:
-    title: "<b>Throughput:</b> eth-l2bd-{Y}ch-{2XY}mif-{XY}dcr-vppip4-pdr"
-    layout: "plot-service-density"
-
-- type: "plot"
-  title: "Packet Throughput: eth-l2bd-{Y}ch-{2XY}mif-{XY}dcr-vppip4-pdr"
-  algorithm: "plot_nf_heatmap"
-  output-file-type: ".html"
-  output-file: "{DIR[STATIC,VPP]}/l2bd-2n-skx-xxv710-imix-8t4c-base-csc-pdr"
-  data: "plot-vpp-nfv-2n-skx-ndrpdr"
-  filter: "'NIC_Intel-XXV710' and
-           'NF_DENSITY' and
-           'DOCKER' and
-           'CHAIN' and
-           'NF_VPPIP4' and
-           'IMIX' and
-           '8T4C' and
-           'NDRPDR'"
-  parameters:
-  - "throughput"
-  - "name"
-  - "tags"
-  include-tests: "PDR" # "PDR" | "NDR" | "MRR"
-  x-axis: "X = CNFs per Service Chain"
-  y-axis: "Y = Number of Service Chains"
-  z-axis: "IMIX Packet Throughput (mean PDR) [Mpps]"
-  layout:
-    title: "<b>Throughput:</b> eth-l2bd-{Y}ch-{2XY}mif-{XY}dcr-vppip4-pdr"
-    layout: "plot-service-density"
-
-################################################################################
-#
-## Plots - NF Density - CSC IPSEC 4tnl - MRR IMIX
-#- type: "plot"
-#  title: "Packet Throughput: eth-l2bd-{Y}ch-{2XY}mif-{XY}dcr-4tnl-vppip4-mrr"
-#  algorithm: "plot_nf_heatmap"
-#  output-file: "{DIR[STATIC,VPP]}/l2bd-3n-skx-xxv710-imix-2t1c-ipsec-4tnl-csc-mrr"
-#  data: "plot-vpp-nfv-3n-skx-mrr"
-#  filter: "'NIC_Intel-XXV710' and
-#           'NF_DENSITY' and
-#           'DOCKER' and
-#           'CHAIN' and
-#           'NF_VPPIP4' and
-#           'IPSEC' and
-#           'TNL_4' and
-#           'IMIX' and
-#           '2T1C' and
-#           'MRR'"
-#  parameters:
-#  - "result"
-#  - "name"
-#  - "tags"
-#  include-tests: "MRR" # "PDR" | "NDR" | "MRR"
-#  x-axis: "X = CNFs per Service Chain"
-#  y-axis: "Y = Number of Service Chains"
-#  z-axis: "IMIX Packet Throughput (mean MRR) [Mpps]"
-#  layout:
-#    title: "<b>Throughput:</b> eth-l2bd-{Y}ch-{2XY}mif-{XY}dcr-4tnl-vppip4-mrr"
-#    layout: "plot-service-density"
-#
-#- type: "plot"
-#  title: "Packet Throughput: eth-l2bd-{Y}ch-{2XY}mif-{XY}dcr-4tnl-vppip4-mrr"
-#  algorithm: "plot_nf_heatmap"
-#  output-file: "{DIR[STATIC,VPP]}/l2bd-3n-skx-xxv710-imix-4t2c-ipsec-4tnl-csc-mrr"
-#  data: "plot-vpp-nfv-3n-skx-mrr"
-#  filter: "'NIC_Intel-XXV710' and
-#           'NF_DENSITY' and
-#           'DOCKER' and
-#           'CHAIN' and
-#           'NF_VPPIP4' and
-#           'IPSEC' and
-#           'TNL_4' and
-#           'IMIX' and
-#           '4T2C' and
-#           'MRR'"
-#  parameters:
-#  - "result"
-#  - "name"
-#  - "tags"
-#  include-tests: "MRR" # "PDR" | "NDR" | "MRR"
-#  x-axis: "X = CNFs per Service Chain"
-#  y-axis: "Y = Number of Service Chains"
-#  z-axis: "IMIX Packet Throughput (mean MRR) [Mpps]"
-#  layout:
-#    title: "<b>Throughput:</b> eth-l2bd-{Y}ch-{2XY}mif-{XY}dcr-4tnl-vppip4-mrr"
-#    layout: "plot-service-density"
-#
-#- type: "plot"
-#  title: "Packet Throughput: eth-l2bd-{Y}ch-{2XY}mif-{XY}dcr-4tnl-vppip4-mrr"
-#  algorithm: "plot_nf_heatmap"
-#  output-file: "{DIR[STATIC,VPP]}/l2bd-3n-skx-xxv710-imix-8t4c-ipsec-4tnl-csc-mrr"
-#  data: "plot-vpp-nfv-3n-skx-mrr"
-#  filter: "'NIC_Intel-XXV710' and
-#           'NF_DENSITY' and
-#           'DOCKER' and
-#           'CHAIN' and
-#           'NF_VPPIP4' and
-#           'IPSEC' and
-#           'TNL_4' and
-#           'IMIX' and
-#           '8T4C' and
-#           'MRR'"
-#  parameters:
-#  - "result"
-#  - "name"
-#  - "tags"
-#  include-tests: "MRR" # "PDR" | "NDR" | "MRR"
-#  x-axis: "X = CNFs per Service Chain"
-#  y-axis: "Y = Number of Service Chains"
-#  z-axis: "IMIX Packet Throughput (mean MRR) [Mpps]"
-#  layout:
-#    title: "<b>Throughput:</b> eth-l2bd-{Y}ch-{2XY}mif-{XY}dcr-4tnl-vppip4-mrr"
-#    layout: "plot-service-density"
-
-## Plots - NF Density - CSC IPSEC 4tnl - NDR IMIX
-#- type: "plot"
-#  title: "Packet Throughput: eth-l2bd-{Y}ch-{2XY}mif-{XY}dcr-4tnl-vppip4-ndr"
-#  algorithm: "plot_nf_heatmap"
-#  output-file: "{DIR[STATIC,VPP]}/l2bd-3n-skx-xxv710-imix-2t1c-ipsec-4tnl-csc-ndr"
-#  data: "plot-vpp-nfv-3n-skx-ndrpdr"
-#  filter: "'NIC_Intel-XXV710' and
-#           'NF_DENSITY' and
-#           'DOCKER' and
-#           'CHAIN' and
-#           'NF_VPPIP4' and
-#           'IPSEC' and
-#           'TNL_4' and
-#           'IMIX' and
-#           '2T1C' and
-#           'NDRPDR'"
-#  parameters:
-#  - "throughput"
-#  - "name"
-#  - "tags"
-#  include-tests: "NDR" # "PDR" | "NDR" | "MRR"
-#  x-axis: "X = CNFs per Service Chain"
-#  y-axis: "Y = Number of Service Chains"
-#  z-axis: "IMIX Packet Throughput (mean NDR) [Mpps]"
-#  layout:
-#    title: "<b>Throughput:</b> eth-l2bd-{Y}ch-{2XY}mif-{XY}dcr-4tnl-vppip4-ndr"
-#    layout: "plot-service-density"
-#
-#- type: "plot"
-#  title: "Packet Throughput: eth-l2bd-{Y}ch-{2XY}mif-{XY}dcr-4tnl-vppip4-ndr"
-#  algorithm: "plot_nf_heatmap"
-#  output-file: "{DIR[STATIC,VPP]}/l2bd-3n-skx-xxv710-imix-4t2c-ipsec-4tnl-csc-ndr"
-#  data: "plot-vpp-nfv-3n-skx-ndrpdr"
-#  filter: "'NIC_Intel-XXV710' and
-#           'NF_DENSITY' and
-#           'DOCKER' and
-#           'CHAIN' and
-#           'NF_VPPIP4' and
-#           'IPSEC' and
-#           'TNL_4' and
-#           'IMIX' and
-#           '4T2C' and
-#           'NDRPDR'"
-#  parameters:
-#  - "throughput"
-#  - "name"
-#  - "tags"
-#  include-tests: "NDR" # "PDR" | "NDR" | "MRR"
-#  x-axis: "X = CNFs per Service Chain"
-#  y-axis: "Y = Number of Service Chains"
-#  z-axis: "IMIX Packet Throughput (mean NDR) [Mpps]"
-#  layout:
-#    title: "<b>Throughput:</b> eth-l2bd-{Y}ch-{2XY}mif-{XY}dcr-4tnl-vppip4-ndr"
-#    layout: "plot-service-density"
-#
-#- type: "plot"
-#  title: "Packet Throughput: eth-l2bd-{Y}ch-{2XY}mif-{XY}dcr-4tnl-vppip4-ndr"
-#  algorithm: "plot_nf_heatmap"
-#  output-file: "{DIR[STATIC,VPP]}/l2bd-3n-skx-xxv710-imix-8t4c-ipsec-4tnl-csc-ndr"
-#  data: "plot-vpp-nfv-3n-skx-ndrpdr"
-#  filter: "'NIC_Intel-XXV710' and
-#           'NF_DENSITY' and
-#           'DOCKER' and
-#           'CHAIN' and
-#           'NF_VPPIP4' and
-#           'IPSEC' and
-#           'TNL_4' and
-#           'IMIX' and
-#           '8T4C' and
-#           'NDRPDR'"
-#  parameters:
-#  - "throughput"
-#  - "name"
-#  - "tags"
-#  include-tests: "NDR" # "PDR" | "NDR" | "MRR"
-#  x-axis: "X = CNFs per Service Chain"
-#  y-axis: "Y = Number of Service Chains"
-#  z-axis: "IMIX Packet Throughput (mean NDR) [Mpps]"
-#  layout:
-#    title: "<b>Throughput:</b> eth-l2bd-{Y}ch-{2XY}mif-{XY}dcr-4tnl-vppip4-ndr"
-#    layout: "plot-service-density"
-#
-## Plots - NF Density - CSC IPSEC 4tnl - PDR IMIX
-#- type: "plot"
-#  title: "Packet Throughput: eth-l2bd-{Y}ch-{2XY}mif-{XY}dcr-4tnl-vppip4-pdr"
-#  algorithm: "plot_nf_heatmap"
-#  output-file: "{DIR[STATIC,VPP]}/l2bd-3n-skx-xxv710-imix-2t1c-ipsec-4tnl-csc-pdr"
-#  data: "plot-vpp-nfv-3n-skx-ndrpdr"
-#  filter: "'NIC_Intel-XXV710' and
-#           'NF_DENSITY' and
-#           'DOCKER' and
-#           'CHAIN' and
-#           'NF_VPPIP4' and
-#           'IPSEC' and
-#           'TNL_4' and
-#           'IMIX' and
-#           '2T1C' and
-#           'NDRPDR'"
-#  parameters:
-#  - "throughput"
-#  - "name"
-#  - "tags"
-#  include-tests: "PDR" # "PDR" | "NDR" | "MRR"
-#  x-axis: "X = CNFs per Service Chain"
-#  y-axis: "Y = Number of Service Chains"
-#  z-axis: "IMIX Packet Throughput (mean PDR) [Mpps]"
-#  layout:
-#    title: "<b>Throughput:</b> eth-l2bd-{Y}ch-{2XY}mif-{XY}dcr-4tnl-vppip4-pdr"
-#    layout: "plot-service-density"
-#
-#- type: "plot"
-#  title: "Packet Throughput: eth-l2bd-{Y}ch-{2XY}mif-{XY}dcr-4tnl-vppip4-pdr"
-#  algorithm: "plot_nf_heatmap"
-#  output-file: "{DIR[STATIC,VPP]}/l2bd-3n-skx-xxv710-imix-4t2c-ipsec-4tnl-csc-pdr"
-#  data: "plot-vpp-nfv-3n-skx-ndrpdr"
-#  filter: "'NIC_Intel-XXV710' and
-#           'NF_DENSITY' and
-#           'DOCKER' and
-#           'CHAIN' and
-#           'NF_VPPIP4' and
-#           'IPSEC' and
-#           'TNL_4' and
-#           'IMIX' and
-#           '4T2C' and
-#           'NDRPDR'"
-#  parameters:
-#  - "throughput"
-#  - "name"
-#  - "tags"
-#  include-tests: "PDR" # "PDR" | "NDR" | "MRR"
-#  x-axis: "X = CNFs per Service Chain"
-#  y-axis: "Y = Number of Service Chains"
-#  z-axis: "IMIX Packet Throughput (mean PDR) [Mpps]"
-#  layout:
-#    title: "<b>Throughput:</b> eth-l2bd-{Y}ch-{2XY}mif-{XY}dcr-4tnl-vppip4-pdr"
-#    layout: "plot-service-density"
-#
-#- type: "plot"
-#  title: "Packet Throughput: eth-l2bd-{Y}ch-{2XY}mif-{XY}dcr-4tnl-vppip4-pdr"
-#  algorithm: "plot_nf_heatmap"
-#  output-file: "{DIR[STATIC,VPP]}/l2bd-3n-skx-xxv710-imix-8t4c-ipsec-4tnl-csc-pdr"
-#  data: "plot-vpp-nfv-3n-skx-ndrpdr"
-#  filter: "'NIC_Intel-XXV710' and
-#           'NF_DENSITY' and
-#           'DOCKER' and
-#           'CHAIN' and
-#           'NF_VPPIP4' and
-#           'IPSEC' and
-#           'TNL_4' and
-#           'IMIX' and
-#           '8T4C' and
-#           'NDRPDR'"
-#  parameters:
-#  - "throughput"
-#  - "name"
-#  - "tags"
-#  include-tests: "PDR" # "PDR" | "NDR" | "MRR"
-#  x-axis: "X = CNFs per Service Chain"
-#  y-axis: "Y = Number of Service Chains"
-#  z-axis: "IMIX Packet Throughput (mean PDR) [Mpps]"
-#  layout:
-#    title: "<b>Throughput:</b> eth-l2bd-{Y}ch-{2XY}mif-{XY}dcr-4tnl-vppip4-pdr"
-#    layout: "plot-service-density"
-
-###############################################################################
-
-## Plots - NF Density - CSC IPSEC 4tnl - MRR IMIX
-#- type: "plot"
-#  title: "Packet Throughput: eth-l2bd-{Y}ch-{2XY}mif-{XY}dcr-4tnl-vppip4-mrr"
-#  algorithm: "plot_nf_heatmap"
-#  output-file: "{DIR[STATIC,VPP]}/l2bd-3n-hsw-xl710-imix-1t1c-ipsec-4tnl-csc-mrr"
-#  data: "plot-vpp-nfv-3n-hsw-mrr"
-#  filter: "'NIC_Intel-XL710' and
-#           'NF_DENSITY' and
-#           'DOCKER' and
-#           'CHAIN' and
-#           'NF_VPPIP4' and
-#           'IMIX' and
-#           'TNL_4' and
-#           '1T1C' and
-#           'MRR'"
-#  parameters:
-#  - "result"
-#  - "name"
-#  - "tags"
-#  include-tests: "MRR" # "PDR" | "NDR" | "MRR"
-#  x-axis: "X = CNFs per Service Chain"
-#  y-axis: "Y = Number of Service Chains"
-#  z-axis: "IMIX Packet Throughput (mean MRR) [Mpps]"
-#  layout:
-#    title: "<b>Throughput:</b> eth-l2bd-{Y}ch-{2XY}mif-{XY}dcr-4tnl-vppip4-mrr"
-#    layout: "plot-service-density"
-#
-#- type: "plot"
-#  title: "Packet Throughput: eth-l2bd-{Y}ch-{2XY}mif-{XY}dcr-4tnl-vppip4-mrr"
-#  algorithm: "plot_nf_heatmap"
-#  output-file: "{DIR[STATIC,VPP]}/l2bd-3n-hsw-xl710-imix-2t2c-ipsec-4tnl-csc-mrr"
-#  data: "plot-vpp-nfv-3n-hsw-mrr"
-#  filter: "'NIC_Intel-XL710' and
-#           'NF_DENSITY' and
-#           'DOCKER' and
-#           'CHAIN' and
-#           'NF_VPPIP4' and
-#           'IPSEC' and
-#           'TNL_4' and
-#           'IMIX' and
-#           '2T2C' and
-#           'MRR'"
-#  parameters:
-#  - "result"
-#  - "name"
-#  - "tags"
-#  include-tests: "MRR" # "PDR" | "NDR" | "MRR"
-#  x-axis: "X = CNFs per Service Chain"
-#  y-axis: "Y = Number of Service Chains"
-#  z-axis: "IMIX Packet Throughput (mean MRR) [Mpps]"
-#  layout:
-#    title: "<b>Throughput:</b> eth-l2bd-{Y}ch-{2XY}mif-{XY}dcr-4tnl-vppip4-mrr"
-#    layout: "plot-service-density"
-#
-#- type: "plot"
-#  title: "Packet Throughput: eth-l2bd-{Y}ch-{2XY}mif-{XY}dcr-4tnl-vppip4-mrr"
-#  algorithm: "plot_nf_heatmap"
-#  output-file: "{DIR[STATIC,VPP]}/l2bd-3n-hsw-xl710-imix-4t4c-ipsec-4tnl-csc-mrr"
-#  data: "plot-vpp-nfv-3n-hsw-mrr"
-#  filter: "'NIC_Intel-XL710' and
-#           'NF_DENSITY' and
-#           'DOCKER' and
-#           'CHAIN' and
-#           'NF_VPPIP4' and
-#           'IPSEC' and
-#           'TNL_4' and
-#           'IMIX' and
-#           '4T4C' and
-#           'MRR'"
-#  parameters:
-#  - "result"
-#  - "name"
-#  - "tags"
-#  include-tests: "MRR" # "PDR" | "NDR" | "MRR"
-#  x-axis: "X = CNFs per Service Chain"
-#  y-axis: "Y = Number of Service Chains"
-#  z-axis: "IMIX Packet Throughput (mean MRR) [Mpps]"
-#  layout:
-#    title: "<b>Throughput:</b> eth-l2bd-{Y}ch-{2XY}mif-{XY}dcr-4tnl-vppip4-mrr"
-#    layout: "plot-service-density"
-
-## Plots - NF Density - CSC IPSEC 4tnl - NDR IMIX
-#- type: "plot"
-#  title: "Packet Throughput: eth-l2bd-{Y}ch-{2XY}mif-{XY}dcr-4tnl-vppip4-ndr"
-#  algorithm: "plot_nf_heatmap"
-#  output-file: "{DIR[STATIC,VPP]}/l2bd-3n-hsw-xl710-imix-1t1c-ipsec-4tnl-csc-ndr"
-#  data: "plot-vpp-nfv-3n-hsw-ndrpdr"
-#  filter: "'NIC_Intel-XL710' and
-#           'NF_DENSITY' and
-#           'DOCKER' and
-#           'CHAIN' and
-#           'NF_VPPIP4' and
-#           'IPSEC' and
-#           'TNL_4' and
-#           'IMIX' and
-#           '1T1C' and
-#           'NDRPDR'"
-#  parameters:
-#  - "throughput"
-#  - "name"
-#  - "tags"
-#  include-tests: "NDR" # "PDR" | "NDR" | "MRR"
-#  x-axis: "X = CNFs per Service Chain"
-#  y-axis: "Y = Number of Service Chains"
-#  z-axis: "IMIX Packet Throughput (mean NDR) [Mpps]"
-#  layout:
-#    title: "<b>Throughput:</b> eth-l2bd-{Y}ch-{2XY}mif-{XY}dcr-4tnl-vppip4-ndr"
-#    layout: "plot-service-density"
-#
-#- type: "plot"
-#  title: "Packet Throughput: eth-l2bd-{Y}ch-{2XY}mif-{XY}dcr-4tnl-vppip4-ndr"
-#  algorithm: "plot_nf_heatmap"
-#  output-file: "{DIR[STATIC,VPP]}/l2bd-3n-hsw-xl710-imix-2t2c-ipsec-4tnl-csc-ndr"
-#  data: "plot-vpp-nfv-3n-hsw-ndrpdr"
-#  filter: "'NIC_Intel-XL710' and
-#           'NF_DENSITY' and
-#           'DOCKER' and
-#           'CHAIN' and
-#           'NF_VPPIP4' and
-#           'IPSEC' and
-#           'TNL_4' and
-#           'IMIX' and
-#           '2T2C' and
-#           'NDRPDR'"
-#  parameters:
-#  - "throughput"
-#  - "name"
-#  - "tags"
-#  include-tests: "NDR" # "PDR" | "NDR" | "MRR"
-#  x-axis: "X = CNFs per Service Chain"
-#  y-axis: "Y = Number of Service Chains"
-#  z-axis: "IMIX Packet Throughput (mean NDR) [Mpps]"
-#  layout:
-#    title: "<b>Throughput:</b> eth-l2bd-{Y}ch-{2XY}mif-{XY}dcr-4tnl-vppip4-ndr"
-#    layout: "plot-service-density"
-#
-#- type: "plot"
-#  title: "Packet Throughput: eth-l2bd-{Y}ch-{2XY}mif-{XY}dcr-4tnl-vppip4-ndr"
-#  algorithm: "plot_nf_heatmap"
-#  output-file: "{DIR[STATIC,VPP]}/l2bd-3n-hsw-xl710-imix-4t4c-ipsec-4tnl-csc-ndr"
-#  data: "plot-vpp-nfv-3n-hsw-ndrpdr"
-#  filter: "'NIC_Intel-XL710' and
-#           'NF_DENSITY' and
-#           'DOCKER' and
-#           'CHAIN' and
-#           'NF_VPPIP4' and
-#           'IPSEC' and
-#           'TNL_4' and
-#           'IMIX' and
-#           '4T4C' and
-#           'NDRPDR'"
-#  parameters:
-#  - "throughput"
-#  - "name"
-#  - "tags"
-#  include-tests: "NDR" # "PDR" | "NDR" | "MRR"
-#  x-axis: "X = CNFs per Service Chain"
-#  y-axis: "Y = Number of Service Chains"
-#  z-axis: "IMIX Packet Throughput (mean NDR) [Mpps]"
-#  layout:
-#    title: "<b>Throughput:</b> eth-l2bd-{Y}ch-{2XY}mif-{XY}dcr-4tnl-vppip4-ndr"
-#    layout: "plot-service-density"
-#
-## Plots - NF Density - CSC IPSEC 4tnl - PDR IMIX
-#- type: "plot"
-#  title: "Packet Throughput: eth-l2bd-{Y}ch-{2XY}mif-{XY}dcr-4tnl-vppip4-pdr"
-#  algorithm: "plot_nf_heatmap"
-#  output-file: "{DIR[STATIC,VPP]}/l2bd-3n-hsw-xl710-imix-1t1c-ipsec-4tnl-csc-pdr"
-#  data: "plot-vpp-nfv-3n-hsw-ndrpdr"
-#  filter: "'NIC_Intel-XL710' and
-#           'NF_DENSITY' and
-#           'DOCKER' and
-#           'CHAIN' and
-#           'NF_VPPIP4' and
-#           'IPSEC' and
-#           'TNL_4' and
-#           'IMIX' and
-#           '1T1C' and
-#           'NDRPDR'"
-#  parameters:
-#  - "throughput"
-#  - "name"
-#  - "tags"
-#  include-tests: "PDR" # "PDR" | "NDR" | "MRR"
-#  x-axis: "X = CNFs per Service Chain"
-#  y-axis: "Y = Number of Service Chains"
-#  z-axis: "IMIX Packet Throughput (mean PDR) [Mpps]"
-#  layout:
-#    title: "<b>Throughput:</b> eth-l2bd-{Y}ch-{2XY}mif-{XY}dcr-4tnl-vppip4-pdr"
-#    layout: "plot-service-density"
-#
-#- type: "plot"
-#  title: "Packet Throughput: eth-l2bd-{Y}ch-{2XY}mif-{XY}dcr-4tnl-vppip4-pdr"
-#  algorithm: "plot_nf_heatmap"
-#  output-file: "{DIR[STATIC,VPP]}/l2bd-3n-hsw-xl710-imix-2t2c-ipsec-4tnl-csc-pdr"
-#  data: "plot-vpp-nfv-3n-hsw-ndrpdr"
-#  filter: "'NIC_Intel-XL710' and
-#           'NF_DENSITY' and
-#           'DOCKER' and
-#           'CHAIN' and
-#           'NF_VPPIP4' and
-#           'IPSEC' and
-#           'TNL_4' and
-#           'IMIX' and
-#           '2T2C' and
-#           'NDRPDR'"
-#  parameters:
-#  - "throughput"
-#  - "name"
-#  - "tags"
-#  include-tests: "PDR" # "PDR" | "NDR" | "MRR"
-#  x-axis: "X = CNFs per Service Chain"
-#  y-axis: "Y = Number of Service Chains"
-#  z-axis: "IMIX Packet Throughput (mean PDR) [Mpps]"
-#  layout:
-#    title: "<b>Throughput:</b> eth-l2bd-{Y}ch-{2XY}mif-{XY}dcr-4tnl-vppip4-pdr"
-#    layout: "plot-service-density"
-#
-#- type: "plot"
-#  title: "Packet Throughput: eth-l2bd-{Y}ch-{2XY}mif-{XY}dcr-4tnl-vppip4-pdr"
-#  algorithm: "plot_nf_heatmap"
-#  output-file: "{DIR[STATIC,VPP]}/l2bd-3n-hsw-xl710-imix-4t4c-ipsec-4tnl-csc-pdr"
-#  data: "plot-vpp-nfv-3n-hsw-ndrpdr"
-#  filter: "'NIC_Intel-XL710' and
-#           'NF_DENSITY' and
-#           'DOCKER' and
-#           'CHAIN' and
-#           'NF_VPPIP4' and
-#           'IPSEC' and
-#           'TNL_4' and
-#           'IMIX' and
-#           '4T4C' and
-#           'NDRPDR'"
-#  parameters:
-#  - "throughput"
-#  - "name"
-#  - "tags"
-#  include-tests: "PDR" # "PDR" | "NDR" | "MRR"
-#  x-axis: "X = CNFs per Service Chain"
-#  y-axis: "Y = Number of Service Chains"
-#  z-axis: "IMIX Packet Throughput (mean PDR) [Mpps]"
-#  layout:
-#    title: "<b>Throughput:</b> eth-l2bd-{Y}ch-{2XY}mif-{XY}dcr-4tnl-vppip4-pdr"
-#    layout: "plot-service-density"
-
-###############################################################################
-
-## Plots - NF Density - CSC IPSEC 1000tnl - MRR IMIX
-#- type: "plot"
-#  title: "Packet Throughput: eth-l2bd-{Y}ch-{2XY}mif-{XY}dcr-1000tnl-vppip4-mrr"
-#  algorithm: "plot_nf_heatmap"
-#  output-file: "{DIR[STATIC,VPP]}/l2bd-3n-skx-xxv710-imix-2t1c-ipsec-1000tnl-csc-mrr"
-#  data: "plot-vpp-nfv-3n-skx-mrr"
-#  filter: "'NIC_Intel-XXV710' and
-#           'NF_DENSITY' and
-#           'DOCKER' and
-#           'CHAIN' and
-#           'NF_VPPIP4' and
-#           'IPSEC' and
-#           'TNL_1000' and
-#           'IMIX' and
-#           '2T1C' and
-#           'MRR'"
-#  parameters:
-#  - "result"
-#  - "name"
-#  - "tags"
-#  include-tests: "MRR" # "PDR" | "NDR" | "MRR"
-#  x-axis: "X = CNFs per Service Chain"
-#  y-axis: "Y = Number of Service Chains"
-#  z-axis: "IMIX Packet Throughput (mean MRR) [Mpps]"
-#  layout:
-#    title: "<b>Throughput:</b> eth-l2bd-{Y}ch-{2XY}mif-{XY}dcr-1000tnl-vppip4-mrr"
-#    layout: "plot-service-density"
-#
-#- type: "plot"
-#  title: "Packet Throughput: eth-l2bd-{Y}ch-{2XY}mif-{XY}dcr-1000tnl-vppip4-mrr"
-#  algorithm: "plot_nf_heatmap"
-#  output-file: "{DIR[STATIC,VPP]}/l2bd-3n-skx-xxv710-imix-4t2c-ipsec-1000tnl-csc-mrr"
-#  data: "plot-vpp-nfv-3n-skx-mrr"
-#  filter: "'NIC_Intel-XXV710' and
-#           'NF_DENSITY' and
-#           'DOCKER' and
-#           'CHAIN' and
-#           'NF_VPPIP4' and
-#           'IPSEC' and
-#           'TNL_1000' and
-#           'IMIX' and
-#           '4T2C' and
-#           'MRR'"
-#  parameters:
-#  - "result"
-#  - "name"
-#  - "tags"
-#  include-tests: "MRR" # "PDR" | "NDR" | "MRR"
-#  x-axis: "X = CNFs per Service Chain"
-#  y-axis: "Y = Number of Service Chains"
-#  z-axis: "IMIX Packet Throughput (mean MRR) [Mpps]"
-#  layout:
-#    title: "<b>Throughput:</b> eth-l2bd-{Y}ch-{2XY}mif-{XY}dcr-1000tnl-vppip4-mrr"
-#    layout: "plot-service-density"
-#
-#- type: "plot"
-#  title: "Packet Throughput: eth-l2bd-{Y}ch-{2XY}mif-{XY}dcr-1000tnl-vppip4-mrr"
-#  algorithm: "plot_nf_heatmap"
-#  output-file: "{DIR[STATIC,VPP]}/l2bd-3n-skx-xxv710-imix-8t4c-ipsec-1000tnl-csc-mrr"
-#  data: "plot-vpp-nfv-3n-skx-mrr"
-#  filter: "'NIC_Intel-XXV710' and
-#           'NF_DENSITY' and
-#           'DOCKER' and
-#           'CHAIN' and
-#           'NF_VPPIP4' and
-#           'IPSEC' and
-#           'TNL_1000' and
-#           'IMIX' and
-#           '8T4C' and
-#           'MRR'"
-#  parameters:
-#  - "result"
-#  - "name"
-#  - "tags"
-#  include-tests: "MRR" # "PDR" | "NDR" | "MRR"
-#  x-axis: "X = CNFs per Service Chain"
-#  y-axis: "Y = Number of Service Chains"
-#  z-axis: "IMIX Packet Throughput (mean MRR) [Mpps]"
-#  layout:
-#    title: "<b>Throughput:</b> eth-l2bd-{Y}ch-{2XY}mif-{XY}dcr-1000tnl-vppip4-mrr"
-#    layout: "plot-service-density"
-
-## Plots - NF Density - CSC IPSEC 1000tnl - NDR IMIX
-#- type: "plot"
-#  title: "Packet Throughput: eth-l2bd-{Y}ch-{2XY}mif-{XY}dcr-1000tnl-vppip4-ndr"
-#  algorithm: "plot_nf_heatmap"
-#  output-file: "{DIR[STATIC,VPP]}/l2bd-3n-skx-xxv710-imix-2t1c-ipsec-1000tnl-csc-ndr"
-#  data: "plot-vpp-nfv-3n-skx-ndrpdr"
-#  filter: "'NIC_Intel-XXV710' and
-#           'NF_DENSITY' and
-#           'DOCKER' and
-#           'CHAIN' and
-#           'NF_VPPIP4' and
-#           'IPSEC' and
-#           'TNL_1000' and
-#           'IMIX' and
-#           '2T1C' and
-#           'NDRPDR'"
-#  parameters:
-#  - "throughput"
-#  - "name"
-#  - "tags"
-#  include-tests: "NDR" # "PDR" | "NDR" | "MRR"
-#  x-axis: "X = CNFs per Service Chain"
-#  y-axis: "Y = Number of Service Chains"
-#  z-axis: "IMIX Packet Throughput (mean NDR) [Mpps]"
-#  layout:
-#    title: "<b>Throughput:</b> eth-l2bd-{Y}ch-{2XY}mif-{XY}dcr-1000tnl-vppip4-ndr"
-#    layout: "plot-service-density"
-#
-#- type: "plot"
-#  title: "Packet Throughput: eth-l2bd-{Y}ch-{2XY}mif-{XY}dcr-1000tnl-vppip4-ndr"
-#  algorithm: "plot_nf_heatmap"
-#  output-file: "{DIR[STATIC,VPP]}/l2bd-3n-skx-xxv710-imix-4t2c-ipsec-1000tnl-csc-ndr"
-#  data: "plot-vpp-nfv-3n-skx-ndrpdr"
-#  filter: "'NIC_Intel-XXV710' and
-#           'NF_DENSITY' and
-#           'DOCKER' and
-#           'CHAIN' and
-#           'NF_VPPIP4' and
-#           'IPSEC' and
-#           'TNL_1000' and
-#           'IMIX' and
-#           '4T2C' and
-#           'NDRPDR'"
-#  parameters:
-#  - "throughput"
-#  - "name"
-#  - "tags"
-#  include-tests: "NDR" # "PDR" | "NDR" | "MRR"
-#  x-axis: "X = CNFs per Service Chain"
-#  y-axis: "Y = Number of Service Chains"
-#  z-axis: "IMIX Packet Throughput (mean NDR) [Mpps]"
-#  layout:
-#    title: "<b>Throughput:</b> eth-l2bd-{Y}ch-{2XY}mif-{XY}dcr-1000tnl-vppip4-ndr"
-#    layout: "plot-service-density"
-#
-#- type: "plot"
-#  title: "Packet Throughput: eth-l2bd-{Y}ch-{2XY}mif-{XY}dcr-1000tnl-vppip4-ndr"
-#  algorithm: "plot_nf_heatmap"
-#  output-file: "{DIR[STATIC,VPP]}/l2bd-3n-skx-xxv710-imix-8t4c-ipsec-1000tnl-csc-ndr"
-#  data: "plot-vpp-nfv-3n-skx-ndrpdr"
-#  filter: "'NIC_Intel-XXV710' and
-#           'NF_DENSITY' and
-#           'DOCKER' and
-#           'CHAIN' and
-#           'NF_VPPIP4' and
-#           'IPSEC' and
-#           'TNL_1000' and
-#           'IMIX' and
-#           '8T4C' and
-#           'NDRPDR'"
-#  parameters:
-#  - "throughput"
-#  - "name"
-#  - "tags"
-#  include-tests: "NDR" # "PDR" | "NDR" | "MRR"
-#  x-axis: "X = CNFs per Service Chain"
-#  y-axis: "Y = Number of Service Chains"
-#  z-axis: "IMIX Packet Throughput (mean NDR) [Mpps]"
-#  layout:
-#    title: "<b>Throughput:</b> eth-l2bd-{Y}ch-{2XY}mif-{XY}dcr-1000tnl-vppip4-ndr"
-#    layout: "plot-service-density"
-#
-## Plots - NF Density - CSC IPSEC 1000tnl - PDR IMIX
-#- type: "plot"
-#  title: "Packet Throughput: eth-l2bd-{Y}ch-{2XY}mif-{XY}dcr-1000tnl-vppip4-pdr"
-#  algorithm: "plot_nf_heatmap"
-#  output-file: "{DIR[STATIC,VPP]}/l2bd-3n-skx-xxv710-imix-2t1c-ipsec-1000tnl-csc-pdr"
-#  data: "plot-vpp-nfv-3n-skx-ndrpdr"
-#  filter: "'NIC_Intel-XXV710' and
-#           'NF_DENSITY' and
-#           'DOCKER' and
-#           'CHAIN' and
-#           'NF_VPPIP4' and
-#           'IPSEC' and
-#           'TNL_1000' and
-#           'IMIX' and
-#           '2T1C' and
-#           'NDRPDR'"
-#  parameters:
-#  - "throughput"
-#  - "name"
-#  - "tags"
-#  include-tests: "PDR" # "PDR" | "NDR" | "MRR"
-#  x-axis: "X = CNFs per Service Chain"
-#  y-axis: "Y = Number of Service Chains"
-#  z-axis: "IMIX Packet Throughput (mean PDR) [Mpps]"
-#  layout:
-#    title: "<b>Throughput:</b> eth-l2bd-{Y}ch-{2XY}mif-{XY}dcr-1000tnl-vppip4-pdr"
-#    layout: "plot-service-density"
-#
-#- type: "plot"
-#  title: "Packet Throughput: eth-l2bd-{Y}ch-{2XY}mif-{XY}dcr-1000tnl-vppip4-pdr"
-#  algorithm: "plot_nf_heatmap"
-#  output-file: "{DIR[STATIC,VPP]}/l2bd-3n-skx-xxv710-imix-4t2c-ipsec-1000tnl-csc-pdr"
-#  data: "plot-vpp-nfv-3n-skx-ndrpdr"
-#  filter: "'NIC_Intel-XXV710' and
-#           'NF_DENSITY' and
-#           'DOCKER' and
-#           'CHAIN' and
-#           'NF_VPPIP4' and
-#           'IPSEC' and
-#           'TNL_1000' and
-#           'IMIX' and
-#           '4T2C' and
-#           'NDRPDR'"
-#  parameters:
-#  - "throughput"
-#  - "name"
-#  - "tags"
-#  include-tests: "PDR" # "PDR" | "NDR" | "MRR"
-#  x-axis: "X = CNFs per Service Chain"
-#  y-axis: "Y = Number of Service Chains"
-#  z-axis: "IMIX Packet Throughput (mean PDR) [Mpps]"
-#  layout:
-#    title: "<b>Throughput:</b> eth-l2bd-{Y}ch-{2XY}mif-{XY}dcr-1000tnl-vppip4-pdr"
-#    layout: "plot-service-density"
-#
-#- type: "plot"
-#  title: "Packet Throughput: eth-l2bd-{Y}ch-{2XY}mif-{XY}dcr-1000tnl-vppip4-pdr"
-#  algorithm: "plot_nf_heatmap"
-#  output-file: "{DIR[STATIC,VPP]}/l2bd-3n-skx-xxv710-imix-8t4c-ipsec-1000tnl-csc-pdr"
-#  data: "plot-vpp-nfv-3n-skx-ndrpdr"
-#  filter: "'NIC_Intel-XXV710' and
-#           'NF_DENSITY' and
-#           'DOCKER' and
-#           'CHAIN' and
-#           'NF_VPPIP4' and
-#           'IPSEC' and
-#           'TNL_1000' and
-#           'IMIX' and
-#           '8T4C' and
-#           'NDRPDR'"
-#  parameters:
-#  - "throughput"
-#  - "name"
-#  - "tags"
-#  include-tests: "PDR" # "PDR" | "NDR" | "MRR"
-#  x-axis: "X = CNFs per Service Chain"
-#  y-axis: "Y = Number of Service Chains"
-#  z-axis: "IMIX Packet Throughput (mean PDR) [Mpps]"
-#  layout:
-#    title: "<b>Throughput:</b> eth-l2bd-{Y}ch-{2XY}mif-{XY}dcr-1000tnl-vppip4-pdr"
-#    layout: "plot-service-density"
-
-###############################################################################
-
-## Plots - NF Density - CSC IPSEC 1000tnl - MRR IMIX
-#- type: "plot"
-#  title: "Packet Throughput: eth-l2bd-{Y}ch-{2XY}mif-{XY}dcr-1000tnl-vppip4-mrr"
-#  algorithm: "plot_nf_heatmap"
-#  output-file: "{DIR[STATIC,VPP]}/l2bd-3n-hsw-xl710-imix-1t1c-ipsec-1000tnl-csc-mrr"
-#  data: "plot-vpp-nfv-3n-hsw-mrr"
-#  filter: "'NIC_Intel-XL710' and
-#           'NF_DENSITY' and
-#           'DOCKER' and
-#           'CHAIN' and
-#           'NF_VPPIP4' and
-#           'IMIX' and
-#           'TNL_1000' and
-#           '1T1C' and
-#           'MRR'"
-#  parameters:
-#  - "result"
-#  - "name"
-#  - "tags"
-#  include-tests: "MRR" # "PDR" | "NDR" | "MRR"
-#  x-axis: "X = CNFs per Service Chain"
-#  y-axis: "Y = Number of Service Chains"
-#  z-axis: "IMIX Packet Throughput (mean MRR) [Mpps]"
-#  layout:
-#    title: "<b>Throughput:</b> eth-l2bd-{Y}ch-{2XY}mif-{XY}dcr-1000tnl-vppip4-mrr"
-#    layout: "plot-service-density"
-#
-#- type: "plot"
-#  title: "Packet Throughput: eth-l2bd-{Y}ch-{2XY}mif-{XY}dcr-1000tnl-vppip4-mrr"
-#  algorithm: "plot_nf_heatmap"
-#  output-file: "{DIR[STATIC,VPP]}/l2bd-3n-hsw-xl710-imix-2t2c-ipsec-1000tnl-csc-mrr"
-#  data: "plot-vpp-nfv-3n-hsw-mrr"
-#  filter: "'NIC_Intel-XL710' and
-#           'NF_DENSITY' and
-#           'DOCKER' and
-#           'CHAIN' and
-#           'NF_VPPIP4' and
-#           'IPSEC' and
-#           'TNL_1000' and
-#           'IMIX' and
-#           '2T2C' and
-#           'MRR'"
-#  parameters:
-#  - "result"
-#  - "name"
-#  - "tags"
-#  include-tests: "MRR" # "PDR" | "NDR" | "MRR"
-#  x-axis: "X = CNFs per Service Chain"
-#  y-axis: "Y = Number of Service Chains"
-#  z-axis: "IMIX Packet Throughput (mean MRR) [Mpps]"
-#  layout:
-#    title: "<b>Throughput:</b> eth-l2bd-{Y}ch-{2XY}mif-{XY}dcr-1000tnl-vppip4-mrr"
-#    layout: "plot-service-density"
-#
-#- type: "plot"
-#  title: "Packet Throughput: eth-l2bd-{Y}ch-{2XY}mif-{XY}dcr-1000tnl-vppip4-mrr"
-#  algorithm: "plot_nf_heatmap"
-#  output-file: "{DIR[STATIC,VPP]}/l2bd-3n-hsw-xl710-imix-4t4c-ipsec-1000tnl-csc-mrr"
-#  data: "plot-vpp-nfv-3n-hsw-mrr"
-#  filter: "'NIC_Intel-XL710' and
-#           'NF_DENSITY' and
-#           'DOCKER' and
-#           'CHAIN' and
-#           'NF_VPPIP4' and
-#           'IPSEC' and
-#           'TNL_1000' and
-#           'IMIX' and
-#           '4T4C' and
-#           'MRR'"
-#  parameters:
-#  - "result"
-#  - "name"
-#  - "tags"
-#  include-tests: "MRR" # "PDR" | "NDR" | "MRR"
-#  x-axis: "X = CNFs per Service Chain"
-#  y-axis: "Y = Number of Service Chains"
-#  z-axis: "IMIX Packet Throughput (mean MRR) [Mpps]"
-#  layout:
-#    title: "<b>Throughput:</b> eth-l2bd-{Y}ch-{2XY}mif-{XY}dcr-1000tnl-vppip4-mrr"
-#    layout: "plot-service-density"
-
-## Plots - NF Density - CSC IPSEC 1000tnl - NDR IMIX
-#- type: "plot"
-#  title: "Packet Throughput: eth-l2bd-{Y}ch-{2XY}mif-{XY}dcr-1000tnl-vppip4-ndr"
-#  algorithm: "plot_nf_heatmap"
-#  output-file: "{DIR[STATIC,VPP]}/l2bd-3n-hsw-xl710-imix-1t1c-ipsec-1000tnl-csc-ndr"
-#  data: "plot-vpp-nfv-3n-hsw-ndrpdr"
-#  filter: "'NIC_Intel-XL710' and
-#           'NF_DENSITY' and
-#           'DOCKER' and
-#           'CHAIN' and
-#           'NF_VPPIP4' and
-#           'IPSEC' and
-#           'TNL_1000' and
-#           'IMIX' and
-#           '1T1C' and
-#           'NDRPDR'"
-#  parameters:
-#  - "throughput"
-#  - "name"
-#  - "tags"
-#  include-tests: "NDR" # "PDR" | "NDR" | "MRR"
-#  x-axis: "X = CNFs per Service Chain"
-#  y-axis: "Y = Number of Service Chains"
-#  z-axis: "IMIX Packet Throughput (mean NDR) [Mpps]"
-#  layout:
-#    title: "<b>Throughput:</b> eth-l2bd-{Y}ch-{2XY}mif-{XY}dcr-1000tnl-vppip4-ndr"
-#    layout: "plot-service-density"
-#
-#- type: "plot"
-#  title: "Packet Throughput: eth-l2bd-{Y}ch-{2XY}mif-{XY}dcr-1000tnl-vppip4-ndr"
-#  algorithm: "plot_nf_heatmap"
-#  output-file: "{DIR[STATIC,VPP]}/l2bd-3n-hsw-xl710-imix-2t2c-ipsec-1000tnl-csc-ndr"
-#  data: "plot-vpp-nfv-3n-hsw-ndrpdr"
-#  filter: "'NIC_Intel-XL710' and
-#           'NF_DENSITY' and
-#           'DOCKER' and
-#           'CHAIN' and
-#           'NF_VPPIP4' and
-#           'IPSEC' and
-#           'TNL_1000' and
-#           'IMIX' and
-#           '2T2C' and
-#           'NDRPDR'"
-#  parameters:
-#  - "throughput"
-#  - "name"
-#  - "tags"
-#  include-tests: "NDR" # "PDR" | "NDR" | "MRR"
-#  x-axis: "X = CNFs per Service Chain"
-#  y-axis: "Y = Number of Service Chains"
-#  z-axis: "IMIX Packet Throughput (mean NDR) [Mpps]"
-#  layout:
-#    title: "<b>Throughput:</b> eth-l2bd-{Y}ch-{2XY}mif-{XY}dcr-1000tnl-vppip4-ndr"
-#    layout: "plot-service-density"
-#
-#- type: "plot"
-#  title: "Packet Throughput: eth-l2bd-{Y}ch-{2XY}mif-{XY}dcr-1000tnl-vppip4-ndr"
-#  algorithm: "plot_nf_heatmap"
-#  output-file: "{DIR[STATIC,VPP]}/l2bd-3n-hsw-xl710-imix-4t4c-ipsec-1000tnl-csc-ndr"
-#  data: "plot-vpp-nfv-3n-hsw-ndrpdr"
-#  filter: "'NIC_Intel-XL710' and
-#           'NF_DENSITY' and
-#           'DOCKER' and
-#           'CHAIN' and
-#           'NF_VPPIP4' and
-#           'IPSEC' and
-#           'TNL_1000' and
-#           'IMIX' and
-#           '4T4C' and
-#           'NDRPDR'"
-#  parameters:
-#  - "throughput"
-#  - "name"
-#  - "tags"
-#  include-tests: "NDR" # "PDR" | "NDR" | "MRR"
-#  x-axis: "X = CNFs per Service Chain"
-#  y-axis: "Y = Number of Service Chains"
-#  z-axis: "IMIX Packet Throughput (mean NDR) [Mpps]"
-#  layout:
-#    title: "<b>Throughput:</b> eth-l2bd-{Y}ch-{2XY}mif-{XY}dcr-1000tnl-vppip4-ndr"
-#    layout: "plot-service-density"
-#
-## Plots - NF Density - CSC IPSEC 1000tnl - PDR IMIX
-#- type: "plot"
-#  title: "Packet Throughput: eth-l2bd-{Y}ch-{2XY}mif-{XY}dcr-1000tnl-vppip4-pdr"
-#  algorithm: "plot_nf_heatmap"
-#  output-file: "{DIR[STATIC,VPP]}/l2bd-3n-hsw-xl710-imix-1t1c-ipsec-1000tnl-csc-pdr"
-#  data: "plot-vpp-nfv-3n-hsw-ndrpdr"
-#  filter: "'NIC_Intel-XL710' and
-#           'NF_DENSITY' and
-#           'DOCKER' and
-#           'CHAIN' and
-#           'NF_VPPIP4' and
-#           'IPSEC' and
-#           'TNL_1000' and
-#           'IMIX' and
-#           '1T1C' and
-#           'NDRPDR'"
-#  parameters:
-#  - "throughput"
-#  - "name"
-#  - "tags"
-#  include-tests: "PDR" # "PDR" | "NDR" | "MRR"
-#  x-axis: "X = CNFs per Service Chain"
-#  y-axis: "Y = Number of Service Chains"
-#  z-axis: "IMIX Packet Throughput (mean PDR) [Mpps]"
-#  layout:
-#    title: "<b>Throughput:</b> eth-l2bd-{Y}ch-{2XY}mif-{XY}dcr-1000tnl-vppip4-pdr"
-#    layout: "plot-service-density"
-#
-#- type: "plot"
-#  title: "Packet Throughput: eth-l2bd-{Y}ch-{2XY}mif-{XY}dcr-1000tnl-vppip4-pdr"
-#  algorithm: "plot_nf_heatmap"
-#  output-file: "{DIR[STATIC,VPP]}/l2bd-3n-hsw-xl710-imix-2t2c-ipsec-1000tnl-csc-pdr"
-#  data: "plot-vpp-nfv-3n-hsw-ndrpdr"
-#  filter: "'NIC_Intel-XL710' and
-#           'NF_DENSITY' and
-#           'DOCKER' and
-#           'CHAIN' and
-#           'NF_VPPIP4' and
-#           'IPSEC' and
-#           'TNL_1000' and
-#           'IMIX' and
-#           '2T2C' and
-#           'NDRPDR'"
-#  parameters:
-#  - "throughput"
-#  - "name"
-#  - "tags"
-#  include-tests: "PDR" # "PDR" | "NDR" | "MRR"
-#  x-axis: "X = CNFs per Service Chain"
-#  y-axis: "Y = Number of Service Chains"
-#  z-axis: "IMIX Packet Throughput (mean PDR) [Mpps]"
-#  layout:
-#    title: "<b>Throughput:</b> eth-l2bd-{Y}ch-{2XY}mif-{XY}dcr-1000tnl-vppip4-pdr"
-#    layout: "plot-service-density"
-#
-#- type: "plot"
-#  title: "Packet Throughput: eth-l2bd-{Y}ch-{2XY}mif-{XY}dcr-1000tnl-vppip4-pdr"
-#  algorithm: "plot_nf_heatmap"
-#  output-file: "{DIR[STATIC,VPP]}/l2bd-3n-hsw-xl710-imix-4t4c-ipsec-1000tnl-csc-pdr"
-#  data: "plot-vpp-nfv-3n-hsw-ndrpdr"
-#  filter: "'NIC_Intel-XL710' and
-#           'NF_DENSITY' and
-#           'DOCKER' and
-#           'CHAIN' and
-#           'NF_VPPIP4' and
-#           'IPSEC' and
-#           'TNL_1000' and
-#           'IMIX' and
-#           '4T4C' and
-#           'NDRPDR'"
-#  parameters:
-#  - "throughput"
-#  - "name"
-#  - "tags"
-#  include-tests: "PDR" # "PDR" | "NDR" | "MRR"
-#  x-axis: "X = CNFs per Service Chain"
-#  y-axis: "Y = Number of Service Chains"
-#  z-axis: "IMIX Packet Throughput (mean PDR) [Mpps]"
-#  layout:
-#    title: "<b>Throughput:</b> eth-l2bd-{Y}ch-{2XY}mif-{XY}dcr-1000tnl-vppip4-pdr"
-#    layout: "plot-service-density"
-
-###############################################################################
-
-## Plots - NF Density - CSC IPSEC 10000tnl - MRR IMIX
-#- type: "plot"
-#  title: "Packet Throughput: eth-l2bd-{Y}ch-{2XY}mif-{XY}dcr-10000tnl-vppip4-mrr"
-#  algorithm: "plot_nf_heatmap"
-#  output-file: "{DIR[STATIC,VPP]}/l2bd-3n-skx-xxv710-imix-2t1c-ipsec-10000tnl-csc-mrr"
-#  data: "plot-vpp-nfv-3n-skx-mrr"
-#  filter: "'NIC_Intel-XXV710' and
-#           'NF_DENSITY' and
-#           'DOCKER' and
-#           'CHAIN' and
-#           'NF_VPPIP4' and
-#           'IPSEC' and
-#           'TNL_10000' and
-#           'IMIX' and
-#           '2T1C' and
-#           'MRR'"
-#  parameters:
-#  - "result"
-#  - "name"
-#  - "tags"
-#  include-tests: "MRR" # "PDR" | "NDR" | "MRR"
-#  x-axis: "X = CNFs per Service Chain"
-#  y-axis: "Y = Number of Service Chains"
-#  z-axis: "IMIX Packet Throughput (mean MRR) [Mpps]"
-#  layout:
-#    title: "<b>Throughput:</b> eth-l2bd-{Y}ch-{2XY}mif-{XY}dcr-10000tnl-vppip4-mrr"
-#    layout: "plot-service-density"
-#
-#- type: "plot"
-#  title: "Packet Throughput: eth-l2bd-{Y}ch-{2XY}mif-{XY}dcr-10000tnl-vppip4-mrr"
-#  algorithm: "plot_nf_heatmap"
-#  output-file: "{DIR[STATIC,VPP]}/l2bd-3n-skx-xxv710-imix-4t2c-ipsec-10000tnl-csc-mrr"
-#  data: "plot-vpp-nfv-3n-skx-mrr"
-#  filter: "'NIC_Intel-XXV710' and
-#           'NF_DENSITY' and
-#           'DOCKER' and
-#           'CHAIN' and
-#           'NF_VPPIP4' and
-#           'IPSEC' and
-#           'TNL_10000' and
-#           'IMIX' and
-#           '4T2C' and
-#           'MRR'"
-#  parameters:
-#  - "result"
-#  - "name"
-#  - "tags"
-#  include-tests: "MRR" # "PDR" | "NDR" | "MRR"
-#  x-axis: "X = CNFs per Service Chain"
-#  y-axis: "Y = Number of Service Chains"
-#  z-axis: "IMIX Packet Throughput (mean MRR) [Mpps]"
-#  layout:
-#    title: "<b>Throughput:</b> eth-l2bd-{Y}ch-{2XY}mif-{XY}dcr-10000tnl-vppip4-mrr"
-#    layout: "plot-service-density"
-#
-#- type: "plot"
-#  title: "Packet Throughput: eth-l2bd-{Y}ch-{2XY}mif-{XY}dcr-10000tnl-vppip4-mrr"
-#  algorithm: "plot_nf_heatmap"
-#  output-file: "{DIR[STATIC,VPP]}/l2bd-3n-skx-xxv710-imix-8t4c-ipsec-10000tnl-csc-mrr"
-#  data: "plot-vpp-nfv-3n-skx-mrr"
-#  filter: "'NIC_Intel-XXV710' and
-#           'NF_DENSITY' and
-#           'DOCKER' and
-#           'CHAIN' and
-#           'NF_VPPIP4' and
-#           'IPSEC' and
-#           'TNL_10000' and
-#           'IMIX' and
-#           '8T4C' and
-#           'MRR'"
-#  parameters:
-#  - "result"
-#  - "name"
-#  - "tags"
-#  include-tests: "MRR" # "PDR" | "NDR" | "MRR"
-#  x-axis: "X = CNFs per Service Chain"
-#  y-axis: "Y = Number of Service Chains"
-#  z-axis: "IMIX Packet Throughput (mean MRR) [Mpps]"
-#  layout:
-#    title: "<b>Throughput:</b> eth-l2bd-{Y}ch-{2XY}mif-{XY}dcr-10000tnl-vppip4-mrr"
-#    layout: "plot-service-density"
-
-## Plots - NF Density - CSC IPSEC 10000tnl - NDR IMIX
-#- type: "plot"
-#  title: "Packet Throughput: eth-l2bd-{Y}ch-{2XY}mif-{XY}dcr-10000tnl-vppip4-ndr"
-#  algorithm: "plot_nf_heatmap"
-#  output-file: "{DIR[STATIC,VPP]}/l2bd-3n-skx-xxv710-imix-2t1c-ipsec-10000tnl-csc-ndr"
-#  data: "plot-vpp-nfv-3n-skx-ndrpdr"
-#  filter: "'NIC_Intel-XXV710' and
-#           'NF_DENSITY' and
-#           'DOCKER' and
-#           'CHAIN' and
-#           'NF_VPPIP4' and
-#           'IPSEC' and
-#           'TNL_10000' and
-#           'IMIX' and
-#           '2T1C' and
-#           'NDRPDR'"
-#  parameters:
-#  - "throughput"
-#  - "name"
-#  - "tags"
-#  include-tests: "NDR" # "PDR" | "NDR" | "MRR"
-#  x-axis: "X = CNFs per Service Chain"
-#  y-axis: "Y = Number of Service Chains"
-#  z-axis: "IMIX Packet Throughput (mean NDR) [Mpps]"
-#  layout:
-#    title: "<b>Throughput:</b> eth-l2bd-{Y}ch-{2XY}mif-{XY}dcr-10000tnl-vppip4-ndr"
-#    layout: "plot-service-density"
-#
-#- type: "plot"
-#  title: "Packet Throughput: eth-l2bd-{Y}ch-{2XY}mif-{XY}dcr-10000tnl-vppip4-ndr"
-#  algorithm: "plot_nf_heatmap"
-#  output-file: "{DIR[STATIC,VPP]}/l2bd-3n-skx-xxv710-imix-4t2c-ipsec-10000tnl-csc-ndr"
-#  data: "plot-vpp-nfv-3n-skx-ndrpdr"
-#  filter: "'NIC_Intel-XXV710' and
-#           'NF_DENSITY' and
-#           'DOCKER' and
-#           'CHAIN' and
-#           'NF_VPPIP4' and
-#           'IPSEC' and
-#           'TNL_10000' and
-#           'IMIX' and
-#           '4T2C' and
-#           'NDRPDR'"
-#  parameters:
-#  - "throughput"
-#  - "name"
-#  - "tags"
-#  include-tests: "NDR" # "PDR" | "NDR" | "MRR"
-#  x-axis: "X = CNFs per Service Chain"
-#  y-axis: "Y = Number of Service Chains"
-#  z-axis: "IMIX Packet Throughput (mean NDR) [Mpps]"
-#  layout:
-#    title: "<b>Throughput:</b> eth-l2bd-{Y}ch-{2XY}mif-{XY}dcr-10000tnl-vppip4-ndr"
-#    layout: "plot-service-density"
-#
-#- type: "plot"
-#  title: "Packet Throughput: eth-l2bd-{Y}ch-{2XY}mif-{XY}dcr-10000tnl-vppip4-ndr"
-#  algorithm: "plot_nf_heatmap"
-#  output-file: "{DIR[STATIC,VPP]}/l2bd-3n-skx-xxv710-imix-8t4c-ipsec-10000tnl-csc-ndr"
-#  data: "plot-vpp-nfv-3n-skx-ndrpdr"
-#  filter: "'NIC_Intel-XXV710' and
-#           'NF_DENSITY' and
-#           'DOCKER' and
-#           'CHAIN' and
-#           'NF_VPPIP4' and
-#           'IPSEC' and
-#           'TNL_10000' and
-#           'IMIX' and
-#           '8T4C' and
-#           'NDRPDR'"
-#  parameters:
-#  - "throughput"
-#  - "name"
-#  - "tags"
-#  include-tests: "NDR" # "PDR" | "NDR" | "MRR"
-#  x-axis: "X = CNFs per Service Chain"
-#  y-axis: "Y = Number of Service Chains"
-#  z-axis: "IMIX Packet Throughput (mean NDR) [Mpps]"
-#  layout:
-#    title: "<b>Throughput:</b> eth-l2bd-{Y}ch-{2XY}mif-{XY}dcr-10000tnl-vppip4-ndr"
-#    layout: "plot-service-density"
-#
-## Plots - NF Density - CSC IPSEC 10000tnl - PDR IMIX
-#- type: "plot"
-#  title: "Packet Throughput: eth-l2bd-{Y}ch-{2XY}mif-{XY}dcr-10000tnl-vppip4-pdr"
-#  algorithm: "plot_nf_heatmap"
-#  output-file: "{DIR[STATIC,VPP]}/l2bd-3n-skx-xxv710-imix-2t1c-ipsec-10000tnl-csc-pdr"
-#  data: "plot-vpp-nfv-3n-skx-ndrpdr"
-#  filter: "'NIC_Intel-XXV710' and
-#           'NF_DENSITY' and
-#           'DOCKER' and
-#           'CHAIN' and
-#           'NF_VPPIP4' and
-#           'IPSEC' and
-#           'TNL_10000' and
-#           'IMIX' and
-#           '2T1C' and
-#           'NDRPDR'"
-#  parameters:
-#  - "throughput"
-#  - "name"
-#  - "tags"
-#  include-tests: "PDR" # "PDR" | "NDR" | "MRR"
-#  x-axis: "X = CNFs per Service Chain"
-#  y-axis: "Y = Number of Service Chains"
-#  z-axis: "IMIX Packet Throughput (mean PDR) [Mpps]"
-#  layout:
-#    title: "<b>Throughput:</b> eth-l2bd-{Y}ch-{2XY}mif-{XY}dcr-10000tnl-vppip4-pdr"
-#    layout: "plot-service-density"
-#
-#- type: "plot"
-#  title: "Packet Throughput: eth-l2bd-{Y}ch-{2XY}mif-{XY}dcr-10000tnl-vppip4-pdr"
-#  algorithm: "plot_nf_heatmap"
-#  output-file: "{DIR[STATIC,VPP]}/l2bd-3n-skx-xxv710-imix-4t2c-ipsec-10000tnl-csc-pdr"
-#  data: "plot-vpp-nfv-3n-skx-ndrpdr"
-#  filter: "'NIC_Intel-XXV710' and
-#           'NF_DENSITY' and
-#           'DOCKER' and
-#           'CHAIN' and
-#           'NF_VPPIP4' and
-#           'IPSEC' and
-#           'TNL_10000' and
-#           'IMIX' and
-#           '4T2C' and
-#           'NDRPDR'"
-#  parameters:
-#  - "throughput"
-#  - "name"
-#  - "tags"
-#  include-tests: "PDR" # "PDR" | "NDR" | "MRR"
-#  x-axis: "X = CNFs per Service Chain"
-#  y-axis: "Y = Number of Service Chains"
-#  z-axis: "IMIX Packet Throughput (mean PDR) [Mpps]"
-#  layout:
-#    title: "<b>Throughput:</b> eth-l2bd-{Y}ch-{2XY}mif-{XY}dcr-10000tnl-vppip4-pdr"
-#    layout: "plot-service-density"
-#
-#- type: "plot"
-#  title: "Packet Throughput: eth-l2bd-{Y}ch-{2XY}mif-{XY}dcr-10000tnl-vppip4-pdr"
-#  algorithm: "plot_nf_heatmap"
-#  output-file: "{DIR[STATIC,VPP]}/l2bd-3n-skx-xxv710-imix-8t4c-ipsec-10000tnl-csc-pdr"
-#  data: "plot-vpp-nfv-3n-skx-ndrpdr"
-#  filter: "'NIC_Intel-XXV710' and
-#           'NF_DENSITY' and
-#           'DOCKER' and
-#           'CHAIN' and
-#           'NF_VPPIP4' and
-#           'IPSEC' and
-#           'TNL_10000' and
-#           'IMIX' and
-#           '8T4C' and
-#           'NDRPDR'"
-#  parameters:
-#  - "throughput"
-#  - "name"
-#  - "tags"
-#  include-tests: "PDR" # "PDR" | "NDR" | "MRR"
-#  x-axis: "X = CNFs per Service Chain"
-#  y-axis: "Y = Number of Service Chains"
-#  z-axis: "IMIX Packet Throughput (mean PDR) [Mpps]"
-#  layout:
-#    title: "<b>Throughput:</b> eth-l2bd-{Y}ch-{2XY}mif-{XY}dcr-10000tnl-vppip4-pdr"
-#    layout: "plot-service-density"
-
-###############################################################################
-
-## Plots - NF Density - CSC IPSEC 10000tnl - MRR IMIX
-#- type: "plot"
-#  title: "Packet Throughput: eth-l2bd-{Y}ch-{2XY}mif-{XY}dcr-10000tnl-vppip4-mrr"
-#  algorithm: "plot_nf_heatmap"
-#  output-file: "{DIR[STATIC,VPP]}/l2bd-3n-hsw-xl710-imix-1t1c-ipsec-10000tnl-csc-mrr"
-#  data: "plot-vpp-nfv-3n-hsw-mrr"
-#  filter: "'NIC_Intel-XL710' and
-#           'NF_DENSITY' and
-#           'DOCKER' and
-#           'CHAIN' and
-#           'NF_VPPIP4' and
-#           'IMIX' and
-#           'TNL_10000' and
-#           '1T1C' and
-#           'MRR'"
-#  parameters:
-#  - "result"
-#  - "name"
-#  - "tags"
-#  include-tests: "MRR" # "PDR" | "NDR" | "MRR"
-#  x-axis: "X = CNFs per Service Chain"
-#  y-axis: "Y = Number of Service Chains"
-#  z-axis: "IMIX Packet Throughput (mean MRR) [Mpps]"
-#  layout:
-#    title: "<b>Throughput:</b> eth-l2bd-{Y}ch-{2XY}mif-{XY}dcr-10000tnl-vppip4-mrr"
-#    layout: "plot-service-density"
-#
-#- type: "plot"
-#  title: "Packet Throughput: eth-l2bd-{Y}ch-{2XY}mif-{XY}dcr-10000tnl-vppip4-mrr"
-#  algorithm: "plot_nf_heatmap"
-#  output-file: "{DIR[STATIC,VPP]}/l2bd-3n-hsw-xl710-imix-2t2c-ipsec-10000tnl-csc-mrr"
-#  data: "plot-vpp-nfv-3n-hsw-mrr"
-#  filter: "'NIC_Intel-XL710' and
-#           'NF_DENSITY' and
-#           'DOCKER' and
-#           'CHAIN' and
-#           'NF_VPPIP4' and
-#           'IPSEC' and
-#           'TNL_10000' and
-#           'IMIX' and
-#           '2T2C' and
-#           'MRR'"
-#  parameters:
-#  - "result"
-#  - "name"
-#  - "tags"
-#  include-tests: "MRR" # "PDR" | "NDR" | "MRR"
-#  x-axis: "X = CNFs per Service Chain"
-#  y-axis: "Y = Number of Service Chains"
-#  z-axis: "IMIX Packet Throughput (mean MRR) [Mpps]"
-#  layout:
-#    title: "<b>Throughput:</b> eth-l2bd-{Y}ch-{2XY}mif-{XY}dcr-10000tnl-vppip4-mrr"
-#    layout: "plot-service-density"
-#
-#- type: "plot"
-#  title: "Packet Throughput: eth-l2bd-{Y}ch-{2XY}mif-{XY}dcr-10000tnl-vppip4-mrr"
-#  algorithm: "plot_nf_heatmap"
-#  output-file: "{DIR[STATIC,VPP]}/l2bd-3n-hsw-xl710-imix-4t4c-ipsec-10000tnl-csc-mrr"
-#  data: "plot-vpp-nfv-3n-hsw-mrr"
-#  filter: "'NIC_Intel-XL710' and
-#           'NF_DENSITY' and
-#           'DOCKER' and
-#           'CHAIN' and
-#           'NF_VPPIP4' and
-#           'IPSEC' and
-#           'TNL_10000' and
-#           'IMIX' and
-#           '4T4C' and
-#           'MRR'"
-#  parameters:
-#  - "result"
-#  - "name"
-#  - "tags"
-#  include-tests: "MRR" # "PDR" | "NDR" | "MRR"
-#  x-axis: "X = CNFs per Service Chain"
-#  y-axis: "Y = Number of Service Chains"
-#  z-axis: "IMIX Packet Throughput (mean MRR) [Mpps]"
-#  layout:
-#    title: "<b>Throughput:</b> eth-l2bd-{Y}ch-{2XY}mif-{XY}dcr-10000tnl-vppip4-mrr"
-#    layout: "plot-service-density"
-
-## Plots - NF Density - CSC IPSEC 10000tnl - NDR IMIX
-#- type: "plot"
-#  title: "Packet Throughput: eth-l2bd-{Y}ch-{2XY}mif-{XY}dcr-10000tnl-vppip4-ndr"
-#  algorithm: "plot_nf_heatmap"
-#  output-file: "{DIR[STATIC,VPP]}/l2bd-3n-hsw-xl710-imix-1t1c-ipsec-10000tnl-csc-ndr"
-#  data: "plot-vpp-nfv-3n-hsw-ndrpdr"
-#  filter: "'NIC_Intel-XL710' and
-#           'NF_DENSITY' and
-#           'DOCKER' and
-#           'CHAIN' and
-#           'NF_VPPIP4' and
-#           'IPSEC' and
-#           'TNL_10000' and
-#           'IMIX' and
-#           '1T1C' and
-#           'NDRPDR'"
-#  parameters:
-#  - "throughput"
-#  - "name"
-#  - "tags"
-#  include-tests: "NDR" # "PDR" | "NDR" | "MRR"
-#  x-axis: "X = CNFs per Service Chain"
-#  y-axis: "Y = Number of Service Chains"
-#  z-axis: "IMIX Packet Throughput (mean NDR) [Mpps]"
-#  layout:
-#    title: "<b>Throughput:</b> eth-l2bd-{Y}ch-{2XY}mif-{XY}dcr-10000tnl-vppip4-ndr"
-#    layout: "plot-service-density"
-#
-#- type: "plot"
-#  title: "Packet Throughput: eth-l2bd-{Y}ch-{2XY}mif-{XY}dcr-10000tnl-vppip4-ndr"
-#  algorithm: "plot_nf_heatmap"
-#  output-file: "{DIR[STATIC,VPP]}/l2bd-3n-hsw-xl710-imix-2t2c-ipsec-10000tnl-csc-ndr"
-#  data: "plot-vpp-nfv-3n-hsw-ndrpdr"
-#  filter: "'NIC_Intel-XL710' and
-#           'NF_DENSITY' and
-#           'DOCKER' and
-#           'CHAIN' and
-#           'NF_VPPIP4' and
-#           'IPSEC' and
-#           'TNL_10000' and
-#           'IMIX' and
-#           '2T2C' and
-#           'NDRPDR'"
-#  parameters:
-#  - "throughput"
-#  - "name"
-#  - "tags"
-#  include-tests: "NDR" # "PDR" | "NDR" | "MRR"
-#  x-axis: "X = CNFs per Service Chain"
-#  y-axis: "Y = Number of Service Chains"
-#  z-axis: "IMIX Packet Throughput (mean NDR) [Mpps]"
-#  layout:
-#    title: "<b>Throughput:</b> eth-l2bd-{Y}ch-{2XY}mif-{XY}dcr-10000tnl-vppip4-ndr"
-#    layout: "plot-service-density"
-#
-#- type: "plot"
-#  title: "Packet Throughput: eth-l2bd-{Y}ch-{2XY}mif-{XY}dcr-10000tnl-vppip4-ndr"
-#  algorithm: "plot_nf_heatmap"
-#  output-file: "{DIR[STATIC,VPP]}/l2bd-3n-hsw-xl710-imix-4t4c-ipsec-10000tnl-csc-ndr"
-#  data: "plot-vpp-nfv-3n-hsw-ndrpdr"
-#  filter: "'NIC_Intel-XL710' and
-#           'NF_DENSITY' and
-#           'DOCKER' and
-#           'CHAIN' and
-#           'NF_VPPIP4' and
-#           'IPSEC' and
-#           'TNL_10000' and
-#           'IMIX' and
-#           '4T4C' and
-#           'NDRPDR'"
-#  parameters:
-#  - "throughput"
-#  - "name"
-#  - "tags"
-#  include-tests: "NDR" # "PDR" | "NDR" | "MRR"
-#  x-axis: "X = CNFs per Service Chain"
-#  y-axis: "Y = Number of Service Chains"
-#  z-axis: "IMIX Packet Throughput (mean NDR) [Mpps]"
-#  layout:
-#    title: "<b>Throughput:</b> eth-l2bd-{Y}ch-{2XY}mif-{XY}dcr-10000tnl-vppip4-ndr"
-#    layout: "plot-service-density"
-#
-## Plots - NF Density - CSC IPSEC 10000tnl - PDR IMIX
-#- type: "plot"
-#  title: "Packet Throughput: eth-l2bd-{Y}ch-{2XY}mif-{XY}dcr-10000tnl-vppip4-pdr"
-#  algorithm: "plot_nf_heatmap"
-#  output-file: "{DIR[STATIC,VPP]}/l2bd-3n-hsw-xl710-imix-1t1c-ipsec-10000tnl-csc-pdr"
-#  data: "plot-vpp-nfv-3n-hsw-ndrpdr"
-#  filter: "'NIC_Intel-XL710' and
-#           'NF_DENSITY' and
-#           'DOCKER' and
-#           'CHAIN' and
-#           'NF_VPPIP4' and
-#           'IPSEC' and
-#           'TNL_10000' and
-#           'IMIX' and
-#           '1T1C' and
-#           'NDRPDR'"
-#  parameters:
-#  - "throughput"
-#  - "name"
-#  - "tags"
-#  include-tests: "PDR" # "PDR" | "NDR" | "MRR"
-#  x-axis: "X = CNFs per Service Chain"
-#  y-axis: "Y = Number of Service Chains"
-#  z-axis: "IMIX Packet Throughput (mean PDR) [Mpps]"
-#  layout:
-#    title: "<b>Throughput:</b> eth-l2bd-{Y}ch-{2XY}mif-{XY}dcr-10000tnl-vppip4-pdr"
-#    layout: "plot-service-density"
-#
-#- type: "plot"
-#  title: "Packet Throughput: eth-l2bd-{Y}ch-{2XY}mif-{XY}dcr-10000tnl-vppip4-pdr"
-#  algorithm: "plot_nf_heatmap"
-#  output-file: "{DIR[STATIC,VPP]}/l2bd-3n-hsw-xl710-imix-2t2c-ipsec-10000tnl-csc-pdr"
-#  data: "plot-vpp-nfv-3n-hsw-ndrpdr"
-#  filter: "'NIC_Intel-XL710' and
-#           'NF_DENSITY' and
-#           'DOCKER' and
-#           'CHAIN' and
-#           'NF_VPPIP4' and
-#           'IPSEC' and
-#           'TNL_10000' and
-#           'IMIX' and
-#           '2T2C' and
-#           'NDRPDR'"
-#  parameters:
-#  - "throughput"
-#  - "name"
-#  - "tags"
-#  include-tests: "PDR" # "PDR" | "NDR" | "MRR"
-#  x-axis: "X = CNFs per Service Chain"
-#  y-axis: "Y = Number of Service Chains"
-#  z-axis: "IMIX Packet Throughput (mean PDR) [Mpps]"
-#  layout:
-#    title: "<b>Throughput:</b> eth-l2bd-{Y}ch-{2XY}mif-{XY}dcr-10000tnl-vppip4-pdr"
-#    layout: "plot-service-density"
-#
-#- type: "plot"
-#  title: "Packet Throughput: eth-l2bd-{Y}ch-{2XY}mif-{XY}dcr-10000tnl-vppip4-pdr"
-#  algorithm: "plot_nf_heatmap"
-#  output-file: "{DIR[STATIC,VPP]}/l2bd-3n-hsw-xl710-imix-4t4c-ipsec-10000tnl-csc-pdr"
-#  data: "plot-vpp-nfv-3n-hsw-ndrpdr"
-#  filter: "'NIC_Intel-XL710' and
-#           'NF_DENSITY' and
-#           'DOCKER' and
-#           'CHAIN' and
-#           'NF_VPPIP4' and
-#           'IPSEC' and
-#           'TNL_10000' and
-#           'IMIX' and
-#           '4T4C' and
-#           'NDRPDR'"
-#  parameters:
-#  - "throughput"
-#  - "name"
-#  - "tags"
-#  include-tests: "PDR" # "PDR" | "NDR" | "MRR"
-#  x-axis: "X = CNFs per Service Chain"
-#  y-axis: "Y = Number of Service Chains"
-#  z-axis: "IMIX Packet Throughput (mean PDR) [Mpps]"
-#  layout:
-#    title: "<b>Throughput:</b> eth-l2bd-{Y}ch-{2XY}mif-{XY}dcr-10000tnl-vppip4-pdr"
-#    layout: "plot-service-density"
-
-###############################################################################
-
-# Plots - NF Density - CSP - MRR IMIX
-- type: "plot"
-  title: "Packet Throughput: eth-l2bd-{Y}pl-{2Y}mif-{XY}dcr-vppip4-mrr"
-  algorithm: "plot_nf_heatmap"
-  output-file-type: ".html"
-  output-file: "{DIR[STATIC,VPP]}/l2bd-2n-skx-xxv710-imix-2t1c-base-csp-mrr"
-  data: "plot-vpp-nfv-2n-skx-mrr"
-  filter: "'NIC_Intel-XXV710' and
-           'NF_DENSITY' and
-           'DOCKER' and
-           'PIPELINE' and
-           'NF_VPPIP4' and
-           'IMIX' and
-           '2T1C' and
-           'MRR'"
-  parameters:
-  - "result"
-  - "name"
-  - "tags"
-  include-tests: "MRR" # "PDR" | "NDR" | "MRR"
-  x-axis: "X = CNFs per Service Pipeline"
-  y-axis: "Y = Number of Service Pipelines"
-  z-axis: "IMIX Packet Throughput (mean MRR) [Mpps]"
-  layout:
-    title: "<b>Throughput:</b> eth-l2bd-{Y}pl-{2Y}mif-{XY}dcr-vppip4-mrr"
-    layout: "plot-service-density"
-
-- type: "plot"
-  title: "Packet Throughput: eth-l2bd-{Y}pl-{2Y}mif-{XY}dcr-vppip4-mrr"
-  algorithm: "plot_nf_heatmap"
-  output-file-type: ".html"
-  output-file: "{DIR[STATIC,VPP]}/l2bd-2n-skx-xxv710-imix-4t2c-base-csp-mrr"
-  data: "plot-vpp-nfv-2n-skx-mrr"
-  filter: "'NIC_Intel-XXV710' and
-           'NF_DENSITY' and
-           'DOCKER' and
-           'PIPELINE' and
-           'NF_VPPIP4' and
-           'IMIX' and
-           '4T2C' and
-           'MRR'"
-  parameters:
-  - "result"
-  - "name"
-  - "tags"
-  include-tests: "MRR" # "PDR" | "NDR" | "MRR"
-  x-axis: "X = CNFs per Service Pipeline"
-  y-axis: "Y = Number of Service Pipelines"
-  z-axis: "IMIX Packet Throughput (mean MRR) [Mpps]"
-  layout:
-    title: "<b>Throughput:</b> eth-l2bd-{Y}pl-{2Y}mif-{XY}dcr-vppip4-mrr"
-    layout: "plot-service-density"
-
-- type: "plot"
-  title: "Packet Throughput: eth-l2bd-{Y}pl-{2Y}mif-{XY}dcr-vppip4-mrr"
-  algorithm: "plot_nf_heatmap"
-  output-file-type: ".html"
-  output-file: "{DIR[STATIC,VPP]}/l2bd-2n-skx-xxv710-imix-8t4c-base-csp-mrr"
-  data: "plot-vpp-nfv-2n-skx-mrr"
-  filter: "'NIC_Intel-XXV710' and
-           'NF_DENSITY' and
-           'DOCKER' and
-           'PIPELINE' and
-           'NF_VPPIP4' and
-           'IMIX' and
-           '8T4C' and
-           'MRR'"
-  parameters:
-  - "result"
-  - "name"
-  - "tags"
-  include-tests: "MRR" # "PDR" | "NDR" | "MRR"
-  x-axis: "X = CNFs per Service Pipeline"
-  y-axis: "Y = Number of Service Pipelines"
-  z-axis: "IMIX Packet Throughput (mean MRR) [Mpps]"
-  layout:
-    title: "<b>Throughput:</b> eth-l2bd-{Y}pl-{2Y}mif-{XY}dcr-vppip4-mrr"
-    layout: "plot-service-density"
-
-# Plots - NF Density - CSP - NDR IMIX
-- type: "plot"
-  title: "Packet Throughput: eth-l2bd-{Y}pl-{2Y}mif-{XY}dcr-vppip4-ndr"
-  algorithm: "plot_nf_heatmap"
-  output-file-type: ".html"
-  output-file: "{DIR[STATIC,VPP]}/l2bd-2n-skx-xxv710-imix-2t1c-base-csp-ndr"
-  data: "plot-vpp-nfv-2n-skx-ndrpdr"
-  filter: "'NIC_Intel-XXV710' and
-           'NF_DENSITY' and
-           'DOCKER' and
-           'PIPELINE' and
-           'NF_VPPIP4' and
-           'IMIX' and
-           '2T1C' and
-           'NDRPDR'"
-  parameters:
-  - "throughput"
-  - "name"
-  - "tags"
-  include-tests: "NDR" # "PDR" | "NDR" | "MRR"
-  x-axis: "X = CNFs per Service Pipeline"
-  y-axis: "Y = Number of Service Pipelines"
-  z-axis: "IMIX Packet Throughput (mean NDR) [Mpps]"
-  layout:
-    title: "<b>Throughput:</b> eth-l2bd-{Y}pl-{2Y}mif-{XY}dcr-vppip4-ndr"
-    layout: "plot-service-density"
-
-- type: "plot"
-  title: "Packet Throughput: eth-l2bd-{Y}pl-{2Y}mif-{XY}dcr-vppip4-ndr"
-  algorithm: "plot_nf_heatmap"
-  output-file-type: ".html"
-  output-file: "{DIR[STATIC,VPP]}/l2bd-2n-skx-xxv710-imix-4t2c-base-csp-ndr"
-  data: "plot-vpp-nfv-2n-skx-ndrpdr"
-  filter: "'NIC_Intel-XXV710' and
-           'NF_DENSITY' and
-           'DOCKER' and
-           'PIPELINE' and
-           'NF_VPPIP4' and
-           'IMIX' and
-           '4T2C' and
-           'NDRPDR'"
-  parameters:
-  - "throughput"
-  - "name"
-  - "tags"
-  include-tests: "NDR" # "PDR" | "NDR" | "MRR"
-  x-axis: "X = CNFs per Service Pipeline"
-  y-axis: "Y = Number of Service Pipelines"
-  z-axis: "IMIX Packet Throughput (mean NDR) [Mpps]"
-  layout:
-    title: "<b>Throughput:</b> eth-l2bd-{Y}pl-{2Y}mif-{XY}dcr-vppip4-ndr"
-    layout: "plot-service-density"
-
-- type: "plot"
-  title: "Packet Throughput: eth-l2bd-{Y}pl-{2Y}mif-{XY}dcr-vppip4-ndr"
-  algorithm: "plot_nf_heatmap"
-  output-file-type: ".html"
-  output-file: "{DIR[STATIC,VPP]}/l2bd-2n-skx-xxv710-imix-8t4c-base-csp-ndr"
-  data: "plot-vpp-nfv-2n-skx-ndrpdr"
-  filter: "'NIC_Intel-XXV710' and
-           'NF_DENSITY' and
-           'DOCKER' and
-           'PIPELINE' and
-           'NF_VPPIP4' and
-           'IMIX' and
-           '8T4C' and
-           'NDRPDR'"
-  parameters:
-  - "throughput"
-  - "name"
-  - "tags"
-  include-tests: "NDR" # "PDR" | "NDR" | "MRR"
-  x-axis: "X = CNFs per Service Pipeline"
-  y-axis: "Y = Number of Service Pipelines"
-  z-axis: "IMIX Packet Throughput (mean NDR) [Mpps]"
-  layout:
-    title: "<b>Throughput:</b> eth-l2bd-{Y}pl-{2Y}mif-{XY}dcr-vppip4-ndr"
-    layout: "plot-service-density"
-
-# Plots - NF Density - CSP - PDR IMIX
-- type: "plot"
-  title: "Packet Throughput: eth-l2bd-{Y}pl-{2Y}mif-{XY}dcr-vppip4-pdr"
-  algorithm: "plot_nf_heatmap"
-  output-file-type: ".html"
-  output-file: "{DIR[STATIC,VPP]}/l2bd-2n-skx-xxv710-imix-2t1c-base-csp-pdr"
-  data: "plot-vpp-nfv-2n-skx-ndrpdr"
-  filter: "'NIC_Intel-XXV710' and
-           'NF_DENSITY' and
-           'DOCKER' and
-           'PIPELINE' and
-           'NF_VPPIP4' and
-           'IMIX' and
-           '2T1C' and
-           'NDRPDR'"
-  parameters:
-  - "throughput"
-  - "name"
-  - "tags"
-  include-tests: "PDR" # "PDR" | "NDR" | "MRR"
-  x-axis: "X = CNFs per Service Pipeline"
-  y-axis: "Y = Number of Service Pipelines"
-  z-axis: "IMIX Packet Throughput (mean PDR) [Mpps]"
-  layout:
-    title: "<b>Throughput:</b> eth-l2bd-{Y}pl-{2Y}mif-{XY}dcr-vppip4-pdr"
-    layout: "plot-service-density"
-
-- type: "plot"
-  title: "Packet Throughput: eth-l2bd-{Y}pl-{2Y}mif-{XY}dcr-vppip4-pdr"
-  algorithm: "plot_nf_heatmap"
-  output-file-type: ".html"
-  output-file: "{DIR[STATIC,VPP]}/l2bd-2n-skx-xxv710-imix-4t2c-base-csp-pdr"
-  data: "plot-vpp-nfv-2n-skx-ndrpdr"
-  filter: "'NIC_Intel-XXV710' and
-           'NF_DENSITY' and
-           'DOCKER' and
-           'PIPELINE' and
-           'NF_VPPIP4' and
-           'IMIX' and
-           '4T2C' and
-           'NDRPDR'"
-  parameters:
-  - "throughput"
-  - "name"
-  - "tags"
-  include-tests: "PDR" # "PDR" | "NDR" | "MRR"
-  x-axis: "X = CNFs per Service Pipeline"
-  y-axis: "Y = Number of Service Pipelines"
-  z-axis: "IMIX Packet Throughput (mean PDR) [Mpps]"
-  layout:
-    title: "<b>Throughput:</b> eth-l2bd-{Y}pl-{2Y}mif-{XY}dcr-vppip4-pdr"
-    layout: "plot-service-density"
-
-- type: "plot"
-  title: "Packet Throughput: eth-l2bd-{Y}pl-{2Y}mif-{XY}dcr-vppip4-pdr"
-  algorithm: "plot_nf_heatmap"
-  output-file-type: ".html"
-  output-file: "{DIR[STATIC,VPP]}/l2bd-2n-skx-xxv710-imix-8t4c-base-csp-pdr"
-  data: "plot-vpp-nfv-2n-skx-ndrpdr"
-  filter: "'NIC_Intel-XXV710' and
-           'NF_DENSITY' and
-           'DOCKER' and
-           'PIPELINE' and
-           'NF_VPPIP4' and
-           'IMIX' and
-           '8T4C' and
-           'NDRPDR'"
-  parameters:
-  - "throughput"
-  - "name"
-  - "tags"
-  include-tests: "PDR" # "PDR" | "NDR" | "MRR"
-  x-axis: "X = CNFs per Service Pipeline"
-  y-axis: "Y = Number of Service Pipelines"
-  z-axis: "IMIX Packet Throughput (mean PDR) [Mpps]"
-  layout:
-    title: "<b>Throughput:</b> eth-l2bd-{Y}pl-{2Y}mif-{XY}dcr-vppip4-pdr"
-    layout: "plot-service-density"
-
-###############################################################################
-# Plots - 2n-clx NF Density - VSC - MRR IMIX
-
-- type: "plot"
-  title: "Packet Throughput: eth-l2bd-{Y}ch-{2XY}vh-{XY}vm-vppip4-mrr"
-  algorithm: "plot_nf_heatmap"
-  output-file-type: ".html"
-  output-file: "{DIR[STATIC,VPP]}/l2bd-2n-clx-xxv710-imix-2t1c-base-vsc-mrr"
-  data: "plot-vpp-nfv-2n-clx-mrr"
-  filter: "'NIC_Intel-XXV710' and
-           'NF_DENSITY' and
-           'VHOST' and
-           not 'VXLAN' and
-           'CHAIN' and
-           'NF_VPPIP4' and
-           'IMIX' and
-           '2T1C' and
-           'MRR'"
-  parameters:
-  - "result"
-  - "name"
-  - "tags"
-  include-tests: "MRR" # "PDR" | "NDR" | "MRR"
-  x-axis: "X = VNFs per Service Chain"
-  y-axis: "Y = Number of Service Chains"
-  z-axis: "IMIX Packet Throughput (mean MRR) [Mpps]"
-  layout:
-    title: "<b>Throughput:</b> eth-l2bd-{Y}ch-{2XY}vh-{XY}vm-vppip4-mrr"
-    layout: "plot-service-density"
-
-- type: "plot"
-  title: "Packet Throughput: eth-l2bd-{Y}ch-{2XY}vh-{XY}vm-vppip4-mrr"
-  algorithm: "plot_nf_heatmap"
-  output-file-type: ".html"
-  output-file: "{DIR[STATIC,VPP]}/l2bd-2n-clx-xxv710-imix-4t2c-base-vsc-mrr"
-  data: "plot-vpp-nfv-2n-clx-mrr"
-  filter: "'NIC_Intel-XXV710' and
-           'NF_DENSITY' and
-           'VHOST' and
-           not 'VXLAN' and
-           'CHAIN' and
-           'NF_VPPIP4' and
-           'IMIX' and
-           '4T2C' and
-           'MRR'"
-  parameters:
-  - "result"
-  - "name"
-  - "tags"
-  include-tests: "MRR" # "PDR" | "NDR" | "MRR"
-  x-axis: "X = VNFs per Service Chain"
-  y-axis: "Y = Number of Service Chains"
-  z-axis: "IMIX Packet Throughput (mean MRR) [Mpps]"
-  layout:
-    title: "<b>Throughput:</b> eth-l2bd-{Y}ch-{2XY}vh-{XY}vm-vppip4-mrr"
-    layout: "plot-service-density"
-
-- type: "plot"
-  title: "Packet Throughput: eth-l2bd-{Y}ch-{2XY}vh-{XY}vm-vppip4-mrr"
-  algorithm: "plot_nf_heatmap"
-  output-file-type: ".html"
-  output-file: "{DIR[STATIC,VPP]}/l2bd-2n-clx-xxv710-imix-8t4c-base-vsc-mrr"
-  data: "plot-vpp-nfv-2n-clx-mrr"
-  filter: "'NIC_Intel-XXV710' and
-           'NF_DENSITY' and
-           'VHOST' and
-           not 'VXLAN' and
-           'CHAIN' and
-           'NF_VPPIP4' and
-           'IMIX' and
-           '8T4C' and
-           'MRR'"
-  parameters:
-  - "result"
-  - "name"
-  - "tags"
-  include-tests: "MRR" # "PDR" | "NDR" | "MRR"
-  x-axis: "X = VNFs per Service Chain"
-  y-axis: "Y = Number of Service Chains"
-  z-axis: "IMIX Packet Throughput (mean MRR) [Mpps]"
-  layout:
-    title: "<b>Throughput:</b> eth-l2bd-{Y}ch-{2XY}vh-{XY}vm-vppip4-mrr"
-    layout: "plot-service-density"
-
-# Plots - NF Density - VSC - NDR IMIX
-- type: "plot"
-  title: "Packet Throughput: eth-l2bd-{Y}ch-{2XY}vh-{XY}vm-vppip4-ndr"
-  algorithm: "plot_nf_heatmap"
-  output-file-type: ".html"
-  output-file: "{DIR[STATIC,VPP]}/l2bd-2n-clx-xxv710-imix-2t1c-base-vsc-ndr"
-  data: "plot-vpp-nfv-2n-clx-ndrpdr"
-  filter: "'NIC_Intel-XXV710' and
-           'NF_DENSITY' and
-           'VHOST' and
-           not 'VXLAN' and
-           'CHAIN' and
-           'NF_VPPIP4' and
-           'IMIX' and
-           '2T1C' and
-           'NDRPDR'"
-  parameters:
-  - "throughput"
-  - "name"
-  - "tags"
-  include-tests: "NDR" # "PDR" | "NDR" | "MRR"
-  x-axis: "X = VNFs per Service Chain"
-  y-axis: "Y = Number of Service Chains"
-  z-axis: "IMIX Packet Throughput (mean NDR) [Mpps]"
-  layout:
-    title: "<b>Throughput:</b> eth-l2bd-{Y}ch-{2XY}vh-{XY}vm-vppip4-ndr"
-    layout: "plot-service-density"
-
-- type: "plot"
-  title: "Packet Throughput: eth-l2bd-{Y}ch-{2XY}vh-{XY}vm-vppip4-ndr"
-  algorithm: "plot_nf_heatmap"
-  output-file-type: ".html"
-  output-file: "{DIR[STATIC,VPP]}/l2bd-2n-clx-xxv710-imix-4t2c-base-vsc-ndr"
-  data: "plot-vpp-nfv-2n-clx-ndrpdr"
-  filter: "'NIC_Intel-XXV710' and
-           'NF_DENSITY' and
-           'VHOST' and
-           not 'VXLAN' and
-           'CHAIN' and
-           'NF_VPPIP4' and
-           'IMIX' and
-           '4T2C' and
-           'NDRPDR'"
-  parameters:
-  - "throughput"
-  - "name"
-  - "tags"
-  include-tests: "NDR" # "PDR" | "NDR" | "MRR"
-  x-axis: "X = VNFs per Service Chain"
-  y-axis: "Y = Number of Service Chains"
-  z-axis: "IMIX Packet Throughput (mean NDR) [Mpps]"
-  layout:
-    title: "<b>Throughput:</b> eth-l2bd-{Y}ch-{2XY}vh-{XY}vm-vppip4-ndr"
-    layout: "plot-service-density"
-
-- type: "plot"
-  title: "Packet Throughput: eth-l2bd-{Y}ch-{2XY}vh-{XY}vm-vppip4-ndr"
-  algorithm: "plot_nf_heatmap"
-  output-file-type: ".html"
-  output-file: "{DIR[STATIC,VPP]}/l2bd-2n-clx-xxv710-imix-8t4c-base-vsc-ndr"
-  data: "plot-vpp-nfv-2n-clx-ndrpdr"
-  filter: "'NIC_Intel-XXV710' and
-           'NF_DENSITY' and
-           'VHOST' and
-           not 'VXLAN' and
-           'CHAIN' and
-           'NF_VPPIP4' and
-           'IMIX' and
-           '8T4C' and
-           'NDRPDR'"
-  parameters:
-  - "throughput"
-  - "name"
-  - "tags"
-  include-tests: "NDR" # "PDR" | "NDR" | "MRR"
-  x-axis: "X = VNFs per Service Chain"
-  y-axis: "Y = Number of Service Chains"
-  z-axis: "IMIX Packet Throughput (mean NDR) [Mpps]"
-  layout:
-    title: "<b>Throughput:</b> eth-l2bd-{Y}ch-{2XY}vh-{XY}vm-vppip4-ndr"
-    layout: "plot-service-density"
-
-# Plots - NF Density - VSC - PDR IMIX
-- type: "plot"
-  title: "Packet Throughput: eth-l2bd-{Y}ch-{2XY}vh-{XY}vm-vppip4-pdr"
-  algorithm: "plot_nf_heatmap"
-  output-file-type: ".html"
-  output-file: "{DIR[STATIC,VPP]}/l2bd-2n-clx-xxv710-imix-2t1c-base-vsc-pdr"
-  data: "plot-vpp-nfv-2n-clx-ndrpdr"
-  filter: "'NIC_Intel-XXV710' and
-           'NF_DENSITY' and
-           'VHOST' and
-           not 'VXLAN' and
-           'CHAIN' and
-           'NF_VPPIP4' and
-           'IMIX' and
-           '2T1C' and
-           'NDRPDR'"
-  parameters:
-  - "throughput"
-  - "name"
-  - "tags"
-  include-tests: "PDR" # "PDR" | "NDR" | "MRR"
-  x-axis: "X = VNFs per Service Chain"
-  y-axis: "Y = Number of Service Chains"
-  z-axis: "IMIX Packet Throughput (mean PDR) [Mpps]"
-  layout:
-    title: "<b>Throughput:</b> eth-l2bd-{Y}ch-{2XY}vh-{XY}vm-vppip4-pdr"
-    layout: "plot-service-density"
-
-- type: "plot"
-  title: "Packet Throughput: eth-l2bd-{Y}ch-{2XY}vh-{XY}vm-vppip4-pdr"
-  algorithm: "plot_nf_heatmap"
-  output-file-type: ".html"
-  output-file: "{DIR[STATIC,VPP]}/l2bd-2n-clx-xxv710-imix-4t2c-base-vsc-pdr"
-  data: "plot-vpp-nfv-2n-clx-ndrpdr"
-  filter: "'NIC_Intel-XXV710' and
-           'NF_DENSITY' and
-           'VHOST' and
-           not 'VXLAN' and
-           'CHAIN' and
-           'NF_VPPIP4' and
-           'IMIX' and
-           '4T2C' and
-           'NDRPDR'"
-  parameters:
-  - "throughput"
-  - "name"
-  - "tags"
-  include-tests: "PDR" # "PDR" | "NDR" | "MRR"
-  x-axis: "X = VNFs per Service Chain"
-  y-axis: "Y = Number of Service Chains"
-  z-axis: "IMIX Packet Throughput (mean PDR) [Mpps]"
-  layout:
-    title: "<b>Throughput:</b> eth-l2bd-{Y}ch-{2XY}vh-{XY}vm-vppip4-pdr"
-    layout: "plot-service-density"
-
-- type: "plot"
-  title: "Packet Throughput: eth-l2bd-{Y}ch-{2XY}vh-{XY}vm-vppip4-pdr"
-  algorithm: "plot_nf_heatmap"
-  output-file-type: ".html"
-  output-file: "{DIR[STATIC,VPP]}/l2bd-2n-clx-xxv710-imix-8t4c-base-vsc-pdr"
-  data: "plot-vpp-nfv-2n-clx-ndrpdr"
-  filter: "'NIC_Intel-XXV710' and
-           'NF_DENSITY' and
-           'VHOST' and
-           not 'VXLAN' and
-           'CHAIN' and
-           'NF_VPPIP4' and
-           'IMIX' and
-           '8T4C' and
-           'NDRPDR'"
-  parameters:
-  - "throughput"
-  - "name"
-  - "tags"
-  include-tests: "PDR" # "PDR" | "NDR" | "MRR"
-  x-axis: "X = VNFs per Service Chain"
-  y-axis: "Y = Number of Service Chains"
-  z-axis: "IMIX Packet Throughput (mean PDR) [Mpps]"
-  layout:
-    title: "<b>Throughput:</b> eth-l2bd-{Y}ch-{2XY}vh-{XY}vm-vppip4-pdr"
-    layout: "plot-service-density"
-
-# Plots - NF Density - VSC - MRR IMIX
-- type: "plot"
-  title: "Packet Throughput: eth-l2bd-{Y}ch-{2XY}vh-{XY}vm-vxlan-vppip4-mrr"
-  algorithm: "plot_nf_heatmap"
-  output-file-type: ".html"
-  output-file: "{DIR[STATIC,VPP]}/l2bd-2n-clx-xxv710-imix-2t1c-base-vsc-vxlan-mrr"
-  data: "plot-vpp-nfv-2n-clx-mrr"
-  filter: "'NIC_Intel-XXV710' and
-           'NF_DENSITY' and
-           'VHOST' and
-           'VXLAN' and
-           'CHAIN' and
-           'IMIX' and
-           '2T1C' and
-           'MRR'"
-  parameters:
-  - "result"
-  - "name"
-  - "tags"
-  include-tests: "MRR" # "PDR" | "NDR" | "MRR"
-  x-axis: "X = VNFs per Service Chain"
-  y-axis: "Y = Number of Service Chains"
-  z-axis: "IMIX Packet Throughput (mean MRR) [Mpps]"
-  layout:
-    title: "<b>Throughput:</b> eth-l2bd-{Y}ch-{2XY}vh-{XY}vm-vxlan-vppip4-mrr"
-    layout: "plot-service-density"
-
-- type: "plot"
-  title: "Packet Throughput: eth-l2bd-{Y}ch-{2XY}vh-{XY}vm-vxlan-vppip4-mrr"
-  algorithm: "plot_nf_heatmap"
-  output-file-type: ".html"
-  output-file: "{DIR[STATIC,VPP]}/l2bd-2n-clx-xxv710-imix-4t2c-base-vsc-vxlan-mrr"
-  data: "plot-vpp-nfv-2n-clx-mrr"
-  filter: "'NIC_Intel-XXV710' and
-           'NF_DENSITY' and
-           'VHOST' and
-           'VXLAN' and
-           'CHAIN' and
-           'IMIX' and
-           '4T2C' and
-           'MRR'"
-  parameters:
-  - "result"
-  - "name"
-  - "tags"
-  include-tests: "MRR" # "PDR" | "NDR" | "MRR"
-  x-axis: "X = VNFs per Service Chain"
-  y-axis: "Y = Number of Service Chains"
-  z-axis: "IMIX Packet Throughput (mean MRR) [Mpps]"
-  layout:
-    title: "<b>Throughput:</b> eth-l2bd-{Y}ch-{2XY}vh-{XY}vm-vxlan-vppip4-mrr"
-    layout: "plot-service-density"
-
-- type: "plot"
-  title: "Packet Throughput: eth-l2bd-{Y}ch-{2XY}vh-{XY}vm-vxlan-vppip4-mrr"
-  algorithm: "plot_nf_heatmap"
-  output-file-type: ".html"
-  output-file: "{DIR[STATIC,VPP]}/l2bd-2n-clx-xxv710-imix-8t4c-base-vsc-vxlan-mrr"
-  data: "plot-vpp-nfv-2n-clx-mrr"
-  filter: "'NIC_Intel-XXV710' and
-           'NF_DENSITY' and
-           'VHOST' and
-           'VXLAN' and
-           'CHAIN' and
-           'IMIX' and
-           '8T4C' and
-           'MRR'"
-  parameters:
-  - "result"
-  - "name"
-  - "tags"
-  include-tests: "MRR" # "PDR" | "NDR" | "MRR"
-  x-axis: "X = VNFs per Service Chain"
-  y-axis: "Y = Number of Service Chains"
-  z-axis: "IMIX Packet Throughput (mean MRR) [Mpps]"
-  layout:
-    title: "<b>Throughput:</b> eth-l2bd-{Y}ch-{2XY}vh-{XY}vm-vxlan-vppip4-mrr"
-    layout: "plot-service-density"
-
-# Plots - NF Density - VSC - NDR IMIX
-- type: "plot"
-  title: "Packet Throughput: eth-l2bd-{Y}ch-{2XY}vh-{XY}vm-vxlan-vppip4-ndr"
-  algorithm: "plot_nf_heatmap"
-  output-file-type: ".html"
-  output-file: "{DIR[STATIC,VPP]}/l2bd-2n-clx-xxv710-imix-2t1c-base-vsc-vxlan-ndr"
-  data: "plot-vpp-nfv-2n-clx-ndrpdr"
-  filter: "'NIC_Intel-XXV710' and
-           'NF_DENSITY' and
-           'VHOST' and
-           'VXLAN' and
-           'CHAIN' and
-           'IMIX' and
-           '2T1C' and
-           'NDRPDR'"
-  parameters:
-  - "throughput"
-  - "name"
-  - "tags"
-  include-tests: "NDR" # "PDR" | "NDR" | "MRR"
-  x-axis: "X = VNFs per Service Chain"
-  y-axis: "Y = Number of Service Chains"
-  z-axis: "IMIX Packet Throughput (mean NDR) [Mpps]"
-  layout:
-    title: "<b>Throughput:</b> eth-l2bd-{Y}ch-{2XY}vh-{XY}vm-vxlan-vppip4-ndr"
-    layout: "plot-service-density"
-
-- type: "plot"
-  title: "Packet Throughput: eth-l2bd-{Y}ch-{2XY}vh-{XY}vm-vxlan-vppip4-ndr"
-  algorithm: "plot_nf_heatmap"
-  output-file-type: ".html"
-  output-file: "{DIR[STATIC,VPP]}/l2bd-2n-clx-xxv710-imix-4t2c-base-vsc-vxlan-ndr"
-  data: "plot-vpp-nfv-2n-clx-ndrpdr"
-  filter: "'NIC_Intel-XXV710' and
-           'NF_DENSITY' and
-           'VHOST' and
-           'VXLAN' and
-           'CHAIN' and
-           'IMIX' and
-           '4T2C' and
-           'NDRPDR'"
-  parameters:
-  - "throughput"
-  - "name"
-  - "tags"
-  include-tests: "NDR" # "PDR" | "NDR" | "MRR"
-  x-axis: "X = VNFs per Service Chain"
-  y-axis: "Y = Number of Service Chains"
-  z-axis: "IMIX Packet Throughput (mean NDR) [Mpps]"
-  layout:
-    title: "<b>Throughput:</b> eth-l2bd-{Y}ch-{2XY}vh-{XY}vm-vxlan-vppip4-ndr"
-    layout: "plot-service-density"
-
-- type: "plot"
-  title: "Packet Throughput: eth-l2bd-{Y}ch-{2XY}vh-{XY}vm-vxlan-vppip4-ndr"
-  algorithm: "plot_nf_heatmap"
-  output-file-type: ".html"
-  output-file: "{DIR[STATIC,VPP]}/l2bd-2n-clx-xxv710-imix-8t4c-base-vsc-vxlan-ndr"
-  data: "plot-vpp-nfv-2n-clx-ndrpdr"
-  filter: "'NIC_Intel-XXV710' and
-           'NF_DENSITY' and
-           'VHOST' and
-           'VXLAN' and
-           'CHAIN' and
-           'IMIX' and
-           '8T4C' and
-           'NDRPDR'"
-  parameters:
-  - "throughput"
-  - "name"
-  - "tags"
-  include-tests: "NDR" # "PDR" | "NDR" | "MRR"
-  x-axis: "X = VNFs per Service Chain"
-  y-axis: "Y = Number of Service Chains"
-  z-axis: "IMIX Packet Throughput (mean NDR) [Mpps]"
-  layout:
-    title: "<b>Throughput:</b> eth-l2bd-{Y}ch-{2XY}vh-{XY}vm-vxlan-vppip4-ndr"
-    layout: "plot-service-density"
-
-# Plots - NF Density - VSC - PDR IMIX
-- type: "plot"
-  title: "Packet Throughput: eth-l2bd-{Y}ch-{2XY}vh-{XY}vm-vxlan-vppip4-pdr"
-  algorithm: "plot_nf_heatmap"
-  output-file-type: ".html"
-  output-file: "{DIR[STATIC,VPP]}/l2bd-2n-clx-xxv710-imix-2t1c-base-vsc-vxlan-pdr"
-  data: "plot-vpp-nfv-2n-clx-ndrpdr"
-  filter: "'NIC_Intel-XXV710' and
-           'NF_DENSITY' and
-           'VHOST' and
-           'VXLAN' and
-           'CHAIN' and
-           'IMIX' and
-           '2T1C' and
-           'NDRPDR'"
-  parameters:
-  - "throughput"
-  - "name"
-  - "tags"
-  include-tests: "PDR" # "PDR" | "NDR" | "MRR"
-  x-axis: "X = VNFs per Service Chain"
-  y-axis: "Y = Number of Service Chains"
-  z-axis: "IMIX Packet Throughput (mean PDR) [Mpps]"
-  layout:
-    title: "<b>Throughput:</b> eth-l2bd-{Y}ch-{2XY}vh-{XY}vm-vxlan-vppip4-pdr"
-    layout: "plot-service-density"
-
-- type: "plot"
-  title: "Packet Throughput: eth-l2bd-{Y}ch-{2XY}vh-{XY}vm-vxlan-vppip4-pdr"
-  algorithm: "plot_nf_heatmap"
-  output-file-type: ".html"
-  output-file: "{DIR[STATIC,VPP]}/l2bd-2n-clx-xxv710-imix-4t2c-base-vsc-vxlan-pdr"
-  data: "plot-vpp-nfv-2n-clx-ndrpdr"
-  filter: "'NIC_Intel-XXV710' and
-           'NF_DENSITY' and
-           'VHOST' and
-           'VXLAN' and
-           'CHAIN' and
-           'IMIX' and
-           '4T2C' and
-           'NDRPDR'"
-  parameters:
-  - "throughput"
-  - "name"
-  - "tags"
-  include-tests: "PDR" # "PDR" | "NDR" | "MRR"
-  x-axis: "X = VNFs per Service Chain"
-  y-axis: "Y = Number of Service Chains"
-  z-axis: "IMIX Packet Throughput (mean PDR) [Mpps]"
-  layout:
-    title: "<b>Throughput:</b> eth-l2bd-{Y}ch-{2XY}vh-{XY}vm-vxlan-vppip4-pdr"
-    layout: "plot-service-density"
-
-- type: "plot"
-  title: "Packet Throughput: eth-l2bd-{Y}ch-{2XY}vh-{XY}vm-vxlan-vppip4-pdr"
-  algorithm: "plot_nf_heatmap"
-  output-file-type: ".html"
-  output-file: "{DIR[STATIC,VPP]}/l2bd-2n-clx-xxv710-imix-8t4c-base-vsc-vxlan-pdr"
-  data: "plot-vpp-nfv-2n-clx-ndrpdr"
-  filter: "'NIC_Intel-XXV710' and
-           'NF_DENSITY' and
-           'VHOST' and
-           'VXLAN' and
-           'CHAIN' and
-           'IMIX' and
-           '8T4C' and
-           'NDRPDR'"
-  parameters:
-  - "throughput"
-  - "name"
-  - "tags"
-  include-tests: "PDR" # "PDR" | "NDR" | "MRR"
-  x-axis: "X = VNFs per Service Chain"
-  y-axis: "Y = Number of Service Chains"
-  z-axis: "IMIX Packet Throughput (mean PDR) [Mpps]"
-  layout:
-    title: "<b>Throughput:</b> eth-l2bd-{Y}ch-{2XY}vh-{XY}vm-vxlan-vppip4-pdr"
-    layout: "plot-service-density"
-
-# Plots - NF Density - CSC - MRR IMIX
-- type: "plot"
-  title: "Packet Throughput: eth-l2bd-{Y}ch-{2XY}mif-{XY}dcr-vppip4-mrr"
-  algorithm: "plot_nf_heatmap"
-  output-file-type: ".html"
-  output-file: "{DIR[STATIC,VPP]}/l2bd-2n-clx-xxv710-imix-2t1c-base-csc-mrr"
-  data: "plot-vpp-nfv-2n-clx-mrr"
-  filter: "'NIC_Intel-XXV710' and
-           'NF_DENSITY' and
-           'DOCKER' and
-           'CHAIN' and
-           'NF_VPPIP4' and
-           'IMIX' and
-           '2T1C' and
-           'MRR'"
-  parameters:
-  - "result"
-  - "name"
-  - "tags"
-  include-tests: "MRR" # "PDR" | "NDR" | "MRR"
-  x-axis: "X = CNFs per Service Chain"
-  y-axis: "Y = Number of Service Chains"
-  z-axis: "IMIX Packet Throughput (mean MRR) [Mpps]"
-  layout:
-    title: "<b>Throughput:</b> eth-l2bd-{Y}ch-{2XY}mif-{XY}dcr-vppip4-mrr"
-    layout: "plot-service-density"
-
-- type: "plot"
-  title: "Packet Throughput: eth-l2bd-{Y}ch-{2XY}mif-{XY}dcr-vppip4-mrr"
-  algorithm: "plot_nf_heatmap"
-  output-file-type: ".html"
-  output-file: "{DIR[STATIC,VPP]}/l2bd-2n-clx-xxv710-imix-4t2c-base-csc-mrr"
-  data: "plot-vpp-nfv-2n-clx-mrr"
-  filter: "'NIC_Intel-XXV710' and
-           'NF_DENSITY' and
-           'DOCKER' and
-           'CHAIN' and
-           'NF_VPPIP4' and
-           'IMIX' and
-           '4T2C' and
-           'MRR'"
-  parameters:
-  - "result"
-  - "name"
-  - "tags"
-  include-tests: "MRR" # "PDR" | "NDR" | "MRR"
-  x-axis: "X = CNFs per Service Chain"
-  y-axis: "Y = Number of Service Chains"
-  z-axis: "IMIX Packet Throughput (mean MRR) [Mpps]"
-  layout:
-    title: "<b>Throughput:</b> eth-l2bd-{Y}ch-{2XY}mif-{XY}dcr-vppip4-mrr"
-    layout: "plot-service-density"
-
-- type: "plot"
-  title: "Packet Throughput: eth-l2bd-{Y}ch-{2XY}mif-{XY}dcr-vppip4-mrr"
-  algorithm: "plot_nf_heatmap"
-  output-file-type: ".html"
-  output-file: "{DIR[STATIC,VPP]}/l2bd-2n-clx-xxv710-imix-8t4c-base-csc-mrr"
-  data: "plot-vpp-nfv-2n-clx-mrr"
-  filter: "'NIC_Intel-XXV710' and
-           'NF_DENSITY' and
-           'DOCKER' and
-           'CHAIN' and
-           'NF_VPPIP4' and
-           'IMIX' and
-           '8T4C' and
-           'MRR'"
-  parameters:
-  - "result"
-  - "name"
-  - "tags"
-  include-tests: "MRR" # "PDR" | "NDR" | "MRR"
-  x-axis: "X = CNFs per Service Chain"
-  y-axis: "Y = Number of Service Chains"
-  z-axis: "IMIX Packet Throughput (mean MRR) [Mpps]"
-  layout:
-    title: "<b>Throughput:</b> eth-l2bd-{Y}ch-{2XY}mif-{XY}dcr-vppip4-mrr"
-    layout: "plot-service-density"
-
-# Plots - NF Density - CSC - NDR IMIX
-- type: "plot"
-  title: "Packet Throughput: eth-l2bd-{Y}ch-{2XY}mif-{XY}dcr-vppip4-ndr"
-  algorithm: "plot_nf_heatmap"
-  output-file-type: ".html"
-  output-file: "{DIR[STATIC,VPP]}/l2bd-2n-clx-xxv710-imix-2t1c-base-csc-ndr"
-  data: "plot-vpp-nfv-2n-clx-ndrpdr"
-  filter: "'NIC_Intel-XXV710' and
-           'NF_DENSITY' and
-           'DOCKER' and
-           'CHAIN' and
-           'NF_VPPIP4' and
-           'IMIX' and
-           '2T1C' and
-           'NDRPDR'"
-  parameters:
-  - "throughput"
-  - "name"
-  - "tags"
-  include-tests: "NDR" # "PDR" | "NDR" | "MRR"
-  x-axis: "X = CNFs per Service Chain"
-  y-axis: "Y = Number of Service Chains"
-  z-axis: "IMIX Packet Throughput (mean NDR) [Mpps]"
-  layout:
-    title: "<b>Throughput:</b> eth-l2bd-{Y}ch-{2XY}mif-{XY}dcr-vppip4-ndr"
-    layout: "plot-service-density"
-
-- type: "plot"
-  title: "Packet Throughput: eth-l2bd-{Y}ch-{2XY}mif-{XY}dcr-vppip4-ndr"
-  algorithm: "plot_nf_heatmap"
-  output-file-type: ".html"
-  output-file: "{DIR[STATIC,VPP]}/l2bd-2n-clx-xxv710-imix-4t2c-base-csc-ndr"
-  data: "plot-vpp-nfv-2n-clx-ndrpdr"
-  filter: "'NIC_Intel-XXV710' and
-           'NF_DENSITY' and
-           'DOCKER' and
-           'CHAIN' and
-           'NF_VPPIP4' and
-           'IMIX' and
-           '4T2C' and
-           'NDRPDR'"
-  parameters:
-  - "throughput"
-  - "name"
-  - "tags"
-  include-tests: "NDR" # "PDR" | "NDR" | "MRR"
-  x-axis: "X = CNFs per Service Chain"
-  y-axis: "Y = Number of Service Chains"
-  z-axis: "IMIX Packet Throughput (mean NDR) [Mpps]"
-  layout:
-    title: "<b>Throughput:</b> eth-l2bd-{Y}ch-{2XY}mif-{XY}dcr-vppip4-ndr"
-    layout: "plot-service-density"
-
-- type: "plot"
-  title: "Packet Throughput: eth-l2bd-{Y}ch-{2XY}mif-{XY}dcr-vppip4-ndr"
-  algorithm: "plot_nf_heatmap"
-  output-file-type: ".html"
-  output-file: "{DIR[STATIC,VPP]}/l2bd-2n-clx-xxv710-imix-8t4c-base-csc-ndr"
-  data: "plot-vpp-nfv-2n-clx-ndrpdr"
-  filter: "'NIC_Intel-XXV710' and
-           'NF_DENSITY' and
-           'DOCKER' and
-           'CHAIN' and
-           'NF_VPPIP4' and
-           'IMIX' and
-           '8T4C' and
-           'NDRPDR'"
-  parameters:
-  - "throughput"
-  - "name"
-  - "tags"
-  include-tests: "NDR" # "PDR" | "NDR" | "MRR"
-  x-axis: "X = CNFs per Service Chain"
-  y-axis: "Y = Number of Service Chains"
-  z-axis: "IMIX Packet Throughput (mean NDR) [Mpps]"
-  layout:
-    title: "<b>Throughput:</b> eth-l2bd-{Y}ch-{2XY}mif-{XY}dcr-vppip4-ndr"
-    layout: "plot-service-density"
-
-# Plots - NF Density - CSC - PDR IMIX
-- type: "plot"
-  title: "Packet Throughput: eth-l2bd-{Y}ch-{2XY}mif-{XY}dcr-vppip4-pdr"
-  algorithm: "plot_nf_heatmap"
-  output-file-type: ".html"
-  output-file: "{DIR[STATIC,VPP]}/l2bd-2n-clx-xxv710-imix-2t1c-base-csc-pdr"
-  data: "plot-vpp-nfv-2n-clx-ndrpdr"
-  filter: "'NIC_Intel-XXV710' and
-           'NF_DENSITY' and
-           'DOCKER' and
-           'CHAIN' and
-           'NF_VPPIP4' and
-           'IMIX' and
-           '2T1C' and
-           'NDRPDR'"
-  parameters:
-  - "throughput"
-  - "name"
-  - "tags"
-  include-tests: "PDR" # "PDR" | "NDR" | "MRR"
-  x-axis: "X = CNFs per Service Chain"
-  y-axis: "Y = Number of Service Chains"
-  z-axis: "IMIX Packet Throughput (mean PDR) [Mpps]"
-  layout:
-    title: "<b>Throughput:</b> eth-l2bd-{Y}ch-{2XY}mif-{XY}dcr-vppip4-pdr"
-    layout: "plot-service-density"
-
-- type: "plot"
-  title: "Packet Throughput: eth-l2bd-{Y}ch-{2XY}mif-{XY}dcr-vppip4-pdr"
-  algorithm: "plot_nf_heatmap"
-  output-file-type: ".html"
-  output-file: "{DIR[STATIC,VPP]}/l2bd-2n-clx-xxv710-imix-4t2c-base-csc-pdr"
-  data: "plot-vpp-nfv-2n-clx-ndrpdr"
-  filter: "'NIC_Intel-XXV710' and
-           'NF_DENSITY' and
-           'DOCKER' and
-           'CHAIN' and
-           'NF_VPPIP4' and
-           'IMIX' and
-           '4T2C' and
-           'NDRPDR'"
-  parameters:
-  - "throughput"
-  - "name"
-  - "tags"
-  include-tests: "PDR" # "PDR" | "NDR" | "MRR"
-  x-axis: "X = CNFs per Service Chain"
-  y-axis: "Y = Number of Service Chains"
-  z-axis: "IMIX Packet Throughput (mean PDR) [Mpps]"
-  layout:
-    title: "<b>Throughput:</b> eth-l2bd-{Y}ch-{2XY}mif-{XY}dcr-vppip4-pdr"
-    layout: "plot-service-density"
-
-- type: "plot"
-  title: "Packet Throughput: eth-l2bd-{Y}ch-{2XY}mif-{XY}dcr-vppip4-pdr"
-  algorithm: "plot_nf_heatmap"
-  output-file-type: ".html"
-  output-file: "{DIR[STATIC,VPP]}/l2bd-2n-clx-xxv710-imix-8t4c-base-csc-pdr"
-  data: "plot-vpp-nfv-2n-clx-ndrpdr"
-  filter: "'NIC_Intel-XXV710' and
-           'NF_DENSITY' and
-           'DOCKER' and
-           'CHAIN' and
-           'NF_VPPIP4' and
-           'IMIX' and
-           '8T4C' and
-           'NDRPDR'"
-  parameters:
-  - "throughput"
-  - "name"
-  - "tags"
-  include-tests: "PDR" # "PDR" | "NDR" | "MRR"
-  x-axis: "X = CNFs per Service Chain"
-  y-axis: "Y = Number of Service Chains"
-  z-axis: "IMIX Packet Throughput (mean PDR) [Mpps]"
-  layout:
-    title: "<b>Throughput:</b> eth-l2bd-{Y}ch-{2XY}mif-{XY}dcr-vppip4-pdr"
-    layout: "plot-service-density"
-
-# Plots - NF Density - CSP - MRR IMIX
-- type: "plot"
-  title: "Packet Throughput: eth-l2bd-{Y}pl-{2Y}mif-{XY}dcr-vppip4-mrr"
-  algorithm: "plot_nf_heatmap"
-  output-file-type: ".html"
-  output-file: "{DIR[STATIC,VPP]}/l2bd-2n-clx-xxv710-imix-2t1c-base-csp-mrr"
-  data: "plot-vpp-nfv-2n-clx-mrr"
-  filter: "'NIC_Intel-XXV710' and
-           'NF_DENSITY' and
-           'DOCKER' and
-           'PIPELINE' and
-           'NF_VPPIP4' and
-           'IMIX' and
-           '2T1C' and
-           'MRR'"
-  parameters:
-  - "result"
-  - "name"
-  - "tags"
-  include-tests: "MRR" # "PDR" | "NDR" | "MRR"
-  x-axis: "X = CNFs per Service Pipeline"
-  y-axis: "Y = Number of Service Pipelines"
-  z-axis: "IMIX Packet Throughput (mean MRR) [Mpps]"
-  layout:
-    title: "<b>Throughput:</b> eth-l2bd-{Y}pl-{2Y}mif-{XY}dcr-vppip4-mrr"
-    layout: "plot-service-density"
-
-- type: "plot"
-  title: "Packet Throughput: eth-l2bd-{Y}pl-{2Y}mif-{XY}dcr-vppip4-mrr"
-  algorithm: "plot_nf_heatmap"
-  output-file-type: ".html"
-  output-file: "{DIR[STATIC,VPP]}/l2bd-2n-clx-xxv710-imix-4t2c-base-csp-mrr"
-  data: "plot-vpp-nfv-2n-clx-mrr"
-  filter: "'NIC_Intel-XXV710' and
-           'NF_DENSITY' and
-           'DOCKER' and
-           'PIPELINE' and
-           'NF_VPPIP4' and
-           'IMIX' and
-           '4T2C' and
-           'MRR'"
-  parameters:
-  - "result"
-  - "name"
-  - "tags"
-  include-tests: "MRR" # "PDR" | "NDR" | "MRR"
-  x-axis: "X = CNFs per Service Pipeline"
-  y-axis: "Y = Number of Service Pipelines"
-  z-axis: "IMIX Packet Throughput (mean MRR) [Mpps]"
-  layout:
-    title: "<b>Throughput:</b> eth-l2bd-{Y}pl-{2Y}mif-{XY}dcr-vppip4-mrr"
-    layout: "plot-service-density"
-
-- type: "plot"
-  title: "Packet Throughput: eth-l2bd-{Y}pl-{2Y}mif-{XY}dcr-vppip4-mrr"
-  algorithm: "plot_nf_heatmap"
-  output-file-type: ".html"
-  output-file: "{DIR[STATIC,VPP]}/l2bd-2n-clx-xxv710-imix-8t4c-base-csp-mrr"
-  data: "plot-vpp-nfv-2n-clx-mrr"
-  filter: "'NIC_Intel-XXV710' and
-           'NF_DENSITY' and
-           'DOCKER' and
-           'PIPELINE' and
-           'NF_VPPIP4' and
-           'IMIX' and
-           '8T4C' and
-           'MRR'"
-  parameters:
-  - "result"
-  - "name"
-  - "tags"
-  include-tests: "MRR" # "PDR" | "NDR" | "MRR"
-  x-axis: "X = CNFs per Service Pipeline"
-  y-axis: "Y = Number of Service Pipelines"
-  z-axis: "IMIX Packet Throughput (mean MRR) [Mpps]"
-  layout:
-    title: "<b>Throughput:</b> eth-l2bd-{Y}pl-{2Y}mif-{XY}dcr-vppip4-mrr"
-    layout: "plot-service-density"
-
-# Plots - NF Density - CSP - NDR IMIX
-- type: "plot"
-  title: "Packet Throughput: eth-l2bd-{Y}pl-{2Y}mif-{XY}dcr-vppip4-ndr"
-  algorithm: "plot_nf_heatmap"
-  output-file-type: ".html"
-  output-file: "{DIR[STATIC,VPP]}/l2bd-2n-clx-xxv710-imix-2t1c-base-csp-ndr"
-  data: "plot-vpp-nfv-2n-clx-ndrpdr"
-  filter: "'NIC_Intel-XXV710' and
-           'NF_DENSITY' and
-           'DOCKER' and
-           'PIPELINE' and
-           'NF_VPPIP4' and
-           'IMIX' and
-           '2T1C' and
-           'NDRPDR'"
-  parameters:
-  - "throughput"
-  - "name"
-  - "tags"
-  include-tests: "NDR" # "PDR" | "NDR" | "MRR"
-  x-axis: "X = CNFs per Service Pipeline"
-  y-axis: "Y = Number of Service Pipelines"
-  z-axis: "IMIX Packet Throughput (mean NDR) [Mpps]"
-  layout:
-    title: "<b>Throughput:</b> eth-l2bd-{Y}pl-{2Y}mif-{XY}dcr-vppip4-ndr"
-    layout: "plot-service-density"
-
-- type: "plot"
-  title: "Packet Throughput: eth-l2bd-{Y}pl-{2Y}mif-{XY}dcr-vppip4-ndr"
-  algorithm: "plot_nf_heatmap"
-  output-file-type: ".html"
-  output-file: "{DIR[STATIC,VPP]}/l2bd-2n-clx-xxv710-imix-4t2c-base-csp-ndr"
-  data: "plot-vpp-nfv-2n-clx-ndrpdr"
-  filter: "'NIC_Intel-XXV710' and
-           'NF_DENSITY' and
-           'DOCKER' and
-           'PIPELINE' and
-           'NF_VPPIP4' and
-           'IMIX' and
-           '4T2C' and
-           'NDRPDR'"
-  parameters:
-  - "throughput"
-  - "name"
-  - "tags"
-  include-tests: "NDR" # "PDR" | "NDR" | "MRR"
-  x-axis: "X = CNFs per Service Pipeline"
-  y-axis: "Y = Number of Service Pipelines"
-  z-axis: "IMIX Packet Throughput (mean NDR) [Mpps]"
-  layout:
-    title: "<b>Throughput:</b> eth-l2bd-{Y}pl-{2Y}mif-{XY}dcr-vppip4-ndr"
-    layout: "plot-service-density"
-
-- type: "plot"
-  title: "Packet Throughput: eth-l2bd-{Y}pl-{2Y}mif-{XY}dcr-vppip4-ndr"
-  algorithm: "plot_nf_heatmap"
-  output-file-type: ".html"
-  output-file: "{DIR[STATIC,VPP]}/l2bd-2n-clx-xxv710-imix-8t4c-base-csp-ndr"
-  data: "plot-vpp-nfv-2n-clx-ndrpdr"
-  filter: "'NIC_Intel-XXV710' and
-           'NF_DENSITY' and
-           'DOCKER' and
-           'PIPELINE' and
-           'NF_VPPIP4' and
-           'IMIX' and
-           '8T4C' and
-           'NDRPDR'"
-  parameters:
-  - "throughput"
-  - "name"
-  - "tags"
-  include-tests: "NDR" # "PDR" | "NDR" | "MRR"
-  x-axis: "X = CNFs per Service Pipeline"
-  y-axis: "Y = Number of Service Pipelines"
-  z-axis: "IMIX Packet Throughput (mean NDR) [Mpps]"
-  layout:
-    title: "<b>Throughput:</b> eth-l2bd-{Y}pl-{2Y}mif-{XY}dcr-vppip4-ndr"
-    layout: "plot-service-density"
-
-# Plots - NF Density - CSP - PDR IMIX
-- type: "plot"
-  title: "Packet Throughput: eth-l2bd-{Y}pl-{2Y}mif-{XY}dcr-vppip4-pdr"
-  algorithm: "plot_nf_heatmap"
-  output-file-type: ".html"
-  output-file: "{DIR[STATIC,VPP]}/l2bd-2n-clx-xxv710-imix-2t1c-base-csp-pdr"
-  data: "plot-vpp-nfv-2n-clx-ndrpdr"
-  filter: "'NIC_Intel-XXV710' and
-           'NF_DENSITY' and
-           'DOCKER' and
-           'PIPELINE' and
-           'NF_VPPIP4' and
-           'IMIX' and
-           '2T1C' and
-           'NDRPDR'"
-  parameters:
-  - "throughput"
-  - "name"
-  - "tags"
-  include-tests: "PDR" # "PDR" | "NDR" | "MRR"
-  x-axis: "X = CNFs per Service Pipeline"
-  y-axis: "Y = Number of Service Pipelines"
-  z-axis: "IMIX Packet Throughput (mean PDR) [Mpps]"
-  layout:
-    title: "<b>Throughput:</b> eth-l2bd-{Y}pl-{2Y}mif-{XY}dcr-vppip4-pdr"
-    layout: "plot-service-density"
-
-- type: "plot"
-  title: "Packet Throughput: eth-l2bd-{Y}pl-{2Y}mif-{XY}dcr-vppip4-pdr"
-  algorithm: "plot_nf_heatmap"
-  output-file-type: ".html"
-  output-file: "{DIR[STATIC,VPP]}/l2bd-2n-clx-xxv710-imix-4t2c-base-csp-pdr"
-  data: "plot-vpp-nfv-2n-clx-ndrpdr"
-  filter: "'NIC_Intel-XXV710' and
-           'NF_DENSITY' and
-           'DOCKER' and
-           'PIPELINE' and
-           'NF_VPPIP4' and
-           'IMIX' and
-           '4T2C' and
-           'NDRPDR'"
-  parameters:
-  - "throughput"
-  - "name"
-  - "tags"
-  include-tests: "PDR" # "PDR" | "NDR" | "MRR"
-  x-axis: "X = CNFs per Service Pipeline"
-  y-axis: "Y = Number of Service Pipelines"
-  z-axis: "IMIX Packet Throughput (mean PDR) [Mpps]"
-  layout:
-    title: "<b>Throughput:</b> eth-l2bd-{Y}pl-{2Y}mif-{XY}dcr-vppip4-pdr"
-    layout: "plot-service-density"
-
-- type: "plot"
-  title: "Packet Throughput: eth-l2bd-{Y}pl-{2Y}mif-{XY}dcr-vppip4-pdr"
-  algorithm: "plot_nf_heatmap"
-  output-file-type: ".html"
-  output-file: "{DIR[STATIC,VPP]}/l2bd-2n-clx-xxv710-imix-8t4c-base-csp-pdr"
-  data: "plot-vpp-nfv-2n-clx-ndrpdr"
-  filter: "'NIC_Intel-XXV710' and
-           'NF_DENSITY' and
-           'DOCKER' and
-           'PIPELINE' and
-           'NF_VPPIP4' and
-           'IMIX' and
-           '8T4C' and
-           'NDRPDR'"
-  parameters:
-  - "throughput"
-  - "name"
-  - "tags"
-  include-tests: "PDR" # "PDR" | "NDR" | "MRR"
-  x-axis: "X = CNFs per Service Pipeline"
-  y-axis: "Y = Number of Service Pipelines"
-  z-axis: "IMIX Packet Throughput (mean PDR) [Mpps]"
-  layout:
-    title: "<b>Throughput:</b> eth-l2bd-{Y}pl-{2Y}mif-{XY}dcr-vppip4-pdr"
-    layout: "plot-service-density"
-
-################################################################################
-
-# Packet Throughput
-
-- type: "plot"
-  title: "Throughput: 2n-skx-xxv710-64b-2t1c-memif-base-avf-ndr"
-  algorithm: "plot_perf_box_name"
-  output-file: "{DIR[STATIC,VPP]}/2n-skx-xxv710-64b-2t1c-memif-base-avf-ndr"
-  data: "plot-vpp-throughput-lat-tsa-2n-skx"
-  include:
-    - "Tests.Vpp.Perf.Container Memif.2N1L-25Ge2P1Xxv710-Avf-Eth-L2Xcbase-Eth-2Memif-1Dcr-Ndrpdr.64B-2t1c-avf-eth-l2xcbase-eth-2memif-1dcr-ndrpdr"
-    - "Tests.Vpp.Perf.Container Memif.2N1L-25Ge2P1Xxv710-Avf-Dot1Q-L2Bdbasemaclrn-Eth-2Memif-1Dcr-Ndrpdr.64B-2t1c-avf-dot1q-l2bdbasemaclrn-eth-2memif-1dcr-ndrpdr"
-    - "Tests.Vpp.Perf.Container Memif.2N1L-25Ge2P1Xxv710-Avf-Eth-L2Bdbasemaclrn-Eth-2Memif-1Dcr-Ndrpdr.64B-2t1c-avf-eth-l2bdbasemaclrn-eth-2memif-1dcr-ndrpdr"
-    - "Tests.Vpp.Perf.Container Memif.2N1L-25Ge2P1Xxv710-Avf-Ethip4-Ip4Base-Eth-2Memif-1Dcr-Ndrpdr.64B-2t1c-avf-ethip4-ip4base-eth-2memif-1dcr-ndrpdr"
-  layout:
-    title: "2n-skx-xxv710-64b-2t1c-memif-base-avf-ndr"
-    layout: "plot-throughput"
-
-- type: "plot"
-  title: "Throughput: 2n-skx-xxv710-64b-2t1c-memif-base-avf-pdr"
-  algorithm: "plot_perf_box_name"
-  output-file: "{DIR[STATIC,VPP]}/2n-skx-xxv710-64b-2t1c-memif-base-avf-pdr"
-  data: "plot-vpp-throughput-lat-tsa-2n-skx"
-  include:
-    - "Tests.Vpp.Perf.Container Memif.2N1L-25Ge2P1Xxv710-Avf-Eth-L2Xcbase-Eth-2Memif-1Dcr-Ndrpdr.64B-2t1c-avf-eth-l2xcbase-eth-2memif-1dcr-ndrpdr"
-    - "Tests.Vpp.Perf.Container Memif.2N1L-25Ge2P1Xxv710-Avf-Dot1Q-L2Bdbasemaclrn-Eth-2Memif-1Dcr-Ndrpdr.64B-2t1c-avf-dot1q-l2bdbasemaclrn-eth-2memif-1dcr-ndrpdr"
-    - "Tests.Vpp.Perf.Container Memif.2N1L-25Ge2P1Xxv710-Avf-Eth-L2Bdbasemaclrn-Eth-2Memif-1Dcr-Ndrpdr.64B-2t1c-avf-eth-l2bdbasemaclrn-eth-2memif-1dcr-ndrpdr"
-    - "Tests.Vpp.Perf.Container Memif.2N1L-25Ge2P1Xxv710-Avf-Ethip4-Ip4Base-Eth-2Memif-1Dcr-Ndrpdr.64B-2t1c-avf-ethip4-ip4base-eth-2memif-1dcr-ndrpdr"
-  layout:
-    title: "2n-skx-xxv710-64b-2t1c-memif-base-avf-pdr"
-    layout: "plot-throughput"
-
-- type: "plot"
-  title: "Throughput: 2n-skx-xxv710-64b-2t1c-memif-base-dpdk-ndr"
-  algorithm: "plot_perf_box_name"
-  output-file: "{DIR[STATIC,VPP]}/2n-skx-xxv710-64b-2t1c-memif-base-dpdk-ndr"
-  data: "plot-vpp-throughput-lat-tsa-2n-skx"
-  include:
-    - "Tests.Vpp.Perf.Container Memif.2N1L-25Ge2P1Xxv710-Eth-L2Xcbase-Eth-2Memif-1Dcr-Ndrpdr.64B-2t1c-eth-l2xcbase-eth-2memif-1dcr-ndrpdr"
-    - "Tests.Vpp.Perf.Container Memif.2N1L-25Ge2P1Xxv710-Dot1Q-L2Bdbasemaclrn-Eth-2Memif-1Dcr-Ndrpdr.64B-2t1c-dot1q-l2bdbasemaclrn-eth-2memif-1dcr-ndrpdr"
-    - "Tests.Vpp.Perf.Container Memif.2N1L-25Ge2P1Xxv710-Eth-L2Bdbasemaclrn-Eth-2Memif-1Dcr-Ndrpdr.64B-2t1c-eth-l2bdbasemaclrn-eth-2memif-1dcr-ndrpdr"
-    - "Tests.Vpp.Perf.Container Memif.2N1L-25Ge2P1Xxv710-Ethip4-Ip4Base-Eth-2Memif-1Dcr-Ndrpdr.64B-2t1c-ethip4-ip4base-eth-2memif-1dcr-ndrpdr"
-  layout:
-    title: "2n-skx-xxv710-64b-2t1c-memif-base-dpdk-ndr"
-    layout: "plot-throughput"
-
-- type: "plot"
-  title: "Throughput: 2n-skx-xxv710-64b-2t1c-memif-base-dpdk-pdr"
-  algorithm: "plot_perf_box_name"
-  output-file: "{DIR[STATIC,VPP]}/2n-skx-xxv710-64b-2t1c-memif-base-dpdk-pdr"
-  data: "plot-vpp-throughput-lat-tsa-2n-skx"
-  include:
-    - "Tests.Vpp.Perf.Container Memif.2N1L-25Ge2P1Xxv710-Eth-L2Xcbase-Eth-2Memif-1Dcr-Ndrpdr.64B-2t1c-eth-l2xcbase-eth-2memif-1dcr-ndrpdr"
-    - "Tests.Vpp.Perf.Container Memif.2N1L-25Ge2P1Xxv710-Dot1Q-L2Bdbasemaclrn-Eth-2Memif-1Dcr-Ndrpdr.64B-2t1c-dot1q-l2bdbasemaclrn-eth-2memif-1dcr-ndrpdr"
-    - "Tests.Vpp.Perf.Container Memif.2N1L-25Ge2P1Xxv710-Eth-L2Bdbasemaclrn-Eth-2Memif-1Dcr-Ndrpdr.64B-2t1c-eth-l2bdbasemaclrn-eth-2memif-1dcr-ndrpdr"
-    - "Tests.Vpp.Perf.Container Memif.2N1L-25Ge2P1Xxv710-Ethip4-Ip4Base-Eth-2Memif-1Dcr-Ndrpdr.64B-2t1c-ethip4-ip4base-eth-2memif-1dcr-ndrpdr"
-  layout:
-    title: "2n-skx-xxv710-64b-2t1c-memif-base-dpdk-pdr"
-    layout: "plot-throughput"
-
-- type: "plot"
-  title: "Throughput: 3n-skx-xxv710-64b-2t1c-memif-base-avf-ndr"
-  algorithm: "plot_perf_box_name"
-  output-file: "{DIR[STATIC,VPP]}/3n-skx-xxv710-64b-2t1c-memif-base-avf-ndr"
-  data: "plot-vpp-throughput-lat-tsa-3n-skx"
-  include:
-    - "Tests.Vpp.Perf.Container Memif.25Ge2P1Xxv710-Avf-Eth-L2Xcbase-Eth-2Memif-1Dcr-Ndrpdr.64B-2t1c-avf-eth-l2xcbase-eth-2memif-1dcr-ndrpdr"
-    - "Tests.Vpp.Perf.Container Memif.25Ge2P1Xxv710-Avf-Eth-L2Xcbase-Eth-2Memif-1Lxc-Ndrpdr.64B-2t1c-avf-eth-l2xcbase-eth-2memif-1lxc-ndrpdr"
-    - "Tests.Vpp.Perf.Container Memif.25Ge2P1Xxv710-Avf-Dot1Q-L2Bdbasemaclrn-Eth-2Memif-1Dcr-Ndrpdr.64B-2t1c-avf-dot1q-l2bdbasemaclrn-eth-2memif-1dcr-ndrpdr"
-    - "Tests.Vpp.Perf.Container Memif.25Ge2P1Xxv710-Avf-Eth-L2Bdbasemaclrn-Eth-2Memif-1Lxc-Ndrpdr.64B-2t1c-avf-eth-l2bdbasemaclrn-eth-2memif-1lxc-ndrpdr"
-    - "Tests.Vpp.Perf.Container Memif.25Ge2P1Xxv710-Avf-Ethip4-Ip4Base-Eth-2Memif-1Dcr-Ndrpdr.64B-2t1c-avf-ethip4-ip4base-eth-2memif-1dcr-ndrpdr"
-  layout:
-    title: "3n-skx-xxv710-64b-2t1c-memif-base-avf-ndr"
-    layout: "plot-throughput"
-
-- type: "plot"
-  title: "Throughput: 3n-skx-xxv710-64b-2t1c-memif-base-avf-pdr"
-  algorithm: "plot_perf_box_name"
-  output-file: "{DIR[STATIC,VPP]}/3n-skx-xxv710-64b-2t1c-memif-base-avf-pdr"
-  data: "plot-vpp-throughput-lat-tsa-3n-skx"
-  include:
-    - "Tests.Vpp.Perf.Container Memif.25Ge2P1Xxv710-Avf-Eth-L2Xcbase-Eth-2Memif-1Dcr-Ndrpdr.64B-2t1c-avf-eth-l2xcbase-eth-2memif-1dcr-ndrpdr"
-    - "Tests.Vpp.Perf.Container Memif.25Ge2P1Xxv710-Avf-Eth-L2Xcbase-Eth-2Memif-1Lxc-Ndrpdr.64B-2t1c-avf-eth-l2xcbase-eth-2memif-1lxc-ndrpdr"
-    - "Tests.Vpp.Perf.Container Memif.25Ge2P1Xxv710-Avf-Dot1Q-L2Bdbasemaclrn-Eth-2Memif-1Dcr-Ndrpdr.64B-2t1c-avf-dot1q-l2bdbasemaclrn-eth-2memif-1dcr-ndrpdr"
-    - "Tests.Vpp.Perf.Container Memif.25Ge2P1Xxv710-Avf-Eth-L2Bdbasemaclrn-Eth-2Memif-1Lxc-Ndrpdr.64B-2t1c-avf-eth-l2bdbasemaclrn-eth-2memif-1lxc-ndrpdr"
-    - "Tests.Vpp.Perf.Container Memif.25Ge2P1Xxv710-Avf-Ethip4-Ip4Base-Eth-2Memif-1Dcr-Ndrpdr.64B-2t1c-avf-ethip4-ip4base-eth-2memif-1dcr-ndrpdr"
-  layout:
-    title: "3n-skx-xxv710-64b-2t1c-memif-base-avf-pdr"
-    layout: "plot-throughput"
-
-- type: "plot"
-  title: "Throughput: 3n-skx-xxv710-64b-2t1c-memif-base-dpdk-ndr"
-  algorithm: "plot_perf_box_name"
-  output-file: "{DIR[STATIC,VPP]}/3n-skx-xxv710-64b-2t1c-memif-base-dpdk-ndr"
-  data: "plot-vpp-throughput-lat-tsa-3n-skx"
-  include:
-    - "Tests.Vpp.Perf.Container Memif.25Ge2P1Xxv710-Eth-L2Xcbase-Eth-2Memif-1Dcr-Ndrpdr.64B-2t1c-eth-l2xcbase-eth-2memif-1dcr-ndrpdr"
-    - "Tests.Vpp.Perf.Container Memif.25Ge2P1Xxv710-Eth-L2Xcbase-Eth-2Memif-1Lxc-Ndrpdr.64B-2t1c-eth-l2xcbase-eth-2memif-1lxc-ndrpdr"
-    - "Tests.Vpp.Perf.Container Memif.25Ge2P1Xxv710-Dot1Q-L2Bdbasemaclrn-Eth-2Memif-1Dcr-Ndrpdr.64B-2t1c-dot1q-l2bdbasemaclrn-eth-2memif-1dcr-ndrpdr"
-    - "Tests.Vpp.Perf.Container Memif.25Ge2P1Xxv710-Eth-L2Bdbasemaclrn-Eth-2Memif-1Lxc-Ndrpdr.64B-2t1c-eth-l2bdbasemaclrn-eth-2memif-1lxc-ndrpdr"
-    - "Tests.Vpp.Perf.Container Memif.25Ge2P1Xxv710-Ethip4-Ip4Base-Eth-2Memif-1Dcr-Ndrpdr.64B-2t1c-ethip4-ip4base-eth-2memif-1dcr-ndrpdr"
-  layout:
-    title: "3n-skx-xxv710-64b-2t1c-memif-base-dpdk-ndr"
-    layout: "plot-throughput"
-
-- type: "plot"
-  title: "Throughput: 3n-skx-xxv710-64b-2t1c-memif-base-dpdk-pdr"
-  algorithm: "plot_perf_box_name"
-  output-file: "{DIR[STATIC,VPP]}/3n-skx-xxv710-64b-2t1c-memif-base-dpdk-pdr"
-  data: "plot-vpp-throughput-lat-tsa-3n-skx"
-  include:
-    - "Tests.Vpp.Perf.Container Memif.25Ge2P1Xxv710-Eth-L2Xcbase-Eth-2Memif-1Dcr-Ndrpdr.64B-2t1c-eth-l2xcbase-eth-2memif-1dcr-ndrpdr"
-    - "Tests.Vpp.Perf.Container Memif.25Ge2P1Xxv710-Eth-L2Xcbase-Eth-2Memif-1Lxc-Ndrpdr.64B-2t1c-eth-l2xcbase-eth-2memif-1lxc-ndrpdr"
-    - "Tests.Vpp.Perf.Container Memif.25Ge2P1Xxv710-Dot1Q-L2Bdbasemaclrn-Eth-2Memif-1Dcr-Ndrpdr.64B-2t1c-dot1q-l2bdbasemaclrn-eth-2memif-1dcr-ndrpdr"
-    - "Tests.Vpp.Perf.Container Memif.25Ge2P1Xxv710-Eth-L2Bdbasemaclrn-Eth-2Memif-1Lxc-Ndrpdr.64B-2t1c-eth-l2bdbasemaclrn-eth-2memif-1lxc-ndrpdr"
-    - "Tests.Vpp.Perf.Container Memif.25Ge2P1Xxv710-Ethip4-Ip4Base-Eth-2Memif-1Dcr-Ndrpdr.64B-2t1c-ethip4-ip4base-eth-2memif-1dcr-ndrpdr"
-  layout:
-    title: "3n-skx-xxv710-64b-2t1c-memif-base-dpdk-pdr"
-    layout: "plot-throughput"
-
-- type: "plot"
-  title: "Throughput: 3n-tsh-x520-64b-1t1c-memif-base-ixgbe-ndr"
-  algorithm: "plot_perf_box_name"
-  output-file: "{DIR[STATIC,VPP]}/3n-tsh-x520-64b-1t1c-memif-base-ixgbe-ndr"
-  data: "plot-vpp-throughput-lat-tsa-3n-tsh"
-  include:
-    - "Tests.Vpp.Perf.Container Memif.10Ge2P1X520-Eth-L2Xcbase-Eth-2Memif-1Lxc-Ndrpdr.64B-1t1c-eth-l2xcbase-eth-2memif-1lxc-ndrpdr"
-    - "Tests.Vpp.Perf.Container Memif.10Ge2P1X520-Eth-L2Xcbase-Eth-2Memif-1Dcr-Ndrpdr.64B-1t1c-eth-l2xcbase-eth-2memif-1dcr-ndrpdr"
-    - "Tests.Vpp.Perf.Container Memif.10Ge2P1X520-Dot1Q-L2Bdbasemaclrn-Eth-2Memif-1Dcr-Ndrpdr.64B-1t1c-dot1q-l2bdbasemaclrn-eth-2memif-1dcr-ndrpdr"
-    - "Tests.Vpp.Perf.Container Memif.10Ge2P1X520-Eth-L2Bdbasemaclrn-Eth-2Memif-1Lxc-Ndrpdr.64B-1t1c-eth-l2bdbasemaclrn-eth-2memif-1lxc-ndrpdr"
-    - "Tests.Vpp.Perf.Container Memif.10Ge2P1X520-Ethip4-Ip4Base-Eth-2Memif-1Dcr-Ndrpdr.64B-1t1c-ethip4-ip4base-eth-2memif-1dcr-ndrpdr"
-  layout:
-    title: "3n-tsh-x520-64b-1t1c-memif-base-ixgbe-ndr"
-    layout: "plot-throughput"
-
-- type: "plot"
-  title: "Throughput: 3n-tsh-x520-64b-1t1c-memif-base-ixgbe-pdr"
-  algorithm: "plot_perf_box_name"
-  output-file: "{DIR[STATIC,VPP]}/3n-tsh-x520-64b-1t1c-memif-base-ixgbe-pdr"
-  data: "plot-vpp-throughput-lat-tsa-3n-tsh"
-  include:
-    - "Tests.Vpp.Perf.Container Memif.10Ge2P1X520-Eth-L2Xcbase-Eth-2Memif-1Lxc-Ndrpdr.64B-1t1c-eth-l2xcbase-eth-2memif-1lxc-ndrpdr"
-    - "Tests.Vpp.Perf.Container Memif.10Ge2P1X520-Eth-L2Xcbase-Eth-2Memif-1Dcr-Ndrpdr.64B-1t1c-eth-l2xcbase-eth-2memif-1dcr-ndrpdr"
-    - "Tests.Vpp.Perf.Container Memif.10Ge2P1X520-Dot1Q-L2Bdbasemaclrn-Eth-2Memif-1Dcr-Ndrpdr.64B-1t1c-dot1q-l2bdbasemaclrn-eth-2memif-1dcr-ndrpdr"
-    - "Tests.Vpp.Perf.Container Memif.10Ge2P1X520-Eth-L2Bdbasemaclrn-Eth-2Memif-1Lxc-Ndrpdr.64B-1t1c-eth-l2bdbasemaclrn-eth-2memif-1lxc-ndrpdr"
-    - "Tests.Vpp.Perf.Container Memif.10Ge2P1X520-Ethip4-Ip4Base-Eth-2Memif-1Dcr-Ndrpdr.64B-1t1c-ethip4-ip4base-eth-2memif-1dcr-ndrpdr"
-  layout:
-    title: "3n-tsh-x520-64b-1t1c-memif-base-ixgbe-pdr"
-    layout: "plot-throughput"
-
-- type: "plot"
-  title: "Throughput: 2n-skx-x710-64b-2t1c-ip4routing-base-scale-[avf,dpdk]-ndr"
-  algorithm: "plot_perf_box_name"
-  output-file: "{DIR[STATIC,VPP]}/2n-skx-x710-64b-2t1c-ip4routing-base-scale-[avf,dpdk]-ndr"
-  data: "plot-vpp-throughput-lat-tsa-2n-skx"
-  include:
-    - "Tests.Vpp.Perf.Ip4.2N1L-10Ge2P1X710-Avf-Dot1Q-Ip4Base-Ndrpdr.64B-2t1c-avf-dot1q-ip4base-ndrpdr"
-    - "Tests.Vpp.Perf.Ip4.2N1L-10Ge2P1X710-Avf-Ethip4-Ip4Base-Ndrpdr.64B-2t1c-avf-ethip4-ip4base-ndrpdr"
-    - "Tests.Vpp.Perf.Ip4.2N1L-10Ge2P1X710-Avf-Ethip4-Ip4Scale2M-Ndrpdr.64B-2t1c-avf-ethip4-ip4scale2m-ndrpdr"
-    - "Tests.Vpp.Perf.Ip4.2N1L-10Ge2P1X710-Avf-Ethip4-Ip4Scale2M-Rnd-Ndrpdr.64B-2t1c-avf-ethip4-ip4scale2m-rnd-ndrpdr"
-    - "Tests.Vpp.Perf.Ip4.2N1L-10Ge2P1X710-Dot1Q-Ip4Base-Ndrpdr.64B-2t1c-dot1q-ip4base-ndrpdr"
-    - "Tests.Vpp.Perf.Ip4.2N1L-10Ge2P1X710-Ethip4-Ip4Base-Ndrpdr.64B-2t1c-ethip4-ip4base-ndrpdr"
-  layout:
-    title: "2n-skx-x710-64b-2t1c-ip4routing-base-scale-[avf,dpdk]-ndr"
-    layout: "plot-throughput"
-
-- type: "plot"
-  title: "Throughput: 2n-skx-x710-64b-2t1c-ip4routing-base-scale-[avf,dpdk]-pdr"
-  algorithm: "plot_perf_box_name"
-  output-file: "{DIR[STATIC,VPP]}/2n-skx-x710-64b-2t1c-ip4routing-base-scale-[avf,dpdk]-pdr"
-  data: "plot-vpp-throughput-lat-tsa-2n-skx"
-  include:
-    - "Tests.Vpp.Perf.Ip4.2N1L-10Ge2P1X710-Avf-Dot1Q-Ip4Base-Ndrpdr.64B-2t1c-avf-dot1q-ip4base-ndrpdr"
-    - "Tests.Vpp.Perf.Ip4.2N1L-10Ge2P1X710-Avf-Ethip4-Ip4Base-Ndrpdr.64B-2t1c-avf-ethip4-ip4base-ndrpdr"
-    - "Tests.Vpp.Perf.Ip4.2N1L-10Ge2P1X710-Avf-Ethip4-Ip4Scale2M-Ndrpdr.64B-2t1c-avf-ethip4-ip4scale2m-ndrpdr"
-    - "Tests.Vpp.Perf.Ip4.2N1L-10Ge2P1X710-Avf-Ethip4-Ip4Scale2M-Rnd-Ndrpdr.64B-2t1c-avf-ethip4-ip4scale2m-rnd-ndrpdr"
-    - "Tests.Vpp.Perf.Ip4.2N1L-10Ge2P1X710-Dot1Q-Ip4Base-Ndrpdr.64B-2t1c-dot1q-ip4base-ndrpdr"
-    - "Tests.Vpp.Perf.Ip4.2N1L-10Ge2P1X710-Ethip4-Ip4Base-Ndrpdr.64B-2t1c-ethip4-ip4base-ndrpdr"
-  layout:
-    title: "2n-skx-x710-64b-2t1c-ip4routing-base-scale-[avf,dpdk]-pdr"
-    layout: "plot-throughput"
-
-- type: "plot"
-  title: "Throughput: 2n-skx-xxv710-64b-2t1c-ip4routing-base-scale-avf-ndr"
-  algorithm: "plot_perf_box_name"
-  output-file: "{DIR[STATIC,VPP]}/2n-skx-xxv710-64b-2t1c-ip4routing-base-scale-avf-ndr"
-  data: "plot-vpp-throughput-lat-tsa-2n-skx"
-  include:
-    - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Avf-Dot1Q-Ip4Base-Ndrpdr.64B-2t1c-avf-dot1q-ip4base-ndrpdr"
-    - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Avf-Ethip4-Ip4Base-Ndrpdr.64B-2t1c-avf-ethip4-ip4base-ndrpdr"
-    - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Avf-Ethip4-Ip4Scale20K-Ndrpdr.64B-2t1c-avf-ethip4-ip4scale20k-ndrpdr"
-    - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Avf-Ethip4-Ip4Scale20K-Rnd-Ndrpdr.64B-2t1c-avf-ethip4-ip4scale20k-rnd-ndrpdr"
-    - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Avf-Ethip4-Ip4Scale200K-Ndrpdr.64B-2t1c-avf-ethip4-ip4scale200k-ndrpdr"
-    - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Avf-Ethip4-Ip4Scale200K-Rnd-Ndrpdr.64B-2t1c-avf-ethip4-ip4scale200k-rnd-ndrpdr"
-    - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Avf-Ethip4-Ip4Scale2M-Ndrpdr.64B-2t1c-avf-ethip4-ip4scale2m-ndrpdr"
-    - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Avf-Ethip4-Ip4Scale2M-Rnd-Ndrpdr.64B-2t1c-avf-ethip4-ip4scale2m-rnd-ndrpdr"
-  layout:
-    title: "2n-skx-xxv710-64b-2t1c-ip4routing-base-scale-avf-ndr"
-    layout: "plot-throughput"
-
-- type: "plot"
-  title: "Throughput: 2n-skx-xxv710-64b-2t1c-ip4routing-base-scale-avf-pdr"
-  algorithm: "plot_perf_box_name"
-  output-file: "{DIR[STATIC,VPP]}/2n-skx-xxv710-64b-2t1c-ip4routing-base-scale-avf-pdr"
-  data: "plot-vpp-throughput-lat-tsa-2n-skx"
-  include:
-    - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Avf-Dot1Q-Ip4Base-Ndrpdr.64B-2t1c-avf-dot1q-ip4base-ndrpdr"
-    - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Avf-Ethip4-Ip4Base-Ndrpdr.64B-2t1c-avf-ethip4-ip4base-ndrpdr"
-    - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Avf-Ethip4-Ip4Scale20K-Ndrpdr.64B-2t1c-avf-ethip4-ip4scale20k-ndrpdr"
-    - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Avf-Ethip4-Ip4Scale20K-Rnd-Ndrpdr.64B-2t1c-avf-ethip4-ip4scale20k-rnd-ndrpdr"
-    - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Avf-Ethip4-Ip4Scale200K-Ndrpdr.64B-2t1c-avf-ethip4-ip4scale200k-ndrpdr"
-    - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Avf-Ethip4-Ip4Scale200K-Rnd-Ndrpdr.64B-2t1c-avf-ethip4-ip4scale200k-rnd-ndrpdr"
-    - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Avf-Ethip4-Ip4Scale2M-Ndrpdr.64B-2t1c-avf-ethip4-ip4scale2m-ndrpdr"
-    - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Avf-Ethip4-Ip4Scale2M-Rnd-Ndrpdr.64B-2t1c-avf-ethip4-ip4scale2m-rnd-ndrpdr"
-  layout:
-    title: "2n-skx-xxv710-64b-2t1c-ip4routing-base-scale-avf-pdr"
-    layout: "plot-throughput"
-
-- type: "plot"
-  title: "Throughput: 2n-skx-xxv710-64b-2t1c-ip4routing-base-scale-dpdk-ndr"
-  algorithm: "plot_perf_box_name"
-  output-file: "{DIR[STATIC,VPP]}/2n-skx-xxv710-64b-2t1c-ip4routing-base-scale-dpdk-ndr"
-  data: "plot-vpp-throughput-lat-tsa-2n-skx"
-  include:
-    - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Dot1Q-Ip4Base-Ndrpdr.64B-2t1c-dot1q-ip4base-ndrpdr"
-    - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Ethip4-Ip4Base-Ndrpdr.64B-2t1c-ethip4-ip4base-ndrpdr"
-    - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Ethip4-Ip4Scale20K-Ndrpdr.64B-2t1c-ethip4-ip4scale20k-ndrpdr"
-    - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Ethip4-Ip4Scale20K-Rnd-Ndrpdr.64B-2t1c-ethip4-ip4scale20k-rnd-ndrpdr"
-    - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Ethip4-Ip4Scale200K-Ndrpdr.64B-2t1c-ethip4-ip4scale200k-ndrpdr"
-    - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Ethip4-Ip4Scale200K-Rnd-Ndrpdr.64B-2t1c-ethip4-ip4scale200k-rnd-ndrpdr"
-    - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Ethip4-Ip4Scale2M-Ndrpdr.64B-2t1c-ethip4-ip4scale2m-ndrpdr"
-    - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Ethip4-Ip4Scale2M-Rnd-Ndrpdr.64B-2t1c-ethip4-ip4scale2m-rnd-ndrpdr"
-  layout:
-    title: "2n-skx-xxv710-64b-2t1c-ip4routing-base-scale-dpdk-ndr"
-    layout: "plot-throughput"
-
-- type: "plot"
-  title: "Throughput: 2n-skx-xxv710-64b-2t1c-ip4routing-base-scale-dpdk-pdr"
-  algorithm: "plot_perf_box_name"
-  output-file: "{DIR[STATIC,VPP]}/2n-skx-xxv710-64b-2t1c-ip4routing-base-scale-dpdk-pdr"
-  data: "plot-vpp-throughput-lat-tsa-2n-skx"
-  include:
-    - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Dot1Q-Ip4Base-Ndrpdr.64B-2t1c-dot1q-ip4base-ndrpdr"
-    - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Ethip4-Ip4Base-Ndrpdr.64B-2t1c-ethip4-ip4base-ndrpdr"
-    - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Ethip4-Ip4Scale20K-Ndrpdr.64B-2t1c-ethip4-ip4scale20k-ndrpdr"
-    - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Ethip4-Ip4Scale20K-Rnd-Ndrpdr.64B-2t1c-ethip4-ip4scale20k-rnd-ndrpdr"
-    - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Ethip4-Ip4Scale200K-Ndrpdr.64B-2t1c-ethip4-ip4scale200k-ndrpdr"
-    - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Ethip4-Ip4Scale200K-Rnd-Ndrpdr.64B-2t1c-ethip4-ip4scale200k-rnd-ndrpdr"
-    - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Ethip4-Ip4Scale2M-Ndrpdr.64B-2t1c-ethip4-ip4scale2m-ndrpdr"
-    - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Ethip4-Ip4Scale2M-Rnd-Ndrpdr.64B-2t1c-ethip4-ip4scale2m-rnd-ndrpdr"
-  layout:
-    title: "2n-skx-xxv710-64b-2t1c-ip4routing-base-scale-dpdk-pdr"
-    layout: "plot-throughput"
-
-- type: "plot"
-  title: "Throughput: 2n-skx-xxv710-64b-2t1c-features-ip4routing-base-avf-ndr"
-  algorithm: "plot_perf_box_name"
-  output-file: "{DIR[STATIC,VPP]}/2n-skx-xxv710-64b-2t1c-features-ip4routing-base-avf-ndr"
-  data: "plot-vpp-throughput-lat-tsa-2n-skx"
-  include:
-    - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Avf-Ethip4Udp-Ip4Base-Iacl50Sf-10Kflows-Ndrpdr.64B-2t1c-avf-ethip4udp-ip4base-iacl50sf-10kflows-ndrpdr"
-    - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Avf-Ethip4Udp-Ip4Base-Iacl50Sl-10Kflows-Ndrpdr.64B-2t1c-avf-ethip4udp-ip4base-iacl50sl-10kflows-ndrpdr"
-    - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Avf-Ethip4Udp-Ip4Base-Oacl50Sf-10Kflows-Ndrpdr.64B-2t1c-avf-ethip4udp-ip4base-oacl50sf-10kflows-ndrpdr"
-    - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Avf-Ethip4Udp-Ip4Base-Oacl50Sl-10Kflows-Ndrpdr.64B-2t1c-avf-ethip4udp-ip4base-oacl50sl-10kflows-ndrpdr"
-    - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Avf-ethip4udp-nat44det-h1-p1-s1-Ndrpdr.64B-2t1c-avf-ethip4udp-nat44det-h1-p1-s1-ndrpdr"
-    - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Avf-ethip4udp-nat44det-h1024-p63-s64512-Ndrpdr.64B-2t1c-avf-ethip4udp-nat44det-h1024-p63-s64512-ndrpdr"
-  layout:
-    title: "2n-skx-xxv710-64b-2t1c-features-ip4routing-base-avf-ndr"
-    layout: "plot-throughput"
-
-- type: "plot"
-  title: "Throughput: 2n-skx-xxv710-64b-2t1c-features-ip4routing-base-avf-pdr"
-  algorithm: "plot_perf_box_name"
-  output-file: "{DIR[STATIC,VPP]}/2n-skx-xxv710-64b-2t1c-features-ip4routing-base-avf-pdr"
-  data: "plot-vpp-throughput-lat-tsa-2n-skx"
-  include:
-    - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Avf-Ethip4Udp-Ip4Base-Iacl50Sf-10Kflows-Ndrpdr.64B-2t1c-avf-ethip4udp-ip4base-iacl50sf-10kflows-ndrpdr"
-    - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Avf-Ethip4Udp-Ip4Base-Iacl50Sl-10Kflows-Ndrpdr.64B-2t1c-avf-ethip4udp-ip4base-iacl50sl-10kflows-ndrpdr"
-    - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Avf-Ethip4Udp-Ip4Base-Oacl50Sf-10Kflows-Ndrpdr.64B-2t1c-avf-ethip4udp-ip4base-oacl50sf-10kflows-ndrpdr"
-    - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Avf-Ethip4Udp-Ip4Base-Oacl50Sl-10Kflows-Ndrpdr.64B-2t1c-avf-ethip4udp-ip4base-oacl50sl-10kflows-ndrpdr"
-    - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Avf-ethip4udp-nat44det-h1-p1-s1-Ndrpdr.64B-2t1c-avf-ethip4udp-nat44det-h1-p1-s1-ndrpdr"
-    - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Avf-ethip4udp-nat44det-h1024-p63-s64512-Ndrpdr.64B-2t1c-avf-ethip4udp-nat44det-h1024-p63-s64512-ndrpdr"
-  layout:
-    title: "2n-skx-xxv710-64b-2t1c-features-ip4routing-base-avf-pdr"
-    layout: "plot-throughput"
-
-- type: "plot"
-  title: "Throughput: 2n-skx-xxv710-64b-2t1c-nat44det-ip4routing-stl-bidir-avf-ndr"
-  algorithm: "plot_perf_box_name"
-  output-file: "{DIR[STATIC,VPP]}/2n-skx-xxv710-64b-2t1c-nat44det-ip4routing-stl-bidir-avf-ndr"
-  data: "plot-vpp-throughput-lat-tsa-2n-skx"
-  include:
-    - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-nat44det-h1024-p63-s64512-ndrpdr.64b-2t1c-avf-ethip4udp-nat44det-h1024-p63-s64512-ndrpdr"
-    - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-nat44det-h4096-p63-s258048-ndrpdr.64b-2t1c-avf-ethip4udp-nat44det-h4096-p63-s258048-ndrpdr"
-    - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-nat44det-h16384-p63-s1032192-ndrpdr.64b-2t1c-avf-ethip4udp-nat44det-h16384-p63-s1032192-ndrpdr"
-    - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-nat44det-h65536-p63-s4128758-ndrpdr.64b-2t1c-avf-ethip4udp-nat44det-h65536-p63-s4128758-ndrpdr"
-    - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-nat44det-h262144-p63-s16515072-ndrpdr.64b-2t1c-avf-ethip4udp-nat44det-h262144-p63-s16515072-ndrpdr"
-  layout:
-    title: "2n-skx-xxv710-64b-2t1c-nat44det-ip4routing-stl-bidir-avf-ndr"
-    layout: "plot-throughput"
-
-- type: "plot"
-  title: "Throughput: 2n-skx-xxv710-64b-2t1c-nat44ed-ip4routing-stl-unidir-avf-ndr"
-  algorithm: "plot_perf_box_name"
-  output-file: "{DIR[STATIC,VPP]}/2n-skx-xxv710-64b-2t1c-nat44ed-ip4routing-stl-unidir-avf-ndr"
-  data: "plot-vpp-throughput-lat-tsa-2n-skx"
-  include:
-    - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-nat44ed-h1024-p63-s64512-udir-ndrpdr.64b-2t1c-avf-ethip4udp-nat44ed-h1024-p63-s64512-udir-ndrpdr"
-    - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-nat44ed-h4096-p63-s258048-udir-ndrpdr.64b-2t1c-avf-ethip4udp-nat44ed-h4096-p63-s258048-udir-ndrpdr"
-    - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-nat44ed-h16384-p63-s1032192-udir-ndrpdr.64b-2t1c-avf-ethip4udp-nat44ed-h16384-p63-s1032192-udir-ndrpdr"
-    - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-nat44ed-h65536-p63-s4128768-udir-ndrpdr.64b-2t1c-avf-ethip4udp-nat44ed-h65536-p63-s4128768-udir-ndrpdr"
-    - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-nat44ed-h262144-p63-s16515072-udir-ndrpdr.64b-2t1c-avf-ethip4udp-nat44ed-h262144-p63-s16515072-udir-ndrpdr"
-  layout:
-    title: "2n-skx-xxv710-64b-2t1c-nat44ed-ip4routing-stl-unidir-avf-ndr"
-    layout: "plot-throughput"
-
-- type: "plot"
-  title: "Throughput: 2n-skx-xxv710-64b-2t1c-nat44ed-ip4routing-udp-stf-cps-avf-ndr"
-  algorithm: "plot_perf_box_name"
-  output-file: "{DIR[STATIC,VPP]}/2n-skx-xxv710-64b-2t1c-nat44ed-ip4routing-udp-stf-cps-avf-ndr"
-  data: "plot-vpp-throughput-lat-tsa-2n-skx"
-  include:
-    - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-nat44ed-h1024-p63-s64512-cps-ndrpdr.64b-2t1c-avf-ethip4udp-nat44ed-h1024-p63-s64512-cps-ndrpdr"
-    - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-ip4base-h1024-p63-s64512-cps-ndrpdr.64b-2t1c-avf-ethip4udp-ip4base-h1024-p63-s64512-cps-ndrpdr"
-    - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-nat44ed-h4096-p63-s258048-cps-ndrpdr.64b-2t1c-avf-ethip4udp-nat44ed-h4096-p63-s258048-cps-ndrpdr"
-    - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-ip4base-h4096-p63-s258048-cps-ndrpdr.64b-2t1c-avf-ethip4udp-ip4base-h4096-p63-s258048-cps-ndrpdr"
-    - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-nat44ed-h16384-p63-s1032192-cps-ndrpdr.64b-2t1c-avf-ethip4udp-nat44ed-h16384-p63-s1032192-cps-ndrpdr"
-    - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-ip4base-h16384-p63-s1032192-cps-ndrpdr.64b-2t1c-avf-ethip4udp-ip4base-h16384-p63-s1032192-cps-ndrpdr"
-    - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-nat44ed-h65536-p63-s4128768-cps-ndrpdr.64b-2t1c-avf-ethip4udp-nat44ed-h65536-p63-s4128768-cps-ndrpdr"
-    - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-ip4base-h65536-p63-s4128768-cps-ndrpdr.64b-2t1c-avf-ethip4udp-ip4base-h65536-p63-s4128768-cps-ndrpdr"
-    - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-nat44ed-h262144-p63-s16515072-cps-ndrpdr.64b-2t1c-avf-ethip4udp-nat44ed-h262144-p63-s16515072-cps-ndrpdr"
-    - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-ip4base-h262144-p63-s16515072-cps-ndrpdr.64b-2t1c-avf-ethip4udp-ip4base-h262144-p63-s16515072-cps-ndrpdr"
-  layout:
-    title: "2n-skx-xxv710-64b-2t1c-nat44ed-ip4routing-udp-stf-cps-avf-ndr"
-    layout: "plot-cps"
-
-- type: "plot"
-  title: "Throughput: 2n-skx-xxv710-64b-2t1c-nat44ed-ip4routing-udp-stf-pps-avf-ndr"
-  algorithm: "plot_perf_box_name"
-  output-file: "{DIR[STATIC,VPP]}/2n-skx-xxv710-64b-2t1c-nat44ed-ip4routing-udp-stf-pps-avf-ndr"
-  data: "plot-vpp-throughput-lat-tsa-2n-skx"
-  include:
-    - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-nat44ed-h1024-p63-s64512-pps-ndrpdr.64b-2t1c-avf-ethip4udp-nat44ed-h1024-p63-s64512-pps-ndrpdr"
-    - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-ip4base-h1024-p63-s64512-pps-ndrpdr.64b-2t1c-avf-ethip4udp-ip4base-h1024-p63-s64512-pps-ndrpdr"
-    - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-nat44ed-h4096-p63-s258048-pps-ndrpdr.64b-2t1c-avf-ethip4udp-nat44ed-h4096-p63-s258048-pps-ndrpdr"
-    - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-ip4base-h4096-p63-s258048-pps-ndrpdr.64b-2t1c-avf-ethip4udp-ip4base-h4096-p63-s258048-pps-ndrpdr"
-    - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-nat44ed-h16384-p63-s1032192-pps-ndrpdr.64b-2t1c-avf-ethip4udp-nat44ed-h16384-p63-s1032192-pps-ndrpdr"
-    - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-ip4base-h16384-p63-s1032192-pps-ndrpdr.64b-2t1c-avf-ethip4udp-ip4base-h16384-p63-s1032192-pps-ndrpdr"
-    - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-nat44ed-h65536-p63-s4128768-pps-ndrpdr.64b-2t1c-avf-ethip4udp-nat44ed-h65536-p63-s4128768-pps-ndrpdr"
-    - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-ip4base-h65536-p63-s4128768-pps-ndrpdr.64b-2t1c-avf-ethip4udp-ip4base-h65536-p63-s4128768-pps-ndrpdr"
-    - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-nat44ed-h262144-p63-s16515072-pps-ndrpdr.64b-2t1c-avf-ethip4udp-nat44ed-h262144-p63-s16515072-pps-ndrpdr"
-    - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-ip4base-h262144-p63-s16515072-pps-ndrpdr.64b-2t1c-avf-ethip4udp-ip4base-h262144-p63-s16515072-pps-ndrpdr"
-  layout:
-    title: "2n-skx-xxv710-64b-2t1c-nat44ed-ip4routing-udp-stf-pps-avf-ndr"
-    layout: "plot-throughput"
-
-- type: "plot"
-  title: "Throughput: 2n-skx-xxv710-64b-2t1c-nat44ed-ip4routing-tcp-stf-cps-avf-ndr"
-  algorithm: "plot_perf_box_name"
-  output-file: "{DIR[STATIC,VPP]}/2n-skx-xxv710-64b-2t1c-nat44ed-ip4routing-tcp-stf-cps-avf-ndr"
-  data: "plot-vpp-throughput-lat-tsa-2n-skx"
-  include:
-    - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4tcp-nat44ed-h1024-p63-s64512-cps-ndrpdr.64b-2t1c-avf-ethip4tcp-nat44ed-h1024-p63-s64512-cps-ndrpdr"
-    - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4tcp-ip4base-h1024-p63-s64512-cps-ndrpdr.64b-2t1c-avf-ethip4tcp-ip4base-h1024-p63-s64512-cps-ndrpdr"
-    - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4tcp-nat44ed-h4096-p63-s258048-cps-ndrpdr.64b-2t1c-avf-ethip4tcp-nat44ed-h4096-p63-s258048-cps-ndrpdr"
-    - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4tcp-ip4base-h4096-p63-s258048-cps-ndrpdr.64b-2t1c-avf-ethip4tcp-ip4base-h4096-p63-s258048-cps-ndrpdr"
-    - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4tcp-nat44ed-h16384-p63-s1032192-cps-ndrpdr.64b-2t1c-avf-ethip4tcp-nat44ed-h16384-p63-s1032192-cps-ndrpdr"
-    - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4tcp-ip4base-h16384-p63-s1032192-cps-ndrpdr.64b-2t1c-avf-ethip4tcp-ip4base-h16384-p63-s1032192-cps-ndrpdr"
-    - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4tcp-nat44ed-h65536-p63-s4128768-cps-ndrpdr.64b-2t1c-avf-ethip4tcp-nat44ed-h65536-p63-s4128768-cps-ndrpdr"
-    - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4tcp-ip4base-h65536-p63-s4128768-cps-ndrpdr.64b-2t1c-avf-ethip4tcp-ip4base-h65536-p63-s4128768-cps-ndrpdr"
-    - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4tcp-nat44ed-h262144-p63-s16515072-cps-ndrpdr.64b-2t1c-avf-ethip4tcp-nat44ed-h262144-p63-s16515072-cps-ndrpdr"
-    - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4tcp-ip4base-h262144-p63-s16515072-cps-ndrpdr.64b-2t1c-avf-ethip4tcp-ip4base-h262144-p63-s16515072-cps-ndrpdr"
-  layout:
-    title: "2n-skx-xxv710-64b-2t1c-nat44ed-ip4routing-tcp-stf-cps-avf-ndr"
-    layout: "plot-cps"
-
-- type: "plot"
-  title: "Throughput: 2n-skx-xxv710-64b-2t1c-nat44ed-ip4routing-tcp-stf-pps-avf-ndr"
-  algorithm: "plot_perf_box_name"
-  output-file: "{DIR[STATIC,VPP]}/2n-skx-xxv710-64b-2t1c-nat44ed-ip4routing-tcp-stf-pps-avf-ndr"
-  data: "plot-vpp-throughput-lat-tsa-2n-skx"
-  include:
-    - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4tcp-nat44ed-h1024-p63-s64512-pps-ndrpdr.64b-2t1c-avf-ethip4tcp-nat44ed-h1024-p63-s64512-pps-ndrpdr"
-    - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4tcp-ip4base-h1024-p63-s64512-pps-ndrpdr.64b-2t1c-avf-ethip4tcp-ip4base-h1024-p63-s64512-pps-ndrpdr"
-    - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4tcp-nat44ed-h4096-p63-s258048-pps-ndrpdr.64b-2t1c-avf-ethip4tcp-nat44ed-h4096-p63-s258048-pps-ndrpdr"
-    - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4tcp-ip4base-h4096-p63-s258048-pps-ndrpdr.64b-2t1c-avf-ethip4tcp-ip4base-h4096-p63-s258048-pps-ndrpdr"
-    - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4tcp-nat44ed-h16384-p63-s1032192-pps-ndrpdr.64b-2t1c-avf-ethip4tcp-nat44ed-h16384-p63-s1032192-pps-ndrpdr"
-    - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4tcp-ip4base-h16384-p63-s1032192-pps-ndrpdr.64b-2t1c-avf-ethip4tcp-ip4base-h16384-p63-s1032192-pps-ndrpdr"
-    - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4tcp-nat44ed-h65536-p63-s4128768-pps-ndrpdr.64b-2t1c-avf-ethip4tcp-nat44ed-h65536-p63-s4128768-pps-ndrpdr"
-    - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4tcp-ip4base-h65536-p63-s4128768-pps-ndrpdr.64b-2t1c-avf-ethip4tcp-ip4base-h65536-p63-s4128768-pps-ndrpdr"
-    - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4tcp-nat44ed-h262144-p63-s16515072-pps-ndrpdr.64b-2t1c-avf-ethip4tcp-nat44ed-h262144-p63-s16515072-pps-ndrpdr"
-    - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4tcp-ip4base-h262144-p63-s16515072-pps-ndrpdr.64b-2t1c-avf-ethip4tcp-ip4base-h262144-p63-s16515072-pps-ndrpdr"
-  layout:
-    title: "2n-skx-xxv710-64b-2t1c-nat44ed-ip4routing-tcp-stf-pps-avf-ndr"
-    layout: "plot-throughput"
-
-- type: "plot"
-  title: "Throughput: 2n-skx-xxv710-64b-2t1c-nat44det-ip4routing-stl-bidir-avf-pdr"
-  algorithm: "plot_perf_box_name"
-  output-file: "{DIR[STATIC,VPP]}/2n-skx-xxv710-64b-2t1c-nat44det-ip4routing-stl-bidir-avf-pdr"
-  data: "plot-vpp-throughput-lat-tsa-2n-skx"
-  include:
-    - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-nat44det-h1024-p63-s64512-ndrpdr.64b-2t1c-avf-ethip4udp-nat44det-h1024-p63-s64512-ndrpdr"
-    - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-nat44det-h4096-p63-s258048-ndrpdr.64b-2t1c-avf-ethip4udp-nat44det-h4096-p63-s258048-ndrpdr"
-    - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-nat44det-h16384-p63-s1032192-ndrpdr.64b-2t1c-avf-ethip4udp-nat44det-h16384-p63-s1032192-ndrpdr"
-    - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-nat44det-h65536-p63-s4128758-ndrpdr.64b-2t1c-avf-ethip4udp-nat44det-h65536-p63-s4128758-ndrpdr"
-    - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-nat44det-h262144-p63-s16515072-ndrpdr.64b-2t1c-avf-ethip4udp-nat44det-h262144-p63-s16515072-ndrpdr"
-  layout:
-    title: "2n-skx-xxv710-64b-2t1c-nat44det-ip4routing-stl-bidir-avf-pdr"
-    layout: "plot-throughput"
-
-- type: "plot"
-  title: "Throughput: 2n-skx-xxv710-64b-2t1c-nat44ed-ip4routing-stl-unidir-avf-pdr"
-  algorithm: "plot_perf_box_name"
-  output-file: "{DIR[STATIC,VPP]}/2n-skx-xxv710-64b-2t1c-nat44ed-ip4routing-stl-unidir-avf-pdr"
-  data: "plot-vpp-throughput-lat-tsa-2n-skx"
-  include:
-    - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-nat44ed-h1024-p63-s64512-udir-ndrpdr.64b-2t1c-avf-ethip4udp-nat44ed-h1024-p63-s64512-udir-ndrpdr"
-    - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-nat44ed-h4096-p63-s258048-udir-ndrpdr.64b-2t1c-avf-ethip4udp-nat44ed-h4096-p63-s258048-udir-ndrpdr"
-    - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-nat44ed-h16384-p63-s1032192-udir-ndrpdr.64b-2t1c-avf-ethip4udp-nat44ed-h16384-p63-s1032192-udir-ndrpdr"
-    - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-nat44ed-h65536-p63-s4128768-udir-ndrpdr.64b-2t1c-avf-ethip4udp-nat44ed-h65536-p63-s4128768-udir-ndrpdr"
-    - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-nat44ed-h262144-p63-s16515072-udir-ndrpdr.64b-2t1c-avf-ethip4udp-nat44ed-h262144-p63-s16515072-udir-ndrpdr"
-  layout:
-    title: "2n-skx-xxv710-64b-2t1c-nat44ed-ip4routing-stl-unidir-avf-pdr"
-    layout: "plot-throughput"
-
-- type: "plot"
-  title: "Throughput: 2n-skx-xxv710-64b-2t1c-nat44ed-ip4routing-udp-stf-cps-avf-pdr"
-  algorithm: "plot_perf_box_name"
-  output-file: "{DIR[STATIC,VPP]}/2n-skx-xxv710-64b-2t1c-nat44ed-ip4routing-udp-stf-cps-avf-pdr"
-  data: "plot-vpp-throughput-lat-tsa-2n-skx"
-  include:
-    - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-nat44ed-h1024-p63-s64512-cps-ndrpdr.64b-2t1c-avf-ethip4udp-nat44ed-h1024-p63-s64512-cps-ndrpdr"
-    - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-ip4base-h1024-p63-s64512-cps-ndrpdr.64b-2t1c-avf-ethip4udp-ip4base-h1024-p63-s64512-cps-ndrpdr"
-    - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-nat44ed-h4096-p63-s258048-cps-ndrpdr.64b-2t1c-avf-ethip4udp-nat44ed-h4096-p63-s258048-cps-ndrpdr"
-    - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-ip4base-h4096-p63-s258048-cps-ndrpdr.64b-2t1c-avf-ethip4udp-ip4base-h4096-p63-s258048-cps-ndrpdr"
-    - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-nat44ed-h16384-p63-s1032192-cps-ndrpdr.64b-2t1c-avf-ethip4udp-nat44ed-h16384-p63-s1032192-cps-ndrpdr"
-    - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-ip4base-h16384-p63-s1032192-cps-ndrpdr.64b-2t1c-avf-ethip4udp-ip4base-h16384-p63-s1032192-cps-ndrpdr"
-    - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-nat44ed-h65536-p63-s4128768-cps-ndrpdr.64b-2t1c-avf-ethip4udp-nat44ed-h65536-p63-s4128768-cps-ndrpdr"
-    - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-ip4base-h65536-p63-s4128768-cps-ndrpdr.64b-2t1c-avf-ethip4udp-ip4base-h65536-p63-s4128768-cps-ndrpdr"
-    - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-nat44ed-h262144-p63-s16515072-cps-ndrpdr.64b-2t1c-avf-ethip4udp-nat44ed-h262144-p63-s16515072-cps-ndrpdr"
-    - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-ip4base-h262144-p63-s16515072-cps-ndrpdr.64b-2t1c-avf-ethip4udp-ip4base-h262144-p63-s16515072-cps-ndrpdr"
-  layout:
-    title: "2n-skx-xxv710-64b-2t1c-nat44ed-ip4routing-udp-stf-cps-avf-pdr"
-    layout: "plot-cps"
-
-- type: "plot"
-  title: "Throughput: 2n-skx-xxv710-64b-2t1c-nat44ed-ip4routing-udp-stf-pps-avf-pdr"
-  algorithm: "plot_perf_box_name"
-  output-file: "{DIR[STATIC,VPP]}/2n-skx-xxv710-64b-2t1c-nat44ed-ip4routing-udp-stf-pps-avf-pdr"
-  data: "plot-vpp-throughput-lat-tsa-2n-skx"
-  include:
-    - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-nat44ed-h1024-p63-s64512-pps-ndrpdr.64b-2t1c-avf-ethip4udp-nat44ed-h1024-p63-s64512-pps-ndrpdr"
-    - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-ip4base-h1024-p63-s64512-pps-ndrpdr.64b-2t1c-avf-ethip4udp-ip4base-h1024-p63-s64512-pps-ndrpdr"
-    - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-nat44ed-h4096-p63-s258048-pps-ndrpdr.64b-2t1c-avf-ethip4udp-nat44ed-h4096-p63-s258048-pps-ndrpdr"
-    - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-ip4base-h4096-p63-s258048-pps-ndrpdr.64b-2t1c-avf-ethip4udp-ip4base-h4096-p63-s258048-pps-ndrpdr"
-    - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-nat44ed-h16384-p63-s1032192-pps-ndrpdr.64b-2t1c-avf-ethip4udp-nat44ed-h16384-p63-s1032192-pps-ndrpdr"
-    - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-ip4base-h16384-p63-s1032192-pps-ndrpdr.64b-2t1c-avf-ethip4udp-ip4base-h16384-p63-s1032192-pps-ndrpdr"
-    - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-nat44ed-h65536-p63-s4128768-pps-ndrpdr.64b-2t1c-avf-ethip4udp-nat44ed-h65536-p63-s4128768-pps-ndrpdr"
-    - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-ip4base-h65536-p63-s4128768-pps-ndrpdr.64b-2t1c-avf-ethip4udp-ip4base-h65536-p63-s4128768-pps-ndrpdr"
-    - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-nat44ed-h262144-p63-s16515072-pps-ndrpdr.64b-2t1c-avf-ethip4udp-nat44ed-h262144-p63-s16515072-pps-ndrpdr"
-    - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-ip4base-h262144-p63-s16515072-pps-ndrpdr.64b-2t1c-avf-ethip4udp-ip4base-h262144-p63-s16515072-pps-ndrpdr"
-  layout:
-    title: "2n-skx-xxv710-64b-2t1c-nat44ed-ip4routing-udp-stf-pps-avf-pdr"
-    layout: "plot-throughput"
-
-- type: "plot"
-  title: "Throughput: 2n-skx-xxv710-64b-2t1c-nat44ed-ip4routing-tcp-stf-cps-avf-pdr"
-  algorithm: "plot_perf_box_name"
-  output-file: "{DIR[STATIC,VPP]}/2n-skx-xxv710-64b-2t1c-nat44ed-ip4routing-tcp-stf-cps-avf-pdr"
-  data: "plot-vpp-throughput-lat-tsa-2n-skx"
-  include:
-    - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4tcp-nat44ed-h1024-p63-s64512-cps-ndrpdr.64b-2t1c-avf-ethip4tcp-nat44ed-h1024-p63-s64512-cps-ndrpdr"
-    - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4tcp-ip4base-h1024-p63-s64512-cps-ndrpdr.64b-2t1c-avf-ethip4tcp-ip4base-h1024-p63-s64512-cps-ndrpdr"
-    - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4tcp-nat44ed-h4096-p63-s258048-cps-ndrpdr.64b-2t1c-avf-ethip4tcp-nat44ed-h4096-p63-s258048-cps-ndrpdr"
-    - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4tcp-ip4base-h4096-p63-s258048-cps-ndrpdr.64b-2t1c-avf-ethip4tcp-ip4base-h4096-p63-s258048-cps-ndrpdr"
-    - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4tcp-nat44ed-h16384-p63-s1032192-cps-ndrpdr.64b-2t1c-avf-ethip4tcp-nat44ed-h16384-p63-s1032192-cps-ndrpdr"
-    - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4tcp-ip4base-h16384-p63-s1032192-cps-ndrpdr.64b-2t1c-avf-ethip4tcp-ip4base-h16384-p63-s1032192-cps-ndrpdr"
-    - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4tcp-nat44ed-h65536-p63-s4128768-cps-ndrpdr.64b-2t1c-avf-ethip4tcp-nat44ed-h65536-p63-s4128768-cps-ndrpdr"
-    - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4tcp-ip4base-h65536-p63-s4128768-cps-ndrpdr.64b-2t1c-avf-ethip4tcp-ip4base-h65536-p63-s4128768-cps-ndrpdr"
-    - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4tcp-nat44ed-h262144-p63-s16515072-cps-ndrpdr.64b-2t1c-avf-ethip4tcp-nat44ed-h262144-p63-s16515072-cps-ndrpdr"
-    - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4tcp-ip4base-h262144-p63-s16515072-cps-ndrpdr.64b-2t1c-avf-ethip4tcp-ip4base-h262144-p63-s16515072-cps-ndrpdr"
-  layout:
-    title: "2n-skx-xxv710-64b-2t1c-nat44ed-ip4routing-tcp-stf-cps-avf-pdr"
-    layout: "plot-cps"
-
-- type: "plot"
-  title: "Throughput: 2n-skx-xxv710-64b-2t1c-nat44ed-ip4routing-tcp-stf-pps-avf-pdr"
-  algorithm: "plot_perf_box_name"
-  output-file: "{DIR[STATIC,VPP]}/2n-skx-xxv710-64b-2t1c-nat44ed-ip4routing-tcp-stf-pps-avf-pdr"
-  data: "plot-vpp-throughput-lat-tsa-2n-skx"
-  include:
-    - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4tcp-nat44ed-h1024-p63-s64512-pps-ndrpdr.64b-2t1c-avf-ethip4tcp-nat44ed-h1024-p63-s64512-pps-ndrpdr"
-    - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4tcp-ip4base-h1024-p63-s64512-pps-ndrpdr.64b-2t1c-avf-ethip4tcp-ip4base-h1024-p63-s64512-pps-ndrpdr"
-    - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4tcp-nat44ed-h4096-p63-s258048-pps-ndrpdr.64b-2t1c-avf-ethip4tcp-nat44ed-h4096-p63-s258048-pps-ndrpdr"
-    - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4tcp-ip4base-h4096-p63-s258048-pps-ndrpdr.64b-2t1c-avf-ethip4tcp-ip4base-h4096-p63-s258048-pps-ndrpdr"
-    - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4tcp-nat44ed-h16384-p63-s1032192-pps-ndrpdr.64b-2t1c-avf-ethip4tcp-nat44ed-h16384-p63-s1032192-pps-ndrpdr"
-    - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4tcp-ip4base-h16384-p63-s1032192-pps-ndrpdr.64b-2t1c-avf-ethip4tcp-ip4base-h16384-p63-s1032192-pps-ndrpdr"
-    - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4tcp-nat44ed-h65536-p63-s4128768-pps-ndrpdr.64b-2t1c-avf-ethip4tcp-nat44ed-h65536-p63-s4128768-pps-ndrpdr"
-    - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4tcp-ip4base-h65536-p63-s4128768-pps-ndrpdr.64b-2t1c-avf-ethip4tcp-ip4base-h65536-p63-s4128768-pps-ndrpdr"
-    - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4tcp-nat44ed-h262144-p63-s16515072-pps-ndrpdr.64b-2t1c-avf-ethip4tcp-nat44ed-h262144-p63-s16515072-pps-ndrpdr"
-    - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4tcp-ip4base-h262144-p63-s16515072-pps-ndrpdr.64b-2t1c-avf-ethip4tcp-ip4base-h262144-p63-s16515072-pps-ndrpdr"
-  layout:
-    title: "2n-skx-xxv710-64b-2t1c-nat44ed-ip4routing-tcp-stf-pps-avf-pdr"
-    layout: "plot-throughput"
-
-- type: "plot"
-  title: "Throughput: 2n-skx-xxv710-64b-2t1c-nat44ed-ip4routing-tcp-tput-avf-ndr"
-  algorithm: "plot_perf_box_name"
-  output-file: "{DIR[STATIC,VPP]}/2n-skx-xxv710-64b-2t1c-nat44ed-ip4routing-tcp-tput-avf-ndr"
-  data: "plot-vpp-throughput-lat-tsa-2n-skx"
-  include:
-    - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4tcp-nat44ed-h1024-p63-s64512-pps-ndrpdr.64b-2t1c-avf-ethip4tcp-nat44ed-h1024-p63-s64512-pps-ndrpdr"
-    - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Avf-Ethip4Tcp-Nat44Ed-H1024-P63-S64512-Tput-Ndrpdr.64B-2t1c-avf-ethip4tcp-nat44ed-h1024-p63-s64512-tput-ndrpdr"
-    - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4tcp-nat44ed-h4096-p63-s258048-pps-ndrpdr.64b-2t1c-avf-ethip4tcp-nat44ed-h4096-p63-s258048-pps-ndrpdr"
-    - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Avf-Ethip4Tcp-Nat44Ed-H4096-P63-S258048-Tput-Ndrpdr.64B-2t1c-avf-ethip4tcp-nat44ed-h4096-p63-s258048-tput-ndrpdr"
-    - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4tcp-nat44ed-h16384-p63-s1032192-pps-ndrpdr.64b-2t1c-avf-ethip4tcp-nat44ed-h16384-p63-s1032192-pps-ndrpdr"
-    - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Avf-Ethip4Tcp-Nat44Ed-H16384-P63-S1032192-Tput-Ndrpdr.64B-2t1c-avf-ethip4tcp-nat44ed-h16384-p63-s1032192-tput-ndrpdr"
-    - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4tcp-nat44ed-h65536-p63-s4128768-pps-ndrpdr.64b-2t1c-avf-ethip4tcp-nat44ed-h65536-p63-s4128768-pps-ndrpdr"
-    - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Avf-Ethip4Tcp-Nat44Ed-H65536-P63-S4128768-Tput-Ndrpdr.64B-2t1c-avf-ethip4tcp-nat44ed-h65536-p63-s4128768-tput-ndrpdr"
-    - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4tcp-nat44ed-h262144-p63-s16515072-pps-ndrpdr.64b-2t1c-avf-ethip4tcp-nat44ed-h262144-p63-s16515072-pps-ndrpdr"
-    - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Avf-Ethip4Tcp-Nat44Ed-H262144-P63-S16515072-Tput-Ndrpdr.64B-2t1c-avf-ethip4tcp-nat44ed-h262144-p63-s16515072-tput-ndrpdr"
-  layout:
-    title: "2n-skx-xxv710-64b-2t1c-nat44ed-ip4routing-tcp-tput-avf-ndr"
-    layout: "plot-throughput"
-
-- type: "plot"
-  title: "Throughput: 2n-skx-xxv710-64b-2t1c-nat44ed-ip4routing-tcp-tput-avf-pdr"
-  algorithm: "plot_perf_box_name"
-  output-file: "{DIR[STATIC,VPP]}/2n-skx-xxv710-64b-2t1c-nat44ed-ip4routing-tcp-tput-avf-pdr"
-  data: "plot-vpp-throughput-lat-tsa-2n-skx"
-  include:
-    - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4tcp-nat44ed-h1024-p63-s64512-pps-ndrpdr.64b-2t1c-avf-ethip4tcp-nat44ed-h1024-p63-s64512-pps-ndrpdr"
-    - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Avf-Ethip4Tcp-Nat44Ed-H1024-P63-S64512-Tput-Ndrpdr.64B-2t1c-avf-ethip4tcp-nat44ed-h1024-p63-s64512-tput-ndrpdr"
-    - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4tcp-nat44ed-h4096-p63-s258048-pps-ndrpdr.64b-2t1c-avf-ethip4tcp-nat44ed-h4096-p63-s258048-pps-ndrpdr"
-    - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Avf-Ethip4Tcp-Nat44Ed-H4096-P63-S258048-Tput-Ndrpdr.64B-2t1c-avf-ethip4tcp-nat44ed-h4096-p63-s258048-tput-ndrpdr"
-    - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4tcp-nat44ed-h16384-p63-s1032192-pps-ndrpdr.64b-2t1c-avf-ethip4tcp-nat44ed-h16384-p63-s1032192-pps-ndrpdr"
-    - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Avf-Ethip4Tcp-Nat44Ed-H16384-P63-S1032192-Tput-Ndrpdr.64B-2t1c-avf-ethip4tcp-nat44ed-h16384-p63-s1032192-tput-ndrpdr"
-    - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4tcp-nat44ed-h65536-p63-s4128768-pps-ndrpdr.64b-2t1c-avf-ethip4tcp-nat44ed-h65536-p63-s4128768-pps-ndrpdr"
-    - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Avf-Ethip4Tcp-Nat44Ed-H65536-P63-S4128768-Tput-Ndrpdr.64B-2t1c-avf-ethip4tcp-nat44ed-h65536-p63-s4128768-tput-ndrpdr"
-    - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4tcp-nat44ed-h262144-p63-s16515072-pps-ndrpdr.64b-2t1c-avf-ethip4tcp-nat44ed-h262144-p63-s16515072-pps-ndrpdr"
-    - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Avf-Ethip4Tcp-Nat44Ed-H262144-P63-S16515072-Tput-Ndrpdr.64B-2t1c-avf-ethip4tcp-nat44ed-h262144-p63-s16515072-tput-ndrpdr"
-  layout:
-    title: "2n-skx-xxv710-64b-2t1c-nat44ed-ip4routing-tcp-tput-avf-pdr"
-    layout: "plot-throughput"
-
-- type: "plot"
-  title: "Throughput: 2n-skx-xxv710-64b-2t1c-nat44ed-ip4routing-udp-tput-avf-ndr"
-  algorithm: "plot_perf_box_name"
-  output-file: "{DIR[STATIC,VPP]}/2n-skx-xxv710-64b-2t1c-nat44ed-ip4routing-udp-tput-avf-ndr"
-  data: "plot-vpp-throughput-lat-tsa-2n-skx"
-  include:
-    - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-nat44ed-h1024-p63-s64512-pps-ndrpdr.64b-2t1c-avf-ethip4udp-nat44ed-h1024-p63-s64512-pps-ndrpdr"
-    - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Avf-Ethip4Udp-Nat44Ed-H1024-P63-S64512-Tput-Ndrpdr.64B-2t1c-avf-ethip4udp-nat44ed-h1024-p63-s64512-tput-ndrpdr"
-    - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-nat44ed-h4096-p63-s258048-pps-ndrpdr.64b-2t1c-avf-ethip4udp-nat44ed-h4096-p63-s258048-pps-ndrpdr"
-    - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Avf-Ethip4Udp-Nat44Ed-H4096-P63-S258048-Tput-Ndrpdr.64B-2t1c-avf-ethip4udp-nat44ed-h4096-p63-s258048-tput-ndrpdr"
-    - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-nat44ed-h16384-p63-s1032192-pps-ndrpdr.64b-2t1c-avf-ethip4udp-nat44ed-h16384-p63-s1032192-pps-ndrpdr"
-    - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Avf-Ethip4Udp-Nat44Ed-H16384-P63-S1032192-Tput-Ndrpdr.64B-2t1c-avf-ethip4udp-nat44ed-h16384-p63-s1032192-tput-ndrpdr"
-    - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-nat44ed-h65536-p63-s4128768-pps-ndrpdr.64b-2t1c-avf-ethip4udp-nat44ed-h65536-p63-s4128768-pps-ndrpdr"
-    - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Avf-Ethip4Udp-Nat44Ed-H65536-P63-S4128768-Tput-Ndrpdr.64B-2t1c-avf-ethip4udp-nat44ed-h65536-p63-s4128768-tput-ndrpdr"
-    - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-nat44ed-h262144-p63-s16515072-pps-ndrpdr.64b-2t1c-avf-ethip4udp-nat44ed-h262144-p63-s16515072-pps-ndrpdr"
-    - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Avf-Ethip4Udp-Nat44Ed-H262144-P63-S16515072-Tput-Ndrpdr.64B-2t1c-avf-ethip4udp-nat44ed-h262144-p63-s16515072-tput-ndrpdr"
-  layout:
-    title: "2n-skx-xxv710-64b-2t1c-nat44ed-ip4routing-udp-tput-avf-ndr"
-    layout: "plot-throughput"
-
-- type: "plot"
-  title: "Throughput: 2n-skx-xxv710-64b-2t1c-nat44ed-ip4routing-udp-tput-avf-pdr"
-  algorithm: "plot_perf_box_name"
-  output-file: "{DIR[STATIC,VPP]}/2n-skx-xxv710-64b-2t1c-nat44ed-ip4routing-udp-tput-avf-pdr"
-  data: "plot-vpp-throughput-lat-tsa-2n-skx"
-  include:
-    - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-nat44ed-h1024-p63-s64512-pps-ndrpdr.64b-2t1c-avf-ethip4udp-nat44ed-h1024-p63-s64512-pps-ndrpdr"
-    - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Avf-Ethip4Udp-Nat44Ed-H1024-P63-S64512-Tput-Ndrpdr.64B-2t1c-avf-ethip4udp-nat44ed-h1024-p63-s64512-tput-ndrpdr"
-    - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-nat44ed-h4096-p63-s258048-pps-ndrpdr.64b-2t1c-avf-ethip4udp-nat44ed-h4096-p63-s258048-pps-ndrpdr"
-    - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Avf-Ethip4Udp-Nat44Ed-H4096-P63-S258048-Tput-Ndrpdr.64B-2t1c-avf-ethip4udp-nat44ed-h4096-p63-s258048-tput-ndrpdr"
-    - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-nat44ed-h16384-p63-s1032192-pps-ndrpdr.64b-2t1c-avf-ethip4udp-nat44ed-h16384-p63-s1032192-pps-ndrpdr"
-    - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Avf-Ethip4Udp-Nat44Ed-H16384-P63-S1032192-Tput-Ndrpdr.64B-2t1c-avf-ethip4udp-nat44ed-h16384-p63-s1032192-tput-ndrpdr"
-    - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-nat44ed-h65536-p63-s4128768-pps-ndrpdr.64b-2t1c-avf-ethip4udp-nat44ed-h65536-p63-s4128768-pps-ndrpdr"
-    - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Avf-Ethip4Udp-Nat44Ed-H65536-P63-S4128768-Tput-Ndrpdr.64B-2t1c-avf-ethip4udp-nat44ed-h65536-p63-s4128768-tput-ndrpdr"
-    - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-nat44ed-h262144-p63-s16515072-pps-ndrpdr.64b-2t1c-avf-ethip4udp-nat44ed-h262144-p63-s16515072-pps-ndrpdr"
-    - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Avf-Ethip4Udp-Nat44Ed-H262144-P63-S16515072-Tput-Ndrpdr.64B-2t1c-avf-ethip4udp-nat44ed-h262144-p63-s16515072-tput-ndrpdr"
-  layout:
-    title: "2n-skx-xxv710-64b-2t1c-nat44ed-ip4routing-udp-tput-avf-pdr"
-    layout: "plot-throughput"
-
-- type: "plot"
-  title: "Throughput: 2n-skx-xxv710-64b-2t1c-nat44ed-ip4routing-tcp-tput2-avf-ndr"
-  algorithm: "plot_perf_box_name"
-  output-file: "{DIR[STATIC,VPP]}/2n-skx-xxv710-64b-2t1c-nat44ed-ip4routing-tcp-tput2-avf-ndr"
-  data: "plot-vpp-throughput-lat-tsa-2n-skx"
-  include:
-    - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4tcp-ip4base-h1024-p63-s64512-pps-ndrpdr.64b-2t1c-avf-ethip4tcp-ip4base-h1024-p63-s64512-pps-ndrpdr"
-    - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Avf-Ethip4Tcp-Nat44Ed-H1024-P63-S64512-Tput-Ndrpdr.64B-2t1c-avf-ethip4tcp-nat44ed-h1024-p63-s64512-tput-ndrpdr"
-    - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4tcp-ip4base-h4096-p63-s258048-pps-ndrpdr.64b-2t1c-avf-ethip4tcp-ip4base-h4096-p63-s258048-pps-ndrpdr"
-    - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Avf-Ethip4Tcp-Nat44Ed-H4096-P63-S258048-Tput-Ndrpdr.64B-2t1c-avf-ethip4tcp-nat44ed-h4096-p63-s258048-tput-ndrpdr"
-    - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4tcp-ip4base-h16384-p63-s1032192-pps-ndrpdr.64b-2t1c-avf-ethip4tcp-ip4base-h16384-p63-s1032192-pps-ndrpdr"
-    - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Avf-Ethip4Tcp-Nat44Ed-H16384-P63-S1032192-Tput-Ndrpdr.64B-2t1c-avf-ethip4tcp-nat44ed-h16384-p63-s1032192-tput-ndrpdr"
-    - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4tcp-ip4base-h65536-p63-s4128768-pps-ndrpdr.64b-2t1c-avf-ethip4tcp-ip4base-h65536-p63-s4128768-pps-ndrpdr"
-    - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Avf-Ethip4Tcp-Nat44Ed-H65536-P63-S4128768-Tput-Ndrpdr.64B-2t1c-avf-ethip4tcp-nat44ed-h65536-p63-s4128768-tput-ndrpdr"
-    - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4tcp-ip4base-h262144-p63-s16515072-pps-ndrpdr.64b-2t1c-avf-ethip4tcp-ip4base-h262144-p63-s16515072-pps-ndrpdr"
-    - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Avf-Ethip4Tcp-Nat44Ed-H262144-P63-S16515072-Tput-Ndrpdr.64B-2t1c-avf-ethip4tcp-nat44ed-h262144-p63-s16515072-tput-ndrpdr"
-  layout:
-    title: "2n-skx-xxv710-64b-2t1c-nat44ed-ip4routing-tcp-tput-avf-ndr"
-    layout: "plot-throughput"
-
-- type: "plot"
-  title: "Throughput: 2n-skx-xxv710-64b-2t1c-nat44ed-ip4routing-tcp-tput2-avf-pdr"
-  algorithm: "plot_perf_box_name"
-  output-file: "{DIR[STATIC,VPP]}/2n-skx-xxv710-64b-2t1c-nat44ed-ip4routing-tcp-tput2-avf-pdr"
-  data: "plot-vpp-throughput-lat-tsa-2n-skx"
-  include:
-    - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4tcp-ip4base-h1024-p63-s64512-pps-ndrpdr.64b-2t1c-avf-ethip4tcp-ip4base-h1024-p63-s64512-pps-ndrpdr"
-    - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Avf-Ethip4Tcp-Nat44Ed-H1024-P63-S64512-Tput-Ndrpdr.64B-2t1c-avf-ethip4tcp-nat44ed-h1024-p63-s64512-tput-ndrpdr"
-    - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4tcp-ip4base-h4096-p63-s258048-pps-ndrpdr.64b-2t1c-avf-ethip4tcp-ip4base-h4096-p63-s258048-pps-ndrpdr"
-    - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Avf-Ethip4Tcp-Nat44Ed-H4096-P63-S258048-Tput-Ndrpdr.64B-2t1c-avf-ethip4tcp-nat44ed-h4096-p63-s258048-tput-ndrpdr"
-    - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4tcp-ip4base-h16384-p63-s1032192-pps-ndrpdr.64b-2t1c-avf-ethip4tcp-ip4base-h16384-p63-s1032192-pps-ndrpdr"
-    - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Avf-Ethip4Tcp-Nat44Ed-H16384-P63-S1032192-Tput-Ndrpdr.64B-2t1c-avf-ethip4tcp-nat44ed-h16384-p63-s1032192-tput-ndrpdr"
-    - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4tcp-ip4base-h65536-p63-s4128768-pps-ndrpdr.64b-2t1c-avf-ethip4tcp-ip4base-h65536-p63-s4128768-pps-ndrpdr"
-    - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Avf-Ethip4Tcp-Nat44Ed-H65536-P63-S4128768-Tput-Ndrpdr.64B-2t1c-avf-ethip4tcp-nat44ed-h65536-p63-s4128768-tput-ndrpdr"
-    - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4tcp-ip4base-h262144-p63-s16515072-pps-ndrpdr.64b-2t1c-avf-ethip4tcp-ip4base-h262144-p63-s16515072-pps-ndrpdr"
-    - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Avf-Ethip4Tcp-Nat44Ed-H262144-P63-S16515072-Tput-Ndrpdr.64B-2t1c-avf-ethip4tcp-nat44ed-h262144-p63-s16515072-tput-ndrpdr"
-  layout:
-    title: "2n-skx-xxv710-64b-2t1c-nat44ed-ip4routing-tcp-tput-avf-pdr"
-    layout: "plot-throughput"
-
-- type: "plot"
-  title: "Throughput: 2n-skx-xxv710-64b-2t1c-nat44ed-ip4routing-udp-tput2-avf-ndr"
-  algorithm: "plot_perf_box_name"
-  output-file: "{DIR[STATIC,VPP]}/2n-skx-xxv710-64b-2t1c-nat44ed-ip4routing-udp-tput2-avf-ndr"
-  data: "plot-vpp-throughput-lat-tsa-2n-skx"
-  include:
-    - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-ip4base-h1024-p63-s64512-pps-ndrpdr.64b-2t1c-avf-ethip4udp-ip4base-h1024-p63-s64512-pps-ndrpdr"
-    - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Avf-Ethip4Udp-Nat44Ed-H1024-P63-S64512-Tput-Ndrpdr.64B-2t1c-avf-ethip4udp-nat44ed-h1024-p63-s64512-tput-ndrpdr"
-    - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-ip4base-h4096-p63-s258048-pps-ndrpdr.64b-2t1c-avf-ethip4udp-ip4base-h4096-p63-s258048-pps-ndrpdr"
-    - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Avf-Ethip4Udp-Nat44Ed-H4096-P63-S258048-Tput-Ndrpdr.64B-2t1c-avf-ethip4udp-nat44ed-h4096-p63-s258048-tput-ndrpdr"
-    - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-ip4base-h16384-p63-s1032192-pps-ndrpdr.64b-2t1c-avf-ethip4udp-ip4base-h16384-p63-s1032192-pps-ndrpdr"
-    - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Avf-Ethip4Udp-Nat44Ed-H16384-P63-S1032192-Tput-Ndrpdr.64B-2t1c-avf-ethip4udp-nat44ed-h16384-p63-s1032192-tput-ndrpdr"
-    - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-ip4base-h65536-p63-s4128768-pps-ndrpdr.64b-2t1c-avf-ethip4udp-ip4base-h65536-p63-s4128768-pps-ndrpdr"
-    - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Avf-Ethip4Udp-Nat44Ed-H65536-P63-S4128768-Tput-Ndrpdr.64B-2t1c-avf-ethip4udp-nat44ed-h65536-p63-s4128768-tput-ndrpdr"
-    - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-ip4base-h262144-p63-s16515072-pps-ndrpdr.64b-2t1c-avf-ethip4udp-ip4base-h262144-p63-s16515072-pps-ndrpdr"
-    - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Avf-Ethip4Udp-Nat44Ed-H262144-P63-S16515072-Tput-Ndrpdr.64B-2t1c-avf-ethip4udp-nat44ed-h262144-p63-s16515072-tput-ndrpdr"
-  layout:
-    title: "2n-skx-xxv710-64b-2t1c-nat44ed-ip4routing-udp-tput-avf-ndr"
-    layout: "plot-throughput"
-
-- type: "plot"
-  title: "Throughput: 2n-skx-xxv710-64b-2t1c-nat44ed-ip4routing-udp-tput2-avf-pdr"
-  algorithm: "plot_perf_box_name"
-  output-file: "{DIR[STATIC,VPP]}/2n-skx-xxv710-64b-2t1c-nat44ed-ip4routing-udp-tput2-avf-pdr"
-  data: "plot-vpp-throughput-lat-tsa-2n-skx"
-  include:
-    - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-ip4base-h1024-p63-s64512-pps-ndrpdr.64b-2t1c-avf-ethip4udp-ip4base-h1024-p63-s64512-pps-ndrpdr"
-    - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Avf-Ethip4Udp-Nat44Ed-H1024-P63-S64512-Tput-Ndrpdr.64B-2t1c-avf-ethip4udp-nat44ed-h1024-p63-s64512-tput-ndrpdr"
-    - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-ip4base-h4096-p63-s258048-pps-ndrpdr.64b-2t1c-avf-ethip4udp-ip4base-h4096-p63-s258048-pps-ndrpdr"
-    - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Avf-Ethip4Udp-Nat44Ed-H4096-P63-S258048-Tput-Ndrpdr.64B-2t1c-avf-ethip4udp-nat44ed-h4096-p63-s258048-tput-ndrpdr"
-    - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-ip4base-h16384-p63-s1032192-pps-ndrpdr.64b-2t1c-avf-ethip4udp-ip4base-h16384-p63-s1032192-pps-ndrpdr"
-    - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Avf-Ethip4Udp-Nat44Ed-H16384-P63-S1032192-Tput-Ndrpdr.64B-2t1c-avf-ethip4udp-nat44ed-h16384-p63-s1032192-tput-ndrpdr"
-    - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-ip4base-h65536-p63-s4128768-pps-ndrpdr.64b-2t1c-avf-ethip4udp-ip4base-h65536-p63-s4128768-pps-ndrpdr"
-    - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Avf-Ethip4Udp-Nat44Ed-H65536-P63-S4128768-Tput-Ndrpdr.64B-2t1c-avf-ethip4udp-nat44ed-h65536-p63-s4128768-tput-ndrpdr"
-    - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-ip4base-h262144-p63-s16515072-pps-ndrpdr.64b-2t1c-avf-ethip4udp-ip4base-h262144-p63-s16515072-pps-ndrpdr"
-    - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Avf-Ethip4Udp-Nat44Ed-H262144-P63-S16515072-Tput-Ndrpdr.64B-2t1c-avf-ethip4udp-nat44ed-h262144-p63-s16515072-tput-ndrpdr"
-  layout:
-    title: "2n-skx-xxv710-64b-2t1c-nat44ed-ip4routing-udp-tput-avf-pdr"
-    layout: "plot-throughput"
-
-- type: "plot"
-  title: "Throughput: 2n-skx-xxv710-64b-2t1c-features-ip4routing-base-dpdk-ndr"
-  algorithm: "plot_perf_box_name"
-  output-file: "{DIR[STATIC,VPP]}/2n-skx-xxv710-64b-2t1c-features-ip4routing-base-dpdk-ndr"
-  data: "plot-vpp-throughput-lat-tsa-2n-skx"
-  include:
-    - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Ethip4-Ip4Base-Ndrpdr.64B-2t1c-ethip4-ip4base-ndrpdr"
-    - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Ethip4Udp-Ip4Base-Iacl50Sf-10Kflows-Ndrpdr.64B-2t1c-ethip4udp-ip4base-iacl50sf-10kflows-ndrpdr"
-    - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Ethip4Udp-Ip4Base-Iacl50Sl-10Kflows-Ndrpdr.64B-2t1c-ethip4udp-ip4base-iacl50sl-10kflows-ndrpdr"
-    - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Ethip4Udp-Ip4Base-Oacl50Sf-10Kflows-Ndrpdr.64B-2t1c-ethip4udp-ip4base-oacl50sf-10kflows-ndrpdr"
-    - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Ethip4Udp-Ip4Base-Oacl50Sl-10Kflows-Ndrpdr.64B-2t1c-ethip4udp-ip4base-oacl50sl-10kflows-ndrpdr"
-    - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-ethip4udp-nat44det-h1-p1-s1-Ndrpdr.64B-2t1c-ethip4udp-nat44det-h1-p1-s1-ndrpdr"
-  layout:
-    title: "2n-skx-xxv710-64b-2t1c-features-ip4routing-base-dpdk-ndr"
-    layout: "plot-throughput"
-
-- type: "plot"
-  title: "Throughput: 2n-skx-xxv710-64b-2t1c-features-ip4routing-base-dpdk-pdr"
-  algorithm: "plot_perf_box_name"
-  output-file: "{DIR[STATIC,VPP]}/2n-skx-xxv710-64b-2t1c-features-ip4routing-base-dpdk-pdr"
-  data: "plot-vpp-throughput-lat-tsa-2n-skx"
-  include:
-    - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Ethip4-Ip4Base-Ndrpdr.64B-2t1c-ethip4-ip4base-ndrpdr"
-    - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Ethip4Udp-Ip4Base-Iacl50Sf-10Kflows-Ndrpdr.64B-2t1c-ethip4udp-ip4base-iacl50sf-10kflows-ndrpdr"
-    - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Ethip4Udp-Ip4Base-Iacl50Sl-10Kflows-Ndrpdr.64B-2t1c-ethip4udp-ip4base-iacl50sl-10kflows-ndrpdr"
-    - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Ethip4Udp-Ip4Base-Oacl50Sf-10Kflows-Ndrpdr.64B-2t1c-ethip4udp-ip4base-oacl50sf-10kflows-ndrpdr"
-    - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Ethip4Udp-Ip4Base-Oacl50Sl-10Kflows-Ndrpdr.64B-2t1c-ethip4udp-ip4base-oacl50sl-10kflows-ndrpdr"
-    - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-ethip4udp-nat44det-h1-p1-s1-Ndrpdr.64B-2t1c-ethip4udp-nat44det-h1-p1-s1-ndrpdr"
-  layout:
-    title: "2n-skx-xxv710-64b-2t1c-features-ip4routing-base-dpdk-pdr"
-    layout: "plot-throughput"
-
-- type: "plot"
-  title: "Throughput: 2n-skx-xxv710-64b-2t1c-ethip4--ethip4udpgeneve-avf-ndr"
-  algorithm: "plot_perf_box_name"
-  output-file: "{DIR[STATIC,VPP]}/2n-skx-xxv710-64b-2t1c-ethip4--ethip4udpgeneve-avf-ndr"
-  data: "plot-vpp-throughput-lat-tsa-2n-skx"
-  include:
-    - "Tests.Vpp.Perf.Ip4 Tunnels.2N1L-25Ge2P1Xxv710-Avf-Ethip4--Ethip4Udpgeneve-1Tun-Ip4Base-Ndrpdr.64B-2t1c-avf-ethip4--ethip4udpgeneve-1tun-ip4base-ndrpdr"
-    - "Tests.Vpp.Perf.Ip4 Tunnels.2N1L-25Ge2P1Xxv710-Avf-Ethip4--Ethip4Udpgeneve-4Tun-Ip4Base-Ndrpdr.64B-2t1c-avf-ethip4--ethip4udpgeneve-4tun-ip4base-ndrpdr"
-    - "Tests.Vpp.Perf.Ip4 Tunnels.2N1L-25Ge2P1Xxv710-Avf-Ethip4--Ethip4Udpgeneve-16Tun-Ip4Base-Ndrpdr.64B-2t1c-avf-ethip4--ethip4udpgeneve-16tun-ip4base-ndrpdr"
-    - "Tests.Vpp.Perf.Ip4 Tunnels.2N1L-25Ge2P1Xxv710-Avf-Ethip4--Ethip4Udpgeneve-64Tun-Ip4Base-Ndrpdr.64B-2t1c-avf-ethip4--ethip4udpgeneve-64tun-ip4base-ndrpdr"
-    - "Tests.Vpp.Perf.Ip4 Tunnels.2N1L-25Ge2P1Xxv710-Avf-Ethip4--Ethip4Udpgeneve-256Tun-Ip4Base-Ndrpdr.64B-2t1c-avf-ethip4--ethip4udpgeneve-256tun-ip4base-ndrpdr"
-  layout:
-    title: "2n-skx-xxv710-64b-2t1c-ethip4--ethip4udpgeneve-avf-ndr"
-    layout: "plot-throughput"
-
-- type: "plot"
-  title: "Throughput: 2n-skx-xxv710-64b-2t1c-ethip4--ethip4udpgeneve-avf-pdr"
-  algorithm: "plot_perf_box_name"
-  output-file: "{DIR[STATIC,VPP]}/2n-skx-xxv710-64b-2t1c-ethip4--ethip4udpgeneve-avf-pdr"
-  data: "plot-vpp-throughput-lat-tsa-2n-skx"
-  include:
-    - "Tests.Vpp.Perf.Ip4 Tunnels.2N1L-25Ge2P1Xxv710-Avf-Ethip4--Ethip4Udpgeneve-1Tun-Ip4Base-Ndrpdr.64B-2t1c-avf-ethip4--ethip4udpgeneve-1tun-ip4base-ndrpdr"
-    - "Tests.Vpp.Perf.Ip4 Tunnels.2N1L-25Ge2P1Xxv710-Avf-Ethip4--Ethip4Udpgeneve-4Tun-Ip4Base-Ndrpdr.64B-2t1c-avf-ethip4--ethip4udpgeneve-4tun-ip4base-ndrpdr"
-    - "Tests.Vpp.Perf.Ip4 Tunnels.2N1L-25Ge2P1Xxv710-Avf-Ethip4--Ethip4Udpgeneve-16Tun-Ip4Base-Ndrpdr.64B-2t1c-avf-ethip4--ethip4udpgeneve-16tun-ip4base-ndrpdr"
-    - "Tests.Vpp.Perf.Ip4 Tunnels.2N1L-25Ge2P1Xxv710-Avf-Ethip4--Ethip4Udpgeneve-64Tun-Ip4Base-Ndrpdr.64B-2t1c-avf-ethip4--ethip4udpgeneve-64tun-ip4base-ndrpdr"
-    - "Tests.Vpp.Perf.Ip4 Tunnels.2N1L-25Ge2P1Xxv710-Avf-Ethip4--Ethip4Udpgeneve-256Tun-Ip4Base-Ndrpdr.64B-2t1c-avf-ethip4--ethip4udpgeneve-256tun-ip4base-ndrpdr"
-  layout:
-    title: "2n-skx-xxv710-64b-2t1c-ethip4--ethip4udpgeneve-avf-pdr"
-    layout: "plot-throughput"
-
-- type: "plot"
-  title: "Throughput: 3n-hsw-xl710-64b-1t1c-ip4routing-base-scale-dpdk-ndr"
-  algorithm: "plot_perf_box_name"
-  output-file: "{DIR[STATIC,VPP]}/3n-hsw-xl710-64b-1t1c-ip4routing-base-scale-dpdk-ndr"
-  data: "plot-vpp-throughput-lat-tsa-3n-hsw"
-  include:
-    - "Tests.Vpp.Perf.Ip4.40Ge2P1Xl710-Dot1Q-Ip4Base-Ndrpdr.64B-1t1c-dot1q-ip4base-ndrpdr"
-    - "Tests.Vpp.Perf.Ip4.40Ge2P1Xl710-Ethip4-Ip4Base-Ndrpdr.64B-1t1c-ethip4-ip4base-ndrpdr"
-    - "Tests.Vpp.Perf.Ip4.40Ge2P1Xl710-Ethip4-Ip4Scale2M-Ndrpdr.64B-1t1c-ethip4-ip4scale2m-ndrpdr"
-    - "Tests.Vpp.Perf.Ip4.40Ge2P1Xl710-Ethip4-Ip4Scale2M-rnd-Ndrpdr.64B-1t1c-ethip4-ip4scale2m-rnd-ndrpdr"
-  layout:
-    title: "3n-hsw-xl710-64b-1t1c-ip4routing-base-scale-dpdk-ndr"
-    layout: "plot-throughput"
-
-- type: "plot"
-  title: "Throughput: 3n-hsw-xl710-64b-1t1c-ip4routing-base-scale-dpdk-pdr"
-  algorithm: "plot_perf_box_name"
-  output-file: "{DIR[STATIC,VPP]}/3n-hsw-xl710-64b-1t1c-ip4routing-base-scale-dpdk-pdr"
-  data: "plot-vpp-throughput-lat-tsa-3n-hsw"
-  include:
-    - "Tests.Vpp.Perf.Ip4.40Ge2P1Xl710-Dot1Q-Ip4Base-Ndrpdr.64B-1t1c-dot1q-ip4base-ndrpdr"
-    - "Tests.Vpp.Perf.Ip4.40Ge2P1Xl710-Ethip4-Ip4Base-Ndrpdr.64B-1t1c-ethip4-ip4base-ndrpdr"
-    - "Tests.Vpp.Perf.Ip4.40Ge2P1Xl710-Ethip4-Ip4Scale2M-Ndrpdr.64B-1t1c-ethip4-ip4scale2m-ndrpdr"
-    - "Tests.Vpp.Perf.Ip4.40Ge2P1Xl710-Ethip4-Ip4Scale2M-rnd-Ndrpdr.64B-1t1c-ethip4-ip4scale2m-rnd-ndrpdr"
-  layout:
-    title: "3n-hsw-xl710-64b-1t1c-ip4routing-base-scale-dpdk-pdr"
-    layout: "plot-throughput"
-
-- type: "plot"
-  title: "Throughput: 3n-skx-x710-64b-2t1c-ip4routing-base-scale-avf-ndr"
-  algorithm: "plot_perf_box_name"
-  output-file: "{DIR[STATIC,VPP]}/3n-skx-x710-64b-2t1c-ip4routing-base-scale-avf-ndr"
-  data: "plot-vpp-throughput-lat-tsa-3n-skx"
-  include:
-    - "Tests.Vpp.Perf.Ip4.10Ge2P1X710-Avf-Ethip4-Ip4Base-Ndrpdr.64B-2t1c-avf-ethip4-ip4base-ndrpdr"
-    - "Tests.Vpp.Perf.Ip4.10Ge2P1X710-Avf-Ethip4-Ip4Scale2M-Ndrpdr.64B-2t1c-avf-ethip4-ip4scale2m-ndrpdr"
-#    - "Tests.Vpp.Perf.Ip4.10Ge2P1X710-Avf-Dot1Q-Ip4Base-Ndrpdr.64B-2t1c-avf-dot1q-ip4base-ndrpdr"
-#    - "Tests.Vpp.Perf.Ip4.10Ge2P1X710-Ethip4-Ip4Base-Ndrpdr.64B-2t1c-ethip4-ip4base-ndrpdr"
-#    - "Tests.Vpp.Perf.Ip4.10Ge2P1X710-Ethip4-Ip4Scale2M-Ndrpdr.64B-2t1c-ethip4-ip4scale2m-ndrpdr"
-  layout:
-    title: "3n-skx-x710-64b-2t1c-ip4routing-base-scale-avf-ndr"
-    layout: "plot-throughput"
-
-- type: "plot"
-  title: "Throughput: 3n-skx-x710-64b-2t1c-ip4routing-base-scale-avf-pdr"
-  algorithm: "plot_perf_box_name"
-  output-file: "{DIR[STATIC,VPP]}/3n-skx-x710-64b-2t1c-ip4routing-base-scale-avf-pdr"
-  data: "plot-vpp-throughput-lat-tsa-3n-skx"
-  include:
-    - "Tests.Vpp.Perf.Ip4.10Ge2P1X710-Avf-Ethip4-Ip4Base-Ndrpdr.64B-2t1c-avf-ethip4-ip4base-ndrpdr"
-    - "Tests.Vpp.Perf.Ip4.10Ge2P1X710-Avf-Ethip4-Ip4Scale2M-Ndrpdr.64B-2t1c-avf-ethip4-ip4scale2m-ndrpdr"
-#    - "Tests.Vpp.Perf.Ip4.10Ge2P1X710-Avf-Dot1Q-Ip4Base-Ndrpdr.64B-2t1c-avf-dot1q-ip4base-ndrpdr"
-#    - "Tests.Vpp.Perf.Ip4.10Ge2P1X710-Ethip4-Ip4Base-Ndrpdr.64B-2t1c-ethip4-ip4base-ndrpdr"
-#    - "Tests.Vpp.Perf.Ip4.10Ge2P1X710-Ethip4-Ip4Scale2M-Ndrpdr.64B-2t1c-ethip4-ip4scale2m-ndrpdr"
-  layout:
-    title: "3n-skx-x710-64b-2t1c-ip4routing-base-scale-avf-pdr"
-    layout: "plot-throughput"
-
-- type: "plot"
-  title: "Throughput: 3n-skx-xxv710-64b-2t1c-ip4routing-base-scale-avf-ndr"
-  algorithm: "plot_perf_box_name"
-  output-file: "{DIR[STATIC,VPP]}/3n-skx-xxv710-64b-2t1c-ip4routing-base-scale-avf-ndr"
-  data: "plot-vpp-throughput-lat-tsa-3n-skx"
-  include:
-    - "Tests.Vpp.Perf.Ip4.25Ge2P1Xxv710-Avf-Dot1Q-Ip4Base-Ndrpdr.64B-2t1c-avf-dot1q-ip4base-ndrpdr"
-    - "Tests.Vpp.Perf.Ip4.25Ge2P1Xxv710-Avf-Ethip4-Ip4Base-Ndrpdr.64B-2t1c-avf-ethip4-ip4base-ndrpdr"
-    - "Tests.Vpp.Perf.Ip4.25Ge2P1Xxv710-Avf-Ethip4-Ip4Scale20K-Ndrpdr.64B-2t1c-avf-ethip4-ip4scale20k-ndrpdr"
-    - "Tests.Vpp.Perf.Ip4.25Ge2P1Xxv710-Avf-Ethip4-Ip4Scale200K-Ndrpdr.64B-2t1c-avf-ethip4-ip4scale200k-ndrpdr"
-    - "Tests.Vpp.Perf.Ip4.25Ge2P1Xxv710-Avf-Ethip4-Ip4Scale2M-Ndrpdr.64B-2t1c-avf-ethip4-ip4scale2m-ndrpdr"
-  layout:
-    title: "3n-skx-xxv710-64b-2t1c-ip4routing-base-scale-avf-ndr"
-    layout: "plot-throughput"
-
-- type: "plot"
-  title: "Throughput: 3n-skx-xxv710-64b-2t1c-ip4routing-base-scale-avf-pdr"
-  algorithm: "plot_perf_box_name"
-  output-file: "{DIR[STATIC,VPP]}/3n-skx-xxv710-64b-2t1c-ip4routing-base-scale-avf-pdr"
-  data: "plot-vpp-throughput-lat-tsa-3n-skx"
-  include:
-    - "Tests.Vpp.Perf.Ip4.25Ge2P1Xxv710-Avf-Dot1Q-Ip4Base-Ndrpdr.64B-2t1c-avf-dot1q-ip4base-ndrpdr"
-    - "Tests.Vpp.Perf.Ip4.25Ge2P1Xxv710-Avf-Ethip4-Ip4Base-Ndrpdr.64B-2t1c-avf-ethip4-ip4base-ndrpdr"
-    - "Tests.Vpp.Perf.Ip4.25Ge2P1Xxv710-Avf-Ethip4-Ip4Scale20K-Ndrpdr.64B-2t1c-avf-ethip4-ip4scale20k-ndrpdr"
-    - "Tests.Vpp.Perf.Ip4.25Ge2P1Xxv710-Avf-Ethip4-Ip4Scale200K-Ndrpdr.64B-2t1c-avf-ethip4-ip4scale200k-ndrpdr"
-    - "Tests.Vpp.Perf.Ip4.25Ge2P1Xxv710-Avf-Ethip4-Ip4Scale2M-Ndrpdr.64B-2t1c-avf-ethip4-ip4scale2m-ndrpdr"
-  layout:
-    title: "3n-skx-xxv710-64b-2t1c-ip4routing-base-scale-avf-pdr"
-    layout: "plot-throughput"
-
-- type: "plot"
-  title: "Throughput: 3n-skx-xxv710-64b-2t1c-ip4routing-base-scale-dpdk-ndr"
-  algorithm: "plot_perf_box_name"
-  output-file: "{DIR[STATIC,VPP]}/3n-skx-xxv710-64b-2t1c-ip4routing-base-scale-dpdk-ndr"
-  data: "plot-vpp-throughput-lat-tsa-3n-skx"
-  include:
-    - "Tests.Vpp.Perf.Ip4.25Ge2P1Xxv710-Dot1Q-Ip4Base-Ndrpdr.64B-2t1c-dot1q-ip4base-ndrpdr"
-    - "Tests.Vpp.Perf.Ip4.25Ge2P1Xxv710-Ethip4-Ip4Base-Ndrpdr.64B-2t1c-ethip4-ip4base-ndrpdr"
-    - "Tests.Vpp.Perf.Ip4.25Ge2P1Xxv710-Ethip4-Ip4Scale20K-Ndrpdr.64B-2t1c-ethip4-ip4scale20k-ndrpdr"
-    - "Tests.Vpp.Perf.Ip4.25Ge2P1Xxv710-Ethip4-Ip4Scale200K-Ndrpdr.64B-2t1c-ethip4-ip4scale200k-ndrpdr"
-    - "Tests.Vpp.Perf.Ip4.25Ge2P1Xxv710-Ethip4-Ip4Scale2M-Ndrpdr.64B-2t1c-ethip4-ip4scale2m-ndrpdr"
-  layout:
-    title: "3n-skx-xxv710-64b-2t1c-ip4routing-base-scale-dpdk-ndr"
-    layout: "plot-throughput"
-
-- type: "plot"
-  title: "Throughput: 3n-skx-xxv710-64b-2t1c-ip4routing-base-scale-dpdk-pdr"
-  algorithm: "plot_perf_box_name"
-  output-file: "{DIR[STATIC,VPP]}/3n-skx-xxv710-64b-2t1c-ip4routing-base-scale-dpdk-pdr"
-  data: "plot-vpp-throughput-lat-tsa-3n-skx"
-  include:
-    - "Tests.Vpp.Perf.Ip4.25Ge2P1Xxv710-Dot1Q-Ip4Base-Ndrpdr.64B-2t1c-dot1q-ip4base-ndrpdr"
-    - "Tests.Vpp.Perf.Ip4.25Ge2P1Xxv710-Ethip4-Ip4Base-Ndrpdr.64B-2t1c-ethip4-ip4base-ndrpdr"
-    - "Tests.Vpp.Perf.Ip4.25Ge2P1Xxv710-Ethip4-Ip4Scale20K-Ndrpdr.64B-2t1c-ethip4-ip4scale20k-ndrpdr"
-    - "Tests.Vpp.Perf.Ip4.25Ge2P1Xxv710-Ethip4-Ip4Scale200K-Ndrpdr.64B-2t1c-ethip4-ip4scale200k-ndrpdr"
-    - "Tests.Vpp.Perf.Ip4.25Ge2P1Xxv710-Ethip4-Ip4Scale2M-Ndrpdr.64B-2t1c-ethip4-ip4scale2m-ndrpdr"
-  layout:
-    title: "3n-skx-xxv710-64b-2t1c-ip4routing-base-scale-dpdk-pdr"
-    layout: "plot-throughput"
-
-- type: "plot"
-  title: "Throughput: 3n-skx-xxv710-64b-2t1c-features-ip4routing-base-avf-ndr"
-  algorithm: "plot_perf_box_name"
-  output-file: "{DIR[STATIC,VPP]}/3n-skx-xxv710-64b-2t1c-features-ip4routing-base-avf-ndr"
-  data: "plot-vpp-throughput-lat-tsa-3n-skx"
-  include:
-    - "Tests.Vpp.Perf.Ip4.25Ge2P1Xxv710-Avf-Ethip4Udp-Ip4Base-Iacl50Sf-10Kflows-Ndrpdr.64B-2t1c-avf-ethip4udp-ip4base-iacl50sf-10kflows-ndrpdr"
-    - "Tests.Vpp.Perf.Ip4.25Ge2P1Xxv710-Avf-Ethip4Udp-Ip4Base-Iacl50Sl-10Kflows-Ndrpdr.64B-2t1c-avf-ethip4udp-ip4base-iacl50sl-10kflows-ndrpdr"
-    - "Tests.Vpp.Perf.Ip4.25Ge2P1Xxv710-Avf-Ethip4Udp-Ip4Base-Oacl50Sf-10Kflows-Ndrpdr.64B-2t1c-avf-ethip4udp-ip4base-oacl50sf-10kflows-ndrpdr"
-    - "Tests.Vpp.Perf.Ip4.25Ge2P1Xxv710-Avf-Ethip4Udp-Ip4Base-Oacl50Sl-10Kflows-Ndrpdr.64B-2t1c-avf-ethip4udp-ip4base-oacl50sl-10kflows-ndrpdr"
-  layout:
-    title: "3n-skx-xxv710-64b-2t1c-features-ip4routing-base-avf-ndr"
-    layout: "plot-throughput"
-
-- type: "plot"
-  title: "Throughput: 3n-skx-xxv710-64b-2t1c-features-ip4routing-base-avf-pdr"
-  algorithm: "plot_perf_box_name"
-  output-file: "{DIR[STATIC,VPP]}/3n-skx-xxv710-64b-2t1c-features-ip4routing-base-avf-pdr"
-  data: "plot-vpp-throughput-lat-tsa-3n-skx"
-  include:
-    - "Tests.Vpp.Perf.Ip4.25Ge2P1Xxv710-Avf-Ethip4Udp-Ip4Base-Iacl50Sf-10Kflows-Ndrpdr.64B-2t1c-avf-ethip4udp-ip4base-iacl50sf-10kflows-ndrpdr"
-    - "Tests.Vpp.Perf.Ip4.25Ge2P1Xxv710-Avf-Ethip4Udp-Ip4Base-Iacl50Sl-10Kflows-Ndrpdr.64B-2t1c-avf-ethip4udp-ip4base-iacl50sl-10kflows-ndrpdr"
-    - "Tests.Vpp.Perf.Ip4.25Ge2P1Xxv710-Avf-Ethip4Udp-Ip4Base-Oacl50Sf-10Kflows-Ndrpdr.64B-2t1c-avf-ethip4udp-ip4base-oacl50sf-10kflows-ndrpdr"
-    - "Tests.Vpp.Perf.Ip4.25Ge2P1Xxv710-Avf-Ethip4Udp-Ip4Base-Oacl50Sl-10Kflows-Ndrpdr.64B-2t1c-avf-ethip4udp-ip4base-oacl50sl-10kflows-ndrpdr"
-  layout:
-    title: "3n-skx-xxv710-64b-2t1c-features-ip4routing-base-avf-pdr"
-    layout: "plot-throughput"
-
-- type: "plot"
-  title: "Throughput: 3n-skx-xxv710-64b-2t1c-features-ip4routing-base-dpdk-ndr"
-  algorithm: "plot_perf_box_name"
-  output-file: "{DIR[STATIC,VPP]}/3n-skx-xxv710-64b-2t1c-features-ip4routing-base-dpdk-ndr"
-  data: "plot-vpp-throughput-lat-tsa-3n-skx"
-  include:
-    - "Tests.Vpp.Perf.Ip4.25Ge2P1Xxv710-Ethip4-Ip4Base-Ndrpdr.64B-2t1c-ethip4-ip4base-ndrpdr"
-    - "Tests.Vpp.Perf.Ip4.25Ge2P1Xxv710-Ethip4Udp-Ip4Base-Iacl50Sf-10Kflows-Ndrpdr.64B-2t1c-ethip4udp-ip4base-iacl50sf-10kflows-ndrpdr"
-    - "Tests.Vpp.Perf.Ip4.25Ge2P1Xxv710-Ethip4Udp-Ip4Base-Iacl50Sl-10Kflows-Ndrpdr.64B-2t1c-ethip4udp-ip4base-iacl50sl-10kflows-ndrpdr"
-    - "Tests.Vpp.Perf.Ip4.25Ge2P1Xxv710-Ethip4Udp-Ip4Base-Oacl50Sf-10Kflows-Ndrpdr.64B-2t1c-ethip4udp-ip4base-oacl50sf-10kflows-ndrpdr"
-    - "Tests.Vpp.Perf.Ip4.25Ge2P1Xxv710-Ethip4Udp-Ip4Base-Oacl50Sl-10Kflows-Ndrpdr.64B-2t1c-ethip4udp-ip4base-oacl50sl-10kflows-ndrpdr"
-  layout:
-    title: "3n-skx-xxv710-64b-2t1c-features-ip4routing-base-dpdk-ndr"
-    layout: "plot-throughput"
-
-- type: "plot"
-  title: "Throughput: 3n-skx-xxv710-64b-2t1c-features-ip4routing-base-dpdk-pdr"
-  algorithm: "plot_perf_box_name"
-  output-file: "{DIR[STATIC,VPP]}/3n-skx-xxv710-64b-2t1c-features-ip4routing-base-dpdk-pdr"
-  data: "plot-vpp-throughput-lat-tsa-3n-skx"
-  include:
-    - "Tests.Vpp.Perf.Ip4.25Ge2P1Xxv710-Ethip4-Ip4Base-Ndrpdr.64B-2t1c-ethip4-ip4base-ndrpdr"
-    - "Tests.Vpp.Perf.Ip4.25Ge2P1Xxv710-Ethip4Udp-Ip4Base-Iacl50Sf-10Kflows-Ndrpdr.64B-2t1c-ethip4udp-ip4base-iacl50sf-10kflows-ndrpdr"
-    - "Tests.Vpp.Perf.Ip4.25Ge2P1Xxv710-Ethip4Udp-Ip4Base-Iacl50Sl-10Kflows-Ndrpdr.64B-2t1c-ethip4udp-ip4base-iacl50sl-10kflows-ndrpdr"
-    - "Tests.Vpp.Perf.Ip4.25Ge2P1Xxv710-Ethip4Udp-Ip4Base-Oacl50Sf-10Kflows-Ndrpdr.64B-2t1c-ethip4udp-ip4base-oacl50sf-10kflows-ndrpdr"
-    - "Tests.Vpp.Perf.Ip4.25Ge2P1Xxv710-Ethip4Udp-Ip4Base-Oacl50Sl-10Kflows-Ndrpdr.64B-2t1c-ethip4udp-ip4base-oacl50sl-10kflows-ndrpdr"
-  layout:
-    title: "3n-skx-xxv710-64b-2t1c-features-ip4routing-base-dpdk-pdr"
-    layout: "plot-throughput"
-
-- type: "plot"
-  title: "Throughput: 3n-tsh-x520-64b-1t1c-ip4routing-base-scale-ixgbe-ndr"
-  algorithm: "plot_perf_box_name"
-  output-file: "{DIR[STATIC,VPP]}/3n-tsh-x520-64b-1t1c-ip4routing-base-scale-ixgbe-ndr"
-  data: "plot-vpp-throughput-lat-tsa-3n-tsh"
-  include:
-    - "Tests.Vpp.Perf.Ip4.10Ge2P1X520-Dot1Q-Ip4Base-Ndrpdr.64B-1t1c-dot1q-ip4base-ndrpdr"
-    - "Tests.Vpp.Perf.Ip4.10Ge2P1X520-Ethip4-Ip4Base-Ndrpdr.64B-1t1c-ethip4-ip4base-ndrpdr"
-    - "Tests.Vpp.Perf.Ip4.10Ge2P1X520-Ethip4-Ip4Scale20K-Ndrpdr.64B-1t1c-ethip4-ip4scale20k-ndrpdr"
-    - "Tests.Vpp.Perf.Ip4.10Ge2P1X520-Ethip4-Ip4Scale200K-Ndrpdr.64B-1t1c-ethip4-ip4scale200k-ndrpdr"
-    - "Tests.Vpp.Perf.Ip4.10Ge2P1X520-Ethip4-Ip4Scale2M-Ndrpdr.64B-1t1c-ethip4-ip4scale2m-ndrpdr"
-  layout:
-    title: "3n-tsh-x520-64b-1t1c-ip4routing-base-scale-ixgbe-ndr"
-    layout: "plot-throughput"
-
-- type: "plot"
-  title: "Throughput: 3n-tsh-x520-64b-1t1c-ip4routing-base-scale-ixgbe-pdr"
-  algorithm: "plot_perf_box_name"
-  output-file: "{DIR[STATIC,VPP]}/3n-tsh-x520-64b-1t1c-ip4routing-base-scale-ixgbe-pdr"
-  data: "plot-vpp-throughput-lat-tsa-3n-tsh"
-  include:
-    - "Tests.Vpp.Perf.Ip4.10Ge2P1X520-Dot1Q-Ip4Base-Ndrpdr.64B-1t1c-dot1q-ip4base-ndrpdr"
-    - "Tests.Vpp.Perf.Ip4.10Ge2P1X520-Ethip4-Ip4Base-Ndrpdr.64B-1t1c-ethip4-ip4base-ndrpdr"
-    - "Tests.Vpp.Perf.Ip4.10Ge2P1X520-Ethip4-Ip4Scale20K-Ndrpdr.64B-1t1c-ethip4-ip4scale20k-ndrpdr"
-    - "Tests.Vpp.Perf.Ip4.10Ge2P1X520-Ethip4-Ip4Scale200K-Ndrpdr.64B-1t1c-ethip4-ip4scale200k-ndrpdr"
-    - "Tests.Vpp.Perf.Ip4.10Ge2P1X520-Ethip4-Ip4Scale2M-Ndrpdr.64B-1t1c-ethip4-ip4scale2m-ndrpdr"
-  layout:
-    title: "3n-tsh-x520-64b-1t1c-ip4routing-base-scale-ixgbe-pdr"
-    layout: "plot-throughput"
-
-- type: "plot"
-  title: "Throughput: 3n-tsh-x520-64b-1t1c-features-ip4routing-base-ixgbe-ndr"
-  algorithm: "plot_perf_box_name"
-  output-file: "{DIR[STATIC,VPP]}/3n-tsh-x520-64b-1t1c-features-ip4routing-base-ixgbe-ndr"
-  data: "plot-vpp-throughput-lat-tsa-3n-tsh"
-  include:
-    - "Tests.Vpp.Perf.Ip4.10Ge2P1X520-Ethip4Udp-Ip4Base-Iacl50Sf-10Kflows-Ndrpdr.64B-1t1c-ethip4udp-ip4base-iacl50sf-10kflows-ndrpdr"
-    - "Tests.Vpp.Perf.Ip4.10Ge2P1X520-Ethip4Udp-Ip4Base-Iacl50Sl-10Kflows-Ndrpdr.64B-1t1c-ethip4udp-ip4base-iacl50sl-10kflows-ndrpdr"
-    - "Tests.Vpp.Perf.Ip4.10Ge2P1X520-Ethip4Udp-Ip4Base-Oacl50Sf-10Kflows-Ndrpdr.64B-1t1c-ethip4udp-ip4base-oacl50sf-10kflows-ndrpdr"
-    - "Tests.Vpp.Perf.Ip4.10Ge2P1X520-Ethip4Udp-Ip4Base-Oacl50Sl-10Kflows-Ndrpdr.64B-1t1c-ethip4udp-ip4base-oacl50sl-10kflows-ndrpdr"
-  layout:
-    title: "3n-tsh-x520-64b-1t1c-features-ip4routing-base-ixgbe-ndr"
-    layout: "plot-throughput"
-
-- type: "plot"
-  title: "Throughput: 3n-tsh-x520-64b-1t1c-features-ip4routing-base-ixgbe-pdr"
-  algorithm: "plot_perf_box_name"
-  output-file: "{DIR[STATIC,VPP]}/3n-tsh-x520-64b-1t1c-features-ip4routing-base-ixgbe-pdr"
-  data: "plot-vpp-throughput-lat-tsa-3n-tsh"
-  include:
-    - "Tests.Vpp.Perf.Ip4.10Ge2P1X520-Ethip4Udp-Ip4Base-Iacl50Sf-10Kflows-Ndrpdr.64B-1t1c-ethip4udp-ip4base-iacl50sf-10kflows-ndrpdr"
-    - "Tests.Vpp.Perf.Ip4.10Ge2P1X520-Ethip4Udp-Ip4Base-Iacl50Sl-10Kflows-Ndrpdr.64B-1t1c-ethip4udp-ip4base-iacl50sl-10kflows-ndrpdr"
-    - "Tests.Vpp.Perf.Ip4.10Ge2P1X520-Ethip4Udp-Ip4Base-Oacl50Sf-10Kflows-Ndrpdr.64B-1t1c-ethip4udp-ip4base-oacl50sf-10kflows-ndrpdr"
-    - "Tests.Vpp.Perf.Ip4.10Ge2P1X520-Ethip4Udp-Ip4Base-Oacl50Sl-10Kflows-Ndrpdr.64B-1t1c-ethip4udp-ip4base-oacl50sl-10kflows-ndrpdr"
-  layout:
-    title: "3n-tsh-x520-64b-1t1c-features-ip4routing-base-ixgbe-pdr"
-    layout: "plot-throughput"
-
-- type: "plot"
-  title: "Throughput: 2n-dnv-x553-64b-1t1c-ip4routing-base-scale-ixgbe-ndr"
-  algorithm: "plot_perf_box_name"
-  output-file: "{DIR[STATIC,VPP]}/2n-dnv-x553-64b-1t1c-ip4routing-base-scale-ixgbe-ndr"
-  data: "plot-vpp-throughput-lat-tsa-2n-dnv"
-  include:
-    - "Tests.Vpp.Perf.Ip4.2N1L-10Ge2P1X553-Dot1Q-Ip4Base-Ndrpdr.64B-1t1c-dot1q-ip4base-ndrpdr"
-    - "Tests.Vpp.Perf.Ip4.2N1L-10Ge2P1X553-Ethip4-Ip4Base-Ndrpdr.64B-1t1c-ethip4-ip4base-ndrpdr"
-    - "Tests.Vpp.Perf.Ip4.2N1L-10Ge2P1X553-Ethip4-Ip4Scale20K-Ndrpdr.64B-1t1c-ethip4-ip4scale20k-ndrpdr"
-    - "Tests.Vpp.Perf.Ip4.2N1L-10Ge2P1X553-Ethip4-Ip4Scale200K-Ndrpdr.64B-1t1c-ethip4-ip4scale200k-ndrpdr"
-    - "Tests.Vpp.Perf.Ip4.2N1L-10Ge2P1X553-Ethip4-Ip4Scale2M-Ndrpdr.64B-1t1c-ethip4-ip4scale2m-ndrpdr"
-    - "Tests.Vpp.Perf.Ip4.2N1L-10Ge2P1X553-Ethip4-Ip4Scale20K-rnd-Ndrpdr.64B-1t1c-ethip4-ip4scale20k-rnd-ndrpdr"
-  layout:
-    title: "2n-dnv-x553-64b-1t1c-ip4routing-base-scale-ixgbe-ndr"
-    layout: "plot-throughput"
-
-- type: "plot"
-  title: "Throughput: 2n-dnv-x553-64b-1t1c-ip4routing-base-scale-ixgbe-pdr"
-  algorithm: "plot_perf_box_name"
-  output-file: "{DIR[STATIC,VPP]}/2n-dnv-x553-64b-1t1c-ip4routing-base-scale-ixgbe-pdr"
-  data: "plot-vpp-throughput-lat-tsa-2n-dnv"
-  include:
-    - "Tests.Vpp.Perf.Ip4.2N1L-10Ge2P1X553-Dot1Q-Ip4Base-Ndrpdr.64B-1t1c-dot1q-ip4base-ndrpdr"
-    - "Tests.Vpp.Perf.Ip4.2N1L-10Ge2P1X553-Ethip4-Ip4Base-Ndrpdr.64B-1t1c-ethip4-ip4base-ndrpdr"
-    - "Tests.Vpp.Perf.Ip4.2N1L-10Ge2P1X553-Ethip4-Ip4Scale20K-Ndrpdr.64B-1t1c-ethip4-ip4scale20k-ndrpdr"
-    - "Tests.Vpp.Perf.Ip4.2N1L-10Ge2P1X553-Ethip4-Ip4Scale200K-Ndrpdr.64B-1t1c-ethip4-ip4scale200k-ndrpdr"
-    - "Tests.Vpp.Perf.Ip4.2N1L-10Ge2P1X553-Ethip4-Ip4Scale2M-Ndrpdr.64B-1t1c-ethip4-ip4scale2m-ndrpdr"
-    - "Tests.Vpp.Perf.Ip4.2N1L-10Ge2P1X553-Ethip4-Ip4Scale20K-rnd-Ndrpdr.64B-1t1c-ethip4-ip4scale20k-rnd-ndrpdr"
-  layout:
-    title: "2n-dnv-x553-64b-1t1c-ip4routing-base-scale-ixgbe-pdr"
-    layout: "plot-throughput"
-
-- type: "plot"
-  title: "Throughput: 2n-dnv-x553-64b-1t1c-features-ip4routing-base-ixgbe-ndr"
-  algorithm: "plot_perf_box_name"
-  output-file: "{DIR[STATIC,VPP]}/2n-dnv-x553-64b-1t1c-features-ip4routing-base-ixgbe-ndr"
-  data: "plot-vpp-throughput-lat-tsa-2n-dnv"
-  include:
-    - "Tests.Vpp.Perf.Ip4.2N1L-10Ge2P1X553-Ethip4-Ip4Base-Ndrpdr.64B-1t1c-ethip4-ip4base-ndrpdr"
-    - "Tests.Vpp.Perf.Ip4.2N1L-10Ge2P1X553-Ethip4Udp-Ip4Base-Iacl50Sf-10Kflows-Ndrpdr.64B-1t1c-ethip4udp-ip4base-iacl50sf-10kflows-ndrpdr"
-    - "Tests.Vpp.Perf.Ip4.2N1L-10Ge2P1X553-Ethip4Udp-Ip4Base-Iacl50Sl-10Kflows-Ndrpdr.64B-1t1c-ethip4udp-ip4base-iacl50sl-10kflows-ndrpdr"
-    - "Tests.Vpp.Perf.Ip4.2N1L-10Ge2P1X553-Ethip4Udp-Ip4Base-Oacl50Sf-10Kflows-Ndrpdr.64B-1t1c-ethip4udp-ip4base-oacl50sf-10kflows-ndrpdr"
-    - "Tests.Vpp.Perf.Ip4.2N1L-10Ge2P1X553-Ethip4Udp-Ip4Base-Oacl50Sl-10Kflows-Ndrpdr.64B-1t1c-ethip4udp-ip4base-oacl50sl-10kflows-ndrpdr"
-    - "Tests.Vpp.Perf.Ip4.2N1L-10Ge2P1X553-ethip4udp-nat44det-h1-p1-s1-Ndrpdr.64B-1t1c-ethip4udp-nat44det-h1-p1-s1-ndrpdr"
-  layout:
-    title: "2n-dnv-x553-64b-1t1c-features-ip4routing-base-ixgbe-ndr"
-    layout: "plot-throughput"
-
-- type: "plot"
-  title: "Throughput: 2n-dnv-x553-64b-1t1c-features-ip4routing-base-ixgbe-pdr"
-  algorithm: "plot_perf_box_name"
-  output-file: "{DIR[STATIC,VPP]}/2n-dnv-x553-64b-1t1c-features-ip4routing-base-ixgbe-pdr"
-  data: "plot-vpp-throughput-lat-tsa-2n-dnv"
-  include:
-    - "Tests.Vpp.Perf.Ip4.2N1L-10Ge2P1X553-Ethip4-Ip4Base-Ndrpdr.64B-1t1c-ethip4-ip4base-ndrpdr"
-    - "Tests.Vpp.Perf.Ip4.2N1L-10Ge2P1X553-Ethip4Udp-Ip4Base-Iacl50Sf-10Kflows-Ndrpdr.64B-1t1c-ethip4udp-ip4base-iacl50sf-10kflows-ndrpdr"
-    - "Tests.Vpp.Perf.Ip4.2N1L-10Ge2P1X553-Ethip4Udp-Ip4Base-Iacl50Sl-10Kflows-Ndrpdr.64B-1t1c-ethip4udp-ip4base-iacl50sl-10kflows-ndrpdr"
-    - "Tests.Vpp.Perf.Ip4.2N1L-10Ge2P1X553-Ethip4Udp-Ip4Base-Oacl50Sf-10Kflows-Ndrpdr.64B-1t1c-ethip4udp-ip4base-oacl50sf-10kflows-ndrpdr"
-    - "Tests.Vpp.Perf.Ip4.2N1L-10Ge2P1X553-Ethip4Udp-Ip4Base-Oacl50Sl-10Kflows-Ndrpdr.64B-1t1c-ethip4udp-ip4base-oacl50sl-10kflows-ndrpdr"
-    - "Tests.Vpp.Perf.Ip4.2N1L-10Ge2P1X553-ethip4udp-nat44det-h1-p1-s1-Ndrpdr.64B-1t1c-ethip4udp-nat44det-h1-p1-s1-ndrpdr"
-  layout:
-    title: "2n-dnv-x553-64b-1t1c-features-ip4routing-base-ixgbe-pdr"
-    layout: "plot-throughput"
-
-- type: "plot"
-  title: "Throughput: 3n-dnv-x553-64b-1t1c-ip4routing-base-scale-ixgbe-ndr"
-  algorithm: "plot_perf_box_name"
-  output-file: "{DIR[STATIC,VPP]}/3n-dnv-x553-64b-1t1c-ip4routing-base-scale-ixgbe-ndr"
-  data: "plot-vpp-throughput-lat-tsa-3n-dnv"
-  include:
-    - "Tests.Vpp.Perf.Ip4.10Ge2P1X553-Dot1Q-Ip4Base-Ndrpdr.64B-1t1c-dot1q-ip4base-ndrpdr"
-    - "Tests.Vpp.Perf.Ip4.10Ge2P1X553-Ethip4-Ip4Base-Ndrpdr.64B-1t1c-ethip4-ip4base-ndrpdr"
-    - "Tests.Vpp.Perf.Ip4.10Ge2P1X553-Ethip4-Ip4Scale20K-Ndrpdr.64B-1t1c-ethip4-ip4scale20k-ndrpdr"
-    - "Tests.Vpp.Perf.Ip4.10Ge2P1X553-Ethip4-Ip4Scale200K-Ndrpdr.64B-1t1c-ethip4-ip4scale200k-ndrpdr"
-    - "Tests.Vpp.Perf.Ip4.10Ge2P1X553-Ethip4-Ip4Scale2M-Ndrpdr.64B-1t1c-ethip4-ip4scale2m-ndrpdr"
-    - "Tests.Vpp.Perf.Ip4.10Ge2P1X553-Ethip4-Ip4Scale20K-rnd-Ndrpdr.64B-1t1c-ethip4-ip4scale20k-rnd-ndrpdr"
-  layout:
-    title: "3n-dnv-x553-64b-1t1c-ip4routing-base-scale-ixgbe-ndr"
-    layout: "plot-throughput"
-
-- type: "plot"
-  title: "Throughput: 3n-dnv-x553-64b-1t1c-ip4routing-base-scale-ixgbe-pdr"
-  algorithm: "plot_perf_box_name"
-  output-file: "{DIR[STATIC,VPP]}/3n-dnv-x553-64b-1t1c-ip4routing-base-scale-ixgbe-pdr"
-  data: "plot-vpp-throughput-lat-tsa-3n-dnv"
-  include:
-    - "Tests.Vpp.Perf.Ip4.10Ge2P1X553-Dot1Q-Ip4Base-Ndrpdr.64B-1t1c-dot1q-ip4base-ndrpdr"
-    - "Tests.Vpp.Perf.Ip4.10Ge2P1X553-Ethip4-Ip4Base-Ndrpdr.64B-1t1c-ethip4-ip4base-ndrpdr"
-    - "Tests.Vpp.Perf.Ip4.10Ge2P1X553-Ethip4-Ip4Scale20K-Ndrpdr.64B-1t1c-ethip4-ip4scale20k-ndrpdr"
-    - "Tests.Vpp.Perf.Ip4.10Ge2P1X553-Ethip4-Ip4Scale200K-Ndrpdr.64B-1t1c-ethip4-ip4scale200k-ndrpdr"
-    - "Tests.Vpp.Perf.Ip4.10Ge2P1X553-Ethip4-Ip4Scale2M-Ndrpdr.64B-1t1c-ethip4-ip4scale2m-ndrpdr"
-    - "Tests.Vpp.Perf.Ip4.10Ge2P1X553-Ethip4-Ip4Scale20K-rnd-Ndrpdr.64B-1t1c-ethip4-ip4scale20k-rnd-ndrpdr"
-  layout:
-    title: "3n-dnv-x553-64b-1t1c-ip4routing-base-scale-ixgbe-pdr"
-    layout: "plot-throughput"
-
-- type: "plot"
-  title: "Throughput: 3n-dnv-x553-64b-1t1c-features-ip4routing-base-ixgbe-ndr"
-  algorithm: "plot_perf_box_name"
-  output-file: "{DIR[STATIC,VPP]}/3n-dnv-x553-64b-1t1c-features-ip4routing-base-ixgbe-ndr"
-  data: "plot-vpp-throughput-lat-tsa-3n-dnv"
-  include:
-    - "Tests.Vpp.Perf.Ip4.10Ge2P1X553-Ethip4-Ip4Base-Ndrpdr.64B-1t1c-ethip4-ip4base-ndrpdr"
-    - "Tests.Vpp.Perf.Ip4.10Ge2P1X553-Ethip4Udp-Ip4Base-Iacl50Sf-10Kflows-Ndrpdr.64B-1t1c-ethip4udp-ip4base-iacl50sf-10kflows-ndrpdr"
-    - "Tests.Vpp.Perf.Ip4.10Ge2P1X553-Ethip4Udp-Ip4Base-Iacl50Sl-10Kflows-Ndrpdr.64B-1t1c-ethip4udp-ip4base-iacl50sl-10kflows-ndrpdr"
-    - "Tests.Vpp.Perf.Ip4.10Ge2P1X553-Ethip4Udp-Ip4Base-Oacl50Sf-10Kflows-Ndrpdr.64B-1t1c-ethip4udp-ip4base-oacl50sf-10kflows-ndrpdr"
-    - "Tests.Vpp.Perf.Ip4.10Ge2P1X553-Ethip4Udp-Ip4Base-Oacl50Sl-10Kflows-Ndrpdr.64B-1t1c-ethip4udp-ip4base-oacl50sl-10kflows-ndrpdr"
-  layout:
-    title: "3n-dnv-x553-64b-1t1c-features-ip4routing-base-ixgbe-ndr"
-    layout: "plot-throughput"
-
-- type: "plot"
-  title: "Throughput: 3n-dnv-x553-64b-1t1c-features-ip4routing-base-ixgbe-pdr"
-  algorithm: "plot_perf_box_name"
-  output-file: "{DIR[STATIC,VPP]}/3n-dnv-x553-64b-1t1c-features-ip4routing-base-ixgbe-pdr"
-  data: "plot-vpp-throughput-lat-tsa-3n-dnv"
-  include:
-    - "Tests.Vpp.Perf.Ip4.10Ge2P1X553-Ethip4-Ip4Base-Ndrpdr.64B-1t1c-ethip4-ip4base-ndrpdr"
-    - "Tests.Vpp.Perf.Ip4.10Ge2P1X553-Ethip4Udp-Ip4Base-Iacl50Sf-10Kflows-Ndrpdr.64B-1t1c-ethip4udp-ip4base-iacl50sf-10kflows-ndrpdr"
-    - "Tests.Vpp.Perf.Ip4.10Ge2P1X553-Ethip4Udp-Ip4Base-Iacl50Sl-10Kflows-Ndrpdr.64B-1t1c-ethip4udp-ip4base-iacl50sl-10kflows-ndrpdr"
-    - "Tests.Vpp.Perf.Ip4.10Ge2P1X553-Ethip4Udp-Ip4Base-Oacl50Sf-10Kflows-Ndrpdr.64B-1t1c-ethip4udp-ip4base-oacl50sf-10kflows-ndrpdr"
-    - "Tests.Vpp.Perf.Ip4.10Ge2P1X553-Ethip4Udp-Ip4Base-Oacl50Sl-10Kflows-Ndrpdr.64B-1t1c-ethip4udp-ip4base-oacl50sl-10kflows-ndrpdr"
-  layout:
-    title: "3n-dnv-x553-64b-1t1c-features-ip4routing-base-ixgbe-pdr"
-    layout: "plot-throughput"
-
-- type: "plot"
-  title: "Throughput: 3n-hsw-xl710-64b-1t1c-ip4tunnel-base-dpdk-ndr"
-  algorithm: "plot_perf_box_name"
-  output-file: "{DIR[STATIC,VPP]}/3n-hsw-xl710-64b-1t1c-ip4tunnel-base-dpdk-ndr"
-  data: "plot-vpp-throughput-lat-tsa-3n-hsw"
-  include:
-    - "Tests.Vpp.Perf.Ip4 Tunnels.40Ge2P1Xl710-Ethip4Vxlan-L2Xcbase-Ndrpdr.64B-1t1c-ethip4vxlan-l2xcbase-ndrpdr"
-    - "Tests.Vpp.Perf.Ip4 Tunnels.40Ge2P1Xl710-Ethip4Vxlan-L2Bdbasemaclrn-Ndrpdr.64B-1t1c-ethip4vxlan-l2bdbasemaclrn-ndrpdr"
-  layout:
-    title: "3n-hsw-xl710-64b-1t1c-ip4tunnel-base-dpdk-ndr"
-    layout: "plot-throughput"
-
-- type: "plot"
-  title: "Throughput: 3n-hsw-xl710-64b-1t1c-ip4tunnel-base-dpdk-pdr"
-  algorithm: "plot_perf_box_name"
-  output-file: "{DIR[STATIC,VPP]}/3n-hsw-xl710-64b-1t1c-ip4tunnel-base-dpdk-pdr"
-  data: "plot-vpp-throughput-lat-tsa-3n-hsw"
-  include:
-    - "Tests.Vpp.Perf.Ip4 Tunnels.40Ge2P1Xl710-Ethip4Vxlan-L2Xcbase-Ndrpdr.64B-1t1c-ethip4vxlan-l2xcbase-ndrpdr"
-    - "Tests.Vpp.Perf.Ip4 Tunnels.40Ge2P1Xl710-Ethip4Vxlan-L2Bdbasemaclrn-Ndrpdr.64B-1t1c-ethip4vxlan-l2bdbasemaclrn-ndrpdr"
-  layout:
-    title: "3n-hsw-xl710-64b-1t1c-ip4tunnel-base-dpdk-pdr"
-    layout: "plot-throughput"
-
-- type: "plot"
-  title: "Throughput: 3n-skx-xxv710-64b-2t1c-ip4tunnel-base-scale-avf-ndr"
-  algorithm: "plot_perf_box_name"
-  output-file: "{DIR[STATIC,VPP]}/3n-skx-xxv710-64b-2t1c-ip4tunnel-base-scale-avf-ndr"
-  data: "plot-vpp-throughput-lat-tsa-3n-skx"
-  include:
-    - "Tests.Vpp.Perf.Ip4 Tunnels.25Ge2P1Xxv710-Avf-Ethip4Vxlan-L2Xcbase-Ndrpdr.64B-2t1c-avf-ethip4vxlan-l2xcbase-ndrpdr"
-    - "Tests.Vpp.Perf.Ip4 Tunnels.25Ge2P1Xxv710-Avf-Ethip4Vxlan-L2Bdbasemaclrn-Ndrpdr.64B-2t1c-avf-ethip4vxlan-l2bdbasemaclrn-ndrpdr"
-    - "Tests.Vpp.Perf.Ip4 Tunnels.25Ge2P1Xxv710-Avf-Dot1Q--Ethip4Vxlan-L2Bdscale1L2Bd1Vlan1Vxlan-Ndrpdr.64B-2t1c-avf-dot1q--ethip4vxlan-l2bdscale1l2bd1vlan1vxlan-ndrpdr"
-    - "Tests.Vpp.Perf.Ip4 Tunnels.25Ge2P1Xxv710-Avf-Dot1Q--Ethip4Vxlan-L2Bdscale100L2Bd100Vlan100Vxlan-Ndrpdr.64B-2t1c-avf-dot1q--ethip4vxlan-l2bdscale100l2bd100vlan100vxlan-ndrpdr"
-  layout:
-    title: "3n-skx-xxv710-64b-2t1c-ip4tunnel-base-scale-avf-ndr"
-    layout: "plot-throughput"
-
-- type: "plot"
-  title: "Throughput: 3n-skx-xxv710-64b-2t1c-ip4tunnel-base-scale-avf-pdr"
-  algorithm: "plot_perf_box_name"
-  output-file: "{DIR[STATIC,VPP]}/3n-skx-xxv710-64b-2t1c-ip4tunnel-base-scale-avf-pdr"
-  data: "plot-vpp-throughput-lat-tsa-3n-skx"
-  include:
-    - "Tests.Vpp.Perf.Ip4 Tunnels.25Ge2P1Xxv710-Avf-Ethip4Vxlan-L2Xcbase-Ndrpdr.64B-2t1c-avf-ethip4vxlan-l2xcbase-ndrpdr"
-    - "Tests.Vpp.Perf.Ip4 Tunnels.25Ge2P1Xxv710-Avf-Ethip4Vxlan-L2Bdbasemaclrn-Ndrpdr.64B-2t1c-avf-ethip4vxlan-l2bdbasemaclrn-ndrpdr"
-    - "Tests.Vpp.Perf.Ip4 Tunnels.25Ge2P1Xxv710-Avf-Dot1Q--Ethip4Vxlan-L2Bdscale1L2Bd1Vlan1Vxlan-Ndrpdr.64B-2t1c-avf-dot1q--ethip4vxlan-l2bdscale1l2bd1vlan1vxlan-ndrpdr"
-    - "Tests.Vpp.Perf.Ip4 Tunnels.25Ge2P1Xxv710-Avf-Dot1Q--Ethip4Vxlan-L2Bdscale100L2Bd100Vlan100Vxlan-Ndrpdr.64B-2t1c-avf-dot1q--ethip4vxlan-l2bdscale100l2bd100vlan100vxlan-ndrpdr"
-  layout:
-    title: "3n-skx-xxv710-64b-2t1c-ip4tunnel-base-scale-avf-pdr"
-    layout: "plot-throughput"
-
-- type: "plot"
-  title: "Throughput: 3n-skx-xxv710-64b-2t1c-ip4tunnel-base-scale-dpdk-ndr"
-  algorithm: "plot_perf_box_name"
-  output-file: "{DIR[STATIC,VPP]}/3n-skx-xxv710-64b-2t1c-ip4tunnel-base-scale-dpdk-ndr"
-  data: "plot-vpp-throughput-lat-tsa-3n-skx"
-  include:
-    - "Tests.Vpp.Perf.Ip4 Tunnels.25Ge2P1Xxv710-Ethip4Vxlan-L2Xcbase-Ndrpdr.64B-2t1c-ethip4vxlan-l2xcbase-ndrpdr"
-    - "Tests.Vpp.Perf.Ip4 Tunnels.25Ge2P1Xxv710-Ethip4Vxlan-L2Bdbasemaclrn-Ndrpdr.64B-2t1c-ethip4vxlan-l2bdbasemaclrn-ndrpdr"
-    - "Tests.Vpp.Perf.Ip4 Tunnels.25Ge2P1Xxv710-Dot1Q--Ethip4Vxlan-L2Bdscale1L2Bd1Vlan1Vxlan-Ndrpdr.64B-2t1c-dot1q--ethip4vxlan-l2bdscale1l2bd1vlan1vxlan-ndrpdr"
-    - "Tests.Vpp.Perf.Ip4 Tunnels.25Ge2P1Xxv710-Dot1Q--Ethip4Vxlan-L2Bdscale100L2Bd100Vlan100Vxlan-Ndrpdr.64B-2t1c-dot1q--ethip4vxlan-l2bdscale100l2bd100vlan100vxlan-ndrpdr"
-  layout:
-    title: "3n-skx-xxv710-64b-2t1c-ip4tunnel-base-scale-dpdk-ndr"
-    layout: "plot-throughput"
-
-- type: "plot"
-  title: "Throughput: 3n-skx-xxv710-64b-2t1c-ip4tunnel-base-scale-dpdk-pdr"
-  algorithm: "plot_perf_box_name"
-  output-file: "{DIR[STATIC,VPP]}/3n-skx-xxv710-64b-2t1c-ip4tunnel-base-scale-dpdk-pdr"
-  data: "plot-vpp-throughput-lat-tsa-3n-skx"
-  include:
-    - "Tests.Vpp.Perf.Ip4 Tunnels.25Ge2P1Xxv710-Ethip4Vxlan-L2Xcbase-Ndrpdr.64B-2t1c-ethip4vxlan-l2xcbase-ndrpdr"
-    - "Tests.Vpp.Perf.Ip4 Tunnels.25Ge2P1Xxv710-Ethip4Vxlan-L2Bdbasemaclrn-Ndrpdr.64B-2t1c-ethip4vxlan-l2bdbasemaclrn-ndrpdr"
-    - "Tests.Vpp.Perf.Ip4 Tunnels.25Ge2P1Xxv710-Dot1Q--Ethip4Vxlan-L2Bdscale1L2Bd1Vlan1Vxlan-Ndrpdr.64B-2t1c-dot1q--ethip4vxlan-l2bdscale1l2bd1vlan1vxlan-ndrpdr"
-    - "Tests.Vpp.Perf.Ip4 Tunnels.25Ge2P1Xxv710-Dot1Q--Ethip4Vxlan-L2Bdscale100L2Bd100Vlan100Vxlan-Ndrpdr.64B-2t1c-dot1q--ethip4vxlan-l2bdscale100l2bd100vlan100vxlan-ndrpdr"
-  layout:
-    title: "3n-skx-xxv710-64b-2t1c-ip4tunnel-base-scale-dpdk-pdr"
-    layout: "plot-throughput"
-
-- type: "plot"
-  title: "Throughput: 3n-tsh-x520-64b-1t1c-ip4tunnel-base-scale-ixgbe-ndr"
-  algorithm: "plot_perf_box_name"
-  output-file: "{DIR[STATIC,VPP]}/3n-tsh-x520-64b-1t1c-ip4tunnel-base-scale-ixgbe-ndr"
-  data: "plot-vpp-throughput-lat-tsa-3n-tsh"
-  include:
-    - "Tests.Vpp.Perf.Ip4 Tunnels.10Ge2P1X520-Ethip4Vxlan-L2Xcbase-Ndrpdr.64B-1t1c-ethip4vxlan-l2xcbase-ndrpdr"
-    - "Tests.Vpp.Perf.Ip4 Tunnels.10Ge2P1X520-Ethip4Vxlan-L2Bdbasemaclrn-Ndrpdr.64B-1t1c-ethip4vxlan-l2bdbasemaclrn-ndrpdr"
-    - "Tests.Vpp.Perf.Ip4 Tunnels.10Ge2P1X520-Dot1Q--Ethip4Vxlan-L2Bdscale1L2Bd1Vlan1Vxlan-Ndrpdr.64B-1t1c-dot1q--ethip4vxlan-l2bdscale1l2bd1vlan1vxlan-ndrpdr"
-    - "Tests.Vpp.Perf.Ip4 Tunnels.10Ge2P1X520-Dot1Q--Ethip4Vxlan-L2Bdscale100L2Bd100Vlan100Vxlan-Ndrpdr.64B-1t1c-dot1q--ethip4vxlan-l2bdscale100l2bd100vlan100vxlan-ndrpdr"
-  layout:
-    title: "3n-tsh-x520-64b-1t1c-ip4tunnel-base-scale-ixgbe-ndr"
-    layout: "plot-throughput"
-
-- type: "plot"
-  title: "Throughput: 3n-tsh-x520-64b-1t1c-ip4tunnel-base-scale-ixgbe-pdr"
-  algorithm: "plot_perf_box_name"
-  output-file: "{DIR[STATIC,VPP]}/3n-tsh-x520-64b-1t1c-ip4tunnel-base-scale-ixgbe-pdr"
-  data: "plot-vpp-throughput-lat-tsa-3n-tsh"
-  include:
-    - "Tests.Vpp.Perf.Ip4 Tunnels.10Ge2P1X520-Ethip4Vxlan-L2Xcbase-Ndrpdr.64B-1t1c-ethip4vxlan-l2xcbase-ndrpdr"
-    - "Tests.Vpp.Perf.Ip4 Tunnels.10Ge2P1X520-Ethip4Vxlan-L2Bdbasemaclrn-Ndrpdr.64B-1t1c-ethip4vxlan-l2bdbasemaclrn-ndrpdr"
-    - "Tests.Vpp.Perf.Ip4 Tunnels.10Ge2P1X520-Dot1Q--Ethip4Vxlan-L2Bdscale1L2Bd1Vlan1Vxlan-Ndrpdr.64B-1t1c-dot1q--ethip4vxlan-l2bdscale1l2bd1vlan1vxlan-ndrpdr"
-    - "Tests.Vpp.Perf.Ip4 Tunnels.10Ge2P1X520-Dot1Q--Ethip4Vxlan-L2Bdscale100L2Bd100Vlan100Vxlan-Ndrpdr.64B-1t1c-dot1q--ethip4vxlan-l2bdscale100l2bd100vlan100vxlan-ndrpdr"
-  layout:
-    title: "3n-tsh-x520-64b-1t1c-ip4tunnel-base-scale-ixgbe-pdr"
-    layout: "plot-throughput"
-
-- type: "plot"
-  title: "Throughput: 3n-dnv-x553-64b-1t1c-ip4tunnel-base-scale-ixgbe-ndr"
-  algorithm: "plot_perf_box_name"
-  output-file: "{DIR[STATIC,VPP]}/3n-dnv-x553-64b-1t1c-ip4tunnel-base-scale-ixgbe-ndr"
-  data: "plot-vpp-throughput-lat-tsa-3n-dnv"
-  include:
-    - "Tests.Vpp.Perf.Ip4 Tunnels.10Ge2P1X553-Ethip4Vxlan-L2Xcbase-Ndrpdr.64B-1t1c-ethip4vxlan-l2xcbase-ndrpdr"
-    - "Tests.Vpp.Perf.Ip4 Tunnels.10Ge2P1X553-Ethip4Vxlan-L2Bdbasemaclrn-Ndrpdr.64B-1t1c-ethip4vxlan-l2bdbasemaclrn-ndrpdr"
-    - "Tests.Vpp.Perf.Ip4 Tunnels.10Ge2P1X553-Dot1Q--Ethip4Vxlan-L2Bdscale1L2Bd1Vlan1Vxlan-Ndrpdr.64B-1t1c-dot1q--ethip4vxlan-l2bdscale1l2bd1vlan1vxlan-ndrpdr"
-    - "Tests.Vpp.Perf.Ip4 Tunnels.10Ge2P1X553-Dot1Q--Ethip4Vxlan-L2Bdscale100L2Bd100Vlan100Vxlan-Ndrpdr.64B-1t1c-dot1q--ethip4vxlan-l2bdscale100l2bd100vlan100vxlan-ndrpdr"
-  layout:
-    title: "3n-dnv-x553-64b-1t1c-ip4tunnel-base-scale-ixgbe-ndr"
-    layout: "plot-throughput"
-
-- type: "plot"
-  title: "Throughput: 3n-dnv-x553-64b-1t1c-ip4tunnel-base-scale-ixgbe-pdr"
-  algorithm: "plot_perf_box_name"
-  output-file: "{DIR[STATIC,VPP]}/3n-dnv-x553-64b-1t1c-ip4tunnel-base-scale-ixgbe-pdr"
-  data: "plot-vpp-throughput-lat-tsa-3n-dnv"
-  include:
-    - "Tests.Vpp.Perf.Ip4 Tunnels.10Ge2P1X553-Ethip4Vxlan-L2Xcbase-Ndrpdr.64B-1t1c-ethip4vxlan-l2xcbase-ndrpdr"
-    - "Tests.Vpp.Perf.Ip4 Tunnels.10Ge2P1X553-Ethip4Vxlan-L2Bdbasemaclrn-Ndrpdr.64B-1t1c-ethip4vxlan-l2bdbasemaclrn-ndrpdr"
-    - "Tests.Vpp.Perf.Ip4 Tunnels.10Ge2P1X553-Dot1Q--Ethip4Vxlan-L2Bdscale1L2Bd1Vlan1Vxlan-Ndrpdr.64B-1t1c-dot1q--ethip4vxlan-l2bdscale1l2bd1vlan1vxlan-ndrpdr"
-    - "Tests.Vpp.Perf.Ip4 Tunnels.10Ge2P1X553-Dot1Q--Ethip4Vxlan-L2Bdscale100L2Bd100Vlan100Vxlan-Ndrpdr.64B-1t1c-dot1q--ethip4vxlan-l2bdscale100l2bd100vlan100vxlan-ndrpdr"
-  layout:
-    title: "3n-dnv-x553-64b-1t1c-ip4tunnel-base-scale-ixgbe-pdr"
-    layout: "plot-throughput"
-
-- type: "plot"
-  title: "Throughput: 2n-skx-x710-78b-2t1c-ip6routing-base-scale-[avf,dpdk]-ndr"
-  algorithm: "plot_perf_box_name"
-  output-file: "{DIR[STATIC,VPP]}/2n-skx-x710-78b-2t1c-ip6routing-base-scale-[avf,dpdk]-ndr"
-  data: "plot-vpp-throughput-lat-tsa-2n-skx"
-  include:
-    - "Tests.Vpp.Perf.Ip6.2N1L-10Ge2P1X710-Avf-Dot1Q-Ip6Base-Ndrpdr.78B-2t1c-avf-dot1q-ip6base-ndrpdr"
-    - "Tests.Vpp.Perf.Ip6.2N1L-10Ge2P1X710-Avf-Ethip6-Ip6Base-Ndrpdr.78B-2t1c-avf-ethip6-ip6base-ndrpdr"
-    - "Tests.Vpp.Perf.Ip6.2N1L-10Ge2P1X710-Avf-Ethip6-Ip6Scale2M-Ndrpdr.78B-2t1c-avf-ethip6-ip6scale2m-ndrpdr"
-    - "Tests.Vpp.Perf.Ip6.2N1L-10Ge2P1X710-Avf-Ethip6-Ip6Scale2M-rnd-Ndrpdr.78B-2t1c-avf-ethip6-ip6scale2m-rnd-ndrpdr"
-    - "Tests.Vpp.Perf.Ip6.2N1L-10Ge2P1X710-Dot1Q-Ip6Base-Ndrpdr.78B-2t1c-dot1q-ip6base-ndrpdr"
-    - "Tests.Vpp.Perf.Ip6.2N1L-10Ge2P1X710-Ethip6-Ip6Base-Ndrpdr.78B-2t1c-ethip6-ip6base-ndrpdr"
-    - "Tests.Vpp.Perf.Ip6.2N1L-10Ge2P1X710-Ethip6-Ip6Scale2M-Ndrpdr.78B-2t1c-ethip6-ip6scale2m-ndrpdr"
-  layout:
-    title: "2n-skx-x710-78b-2t1c-ip6routing-base-scale-[avf,dpdk]-ndr"
-    layout: "plot-throughput"
-
-- type: "plot"
-  title: "Throughput: 2n-skx-x710-78b-2t1c-ip6routing-base-scale-[avf,dpdk]-pdr"
-  algorithm: "plot_perf_box_name"
-  output-file: "{DIR[STATIC,VPP]}/2n-skx-x710-78b-2t1c-ip6routing-base-scale-[avf,dpdk]-pdr"
-  data: "plot-vpp-throughput-lat-tsa-2n-skx"
-  include:
-    - "Tests.Vpp.Perf.Ip6.2N1L-10Ge2P1X710-Avf-Dot1Q-Ip6Base-Ndrpdr.78B-2t1c-avf-dot1q-ip6base-ndrpdr"
-    - "Tests.Vpp.Perf.Ip6.2N1L-10Ge2P1X710-Avf-Ethip6-Ip6Base-Ndrpdr.78B-2t1c-avf-ethip6-ip6base-ndrpdr"
-    - "Tests.Vpp.Perf.Ip6.2N1L-10Ge2P1X710-Avf-Ethip6-Ip6Scale2M-Ndrpdr.78B-2t1c-avf-ethip6-ip6scale2m-ndrpdr"
-    - "Tests.Vpp.Perf.Ip6.2N1L-10Ge2P1X710-Avf-Ethip6-Ip6Scale2M-rnd-Ndrpdr.78B-2t1c-avf-ethip6-ip6scale2m-rnd-ndrpdr"
-    - "Tests.Vpp.Perf.Ip6.2N1L-10Ge2P1X710-Dot1Q-Ip6Base-Ndrpdr.78B-2t1c-dot1q-ip6base-ndrpdr"
-    - "Tests.Vpp.Perf.Ip6.2N1L-10Ge2P1X710-Ethip6-Ip6Base-Ndrpdr.78B-2t1c-ethip6-ip6base-ndrpdr"
-    - "Tests.Vpp.Perf.Ip6.2N1L-10Ge2P1X710-Ethip6-Ip6Scale2M-Ndrpdr.78B-2t1c-ethip6-ip6scale2m-ndrpdr"
-  layout:
-    title: "2n-skx-x710-78b-2t1c-ip6routing-base-scale-[avf,dpdk]-pdr"
-    layout: "plot-throughput"
-
-- type: "plot"
-  title: "Throughput: 2n-skx-xxv710-78b-2t1c-ip6routing-base-scale-dpdk-ndr"
-  algorithm: "plot_perf_box_name"
-  output-file: "{DIR[STATIC,VPP]}/2n-skx-xxv710-78b-2t1c-ip6routing-base-scale-dpdk-ndr"
-  data: "plot-vpp-throughput-lat-tsa-2n-skx"
-  include:
-    - "Tests.Vpp.Perf.Ip6.2N1L-25Ge2P1Xxv710-Dot1Q-Ip6Base-Ndrpdr.78B-2t1c-dot1q-ip6base-ndrpdr"
-    - "Tests.Vpp.Perf.Ip6.2N1L-25Ge2P1Xxv710-Ethip6-Ip6Base-Ndrpdr.78B-2t1c-ethip6-ip6base-ndrpdr"
-    - "Tests.Vpp.Perf.Ip6.2N1L-25Ge2P1Xxv710-Ethip6-Ip6Scale20K-Ndrpdr.78B-2t1c-ethip6-ip6scale20k-ndrpdr"
-    - "Tests.Vpp.Perf.Ip6.2N1L-25Ge2P1Xxv710-Ethip6-Ip6Scale20K-rnd-Ndrpdr.78B-2t1c-ethip6-ip6scale20k-rnd-ndrpdr"
-    - "Tests.Vpp.Perf.Ip6.2N1L-25Ge2P1Xxv710-Ethip6-Ip6Scale200K-Ndrpdr.78B-2t1c-ethip6-ip6scale200k-ndrpdr"
-    - "Tests.Vpp.Perf.Ip6.2N1L-25Ge2P1Xxv710-Ethip6-Ip6Scale200K-rnd-Ndrpdr.78B-2t1c-ethip6-ip6scale200k-rnd-ndrpdr"
-    - "Tests.Vpp.Perf.Ip6.2N1L-25Ge2P1Xxv710-Ethip6-Ip6Scale2M-Ndrpdr.78B-2t1c-ethip6-ip6scale2m-ndrpdr"
-    - "Tests.Vpp.Perf.Ip6.2N1L-25Ge2P1Xxv710-Ethip6-Ip6Scale2M-rnd-Ndrpdr.78B-2t1c-ethip6-ip6scale2m-rnd-ndrpdr"
-  layout:
-    title: "2n-skx-xxv710-78b-2t1c-ip6routing-base-scale-dpdk-ndr"
-    layout: "plot-throughput"
-
-- type: "plot"
-  title: "Throughput: 2n-skx-xxv710-78b-2t1c-ip6routing-base-scale-dpdk-pdr"
-  algorithm: "plot_perf_box_name"
-  output-file: "{DIR[STATIC,VPP]}/2n-skx-xxv710-78b-2t1c-ip6routing-base-scale-dpdk-pdr"
-  data: "plot-vpp-throughput-lat-tsa-2n-skx"
-  include:
-    - "Tests.Vpp.Perf.Ip6.2N1L-25Ge2P1Xxv710-Dot1Q-Ip6Base-Ndrpdr.78B-2t1c-dot1q-ip6base-ndrpdr"
-    - "Tests.Vpp.Perf.Ip6.2N1L-25Ge2P1Xxv710-Ethip6-Ip6Base-Ndrpdr.78B-2t1c-ethip6-ip6base-ndrpdr"
-    - "Tests.Vpp.Perf.Ip6.2N1L-25Ge2P1Xxv710-Ethip6-Ip6Scale20K-Ndrpdr.78B-2t1c-ethip6-ip6scale20k-ndrpdr"
-    - "Tests.Vpp.Perf.Ip6.2N1L-25Ge2P1Xxv710-Ethip6-Ip6Scale20K-rnd-Ndrpdr.78B-2t1c-ethip6-ip6scale20k-rnd-ndrpdr"
-    - "Tests.Vpp.Perf.Ip6.2N1L-25Ge2P1Xxv710-Ethip6-Ip6Scale200K-Ndrpdr.78B-2t1c-ethip6-ip6scale200k-ndrpdr"
-    - "Tests.Vpp.Perf.Ip6.2N1L-25Ge2P1Xxv710-Ethip6-Ip6Scale200K-rnd-Ndrpdr.78B-2t1c-ethip6-ip6scale200k-rnd-ndrpdr"
-    - "Tests.Vpp.Perf.Ip6.2N1L-25Ge2P1Xxv710-Ethip6-Ip6Scale2M-Ndrpdr.78B-2t1c-ethip6-ip6scale2m-ndrpdr"
-    - "Tests.Vpp.Perf.Ip6.2N1L-25Ge2P1Xxv710-Ethip6-Ip6Scale2M-rnd-Ndrpdr.78B-2t1c-ethip6-ip6scale2m-rnd-ndrpdr"
-  layout:
-    title: "2n-skx-xxv710-78b-2t1c-ip6routing-base-scale-dpdk-pdr"
-    layout: "plot-throughput"
-
-- type: "plot"
-  title: "Throughput: 2n-skx-xxv710-78b-2t1c-ip6routing-base-scale-avf-ndr"
-  algorithm: "plot_perf_box_name"
-  output-file: "{DIR[STATIC,VPP]}/2n-skx-xxv710-78b-2t1c-ip6routing-base-scale-avf-ndr"
-  data: "plot-vpp-throughput-lat-tsa-2n-skx"
-  include:
-    - "Tests.Vpp.Perf.Ip6.2N1L-25Ge2P1Xxv710-Avf-Dot1Q-Ip6Base-Ndrpdr.78B-2t1c-avf-dot1q-ip6base-ndrpdr"
-    - "Tests.Vpp.Perf.Ip6.2N1L-25Ge2P1Xxv710-Avf-Ethip6-Ip6Base-Ndrpdr.78B-2t1c-avf-ethip6-ip6base-ndrpdr"
-    - "Tests.Vpp.Perf.Ip6.2N1L-25Ge2P1Xxv710-Avf-Ethip6-Ip6Scale20K-Ndrpdr.78B-2t1c-avf-ethip6-ip6scale20k-ndrpdr"
-    - "Tests.Vpp.Perf.Ip6.2N1L-25Ge2P1Xxv710-Avf-Ethip6-Ip6Scale20K-rnd-Ndrpdr.78B-2t1c-avf-ethip6-ip6scale20k-rnd-ndrpdr"
-    - "Tests.Vpp.Perf.Ip6.2N1L-25Ge2P1Xxv710-Avf-Ethip6-Ip6Scale200K-Ndrpdr.78B-2t1c-avf-ethip6-ip6scale200k-ndrpdr"
-    - "Tests.Vpp.Perf.Ip6.2N1L-25Ge2P1Xxv710-Avf-Ethip6-Ip6Scale200K-rnd-Ndrpdr.78B-2t1c-avf-ethip6-ip6scale200k-rnd-ndrpdr"
-    - "Tests.Vpp.Perf.Ip6.2N1L-25Ge2P1Xxv710-Avf-Ethip6-Ip6Scale2M-Ndrpdr.78B-2t1c-avf-ethip6-ip6scale2m-ndrpdr"
-    - "Tests.Vpp.Perf.Ip6.2N1L-25Ge2P1Xxv710-Avf-Ethip6-Ip6Scale2M-rnd-Ndrpdr.78B-2t1c-avf-ethip6-ip6scale2m-rnd-ndrpdr"
-  layout:
-    title: "2n-skx-xxv710-78b-2t1c-ip6routing-base-scale-avf-ndr"
-    layout: "plot-throughput"
-
-- type: "plot"
-  title: "Throughput: 2n-skx-xxv710-78b-2t1c-ip6routing-base-scale-avf-pdr"
-  algorithm: "plot_perf_box_name"
-  output-file: "{DIR[STATIC,VPP]}/2n-skx-xxv710-78b-2t1c-ip6routing-base-scale-avf-pdr"
-  data: "plot-vpp-throughput-lat-tsa-2n-skx"
-  include:
-    - "Tests.Vpp.Perf.Ip6.2N1L-25Ge2P1Xxv710-Avf-Dot1Q-Ip6Base-Ndrpdr.78B-2t1c-avf-dot1q-ip6base-ndrpdr"
-    - "Tests.Vpp.Perf.Ip6.2N1L-25Ge2P1Xxv710-Avf-Ethip6-Ip6Base-Ndrpdr.78B-2t1c-avf-ethip6-ip6base-ndrpdr"
-    - "Tests.Vpp.Perf.Ip6.2N1L-25Ge2P1Xxv710-Avf-Ethip6-Ip6Scale20K-Ndrpdr.78B-2t1c-avf-ethip6-ip6scale20k-ndrpdr"
-    - "Tests.Vpp.Perf.Ip6.2N1L-25Ge2P1Xxv710-Avf-Ethip6-Ip6Scale20K-rnd-Ndrpdr.78B-2t1c-avf-ethip6-ip6scale20k-rnd-ndrpdr"
-    - "Tests.Vpp.Perf.Ip6.2N1L-25Ge2P1Xxv710-Avf-Ethip6-Ip6Scale200K-Ndrpdr.78B-2t1c-avf-ethip6-ip6scale200k-ndrpdr"
-    - "Tests.Vpp.Perf.Ip6.2N1L-25Ge2P1Xxv710-Avf-Ethip6-Ip6Scale200K-rnd-Ndrpdr.78B-2t1c-avf-ethip6-ip6scale200k-rnd-ndrpdr"
-    - "Tests.Vpp.Perf.Ip6.2N1L-25Ge2P1Xxv710-Avf-Ethip6-Ip6Scale2M-Ndrpdr.78B-2t1c-avf-ethip6-ip6scale2m-ndrpdr"
-    - "Tests.Vpp.Perf.Ip6.2N1L-25Ge2P1Xxv710-Avf-Ethip6-Ip6Scale2M-rnd-Ndrpdr.78B-2t1c-avf-ethip6-ip6scale2m-rnd-ndrpdr"
-  layout:
-    title: "2n-skx-xxv710-78b-2t1c-ip6routing-base-scale-avf-pdr"
-    layout: "plot-throughput"
-
-- type: "plot"
-  title: "Throughput: 3n-hsw-xl710-78b-1t1c-ip6routing-base-scale-dpdk-ndr"
-  algorithm: "plot_perf_box_name"
-  output-file: "{DIR[STATIC,VPP]}/3n-hsw-xl710-78b-1t1c-ip6routing-base-scale-dpdk-ndr"
-  data: "plot-vpp-throughput-lat-tsa-3n-hsw"
-  include:
-    - "Tests.Vpp.Perf.Ip6.40Ge2P1Xl710-Dot1Q-Ip6Base-Ndrpdr.78B-1t1c-dot1q-ip6base-ndrpdr"
-    - "Tests.Vpp.Perf.Ip6.40Ge2P1Xl710-Ethip6-Ip6Base-Ndrpdr.78B-1t1c-ethip6-ip6base-ndrpdr"
-    - "Tests.Vpp.Perf.Ip6.40Ge2P1Xl710-Ethip6-Ip6Scale2M-Ndrpdr.78B-1t1c-ethip6-ip6scale2m-ndrpdr"
-    - "Tests.Vpp.Perf.Ip6.40Ge2P1Xl710-Ethip6-Ip6Scale2M-rnd-Ndrpdr.78B-1t1c-ethip6-ip6scale2m-rnd-ndrpdr"
-  layout:
-    title: "3n-hsw-xl710-78b-1t1c-ip6routing-base-scale-dpdk-ndr"
-    layout: "plot-throughput"
-
-- type: "plot"
-  title: "Throughput: 3n-hsw-xl710-78b-1t1c-ip6routing-base-scale-dpdk-pdr"
-  algorithm: "plot_perf_box_name"
-  output-file: "{DIR[STATIC,VPP]}/3n-hsw-xl710-78b-1t1c-ip6routing-base-scale-dpdk-pdr"
-  data: "plot-vpp-throughput-lat-tsa-3n-hsw"
-  include:
-    - "Tests.Vpp.Perf.Ip6.40Ge2P1Xl710-Dot1Q-Ip6Base-Ndrpdr.78B-1t1c-dot1q-ip6base-ndrpdr"
-    - "Tests.Vpp.Perf.Ip6.40Ge2P1Xl710-Ethip6-Ip6Base-Ndrpdr.78B-1t1c-ethip6-ip6base-ndrpdr"
-    - "Tests.Vpp.Perf.Ip6.40Ge2P1Xl710-Ethip6-Ip6Scale2M-Ndrpdr.78B-1t1c-ethip6-ip6scale2m-ndrpdr"
-    - "Tests.Vpp.Perf.Ip6.40Ge2P1Xl710-Ethip6-Ip6Scale2M-rnd-Ndrpdr.78B-1t1c-ethip6-ip6scale2m-rnd-ndrpdr"
-  layout:
-    title: "3n-hsw-xl710-78b-1t1c-ip6routing-base-scale-dpdk-pdr"
-    layout: "plot-throughput"
-
-- type: "plot"
-  title: "Throughput: 3n-skx-x710-78b-2t1c-ip6routing-base-scale-avf-ndr"
-  algorithm: "plot_perf_box_name"
-  output-file: "{DIR[STATIC,VPP]}/3n-skx-x710-78b-2t1c-ip6routing-base-scale-avf-ndr"
-  data: "plot-vpp-throughput-lat-tsa-3n-skx"
-  include:
-    - "Tests.Vpp.Perf.Ip6.10Ge2P1X710-Avf-Dot1Q-Ip6Base-Ndrpdr.78B-2t1c-avf-dot1q-ip6base-ndrpdr"
-    - "Tests.Vpp.Perf.Ip6.10Ge2P1X710-Avf-Ethip6-Ip6Base-Ndrpdr.78B-2t1c-avf-ethip6-ip6base-ndrpdr"
-    - "Tests.Vpp.Perf.Ip6.10Ge2P1X710-Avf-Ethip6-Ip6Scale2M-Ndrpdr.78B-2t1c-avf-ethip6-ip6scale2m-ndrpdr"
-  layout:
-    title: "3n-skx-x710-78b-2t1c-ip6routing-base-scale-avf-ndr"
-    layout: "plot-throughput"
-
-- type: "plot"
-  title: "Throughput: 3n-skx-x710-78b-2t1c-ip6routing-base-scale-avf-pdr"
-  algorithm: "plot_perf_box_name"
-  output-file: "{DIR[STATIC,VPP]}/3n-skx-x710-78b-2t1c-ip6routing-base-scale-avf-pdr"
-  data: "plot-vpp-throughput-lat-tsa-3n-skx"
-  include:
-    - "Tests.Vpp.Perf.Ip6.10Ge2P1X710-Avf-Dot1Q-Ip6Base-Ndrpdr.78B-2t1c-avf-dot1q-ip6base-ndrpdr"
-    - "Tests.Vpp.Perf.Ip6.10Ge2P1X710-Avf-Ethip6-Ip6Base-Ndrpdr.78B-2t1c-avf-ethip6-ip6base-ndrpdr"
-    - "Tests.Vpp.Perf.Ip6.10Ge2P1X710-Avf-Ethip6-Ip6Scale2M-Ndrpdr.78B-2t1c-avf-ethip6-ip6scale2m-ndrpdr"
-  layout:
-    title: "3n-skx-x710-78b-2t1c-ip6routing-base-scale-avf-pdr"
-    layout: "plot-throughput"
-
-- type: "plot"
-  title: "Throughput: 3n-skx-xxv710-78b-2t1c-ip6routing-base-scale-dpdk-ndr"
-  algorithm: "plot_perf_box_name"
-  output-file: "{DIR[STATIC,VPP]}/3n-skx-xxv710-78b-2t1c-ip6routing-base-scale-dpdk-ndr"
-  data: "plot-vpp-throughput-lat-tsa-3n-skx"
-  include:
-    - "Tests.Vpp.Perf.Ip6.25Ge2P1Xxv710-Dot1Q-Ip6Base-Ndrpdr.78B-2t1c-dot1q-ip6base-ndrpdr"
-    - "Tests.Vpp.Perf.Ip6.25Ge2P1Xxv710-Ethip6-Ip6Base-Ndrpdr.78B-2t1c-ethip6-ip6base-ndrpdr"
-    - "Tests.Vpp.Perf.Ip6.25Ge2P1Xxv710-Ethip6-Ip6Scale20K-Ndrpdr.78B-2t1c-ethip6-ip6scale20k-ndrpdr"
-    - "Tests.Vpp.Perf.Ip6.25Ge2P1Xxv710-Ethip6-Ip6Scale200K-Ndrpdr.78B-2t1c-ethip6-ip6scale200k-ndrpdr"
-    - "Tests.Vpp.Perf.Ip6.25Ge2P1Xxv710-Ethip6-Ip6Scale2M-Ndrpdr.78B-2t1c-ethip6-ip6scale2m-ndrpdr"
-  layout:
-    title: "3n-skx-xxv710-78b-2t1c-ip6routing-base-scale-dpdk-ndr"
-    layout: "plot-throughput"
-
-- type: "plot"
-  title: "Throughput: 3n-skx-xxv710-78b-2t1c-ip6routing-base-scale-dpdk-pdr"
-  algorithm: "plot_perf_box_name"
-  output-file: "{DIR[STATIC,VPP]}/3n-skx-xxv710-78b-2t1c-ip6routing-base-scale-dpdk-pdr"
-  data: "plot-vpp-throughput-lat-tsa-3n-skx"
-  include:
-    - "Tests.Vpp.Perf.Ip6.25Ge2P1Xxv710-Dot1Q-Ip6Base-Ndrpdr.78B-2t1c-dot1q-ip6base-ndrpdr"
-    - "Tests.Vpp.Perf.Ip6.25Ge2P1Xxv710-Ethip6-Ip6Base-Ndrpdr.78B-2t1c-ethip6-ip6base-ndrpdr"
-    - "Tests.Vpp.Perf.Ip6.25Ge2P1Xxv710-Ethip6-Ip6Scale20K-Ndrpdr.78B-2t1c-ethip6-ip6scale20k-ndrpdr"
-    - "Tests.Vpp.Perf.Ip6.25Ge2P1Xxv710-Ethip6-Ip6Scale200K-Ndrpdr.78B-2t1c-ethip6-ip6scale200k-ndrpdr"
-    - "Tests.Vpp.Perf.Ip6.25Ge2P1Xxv710-Ethip6-Ip6Scale2M-Ndrpdr.78B-2t1c-ethip6-ip6scale2m-ndrpdr"
-  layout:
-    title: "3n-skx-xxv710-78b-2t1c-ip6routing-base-scale-dpdk-pdr"
-    layout: "plot-throughput"
-
-- type: "plot"
-  title: "Throughput: 3n-skx-xxv710-78b-2t1c-ip6routing-base-scale-avf-ndr"
-  algorithm: "plot_perf_box_name"
-  output-file: "{DIR[STATIC,VPP]}/3n-skx-xxv710-78b-2t1c-ip6routing-base-scale-avf-ndr"
-  data: "plot-vpp-throughput-lat-tsa-3n-skx"
-  include:
-    - "Tests.Vpp.Perf.Ip6.25Ge2P1Xxv710-Avf-Dot1Q-Ip6Base-Ndrpdr.78B-2t1c-avf-dot1q-ip6base-ndrpdr"
-    - "Tests.Vpp.Perf.Ip6.25Ge2P1Xxv710-Avf-Ethip6-Ip6Base-Ndrpdr.78B-2t1c-avf-ethip6-ip6base-ndrpdr"
-    - "Tests.Vpp.Perf.Ip6.25Ge2P1Xxv710-Avf-Ethip6-Ip6Scale20K-Ndrpdr.78B-2t1c-avf-ethip6-ip6scale20k-ndrpdr"
-    - "Tests.Vpp.Perf.Ip6.25Ge2P1Xxv710-Avf-Ethip6-Ip6Scale200K-Ndrpdr.78B-2t1c-avf-ethip6-ip6scale200k-ndrpdr"
-    - "Tests.Vpp.Perf.Ip6.25Ge2P1Xxv710-Avf-Ethip6-Ip6Scale2M-Ndrpdr.78B-2t1c-avf-ethip6-ip6scale2m-ndrpdr"
-  layout:
-    title: "3n-skx-xxv710-78b-2t1c-ip6routing-base-scale-avf-ndr"
-    layout: "plot-throughput"
-
-- type: "plot"
-  title: "Throughput: 3n-skx-xxv710-78b-2t1c-ip6routing-base-scale-avf-pdr"
-  algorithm: "plot_perf_box_name"
-  output-file: "{DIR[STATIC,VPP]}/3n-skx-xxv710-78b-2t1c-ip6routing-base-scale-avf-pdr"
-  data: "plot-vpp-throughput-lat-tsa-3n-skx"
-  include:
-    - "Tests.Vpp.Perf.Ip6.25Ge2P1Xxv710-Avf-Dot1Q-Ip6Base-Ndrpdr.78B-2t1c-avf-dot1q-ip6base-ndrpdr"
-    - "Tests.Vpp.Perf.Ip6.25Ge2P1Xxv710-Avf-Ethip6-Ip6Base-Ndrpdr.78B-2t1c-avf-ethip6-ip6base-ndrpdr"
-    - "Tests.Vpp.Perf.Ip6.25Ge2P1Xxv710-Avf-Ethip6-Ip6Scale20K-Ndrpdr.78B-2t1c-avf-ethip6-ip6scale20k-ndrpdr"
-    - "Tests.Vpp.Perf.Ip6.25Ge2P1Xxv710-Avf-Ethip6-Ip6Scale200K-Ndrpdr.78B-2t1c-avf-ethip6-ip6scale200k-ndrpdr"
-    - "Tests.Vpp.Perf.Ip6.25Ge2P1Xxv710-Avf-Ethip6-Ip6Scale2M-Ndrpdr.78B-2t1c-avf-ethip6-ip6scale2m-ndrpdr"
-  layout:
-    title: "3n-skx-xxv710-78b-2t1c-ip6routing-base-scale-avf-pdr"
-    layout: "plot-throughput"
-
-- type: "plot"
-  title: "Throughput: 3n-tsh-x520-78b-1t1c-ip6routing-base-scale-ixgbe-ndr"
-  algorithm: "plot_perf_box_name"
-  output-file: "{DIR[STATIC,VPP]}/3n-tsh-x520-78b-1t1c-ip6routing-base-scale-ixgbe-ndr"
-  data: "plot-vpp-throughput-lat-tsa-3n-tsh"
-  include:
-    - "Tests.Vpp.Perf.Ip6.10Ge2P1X520-Dot1Q-Ip6Base-Ndrpdr.78B-1t1c-dot1q-ip6base-ndrpdr"
-    - "Tests.Vpp.Perf.Ip6.10Ge2P1X520-Ethip6-Ip6Base-Ndrpdr.78B-1t1c-ethip6-ip6base-ndrpdr"
-    - "Tests.Vpp.Perf.Ip6.10Ge2P1X520-Ethip6-Ip6Scale20K-Ndrpdr.78B-1t1c-ethip6-ip6scale20k-ndrpdr"
-    - "Tests.Vpp.Perf.Ip6.10Ge2P1X520-Ethip6-Ip6Scale200K-Ndrpdr.78B-1t1c-ethip6-ip6scale200k-ndrpdr"
-    - "Tests.Vpp.Perf.Ip6.10Ge2P1X520-Ethip6-Ip6Scale2M-Ndrpdr.78B-1t1c-ethip6-ip6scale2m-ndrpdr"
-  layout:
-    title: "3n-tsh-x520-78b-1t1c-ip6routing-base-scale-ixgbe-ndr"
-    layout: "plot-throughput"
-
-- type: "plot"
-  title: "Throughput: 3n-tsh-x520-78b-1t1c-ip6routing-base-scale-ixgbe-pdr"
-  algorithm: "plot_perf_box_name"
-  output-file: "{DIR[STATIC,VPP]}/3n-tsh-x520-78b-1t1c-ip6routing-base-scale-ixgbe-pdr"
-  data: "plot-vpp-throughput-lat-tsa-3n-tsh"
-  include:
-    - "Tests.Vpp.Perf.Ip6.10Ge2P1X520-Dot1Q-Ip6Base-Ndrpdr.78B-1t1c-dot1q-ip6base-ndrpdr"
-    - "Tests.Vpp.Perf.Ip6.10Ge2P1X520-Ethip6-Ip6Base-Ndrpdr.78B-1t1c-ethip6-ip6base-ndrpdr"
-    - "Tests.Vpp.Perf.Ip6.10Ge2P1X520-Ethip6-Ip6Scale20K-Ndrpdr.78B-1t1c-ethip6-ip6scale20k-ndrpdr"
-    - "Tests.Vpp.Perf.Ip6.10Ge2P1X520-Ethip6-Ip6Scale200K-Ndrpdr.78B-1t1c-ethip6-ip6scale200k-ndrpdr"
-    - "Tests.Vpp.Perf.Ip6.10Ge2P1X520-Ethip6-Ip6Scale2M-Ndrpdr.78B-1t1c-ethip6-ip6scale2m-ndrpdr"
-  layout:
-    title: "3n-tsh-x520-78b-1t1c-ip6routing-base-scale-ixgbe-pdr"
-    layout: "plot-throughput"
-
-- type: "plot"
-  title: "Throughput: 2n-dnv-x553-78b-1t1c-ip6routing-base-scale-ixgbe-ndr"
-  algorithm: "plot_perf_box_name"
-  output-file: "{DIR[STATIC,VPP]}/2n-dnv-x553-78b-1t1c-ip6routing-base-scale-ixgbe-ndr"
-  data: "plot-vpp-throughput-lat-tsa-2n-dnv"
-  include:
-    - "Tests.Vpp.Perf.Ip6.2N1L-10Ge2P1X553-Dot1Q-Ip6Base-Ndrpdr.78B-1t1c-dot1q-ip6base-ndrpdr"
-    - "Tests.Vpp.Perf.Ip6.2N1L-10Ge2P1X553-Ethip6-Ip6Base-Ndrpdr.78B-1t1c-ethip6-ip6base-ndrpdr"
-    - "Tests.Vpp.Perf.Ip6.2N1L-10Ge2P1X553-Ethip6-Ip6Scale20K-Ndrpdr.78B-1t1c-ethip6-ip6scale20k-ndrpdr"
-    - "Tests.Vpp.Perf.Ip6.2N1L-10Ge2P1X553-Ethip6-Ip6Scale200K-Ndrpdr.78B-1t1c-ethip6-ip6scale200k-ndrpdr"
-    - "Tests.Vpp.Perf.Ip6.2N1L-10Ge2P1X553-Ethip6-Ip6Scale2M-Ndrpdr.78B-1t1c-ethip6-ip6scale2m-ndrpdr"
-  layout:
-    title: "2n-dnv-x553-78b-1t1c-ip6routing-base-scale-ixgbe-ndr"
-    layout: "plot-throughput"
-
-- type: "plot"
-  title: "Throughput: 2n-dnv-x553-78b-1t1c-ip6routing-base-scale-ixgbe-pdr"
-  algorithm: "plot_perf_box_name"
-  output-file: "{DIR[STATIC,VPP]}/2n-dnv-x553-78b-1t1c-ip6routing-base-scale-ixgbe-pdr"
-  data: "plot-vpp-throughput-lat-tsa-2n-dnv"
-  include:
-    - "Tests.Vpp.Perf.Ip6.2N1L-10Ge2P1X553-Dot1Q-Ip6Base-Ndrpdr.78B-1t1c-dot1q-ip6base-ndrpdr"
-    - "Tests.Vpp.Perf.Ip6.2N1L-10Ge2P1X553-Ethip6-Ip6Base-Ndrpdr.78B-1t1c-ethip6-ip6base-ndrpdr"
-    - "Tests.Vpp.Perf.Ip6.2N1L-10Ge2P1X553-Ethip6-Ip6Scale20K-Ndrpdr.78B-1t1c-ethip6-ip6scale20k-ndrpdr"
-    - "Tests.Vpp.Perf.Ip6.2N1L-10Ge2P1X553-Ethip6-Ip6Scale200K-Ndrpdr.78B-1t1c-ethip6-ip6scale200k-ndrpdr"
-    - "Tests.Vpp.Perf.Ip6.2N1L-10Ge2P1X553-Ethip6-Ip6Scale2M-Ndrpdr.78B-1t1c-ethip6-ip6scale2m-ndrpdr"
-  layout:
-    title: "2n-dnv-x553-78b-1t1c-ip6routing-base-scale-ixgbe-pdr"
-    layout: "plot-throughput"
-
-- type: "plot"
-  title: "Throughput: 3n-dnv-x553-78b-1t1c-ip6routing-base-scale-ixgbe-ndr"
-  algorithm: "plot_perf_box_name"
-  output-file: "{DIR[STATIC,VPP]}/3n-dnv-x553-78b-1t1c-ip6routing-base-scale-ixgbe-ndr"
-  data: "plot-vpp-throughput-lat-tsa-3n-dnv"
-  include:
-    - "Tests.Vpp.Perf.Ip6.10Ge2P1X553-Dot1Q-Ip6Base-Ndrpdr.78B-1t1c-dot1q-ip6base-ndrpdr"
-    - "Tests.Vpp.Perf.Ip6.10Ge2P1X553-Ethip6-Ip6Base-Ndrpdr.78B-1t1c-ethip6-ip6base-ndrpdr"
-    - "Tests.Vpp.Perf.Ip6.10Ge2P1X553-Ethip6-Ip6Scale20K-Ndrpdr.78B-1t1c-ethip6-ip6scale20k-ndrpdr"
-    - "Tests.Vpp.Perf.Ip6.10Ge2P1X553-Ethip6-Ip6Scale200K-Ndrpdr.78B-1t1c-ethip6-ip6scale200k-ndrpdr"
-    - "Tests.Vpp.Perf.Ip6.10Ge2P1X553-Ethip6-Ip6Scale2M-Ndrpdr.78B-1t1c-ethip6-ip6scale2m-ndrpdr"
-  layout:
-    title: "3n-dnv-x553-78b-1t1c-ip6routing-base-scale-ixgbe-ndr"
-    layout: "plot-throughput"
-
-- type: "plot"
-  title: "Throughput: 3n-dnv-x553-78b-1t1c-ip6routing-base-scale-ixgbe-pdr"
-  algorithm: "plot_perf_box_name"
-  output-file: "{DIR[STATIC,VPP]}/3n-dnv-x553-78b-1t1c-ip6routing-base-scale-ixgbe-pdr"
-  data: "plot-vpp-throughput-lat-tsa-3n-dnv"
-  include:
-    - "Tests.Vpp.Perf.Ip6.10Ge2P1X553-Dot1Q-Ip6Base-Ndrpdr.78B-1t1c-dot1q-ip6base-ndrpdr"
-    - "Tests.Vpp.Perf.Ip6.10Ge2P1X553-Ethip6-Ip6Base-Ndrpdr.78B-1t1c-ethip6-ip6base-ndrpdr"
-    - "Tests.Vpp.Perf.Ip6.10Ge2P1X553-Ethip6-Ip6Scale20K-Ndrpdr.78B-1t1c-ethip6-ip6scale20k-ndrpdr"
-    - "Tests.Vpp.Perf.Ip6.10Ge2P1X553-Ethip6-Ip6Scale200K-Ndrpdr.78B-1t1c-ethip6-ip6scale200k-ndrpdr"
-    - "Tests.Vpp.Perf.Ip6.10Ge2P1X553-Ethip6-Ip6Scale2M-Ndrpdr.78B-1t1c-ethip6-ip6scale2m-ndrpdr"
-  layout:
-    title: "3n-dnv-x553-78b-1t1c-ip6routing-base-scale-ixgbe-pdr"
-    layout: "plot-throughput"
-
-- type: "plot"
-  title: "Throughput: 3n-hsw-xl710-imix-1t1c-ipsec-ip4routing-base-scale-sw-dpdk-ndr"
-  algorithm: "plot_perf_box_name"
-  output-file: "{DIR[STATIC,VPP]}/3n-hsw-xl710-imix-1t1c-ipsec-ip4routing-base-scale-sw-dpdk-ndr"
-  data: "plot-vpp-throughput-lat-tsa-3n-hsw"
-  include:
-    - "Tests.Vpp.Perf.Crypto.40Ge2P1Xl710-Ethip4Ipsec4Tnlsw-Ip4Base-Int-Aes256Gcm-Ndrpdr.IMIX-1t1c-ethip4ipsec4tnlsw-ip4base-int-aes256gcm-ndrpdr"
-    - "Tests.Vpp.Perf.Crypto.40Ge2P1Xl710-Ethip4Ipsec4Tnlsw-Ip4Base-Int-Aes128Cbc-Hmac512Sha-Ndrpdr.IMIX-1t1c-ethip4ipsec4tnlsw-ip4base-int-aes128cbc-hmac512sha-ndrpdr"
-    - "Tests.Vpp.Perf.Crypto.40Ge2P1Xl710-Ethip4Ipsec1000Tnlsw-Ip4Base-Int-Aes256Gcm-Ndrpdr.IMIX-1t1c-ethip4ipsec1000tnlsw-ip4base-int-aes256gcm-ndrpdr"
-    - "Tests.Vpp.Perf.Crypto.40Ge2P1Xl710-Ethip4Ipsec1000Tnlsw-Ip4Base-Int-Aes128Cbc-Hmac512Sha-Ndrpdr.IMIX-1t1c-ethip4ipsec1000tnlsw-ip4base-int-aes128cbc-hmac512sha-ndrpdr"
-    - "Tests.Vpp.Perf.Crypto.40Ge2P1Xl710-Ethip4Ipsec10000Tnlsw-Ip4Base-Int-Aes256Gcm-Ndrpdr.IMIX-1t1c-ethip4ipsec10000tnlsw-ip4base-int-aes256gcm-ndrpdr"
-    - "Tests.Vpp.Perf.Crypto.40Ge2P1Xl710-Ethip4Ipsec10000Tnlsw-Ip4Base-Int-Aes128Cbc-Hmac512Sha-Ndrpdr.IMIX-1t1c-ethip4ipsec10000tnlsw-ip4base-int-aes128cbc-hmac512sha-ndrpdr"
-  layout:
-    title: "3n-hsw-xl710-imix-1t1c-ipsec-ip4routing-base-scale-sw-dpdk-ndr"
-    layout: "plot-throughput"
-
-- type: "plot"
-  title: "Throughput: 3n-hsw-xl710-imix-1t1c-ipsec-ip4routing-base-scale-sw-dpdk-pdr"
-  algorithm: "plot_perf_box_name"
-  output-file: "{DIR[STATIC,VPP]}/3n-hsw-xl710-imix-1t1c-ipsec-ip4routing-base-scale-sw-dpdk-pdr"
-  data: "plot-vpp-throughput-lat-tsa-3n-hsw"
-  include:
-    - "Tests.Vpp.Perf.Crypto.40Ge2P1Xl710-Ethip4Ipsec4Tnlsw-Ip4Base-Int-Aes256Gcm-Ndrpdr.IMIX-1t1c-ethip4ipsec4tnlsw-ip4base-int-aes256gcm-ndrpdr"
-    - "Tests.Vpp.Perf.Crypto.40Ge2P1Xl710-Ethip4Ipsec4Tnlsw-Ip4Base-Int-Aes128Cbc-Hmac512Sha-Ndrpdr.IMIX-1t1c-ethip4ipsec4tnlsw-ip4base-int-aes128cbc-hmac512sha-ndrpdr"
-    - "Tests.Vpp.Perf.Crypto.40Ge2P1Xl710-Ethip4Ipsec1000Tnlsw-Ip4Base-Int-Aes256Gcm-Ndrpdr.IMIX-1t1c-ethip4ipsec1000tnlsw-ip4base-int-aes256gcm-ndrpdr"
-    - "Tests.Vpp.Perf.Crypto.40Ge2P1Xl710-Ethip4Ipsec1000Tnlsw-Ip4Base-Int-Aes128Cbc-Hmac512Sha-Ndrpdr.IMIX-1t1c-ethip4ipsec1000tnlsw-ip4base-int-aes128cbc-hmac512sha-ndrpdr"
-    - "Tests.Vpp.Perf.Crypto.40Ge2P1Xl710-Ethip4Ipsec10000Tnlsw-Ip4Base-Int-Aes256Gcm-Ndrpdr.IMIX-1t1c-ethip4ipsec10000tnlsw-ip4base-int-aes256gcm-ndrpdr"
-    - "Tests.Vpp.Perf.Crypto.40Ge2P1Xl710-Ethip4Ipsec10000Tnlsw-Ip4Base-Int-Aes128Cbc-Hmac512Sha-Ndrpdr.IMIX-1t1c-ethip4ipsec10000tnlsw-ip4base-int-aes128cbc-hmac512sha-ndrpdr"
-  layout:
-    title: "3n-hsw-xl710-imix-1t1c-ipsec-ip4routing-base-scale-sw-dpdk-pdr"
-    layout: "plot-throughput"
-
-- type: "plot"
-  title: "Throughput: 3n-hsw-xl710-imix-1t1c-ipsec-ip4routing-base-scale-hw-dpdk-ndr"
-  algorithm: "plot_perf_box_name"
-  output-file: "{DIR[STATIC,VPP]}/3n-hsw-xl710-imix-1t1c-ipsec-ip4routing-base-scale-hw-dpdk-ndr"
-  data: "plot-vpp-throughput-lat-tsa-3n-hsw"
-  include:
-    - "Tests.Vpp.Perf.Crypto.40Ge2P1Xl710-Ethip4Ipsec1Tnlhw-Ip4Base-Int-Aes256Gcm-Ndrpdr.IMIX-1t1c-ethip4ipsec1tnlhw-ip4base-int-aes256gcm-ndrpdr"