summaryrefslogtreecommitdiffstats
path: root/Documentation/netlink/specs/rt-route.yaml
diff options
context:
space:
mode:
authorKees Cook <kees+treewide@kernel.org>2026-09-02 15:31:14 -0700
committerKees Cook <kees@kernel.org>2026-09-04 21:37:00 -0700
commit3a2c4d55e32ad65efebdb6de44eef3bfa08bb49d (patch)
treec65086f9bdcd48c6360fb7cb4598bca084da1f32 /Documentation/netlink/specs/rt-route.yaml
downloadlinux-stable-3a2c4d55e32ad65efebdb6de44eef3bfa08bb49d.tar.gz
linux-stable-3a2c4d55e32ad65efebdb6de44eef3bfa08bb49d.zip
treewide: refresh kmalloc_obj() conversionsgrafted
This is another run of the Coccinelle script for converting kmalloc() family of allocations to kmalloc_obj() via the existing rules in scripts/coccinelle/api/kmalloc_objs.cocci This catches both the set of kmalloc() uses added since the first kmalloc_obj() conversions in v7.0 and adds a large group missed in the first pass due to Coccinelle not interacting well with the cleanup.h scoped_...() family of macros[1]. I worked around this with spatch's "--macro-file" argument to a file with all the scoped_...() macros mapped to Coccinelle's YACFE_ITERATOR[2] as that was the closest viable control flow indicator I could find. Build tested allmodconfig on x86, arm64, arm, loongarch, mips, powerpc, riscv, and s390 with no new warnings. Link: https://lore.kernel.org/lkml/202609021314.8A9C0B8@keescook/ [1] Link: https://github.com/coccinelle/coccinelle/blob/master/standard.h [2] Signed-off-by: Kees Cook <kees+treewide@kernel.org>
Diffstat (limited to 'Documentation/netlink/specs/rt-route.yaml')
-rw-r--r--Documentation/netlink/specs/rt-route.yaml405
1 files changed, 405 insertions, 0 deletions
diff --git a/Documentation/netlink/specs/rt-route.yaml b/Documentation/netlink/specs/rt-route.yaml
new file mode 100644
index 000000000..253037ea5
--- /dev/null
+++ b/Documentation/netlink/specs/rt-route.yaml
@@ -0,0 +1,405 @@
+# 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
+ -
+ name: del-reason
+ type: enum
+ name-prefix: rt-del-reason-
+ enum-name: rt-del-reason
+ doc: |
+ Why the kernel deleted a route. New causes may be appended. The
+ value space is family-agnostic, a value is never reinterpreted
+ per address family.
+ entries:
+ -
+ name: unspec
+ doc: The deletion path does not record a cause.
+ -
+ name: expired
+ doc: The RTF_EXPIRES lifetime ran out and the route was garbage
+ collected.
+ -
+ name: ra-withdrawn
+ doc: A Router Advertisement withdrew the route with a zero
+ lifetime.
+
+attribute-sets:
+ -
+ name: route-attrs
+ name-prefix: rta-
+ attributes:
+ -
+ name: dst
+ type: binary
+ display-hint: ipv4-or-v6
+ -
+ name: src
+ type: binary
+ display-hint: ipv4-or-v6
+ -
+ name: iif
+ type: u32
+ -
+ name: oif
+ type: u32
+ -
+ name: gateway
+ type: binary
+ display-hint: ipv4-or-v6
+ -
+ name: priority
+ type: u32
+ -
+ name: prefsrc
+ type: binary
+ display-hint: ipv4-or-v6
+ -
+ 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: del-reason
+ type: u32
+ enum: del-reason
+ doc: |
+ Emitted only on RTM_DELROUTE notifications, and only when the
+ deletion path records a cause. An absent attribute means
+ either an older kernel or a deletion path that does not
+ record its cause, consumers must treat absent and unspec
+ identically. Currently only IPv6 deletion paths record a
+ cause. The attribute is notification-only, the kernel rejects
+ it in requests.
+ -
+ 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
+ - del-reason
+ 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: &route-req-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
+ -
+ name: delroute
+ doc: Delete an existing route
+ attribute-set: route-attrs
+ do:
+ request:
+ value: 25
+ attributes: *route-req-attrs
+ -
+ name: newroute-ntf
+ doc: Notification about a created route.
+ value: 24
+ notify: getroute
+ -
+ name: delroute-ntf
+ doc: Notification about a deleted route.
+ value: 25
+ notify: getroute
+
+mcast-groups:
+ list:
+ -
+ name: rtnlgrp-ipv4-route
+ value: 7
+ -
+ name: rtnlgrp-ipv6-route
+ value: 11