| # 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 |