From: Jakub Kicinski <kuba@kernel.org>
To: davem@davemloft.net
Cc: netdev@vger.kernel.org, edumazet@google.com, pabeni@redhat.com,
sdf@google.com, linux-doc@vger.kernel.org,
Jakub Kicinski <kuba@kernel.org>
Subject: [PATCH net-next v2 00/14] tools: ynl: more docs and basic ethtool support
Date: Mon, 30 Jan 2023 18:33:40 -0800 [thread overview]
Message-ID: <20230131023354.1732677-1-kuba@kernel.org> (raw)
I got discouraged from supporting ethtool in specs, because
generating the user space C code seems a little tricky.
The messages are ID'ed in a "directional" way (to and from
kernel are separate ID "spaces"). There is value, however,
in having the spec and being able to for example use it
in Python.
After paying off some technical debt - add a partial
ethtool spec. Partial because the header for ethtool is almost
a 1000 LoC, so converting in one sitting is tough. But adding
new commands should be trivial now.
Last but not least I add more docs, I realized that I've been
sending a similar "instructions" email to people working on
new families. It's now intro-specs.rst.
v2:
- spelling fixes (patch 11)
- always use python3 (new patch 14)
Jakub Kicinski (14):
tools: ynl-gen: prevent do / dump reordering
tools: ynl: move the cli and netlink code around
tools: ynl: add an object hierarchy to represent parsed spec
tools: ynl: use the common YAML loading and validation code
tools: ynl: add support for types needed by ethtool
tools: ynl: support directional enum-model in CLI
tools: ynl: support multi-attr
tools: ynl: support pretty printing bad attribute names
tools: ynl: use operation names from spec on the CLI
tools: ynl: load jsonschema on demand
netlink: specs: finish up operation enum-models
netlink: specs: add partial specification for ethtool
docs: netlink: add a starting guide for working with specs
tools: net: use python3 explicitly
Documentation/netlink/genetlink-c.yaml | 4 +-
Documentation/netlink/genetlink-legacy.yaml | 11 +-
Documentation/netlink/genetlink.yaml | 4 +-
Documentation/netlink/specs/ethtool.yaml | 392 ++++++++++++++++++
.../netlink/genetlink-legacy.rst | 82 ++++
Documentation/userspace-api/netlink/index.rst | 1 +
.../userspace-api/netlink/intro-specs.rst | 80 ++++
Documentation/userspace-api/netlink/specs.rst | 3 +
tools/net/ynl/{samples => }/cli.py | 17 +-
tools/net/ynl/lib/__init__.py | 7 +
tools/net/ynl/lib/nlspec.py | 310 ++++++++++++++
tools/net/ynl/{samples => lib}/ynl.py | 192 +++++----
tools/net/ynl/ynl-gen-c.py | 262 ++++++------
13 files changed, 1109 insertions(+), 256 deletions(-)
create mode 100644 Documentation/netlink/specs/ethtool.yaml
create mode 100644 Documentation/userspace-api/netlink/intro-specs.rst
rename tools/net/ynl/{samples => }/cli.py (76%)
create mode 100644 tools/net/ynl/lib/__init__.py
create mode 100644 tools/net/ynl/lib/nlspec.py
rename tools/net/ynl/{samples => lib}/ynl.py (79%)
--
2.39.1
next reply other threads:[~2023-01-31 2:34 UTC|newest]
Thread overview: 16+ messages / expand[flat|nested] mbox.gz Atom feed top
2023-01-31 2:33 Jakub Kicinski [this message]
2023-01-31 2:33 ` [PATCH net-next v2 01/14] tools: ynl-gen: prevent do / dump reordering Jakub Kicinski
2023-01-31 2:33 ` [PATCH net-next v2 02/14] tools: ynl: move the cli and netlink code around Jakub Kicinski
2023-01-31 2:33 ` [PATCH net-next v2 03/14] tools: ynl: add an object hierarchy to represent parsed spec Jakub Kicinski
2023-01-31 2:33 ` [PATCH net-next v2 04/14] tools: ynl: use the common YAML loading and validation code Jakub Kicinski
2023-01-31 2:33 ` [PATCH net-next v2 05/14] tools: ynl: add support for types needed by ethtool Jakub Kicinski
2023-01-31 2:33 ` [PATCH net-next v2 06/14] tools: ynl: support directional enum-model in CLI Jakub Kicinski
2023-01-31 2:33 ` [PATCH net-next v2 07/14] tools: ynl: support multi-attr Jakub Kicinski
2023-01-31 2:33 ` [PATCH net-next v2 08/14] tools: ynl: support pretty printing bad attribute names Jakub Kicinski
2023-01-31 2:33 ` [PATCH net-next v2 09/14] tools: ynl: use operation names from spec on the CLI Jakub Kicinski
2023-01-31 2:33 ` [PATCH net-next v2 10/14] tools: ynl: load jsonschema on demand Jakub Kicinski
2023-01-31 2:33 ` [PATCH net-next v2 11/14] netlink: specs: finish up operation enum-models Jakub Kicinski
2023-01-31 2:33 ` [PATCH net-next v2 12/14] netlink: specs: add partial specification for ethtool Jakub Kicinski
2023-01-31 2:33 ` [PATCH net-next v2 13/14] docs: netlink: add a starting guide for working with specs Jakub Kicinski
2023-01-31 2:33 ` [PATCH net-next v2 14/14] tools: net: use python3 explicitly Jakub Kicinski
2023-02-01 4:40 ` [PATCH net-next v2 00/14] tools: ynl: more docs and basic ethtool support patchwork-bot+netdevbpf
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=20230131023354.1732677-1-kuba@kernel.org \
--to=kuba@kernel.org \
--cc=davem@davemloft.net \
--cc=edumazet@google.com \
--cc=linux-doc@vger.kernel.org \
--cc=netdev@vger.kernel.org \
--cc=pabeni@redhat.com \
--cc=sdf@google.com \
/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).