netdev.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH net-next v2 00/12] selftests: drv-net: convert GRO and Toeplitz tests to work for drivers in NIPA
@ 2025-11-18 21:51 Jakub Kicinski
  2025-11-18 21:51 ` [PATCH net-next v2 01/12] selftests: net: py: coding style improvements Jakub Kicinski
                   ` (12 more replies)
  0 siblings, 13 replies; 30+ messages in thread
From: Jakub Kicinski @ 2025-11-18 21:51 UTC (permalink / raw)
  To: davem
  Cc: netdev, edumazet, pabeni, andrew+netdev, horms,
	willemdebruijn.kernel, shuah, sdf, krakauer, linux-kselftest,
	petrm, matttbe, Jakub Kicinski

Main objective of this series is to convert the gro.sh and toeplitz.sh
tests to be "NIPA-compatible" - meaning make use of the Python env,
which lets us run the tests against either netdevsim or a real device.

The tests seem to have been written with a different flow in mind.
Namely they source different bash "setup" scripts depending on arguments
passed to the test. While I have nothing against the use of bash and
the overall architecture - the existing code needs quite a bit of work
(don't assume MAC/IP addresses, support remote endpoint over SSH).
If I'm the one fixing it, I'd rather convert them to our "simplistic"
Python.

This series rewrites the tests in Python while addressing their
shortcomings. The functionality of running the test over loopback
on a real device is retained but with a different method of invocation
(see the last patch).

Once again we are dealing with a script which run over a variety of
protocols (combination of [ipv4, ipv6, ipip] x [tcp, udp]). The first
4 patches add support for test variants to our scripts. We use the
term "variant" in the same sense as the C kselftest_harness.h -
variant is just a set of static input arguments.

Note that neither GRO nor the Toeplitz test fully passes for me on
any HW I have access to. But this is unrelated to the conversion.
This series is not making any real functional changes to the tests,
it is limited to improving the "test harness" scripts.

v2:
 [patch  5] fix accidental modification of gitignore
 [patch  8] fix typo in "compared"
 [patch  9] fix typo I -> It
 [patch 10] fix typoe configure -> configured
v1: https://lore.kernel.org/20251117205810.1617533-1-kuba@kernel.org

Jakub Kicinski (12):
  selftests: net: py: coding style improvements
  selftests: net: py: extract the case generation logic
  selftests: net: py: add test variants
  selftests: drv-net: xdp: use variants for qstat tests
  selftests: net: relocate gro and toeplitz tests to drivers/net
  selftests: net: py: support ksft ready without wait
  selftests: net: py: read ip link info about remote dev
  netdevsim: pass packets thru GRO on Rx
  selftests: drv-net: add a Python version of the GRO test
  selftests: drv-net: hw: convert the Toeplitz test to Python
  netdevsim: add loopback support
  selftests: net: remove old setup_* scripts

 tools/testing/selftests/drivers/net/Makefile  |   2 +
 .../testing/selftests/drivers/net/hw/Makefile |   6 +-
 tools/testing/selftests/net/Makefile          |   7 -
 tools/testing/selftests/net/lib/Makefile      |   1 +
 drivers/net/netdevsim/netdev.c                |  26 ++-
 .../testing/selftests/{ => drivers}/net/gro.c |   5 +-
 .../{net => drivers/net/hw}/toeplitz.c        |   7 +-
 .../testing/selftests/drivers/net/.gitignore  |   1 +
 tools/testing/selftests/drivers/net/gro.py    | 161 ++++++++++++++
 .../selftests/drivers/net/hw/.gitignore       |   1 +
 .../drivers/net/hw/lib/py/__init__.py         |   4 +-
 .../selftests/drivers/net/hw/toeplitz.py      | 208 ++++++++++++++++++
 .../selftests/drivers/net/lib/py/__init__.py  |   4 +-
 .../selftests/drivers/net/lib/py/env.py       |   2 +
 tools/testing/selftests/drivers/net/xdp.py    |  42 ++--
 tools/testing/selftests/net/.gitignore        |   2 -
 tools/testing/selftests/net/gro.sh            | 105 ---------
 .../selftests/net/lib/ksft_setup_loopback.sh  | 111 ++++++++++
 .../testing/selftests/net/lib/py/__init__.py  |   5 +-
 tools/testing/selftests/net/lib/py/ksft.py    |  93 ++++++--
 tools/testing/selftests/net/lib/py/nsim.py    |   2 +-
 tools/testing/selftests/net/lib/py/utils.py   |  20 +-
 tools/testing/selftests/net/setup_loopback.sh | 120 ----------
 tools/testing/selftests/net/setup_veth.sh     |  45 ----
 tools/testing/selftests/net/toeplitz.sh       | 199 -----------------
 .../testing/selftests/net/toeplitz_client.sh  |  28 ---
 26 files changed, 630 insertions(+), 577 deletions(-)
 rename tools/testing/selftests/{ => drivers}/net/gro.c (99%)
 rename tools/testing/selftests/{net => drivers/net/hw}/toeplitz.c (99%)
 create mode 100755 tools/testing/selftests/drivers/net/gro.py
 create mode 100755 tools/testing/selftests/drivers/net/hw/toeplitz.py
 delete mode 100755 tools/testing/selftests/net/gro.sh
 create mode 100755 tools/testing/selftests/net/lib/ksft_setup_loopback.sh
 delete mode 100644 tools/testing/selftests/net/setup_loopback.sh
 delete mode 100644 tools/testing/selftests/net/setup_veth.sh
 delete mode 100755 tools/testing/selftests/net/toeplitz.sh
 delete mode 100755 tools/testing/selftests/net/toeplitz_client.sh

-- 
2.51.1


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

end of thread, other threads:[~2025-11-19 17:06 UTC | newest]

Thread overview: 30+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2025-11-18 21:51 [PATCH net-next v2 00/12] selftests: drv-net: convert GRO and Toeplitz tests to work for drivers in NIPA Jakub Kicinski
2025-11-18 21:51 ` [PATCH net-next v2 01/12] selftests: net: py: coding style improvements Jakub Kicinski
2025-11-19 13:40   ` Petr Machata
2025-11-19 14:32     ` Jakub Kicinski
2025-11-19 16:06       ` Petr Machata
2025-11-18 21:51 ` [PATCH net-next v2 02/12] selftests: net: py: extract the case generation logic Jakub Kicinski
2025-11-19 14:11   ` Petr Machata
2025-11-18 21:51 ` [PATCH net-next v2 03/12] selftests: net: py: add test variants Jakub Kicinski
2025-11-19 14:42   ` Petr Machata
2025-11-18 21:51 ` [PATCH net-next v2 04/12] selftests: drv-net: xdp: use variants for qstat tests Jakub Kicinski
2025-11-19 14:57   ` Petr Machata
2025-11-18 21:51 ` [PATCH net-next v2 05/12] selftests: net: relocate gro and toeplitz tests to drivers/net Jakub Kicinski
2025-11-19 15:09   ` Petr Machata
2025-11-18 21:51 ` [PATCH net-next v2 06/12] selftests: net: py: support ksft ready without wait Jakub Kicinski
2025-11-19 16:31   ` Petr Machata
2025-11-18 21:51 ` [PATCH net-next v2 07/12] selftests: net: py: read ip link info about remote dev Jakub Kicinski
2025-11-19 15:33   ` Petr Machata
2025-11-18 21:51 ` [PATCH net-next v2 08/12] netdevsim: pass packets thru GRO on Rx Jakub Kicinski
2025-11-19 15:43   ` Petr Machata
2025-11-18 21:51 ` [PATCH net-next v2 09/12] selftests: drv-net: add a Python version of the GRO test Jakub Kicinski
2025-11-19 15:54   ` Petr Machata
2025-11-18 21:51 ` [PATCH net-next v2 10/12] selftests: drv-net: hw: convert the Toeplitz test to Python Jakub Kicinski
2025-11-19 16:39   ` Petr Machata
2025-11-18 21:51 ` [PATCH net-next v2 11/12] netdevsim: add loopback support Jakub Kicinski
2025-11-19 17:01   ` Petr Machata
2025-11-18 21:51 ` [PATCH net-next v2 12/12] selftests: net: remove old setup_* scripts Jakub Kicinski
2025-11-19 17:04   ` Petr Machata
2025-11-18 22:31 ` [PATCH net-next v2 00/12] selftests: drv-net: convert GRO and Toeplitz tests to work for drivers in NIPA Willem de Bruijn
2025-11-19  0:25   ` Jakub Kicinski
2025-11-19  0:32     ` Willem de Bruijn

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).