|  | /* SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note */ | 
|  | #ifndef _UAPI_LWTUNNEL_H_ | 
|  | #define _UAPI_LWTUNNEL_H_ | 
|  |  | 
|  | #include <linux/types.h> | 
|  |  | 
|  | enum lwtunnel_encap_types { | 
|  | LWTUNNEL_ENCAP_NONE, | 
|  | LWTUNNEL_ENCAP_MPLS, | 
|  | LWTUNNEL_ENCAP_IP, | 
|  | LWTUNNEL_ENCAP_ILA, | 
|  | LWTUNNEL_ENCAP_IP6, | 
|  | LWTUNNEL_ENCAP_SEG6, | 
|  | LWTUNNEL_ENCAP_BPF, | 
|  | LWTUNNEL_ENCAP_SEG6_LOCAL, | 
|  | LWTUNNEL_ENCAP_RPL, | 
|  | LWTUNNEL_ENCAP_IOAM6, | 
|  | __LWTUNNEL_ENCAP_MAX, | 
|  | }; | 
|  |  | 
|  | #define LWTUNNEL_ENCAP_MAX (__LWTUNNEL_ENCAP_MAX - 1) | 
|  |  | 
|  | enum lwtunnel_ip_t { | 
|  | LWTUNNEL_IP_UNSPEC, | 
|  | LWTUNNEL_IP_ID, | 
|  | LWTUNNEL_IP_DST, | 
|  | LWTUNNEL_IP_SRC, | 
|  | LWTUNNEL_IP_TTL, | 
|  | LWTUNNEL_IP_TOS, | 
|  | LWTUNNEL_IP_FLAGS, | 
|  | LWTUNNEL_IP_PAD, | 
|  | LWTUNNEL_IP_OPTS, | 
|  | __LWTUNNEL_IP_MAX, | 
|  | }; | 
|  |  | 
|  | #define LWTUNNEL_IP_MAX (__LWTUNNEL_IP_MAX - 1) | 
|  |  | 
|  | enum lwtunnel_ip6_t { | 
|  | LWTUNNEL_IP6_UNSPEC, | 
|  | LWTUNNEL_IP6_ID, | 
|  | LWTUNNEL_IP6_DST, | 
|  | LWTUNNEL_IP6_SRC, | 
|  | LWTUNNEL_IP6_HOPLIMIT, | 
|  | LWTUNNEL_IP6_TC, | 
|  | LWTUNNEL_IP6_FLAGS, | 
|  | LWTUNNEL_IP6_PAD, | 
|  | LWTUNNEL_IP6_OPTS, | 
|  | __LWTUNNEL_IP6_MAX, | 
|  | }; | 
|  |  | 
|  | #define LWTUNNEL_IP6_MAX (__LWTUNNEL_IP6_MAX - 1) | 
|  |  | 
|  | enum { | 
|  | LWTUNNEL_IP_OPTS_UNSPEC, | 
|  | LWTUNNEL_IP_OPTS_GENEVE, | 
|  | LWTUNNEL_IP_OPTS_VXLAN, | 
|  | LWTUNNEL_IP_OPTS_ERSPAN, | 
|  | __LWTUNNEL_IP_OPTS_MAX, | 
|  | }; | 
|  |  | 
|  | #define LWTUNNEL_IP_OPTS_MAX (__LWTUNNEL_IP_OPTS_MAX - 1) | 
|  |  | 
|  | enum { | 
|  | LWTUNNEL_IP_OPT_GENEVE_UNSPEC, | 
|  | LWTUNNEL_IP_OPT_GENEVE_CLASS, | 
|  | LWTUNNEL_IP_OPT_GENEVE_TYPE, | 
|  | LWTUNNEL_IP_OPT_GENEVE_DATA, | 
|  | __LWTUNNEL_IP_OPT_GENEVE_MAX, | 
|  | }; | 
|  |  | 
|  | #define LWTUNNEL_IP_OPT_GENEVE_MAX (__LWTUNNEL_IP_OPT_GENEVE_MAX - 1) | 
|  |  | 
|  | enum { | 
|  | LWTUNNEL_IP_OPT_VXLAN_UNSPEC, | 
|  | LWTUNNEL_IP_OPT_VXLAN_GBP, | 
|  | __LWTUNNEL_IP_OPT_VXLAN_MAX, | 
|  | }; | 
|  |  | 
|  | #define LWTUNNEL_IP_OPT_VXLAN_MAX (__LWTUNNEL_IP_OPT_VXLAN_MAX - 1) | 
|  |  | 
|  | enum { | 
|  | LWTUNNEL_IP_OPT_ERSPAN_UNSPEC, | 
|  | LWTUNNEL_IP_OPT_ERSPAN_VER, | 
|  | LWTUNNEL_IP_OPT_ERSPAN_INDEX, | 
|  | LWTUNNEL_IP_OPT_ERSPAN_DIR, | 
|  | LWTUNNEL_IP_OPT_ERSPAN_HWID, | 
|  | __LWTUNNEL_IP_OPT_ERSPAN_MAX, | 
|  | }; | 
|  |  | 
|  | #define LWTUNNEL_IP_OPT_ERSPAN_MAX (__LWTUNNEL_IP_OPT_ERSPAN_MAX - 1) | 
|  |  | 
|  | enum { | 
|  | LWT_BPF_PROG_UNSPEC, | 
|  | LWT_BPF_PROG_FD, | 
|  | LWT_BPF_PROG_NAME, | 
|  | __LWT_BPF_PROG_MAX, | 
|  | }; | 
|  |  | 
|  | #define LWT_BPF_PROG_MAX (__LWT_BPF_PROG_MAX - 1) | 
|  |  | 
|  | enum { | 
|  | LWT_BPF_UNSPEC, | 
|  | LWT_BPF_IN, | 
|  | LWT_BPF_OUT, | 
|  | LWT_BPF_XMIT, | 
|  | LWT_BPF_XMIT_HEADROOM, | 
|  | __LWT_BPF_MAX, | 
|  | }; | 
|  |  | 
|  | #define LWT_BPF_MAX (__LWT_BPF_MAX - 1) | 
|  |  | 
|  | #define LWT_BPF_MAX_HEADROOM 256 | 
|  |  | 
|  | #endif /* _UAPI_LWTUNNEL_H_ */ |