[PATCH net-next v5 00/11] tools: ynl: prepare for wireguard

Asbjørn Sloth Tønnesen posted 11 patches 2 weeks, 2 days ago
Documentation/netlink/genetlink-legacy.yaml |  2 +-
tools/net/ynl/lib/ynl-priv.h                | 10 ++-
tools/net/ynl/lib/ynl.c                     |  6 +-
tools/net/ynl/pyynl/lib/ynl.py              | 38 +++++++--
tools/net/ynl/pyynl/ynl_gen_c.py            | 92 ++++++++++++---------
5 files changed, 100 insertions(+), 48 deletions(-)
[PATCH net-next v5 00/11] tools: ynl: prepare for wireguard
Posted by Asbjørn Sloth Tønnesen 2 weeks, 2 days ago
This series contains the last batch of YNL changes to support
the wireguard YNL conversion.

The wireguard changes, to be applied on top of this series,
has been posted as an RFC series here:
  https://lore.kernel.org/netdev/20250904-wg-ynl-rfc@fiberby.net/

---
v5:
- In patch 4, just copy the old local_vars logic into the new helper.
v4:
- Added a few Reviewed-by (thanks Donald).
- In patch 4, changed the implementation a bit, to avoid overloading.
- In patch 6, expose __ynl_attr_validate(), and move ynl_attr_validate()
  to ynl-priv.h, as an inline function.
- Dropped v3 patch 5 and 6 from this series.
v3: https://lore.kernel.org/netdev/20250911200508.79341-1-ast@fiberby.net/
- Rebased on top of new net-next, after Matthieu's cleanup.
- Added a Reviewed-by (thanks Donald).
- Added the parsing local vars cleanup as patch 7
- In patch 4, change to use set() for deduplication.
- In patch 8, declare __ynl_attr_validate() as static.
v2: https://lore.kernel.org/netdev/20250910230841.384545-1-ast@fiberby.net/
- Added Reviewed-by's to unchanged patches. Thanks to all reviewers.
- Patch 4, refactors local variables for .attr_put() callers, and
  replaces the old patch 4 and 5.
- Patch 5 and 6 are new, and reduces the differences between the 3
  .attr_put() callers, so it might be easier to keep them in sync.
- Patch 7, now validates the nested payload (thanks Jakub).
- Patch 8, now renames more variables (thanks Jakub),
- Patch 10, got a dead line remove (thanks Donald).
- Patch 11, revised hex input to support macsec (suggested by Sabrina).
v1: https://lore.kernel.org/netdev/20250904-wg-ynl-prep@fiberby.net/

Asbjørn Sloth Tønnesen (11):
  tools: ynl-gen: allow overriding name-prefix for constants
  tools: ynl-gen: generate nested array policies
  tools: ynl-gen: add sub-type check
  tools: ynl-gen: refactor local vars for .attr_put() callers
  tools: ynl-gen: avoid repetitive variables definitions
  tools: ynl-gen: validate nested arrays
  tools: ynl-gen: rename TypeArrayNest to TypeIndexedArray
  tools: ynl: move nest packing to a helper function
  tools: ynl: encode indexed-arrays
  tools: ynl: decode hex input
  tools: ynl: add ipv4-or-v6 display hint

 Documentation/netlink/genetlink-legacy.yaml |  2 +-
 tools/net/ynl/lib/ynl-priv.h                | 10 ++-
 tools/net/ynl/lib/ynl.c                     |  6 +-
 tools/net/ynl/pyynl/lib/ynl.py              | 38 +++++++--
 tools/net/ynl/pyynl/ynl_gen_c.py            | 92 ++++++++++++---------
 5 files changed, 100 insertions(+), 48 deletions(-)

-- 
2.51.0

Re: [PATCH net-next v5 00/11] tools: ynl: prepare for wireguard
Posted by Jason A. Donenfeld 2 weeks, 1 day ago
Hi Asbjorn,

On Mon, Sep 15, 2025 at 4:47 PM Asbjørn Sloth Tønnesen <ast@fiberby.net> wrote:
>
> This series contains the last batch of YNL changes to support
> the wireguard YNL conversion.

"the wireguard YNL conversion"

Did I miss some conversation about this? I figure I must have. I must
say I'm not too keen on wireguard (and apparently only wireguard?)
being a guinea pig for this.

Jason
Re: [PATCH net-next v5 00/11] tools: ynl: prepare for wireguard
Posted by Jakub Kicinski 2 weeks, 1 day ago
On Tue, 16 Sep 2025 17:53:00 +0200 Jason A. Donenfeld wrote:
> On Mon, Sep 15, 2025 at 4:47 PM Asbjørn Sloth Tønnesen <ast@fiberby.net> wrote:
> >
> > This series contains the last batch of YNL changes to support
> > the wireguard YNL conversion.  
> 
> "the wireguard YNL conversion"

FWIW these patches stand on their own whether we accept the wireguard
patches or not. Put more plainly - please do not read me applying this
set as an endorsement of the larger plan..

> Did I miss some conversation about this? I figure I must have. I must
> say I'm not too keen on wireguard (and apparently only wireguard?)
> being a guinea pig for this.

The specs themselves are gaining maturity. I think adding a YNL spec
for wireguard would be quite nice. Whether we should be converting
the kernel code and uAPI to take advantage of the auto-generation is
a completely separate conversation. If you're not anticipating many
new additions in the uAPI there's little to be gained.

Intro:
https://docs.kernel.org/next/userspace-api/netlink/specs.html
Existing specs:
https://git.kernel.org/pub/scm/linux/kernel/git/netdev/net-next.git/tree/Documentation/netlink/specs/
Libs:
https://git.kernel.org/pub/scm/linux/kernel/git/netdev/net-next.git/tree/tools/net/ynl/pyynl/lib/ynl.py
https://github.com/linux-netdev/ynl-c (this one is also in tree)
https://github.com/linux-netdev/ynl-cpp