lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [thread-next>] [day] [month] [year] [list]
Date: Fri, 17 Nov 2023 20:05:03 +0100
From: Michal Michalik <michal.michalik@...el.com>
To: netdev@...r.kernel.org
Cc: vadim.fedorenko@...ux.dev,
	arkadiusz.kubalewski@...el.com,
	jonathan.lemon@...il.com,
	pabeni@...hat.com,
	poros@...hat.com,
	milena.olech@...el.com,
	mschmidt@...hat.com,
	linux-clk@...r.kernel.org,
	bvanassche@....org,
	kuba@...nel.org,
	davem@...emloft.net,
	edumazet@...gle.com,
	Michal Michalik <michal.michalik@...el.com>
Subject: [PATCH RFC net-next v3 0/2] selftests/dpll: DPLL subsystem integration tests

The recently merged common DPLL interface discussed on a mailing list[1]
is introducing new, complex subsystem which requires proper integration
testing - this patchset adds such a framework, as well as the initial
test cases. Framework does not require neither any special hardware nor
any special system architecture.

To properly test the DPLL subsystem this patch adds fake DPLL devices
and its pins to netdevsim. Two DPLL devices are added: EEC and PPS.
There are also common pins for each device: PPS and GNSS. Additionally
each netdevsim port register RCLK (recovered clock) pin for itself. That
allow us to check mutliple scenarios which might be problematic in real
implementations (like different ordering etc.)

Patch adds few helper scripts, which are:
1) tools/testing/selftests/drivers/net/netdevsim/dpll/run_dpll_tests.sh
    Script is checking for all dependencies, creates temporary
    environment, installs required libraries and run all tests - can be
    used standalone
2) tools/testing/selftests/drivers/net/netdevsim/dpll/ynlfamilyhandler.py˙
    Library for easier ynl use in the pytest framework - can be used
    standalone

[1] https://lore.kernel.org/netdev/169494842736.21621.10730860855645661664.git-patchwork-notify@kernel.org/

Changelog:
v2 -> v3:
- updated the cover letter
- moved framework from selftests/dpll to selftests/drivers/net/netdevsim/dpll/
- added `nsim_` prefixes to functions and structs
- dropped unecessary casts
- added necessary debugfs entries
- added random clock id
- improved error patchs on init
- removed separate dpll.h header
- removed unnecesary UAPI dpll header import
- changed struct names
- changed private data structs to be embedded
- moved common pin init to device init
- added netdev_dpll_pin_set/clear()

v1 -> v2:
- moved from separate module to implementation in netdevsim


Michal Michalik (2):
  netdevsim: implement DPLL for subsystem selftests
  selftests/dpll: add DPLL system integration selftests

 drivers/net/Kconfig                                |   1 +
 drivers/net/netdevsim/Makefile                     |   2 +-
 drivers/net/netdevsim/dev.c                        |  23 +-
 drivers/net/netdevsim/dpll.c                       | 490 +++++++++++++++++++++
 drivers/net/netdevsim/netdev.c                     |  10 +
 drivers/net/netdevsim/netdevsim.h                  |  44 ++
 tools/testing/selftests/Makefile                   |   1 +
 .../selftests/drivers/net/netdevsim/dpll/Makefile  |   8 +
 .../drivers/net/netdevsim/dpll/__init__.py         |   0
 .../selftests/drivers/net/netdevsim/dpll/config    |   2 +
 .../selftests/drivers/net/netdevsim/dpll/consts.py |  40 ++
 .../drivers/net/netdevsim/dpll/dpll_utils.py       |  94 ++++
 .../drivers/net/netdevsim/dpll/requirements.txt    |   3 +
 .../drivers/net/netdevsim/dpll/run_dpll_tests.sh   |  75 ++++
 .../drivers/net/netdevsim/dpll/test_dpll.py        | 376 ++++++++++++++++
 .../drivers/net/netdevsim/dpll/ynlfamilyhandler.py |  49 +++
 16 files changed, 1216 insertions(+), 2 deletions(-)
 create mode 100644 drivers/net/netdevsim/dpll.c
 create mode 100644 tools/testing/selftests/drivers/net/netdevsim/dpll/Makefile
 create mode 100644 tools/testing/selftests/drivers/net/netdevsim/dpll/__init__.py
 create mode 100644 tools/testing/selftests/drivers/net/netdevsim/dpll/config
 create mode 100644 tools/testing/selftests/drivers/net/netdevsim/dpll/consts.py
 create mode 100644 tools/testing/selftests/drivers/net/netdevsim/dpll/dpll_utils.py
 create mode 100644 tools/testing/selftests/drivers/net/netdevsim/dpll/requirements.txt
 create mode 100755 tools/testing/selftests/drivers/net/netdevsim/dpll/run_dpll_tests.sh
 create mode 100644 tools/testing/selftests/drivers/net/netdevsim/dpll/test_dpll.py
 create mode 100644 tools/testing/selftests/drivers/net/netdevsim/dpll/ynlfamilyhandler.py

-- 
2.9.5

base-commit: 18de1e517ed37ebaf33e771e46faf052e966e163

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