Add features to ynl for tc and update the tc spec to use them. Patch 1 adds an option to output json instead of python pretty printing. Patch 2, 3 adds support and docs for sub-messages in nested attribute spaces that reference keys from a parent space. Patches 4 and 7-9 refactor ynl in support of nested struct definitions Patch 5 implements sub-message encoding for write ops. Patch 6 adds logic to set default zero values for binary blobs Patches 10, 11 adds support and docs for nested struct definitions Patch 12 updates the ynl doc generator to include type information for struct members. Patch 13 updates the tc spec - still a work in progress but more complete v1 -> v2 - Use spec-led sub-message selector resolution instead of ChainMap - Add docs for sub-message selector resolution - Remove unused variable declaration in ynl-gen-rst Donald Hunter (13): tools/net/ynl: Add --output-json arg to ynl cli tools/net/ynl: Support sub-messages in nested attribute spaces doc/netlink: Describe sub-message selector resolution tools/net/ynl: Refactor fixed header encoding into separate method tools/net/ynl: Add support for encoding sub-messages tools/net/ynl: Encode default values for binary blobs tools/net/ynl: Combine struct decoding logic in ynl tools/net/ynl: Rename _fixed_header_size() to _struct_size() tools/net/ynl: Move formatted_string method out of NlAttr tools/net/ynl: Add support for nested structs doc/netlink: Describe nested structs in netlink raw docs tools/net/ynl: Add type info to struct members in generated docs doc/netlink/specs: Update the tc spec Documentation/netlink/netlink-raw.yaml | 15 +- Documentation/netlink/specs/tc.yaml | 2218 +++++++++++++++-- .../userspace-api/netlink/netlink-raw.rst | 42 + tools/net/ynl/cli.py | 22 +- tools/net/ynl/lib/nlspec.py | 2 + tools/net/ynl/lib/ynl.py | 200 +- tools/net/ynl/ynl-gen-rst.py | 9 +- 7 files changed, 2271 insertions(+), 237 deletions(-) -- 2.42.0