diff options
author | Donald Hunter <donald.hunter@gmail.com> | 2024-01-29 23:34:55 +0100 |
---|---|---|
committer | Jakub Kicinski <kuba@kernel.org> | 2024-02-01 06:19:19 +0100 |
commit | bf08f32c8cedb12a23efcdc2c9584601d7030e16 (patch) | |
tree | 11b33fc945ef2162ff027898c241437ab065f795 /Documentation/netlink | |
parent | tools/net/ynl: Move formatted_string method out of NlAttr (diff) | |
download | linux-bf08f32c8cedb12a23efcdc2c9584601d7030e16.tar.xz linux-bf08f32c8cedb12a23efcdc2c9584601d7030e16.zip |
tools/net/ynl: Add support for nested structs
Make it possible for struct definitions to reference other struct
definitions ofr binary members. For example, the tbf qdisc uses this
struct definition for its parms attribute:
-
name: tc-tbf-qopt
type: struct
members:
-
name: rate
type: binary
struct: tc-ratespec
-
name: peakrate
type: binary
struct: tc-ratespec
-
name: limit
type: u32
-
name: buffer
type: u32
-
name: mtu
type: u32
This adds the necessary schema changes and adds nested struct encoding
and decoding to ynl.
Signed-off-by: Donald Hunter <donald.hunter@gmail.com>
Reviewed-by: Jiri Pirko <jiri@nvidia.com>
Link: https://lore.kernel.org/r/20240129223458.52046-11-donald.hunter@gmail.com
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
Diffstat (limited to 'Documentation/netlink')
-rw-r--r-- | Documentation/netlink/netlink-raw.yaml | 15 |
1 files changed, 12 insertions, 3 deletions
diff --git a/Documentation/netlink/netlink-raw.yaml b/Documentation/netlink/netlink-raw.yaml index 04b92f1a5cd6..ac4e05415f2f 100644 --- a/Documentation/netlink/netlink-raw.yaml +++ b/Documentation/netlink/netlink-raw.yaml @@ -152,14 +152,23 @@ properties: the right formatting mechanism when displaying values of this type. enum: [ hex, mac, fddi, ipv4, ipv6, uuid ] + struct: + description: Name of the nested struct type. + type: string if: properties: type: - oneOf: - - const: binary - - const: pad + const: pad then: required: [ len ] + if: + properties: + type: + const: binary + then: + oneOf: + - required: [ len ] + - required: [ struct ] # End genetlink-legacy attribute-sets: |