summaryrefslogtreecommitdiffstats
path: root/Documentation/netlink
diff options
context:
space:
mode:
authorDonald Hunter <donald.hunter@gmail.com>2024-01-29 22:34:55 +0000
committerJakub Kicinski <kuba@kernel.org>2024-01-31 21:19:19 -0800
commitbf08f32c8cedb12a23efcdc2c9584601d7030e16 (patch)
tree11b33fc945ef2162ff027898c241437ab065f795 /Documentation/netlink
parent971c3eeaf668ed312d032d12becb106982d2b2bd (diff)
downloadlinux-stable-bf08f32c8cedb12a23efcdc2c9584601d7030e16.tar.gz
linux-stable-bf08f32c8cedb12a23efcdc2c9584601d7030e16.tar.bz2
linux-stable-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.yaml15
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: