I think the Netlink proto specs are far along enough to merge. Filling in all attribute types and quirks will be an ongoing effort but we have enough to cover FOU so it's somewhat complete. I fully intend to continue polishing the code but at the same time I'd like to start helping others base their work on the specs (e.g. DPLL) and need to start working on some new families myself. That's the progress / motivation for merging. The RFC [1] has more of a high level blurb, plus I created a lot of documentation, I'm not going to repeat it here. There was also the talk at LPC [2]. [1] https://lore.kernel.org/all/20220811022304.583300-1-kuba@xxxxxxxxxx/ [2] https://youtu.be/9QkXIQXkaQk?t=2562 v2: https://lore.kernel.org/all/20220930023418.1346263-1-kuba@xxxxxxxxxx/ Jakub Kicinski (8): docs: add more netlink docs (incl. spec docs) netlink: add schemas for YAML specs net: add basic C code generators for Netlink netlink: add a proto specification for FOU net: fou: regenerate the uAPI from the spec net: fou: rename the source for linking net: fou: use policy and operation tables generated from the spec tools: ynl: add a completely generic client Documentation/core-api/index.rst | 1 + Documentation/core-api/netlink.rst | 99 + Documentation/netlink/genetlink-c.yaml | 318 +++ Documentation/netlink/genetlink-legacy.yaml | 346 +++ Documentation/netlink/genetlink.yaml | 284 ++ Documentation/netlink/specs/fou.yaml | 128 + .../userspace-api/netlink/c-code-gen.rst | 107 + .../netlink/genetlink-legacy.rst | 96 + Documentation/userspace-api/netlink/index.rst | 5 + Documentation/userspace-api/netlink/specs.rst | 422 +++ MAINTAINERS | 3 + include/uapi/linux/fou.h | 54 +- net/ipv4/Makefile | 1 + net/ipv4/fou-nl.c | 48 + net/ipv4/fou-nl.h | 25 + net/ipv4/{fou.c => fou_core.c} | 47 +- tools/net/ynl/samples/cli.py | 47 + tools/net/ynl/samples/ynl.py | 534 ++++ tools/net/ynl/ynl-gen-c.py | 2376 +++++++++++++++++ tools/net/ynl/ynl-regen.sh | 30 + 20 files changed, 4903 insertions(+), 68 deletions(-) create mode 100644 Documentation/core-api/netlink.rst create mode 100644 Documentation/netlink/genetlink-c.yaml create mode 100644 Documentation/netlink/genetlink-legacy.yaml create mode 100644 Documentation/netlink/genetlink.yaml create mode 100644 Documentation/netlink/specs/fou.yaml create mode 100644 Documentation/userspace-api/netlink/c-code-gen.rst create mode 100644 Documentation/userspace-api/netlink/genetlink-legacy.rst create mode 100644 Documentation/userspace-api/netlink/specs.rst create mode 100644 net/ipv4/fou-nl.c create mode 100644 net/ipv4/fou-nl.h rename net/ipv4/{fou.c => fou_core.c} (94%) create mode 100755 tools/net/ynl/samples/cli.py create mode 100644 tools/net/ynl/samples/ynl.py create mode 100755 tools/net/ynl/ynl-gen-c.py create mode 100755 tools/net/ynl/ynl-regen.sh -- 2.39.0