blob: 06c28fa7d2fb63c06072dcbb39cd43d20926452a [file]
# SPDX-License-Identifier: ((GPL-2.0 WITH Linux-syscall-note) OR BSD-3-Clause)
---
name: rt-nexthop
protocol: netlink-raw
uapi-header: linux/nexthop.h
protonum: 0
doc: >-
Nexthop object management over rtnetlink.
definitions:
-
name: nhmsg
type: struct
members:
-
name: nh-family
type: u8
-
name: nh-scope
type: u8
-
name: nh-protocol
type: u8
-
name: resvd
type: pad
len: 1
-
name: nh-flags
type: u32
enum: rtnh-f
-
name: rtnh-f
type: flags
name-prefix: rtnh-f-
enum-name:
entries:
- dead
- pervasive
- onlink
- offload
- linkdown
- unresolved
- trap
-
name: nexthop-grp
type: struct
members:
-
name: id
type: u32
-
name: weight
type: u8
-
name: weight-high
type: u8
-
name: resvd2
type: pad
len: 2
-
name: nexthop-grp-type
type: enum
name-prefix: nexthop-grp-type-
enum-name:
entries:
- mpath
- res
-
name: encap-type
type: enum
name-prefix: lwtunnel-encap-
enum-name:
entries:
- none
- mpls
- ip
- ila
- ip6
- seg6
- bpf
- seg6-local
- rpl
- ioam6
- xfrm
-
name: seg6-local-actions
type: enum
name-prefix: seg6-local-action-
enum-name:
entries:
- unspec
- end
- end-x
- end-t
- end-dx2
- end-dx6
- end-dx4
- end-dt6
- end-dt4
- end-b6
- end-b6-encap
- end-bm
- end-s
- end-as
- end-am
- end-bpf
- end-dt46
-
name: seg6-local-flv-ops
type: enum
name-prefix: seg6-local-flv-op-
enum-name:
entries:
-
name: unspec
-
name: psp
-
name: usp
-
name: usd
-
name: next-csid
-
name: nha-op-flag
type: flags
name-prefix: nha-op-flag-
enum-name:
entries:
- dump-stats
- dump-hw-stats
-
name: nha-op-flag-resp-grp-resvd-0
type: const
value: 2147483648
sub-messages:
-
name: encap-data
formats:
-
value: mpls
attribute-set: mpls-iptunnel
-
value: ip
attribute-set: lwtunnel-ip
-
value: ila
attribute-set: ila-attrs
-
value: ip6
attribute-set: lwtunnel-ip6
-
value: seg6
attribute-set: seg6-iptunnel
-
value: bpf
attribute-set: lwt-bpf
-
value: seg6-local
attribute-set: seg6-local
-
value: rpl
attribute-set: rpl-iptunnel
-
value: ioam6
attribute-set: ioam6-iptunnel
-
value: xfrm
attribute-set: lwt-xfrm
attribute-sets:
-
name: nexthop-attrs
name-prefix: nha-
attributes:
-
name: id
type: u32
-
name: group
type: binary # array of struct: nexthop-grp
-
name: group-type
type: u16
enum: nexthop-grp-type
-
name: blackhole
type: flag
-
name: oif
type: u32
-
name: gateway
type: binary
display-hint: ipv4-or-v6
-
name: encap-type
type: u16
enum: encap-type
-
name: encap
type: sub-message
sub-message: encap-data
selector: encap-type
-
name: groups
type: flag
-
name: master
type: u32
-
name: fdb
type: flag
-
name: res-group
type: nest
nested-attributes: res-group-attrs
-
name: res-bucket
type: nest
nested-attributes: res-bucket-attrs
-
name: op-flags
type: u32
checks:
flags-mask: nha-op-flag
-
name: group-stats
type: nest
nested-attributes: group-stats-attrs
-
name: hw-stats-enable
type: u32
checks:
max: 1
-
name: hw-stats-used
type: u32
-
name: dst-port
type: u16
byte-order: big-endian
checks:
min: 1
-
name: mpls-iptunnel
name-prefix: mpls-iptunnel-
header: linux/mpls_iptunnel.h
attributes:
-
name: dst
type: binary
-
name: ttl
type: u8
-
name: lwtunnel-ip
name-prefix: lwtunnel-ip-
header: linux/lwtunnel.h
attributes:
-
name: id
type: u64
byte-order: big-endian
-
name: dst
type: u32
byte-order: big-endian
display-hint: ipv4
-
name: src
type: u32
byte-order: big-endian
display-hint: ipv4
-
name: ttl
type: u8
-
name: tos
type: u8
-
name: flags
type: u16
byte-order: big-endian
-
name: pad
type: pad
-
name: opts
type: nest
nested-attributes: lwtunnel-ip-opts
-
name: ila-attrs
name-prefix: ila-attr-
header: linux/ila.h
attributes:
-
name: locator
type: u64
byte-order: big-endian
-
name: identifier
type: u64
-
name: locator-match
type: u64
byte-order: big-endian
-
name: ifindex
type: s32
-
name: dir
type: u32
-
name: pad
type: pad
-
name: csum-mode
type: u8
-
name: ident-type
type: u8
-
name: hook-type
type: u8
-
name: lwtunnel-ip6
name-prefix: lwtunnel-ip6-
header: linux/lwtunnel.h
attributes:
-
name: id
type: u64
byte-order: big-endian
-
name: dst
type: binary
display-hint: ipv6
-
name: src
type: binary
display-hint: ipv6
-
name: hoplimit
type: u8
-
name: tc
type: u8
-
name: flags
type: u16
byte-order: big-endian
-
name: pad
type: pad
-
name: opts
type: nest
nested-attributes: lwtunnel-ip-opts
-
name: seg6-iptunnel
name-prefix: seg6-iptunnel-
header: linux/seg6_iptunnel.h
attributes:
-
name: srh
type: binary
-
name: src
type: binary
display-hint: ipv6
-
name: table
type: u32
-
name: lwt-bpf
name-prefix: lwt-bpf-
header: linux/lwtunnel.h
attributes:
-
name: in
type: nest
nested-attributes: lwt-bpf-prog
-
name: out
type: nest
nested-attributes: lwt-bpf-prog
-
name: xmit
type: nest
nested-attributes: lwt-bpf-prog
-
name: xmit-headroom
type: u32
-
name: seg6-local
name-prefix: seg6-local-
header: linux/seg6_local.h
attributes:
-
name: action
type: u32
enum: seg6-local-actions
-
name: srh
type: binary
-
name: table
type: u32
-
name: nh4
type: u32
byte-order: big-endian
display-hint: ipv4
-
name: nh6
type: binary
display-hint: ipv6
-
name: iif
type: u32
-
name: oif
type: u32
-
name: bpf
type: nest
nested-attributes: seg6-local-bpf
-
name: vrftable
type: u32
-
name: counters
type: nest
nested-attributes: seg6-local-cnt
-
name: flavors
type: nest
nested-attributes: seg6-local-flv
-
name: rpl-iptunnel
name-prefix: rpl-iptunnel-
header: linux/rpl_iptunnel.h
attributes:
-
name: srh
type: binary
-
name: ioam6-iptunnel
name-prefix: ioam6-iptunnel-
header: linux/ioam6_iptunnel.h
attributes:
-
name: mode
type: u8
-
name: dst
type: binary
display-hint: ipv6
-
name: trace
type: binary
-
name: freq-k
type: u32
-
name: freq-n
type: u32
-
name: src
type: binary
display-hint: ipv6
-
name: lwt-xfrm
name-prefix: lwt-xfrm-
header: linux/lwtunnel.h
attributes:
-
name: if-id
type: u32
-
name: link
type: u32
-
name: lwtunnel-ip-opts
name-prefix: lwtunnel-ip-opts-
attributes:
-
name: geneve
type: binary
-
name: vxlan
type: nest
nested-attributes: lwtunnel-ip-opt-vxlan
-
name: erspan
type: nest
nested-attributes: lwtunnel-ip-opt-erspan
-
name: lwtunnel-ip-opt-vxlan
name-prefix: lwtunnel-ip-opt-vxlan-
attributes:
-
name: gbp
type: u32
-
name: lwtunnel-ip-opt-erspan
name-prefix: lwtunnel-ip-opt-erspan-
attributes:
-
name: ver
type: u8
-
name: index
type: u32
byte-order: big-endian
-
name: dir
type: u8
-
name: hwid
type: u8
-
name: lwt-bpf-prog
name-prefix: lwt-bpf-prog-
attributes:
-
name: fd
type: u32
-
name: name
type: string
checks:
max-len: 256
-
name: seg6-local-bpf
name-prefix: seg6-local-bpf-
attr-max-name: seg6-local-bpf-prog-max
attributes:
-
name: prog
type: u32
-
name: prog-name
type: string
checks:
max-len: 256
-
name: seg6-local-cnt
name-prefix: seg6-local-cnt-
attributes:
-
name: pad
type: pad
-
name: packets
type: u64
-
name: bytes
type: u64
-
name: errors
type: u64
-
name: seg6-local-flv
name-prefix: seg6-local-flv-
attributes:
-
name: operation
type: u32
enum: seg6-local-flv-ops
enum-as-flags: true
-
name: lcblock-bits
type: u8
-
name: lcnode-fn-bits
type: u8
-
name: res-group-attrs
name-prefix: nha-res-group-
attributes:
-
name: pad
type: pad
value: 0
-
name: buckets
type: u16
-
name: idle-timer
type: u32
-
name: unbalanced-timer
type: u32
-
name: unbalanced-time
type: u64
-
name: res-bucket-attrs
name-prefix: nha-res-bucket-
attributes:
-
name: pad
type: pad
value: 0
-
name: index
type: u16
-
name: idle-time
type: u64
-
name: nh-id
type: u32
-
name: group-stats-attrs
name-prefix: nha-group-stats-
attributes:
-
name: entry
type: nest
nested-attributes: group-stats-entry-attrs
multi-attr: true
-
name: group-stats-entry-attrs
name-prefix: nha-group-stats-entry-
attributes:
-
name: id
type: u32
-
name: packets
type: uint
-
name: packets-hw
type: uint
operations:
enum-model: directional
fixed-header: nhmsg
name-prefix: rtm-
list:
-
name: newnexthop
doc: Add new nexthop entry
attribute-set: nexthop-attrs
do:
request:
value: 104
attributes:
- id
- group
- group-type
- blackhole
- oif
- gateway
- encap-type
- encap
- fdb
- res-group
- hw-stats-enable
- dst-port
-
name: delnexthop
doc: Delete nexthop with given id.
attribute-set: nexthop-attrs
do:
request:
value: 105
attributes:
- id
-
name: getnexthop
doc: Get or dump nexthop entries
attribute-set: nexthop-attrs
do:
request:
value: 106
attributes:
- id
- op-flags
reply:
value: 104
attributes: &nexthop-all-attrs
- id
- group
- group-type
- blackhole
- oif
- gateway
- encap-type
- encap
- fdb
- res-group
- op-flags
- group-stats
- hw-stats-enable
- hw-stats-used
- dst-port
dump:
request:
value: 106
attributes:
- oif
- groups
- master
- fdb
- op-flags
reply:
value: 104
attributes: *nexthop-all-attrs
-
name: newnexthop-ntf
doc: Notification about a created nexthop.
value: 104
notify: getnexthop
-
name: delnexthop-ntf
doc: Notification about a deleted nexthop.
value: 105
notify: getnexthop
-
name: getnexthopbucket
doc: Get or dump nexthop buckets
attribute-set: nexthop-attrs
do:
request:
value: 118
attributes: &nexthop-bucket-all-attrs
- id
- res-bucket
reply:
value: 116
attributes: *nexthop-bucket-all-attrs
dump:
request:
value: 118
attributes:
- id
- oif
- master
- res-bucket
reply:
value: 116
attributes: *nexthop-bucket-all-attrs
-
name: newnexthopbucket-ntf
doc: Notification about a created nexthop bucket.
value: 116
notify: getnexthopbucket
mcast-groups:
list:
-
name: rtnlgrp-nexthop
value: 32