xref: /aosp_15_r20/external/kernel-headers/original/uapi/linux/lwtunnel.h (revision f80ad8b4341604f5951dab671d41019a6d7087ce)
1*f80ad8b4SAndroid Build Coastguard Worker /* SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note */
2*f80ad8b4SAndroid Build Coastguard Worker #ifndef _UAPI_LWTUNNEL_H_
3*f80ad8b4SAndroid Build Coastguard Worker #define _UAPI_LWTUNNEL_H_
4*f80ad8b4SAndroid Build Coastguard Worker 
5*f80ad8b4SAndroid Build Coastguard Worker #include <linux/types.h>
6*f80ad8b4SAndroid Build Coastguard Worker 
7*f80ad8b4SAndroid Build Coastguard Worker enum lwtunnel_encap_types {
8*f80ad8b4SAndroid Build Coastguard Worker 	LWTUNNEL_ENCAP_NONE,
9*f80ad8b4SAndroid Build Coastguard Worker 	LWTUNNEL_ENCAP_MPLS,
10*f80ad8b4SAndroid Build Coastguard Worker 	LWTUNNEL_ENCAP_IP,
11*f80ad8b4SAndroid Build Coastguard Worker 	LWTUNNEL_ENCAP_ILA,
12*f80ad8b4SAndroid Build Coastguard Worker 	LWTUNNEL_ENCAP_IP6,
13*f80ad8b4SAndroid Build Coastguard Worker 	LWTUNNEL_ENCAP_SEG6,
14*f80ad8b4SAndroid Build Coastguard Worker 	LWTUNNEL_ENCAP_BPF,
15*f80ad8b4SAndroid Build Coastguard Worker 	LWTUNNEL_ENCAP_SEG6_LOCAL,
16*f80ad8b4SAndroid Build Coastguard Worker 	LWTUNNEL_ENCAP_RPL,
17*f80ad8b4SAndroid Build Coastguard Worker 	LWTUNNEL_ENCAP_IOAM6,
18*f80ad8b4SAndroid Build Coastguard Worker 	LWTUNNEL_ENCAP_XFRM,
19*f80ad8b4SAndroid Build Coastguard Worker 	__LWTUNNEL_ENCAP_MAX,
20*f80ad8b4SAndroid Build Coastguard Worker };
21*f80ad8b4SAndroid Build Coastguard Worker 
22*f80ad8b4SAndroid Build Coastguard Worker #define LWTUNNEL_ENCAP_MAX (__LWTUNNEL_ENCAP_MAX - 1)
23*f80ad8b4SAndroid Build Coastguard Worker 
24*f80ad8b4SAndroid Build Coastguard Worker enum lwtunnel_ip_t {
25*f80ad8b4SAndroid Build Coastguard Worker 	LWTUNNEL_IP_UNSPEC,
26*f80ad8b4SAndroid Build Coastguard Worker 	LWTUNNEL_IP_ID,
27*f80ad8b4SAndroid Build Coastguard Worker 	LWTUNNEL_IP_DST,
28*f80ad8b4SAndroid Build Coastguard Worker 	LWTUNNEL_IP_SRC,
29*f80ad8b4SAndroid Build Coastguard Worker 	LWTUNNEL_IP_TTL,
30*f80ad8b4SAndroid Build Coastguard Worker 	LWTUNNEL_IP_TOS,
31*f80ad8b4SAndroid Build Coastguard Worker 	LWTUNNEL_IP_FLAGS,
32*f80ad8b4SAndroid Build Coastguard Worker 	LWTUNNEL_IP_PAD,
33*f80ad8b4SAndroid Build Coastguard Worker 	LWTUNNEL_IP_OPTS,
34*f80ad8b4SAndroid Build Coastguard Worker 	__LWTUNNEL_IP_MAX,
35*f80ad8b4SAndroid Build Coastguard Worker };
36*f80ad8b4SAndroid Build Coastguard Worker 
37*f80ad8b4SAndroid Build Coastguard Worker #define LWTUNNEL_IP_MAX (__LWTUNNEL_IP_MAX - 1)
38*f80ad8b4SAndroid Build Coastguard Worker 
39*f80ad8b4SAndroid Build Coastguard Worker enum lwtunnel_ip6_t {
40*f80ad8b4SAndroid Build Coastguard Worker 	LWTUNNEL_IP6_UNSPEC,
41*f80ad8b4SAndroid Build Coastguard Worker 	LWTUNNEL_IP6_ID,
42*f80ad8b4SAndroid Build Coastguard Worker 	LWTUNNEL_IP6_DST,
43*f80ad8b4SAndroid Build Coastguard Worker 	LWTUNNEL_IP6_SRC,
44*f80ad8b4SAndroid Build Coastguard Worker 	LWTUNNEL_IP6_HOPLIMIT,
45*f80ad8b4SAndroid Build Coastguard Worker 	LWTUNNEL_IP6_TC,
46*f80ad8b4SAndroid Build Coastguard Worker 	LWTUNNEL_IP6_FLAGS,
47*f80ad8b4SAndroid Build Coastguard Worker 	LWTUNNEL_IP6_PAD,
48*f80ad8b4SAndroid Build Coastguard Worker 	LWTUNNEL_IP6_OPTS,
49*f80ad8b4SAndroid Build Coastguard Worker 	__LWTUNNEL_IP6_MAX,
50*f80ad8b4SAndroid Build Coastguard Worker };
51*f80ad8b4SAndroid Build Coastguard Worker 
52*f80ad8b4SAndroid Build Coastguard Worker #define LWTUNNEL_IP6_MAX (__LWTUNNEL_IP6_MAX - 1)
53*f80ad8b4SAndroid Build Coastguard Worker 
54*f80ad8b4SAndroid Build Coastguard Worker enum {
55*f80ad8b4SAndroid Build Coastguard Worker 	LWTUNNEL_IP_OPTS_UNSPEC,
56*f80ad8b4SAndroid Build Coastguard Worker 	LWTUNNEL_IP_OPTS_GENEVE,
57*f80ad8b4SAndroid Build Coastguard Worker 	LWTUNNEL_IP_OPTS_VXLAN,
58*f80ad8b4SAndroid Build Coastguard Worker 	LWTUNNEL_IP_OPTS_ERSPAN,
59*f80ad8b4SAndroid Build Coastguard Worker 	__LWTUNNEL_IP_OPTS_MAX,
60*f80ad8b4SAndroid Build Coastguard Worker };
61*f80ad8b4SAndroid Build Coastguard Worker 
62*f80ad8b4SAndroid Build Coastguard Worker #define LWTUNNEL_IP_OPTS_MAX (__LWTUNNEL_IP_OPTS_MAX - 1)
63*f80ad8b4SAndroid Build Coastguard Worker 
64*f80ad8b4SAndroid Build Coastguard Worker enum {
65*f80ad8b4SAndroid Build Coastguard Worker 	LWTUNNEL_IP_OPT_GENEVE_UNSPEC,
66*f80ad8b4SAndroid Build Coastguard Worker 	LWTUNNEL_IP_OPT_GENEVE_CLASS,
67*f80ad8b4SAndroid Build Coastguard Worker 	LWTUNNEL_IP_OPT_GENEVE_TYPE,
68*f80ad8b4SAndroid Build Coastguard Worker 	LWTUNNEL_IP_OPT_GENEVE_DATA,
69*f80ad8b4SAndroid Build Coastguard Worker 	__LWTUNNEL_IP_OPT_GENEVE_MAX,
70*f80ad8b4SAndroid Build Coastguard Worker };
71*f80ad8b4SAndroid Build Coastguard Worker 
72*f80ad8b4SAndroid Build Coastguard Worker #define LWTUNNEL_IP_OPT_GENEVE_MAX (__LWTUNNEL_IP_OPT_GENEVE_MAX - 1)
73*f80ad8b4SAndroid Build Coastguard Worker 
74*f80ad8b4SAndroid Build Coastguard Worker enum {
75*f80ad8b4SAndroid Build Coastguard Worker 	LWTUNNEL_IP_OPT_VXLAN_UNSPEC,
76*f80ad8b4SAndroid Build Coastguard Worker 	LWTUNNEL_IP_OPT_VXLAN_GBP,
77*f80ad8b4SAndroid Build Coastguard Worker 	__LWTUNNEL_IP_OPT_VXLAN_MAX,
78*f80ad8b4SAndroid Build Coastguard Worker };
79*f80ad8b4SAndroid Build Coastguard Worker 
80*f80ad8b4SAndroid Build Coastguard Worker #define LWTUNNEL_IP_OPT_VXLAN_MAX (__LWTUNNEL_IP_OPT_VXLAN_MAX - 1)
81*f80ad8b4SAndroid Build Coastguard Worker 
82*f80ad8b4SAndroid Build Coastguard Worker enum {
83*f80ad8b4SAndroid Build Coastguard Worker 	LWTUNNEL_IP_OPT_ERSPAN_UNSPEC,
84*f80ad8b4SAndroid Build Coastguard Worker 	LWTUNNEL_IP_OPT_ERSPAN_VER,
85*f80ad8b4SAndroid Build Coastguard Worker 	LWTUNNEL_IP_OPT_ERSPAN_INDEX,
86*f80ad8b4SAndroid Build Coastguard Worker 	LWTUNNEL_IP_OPT_ERSPAN_DIR,
87*f80ad8b4SAndroid Build Coastguard Worker 	LWTUNNEL_IP_OPT_ERSPAN_HWID,
88*f80ad8b4SAndroid Build Coastguard Worker 	__LWTUNNEL_IP_OPT_ERSPAN_MAX,
89*f80ad8b4SAndroid Build Coastguard Worker };
90*f80ad8b4SAndroid Build Coastguard Worker 
91*f80ad8b4SAndroid Build Coastguard Worker #define LWTUNNEL_IP_OPT_ERSPAN_MAX (__LWTUNNEL_IP_OPT_ERSPAN_MAX - 1)
92*f80ad8b4SAndroid Build Coastguard Worker 
93*f80ad8b4SAndroid Build Coastguard Worker enum {
94*f80ad8b4SAndroid Build Coastguard Worker 	LWT_BPF_PROG_UNSPEC,
95*f80ad8b4SAndroid Build Coastguard Worker 	LWT_BPF_PROG_FD,
96*f80ad8b4SAndroid Build Coastguard Worker 	LWT_BPF_PROG_NAME,
97*f80ad8b4SAndroid Build Coastguard Worker 	__LWT_BPF_PROG_MAX,
98*f80ad8b4SAndroid Build Coastguard Worker };
99*f80ad8b4SAndroid Build Coastguard Worker 
100*f80ad8b4SAndroid Build Coastguard Worker #define LWT_BPF_PROG_MAX (__LWT_BPF_PROG_MAX - 1)
101*f80ad8b4SAndroid Build Coastguard Worker 
102*f80ad8b4SAndroid Build Coastguard Worker enum {
103*f80ad8b4SAndroid Build Coastguard Worker 	LWT_BPF_UNSPEC,
104*f80ad8b4SAndroid Build Coastguard Worker 	LWT_BPF_IN,
105*f80ad8b4SAndroid Build Coastguard Worker 	LWT_BPF_OUT,
106*f80ad8b4SAndroid Build Coastguard Worker 	LWT_BPF_XMIT,
107*f80ad8b4SAndroid Build Coastguard Worker 	LWT_BPF_XMIT_HEADROOM,
108*f80ad8b4SAndroid Build Coastguard Worker 	__LWT_BPF_MAX,
109*f80ad8b4SAndroid Build Coastguard Worker };
110*f80ad8b4SAndroid Build Coastguard Worker 
111*f80ad8b4SAndroid Build Coastguard Worker #define LWT_BPF_MAX (__LWT_BPF_MAX - 1)
112*f80ad8b4SAndroid Build Coastguard Worker 
113*f80ad8b4SAndroid Build Coastguard Worker #define LWT_BPF_MAX_HEADROOM 256
114*f80ad8b4SAndroid Build Coastguard Worker 
115*f80ad8b4SAndroid Build Coastguard Worker enum {
116*f80ad8b4SAndroid Build Coastguard Worker 	LWT_XFRM_UNSPEC,
117*f80ad8b4SAndroid Build Coastguard Worker 	LWT_XFRM_IF_ID,
118*f80ad8b4SAndroid Build Coastguard Worker 	LWT_XFRM_LINK,
119*f80ad8b4SAndroid Build Coastguard Worker 	__LWT_XFRM_MAX,
120*f80ad8b4SAndroid Build Coastguard Worker };
121*f80ad8b4SAndroid Build Coastguard Worker 
122*f80ad8b4SAndroid Build Coastguard Worker #define LWT_XFRM_MAX (__LWT_XFRM_MAX - 1)
123*f80ad8b4SAndroid Build Coastguard Worker 
124*f80ad8b4SAndroid Build Coastguard Worker #endif /* _UAPI_LWTUNNEL_H_ */
125