Files
linux/Documentation/netlink/specs/rt-route.yaml
Matthieu Baerts (NGI0) 12e74931ee netlink: specs: explicitly declare block scalar strings
In YAML, it is allowed to declare a scalar strings at the next lines
without explicitly declaring them as a block. Yet, they looks weird, and
can cause issues when ':' or '#' are present.

The modified lines didn't have issues with the special characters, but
it seems better to explicitly declare such blocks as scalar strings to
encourage people to "properly" declare future scalar strings.

The right angle bracket is used with a minus sign to indicate that the
folded style should be used without adding extra newlines. By doing
that, the output is not changed compared to what was done before this
patch.

Suggested-by: Donald Hunter <donald.hunter@gmail.com>
Signed-off-by: Matthieu Baerts (NGI0) <matttbe@kernel.org>
Link: https://patch.msgid.link/20250913-net-next-ynl-attr-doc-rst-v3-3-4f06420d87db@kernel.org
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
2025-09-15 18:27:19 -07:00

325 lines
5.6 KiB
YAML

# SPDX-License-Identifier: ((GPL-2.0 WITH Linux-syscall-note) OR BSD-3-Clause)
---
name: rt-route
protocol: netlink-raw
uapi-header: linux/rtnetlink.h
protonum: 0
doc: >-
Route configuration over rtnetlink.
definitions:
-
name: rtm-type
name-prefix: rtn-
enum-name:
type: enum
entries:
- unspec
- unicast
- local
- broadcast
- anycast
- multicast
- blackhole
- unreachable
- prohibit
- throw
- nat
- xresolve
-
name: rtmsg
type: struct
members:
-
name: rtm-family
type: u8
-
name: rtm-dst-len
type: u8
-
name: rtm-src-len
type: u8
-
name: rtm-tos
type: u8
-
name: rtm-table
type: u8
-
name: rtm-protocol
type: u8
-
name: rtm-scope
type: u8
-
name: rtm-type
type: u8
enum: rtm-type
-
name: rtm-flags
type: u32
-
name: rta-cacheinfo
type: struct
members:
-
name: rta-clntref
type: u32
-
name: rta-lastuse
type: u32
-
name: rta-expires
type: u32
-
name: rta-error
type: u32
-
name: rta-used
type: u32
attribute-sets:
-
name: route-attrs
name-prefix: rta-
attributes:
-
name: dst
type: binary
display-hint: ipv4
-
name: src
type: binary
display-hint: ipv4
-
name: iif
type: u32
-
name: oif
type: u32
-
name: gateway
type: binary
display-hint: ipv4
-
name: priority
type: u32
-
name: prefsrc
type: binary
display-hint: ipv4
-
name: metrics
type: nest
nested-attributes: metrics
-
name: multipath
type: binary
-
name: protoinfo # not used
type: binary
-
name: flow
type: u32
-
name: cacheinfo
type: binary
struct: rta-cacheinfo
-
name: session # not used
type: binary
-
name: mp-algo # not used
type: binary
-
name: table
type: u32
-
name: mark
type: u32
-
name: mfc-stats
type: binary
-
name: via
type: binary
-
name: newdst
type: binary
-
name: pref
type: u8
-
name: encap-type
type: u16
-
name: encap
type: binary # tunnel specific nest
-
name: expires
type: u32
-
name: pad
type: binary
-
name: uid
type: u32
-
name: ttl-propagate
type: u8
-
name: ip-proto
type: u8
-
name: sport
type: u16
-
name: dport
type: u16
-
name: nh-id
type: u32
-
name: flowlabel
type: u32
byte-order: big-endian
display-hint: hex
-
name: metrics
name-prefix: rtax-
attributes:
-
name: unspec
type: unused
value: 0
-
name: lock
type: u32
-
name: mtu
type: u32
-
name: window
type: u32
-
name: rtt
type: u32
-
name: rttvar
type: u32
-
name: ssthresh
type: u32
-
name: cwnd
type: u32
-
name: advmss
type: u32
-
name: reordering
type: u32
-
name: hoplimit
type: u32
-
name: initcwnd
type: u32
-
name: features
type: u32
-
name: rto-min
type: u32
-
name: initrwnd
type: u32
-
name: quickack
type: u32
-
name: cc-algo
type: string
-
name: fastopen-no-cookie
type: u32
operations:
enum-model: directional
fixed-header: rtmsg
name-prefix: rtm-
list:
-
name: getroute
doc: Dump route information.
attribute-set: route-attrs
do:
request:
value: 26
attributes:
- src
- dst
- iif
- oif
- ip-proto
- sport
- dport
- mark
- uid
- flowlabel
reply:
value: 24
attributes: &all-route-attrs
- dst
- src
- iif
- oif
- gateway
- priority
- prefsrc
- metrics
- multipath
- flow
- cacheinfo
- table
- mark
- mfc-stats
- via
- newdst
- pref
- encap-type
- encap
- expires
- pad
- uid
- ttl-propagate
- ip-proto
- sport
- dport
- nh-id
- flowlabel
dump:
request:
value: 26
attributes: []
reply:
value: 24
attributes: *all-route-attrs
-
name: newroute
doc: Create a new route
attribute-set: route-attrs
do:
request:
value: 24
attributes: *all-route-attrs
-
name: delroute
doc: Delete an existing route
attribute-set: route-attrs
do:
request:
value: 25
attributes: *all-route-attrs