We keep expanding ethtool netlink api surface and this leads to constantly playing catchup on the ynl spec side. There are a couple of things that prevent us from fully converting to generating the header from the spec (stats and cable tests), but we can generate 95% of the header which is still better than maintaining c header and spec separately. The series adds a couple of missing features on the ynl-gen-c side and separates the parts that we can generate into new ethtool_netlink_generated.h. v3: - s/Unsupported enum-model/Unsupported message enum-model/ (Jakub) - add placeholder doc for header-flags (Jakub) v2: - attr-cnt-name -> enum-cnt-name (Jakub) - add enum-cnt-name documentation (Jakub) - __ETHTOOL_XXX_CNT -> __ethtool-xxx-cnt + c_upper (Jakub) - keep and refine enum model check (Jakub) - use 'header' presence as a signal to omit rendering instead of new 'render' property (Jakub) - new patch to reverse the order of header dependencies in xxx-user.h Stanislav Fomichev (8): ynl: support enum-cnt-name attribute in legacy definitions ynl: skip rendering attributes with header property in uapi mode ynl: support directional specs in ynl-gen-c.py ynl: add missing pieces to ethtool spec to better match uapi header ynl: include uapi header after all dependencies ethtool: separate definitions that are gonna be generated ethtool: remove the comments that are not gonna be generated ethtool: regenerate uapi header from the spec Documentation/netlink/genetlink-c.yaml | 3 + Documentation/netlink/genetlink-legacy.yaml | 3 + Documentation/netlink/specs/ethtool.yaml | 354 ++++++- .../userspace-api/netlink/c-code-gen.rst | 4 +- MAINTAINERS | 2 +- include/uapi/linux/ethtool_netlink.h | 893 +----------------- .../uapi/linux/ethtool_netlink_generated.h | 792 ++++++++++++++++ tools/net/ynl/ynl-gen-c.py | 139 ++- 8 files changed, 1250 insertions(+), 940 deletions(-) create mode 100644 include/uapi/linux/ethtool_netlink_generated.h -- 2.47.0