DPDK patches and discussions
 help / color / mirror / Atom feed
From: Paul Szczepanek <paul.szczepanek@arm.com>
To: dev@dpdk.org
Cc: Paul Szczepanek <paul.szczepanek@arm.com>
Subject: [RFC 0/2] Split DTS framework and public API
Date: Fri, 29 Aug 2025 18:43:10 +0100	[thread overview]
Message-ID: <20250829174312.2855311-1-paul.szczepanek@arm.com> (raw)

The idea is to split off framework and public API. All calls in the tests
should go through the public API. This will allow us to change the
framework internals without breaking the tests and also to provide a
stable API for test writers.

More importantly this will make it easier to non DTS developers to write
tests by being able to more easily find the relevant functionality.

The first patch moves TestPmd related code to the public API. The second
patch updates all tests to use the new API. Further patches will move
more functionality to the public API.

Moving code required fixing some circular dependencies in the framework
and simplifying the capabilities code to allow selection through a
vanilla enum.

The functionality is otherwise unchanged.

Paul Szczepanek (2):
  dts: move testpmd into API
  dts: update tests to use new API

 doc/api/dts/api.capabilities.rst              |    8 +
 doc/api/dts/api.rst                           |   20 +
 ...stpmd_shell.rst => api.testpmd.config.rst} |    4 +-
 doc/api/dts/api.testpmd.rst                   |   15 +
 doc/api/dts/api.testpmd.types.rst             |    8 +
 doc/api/dts/framework.params.rst              |    1 -
 doc/api/dts/framework.params.testpmd.rst      |    8 -
 doc/api/dts/framework.remote_session.rst      |    1 -
 doc/api/dts/index.rst                         |    1 +
 dts/api/__init__.py                           |   14 +
 dts/api/capabilities.py                       |  180 ++
 dts/api/testpmd/__init__.py                   | 1294 ++++++++
 .../testpmd.py => api/testpmd/config.py}      |    9 +-
 dts/api/testpmd/types.py                      | 1406 ++++++++
 dts/framework/config/__init__.py              |    3 +-
 dts/framework/params/eal.py                   |   12 +-
 dts/framework/params/types.py                 |    4 +-
 dts/framework/remote_session/__init__.py      |   44 -
 dts/framework/remote_session/testpmd_shell.py | 2844 -----------------
 dts/framework/testbed_model/capability.py     |  144 +-
 dts/framework/testbed_model/linux_session.py  |    2 +-
 dts/framework/testbed_model/os_session.py     |   14 +-
 dts/framework/testbed_model/topology.py       |   30 +-
 dts/tests/TestSuite_blocklist.py              |   11 +-
 dts/tests/TestSuite_checksum_offload.py       |   44 +-
 dts/tests/TestSuite_dual_vlan.py              |   12 +-
 dts/tests/TestSuite_dynamic_config.py         |   27 +-
 dts/tests/TestSuite_dynamic_queue_conf.py     |   29 +-
 dts/tests/TestSuite_hello_world.py            |    4 +-
 dts/tests/TestSuite_l2fwd.py                  |   18 +-
 dts/tests/TestSuite_mac_filter.py             |   17 +-
 dts/tests/TestSuite_mtu.py                    |   19 +-
 dts/tests/TestSuite_packet_capture.py         |   14 +-
 dts/tests/TestSuite_pmd_buffer_scatter.py     |   19 +-
 dts/tests/TestSuite_port_control.py           |   21 +-
 ...stSuite_port_restart_config_persistency.py |   14 +-
 dts/tests/TestSuite_port_stats.py             |   21 +-
 dts/tests/TestSuite_promisc_support.py        |   11 +-
 dts/tests/TestSuite_queue_start_stop.py       |   24 +-
 dts/tests/TestSuite_rte_flow.py               |   36 +-
 dts/tests/TestSuite_smoke_tests.py            |   11 +-
 dts/tests/TestSuite_softnic.py                |   18 +-
 dts/tests/TestSuite_uni_pkt.py                |   35 +-
 dts/tests/TestSuite_vlan.py                   |   26 +-
 44 files changed, 3333 insertions(+), 3164 deletions(-)
 create mode 100644 doc/api/dts/api.capabilities.rst
 create mode 100644 doc/api/dts/api.rst
 rename doc/api/dts/{framework.remote_session.testpmd_shell.rst =>
  api.testpmd.config.rst} (54%)
 create mode 100644 doc/api/dts/api.testpmd.rst
 create mode 100644 doc/api/dts/api.testpmd.types.rst
 delete mode 100644 doc/api/dts/framework.params.testpmd.rst
 create mode 100644 dts/api/__init__.py
 create mode 100644 dts/api/capabilities.py
 create mode 100644 dts/api/testpmd/__init__.py
 rename dts/{framework/params/testpmd.py => api/testpmd/config.py} (98%)
 create mode 100644 dts/api/testpmd/types.py
 delete mode 100644 dts/framework/remote_session/testpmd_shell.py

--
2.39.5


             reply	other threads:[~2025-08-29 17:43 UTC|newest]

Thread overview: 3+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2025-08-29 17:43 Paul Szczepanek [this message]
2025-08-29 17:43 ` [RFC 1/2] dts: move testpmd into API Paul Szczepanek
2025-08-29 17:43 ` [RFC 2/2] dts: update tests to use new API Paul Szczepanek

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20250829174312.2855311-1-paul.szczepanek@arm.com \
    --to=paul.szczepanek@arm.com \
    --cc=dev@dpdk.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
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).