Some test suites import from the traffic generator package. Separate
this package into interface and logic for user import.

Signed-off-by: Andrew Bailey <[email protected]>
---
 doc/api/dts/api.testbed_model.rst                  | 14 ++++++++++++++
 ...ffic_generator.capturing_traffic_generator.rst} |  2 +-
 ...rst => api.testbed_model.traffic_generator.rst} |  6 +++---
 ..._model.traffic_generator.traffic_generator.rst} |  2 +-
 doc/api/dts/framework.testbed_model.rst            |  6 ------
 doc/api/dts/index.rst                              |  1 +
 dts/api/packet.py                                  | 12 +++++-------
 .../capturing_traffic_generator.py                 |  3 +--
 .../performance_traffic_generator.py               |  2 +-
 .../traffic_generator/traffic_generator.py         |  0
 dts/framework/context.py                           |  2 +-
 .../testbed_model/traffic_generator/__init__.py    |  2 +-
 .../testbed_model/traffic_generator/scapy.py       |  9 ++++-----
 .../testbed_model/traffic_generator/trex.py        |  8 ++++----
 dts/tests/TestSuite_packet_capture.py              |  4 +---
 dts/tests/TestSuite_virtio_forward.py              |  9 ++++-----
 16 files changed, 42 insertions(+), 40 deletions(-)
 create mode 100644 doc/api/dts/api.testbed_model.rst
 rename 
doc/api/dts/{framework.testbed_model.traffic_generator.capturing_traffic_generator.rst
 => api.testbed_model.traffic_generator.capturing_traffic_generator.rst} (68%)
 rename doc/api/dts/{framework.testbed_model.traffic_generator.rst => 
api.testbed_model.traffic_generator.rst} (54%)
 rename 
doc/api/dts/{framework.testbed_model.traffic_generator.traffic_generator.rst => 
api.testbed_model.traffic_generator.traffic_generator.rst} (65%)
 rename dts/{framework => 
api}/testbed_model/traffic_generator/capturing_traffic_generator.py (98%)
 rename dts/{framework => 
api}/testbed_model/traffic_generator/performance_traffic_generator.py (95%)
 rename dts/{framework => 
api}/testbed_model/traffic_generator/traffic_generator.py (100%)

diff --git a/doc/api/dts/api.testbed_model.rst 
b/doc/api/dts/api.testbed_model.rst
new file mode 100644
index 0000000000..900d8851fe
--- /dev/null
+++ b/doc/api/dts/api.testbed_model.rst
@@ -0,0 +1,14 @@
+.. 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
\ No newline at end of file
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/framework.testbed_model.traffic_generator.rst 
b/doc/api/dts/api.testbed_model.traffic_generator.rst
similarity index 54%
rename from doc/api/dts/framework.testbed_model.traffic_generator.rst
rename to doc/api/dts/api.testbed_model.traffic_generator.rst
index 24c250ee3a..a22e27a58b 100644
--- a/doc/api/dts/framework.testbed_model.traffic_generator.rst
+++ b/doc/api/dts/api.testbed_model.traffic_generator.rst
@@ -3,7 +3,7 @@
 traffic\_generator Subpackage
 =============================
 
-.. automodule:: framework.testbed_model.traffic_generator
+.. automodule:: api.testbed_model.traffic_generator
    :members:
    :show-inheritance:
 
@@ -11,6 +11,6 @@ traffic\_generator Subpackage
    :hidden:
    :maxdepth: 1
 
-   framework.testbed_model.traffic_generator.traffic_generator
-   framework.testbed_model.traffic_generator.capturing_traffic_generator
+   api.testbed_model.traffic_generator.traffic_generator
+   api.testbed_model.traffic_generator.capturing_traffic_generator
    framework.testbed_model.traffic_generator.scapy
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.rst 
b/doc/api/dts/framework.testbed_model.rst
index f283178f6a..f6fb410133 100644
--- a/doc/api/dts/framework.testbed_model.rst
+++ b/doc/api/dts/framework.testbed_model.rst
@@ -7,12 +7,6 @@ testbed\_model - Testbed Modelling Package
    :members:
    :show-inheritance:
 
-.. toctree::
-   :hidden:
-   :maxdepth: 2
-
-   framework.testbed_model.traffic_generator
-
 .. toctree::
    :hidden:
    :maxdepth: 1
diff --git a/doc/api/dts/index.rst b/doc/api/dts/index.rst
index 98269d6e80..d02bc59d2b 100644
--- a/doc/api/dts/index.rst
+++ b/doc/api/dts/index.rst
@@ -16,6 +16,7 @@ Packages
 
    tests
    api
+   api.testbed_model
    framework.testbed_model
    framework.remote_session
    framework.params
diff --git a/dts/api/packet.py b/dts/api/packet.py
index 3fd6060234..c6d014765f 100644
--- a/dts/api/packet.py
+++ b/dts/api/packet.py
@@ -30,13 +30,11 @@
 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 (
-    PacketFilteringConfig,
-)
-from framework.testbed_model.traffic_generator.performance_traffic_generator 
import (
+from api.testbed_model.traffic_generator.capturing_traffic_generator import 
PacketFilteringConfig
+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 +81,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 +337,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/traffic_generator/capturing_traffic_generator.py 
b/dts/api/testbed_model/traffic_generator/capturing_traffic_generator.py
similarity index 98%
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..dbe0e72c0f 100644
--- 
a/dts/framework/testbed_model/traffic_generator/capturing_traffic_generator.py
+++ b/dts/api/testbed_model/traffic_generator/capturing_traffic_generator.py
@@ -17,11 +17,10 @@
 from scapy.packet import Packet
 
 from api.artifact import Artifact
+from api.testbed_model.traffic_generator.traffic_generator import 
TrafficGenerator
 from api.utils import get_packet_summaries
 from framework.testbed_model.port import Port
 
-from .traffic_generator import TrafficGenerator
-
 
 def _get_default_capture_name() -> str:
     return str(uuid.uuid4())
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 95%
rename from 
dts/framework/testbed_model/traffic_generator/performance_traffic_generator.py
rename to 
dts/api/testbed_model/traffic_generator/performance_traffic_generator.py
index 5be846361c..7953d0b419 100644
--- 
a/dts/framework/testbed_model/traffic_generator/performance_traffic_generator.py
+++ b/dts/api/testbed_model/traffic_generator/performance_traffic_generator.py
@@ -8,7 +8,7 @@
 
 from scapy.packet import Packet
 
-from .traffic_generator import TrafficGenerator
+from api.testbed_model.traffic_generator.traffic_generator import 
TrafficGenerator
 
 
 @dataclass(slots=True)
diff --git a/dts/framework/testbed_model/traffic_generator/traffic_generator.py 
b/dts/api/testbed_model/traffic_generator/traffic_generator.py
similarity index 100%
rename from dts/framework/testbed_model/traffic_generator/traffic_generator.py
rename to dts/api/testbed_model/traffic_generator/traffic_generator.py
diff --git a/dts/framework/context.py b/dts/framework/context.py
index 709b99421e..6ebe4e0249 100644
--- a/dts/framework/context.py
+++ b/dts/framework/context.py
@@ -16,10 +16,10 @@
 from framework.testbed_model.topology import Topology
 
 if TYPE_CHECKING:
+    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/framework/testbed_model/traffic_generator/__init__.py 
b/dts/framework/testbed_model/traffic_generator/__init__.py
index 324b5e88f3..d630efa6c2 100644
--- a/dts/framework/testbed_model/traffic_generator/__init__.py
+++ b/dts/framework/testbed_model/traffic_generator/__init__.py
@@ -15,6 +15,7 @@
 """
 
 from api.exception import ConfigurationError
+from api.testbed_model.traffic_generator.traffic_generator import 
TrafficGenerator
 from framework.config.test_run import (
     ScapyTrafficGeneratorConfig,
     TrafficGeneratorConfig,
@@ -23,7 +24,6 @@
 from framework.testbed_model.node import Node
 
 from .scapy import ScapyTrafficGenerator
-from .traffic_generator import TrafficGenerator
 from .trex import TrexTrafficGenerator
 
 
diff --git a/dts/framework/testbed_model/traffic_generator/scapy.py 
b/dts/framework/testbed_model/traffic_generator/scapy.py
index 70856cc1f0..0bd1eb39bb 100644
--- a/dts/framework/testbed_model/traffic_generator/scapy.py
+++ b/dts/framework/testbed_model/traffic_generator/scapy.py
@@ -26,17 +26,16 @@
 from scapy.packet import Packet
 
 from api.exception import InteractiveSSHSessionDeadError, InternalError
+from api.testbed_model.traffic_generator.capturing_traffic_generator import (
+    CapturingTrafficGenerator,
+    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
 
 
 class ScapyAsyncSniffer(PythonShell):
diff --git a/dts/framework/testbed_model/traffic_generator/trex.py 
b/dts/framework/testbed_model/traffic_generator/trex.py
index eea37ba1d6..7ce1d40d79 100644
--- a/dts/framework/testbed_model/traffic_generator/trex.py
+++ b/dts/framework/testbed_model/traffic_generator/trex.py
@@ -13,6 +13,10 @@
 from scapy.packet import Packet
 
 from api.exception import SSHTimeoutError
+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
@@ -22,10 +26,6 @@
 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/tests/TestSuite_packet_capture.py 
b/dts/tests/TestSuite_packet_capture.py
index 4bd15e2401..dc71991a91 100644
--- a/dts/tests/TestSuite_packet_capture.py
+++ b/dts/tests/TestSuite_packet_capture.py
@@ -36,15 +36,13 @@
     send_packets_and_capture,
 )
 from api.test import verify
+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_virtio_forward.py 
b/dts/tests/TestSuite_virtio_forward.py
index 6c4d7532c7..fe1257800e 100644
--- a/dts/tests/TestSuite_virtio_forward.py
+++ b/dts/tests/TestSuite_virtio_forward.py
@@ -9,14 +9,13 @@
 from scapy.layers.inet import IP
 from scapy.layers.l2 import Ether
 
-from api.capabilities import LinkTopology
+from api.capabilities import LinkTopology, requires_link_topology
 from api.packet import send_packets_and_capture
 from api.test import log, verify
 from api.testbed_model.linux_session import LinuxSession
 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.virtual_device import VirtualDevice
 
 
@@ -28,7 +27,7 @@ class TestVirtioForward(TestSuite):
     )
     vhost_user_vdev = VirtualDevice("eth_vhost0,iface=/tmp/vhost-net,client=1")
 
-    @requires(topology_type=LinkTopology.NO_LINK)
+    @requires_link_topology(LinkTopology.NO_LINK)
     @func_test
     def virtio_server(self) -> None:
         """Test virtio server packet transmission.
@@ -77,7 +76,7 @@ def virtio_server(self) -> None:
                 "Vhost session failed to receive packets from virtio session.",
             )
 
-    @requires(topology_type=LinkTopology.NO_LINK)
+    @requires_link_topology(LinkTopology.NO_LINK)
     @func_test
     def virtio_server_reconnect(self) -> None:
         """Test virtio server reconnection.
@@ -132,7 +131,7 @@ def virtio_server_reconnect(self) -> None:
                     "Vhost session failed to receive packets from virtio 
session.",
                 )
 
-    @requires(topology_type=LinkTopology.ONE_LINK)
+    @requires_link_topology(LinkTopology.ONE_LINK)
     @func_test
     def pvp_loop(self) -> None:
         """Test vhost/virtio physical-virtual-physical topology.
-- 
2.55.0

Reply via email to