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]
Message-Id: <20230609214346.1605106-1-kuba@kernel.org>
Date: Fri,  9 Jun 2023 14:43:34 -0700
From: Jakub Kicinski <kuba@...nel.org>
To: davem@...emloft.net
Cc: netdev@...r.kernel.org,
	edumazet@...gle.com,
	pabeni@...hat.com,
	sdf@...gle.com,
	Jakub Kicinski <kuba@...nel.org>
Subject: [PATCH net-next 00/12] tools: ynl: generate code for the ethtool family

And finally ethtool support. Thanks to Stan's work the ethtool family
spec is quite complete, so there is a lot of operations to support.

I chickened out of stats-get support, they require at the very least
type-value support on a u64 scalar. Type-value is an arrangement where
a u16 attribute is encoded directly in attribute type. Code gen can
support this if the inside is a nest, we just throw in an extra
field into that nest to carry the attr type. But a little more coding
is needed to for a scalar, because first we need to turn the scalar
into a struct with one member, then we can add the attr type.

Other than that ethtool required event support (notification which
does not share contents with any GET), but the previous series
already added that to the codegen.

I haven't tested all the ops here, and a few I tried seem to work.

Jakub Kicinski (12):
  tools: ynl-gen: support excluding tricky ops
  tools: ynl-gen: record extra args for regen
  netlink: specs: support setting prefix-name per attribute
  netlink: specs: ethtool: add C render hints
  tools: ynl-gen: don't generate enum types if unnamed
  tools: ynl-gen: resolve enum vs struct name conflicts
  netlink: specs: ethtool: add empty enum stringset
  netlink: specs: ethtool: untangle UDP tunnels and cable test a bit
  netlink: specs: ethtool: untangle stats-get
  netlink: specs: ethtool: mark pads as pads
  tools: ynl: generate code for the ethtool family
  tools: ynl: add sample for ethtool

 Documentation/netlink/genetlink-c.yaml      |    4 +
 Documentation/netlink/genetlink-legacy.yaml |    4 +
 Documentation/netlink/specs/ethtool.yaml    |  120 +-
 tools/net/ynl/generated/Makefile            |    9 +-
 tools/net/ynl/generated/ethtool-user.c      | 6353 +++++++++++++++++++
 tools/net/ynl/generated/ethtool-user.h      | 5531 ++++++++++++++++
 tools/net/ynl/lib/nlspec.py                 |   12 +-
 tools/net/ynl/samples/.gitignore            |    1 +
 tools/net/ynl/samples/ethtool.c             |   65 +
 tools/net/ynl/ynl-gen-c.py                  |   59 +-
 tools/net/ynl/ynl-regen.sh                  |    4 +-
 11 files changed, 12116 insertions(+), 46 deletions(-)
 create mode 100644 tools/net/ynl/generated/ethtool-user.c
 create mode 100644 tools/net/ynl/generated/ethtool-user.h
 create mode 100644 tools/net/ynl/samples/ethtool.c

-- 
2.40.1


Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