From: Jakub Kicinski <kuba@kernel.org>
To: davem@davemloft.net
Cc: netdev@vger.kernel.org, edumazet@google.com, pabeni@redhat.com,
andrew+netdev@lunn.ch, horms@kernel.org, donald.hunter@gmail.com,
jacob.e.keller@intel.com, yuyanghuang@google.com,
sdf@fomichev.me, gnault@redhat.com, nicolas.dichtel@6wind.com,
petrm@nvidia.com, Jakub Kicinski <kuba@kernel.org>
Subject: [PATCH net-next v2 00/13] tools: ynl: c: basic netlink-raw support
Date: Wed, 9 Apr 2025 18:46:45 -0700 [thread overview]
Message-ID: <20250410014658.782120-1-kuba@kernel.org> (raw)
Basic support for netlink-raw AKA classic netlink in user space C codegen.
This series is enough to read routes and addresses from the kernel
(see the samples in patches 12 and 13).
Specs need to be slightly adjusted and decorated with the c naming info.
In terms of codegen this series includes just the basic plumbing required
to skip genlmsghdr and handle request types which may technically also
be legal in genetlink-legacy but are very uncommon there.
Subsequent series will add support for:
- handling CRUD-style notifications
- code gen for array types classic netlink uses
- sub-message support
v2:
- extend commit messages
- [patch 10] fix typo in member name
- [patch 12] remove unused arg
v1: https://lore.kernel.org/20250409000400.492371-1-kuba@kernel.org
Jakub Kicinski (13):
netlink: specs: rename rtnetlink specs in accordance with family name
netlink: specs: rt-route: specify fixed-header at operations level
netlink: specs: rt-addr: remove the fixed members from attrs
netlink: specs: rt-route: remove the fixed members from attrs
netlink: specs: rt-addr: add C naming info
netlink: specs: rt-route: add C naming info
tools: ynl: support creating non-genl sockets
tools: ynl-gen: don't consider requests with fixed hdr empty
tools: ynl: don't use genlmsghdr in classic netlink
tools: ynl-gen: consider dump ops without a do "type-consistent"
tools: ynl-gen: use family c-name in notifications
tools: ynl: generate code for rt-addr and add a sample
tools: ynl: generate code for rt-route and add a sample
.../specs/{rt_addr.yaml => rt-addr.yaml} | 24 ++----
.../specs/{rt_link.yaml => rt-link.yaml} | 0
.../specs/{rt_neigh.yaml => rt-neigh.yaml} | 0
.../specs/{rt_route.yaml => rt-route.yaml} | 22 ++---
.../specs/{rt_rule.yaml => rt-rule.yaml} | 0
.../userspace-api/netlink/netlink-raw.rst | 2 +-
tools/net/ynl/Makefile.deps | 2 +
tools/net/ynl/generated/Makefile | 2 +-
tools/net/ynl/lib/ynl-priv.h | 3 +
tools/net/ynl/lib/ynl.h | 3 +
tools/net/ynl/lib/ynl.c | 59 +++++++++-----
tools/net/ynl/samples/rt-addr.c | 80 +++++++++++++++++++
tools/net/ynl/samples/rt-route.c | 80 +++++++++++++++++++
tools/net/ynl/pyynl/ynl_gen_c.py | 55 +++++++++----
tools/net/ynl/samples/.gitignore | 4 +-
tools/testing/selftests/net/lib/py/ynl.py | 4 +-
16 files changed, 263 insertions(+), 77 deletions(-)
rename Documentation/netlink/specs/{rt_addr.yaml => rt-addr.yaml} (89%)
rename Documentation/netlink/specs/{rt_link.yaml => rt-link.yaml} (100%)
rename Documentation/netlink/specs/{rt_neigh.yaml => rt-neigh.yaml} (100%)
rename Documentation/netlink/specs/{rt_route.yaml => rt-route.yaml} (93%)
rename Documentation/netlink/specs/{rt_rule.yaml => rt-rule.yaml} (100%)
create mode 100644 tools/net/ynl/samples/rt-addr.c
create mode 100644 tools/net/ynl/samples/rt-route.c
--
2.49.0
next reply other threads:[~2025-04-10 1:47 UTC|newest]
Thread overview: 20+ messages / expand[flat|nested] mbox.gz Atom feed top
2025-04-10 1:46 Jakub Kicinski [this message]
2025-04-10 1:46 ` [PATCH net-next v2 01/13] netlink: specs: rename rtnetlink specs in accordance with family name Jakub Kicinski
2025-04-10 8:52 ` Paolo Abeni
2025-04-10 12:39 ` Donald Hunter
2025-04-11 1:28 ` Jakub Kicinski
2025-04-10 1:46 ` [PATCH net-next v2 02/13] netlink: specs: rt-route: specify fixed-header at operations level Jakub Kicinski
2025-04-10 1:46 ` [PATCH net-next v2 03/13] netlink: specs: rt-addr: remove the fixed members from attrs Jakub Kicinski
2025-04-10 1:46 ` [PATCH net-next v2 04/13] netlink: specs: rt-route: " Jakub Kicinski
2025-04-10 1:46 ` [PATCH net-next v2 05/13] netlink: specs: rt-addr: add C naming info Jakub Kicinski
2025-04-10 1:46 ` [PATCH net-next v2 06/13] netlink: specs: rt-route: " Jakub Kicinski
2025-04-10 1:46 ` [PATCH net-next v2 07/13] tools: ynl: support creating non-genl sockets Jakub Kicinski
2025-04-10 1:46 ` [PATCH net-next v2 08/13] tools: ynl-gen: don't consider requests with fixed hdr empty Jakub Kicinski
2025-04-10 1:46 ` [PATCH net-next v2 09/13] tools: ynl: don't use genlmsghdr in classic netlink Jakub Kicinski
2025-04-10 1:46 ` [PATCH net-next v2 10/13] tools: ynl-gen: consider dump ops without a do "type-consistent" Jakub Kicinski
2025-04-10 1:46 ` [PATCH net-next v2 11/13] tools: ynl-gen: use family c-name in notifications Jakub Kicinski
2025-04-10 1:46 ` [PATCH net-next v2 12/13] tools: ynl: generate code for rt-addr and add a sample Jakub Kicinski
2025-04-18 17:04 ` Kory Maincent
2025-04-18 23:29 ` Jakub Kicinski
2025-04-10 1:46 ` [PATCH net-next v2 13/13] tools: ynl: generate code for rt-route " Jakub Kicinski
2025-04-11 3:30 ` [PATCH net-next v2 00/13] tools: ynl: c: basic netlink-raw 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=20250410014658.782120-1-kuba@kernel.org \
--to=kuba@kernel.org \
--cc=andrew+netdev@lunn.ch \
--cc=davem@davemloft.net \
--cc=donald.hunter@gmail.com \
--cc=edumazet@google.com \
--cc=gnault@redhat.com \
--cc=horms@kernel.org \
--cc=jacob.e.keller@intel.com \
--cc=netdev@vger.kernel.org \
--cc=nicolas.dichtel@6wind.com \
--cc=pabeni@redhat.com \
--cc=petrm@nvidia.com \
--cc=sdf@fomichev.me \
--cc=yuyanghuang@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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.