DPDK patches and discussions
 help / color / mirror / Atom feed
* [RFC PATCH 0/7] dts: revamp framework
@ 2025-02-03 15:16 Luca Vizzarro
  2025-02-03 15:16 ` [RFC PATCH 1/7] dts: add port topology configuration Luca Vizzarro
                   ` (8 more replies)
  0 siblings, 9 replies; 35+ messages in thread
From: Luca Vizzarro @ 2025-02-03 15:16 UTC (permalink / raw)
  To: dev; +Cc: Luca Vizzarro, Patrick Robb, Paul Szczepanek

Hi there,

This series enables the topology configuration and implements it in the
framework. Moreover, it performs quite a few refactors and a change on
how the test suites operate through the use of a Context. Finally, the
runtime internals are now isolated under the new TestRun and are further
reworked into a finite state machine for ease of handling.

Mind that unfortunately these commits may be breaking in intermediate
steps. Due to the amount of work done in one go, it was rather difficult
to have individually working commits.

I am currently requesting for comments on how we can improve this
further. In the meantime, I am going to remove node discrimination (TG
vs SUT) in the nodes configuration and allow the test run to define the
TG and SUT configurations.

I understand this is a lot of changes so please bear with me, I may have
missed some documentation changes, or even added proper documentation in
some instances. Please do point everything out.

Best,
Luca

Luca Vizzarro (7):
  dts: add port topology configuration
  dts: isolate test specification to config
  dts: revamp Topology model
  dts: improve Port model
  dts: add runtime status
  dts: add global runtime context
  dts: revamp runtime internals

 doc/api/dts/framework.context.rst             |   8 +
 doc/api/dts/framework.status.rst              |   8 +
 doc/api/dts/framework.test_run.rst            |   8 +
 doc/api/dts/index.rst                         |   3 +
 doc/guides/conf.py                            |   3 +-
 dts/framework/config/__init__.py              | 138 +++--
 dts/framework/config/node.py                  |  25 +-
 dts/framework/config/test_run.py              | 144 +++++-
 dts/framework/context.py                      | 107 ++++
 dts/framework/exception.py                    |  33 +-
 dts/framework/logger.py                       |  36 +-
 dts/framework/remote_session/dpdk_shell.py    |  53 +-
 .../single_active_interactive_shell.py        |  14 +-
 dts/framework/remote_session/testpmd_shell.py |  27 +-
 dts/framework/runner.py                       | 485 +-----------------
 dts/framework/status.py                       |  64 +++
 dts/framework/test_result.py                  | 136 +----
 dts/framework/test_run.py                     | 443 ++++++++++++++++
 dts/framework/test_suite.py                   |  73 ++-
 dts/framework/testbed_model/capability.py     |  42 +-
 dts/framework/testbed_model/linux_session.py  |  47 +-
 dts/framework/testbed_model/node.py           |  29 +-
 dts/framework/testbed_model/os_session.py     |  16 +-
 dts/framework/testbed_model/port.py           |  97 ++--
 dts/framework/testbed_model/sut_node.py       |  50 +-
 dts/framework/testbed_model/tg_node.py        |  30 +-
 dts/framework/testbed_model/topology.py       | 165 +++---
 dts/framework/utils.py                        |   8 +-
 dts/nodes.example.yaml                        |  24 +-
 dts/test_runs.example.yaml                    |   3 +
 dts/tests/TestSuite_blocklist.py              |   6 +-
 dts/tests/TestSuite_checksum_offload.py       |  14 +-
 dts/tests/TestSuite_dual_vlan.py              |   6 +-
 dts/tests/TestSuite_dynamic_config.py         |   8 +-
 dts/tests/TestSuite_dynamic_queue_conf.py     |   1 -
 dts/tests/TestSuite_hello_world.py            |   2 +-
 dts/tests/TestSuite_l2fwd.py                  |   9 +-
 dts/tests/TestSuite_mac_filter.py             |  10 +-
 dts/tests/TestSuite_mtu.py                    |  17 +-
 dts/tests/TestSuite_pmd_buffer_scatter.py     |   9 +-
 ...stSuite_port_restart_config_persistency.py |   8 +-
 dts/tests/TestSuite_promisc_support.py        |   8 +-
 dts/tests/TestSuite_smoke_tests.py            |   3 +-
 dts/tests/TestSuite_softnic.py                |   4 +-
 dts/tests/TestSuite_uni_pkt.py                |  14 +-
 dts/tests/TestSuite_vlan.py                   |   8 +-
 46 files changed, 1287 insertions(+), 1159 deletions(-)
 create mode 100644 doc/api/dts/framework.context.rst
 create mode 100644 doc/api/dts/framework.status.rst
 create mode 100644 doc/api/dts/framework.test_run.rst
 create mode 100644 dts/framework/context.py
 create mode 100644 dts/framework/status.py
 create mode 100644 dts/framework/test_run.py

