Hey Koushik,
It looks like not all of my comments were addressed, e.g. Artifact.
On 10/11/2026 20:10, Koushik Bhargav Nimoji wrote:
diff --git
a/doc/api/dts/tests.TestSuite_pvp_multi_paths_vhost_single_core_perf.rst
b/doc/api/dts/tests.TestSuite_pvp_multi_paths_vhost_single_core_perf.rst
new file mode 100644
index 0000000000..4fcc6b6c91
--- /dev/null
+++ b/doc/api/dts/tests.TestSuite_pvp_multi_paths_vhost_single_core_perf.rst
@@ -0,0 +1,8 @@
+.. SPDX-License-Identifier: BSD-3-Clause
+
+pvp_multi_paths_vhost_single_core_perf Test Suite
+=================================================
+
+.. automodule:: tests.TestSuite_pvp_multi_paths_vhost_single_core_perf
+ :members:
+ :show-inheritance:
diff --git a/dts/api/testpmd/config.py b/dts/api/testpmd/config.py
index c72c1b2c90..9459cd83bb 100644
--- a/dts/api/testpmd/config.py
+++ b/dts/api/testpmd/config.py
@@ -13,6 +13,8 @@
from pathlib import PurePath
from typing import Literal, NamedTuple
+from pydantic import BaseModel, ConfigDict
+
from api.params import (
Params,
Switch,
@@ -618,3 +620,15 @@ class TestPmdParams(EalParams):
)
record_core_cycles: Switch = None
record_burst_status: Switch = None
+
+
+class PerfSuiteConfig(BaseModel):
I wouldn't call the TestParameter a PerfSuiteConfig. Also I am not sure
this is the right place for this? I think it should just live next to
BaseConfig in api.test_suite. The idea is that PerfSuiteConfig would
just be the test suite config model, as the name suggests. Instead of
replicating the model across test suites just to set defaults. These can
be a constant and then set during test suite setup as it's already done
with other test suites. We only extend the config if we have extra
special fields which are unique for said test suite. anything that is
common across all of them should be kept in a common config.
These changes can be their own commit before the test suites. Updating
other test suites using the same pattern would also be a welcome change.
+ """Generic performance test suite parameters."""
+
+ model_config = ConfigDict(strict=True, extra="forbid", frozen=False,
from_attributes=True)
+ frame_size: int
+ num_descriptors: int
+ expected_mpps: float
+ performance_delta: float | None = None
+ measured_mpps: float | None = None
+ passing: float | None = None
Still lacking documentation for the fields.