# 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