-- 
2.43.0


^ permalink raw reply	[flat|nested] 35+ messages in thread
* [PATCH v2 0/7] dts: revamp framework
@ 2025-02-12 16:45 Luca Vizzarro
  2025-02-12 16:46 ` Luca Vizzarro
  0 siblings, 1 reply; 35+ messages in thread
From: Luca Vizzarro @ 2025-02-12 16:45 UTC (permalink / raw)
  To: dev
  Cc: Nicholas Pratte, Dean Marx, Luca Vizzarro, Patrick Robb, Paul Szczepanek

Hi there,

sending some more final code, hence dropping the RFC.

v2:
- applied suggested changes to the port topology config
- re-implemented FSM from a generator function to a more traditional
  approach where each state is actually is self-contained in its own
  class.
- dropped the status enums (as a consequence of the above)
- fixed some docstrings

Best,
Luca

Luca Vizzarro (7):
  dts: add port topology configuration
  dts: isolate test specification to config
  dts: revamp Topology model
  dts: improve Port model
  dts: add global runtime context
  dts: revamp runtime internals
  dts: remove node distinction

 doc/api/dts/framework.context.rst             |   8 +
 doc/api/dts/framework.remote_session.dpdk.rst |   8 +
 doc/api/dts/framework.remote_session.rst      |   1 +
 doc/api/dts/framework.test_run.rst            |   8 +
 doc/api/dts/index.rst                         |   2 +
 doc/guides/conf.py                            |   3 +-
 dts/framework/config/__init__.py              | 138 ++--
 dts/framework/config/node.py                  |  96 +--
 dts/framework/config/test_run.py              | 214 +++++-
 dts/framework/context.py                      | 120 ++++
 dts/framework/exception.py                    |  33 +-
 dts/framework/logger.py                       |  26 +-
 .../sut_node.py => remote_session/dpdk.py}    | 462 ++++++-------
 dts/framework/remote_session/dpdk_shell.py    |  59 +-
 .../single_active_interactive_shell.py        |  12 +-
 dts/framework/remote_session/testpmd_shell.py |  27 +-
 dts/framework/runner.py                       | 547 +--------------
 dts/framework/test_result.py                  | 138 +---
 dts/framework/test_run.py                     | 641 ++++++++++++++++++
 dts/framework/test_suite.py                   |  80 ++-
 dts/framework/testbed_model/capability.py     |  70 +-
 dts/framework/testbed_model/linux_session.py  |  47 +-
 dts/framework/testbed_model/node.py           | 100 +--
 dts/framework/testbed_model/os_session.py     |  16 +-
 dts/framework/testbed_model/port.py           |  97 ++-
 dts/framework/testbed_model/tg_node.py        | 105 ---
 dts/framework/testbed_model/topology.py       | 165 ++---
 .../traffic_generator/__init__.py             |   8 +-
 .../testbed_model/traffic_generator/scapy.py  |  12 +-
 .../traffic_generator/traffic_generator.py    |   9 +-
 dts/framework/utils.py                        |   8 +-
 dts/nodes.example.yaml                        |  24 +-
 dts/test_runs.example.yaml                    |   4 +
 dts/tests/TestSuite_blocklist.py              |   6 +-
 dts/tests/TestSuite_checksum_offload.py       |  14 +-
 dts/tests/TestSuite_dual_vlan.py              |   6 +-
 dts/tests/TestSuite_dynamic_config.py         |   8 +-
 dts/tests/TestSuite_dynamic_queue_conf.py     |   1 -
 dts/tests/TestSuite_hello_world.py            |   2 +-
 dts/tests/TestSuite_l2fwd.py                  |   9 +-
 dts/tests/TestSuite_mac_filter.py             |  10 +-
 dts/tests/TestSuite_mtu.py                    |  17 +-
 dts/tests/TestSuite_pmd_buffer_scatter.py     |   9 +-
 ...stSuite_port_restart_config_persistency.py |   8 +-
 dts/tests/TestSuite_promisc_support.py        |   8 +-
 dts/tests/TestSuite_smoke_tests.py            |   9 +-
 dts/tests/TestSuite_softnic.py                |   6 +-
 dts/tests/TestSuite_uni_pkt.py                |  14 +-
 dts/tests/TestSuite_vlan.py                   |   8 +-
 49 files changed, 1726 insertions(+), 1697 deletions(-)
 create mode 100644 doc/api/dts/framework.context.rst
 create mode 100644 doc/api/dts/framework.remote_session.dpdk.rst
 create mode 100644 doc/api/dts/framework.test_run.rst
 create mode 100644 dts/framework/context.py
 rename dts/framework/{testbed_model/sut_node.py => remote_session/dpdk.py} (59%)
 create mode 100644 dts/framework/test_run.py
 delete mode 100644 dts/framework/testbed_model/tg_node.py

-- 
2.43.0


^ permalink raw reply	[flat|nested] 35+ messages in thread

end of thread, other threads:[~2025-02-12 19:46 UTC | newest]

Thread overview: 35+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2025-02-03 15:16 [RFC PATCH 0/7] dts: revamp framework Luca Vizzarro
2025-02-03 15:16 ` [RFC PATCH 1/7] dts: add port topology configuration Luca Vizzarro
2025-02-07 18:25   ` Nicholas Pratte
2025-02-12 16:47     ` Luca Vizzarro
2025-02-11 18:00   ` Dean Marx
2025-02-12 16:47     ` Luca Vizzarro
2025-02-03 15:16 ` [RFC PATCH 2/7] dts: isolate test specification to config Luca Vizzarro
2025-02-10 19:09   ` Nicholas Pratte
2025-02-11 18:11   ` Dean Marx
2025-02-03 15:16 ` [RFC PATCH 3/7] dts: revamp Topology model Luca Vizzarro
2025-02-10 19:42   ` Nicholas Pratte
2025-02-11 18:18   ` Dean Marx
2025-02-03 15:16 ` [RFC PATCH 4/7] dts: improve Port model Luca Vizzarro
2025-02-11 18:56   ` Dean Marx
2025-02-03 15:16 ` [RFC PATCH 5/7] dts: add runtime status Luca Vizzarro
2025-02-11 19:45   ` Dean Marx
2025-02-12 18:50   ` Nicholas Pratte
2025-02-03 15:16 ` [RFC PATCH 6/7] dts: add global runtime context Luca Vizzarro
2025-02-11 20:26   ` Dean Marx
2025-02-03 15:16 ` [RFC PATCH 7/7] dts: revamp runtime internals Luca Vizzarro
2025-02-11 20:50   ` Dean Marx
2025-02-04 21:08 ` [RFC PATCH 0/7] dts: revamp framework Dean Marx
2025-02-12 16:52   ` Luca Vizzarro
2025-02-12 16:45 ` [PATCH v2 " Luca Vizzarro
2025-02-12 16:45   ` [PATCH v2 1/7] dts: add port topology configuration Luca Vizzarro
2025-02-12 16:45   ` [PATCH v2 2/7] dts: isolate test specification to config Luca Vizzarro
2025-02-12 16:45   ` [PATCH v2 3/7] dts: revamp Topology model Luca Vizzarro
2025-02-12 16:45   ` [PATCH v2 4/7] dts: improve Port model Luca Vizzarro
2025-02-12 16:45   ` [PATCH v2 5/7] dts: add global runtime context Luca Vizzarro
2025-02-12 19:45     ` Nicholas Pratte
2025-02-12 16:45   ` [PATCH v2 6/7] dts: revamp runtime internals Luca Vizzarro
2025-02-12 16:46   ` [PATCH v2 7/7] dts: remove node distinction Luca Vizzarro
2025-02-12 16:47   ` [PATCH v2 0/7] dts: revamp framework Luca Vizzarro
2025-02-12 16:45 Luca Vizzarro
2025-02-12 16:46 ` Luca Vizzarro

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).