mirror of
				https://github.com/torvalds/linux.git
				synced 2025-11-04 02:30:34 +02:00 
			
		
		
		
	netlink: specs: Add a spec for neighbor tables in rtnetlink
Add a YNL spec for neighbour tables and neighbour entries in rtnetlink.
./tools/net/ynl/cli.py \
    --spec Documentation/netlink/specs/rt_neigh.yaml \
    --dump getneigh
[{'cacheinfo': {'confirmed': 122664055,
                'refcnt': 0,
                'updated': 122658055,
                'used': 122658055},
  'dst': '0.0.0.0',
  'family': 2,
  'flags': set(),
  'ifindex': 5,
  'lladr': '',
  'probes': 0,
  'state': {'noarp'},
  'type': 'broadcast'},
  ...]
Acked-by: Stanislav Fomichev <sdf@fomichev.me>
Signed-off-by: Donald Hunter <donald.hunter@gmail.com>
Link: https://patch.msgid.link/20241106090718.64713-2-donald.hunter@gmail.com
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
			
			
This commit is contained in:
		
							parent
							
								
									38a1f50a5e
								
							
						
					
					
						commit
						bc515ed066
					
				
					 1 changed files with 442 additions and 0 deletions
				
			
		
							
								
								
									
										442
									
								
								Documentation/netlink/specs/rt_neigh.yaml
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										442
									
								
								Documentation/netlink/specs/rt_neigh.yaml
									
									
									
									
									
										Normal file
									
								
							| 
						 | 
				
			
			@ -0,0 +1,442 @@
 | 
			
		|||
# SPDX-License-Identifier: ((GPL-2.0 WITH Linux-syscall-note) OR BSD-3-Clause)
 | 
			
		||||
 | 
			
		||||
name: rt-neigh
 | 
			
		||||
protocol: netlink-raw
 | 
			
		||||
protonum: 0
 | 
			
		||||
 | 
			
		||||
doc:
 | 
			
		||||
  IP neighbour management over rtnetlink.
 | 
			
		||||
 | 
			
		||||
