mirror of
				https://github.com/torvalds/linux.git
				synced 2025-11-04 02:30:34 +02:00 
			
		
		
		
	doc/netlink: Add spec for rt route messages
Add schema for rt route with support for getroute, newroute and
delroute.
Routes can be dumped with filter attributes like this:
./tools/net/ynl/cli.py \
    --spec Documentation/netlink/specs/rt_route.yaml \
    --dump getroute --json '{"rtm-family": 2, "rtm-table": 254}'
Signed-off-by: Donald Hunter <donald.hunter@gmail.com>
Reviewed-by: Jacob Keller <jacob.e.keller@intel.com>
Link: https://lore.kernel.org/r/20230825122756.7603-13-donald.hunter@gmail.com
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
			
			
This commit is contained in:
		
							parent
							
								
									b2f63d904e
								
							
						
					
					
						commit
						023289b4f5
					
				
					 1 changed files with 327 additions and 0 deletions
				
			
		
							
								
								
									
										327
									
								
								Documentation/netlink/specs/rt_route.yaml
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										327
									
								
								Documentation/netlink/specs/rt_route.yaml
									
									
									
									
									
										Normal file
									
								
							| 
						 | 
				
			
			@ -0,0 +1,327 @@
 | 
			
		|||
# SPDX-License-Identifier: ((GPL-2.0 WITH Linux-syscall-note) OR BSD-3-Clause)
 | 
			
		||||
 | 
			
		||||
name: rt-route
 | 
			
		||||
protocol: netlink-raw
 | 
			
		||||
protonum: 0
 | 
			
		||||
 | 
			
		||||
doc:
 | 
			
		||||
  Route configuration over rtnetlink.
 | 
			
		||||
 | 
			
		||||
