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