On Wed, Jan 18, 2023 at 4:36 PM Jakub Kicinski <kuba@xxxxxxxxxx> wrote: > > 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/ I think this is awesome and is definitely a step in the right direction. I did a light review, nothing pops up, thanks for the spec fields renamings. If that helps feel free to attach: Acked-by: Stanislav Fomichev <sdf@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 >