definitions:
 | 
			
		||||
  -
 | 
			
		||||
    name: rtm-type
 | 
			
		||||
    name-prefix: rtn-
 | 
			
		||||
    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
 | 
			
		||||
    attributes:
 | 
			
		||||
      -
 | 
			
		||||
        name: rta-dst
 | 
			
		||||
        type: binary
 | 
			
		||||
        display-hint: ipv4
 | 
			
		||||
      -
 | 
			
		||||
        name: rta-src
 | 
			
		||||
        type: binary
 | 
			
		||||
        display-hint: ipv4
 | 
			
		||||
      -
 | 
			
		||||
        name: rta-iif
 | 
			
		||||
        type: u32
 | 
			
		||||
      -
 | 
			
		||||
        name: rta-oif
 | 
			
		||||
        type: u32
 | 
			
		||||
      -
 | 
			
		||||
        name: rta-gateway
 | 
			
		||||
        type: binary
 | 
			
		||||
        display-hint: ipv4
 | 
			
		||||
      -
 | 
			
		||||
        name: rta-priority
 | 
			
		||||
        type: u32
 | 
			
		||||
      -
 | 
			
		||||
        name: rta-prefsrc
 | 
			
		||||
        type: binary
 | 
			
		||||
        display-hint: ipv4
 | 
			
		||||
      -
 | 
			
		||||
        name: rta-metrics
 | 
			
		||||
        type: nest
 | 
			
		||||
        nested-attributes: rta-metrics
 | 
			
		||||
      -
 | 
			
		||||
        name: rta-multipath
 | 
			
		||||
        type: binary
 | 
			
		||||
      -
 | 
			
		||||
        name: rta-protoinfo # not used
 | 
			
		||||
        type: binary
 | 
			
		||||
      -
 | 
			
		||||
        name: rta-flow
 | 
			
		||||
        type: u32
 | 
			
		||||
      -
 | 
			
		||||
        name: rta-cacheinfo
 | 
			
		||||
        type: binary
 | 
			
		||||
        struct: rta-cacheinfo
 | 
			
		||||
      -
 | 
			
		||||
        name: rta-session # not used
 | 
			
		||||
        type: binary
 | 
			
		||||
      -
 | 
			
		||||
        name: rta-mp-algo # not used
 | 
			
		||||
        type: binary
 | 
			
		||||
      -
 | 
			
		||||
        name: rta-table
 | 
			
		||||
        type: u32
 | 
			
		||||
      -
 | 
			
		||||
        name: rta-mark
 | 
			
		||||
        type: u32
 | 
			
		||||
      -
 | 
			
		||||
        name: rta-mfc-stats
 | 
			
		||||
        type: binary
 | 
			
		||||
      -
 | 
			
		||||
        name: rta-via
 | 
			
		||||
        type: binary
 | 
			
		||||
      -
 | 
			
		||||
        name: rta-newdst
 | 
			
		||||
        type: binary
 | 
			
		||||
      -
 | 
			
		||||
        name: rta-pref
 | 
			
		||||
        type: u8
 | 
			
		||||
      -
 | 
			
		||||
        name: rta-encap-type
 | 
			
		||||
        type: u16
 | 
			
		||||
      -
 | 
			
		||||
        name: rta-encap
 | 
			
		||||
        type: binary # tunnel specific nest
 | 
			
		||||
      -
 | 
			
		||||
        name: rta-expires
 | 
			
		||||
        type: u32
 | 
			
		||||
      -
 | 
			
		||||
        name: rta-pad
 | 
			
		||||
        type: binary
 | 
			
		||||
      -
 | 
			
		||||
        name: rta-uid
 | 
			
		||||
        type: u32
 | 
			
		||||
      -
 | 
			
		||||
        name: rta-ttl-propagate
 | 
			
		||||
        type: u8
 | 
			
		||||
      -
 | 
			
		||||
        name: rta-ip-proto
 | 
			
		||||
        type: u8
 | 
			
		||||
      -
 | 
			
		||||
        name: rta-sport
 | 
			
		||||
        type: u16
 | 
			
		||||
      -
 | 
			
		||||
        name: rta-dport
 | 
			
		||||
        type: u16
 | 
			
		||||
      -
 | 
			
		||||
        name: rta-nh-id
 | 
			
		||||
        type: u32
 | 
			
		||||
  -
 | 
			
		||||
    name: rta-metrics
 | 
			
		||||
    attributes:
 | 
			
		||||
      -
 | 
			
		||||
        name: rtax-unspec
 | 
			
		||||
        type: unused
 | 
			
		||||
        value: 0
 | 
			
		||||
      -
 | 
			
		||||
        name: rtax-lock
 | 
			
		||||
        type: u32
 | 
			
		||||
      -
 | 
			
		||||
        name: rtax-mtu
 | 
			
		||||
        type: u32
 | 
			
		||||
      -
 | 
			
		||||
        name: rtax-window
 | 
			
		||||
        type: u32
 | 
			
		||||
      -
 | 
			
		||||
        name: rtax-rtt
 | 
			
		||||
        type: u32
 | 
			
		||||
      -
 | 
			
		||||
        name: rtax-rttvar
 | 
			
		||||
        type: u32
 | 
			
		||||
      -
 | 
			
		||||
        name: rtax-ssthresh
 | 
			
		||||
        type: u32
 | 
			
		||||
      -
 | 
			
		||||
        name: rtax-cwnd
 | 
			
		||||
        type: u32
 | 
			
		||||
      -
 | 
			
		||||
        name: rtax-advmss
 | 
			
		||||
        type: u32
 | 
			
		||||
      -
 | 
			
		||||
        name: rtax-reordering
 | 
			
		||||
        type: u32
 | 
			
		||||
      -
 | 
			
		||||
        name: rtax-hoplimit
 | 
			
		||||
        type: u32
 | 
			
		||||
      -
 | 
			
		||||
        name: rtax-initcwnd
 | 
			
		||||
        type: u32
 | 
			
		||||
      -
 | 
			
		||||
        name: rtax-features
 | 
			
		||||
        type: u32
 | 
			
		||||
      -
 | 
			
		||||
        name: rtax-rto-min
 | 
			
		||||
        type: u32
 | 
			
		||||
      -
 | 
			
		||||
        name: rtax-initrwnd
 | 
			
		||||
        type: u32
 | 
			
		||||
      -
 | 
			
		||||
        name: rtax-quickack
 | 
			
		||||
        type: u32
 | 
			
		||||
      -
 | 
			
		||||
        name: rtax-cc-algo
 | 
			
		||||
        type: string
 | 
			
		||||
      -
 | 
			
		||||
        name: rtax-fastopen-no-cookie
 | 
			
		||||
        type: u32
 | 
			
		||||
 | 
			
		||||