definitions:
 | 
			
		||||
  -
 | 
			
		||||
    name: ndmsg
 | 
			
		||||
    type: struct
 | 
			
		||||
    members:
 | 
			
		||||
      -
 | 
			
		||||
        name: family
 | 
			
		||||
        type: u8
 | 
			
		||||
      -
 | 
			
		||||
        name: pad
 | 
			
		||||
        type: pad
 | 
			
		||||
        len: 3
 | 
			
		||||
      -
 | 
			
		||||
        name: ifindex
 | 
			
		||||
        type: s32
 | 
			
		||||
      -
 | 
			
		||||
        name: state
 | 
			
		||||
        type: u16
 | 
			
		||||
        enum: nud-state
 | 
			
		||||
      -
 | 
			
		||||
        name: flags
 | 
			
		||||
        type: u8
 | 
			
		||||
        enum: ntf-flags
 | 
			
		||||
      -
 | 
			
		||||
        name: type
 | 
			
		||||
        type: u8
 | 
			
		||||
        enum: rtm-type
 | 
			
		||||
  -
 | 
			
		||||
    name: ndtmsg
 | 
			
		||||
    type: struct
 | 
			
		||||
    members:
 | 
			
		||||
      -
 | 
			
		||||
        name: family
 | 
			
		||||
        type: u8
 | 
			
		||||
      -
 | 
			
		||||
        name: pad
 | 
			
		||||
        type: pad
 | 
			
		||||
        len: 3
 | 
			
		||||
  -
 | 
			
		||||
    name: nud-state
 | 
			
		||||
    type: flags
 | 
			
		||||
    entries:
 | 
			
		||||
      - incomplete
 | 
			
		||||
      - reachable
 | 
			
		||||
      - stale
 | 
			
		||||
      - delay
 | 
			
		||||
      - probe
 | 
			
		||||
      - failed
 | 
			
		||||
      - noarp
 | 
			
		||||
      - permanent
 | 
			
		||||
  -
 | 
			
		||||
    name: ntf-flags
 | 
			
		||||
    type: flags
 | 
			
		||||
    entries:
 | 
			
		||||
      - use
 | 
			
		||||
      - self
 | 
			
		||||
      - master
 | 
			
		||||
      - proxy
 | 
			
		||||
      - ext-learned
 | 
			
		||||
      - offloaded
 | 
			
		||||
      - sticky
 | 
			
		||||
      - router
 | 
			
		||||
  -
 | 
			
		||||
    name: ntf-ext-flags
 | 
			
		||||
    type: flags
 | 
			
		||||
    entries:
 | 
			
		||||
      - managed
 | 
			
		||||
      - locked
 | 
			
		||||
  -
 | 
			
		||||
    name: rtm-type
 | 
			
		||||
    type: enum
 | 
			
		||||
    entries:
 | 
			
		||||
      - unspec
 | 
			
		||||
      - unicast
 | 
			
		||||
      - local
 | 
			
		||||
      - broadcast
 | 
			
		||||
      - anycast
 | 
			
		||||
      - multicast
 | 
			
		||||
      - blackhole
 | 
			
		||||
      - unreachable
 | 
			
		||||
      - prohibit
 | 
			
		||||
      - throw
 | 
			
		||||
      - nat
 | 
			
		||||
      - xresolve
 | 
			
		||||
  -
 | 
			
		||||
    name: nda-cacheinfo
 | 
			
		||||
    type: struct
 | 
			
		||||
    members:
 | 
			
		||||
      -
 | 
			
		||||
        name: confirmed
 | 
			
		||||
        type: u32
 | 
			
		||||
      -
 | 
			
		||||
        name: used
 | 
			
		||||
        type: u32
 | 
			
		||||
      -
 | 
			
		||||
        name: updated
 | 
			
		||||
        type: u32
 | 
			
		||||
      -
 | 
			
		||||
        name: refcnt
 | 
			
		||||
        type: u32
 | 
			
		||||
  -
 | 
			
		||||
    name: ndt-config
 | 
			
		||||
    type: struct
 | 
			
		||||
    members:
 | 
			
		||||
      -
 | 
			
		||||
        name: key-len
 | 
			
		||||
        type: u16
 | 
			
		||||
      -
 | 
			
		||||
        name: entry-size
 | 
			
		||||
        type: u16
 | 
			
		||||
      -
 | 
			
		||||
        name: entries
 | 
			
		||||
        type: u32
 | 
			
		||||
      -
 | 
			
		||||
        name: last-flush
 | 
			
		||||
        type: u32
 | 
			
		||||
      -
 | 
			
		||||
        name: last-rand
 | 
			
		||||
        type: u32
 | 
			
		||||
      -
 | 
			
		||||
        name: hash-rnd
 | 
			
		||||
        type: u32
 | 
			
		||||
      -
 | 
			
		||||
        name: hash-mask
 | 
			
		||||
        type: u32
 | 
			
		||||
      -
 | 
			
		||||
        name: hash-chain-gc
 | 
			
		||||
        type: u32
 | 
			
		||||
      -
 | 
			
		||||
        name: proxy-qlen
 | 
			
		||||
        type: u32
 | 
			
		||||
  -
 | 
			
		||||
    name: ndt-stats
 | 
			
		||||
    type: struct
 | 
			
		||||
    members:
 | 
			
		||||
      -
 | 
			
		||||
        name: allocs
 | 
			
		||||
        type: u64
 | 
			
		||||
      -
 | 
			
		||||
        name: destroys
 | 
			
		||||
        type: u64
 | 
			
		||||
      -
 | 
			
		||||
        name: hash-grows
 | 
			
		||||
        type: u64
 | 
			
		||||
      -
 | 
			
		||||
        name: res-failed
 | 
			
		||||
        type: u64
 | 
			
		||||
      -
 | 
			
		||||
        name: lookups
 | 
			
		||||
        type: u64
 | 
			
		||||
      -
 | 
			
		||||
        name: hits
 | 
			
		||||
        type: u64
 | 
			
		||||
      -
 | 
			
		||||
        name: rcv-probes-mcast
 | 
			
		||||
        type: u64
 | 
			
		||||
      -
 | 
			
		||||
        name: rcv-probes-ucast
 | 
			
		||||
        type: u64
 | 
			
		||||
      -
 | 
			
		||||
        name: periodic-gc-runs
 | 
			
		||||
        type: u64
 | 
			
		||||
      -
 | 
			
		||||
        name: forced-gc-runs
 | 
			
		||||
        type: u64
 | 
			
		||||
      -
 | 
			
		||||
        name: table-fulls
 | 
			
		||||
        type: u64
 | 
			
		||||
 | 
			
		||||
