Commit 077b6022 authored by Donald Hunter's avatar Donald Hunter Committed by Jakub Kicinski
Browse files

doc/netlink/specs: Add sub-message type to rt_link family



Start using sub-message selectors in the rt_link spec for the
link-specific 'data' and 'slave-data' attributes.

Signed-off-by: default avatarDonald Hunter <donald.hunter@gmail.com>
Link: https://lore.kernel.org/r/20231215093720.18774-7-donald.hunter@gmail.com


Signed-off-by: default avatarJakub Kicinski <kuba@kernel.org>
parent 8b6811d9
Loading
Loading
Loading
Loading
+432 −4
Original line number Diff line number Diff line
@@ -82,6 +82,18 @@ definitions:
      -
        name: ifi-change
        type: u32
  -
    name: ifla-bridge-id
    type: struct
    members:
      -
        name: prio
        type: u16
      -
        name: addr
        type: binary
        len: 6
        display-hint: mac
  -
    name: ifla-cacheinfo
    type: struct
@@ -966,8 +978,9 @@ attribute-sets:
        type: string
      -
        name: data
        type: binary
        # kind specific nest, e.g. linkinfo-bridge-attrs
        type: sub-message
        sub-message: linkinfo-data-msg
        selector: kind
      -
        name: xstats
        type: binary
@@ -976,10 +989,12 @@ attribute-sets:
        type: string
      -
        name: slave-data
        type: binary
        # kind specific nest
        type: sub-message
        sub-message: linkinfo-member-data-msg
        selector: slave-kind
  -
    name: linkinfo-bridge-attrs
    name-prefix: ifla-br-
    attributes:
      -
        name: forward-delay
@@ -1011,9 +1026,11 @@ attribute-sets:
      -
        name: root-id
        type: binary
        struct: ifla-bridge-id
      -
        name: bridge-id
        type: binary
        struct: ifla-bridge-id
      -
        name: root-port
        type: u16
@@ -1041,6 +1058,7 @@ attribute-sets:
      -
        name: group-addr
        type: binary
        display-hint: mac
      -
        name: fdb-flush
        type: binary
