1 /* SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note */
2 #ifndef _UAPI_LWTUNNEL_H_
3 #define _UAPI_LWTUNNEL_H_
4 
5 #include <linux/types.h>
6 
7 enum lwtunnel_encap_types {
8 	LWTUNNEL_ENCAP_NONE,
9 	LWTUNNEL_ENCAP_MPLS,
10 	LWTUNNEL_ENCAP_IP,
11 	LWTUNNEL_ENCAP_ILA,
12 	LWTUNNEL_ENCAP_IP6,
13 	LWTUNNEL_ENCAP_SEG6,
14 	LWTUNNEL_ENCAP_BPF,
15 	LWTUNNEL_ENCAP_SEG6_LOCAL,
16 	__LWTUNNEL_ENCAP_MAX,
17 };
18 
19 #define LWTUNNEL_ENCAP_MAX (__LWTUNNEL_ENCAP_MAX - 1)
20 
21 enum lwtunnel_ip_t {
22 	LWTUNNEL_IP_UNSPEC,
23 	LWTUNNEL_IP_ID,
24 	LWTUNNEL_IP_DST,
25 	LWTUNNEL_IP_SRC,
26 	LWTUNNEL_IP_TTL,
27 	LWTUNNEL_IP_TOS,
28 	LWTUNNEL_IP_FLAGS,
29 	LWTUNNEL_IP_PAD,
30 	__LWTUNNEL_IP_MAX,
31 };
32 
33 #define LWTUNNEL_IP_MAX (__LWTUNNEL_IP_MAX - 1)
34 
35 enum lwtunnel_ip6_t {
36 	LWTUNNEL_IP6_UNSPEC,
37 	LWTUNNEL_IP6_ID,
38 	LWTUNNEL_IP6_DST,
39 	LWTUNNEL_IP6_SRC,
40 	LWTUNNEL_IP6_HOPLIMIT,
41 	LWTUNNEL_IP6_TC,
42 	LWTUNNEL_IP6_FLAGS,
43 	LWTUNNEL_IP6_PAD,
44 	__LWTUNNEL_IP6_MAX,
45 };
46 
47 #define LWTUNNEL_IP6_MAX (__LWTUNNEL_IP6_MAX - 1)
48 
49 enum {
50 	LWT_BPF_PROG_UNSPEC,
51 	LWT_BPF_PROG_FD,
52 	LWT_BPF_PROG_NAME,
53 	__LWT_BPF_PROG_MAX,
54 };
55 
56 #define LWT_BPF_PROG_MAX (__LWT_BPF_PROG_MAX - 1)
57 
58 enum {
59 	LWT_BPF_UNSPEC,
60 	LWT_BPF_IN,
61 	LWT_BPF_OUT,
62 	LWT_BPF_XMIT,
63 	LWT_BPF_XMIT_HEADROOM,
64 	__LWT_BPF_MAX,
65 };
66 
67 #define LWT_BPF_MAX (__LWT_BPF_MAX - 1)
68 
69 #define LWT_BPF_MAX_HEADROOM 256
70 
71 #endif /* _UAPI_LWTUNNEL_H_ */
72