attribute-sets:
 | 
			
		||||
  -
 | 
			
		||||
    name: neighbour-attrs
 | 
			
		||||
    attributes:
 | 
			
		||||
      -
 | 
			
		||||
        name: unspec
 | 
			
		||||
        type: binary
 | 
			
		||||
        value: 0
 | 
			
		||||
      -
 | 
			
		||||
        name: dst
 | 
			
		||||
        type: binary
 | 
			
		||||
        display-hint: ipv4
 | 
			
		||||
      -
 | 
			
		||||
        name: lladr
 | 
			
		||||
        type: binary
 | 
			
		||||
        display-hint: mac
 | 
			
		||||
      -
 | 
			
		||||
        name: cacheinfo
 | 
			
		||||
        type: binary
 | 
			
		||||
        struct: nda-cacheinfo
 | 
			
		||||
      -
 | 
			
		||||
        name: probes
 | 
			
		||||
        type: u32
 | 
			
		||||
      -
 | 
			
		||||
        name: vlan
 | 
			
		||||
        type: u16
 | 
			
		||||
      -
 | 
			
		||||
        name: port
 | 
			
		||||
        type: u16
 | 
			
		||||
      -
 | 
			
		||||
        name: vni
 | 
			
		||||
        type: u32
 | 
			
		||||
      -
 | 
			
		||||
        name: ifindex
 | 
			
		||||
        type: u32
 | 
			
		||||
      -
 | 
			
		||||
        name: master
 | 
			
		||||
        type: u32
 | 
			
		||||
      -
 | 
			
		||||
        name: link-netnsid
 | 
			
		||||
        type: s32
 | 
			
		||||
      -
 | 
			
		||||
        name: src-vni
 | 
			
		||||
        type: u32
 | 
			
		||||
      -
 | 
			
		||||
        name: protocol
 | 
			
		||||
        type: u8
 | 
			
		||||
      -
 | 
			
		||||
        name: nh-id
 | 
			
		||||
        type: u32
 | 
			
		||||
      -
 | 
			
		||||
        name: fdb-ext-attrs
 | 
			
		||||
        type: binary
 | 
			
		||||
      -
 | 
			
		||||
        name: flags-ext
 | 
			
		||||
        type: u32
 | 
			
		||||
        enum: ntf-ext-flags
 | 
			
		||||
      -
 | 
			
		||||
        name: ndm-state-mask
 | 
			
		||||
        type: u16
 | 
			
		||||
      -
 | 
			
		||||
        name: ndm-flags-mask
 | 
			
		||||
        type: u8
 | 
			
		||||
  -
 | 
			
		||||
    name: ndt-attrs
 | 
			
		||||
    attributes:
 | 
			
		||||
      -
 | 
			
		||||
        name: name
 | 
			
		||||
        type: string
 | 
			
		||||
      -
 | 
			
		||||
        name: thresh1
 | 
			
		||||
        type: u32
 | 
			
		||||
      -
 | 
			
		||||
        name: thresh2
 | 
			
		||||
        type: u32
 | 
			
		||||
      -
 | 
			
		||||
        name: thresh3
 | 
			
		||||
        type: u32
 | 
			
		||||
      -
 | 
			
		||||
        name: config
 | 
			
		||||
        type: binary
 | 
			
		||||
        struct: ndt-config
 | 
			
		||||
      -
 | 
			
		||||
        name: parms
 | 
			
		||||
        type: nest
 | 
			
		||||
        nested-attributes: ndtpa-attrs
 | 
			
		||||
      -
 | 
			
		||||
        name: stats
 | 
			
		||||
        type: binary
 | 
			
		||||
        struct: ndt-stats
 | 
			
		||||
      -
 | 
			
		||||
        name: gc-interval
 | 
			
		||||
        type: u64
 | 
			
		||||
      -
 | 
			
		||||
        name: pad
 | 
			
		||||
        type: pad
 | 
			
		||||
  -
 | 
			
		||||
    name: ndtpa-attrs
 | 
			
		||||
    attributes:
 | 
			
		||||
      -
 | 
			
		||||
        name: ifindex
 | 
			
		||||
        type: u32
 | 
			
		||||
      -
 | 
			
		||||
        name: refcnt
 | 
			
		||||
        type: u32
 | 
			
		||||
      -
 | 
			
		||||
        name: reachable-time
 | 
			
		||||
        type: u64
 | 
			
		||||
      -
 | 
			
		||||
        name: base-reachable-time
 | 
			
		||||
        type: u64
 | 
			
		||||
      -
 | 
			
		||||
        name: retrans-time
 | 
			
		||||
        type: u64
 | 
			
		||||
      -
 | 
			
		||||
        name: gc-staletime
 | 
			
		||||
        type: u64
 | 
			
		||||
      -
 | 
			
		||||
        name: delay-probe-time
 | 
			
		||||
        type: u64
 | 
			
		||||
      -
 | 
			
		||||
        name: queue-len
 | 
			
		||||
        type: u32
 | 
			
		||||
      -
 | 
			
		||||
        name: app-probes
 | 
			
		||||
        type: u32
 | 
			
		||||
      -
 | 
			
		||||
        name: ucast-probes
 | 
			
		||||
        type: u32
 | 
			
		||||
      -
 | 
			
		||||
        name: mcast-probes
 | 
			
		||||
        type: u32
 | 
			
		||||
      -
 | 
			
		||||
        name: anycast-delay
 | 
			
		||||
        type: u64
 | 
			
		||||
      -
 | 
			
		||||
        name: proxy-delay
 | 
			
		||||
        type: u64
 | 
			
		||||
      -
 | 
			
		||||
        name: proxy-qlen
 | 
			
		||||
        type: u32
 | 
			
		||||
      -
 | 
			
		||||
        name: locktime
 | 
			
		||||
        type: u64
 | 
			
		||||
      -
 | 
			
		||||
        name: queue-lenbytes
 | 
			
		||||
        type: u32
 | 
			
		||||
      -
 | 
			
		||||
        name: mcast-reprobes
 | 
			
		||||
        type: u32
 | 
			
		||||
      -
 | 
			
		||||
        name: pad
 | 
			
		||||
        type: pad
 | 
			
		||||
      -
 | 
			
		||||
        name: interval-probe-time-ms
 | 
			
		||||
        type: u64
 | 
			
		||||
 | 
			
		||||
