[PATCH net-next v2 0/8] ethtool: generate uapi header from the spec

Stanislav Fomichev posted 8 patches 6 days, 15 hours ago
Documentation/netlink/genetlink-c.yaml        |   3 +
Documentation/netlink/genetlink-legacy.yaml   |   3 +
Documentation/netlink/specs/ethtool.yaml      | 353 ++++++-
.../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, 1249 insertions(+), 940 deletions(-)
create mode 100644 include/uapi/linux/ethtool_netlink_generated.h
[PATCH net-next v2 0/8] ethtool: generate uapi header from the spec
Posted by Stanislav Fomichev 6 days, 15 hours ago
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.

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      | 353 ++++++-
 .../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, 1249 insertions(+), 940 deletions(-)
 create mode 100644 include/uapi/linux/ethtool_netlink_generated.h

-- 
2.47.0