mirror of
https://github.com/torvalds/linux.git
synced 2026-11-07 06:17:02 +01:00
netlink: specs: rt-route: add lwtunnel encap sub-message support
Define encap-type enum (LWTUNNEL_ENCAP_*) and add encap-data sub-message keyed by encap-type. Add tunnel attribute sets (mpls, ip, ila, ip6, seg6, bpf, seg6-local, rpl, ioam6, xfrm). This spec update depends on the kernel side encap-type/data reorder patch. Keep some nested option attributes as binary in this patch to simplify review; they will be converted in follow-up patches. Also add the Makefile to include uapi headers. Note the lwtunnel.h is guarded by _UAPI_LWTUNNEL_H_. Signed-off-by: Hangbin Liu <liuhangbin@kylinos.cn> Link: https://patch.msgid.link/20261008-ynl_rt_encap-v4-3-4ed2ccf7f949@kylinos.cn Signed-off-by: Jakub Kicinski <kuba@kernel.org>
This commit is contained in:
parent
05d3030eff
commit
24d11a5586
|
|
@ -99,6 +99,58 @@ definitions:
|
|||
name: ra-withdrawn
|
||||
doc: A Router Advertisement withdrew the route with a zero
|
||||
lifetime.
|
||||
-
|
||||
name: encap-type
|
||||
type: enum
|
||||
name-prefix: lwtunnel-encap-
|
||||
enum-name:
|
||||
entries:
|
||||
- none
|
||||
- mpls
|
||||
- ip
|
||||
- ila
|
||||
- ip6
|
||||
- seg6
|
||||
- bpf
|
||||
- seg6-local
|
||||
- rpl
|
||||
- ioam6
|
||||
- xfrm
|
||||
|
||||
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:
|
||||
-
|
||||
|
|
@ -174,9 +226,12 @@ attribute-sets:
|
|||
-
|
||||
name: encap-type
|
||||
type: u16
|
||||
enum: encap-type
|
||||
-
|
||||
name: encap
|
||||
type: binary # tunnel specific nest
|
||||
type: sub-message
|
||||
sub-message: encap-data
|
||||
selector: encap-type
|
||||
-
|
||||
name: expires
|
||||
type: u32
|
||||
|
|
@ -277,6 +332,236 @@ attribute-sets:
|
|||
-
|
||||
name: fastopen-no-cookie
|
||||
type: u32
|
||||
-
|
||||
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: binary # lwtunnel ip nest options
|
||||
-
|
||||
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: binary # lwtunnel ip nest options
|
||||
-
|
||||
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: binary # bpf prog
|
||||
-
|
||||
name: out
|
||||
type: binary
|
||||
-
|
||||
name: xmit
|
||||
type: binary
|
||||
-
|
||||
name: xmit-headroom
|
||||
type: u32
|
||||
-
|
||||
name: seg6-local
|
||||
name-prefix: seg6-local-
|
||||
header: linux/seg6_local.h
|
||||
attributes:
|
||||
-
|
||||
name: action
|
||||
type: u32
|
||||
-
|
||||
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: binary
|
||||
-
|
||||
name: vrftable
|
||||
type: u32
|
||||
-
|
||||
name: counters
|
||||
type: binary
|
||||
-
|
||||
name: flavors
|
||||
type: binary
|
||||
-
|
||||
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
|
||||
|
||||
operations:
|
||||
enum-model: directional
|
||||
|
|
|
|||
|
|
@ -45,7 +45,14 @@ CFLAGS_rt-link:=$(call get_hdr_inc,__LINUX_RTNETLINK_H,rtnetlink.h) \
|
|||
$(call get_hdr_inc,_LINUX_IF_LINK_H,if_link.h)
|
||||
CFLAGS_rt-neigh:=$(call get_hdr_inc,__LINUX_RTNETLINK_H,rtnetlink.h) \
|
||||
$(call get_hdr_inc,__LINUX_NEIGHBOUR_H,neighbour.h)
|
||||
CFLAGS_rt-route:=$(call get_hdr_inc,__LINUX_RTNETLINK_H,rtnetlink.h)
|
||||
CFLAGS_rt-route:=$(call get_hdr_inc,_LINUX_ILA_H,ila.h) \
|
||||
$(call get_hdr_inc,_LINUX_IOAM6_IPTUNNEL_H,ioam6_iptunnel.h) \
|
||||
$(call get_hdr_inc,_LINUX_MPLS_IPTUNNEL_H,mpls_iptunnel.h) \
|
||||
$(call get_hdr_inc,_LINUX_RPL_IPTUNNEL_H,rpl_iptunnel.h) \
|
||||
$(call get_hdr_inc,__LINUX_RTNETLINK_H,rtnetlink.h) \
|
||||
$(call get_hdr_inc,_LINUX_SEG6_IPTUNNEL_H,seg6_iptunnel.h) \
|
||||
$(call get_hdr_inc,_LINUX_SEG6_LOCAL_H,seg6_local.h) \
|
||||
$(call get_hdr_inc,_LWTUNNEL_H_,lwtunnel.h)
|
||||
CFLAGS_rt-rule:=$(call get_hdr_inc,__LINUX_FIB_RULES_H,fib_rules.h)
|
||||
CFLAGS_tc:= $(call get_hdr_inc,__LINUX_RTNETLINK_H,rtnetlink.h) \
|
||||
$(call get_hdr_inc,__LINUX_PKT_SCHED_H,pkt_sched.h) \
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user