operations:
 | 
			
		||||
  enum-model: directional
 | 
			
		||||
  list:
 | 
			
		||||
    -
 | 
			
		||||
      name: newneigh
 | 
			
		||||
      doc: Add new neighbour entry
 | 
			
		||||
      fixed-header: ndmsg
 | 
			
		||||
      attribute-set: neighbour-attrs
 | 
			
		||||
      do:
 | 
			
		||||
        request:
 | 
			
		||||
          value: 28
 | 
			
		||||
          attributes: &neighbour-all
 | 
			
		||||
            - dst
 | 
			
		||||
            - lladdr
 | 
			
		||||
            - probes
 | 
			
		||||
            - vlan
 | 
			
		||||
            - port
 | 
			
		||||
            - vni
 | 
			
		||||
            - ifindex
 | 
			
		||||
            - master
 | 
			
		||||
            - protocol
 | 
			
		||||
            - nh-id
 | 
			
		||||
            - flags-ext
 | 
			
		||||
            - fdb-ext-attrs
 | 
			
		||||
    -
 | 
			
		||||
      name: delneigh
 | 
			
		||||
      doc: Remove an existing neighbour entry
 | 
			
		||||
      fixed-header: ndmsg
 | 
			
		||||
      attribute-set: neighbour-attrs
 | 
			
		||||
      do:
 | 
			
		||||
        request:
 | 
			
		||||
          value: 29
 | 
			
		||||
          attributes:
 | 
			
		||||
            - dst
 | 
			
		||||
            - ifindex
 | 
			
		||||
    -
 | 
			
		||||
      name: delneigh-ntf
 | 
			
		||||
      doc: Notify a neighbour deletion
 | 
			
		||||
      value: 29
 | 
			
		||||
      notify: delneigh
 | 
			
		||||
      fixed-header: ndmsg
 | 
			
		||||
    -
 | 
			
		||||
      name: getneigh
 | 
			
		||||
      doc: Get or dump neighbour entries
 | 
			
		||||
      fixed-header: ndmsg
 | 
			
		||||
      attribute-set: neighbour-attrs
 | 
			
		||||
      do:
 | 
			
		||||
        request:
 | 
			
		||||
          value: 30
 | 
			
		||||
          attributes:
 | 
			
		||||
            - dst
 | 
			
		||||
        reply:
 | 
			
		||||
          value: 28
 | 
			
		||||
          attributes: *neighbour-all
 | 
			
		||||
      dump:
 | 
			
		||||
        request:
 | 
			
		||||
          attributes:
 | 
			
		||||
            - ifindex
 | 
			
		||||
            - master
 | 
			
		||||
        reply:
 | 
			
		||||
          attributes: *neighbour-all
 | 
			
		||||
    -
 | 
			
		||||
      name: newneigh-ntf
 | 
			
		||||
      doc: Notify a neighbour creation
 | 
			
		||||
      value: 28
 | 
			
		||||
      notify: getneigh
 | 
			
		||||
      fixed-header: ndmsg
 | 
			
		||||
    -
 | 
			
		||||
      name: getneightbl
 | 
			
		||||
      doc: Get or dump neighbour tables
 | 
			
		||||
      fixed-header: ndtmsg
 | 
			
		||||
      attribute-set: ndt-attrs
 | 
			
		||||
      dump:
 | 
			
		||||
        request:
 | 
			
		||||
          value: 66
 | 
			
		||||
        reply:
 | 
			
		||||
          value: 64
 | 
			
		||||
          attributes:
 | 
			
		||||
            - name
 | 
			
		||||
            - thresh1
 | 
			
		||||
            - thresh2
 | 
			
		||||
            - thresh3
 | 
			
		||||
            - config
 | 
			
		||||
            - parms
 | 
			
		||||
            - stats
 | 
			
		||||
            - gc-interval
 | 
			
		||||
    -
 | 
			
		||||
      name: setneightbl
 | 
			
		||||
      doc: Set neighbour tables
 | 
			
		||||
      fixed-header: ndtmsg
 | 
			
		||||
      attribute-set: ndt-attrs
 | 
			
		||||
      do:
 | 
			
		||||
        request:
 | 
			
		||||
          value: 67
 | 
			
		||||
          attributes:
 | 
			
		||||
            - name
 | 
			
		||||
            - thresh1
 | 
			
		||||
            - thresh2
 | 
			
		||||
            - thresh3
 | 
			
		||||
            - parms
 | 
			
		||||
            - gc-interval
 | 
			
		||||
 | 
			
		||||
mcast-groups:
 | 
			
		||||
  list:
 | 
			
		||||
    -
 | 
			
		||||
      name: rtnlgrp-neigh
 | 
			
		||||
      value: 3
 | 
			
		||||
		Loading…
	
		Reference in a new issue