@@ -1123,6 +1141,376 @@ attribute-sets:
      -
        name: mcast-querier-state
        type: binary
  -
    name: linkinfo-brport-attrs
    name-prefix: ifla-brport-
    attributes:
      -
        name: state
        type: u8
      -
        name: priority
        type: u16
      -
        name: cost
        type: u32
      -
        name: mode
        type: flag
      -
        name: guard
        type: flag
      -
        name: protect
        type: flag
      -
        name: fast-leave
        type: flag
      -
        name: learning
        type: flag
      -
        name: unicast-flood
        type: flag
      -
        name: proxyarp
        type: flag
      -
        name: learning-sync
        type: flag
      -
        name: proxyarp-wifi
        type: flag
      -
        name: root-id
        type: binary
        struct: ifla-bridge-id
      -
        name: bridge-id
        type: binary
        struct: ifla-bridge-id
      -
        name: designated-port
        type: u16
      -
        name: designated-cost
        type: u16
      -
        name: id
        type: u16
      -
        name: "no"
        type: u16
      -
        name: topology-change-ack
        type: u8
      -
        name: config-pending
        type: u8
      -
        name: message-age-timer
        type: u64
      -
        name: forward-delay-timer
        type: u64
      -
        name: hold-timer
        type: u64
      -
        name: flush
        type: flag
      -
        name: multicast-router
        type: u8
      -
        name: pad
        type: pad
      -
        name: mcast-flood
        type: flag
      -
        name: mcast-to-ucast
        type: flag
      -
        name: vlan-tunnel
        type: flag
      -
        name: bcast-flood
        type: flag
      -
        name: group-fwd-mask
        type: u16
      -
        name: neigh-suppress
        type: flag
      -
        name: isolated
        type: flag
      -
        name: backup-port
        type: u32
      -
        name: mrp-ring-open
        type: flag
      -
        name: mrp-in-open
        type: flag
      -
        name: mcast-eht-hosts-limit
        type: u32
      -
        name: mcast-eht-hosts-cnt
        type: u32
      -
        name: locked
        type: flag
      -
        name: mab
        type: flag
      -
        name: mcast-n-groups
        type: u32
      -
        name: mcast-max-groups
        type: u32
      -
        name: neigh-vlan-suppress
        type: flag
      -
        name: backup-nhid
        type: u32
  -
    name: linkinfo-gre-attrs
    name-prefix: ifla-gre-
    attributes:
      -
        name: link
        type: u32
      -
        name: iflags
        type: u16
      -
        name: oflags
        type: u16
      -
        name: ikey
        type: u32
      -
        name: okey
        type: u32
      -
        name: local
        type: binary
        display-hint: ipv4
      -
        name: remote
        type: binary
        display-hint: ipv4
      -
        name: ttl
        type: u8
      -
        name: tos
        type: u8
      -
        name: pmtudisc
        type: u8
      -
        name: encap-limit
        type: u32
      -
        name: flowinfo
        type: u32
      -
        name: flags
        type: u32
      -
        name: encap-type
        type: u16
      -
        name: encap-flags
        type: u16
      -
        name: encap-sport
        type: u16
      -
        name: encap-dport
        type: u16
      -
        name: collect-metadata
        type: flag
      -
        name: ignore-df
        type: u8
      -
        name: fwmark
        type: u32
      -
        name: erspan-index
        type: u32
      -
        name: erspan-ver
        type: u8
      -
        name: erspan-dir
        type: u8
      -
        name: erspan-hwid
        type: u16
  -
    name: linkinfo-geneve-attrs
    name-prefix: ifla-geneve-
    attributes:
      -
        name: id
        type: u32
      -
        name: remote
        type: binary
        display-hint: ipv4
      -
        name: ttl
        type: u8
      -
        name: tos
        type: u8
      -
        name: port
        type: u16
      -
        name: collect-metadata
        type: flag
      -
        name: remote6
        type: binary
        display-hint: ipv6
      -
        name: udp-csum
        type: u8
      -
        name: udp-zero-csum6-tx
        type: u8
      -
        name: udp-zero-csum6-rx
        type: u8
      -
        name: label
        type: u32
      -
        name: ttl-inherit
        type: u8
      -
        name: df
        type: u8
      -
        name: inner-proto-inherit
        type: flag
  -
    name: linkinfo-iptun-attrs
    name-prefix: ifla-iptun-
    attributes:
      -
        name: link
        type: u32
      -
        name: local
        type: binary
        display-hint: ipv4
      -
        name: remote
        type: binary
        display-hint: ipv4
      -
        name: ttl
        type: u8
      -
        name: tos
        type: u8
      -
        name: encap-limit
        type: u8
      -
        name: flowinfo
        type: u32
      -
        name: flags
        type: u16
      -
        name: proto
        type: u8
      -
        name: pmtudisc
        type: u8
      -
        name: 6rd-prefix
        type: binary
        display-hint: ipv6
      -
        name: 6rd-relay-prefix
        type: binary
        display-hint: ipv4
      -
        name: 6rd-prefixlen
        type: u16
      -
        name: 6rd-relay-prefixlen
        type: u16
      -
        name: encap-type
        type: u16
      -
        name: encap-flags
        type: u16
      -
        name: encap-sport
        type: u16
      -
        name: encap-dport
        type: u16
      -
        name: collect-metadata
        type: flag
      -
        name: fwmark
        type: u32
  -
    name: linkinfo-tun-attrs
    name-prefix: ifla-tun-
    attributes:
      -
        name: owner
        type: u32
      -
        name: group
        type: u32
      -
        name: type
        type: u8
      -
        name: pi
        type: u8
      -
        name: vnet-hdr
        type: u8
      -
        name: persist
        type: u8
      -
        name: multi-queue
        type: u8
      -
        name: num-queues
        type: u32
      -
        name: num-disabled-queues
        type: u32
  -
    name: linkinfo-vrf-attrs
    name-prefix: ifla-vrf-
    attributes:
      -
        name: table
        type: u32
  -
    name: xdp-attrs
    attributes:
@@ -1241,6 +1629,46 @@ attribute-sets:
        name: used
        type: u8

sub-messages:
  -
    name: linkinfo-data-msg
    formats:
      -
        value: bridge
        attribute-set: linkinfo-bridge-attrs
      -
        value: erspan
        attribute-set: linkinfo-gre-attrs
      -
        value: gre
        attribute-set: linkinfo-gre-attrs
      -
        value: gretap
        attribute-set: linkinfo-gre-attrs
      -
        value: geneve
        attribute-set: linkinfo-geneve-attrs
      -
        value: ipip
        attribute-set: linkinfo-iptun-attrs
      -
        value: sit
        attribute-set: linkinfo-iptun-attrs
      -
        value: tun
        attribute-set: linkinfo-tun-attrs
      -
        value: vrf
        attribute-set: linkinfo-vrf-attrs
  -
    name: linkinfo-member-data-msg
    formats:
      -
        value: bridge
        attribute-set: linkinfo-brport-attrs
      -
        value: bond

operations:
  enum-model: directional
  list: