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