operations:
 | 
			
		||||
  enum-model: directional
 | 
			
		||||
  list:
 | 
			
		||||
    -
 | 
			
		||||
      name: getroute
 | 
			
		||||
      doc: Dump route information.
 | 
			
		||||
      attribute-set: route-attrs
 | 
			
		||||
      fixed-header: rtmsg
 | 
			
		||||
      do:
 | 
			
		||||
        request:
 | 
			
		||||
          value: 26
 | 
			
		||||
          attributes:
 | 
			
		||||
            - rtm-family
 | 
			
		||||
            - rta-src
 | 
			
		||||
            - rtm-src-len
 | 
			
		||||
            - rta-dst
 | 
			
		||||
            - rtm-dst-len
 | 
			
		||||
            - rta-iif
 | 
			
		||||
            - rta-oif
 | 
			
		||||
            - rta-ip-proto
 | 
			
		||||
            - rta-sport
 | 
			
		||||
            - rta-dport
 | 
			
		||||
            - rta-mark
 | 
			
		||||
            - rta-uid
 | 
			
		||||
        reply:
 | 
			
		||||
          value: 24
 | 
			
		||||
          attributes: &all-route-attrs
 | 
			
		||||
            - rtm-family
 | 
			
		||||
            - rtm-dst-len
 | 
			
		||||
            - rtm-src-len
 | 
			
		||||
            - rtm-tos
 | 
			
		||||
            - rtm-table
 | 
			
		||||
            - rtm-protocol
 | 
			
		||||
            - rtm-scope
 | 
			
		||||
            - rtm-type
 | 
			
		||||
            - rtm-flags
 | 
			
		||||
            - rta-dst
 | 
			
		||||
            - rta-src
 | 
			
		||||
            - rta-iif
 | 
			
		||||
            - rta-oif
 | 
			
		||||
            - rta-gateway
 | 
			
		||||
            - rta-priority
 | 
			
		||||
            - rta-prefsrc
 | 
			
		||||
            - rta-metrics
 | 
			
		||||
            - rta-multipath
 | 
			
		||||
            - rta-flow
 | 
			
		||||
            - rta-cacheinfo
 | 
			
		||||
            - rta-table
 | 
			
		||||
            - rta-mark
 | 
			
		||||
            - rta-mfc-stats
 | 
			
		||||
            - rta-via
 | 
			
		||||
            - rta-newdst
 | 
			
		||||
            - rta-pref
 | 
			
		||||
            - rta-encap-type
 | 
			
		||||
            - rta-encap
 | 
			
		||||
            - rta-expires
 | 
			
		||||
            - rta-pad
 | 
			
		||||
            - rta-uid
 | 
			
		||||
            - rta-ttl-propagate
 | 
			
		||||
            - rta-ip-proto
 | 
			
		||||
            - rta-sport
 | 
			
		||||
            - rta-dport
 | 
			
		||||
            - rta-nh-id
 | 
			
		||||
      dump:
 | 
			
		||||
        request:
 | 
			
		||||
          value: 26
 | 
			
		||||
          attributes:
 | 
			
		||||
            - rtm-family
 | 
			
		||||
        reply:
 | 
			
		||||
          value: 24
 | 
			
		||||
          attributes: *all-route-attrs
 | 
			
		||||
    -
 | 
			
		||||
      name: newroute
 | 
			
		||||
      doc: Create a new route
 | 
			
		||||
      attribute-set: route-attrs
 | 
			
		||||
      fixed-header: rtmsg
 | 
			
		||||
      do:
 | 
			
		||||
        request:
 | 
			
		||||
          value: 24
 | 
			
		||||
          attributes: *all-route-attrs
 | 
			
		||||
    -
 | 
			
		||||
      name: delroute
 | 
			
		||||
      doc: Delete an existing route
 | 
			
		||||
      attribute-set: route-attrs
 | 
			
		||||
      fixed-header: rtmsg
 | 
			
		||||
      do:
 | 
			
		||||
        request:
 | 
			
		||||
          value: 25
 | 
			
		||||
          attributes: *all-route-attrs
 | 
			
		||||
		Loading…
	
		Reference in a new issue