[<prev] [next>] [thread-next>] [day] [month] [year] [list]
Message-ID: <20250410014658.782120-1-kuba@kernel.org>
Date: Wed, 9 Apr 2025 18:46:45 -0700
From: Jakub Kicinski <kuba@...nel.org>
To: davem@...emloft.net
Cc: netdev@...r.kernel.org,
edumazet@...gle.com,
pabeni@...hat.com,
andrew+netdev@...n.ch,
horms@...nel.org,
donald.hunter@...il.com,
jacob.e.keller@...el.com,
yuyanghuang@...gle.com,
sdf@...ichev.me,
gnault@...hat.com,
nicolas.dichtel@...nd.com,
petrm@...dia.com,
Jakub Kicinski <kuba@...nel.org>
Subject: [PATCH net-next v2 00/13] tools: ynl: c: basic netlink-raw support
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
Powered by blists - more mailing lists