[PATCH v4 0/3] Add TREX Traffic Generator to DTS Framework

Patrick Robb probb at iol.unh.edu
Thu Oct 2 01:16:56 CEST 2025


This series adds support for performance traffic generators, and
includes an implementation for using the TREX traffic generator for
performance testing. It also includes a new testsuite which measures the
single core forwarding performance of a SUT in millions of packets per
second.

There are some points in this series which may warrant further
discussion. Namely:

- We want to run only the functional traffic generator OR the
  performance traffic generator at a given time. So, this series makes
DTS tear down and bring up traffic generators as needed, depending on
whether a testcase is of type functional or performance. I think this is
a good approach in general, but in order to facilitate this I have
removed the shell pool cleanup at testcase teardown and testsuite
teardown. Now, it only cleans up at testrun teardown. I think it is
possible to add these shell pool cleanups back in and keep the existing
solution, but I would like to discuss it at the next CI or DTS meeting.

- Currently, the testsuite prints out a stats table to the console when
  the single core forwarding testsuite is complete. It may make sense to
start writing these stats to an output file as well.

If you would like to test this series, please also note that you will
have to move your YAML configs to the new configurations directory.

Nicholas Pratte (3):
  dts: rework traffic generator inheritance structure
  dts: add trex traffic generator to dts framework
  dts: add performance test functions to test suite API

 ...sts.TestSuite_single_core_forward_perf.rst |   8 +
 doc/guides/tools/dts.rst                      |  35 ++-
 dts/{ => configurations}/nodes.example.yaml   |   0
 .../test_run.example.yaml                     |   6 +-
 dts/configurations/tests_config.example.yaml  |  17 ++
 dts/framework/config/test_run.py              |  22 +-
 dts/framework/context.py                      |   5 +-
 dts/framework/remote_session/blocking_app.py  |   4 +-
 .../remote_session/interactive_shell.py       |   2 +-
 dts/framework/settings.py                     |  12 +-
 dts/framework/test_run.py                     |  54 +++-
 dts/framework/test_suite.py                   |  32 ++-
 .../traffic_generator/__init__.py             |  13 +-
 .../capturing_traffic_generator.py            |  34 +++
 .../performance_traffic_generator.py          |  64 +++++
 .../testbed_model/traffic_generator/scapy.py  |   1 +
 .../traffic_generator/traffic_generator.py    |  44 +--
 .../testbed_model/traffic_generator/trex.py   | 258 ++++++++++++++++++
 .../TestSuite_single_core_forward_perf.py     | 139 ++++++++++
 dts/tests_config.example.yaml                 |   5 -
 20 files changed, 690 insertions(+), 65 deletions(-)
 create mode 100644 doc/api/dts/tests.TestSuite_single_core_forward_perf.rst
 rename dts/{ => configurations}/nodes.example.yaml (100%)
 rename dts/{ => configurations}/test_run.example.yaml (88%)
 create mode 100644 dts/configurations/tests_config.example.yaml
 create mode 100644 dts/framework/testbed_model/traffic_generator/performance_traffic_generator.py
 create mode 100644 dts/framework/testbed_model/traffic_generator/trex.py
 create mode 100644 dts/tests/TestSuite_single_core_forward_perf.py
 delete mode 100644 dts/tests_config.example.yaml

-- 
2.49.0



More information about the dev mailing list