From: Andrew Bailey <abailey@iol.unh.edu>
To: dev@dpdk.org, luca.vizzarro@arm.com, patrickrobb1997@gmail.com
Cc: knimoji@iol.unh.edu, lylavoie@iol.unh.edu, dladd@iol.unh.edu,
Andrew Bailey <abailey@iol.unh.edu>,
Dean Marx <dmarx@iol.unh.edu>
Subject: [PATCH v6 4/7] dts: move testbed model from framework to API
Date: Thu, 6 Aug 2026 13:50:21 -0400 [thread overview]
Message-ID: <20260806175024.13655-5-abailey@iol.unh.edu> (raw)
In-Reply-To: <20260806175024.13655-1-abailey@iol.unh.edu>
Multiple test suites import modules from testbed model
in the framework. Move this directory to the API.
Signed-off-by: Dean Marx <dmarx@iol.unh.edu>
Signed-off-by: Andrew Bailey <abailey@iol.unh.edu>
---
...y.rst => api.testbed_model.capability.rst} | 2 +-
...odel.cpu.rst => api.testbed_model.cpu.rst} | 2 +-
...st => api.testbed_model.linux_session.rst} | 2 +-
...el.node.rst => api.testbed_model.node.rst} | 2 +-
...n.rst => api.testbed_model.os_session.rst} | 2 +-
...el.port.rst => api.testbed_model.port.rst} | 2 +-
...st => api.testbed_model.posix_session.rst} | 2 +-
doc/api/dts/api.testbed_model.rst | 28 +++++++++++++++++++
...ogy.rst => api.testbed_model.topology.rst} | 2 +-
...generator.capturing_traffic_generator.rst} | 2 +-
.../api.testbed_model.traffic_generator.rst | 16 +++++++++++
...testbed_model.traffic_generator.scapy.rst} | 2 +-
...l.traffic_generator.traffic_generator.rst} | 2 +-
...t => api.testbed_model.virtual_device.rst} | 2 +-
doc/api/dts/framework.testbed_model.rst | 28 -------------------
...mework.testbed_model.traffic_generator.rst | 16 -----------
doc/api/dts/index.rst | 2 +-
dts/api/artifact.py | 2 +-
dts/api/capabilities.py | 8 +++---
dts/api/context.py | 10 +++----
dts/api/packet.py | 10 +++----
.../testbed_model/__init__.py | 0
.../testbed_model/capability.py | 10 +++----
dts/{framework => api}/testbed_model/cpu.py | 2 +-
.../testbed_model/linux_session.py | 2 +-
dts/{framework => api}/testbed_model/node.py | 0
.../testbed_model/os_session.py | 6 ++--
dts/{framework => api}/testbed_model/port.py | 0
.../testbed_model/posix_session.py | 0
.../testbed_model/topology.py | 4 +--
.../traffic_generator/__init__.py | 2 +-
.../capturing_traffic_generator.py | 2 +-
.../performance_traffic_generator.py | 0
.../testbed_model/traffic_generator/scapy.py | 12 ++++----
.../traffic_generator/traffic_generator.py | 6 ++--
.../testbed_model/traffic_generator/trex.py | 14 +++++-----
.../testbed_model/virtual_device.py | 0
dts/framework/params/eal.py | 6 ++--
dts/framework/params/types.py | 6 ++--
dts/framework/remote_session/blocking_app.py | 2 +-
dts/framework/remote_session/dpdk.py | 8 +++---
dts/framework/remote_session/dpdk_shell.py | 2 +-
.../remote_session/interactive_shell.py | 2 +-
dts/framework/runner.py | 2 +-
dts/framework/test_result.py | 2 +-
dts/framework/test_run.py | 16 +++++------
dts/framework/test_suite.py | 4 +--
dts/tests/TestSuite_blocklist.py | 2 +-
dts/tests/TestSuite_cryptodev_latency.py | 2 +-
dts/tests/TestSuite_cryptodev_throughput.py | 2 +-
dts/tests/TestSuite_l2fwd.py | 2 +-
dts/tests/TestSuite_packet_capture.py | 8 +++---
dts/tests/TestSuite_smoke_tests.py | 2 +-
dts/tests/TestSuite_softnic.py | 2 +-
dts/tests/TestSuite_virtio_forward.py | 6 ++--
55 files changed, 140 insertions(+), 140 deletions(-)
rename doc/api/dts/{framework.testbed_model.capability.rst => api.testbed_model.capability.rst} (74%)
rename doc/api/dts/{framework.testbed_model.cpu.rst => api.testbed_model.cpu.rst} (78%)
rename doc/api/dts/{framework.testbed_model.linux_session.rst => api.testbed_model.linux_session.rst} (74%)
rename doc/api/dts/{framework.testbed_model.node.rst => api.testbed_model.node.rst} (71%)
rename doc/api/dts/{framework.testbed_model.os_session.rst => api.testbed_model.os_session.rst} (76%)
rename doc/api/dts/{framework.testbed_model.port.rst => api.testbed_model.port.rst} (77%)
rename doc/api/dts/{framework.testbed_model.posix_session.rst => api.testbed_model.posix_session.rst} (74%)
create mode 100644 doc/api/dts/api.testbed_model.rst
rename doc/api/dts/{framework.testbed_model.topology.rst => api.testbed_model.topology.rst} (73%)
rename doc/api/dts/{framework.testbed_model.traffic_generator.capturing_traffic_generator.rst => api.testbed_model.traffic_generator.capturing_traffic_generator.rst} (68%)
create mode 100644 doc/api/dts/api.testbed_model.traffic_generator.rst
rename doc/api/dts/{framework.testbed_model.traffic_generator.scapy.rst => api.testbed_model.traffic_generator.scapy.rst} (70%)
rename doc/api/dts/{framework.testbed_model.traffic_generator.traffic_generator.rst => api.testbed_model.traffic_generator.traffic_generator.rst} (65%)
rename doc/api/dts/{framework.testbed_model.virtual_device.rst => api.testbed_model.virtual_device.rst} (72%)
delete mode 100644 doc/api/dts/framework.testbed_model.rst
delete mode 100644 doc/api/dts/framework.testbed_model.traffic_generator.rst
rename dts/{framework => api}/testbed_model/__init__.py (100%)
rename dts/{framework => api}/testbed_model/capability.py (99%)
rename dts/{framework => api}/testbed_model/cpu.py (99%)
rename dts/{framework => api}/testbed_model/linux_session.py (99%)
rename dts/{framework => api}/testbed_model/node.py (100%)
rename dts/{framework => api}/testbed_model/os_session.py (99%)
rename dts/{framework => api}/testbed_model/port.py (100%)
rename dts/{framework => api}/testbed_model/posix_session.py (100%)
rename dts/{framework => api}/testbed_model/topology.py (99%)
rename dts/{framework => api}/testbed_model/traffic_generator/__init__.py (97%)
rename dts/{framework => api}/testbed_model/traffic_generator/capturing_traffic_generator.py (99%)
rename dts/{framework => api}/testbed_model/traffic_generator/performance_traffic_generator.py (100%)
rename dts/{framework => api}/testbed_model/traffic_generator/scapy.py (98%)
rename dts/{framework => api}/testbed_model/traffic_generator/traffic_generator.py (94%)
rename dts/{framework => api}/testbed_model/traffic_generator/trex.py (97%)
rename dts/{framework => api}/testbed_model/virtual_device.py (100%)
diff --git a/doc/api/dts/framework.testbed_model.capability.rst b/doc/api/dts/api.testbed_model.capability.rst
similarity index 74%
rename from doc/api/dts/framework.testbed_model.capability.rst
rename to doc/api/dts/api.testbed_model.capability.rst
index fab91cad83..88e396dddb 100644
--- a/doc/api/dts/framework.testbed_model.capability.rst
+++ b/doc/api/dts/api.testbed_model.capability.rst
@@ -3,6 +3,6 @@
capability - Testbed Capabilities
=================================
-.. automodule:: framework.testbed_model.capability
+.. automodule:: api.testbed_model.capability
:members:
:show-inheritance:
diff --git a/doc/api/dts/framework.testbed_model.cpu.rst b/doc/api/dts/api.testbed_model.cpu.rst
similarity index 78%
rename from doc/api/dts/framework.testbed_model.cpu.rst
rename to doc/api/dts/api.testbed_model.cpu.rst
index 997f2a9795..dbbb29480a 100644
--- a/doc/api/dts/framework.testbed_model.cpu.rst
+++ b/doc/api/dts/api.testbed_model.cpu.rst
@@ -3,6 +3,6 @@
cpu - CPU Representation and Utilities
======================================
-.. automodule:: framework.testbed_model.cpu
+.. automodule:: api.testbed_model.cpu
:members:
:show-inheritance:
diff --git a/doc/api/dts/framework.testbed_model.linux_session.rst b/doc/api/dts/api.testbed_model.linux_session.rst
similarity index 74%
rename from doc/api/dts/framework.testbed_model.linux_session.rst
rename to doc/api/dts/api.testbed_model.linux_session.rst
index 7567816199..cfe79d8bca 100644
--- a/doc/api/dts/framework.testbed_model.linux_session.rst
+++ b/doc/api/dts/api.testbed_model.linux_session.rst
@@ -3,6 +3,6 @@
linux\_session - Linux Remote Session
=====================================
-.. automodule:: framework.testbed_model.linux_session
+.. automodule:: api.testbed_model.linux_session
:members:
:show-inheritance:
diff --git a/doc/api/dts/framework.testbed_model.node.rst b/doc/api/dts/api.testbed_model.node.rst
similarity index 71%
rename from doc/api/dts/framework.testbed_model.node.rst
rename to doc/api/dts/api.testbed_model.node.rst
index 23c6c46a00..15f522e5f7 100644
--- a/doc/api/dts/framework.testbed_model.node.rst
+++ b/doc/api/dts/api.testbed_model.node.rst
@@ -3,6 +3,6 @@
node - Base Node
================
-.. automodule:: framework.testbed_model.node
+.. automodule:: api.testbed_model.node
:members:
:show-inheritance:
diff --git a/doc/api/dts/framework.testbed_model.os_session.rst b/doc/api/dts/api.testbed_model.os_session.rst
similarity index 76%
rename from doc/api/dts/framework.testbed_model.os_session.rst
rename to doc/api/dts/api.testbed_model.os_session.rst
index ecfb352311..e7e3f9894f 100644
--- a/doc/api/dts/framework.testbed_model.os_session.rst
+++ b/doc/api/dts/api.testbed_model.os_session.rst
@@ -3,6 +3,6 @@
os\_session - OS-aware Remote Session ABC
=========================================
-.. automodule:: framework.testbed_model.os_session
+.. automodule:: api.testbed_model.os_session
:members:
:show-inheritance:
diff --git a/doc/api/dts/framework.testbed_model.port.rst b/doc/api/dts/api.testbed_model.port.rst
similarity index 77%
rename from doc/api/dts/framework.testbed_model.port.rst
rename to doc/api/dts/api.testbed_model.port.rst
index fdb7ca8a1d..d64501aef0 100644
--- a/doc/api/dts/framework.testbed_model.port.rst
+++ b/doc/api/dts/api.testbed_model.port.rst
@@ -3,7 +3,7 @@
port - NIC Port Representation
==============================
-.. automodule:: framework.testbed_model.port
+.. automodule:: api.testbed_model.port
:members:
:show-inheritance:
:noindex:
diff --git a/doc/api/dts/framework.testbed_model.posix_session.rst b/doc/api/dts/api.testbed_model.posix_session.rst
similarity index 74%
rename from doc/api/dts/framework.testbed_model.posix_session.rst
rename to doc/api/dts/api.testbed_model.posix_session.rst
index e65585fd85..9f0e9ff18d 100644
--- a/doc/api/dts/framework.testbed_model.posix_session.rst
+++ b/doc/api/dts/api.testbed_model.posix_session.rst
@@ -3,6 +3,6 @@
posix\_session - Posix Remote Session
=====================================
-.. automodule:: framework.testbed_model.posix_session
+.. automodule:: api.testbed_model.posix_session
:members:
:show-inheritance:
diff --git a/doc/api/dts/api.testbed_model.rst b/doc/api/dts/api.testbed_model.rst
new file mode 100644
index 0000000000..5e2e5189b2
--- /dev/null
+++ b/doc/api/dts/api.testbed_model.rst
@@ -0,0 +1,28 @@
+.. SPDX-License-Identifier: BSD-3-Clause
+
+testbed\_model - Testbed Modelling Package
+==========================================
+
+.. automodule:: api.testbed_model
+ :members:
+ :show-inheritance:
+
+.. toctree::
+ :hidden:
+ :maxdepth: 2
+
+ api.testbed_model.traffic_generator
+
+.. toctree::
+ :hidden:
+ :maxdepth: 1
+
+ api.testbed_model.os_session
+ api.testbed_model.linux_session
+ api.testbed_model.posix_session
+ api.testbed_model.node
+ api.testbed_model.capability
+ api.testbed_model.cpu
+ api.testbed_model.port
+ api.testbed_model.topology
+ api.testbed_model.virtual_device
diff --git a/doc/api/dts/framework.testbed_model.topology.rst b/doc/api/dts/api.testbed_model.topology.rst
similarity index 73%
rename from doc/api/dts/framework.testbed_model.topology.rst
rename to doc/api/dts/api.testbed_model.topology.rst
index 496f2a895f..bb63fe38dc 100644
--- a/doc/api/dts/framework.testbed_model.topology.rst
+++ b/doc/api/dts/api.testbed_model.topology.rst
@@ -3,6 +3,6 @@
topology - Testbed Topology
===========================
-.. automodule:: framework.testbed_model.topology
+.. automodule:: api.testbed_model.topology
:members:
:show-inheritance:
diff --git a/doc/api/dts/framework.testbed_model.traffic_generator.capturing_traffic_generator.rst b/doc/api/dts/api.testbed_model.traffic_generator.capturing_traffic_generator.rst
similarity index 68%
rename from doc/api/dts/framework.testbed_model.traffic_generator.capturing_traffic_generator.rst
rename to doc/api/dts/api.testbed_model.traffic_generator.capturing_traffic_generator.rst
index 29fa834042..cfe03201a7 100644
--- a/doc/api/dts/framework.testbed_model.traffic_generator.capturing_traffic_generator.rst
+++ b/doc/api/dts/api.testbed_model.traffic_generator.capturing_traffic_generator.rst
@@ -3,6 +3,6 @@
capturing\_traffic\_generator - Base Capturing TG ABC
=====================================================
-.. automodule:: framework.testbed_model.traffic_generator.capturing_traffic_generator
+.. automodule:: api.testbed_model.traffic_generator.capturing_traffic_generator
:members:
:show-inheritance:
diff --git a/doc/api/dts/api.testbed_model.traffic_generator.rst b/doc/api/dts/api.testbed_model.traffic_generator.rst
new file mode 100644
index 0000000000..311bdcf6b9
--- /dev/null
+++ b/doc/api/dts/api.testbed_model.traffic_generator.rst
@@ -0,0 +1,16 @@
+.. SPDX-License-Identifier: BSD-3-Clause
+
+traffic\_generator Subpackage
+=============================
+
+.. automodule:: api.testbed_model.traffic_generator
+ :members:
+ :show-inheritance:
+
+.. toctree::
+ :hidden:
+ :maxdepth: 1
+
+ api.testbed_model.traffic_generator.traffic_generator
+ api.testbed_model.traffic_generator.capturing_traffic_generator
+ api.testbed_model.traffic_generator.scapy
diff --git a/doc/api/dts/framework.testbed_model.traffic_generator.scapy.rst b/doc/api/dts/api.testbed_model.traffic_generator.scapy.rst
similarity index 70%
rename from doc/api/dts/framework.testbed_model.traffic_generator.scapy.rst
rename to doc/api/dts/api.testbed_model.traffic_generator.scapy.rst
index df78ac9514..949bb66632 100644
--- a/doc/api/dts/framework.testbed_model.traffic_generator.scapy.rst
+++ b/doc/api/dts/api.testbed_model.traffic_generator.scapy.rst
@@ -3,6 +3,6 @@
scapy - Capturing Traffic Generator
===================================
-.. automodule:: framework.testbed_model.traffic_generator.scapy
+.. automodule:: api.testbed_model.traffic_generator.scapy
:members:
:show-inheritance:
diff --git a/doc/api/dts/framework.testbed_model.traffic_generator.traffic_generator.rst b/doc/api/dts/api.testbed_model.traffic_generator.traffic_generator.rst
similarity index 65%
rename from doc/api/dts/framework.testbed_model.traffic_generator.traffic_generator.rst
rename to doc/api/dts/api.testbed_model.traffic_generator.traffic_generator.rst
index bfec728dee..1045e534b5 100644
--- a/doc/api/dts/framework.testbed_model.traffic_generator.traffic_generator.rst
+++ b/doc/api/dts/api.testbed_model.traffic_generator.traffic_generator.rst
@@ -3,6 +3,6 @@
traffic\_generator - Base TG ABC
================================
-.. automodule:: framework.testbed_model.traffic_generator.traffic_generator
+.. automodule:: api.testbed_model.traffic_generator.traffic_generator
:members:
:show-inheritance:
diff --git a/doc/api/dts/framework.testbed_model.virtual_device.rst b/doc/api/dts/api.testbed_model.virtual_device.rst
similarity index 72%
rename from doc/api/dts/framework.testbed_model.virtual_device.rst
rename to doc/api/dts/api.testbed_model.virtual_device.rst
index a6b0420e75..97adc895f6 100644
--- a/doc/api/dts/framework.testbed_model.virtual_device.rst
+++ b/doc/api/dts/api.testbed_model.virtual_device.rst
@@ -3,6 +3,6 @@
virtual\_device - Virtual Devices
=================================
-.. automodule:: framework.testbed_model.virtual_device
+.. automodule:: api.testbed_model.virtual_device
:members:
:show-inheritance:
diff --git a/doc/api/dts/framework.testbed_model.rst b/doc/api/dts/framework.testbed_model.rst
deleted file mode 100644
index f283178f6a..0000000000
--- a/doc/api/dts/framework.testbed_model.rst
+++ /dev/null
@@ -1,28 +0,0 @@
-.. SPDX-License-Identifier: BSD-3-Clause
-
-testbed\_model - Testbed Modelling Package
-==========================================
-
-.. automodule:: framework.testbed_model
- :members:
- :show-inheritance:
-
-.. toctree::
- :hidden:
- :maxdepth: 2
-
- framework.testbed_model.traffic_generator
-
-.. toctree::
- :hidden:
- :maxdepth: 1
-
- framework.testbed_model.os_session
- framework.testbed_model.linux_session
- framework.testbed_model.posix_session
- framework.testbed_model.node
- framework.testbed_model.capability
- framework.testbed_model.cpu
- framework.testbed_model.port
- framework.testbed_model.topology
- framework.testbed_model.virtual_device
diff --git a/doc/api/dts/framework.testbed_model.traffic_generator.rst b/doc/api/dts/framework.testbed_model.traffic_generator.rst
deleted file mode 100644
index 24c250ee3a..0000000000
--- a/doc/api/dts/framework.testbed_model.traffic_generator.rst
+++ /dev/null
@@ -1,16 +0,0 @@
-.. SPDX-License-Identifier: BSD-3-Clause
-
-traffic\_generator Subpackage
-=============================
-
-.. automodule:: framework.testbed_model.traffic_generator
- :members:
- :show-inheritance:
-
-.. toctree::
- :hidden:
- :maxdepth: 1
-
- framework.testbed_model.traffic_generator.traffic_generator
- framework.testbed_model.traffic_generator.capturing_traffic_generator
- framework.testbed_model.traffic_generator.scapy
diff --git a/doc/api/dts/index.rst b/doc/api/dts/index.rst
index 98269d6e80..f47e4af3f2 100644
--- a/doc/api/dts/index.rst
+++ b/doc/api/dts/index.rst
@@ -16,7 +16,7 @@ Packages
tests
api
- framework.testbed_model
+ api.testbed_model
framework.remote_session
framework.params
framework.config
diff --git a/dts/api/artifact.py b/dts/api/artifact.py
index f3dd07de56..74a8ac667f 100644
--- a/dts/api/artifact.py
+++ b/dts/api/artifact.py
@@ -48,9 +48,9 @@
from typing_extensions import Buffer
from api.exception import InternalError
+from api.testbed_model.node import Node, NodeIdentifier, get_node
from framework.logger import DTSLogger, get_dts_logger
from framework.settings import SETTINGS
-from framework.testbed_model.node import Node, NodeIdentifier, get_node
TextMode: TypeAlias = (
Literal["r", "r+", "w", "w+", "a", "a+", "x", "x+"]
diff --git a/dts/api/capabilities.py b/dts/api/capabilities.py
index b0c1d81d36..8ed832a588 100644
--- a/dts/api/capabilities.py
+++ b/dts/api/capabilities.py
@@ -23,7 +23,7 @@
.. code:: python
from framework.test_suite import TestSuite, func_test
- from framework.testbed_model.capability import LinkTopology, requires_link_topology
+ from api.testbed_model.capability import LinkTopology, requires_link_topology
# The whole test suite (each test case within) doesn't require any links.
@requires_link_topology(LinkTopology.NO_LINK)
@func_test
@@ -34,7 +34,7 @@ def hello_world_single_core(self):
.. code:: python
from framework.test_suite import TestSuite, func_test
- from framework.testbed_model.capability import NicCapability, requires_nic_capability
+ from api.testbed_model.capability import NicCapability, requires_nic_capability
class TestPmdBufferScatter(TestSuite):
# only the test case requires the SCATTERED_RX_ENABLED capability
# other test cases may not require it
@@ -237,7 +237,7 @@ def requires_link_topology(
Returns:
The decorated test case or test suite.
"""
- from framework.testbed_model.capability import TopologyCapability
+ from api.testbed_model.capability import TopologyCapability
def add_required_topology(
test_case_or_suite: type["TestProtocol"],
@@ -260,7 +260,7 @@ def requires_nic_capability(
Returns:
The decorated test case or test suite.
"""
- from framework.testbed_model.capability import DecoratedNicCapability
+ from api.testbed_model.capability import DecoratedNicCapability
def add_required_capability(
test_case_or_suite: type["TestProtocol"],
diff --git a/dts/api/context.py b/dts/api/context.py
index 709b99421e..57e14ef598 100644
--- a/dts/api/context.py
+++ b/dts/api/context.py
@@ -9,17 +9,17 @@
from typing import TYPE_CHECKING, Any, Optional, ParamSpec, Union
from api.exception import InternalError
+from api.testbed_model.cpu import LogicalCoreCount, LogicalCoreList
+from api.testbed_model.node import Node
+from api.testbed_model.topology import Topology
from framework.remote_session.shell_pool import ShellPool
from framework.settings import SETTINGS
-from framework.testbed_model.cpu import LogicalCoreCount, LogicalCoreList
-from framework.testbed_model.node import Node
-from framework.testbed_model.topology import Topology
if TYPE_CHECKING:
+ from api.testbed_model.capability import TestProtocol
+ from api.testbed_model.traffic_generator.traffic_generator import TrafficGenerator
from framework.remote_session.dpdk import DPDKBuildEnvironment, DPDKRuntimeEnvironment
from framework.test_suite import TestCase, TestSuite
- from framework.testbed_model.capability import TestProtocol
- from framework.testbed_model.traffic_generator.traffic_generator import TrafficGenerator
P = ParamSpec("P")
diff --git a/dts/api/packet.py b/dts/api/packet.py
index dda3087df4..defbb758c8 100644
--- a/dts/api/packet.py
+++ b/dts/api/packet.py
@@ -30,13 +30,13 @@
from api.context import get_ctx
from api.exception import InternalError
from api.test import fail, log_debug
-from api.utils import get_packet_summaries
-from framework.testbed_model.traffic_generator.capturing_traffic_generator import (
+from api.testbed_model.traffic_generator.capturing_traffic_generator import (
PacketFilteringConfig,
)
-from framework.testbed_model.traffic_generator.performance_traffic_generator import (
+from api.testbed_model.traffic_generator.performance_traffic_generator import (
PerformanceTrafficStats,
)
+from api.utils import get_packet_summaries
def send_packet_and_capture(
@@ -83,7 +83,7 @@ def send_packets_and_capture(
A list of received packets.
"""
from api.context import get_ctx
- from framework.testbed_model.traffic_generator.capturing_traffic_generator import (
+ from api.testbed_model.traffic_generator.capturing_traffic_generator import (
CapturingTrafficGenerator,
)
@@ -339,7 +339,7 @@ def assess_performance_by_packet(
Returns:
Performance statistics of the generated test.
"""
- from framework.testbed_model.traffic_generator.performance_traffic_generator import (
+ from api.testbed_model.traffic_generator.performance_traffic_generator import (
PerformanceTrafficGenerator,
)
diff --git a/dts/framework/testbed_model/__init__.py b/dts/api/testbed_model/__init__.py
similarity index 100%
rename from dts/framework/testbed_model/__init__.py
rename to dts/api/testbed_model/__init__.py
diff --git a/dts/framework/testbed_model/capability.py b/dts/api/testbed_model/capability.py
similarity index 99%
rename from dts/framework/testbed_model/capability.py
rename to dts/api/testbed_model/capability.py
index 00b40a3b1e..2748daa8a4 100644
--- a/dts/framework/testbed_model/capability.py
+++ b/dts/api/testbed_model/capability.py
@@ -26,7 +26,7 @@
.. code:: python
from framework.test_suite import TestSuite, func_test
- from framework.testbed_model.capability import LinkTopology, requires
+ from api.testbed_model.capability import LinkTopology, requires
# The whole test suite (each test case within) doesn't require any links.
@requires_link_topology(LinkTopology.NO_LINK)
@func_test
@@ -37,7 +37,7 @@ def hello_world_single_core(self):
.. code:: python
from framework.test_suite import TestSuite, func_test
- from framework.testbed_model.capability import NicCapability, requires
+ from api.testbed_model.capability import NicCapability, requires
class TestPmdBufferScatter(TestSuite):
# only the test case requires the SCATTERED_RX_ENABLED capability
# other test cases may not require it
@@ -65,10 +65,10 @@ def test_scatter_mbuf_2048(self):
from api.capabilities import LinkTopology, NicCapability
from api.exception import ConfigurationError, InternalError, SkippedTestException
+from api.testbed_model.node import Node
+from api.testbed_model.port import DriverKind
+from api.testbed_model.topology import Topology
from framework.logger import get_dts_logger
-from framework.testbed_model.node import Node
-from framework.testbed_model.port import DriverKind
-from framework.testbed_model.topology import Topology
if TYPE_CHECKING:
from api.testpmd import TestPmd
diff --git a/dts/framework/testbed_model/cpu.py b/dts/api/testbed_model/cpu.py
similarity index 99%
rename from dts/framework/testbed_model/cpu.py
rename to dts/api/testbed_model/cpu.py
index 68e9c7dffb..34fb6d0848 100644
--- a/dts/framework/testbed_model/cpu.py
+++ b/dts/api/testbed_model/cpu.py
@@ -29,7 +29,7 @@
@unique
class Architecture(StrEnum):
- r"""The supported architectures of :class:`~framework.testbed_model.node.Node`\s."""
+ r"""The supported architectures of :class:`~api.testbed_model.node.Node`\s."""
#:
i686 = auto()
diff --git a/dts/framework/testbed_model/linux_session.py b/dts/api/testbed_model/linux_session.py
similarity index 99%
rename from dts/framework/testbed_model/linux_session.py
rename to dts/api/testbed_model/linux_session.py
index 26c53f069c..399968efd4 100644
--- a/dts/framework/testbed_model/linux_session.py
+++ b/dts/api/testbed_model/linux_session.py
@@ -23,8 +23,8 @@
InternalError,
RemoteCommandExecutionError,
)
+from api.testbed_model.port import PortInfo
from api.utils import expand_range
-from framework.testbed_model.port import PortInfo
from .cpu import LogicalCore
from .port import Port
diff --git a/dts/framework/testbed_model/node.py b/dts/api/testbed_model/node.py
similarity index 100%
rename from dts/framework/testbed_model/node.py
rename to dts/api/testbed_model/node.py
diff --git a/dts/framework/testbed_model/os_session.py b/dts/api/testbed_model/os_session.py
similarity index 99%
rename from dts/framework/testbed_model/os_session.py
rename to dts/api/testbed_model/os_session.py
index 08122874e6..7944fda8c0 100644
--- a/dts/framework/testbed_model/os_session.py
+++ b/dts/api/testbed_model/os_session.py
@@ -73,11 +73,11 @@ class OSSessionInfo:
Attributes:
os_name: The name of the running operating system of
- the :class:`~framework.testbed_model.node.Node`.
+ the :class:`~api.testbed_model.node.Node`.
os_version: The version of the running operating system of
- the :class:`~framework.testbed_model.node.Node`.
+ the :class:`~api.testbed_model.node.Node`.
kernel_version: The kernel version of the running operating system of
- the :class:`~framework.testbed_model.node.Node`.
+ the :class:`~api.testbed_model.node.Node`.
"""
os_name: str
diff --git a/dts/framework/testbed_model/port.py b/dts/api/testbed_model/port.py
similarity index 100%
rename from dts/framework/testbed_model/port.py
rename to dts/api/testbed_model/port.py
diff --git a/dts/framework/testbed_model/posix_session.py b/dts/api/testbed_model/posix_session.py
similarity index 100%
rename from dts/framework/testbed_model/posix_session.py
rename to dts/api/testbed_model/posix_session.py
diff --git a/dts/framework/testbed_model/topology.py b/dts/api/testbed_model/topology.py
similarity index 99%
rename from dts/framework/testbed_model/topology.py
rename to dts/api/testbed_model/topology.py
index 6b8c5edee5..7d074f9ef4 100644
--- a/dts/framework/testbed_model/topology.py
+++ b/dts/api/testbed_model/topology.py
@@ -19,8 +19,8 @@
from api.capabilities import LinkTopology
from api.exception import ConfigurationError, InternalError
-from framework.testbed_model.linux_session import LinuxSession
-from framework.testbed_model.node import Node, NodeIdentifier
+from api.testbed_model.linux_session import LinuxSession
+from api.testbed_model.node import Node, NodeIdentifier
from .port import DriverKind, Port, PortConfig
diff --git a/dts/framework/testbed_model/traffic_generator/__init__.py b/dts/api/testbed_model/traffic_generator/__init__.py
similarity index 97%
rename from dts/framework/testbed_model/traffic_generator/__init__.py
rename to dts/api/testbed_model/traffic_generator/__init__.py
index 324b5e88f3..11fa25448a 100644
--- a/dts/framework/testbed_model/traffic_generator/__init__.py
+++ b/dts/api/testbed_model/traffic_generator/__init__.py
@@ -15,12 +15,12 @@
"""
from api.exception import ConfigurationError
+from api.testbed_model.node import Node
from framework.config.test_run import (
ScapyTrafficGeneratorConfig,
TrafficGeneratorConfig,
TrexTrafficGeneratorConfig,
)
-from framework.testbed_model.node import Node
from .scapy import ScapyTrafficGenerator
from .traffic_generator import TrafficGenerator
diff --git a/dts/framework/testbed_model/traffic_generator/capturing_traffic_generator.py b/dts/api/testbed_model/traffic_generator/capturing_traffic_generator.py
similarity index 99%
rename from dts/framework/testbed_model/traffic_generator/capturing_traffic_generator.py
rename to dts/api/testbed_model/traffic_generator/capturing_traffic_generator.py
index 2804d64990..db274e5e82 100644
--- a/dts/framework/testbed_model/traffic_generator/capturing_traffic_generator.py
+++ b/dts/api/testbed_model/traffic_generator/capturing_traffic_generator.py
@@ -17,8 +17,8 @@
from scapy.packet import Packet
from api.artifact import Artifact
+from api.testbed_model.port import Port
from api.utils import get_packet_summaries
-from framework.testbed_model.port import Port
from .traffic_generator import TrafficGenerator
diff --git a/dts/framework/testbed_model/traffic_generator/performance_traffic_generator.py b/dts/api/testbed_model/traffic_generator/performance_traffic_generator.py
similarity index 100%
rename from dts/framework/testbed_model/traffic_generator/performance_traffic_generator.py
rename to dts/api/testbed_model/traffic_generator/performance_traffic_generator.py
diff --git a/dts/framework/testbed_model/traffic_generator/scapy.py b/dts/api/testbed_model/traffic_generator/scapy.py
similarity index 98%
rename from dts/framework/testbed_model/traffic_generator/scapy.py
rename to dts/api/testbed_model/traffic_generator/scapy.py
index 70856cc1f0..1edc1af838 100644
--- a/dts/framework/testbed_model/traffic_generator/scapy.py
+++ b/dts/api/testbed_model/traffic_generator/scapy.py
@@ -26,15 +26,15 @@
from scapy.packet import Packet
from api.exception import InteractiveSSHSessionDeadError, InternalError
+from api.testbed_model.node import Node
+from api.testbed_model.port import Port
+from api.testbed_model.topology import Topology
+from api.testbed_model.traffic_generator.capturing_traffic_generator import (
+ PacketFilteringConfig,
+)
from framework.config.node import OS
from framework.config.test_run import ScapyTrafficGeneratorConfig
from framework.remote_session.python_shell import PythonShell
-from framework.testbed_model.node import Node
-from framework.testbed_model.port import Port
-from framework.testbed_model.topology import Topology
-from framework.testbed_model.traffic_generator.capturing_traffic_generator import (
- PacketFilteringConfig,
-)
from .capturing_traffic_generator import CapturingTrafficGenerator
diff --git a/dts/framework/testbed_model/traffic_generator/traffic_generator.py b/dts/api/testbed_model/traffic_generator/traffic_generator.py
similarity index 94%
rename from dts/framework/testbed_model/traffic_generator/traffic_generator.py
rename to dts/api/testbed_model/traffic_generator/traffic_generator.py
index fedce77fdf..5fd68e5144 100644
--- a/dts/framework/testbed_model/traffic_generator/traffic_generator.py
+++ b/dts/api/testbed_model/traffic_generator/traffic_generator.py
@@ -13,11 +13,11 @@
from scapy.packet import Packet
+from api.testbed_model.node import Node
+from api.testbed_model.port import Port
+from api.testbed_model.topology import Topology
from framework.config.test_run import TrafficGeneratorConfig
from framework.logger import DTSLogger, get_dts_logger
-from framework.testbed_model.node import Node
-from framework.testbed_model.port import Port
-from framework.testbed_model.topology import Topology
class TrafficGenerator(ABC):
diff --git a/dts/framework/testbed_model/traffic_generator/trex.py b/dts/api/testbed_model/traffic_generator/trex.py
similarity index 97%
rename from dts/framework/testbed_model/traffic_generator/trex.py
rename to dts/api/testbed_model/traffic_generator/trex.py
index 7fd6234d27..ffb1390706 100644
--- a/dts/framework/testbed_model/traffic_generator/trex.py
+++ b/dts/api/testbed_model/traffic_generator/trex.py
@@ -12,19 +12,19 @@
from scapy.packet import Packet
from api.exception import SSHTimeoutError
+from api.testbed_model.node import Node, create_session
+from api.testbed_model.os_session import OSSession
+from api.testbed_model.topology import Topology
+from api.testbed_model.traffic_generator.performance_traffic_generator import (
+ PerformanceTrafficGenerator,
+ PerformanceTrafficStats,
+)
from api.utils import StrEnum
from framework.config.node import OS, NodeConfiguration
from framework.config.test_run import TrexTrafficGeneratorConfig
from framework.parser import TextParser
from framework.remote_session.blocking_app import BlockingApp
from framework.remote_session.python_shell import PythonShell
-from framework.testbed_model.node import Node, create_session
-from framework.testbed_model.os_session import OSSession
-from framework.testbed_model.topology import Topology
-from framework.testbed_model.traffic_generator.performance_traffic_generator import (
- PerformanceTrafficGenerator,
- PerformanceTrafficStats,
-)
@dataclass(slots=True)
diff --git a/dts/framework/testbed_model/virtual_device.py b/dts/api/testbed_model/virtual_device.py
similarity index 100%
rename from dts/framework/testbed_model/virtual_device.py
rename to dts/api/testbed_model/virtual_device.py
diff --git a/dts/framework/params/eal.py b/dts/framework/params/eal.py
index e84a20f02f..86bfd3fcc6 100644
--- a/dts/framework/params/eal.py
+++ b/dts/framework/params/eal.py
@@ -6,12 +6,12 @@
from dataclasses import dataclass, field
from typing import TYPE_CHECKING, Literal
+from api.testbed_model.cpu import LogicalCoreList
+from api.testbed_model.virtual_device import VirtualDevice
from framework.params import Params, Switch
-from framework.testbed_model.cpu import LogicalCoreList
-from framework.testbed_model.virtual_device import VirtualDevice
if TYPE_CHECKING:
- from framework.testbed_model.port import Port
+ from api.testbed_model.port import Port
def _port_to_pci(port: "Port") -> str:
diff --git a/dts/framework/params/types.py b/dts/framework/params/types.py
index a9f3749083..f9a51963a2 100644
--- a/dts/framework/params/types.py
+++ b/dts/framework/params/types.py
@@ -32,6 +32,9 @@ def create_testpmd(**kwargs: Unpack[TestPmdParamsDict]):
TestType,
TLSVersion,
)
+from api.testbed_model.cpu import LogicalCoreList
+from api.testbed_model.port import Port
+from api.testbed_model.virtual_device import VirtualDevice
from api.testpmd.config import (
AnonMempoolAllocationMode,
EthPeer,
@@ -55,9 +58,6 @@ def create_testpmd(**kwargs: Unpack[TestPmdParamsDict]):
)
from api.testpmd.types import RxOffloadCapability, TxOffloadCapability
from framework.params import Switch, YesNoSwitch
-from framework.testbed_model.cpu import LogicalCoreList
-from framework.testbed_model.port import Port
-from framework.testbed_model.virtual_device import VirtualDevice
class EalParamsDict(TypedDict, total=False):
diff --git a/dts/framework/remote_session/blocking_app.py b/dts/framework/remote_session/blocking_app.py
index 07db6dfeb0..84db3974b1 100644
--- a/dts/framework/remote_session/blocking_app.py
+++ b/dts/framework/remote_session/blocking_app.py
@@ -31,11 +31,11 @@
from typing_extensions import Self
from api.context import get_ctx
+from api.testbed_model.node import Node
from framework.params import Params
from framework.params.eal import EalParams
from framework.remote_session.dpdk_shell import compute_eal_params
from framework.remote_session.interactive_shell import InteractiveShell
-from framework.testbed_model.node import Node
P = TypeVar("P", bound=Params)
diff --git a/dts/framework/remote_session/dpdk.py b/dts/framework/remote_session/dpdk.py
index ee34eb567d..c02c68af77 100644
--- a/dts/framework/remote_session/dpdk.py
+++ b/dts/framework/remote_session/dpdk.py
@@ -16,6 +16,10 @@
from api.capabilities import LinkTopology
from api.context import get_ctx
from api.exception import ConfigurationError, RemoteFileNotFoundError
+from api.testbed_model.cpu import LogicalCore, LogicalCoreCount, LogicalCoreList, lcore_filter
+from api.testbed_model.node import Node
+from api.testbed_model.os_session import OSSession
+from api.testbed_model.virtual_device import VirtualDevice
from api.utils import MesonArgs, TarCompressionFormat
from framework.config.test_run import (
DPDKBuildConfiguration,
@@ -31,10 +35,6 @@
from framework.logger import DTSLogger, get_dts_logger
from framework.params.eal import EalParams
from framework.remote_session.remote_session import CommandResult
-from framework.testbed_model.cpu import LogicalCore, LogicalCoreCount, LogicalCoreList, lcore_filter
-from framework.testbed_model.node import Node
-from framework.testbed_model.os_session import OSSession
-from framework.testbed_model.virtual_device import VirtualDevice
@dataclass(slots=True, frozen=True)
diff --git a/dts/framework/remote_session/dpdk_shell.py b/dts/framework/remote_session/dpdk_shell.py
index a8f169787c..b807f9bdae 100644
--- a/dts/framework/remote_session/dpdk_shell.py
+++ b/dts/framework/remote_session/dpdk_shell.py
@@ -11,12 +11,12 @@
from pathlib import PurePath
from api.context import get_ctx
+from api.testbed_model.cpu import LogicalCoreList
from framework.params.eal import EalParams
from framework.remote_session.interactive_shell import (
InteractiveShell,
only_active,
)
-from framework.testbed_model.cpu import LogicalCoreList
def compute_eal_params(
diff --git a/dts/framework/remote_session/interactive_shell.py b/dts/framework/remote_session/interactive_shell.py
index 362bc2a352..831861a9ac 100644
--- a/dts/framework/remote_session/interactive_shell.py
+++ b/dts/framework/remote_session/interactive_shell.py
@@ -35,10 +35,10 @@
InteractiveSSHSessionDeadError,
InteractiveSSHTimeoutError,
)
+from api.testbed_model.node import Node
from framework.logger import DTSLogger, get_dts_logger
from framework.params import Params
from framework.settings import SETTINGS
-from framework.testbed_model.node import Node
P = ParamSpec("P")
T = TypeVar("T", bound="InteractiveShell")
diff --git a/dts/framework/runner.py b/dts/framework/runner.py
index cb137fbf7b..ba5bc45cfc 100644
--- a/dts/framework/runner.py
+++ b/dts/framework/runner.py
@@ -13,9 +13,9 @@
import textwrap
from api.exception import ConfigurationError
+from api.testbed_model.node import Node
from framework.config.common import ValidationContext
from framework.test_run import TestRun
-from framework.testbed_model.node import Node
from .config import Configuration, load_config
from .logger import DTSLogger, get_dts_logger
diff --git a/dts/framework/test_result.py b/dts/framework/test_result.py
index 3cecb928ca..5f945163ce 100644
--- a/dts/framework/test_result.py
+++ b/dts/framework/test_result.py
@@ -36,9 +36,9 @@
from typing_extensions import OrderedDict
from api.exception import DTSError, ErrorSeverity, InternalError
+from api.testbed_model.os_session import OSSessionInfo
from framework.remote_session.dpdk import DPDKBuildInfo
from framework.settings import SETTINGS
-from framework.testbed_model.os_session import OSSessionInfo
class Result(IntEnum):
diff --git a/dts/framework/test_run.py b/dts/framework/test_run.py
index 8b9ae4a49a..42a56d38c9 100644
--- a/dts/framework/test_run.py
+++ b/dts/framework/test_run.py
@@ -110,20 +110,20 @@
from api.capabilities import LinkTopology
from api.context import Context, init_ctx
from api.exception import InternalError, SkippedTestException, TestCaseVerifyError
+from api.testbed_model.capability import (
+ Capability,
+ get_supported_capabilities,
+ test_if_supported,
+)
+from api.testbed_model.node import Node
+from api.testbed_model.topology import PortLink, Topology
+from api.testbed_model.traffic_generator import create_traffic_generator
from framework.config.test_run import TestRunConfiguration
from framework.logger import DTSLogger, get_dts_logger
from framework.remote_session.dpdk import DPDKBuildEnvironment, DPDKRuntimeEnvironment
from framework.settings import SETTINGS
from framework.test_result import Result, ResultNode, TestRunResult
from framework.test_suite import BaseConfig, TestCase, TestCaseType, TestSuite
-from framework.testbed_model.capability import (
- Capability,
- get_supported_capabilities,
- test_if_supported,
-)
-from framework.testbed_model.node import Node
-from framework.testbed_model.topology import PortLink, Topology
-from framework.testbed_model.traffic_generator import create_traffic_generator
TestScenario = tuple[type[TestSuite], BaseConfig, deque[type[TestCase]]]
diff --git a/dts/framework/test_suite.py b/dts/framework/test_suite.py
index 6066f7a77a..786cfc7bff 100644
--- a/dts/framework/test_suite.py
+++ b/dts/framework/test_suite.py
@@ -30,10 +30,10 @@
from typing_extensions import Self
from api.exception import ConfigurationError, InternalError
+from api.testbed_model.capability import TestProtocol
+from api.testbed_model.topology import Topology
from api.utils import to_pascal_case
from framework.config.common import FrozenModel
-from framework.testbed_model.capability import TestProtocol
-from framework.testbed_model.topology import Topology
from .logger import DTSLogger, get_dts_logger
diff --git a/dts/tests/TestSuite_blocklist.py b/dts/tests/TestSuite_blocklist.py
index c57231de22..97e03b8fb7 100644
--- a/dts/tests/TestSuite_blocklist.py
+++ b/dts/tests/TestSuite_blocklist.py
@@ -11,9 +11,9 @@
requires_link_topology,
)
from api.test import verify
+from api.testbed_model.port import Port
from api.testpmd import TestPmd
from framework.test_suite import TestSuite, func_test
-from framework.testbed_model.port import Port
class TestBlocklist(TestSuite):
diff --git a/dts/tests/TestSuite_cryptodev_latency.py b/dts/tests/TestSuite_cryptodev_latency.py
index ed6423eb26..981c483a14 100644
--- a/dts/tests/TestSuite_cryptodev_latency.py
+++ b/dts/tests/TestSuite_cryptodev_latency.py
@@ -31,8 +31,8 @@
CryptodevResults,
)
from api.test import skip, verify
+from api.testbed_model.virtual_device import VirtualDevice
from framework.test_suite import BaseConfig, TestSuite, crypto_test
-from framework.testbed_model.virtual_device import VirtualDevice
config_list: list[dict[str, int | float | str]] = [
{"buff_size": 64, "avg_cycles": 99_999.00, "avg_time_us": 9999.0},
diff --git a/dts/tests/TestSuite_cryptodev_throughput.py b/dts/tests/TestSuite_cryptodev_throughput.py
index d69714e1fa..b861c52bae 100644
--- a/dts/tests/TestSuite_cryptodev_throughput.py
+++ b/dts/tests/TestSuite_cryptodev_throughput.py
@@ -31,8 +31,8 @@
CryptodevResults,
)
from api.test import skip, verify
+from api.testbed_model.virtual_device import VirtualDevice
from framework.test_suite import BaseConfig, TestSuite, crypto_test
-from framework.testbed_model.virtual_device import VirtualDevice
config_list: list[dict[str, int | float | str]] = [
{"buff_size": 64, "Gbps": 1.00},
diff --git a/dts/tests/TestSuite_l2fwd.py b/dts/tests/TestSuite_l2fwd.py
index 574842e2e4..5650366c36 100644
--- a/dts/tests/TestSuite_l2fwd.py
+++ b/dts/tests/TestSuite_l2fwd.py
@@ -19,11 +19,11 @@
match_all_packets,
send_packets_and_capture,
)
+from api.testbed_model.cpu import LogicalCoreCount
from api.testpmd import TestPmd
from api.testpmd.config import EthPeer, SimpleForwardingModes
from api.utils import generate_random_packets
from framework.test_suite import TestSuite, func_test
-from framework.testbed_model.cpu import LogicalCoreCount
@requires_nic_capability(NicCapability.PHYSICAL_FUNCTION)
diff --git a/dts/tests/TestSuite_packet_capture.py b/dts/tests/TestSuite_packet_capture.py
index 4bd15e2401..042b7019aa 100644
--- a/dts/tests/TestSuite_packet_capture.py
+++ b/dts/tests/TestSuite_packet_capture.py
@@ -36,15 +36,15 @@
send_packets_and_capture,
)
from api.test import verify
+from api.testbed_model.cpu import LogicalCoreList
+from api.testbed_model.traffic_generator.capturing_traffic_generator import (
+ PacketFilteringConfig,
+)
from api.testpmd import TestPmd
from framework.params import Params
from framework.remote_session.blocking_app import BlockingApp
from framework.remote_session.dpdk_shell import compute_eal_params
from framework.test_suite import TestSuite, func_test
-from framework.testbed_model.cpu import LogicalCoreList
-from framework.testbed_model.traffic_generator.capturing_traffic_generator import (
- PacketFilteringConfig,
-)
@dataclass(kw_only=True)
diff --git a/dts/tests/TestSuite_smoke_tests.py b/dts/tests/TestSuite_smoke_tests.py
index fce83604a6..656e2e4bb7 100644
--- a/dts/tests/TestSuite_smoke_tests.py
+++ b/dts/tests/TestSuite_smoke_tests.py
@@ -19,12 +19,12 @@
requires_link_topology,
)
from api.test import verify
+from api.testbed_model.linux_session import LinuxSession
from api.testpmd import TestPmd
from api.utils import REGEX_FOR_PCI_ADDRESS
from framework.config.node import PortConfig
from framework.settings import SETTINGS
from framework.test_suite import TestSuite, func_test
-from framework.testbed_model.linux_session import LinuxSession
@requires_link_topology(LinkTopology.NO_LINK)
diff --git a/dts/tests/TestSuite_softnic.py b/dts/tests/TestSuite_softnic.py
index c57a12c932..91a6d4eb9f 100644
--- a/dts/tests/TestSuite_softnic.py
+++ b/dts/tests/TestSuite_softnic.py
@@ -18,11 +18,11 @@
match_all_packets,
send_packets_and_capture,
)
+from api.testbed_model.virtual_device import VirtualDevice
from api.testpmd import TestPmd
from api.testpmd.config import EthPeer
from api.utils import generate_random_packets
from framework.test_suite import TestSuite, func_test
-from framework.testbed_model.virtual_device import VirtualDevice
@requires_nic_capability(NicCapability.PHYSICAL_FUNCTION)
diff --git a/dts/tests/TestSuite_virtio_forward.py b/dts/tests/TestSuite_virtio_forward.py
index 6efaa4e156..06bcd86ee4 100644
--- a/dts/tests/TestSuite_virtio_forward.py
+++ b/dts/tests/TestSuite_virtio_forward.py
@@ -12,12 +12,12 @@
from api.capabilities import LinkTopology
from api.packet import send_packets_and_capture
from api.test import log, verify
+from api.testbed_model.capability import requires
+from api.testbed_model.linux_session import LinuxSession
+from api.testbed_model.virtual_device import VirtualDevice
from api.testpmd import TestPmd
from api.testpmd.config import PortTopology, SimpleForwardingModes
from framework.test_suite import TestSuite, func_test
-from framework.testbed_model.capability import requires
-from framework.testbed_model.linux_session import LinuxSession
-from framework.testbed_model.virtual_device import VirtualDevice
class TestVirtioForward(TestSuite):
--
2.55.0
next prev parent reply other threads:[~2026-08-06 17:51 UTC|newest]
Thread overview: 47+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-08-06 13:53 [PATCH v5 0/7] dts: remove imports from framework in test suites Andrew Bailey
2026-08-06 13:53 ` [PATCH v5 1/7] dts: move exception module from framework to API Andrew Bailey
2026-08-06 13:53 ` [PATCH v5 2/7] dts: move utils " Andrew Bailey
2026-08-06 13:53 ` [PATCH v5 3/7] dts: move context " Andrew Bailey
2026-08-06 13:53 ` [PATCH v5 4/7] dts: move testbed model " Andrew Bailey
2026-08-06 13:53 ` [PATCH v5 5/7] dts: move test suite module " Andrew Bailey
2026-08-06 13:53 ` [PATCH v5 6/7] dts: move params directory " Andrew Bailey
2026-08-06 13:53 ` [PATCH v5 7/7] dts: separate Linux session into interface and logic Andrew Bailey
2026-08-06 17:16 ` [PATCH v6 0/7] dts: remove imports from framework in test suites Andrew Bailey
2026-08-06 17:16 ` [PATCH v6 1/7] doc: improve 26.07 release notes Andrew Bailey
2026-08-06 17:19 ` Andrew Bailey
2026-08-06 17:16 ` [PATCH v6 2/7] version: 26.07.0 Andrew Bailey
2026-08-06 17:19 ` Andrew Bailey
2026-08-06 17:16 ` [PATCH v6 3/7] version: 26.11.0-rc0 Andrew Bailey
2026-08-06 17:20 ` Andrew Bailey
2026-08-06 17:16 ` [PATCH v6 4/7] ethdev: remove flow metadata symbol aliases Andrew Bailey
2026-08-06 17:20 ` Andrew Bailey
2026-08-06 17:16 ` [PATCH v6 5/7] net/mlx5: remove versioned symbols aliases Andrew Bailey
2026-08-06 17:20 ` Andrew Bailey
2026-08-06 17:16 ` [PATCH v6 6/7] dmadev: fix incomplete configuration validation Andrew Bailey
2026-08-06 17:21 ` Andrew Bailey
2026-08-06 17:16 ` [PATCH v6 7/7] lib: remove ICMP and IPv6 deprecated functions and macros Andrew Bailey
2026-08-06 17:21 ` Andrew Bailey
2026-08-06 17:50 ` [PATCH v6 0/7] dts: remove imports from framework in test suites Andrew Bailey
2026-08-06 17:50 ` [PATCH v6 1/7] dts: move exception module from framework to API Andrew Bailey
2026-08-06 17:50 ` [PATCH v6 2/7] dts: move utils " Andrew Bailey
2026-08-06 17:50 ` [PATCH v6 3/7] dts: move context " Andrew Bailey
2026-08-06 17:50 ` Andrew Bailey [this message]
2026-08-06 17:50 ` [PATCH v6 5/7] dts: move test suite module " Andrew Bailey
2026-08-06 17:50 ` [PATCH v6 6/7] dts: move params directory " Andrew Bailey
2026-08-06 17:50 ` [PATCH v6 7/7] dts: separate Linux session into interface and logic Andrew Bailey
2026-08-07 16:16 ` [PATCH v7 0/7] dts: remove imports from framework in test suites Andrew Bailey
2026-08-07 16:16 ` [PATCH v7 1/7] dts: move exception module from framework to API Andrew Bailey
2026-08-20 13:48 ` Luca Vizzarro
2026-08-07 16:16 ` [PATCH v7 2/7] dts: move utils " Andrew Bailey
2026-08-20 13:50 ` Luca Vizzarro
2026-08-07 16:16 ` [PATCH v7 3/7] dts: move context " Andrew Bailey
2026-08-20 13:51 ` Luca Vizzarro
2026-08-07 16:16 ` [PATCH v7 4/7] dts: move testbed model " Andrew Bailey
2026-08-20 13:53 ` Luca Vizzarro
2026-08-07 16:16 ` [PATCH v7 5/7] dts: move test suite module " Andrew Bailey
2026-08-20 13:55 ` Luca Vizzarro
2026-08-07 16:16 ` [PATCH v7 6/7] dts: move params directory " Andrew Bailey
2026-08-20 13:56 ` Luca Vizzarro
2026-08-07 16:16 ` [PATCH v7 7/7] dts: separate Linux session into interface and logic Andrew Bailey
2026-08-20 14:03 ` Luca Vizzarro
2026-08-20 14:04 ` [PATCH v7 0/7] dts: remove imports from framework in test suites Luca Vizzarro
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20260806175024.13655-5-abailey@iol.unh.edu \
--to=abailey@iol.unh.edu \
--cc=dev@dpdk.org \
--cc=dladd@iol.unh.edu \
--cc=dmarx@iol.unh.edu \
--cc=knimoji@iol.unh.edu \
--cc=luca.vizzarro@arm.com \
--cc=lylavoie@iol.unh.edu \
--cc=patrickrobb1997@gmail.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.