Add abstractions for traffic generator split into those that can and can't capture traffic.
The Scapy implementation uses an XML-RPC server for remote control. This requires an interactive session to add Scapy functions to the server. The interactive session code is based on another patch [0]. The basic test case is there to showcase the Scapy implementation - it sends just one UDP packet and verifies it on the other end. [0]: http://patches.dpdk.org/project/dpdk/patch/20230718214802.3214-3-jspew...@iol.unh.edu/ Juraj Linkeš (6): dts: add scapy dependency dts: add traffic generator config dts: traffic generator abstractions dts: add python remote interactive shell dts: scapy traffic generator implementation dts: add basic UDP test case doc/guides/tools/dts.rst | 31 ++ dts/conf.yaml | 27 +- dts/framework/config/__init__.py | 84 ++++- dts/framework/config/conf_yaml_schema.json | 32 +- dts/framework/dts.py | 65 ++-- dts/framework/remote_session/__init__.py | 1 + dts/framework/remote_session/linux_session.py | 96 ++++++ dts/framework/remote_session/os_session.py | 35 ++- .../remote_session/remote/__init__.py | 1 + .../remote_session/remote/python_shell.py | 12 + dts/framework/test_suite.py | 221 ++++++++++++- dts/framework/testbed_model/__init__.py | 1 + .../capturing_traffic_generator.py | 136 ++++++++ dts/framework/testbed_model/hw/port.py | 60 ++++ dts/framework/testbed_model/node.py | 34 +- dts/framework/testbed_model/scapy.py | 290 ++++++++++++++++++ dts/framework/testbed_model/sut_node.py | 9 +- dts/framework/testbed_model/tg_node.py | 99 ++++++ .../testbed_model/traffic_generator.py | 72 +++++ dts/framework/utils.py | 13 + dts/poetry.lock | 21 +- dts/pyproject.toml | 1 + dts/tests/TestSuite_os_udp.py | 45 +++ 23 files changed, 1329 insertions(+), 57 deletions(-) create mode 100644 dts/framework/remote_session/remote/python_shell.py create mode 100644 dts/framework/testbed_model/capturing_traffic_generator.py create mode 100644 dts/framework/testbed_model/hw/port.py create mode 100644 dts/framework/testbed_model/scapy.py create mode 100644 dts/framework/testbed_model/tg_node.py create mode 100644 dts/framework/testbed_model/traffic_generator.py create mode 100644 dts/tests/TestSuite_os_udp.py -- 2.34.1