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_RPL, |
17 | LWTUNNEL_ENCAP_IOAM6, |
18 | LWTUNNEL_ENCAP_XFRM, |
19 | __LWTUNNEL_ENCAP_MAX, |
20 | }; |
21 | |
22 | #define LWTUNNEL_ENCAP_MAX (__LWTUNNEL_ENCAP_MAX - 1) |
23 | |
24 | enum lwtunnel_ip_t { |
25 | LWTUNNEL_IP_UNSPEC, |
26 | LWTUNNEL_IP_ID, |
27 | LWTUNNEL_IP_DST, |
28 | LWTUNNEL_IP_SRC, |
29 | LWTUNNEL_IP_TTL, |
30 | LWTUNNEL_IP_TOS, |
31 | LWTUNNEL_IP_FLAGS, |
32 | LWTUNNEL_IP_PAD, |
33 | LWTUNNEL_IP_OPTS, |
34 | __LWTUNNEL_IP_MAX, |
35 | }; |
36 | |
37 | #define LWTUNNEL_IP_MAX (__LWTUNNEL_IP_MAX - 1) |
38 | |
39 | enum lwtunnel_ip6_t { |
40 | LWTUNNEL_IP6_UNSPEC, |
41 | LWTUNNEL_IP6_ID, |
42 | LWTUNNEL_IP6_DST, |
43 | LWTUNNEL_IP6_SRC, |
44 | LWTUNNEL_IP6_HOPLIMIT, |
45 | LWTUNNEL_IP6_TC, |
46 | LWTUNNEL_IP6_FLAGS, |
47 | LWTUNNEL_IP6_PAD, |
48 | LWTUNNEL_IP6_OPTS, |
49 | __LWTUNNEL_IP6_MAX, |
50 | }; |
51 | |
52 | #define LWTUNNEL_IP6_MAX (__LWTUNNEL_IP6_MAX - 1) |
53 | |
54 | enum { |
55 | LWTUNNEL_IP_OPTS_UNSPEC, |
56 | LWTUNNEL_IP_OPTS_GENEVE, |
57 | LWTUNNEL_IP_OPTS_VXLAN, |
58 | LWTUNNEL_IP_OPTS_ERSPAN, |
59 | __LWTUNNEL_IP_OPTS_MAX, |
60 | }; |
61 | |
62 | #define LWTUNNEL_IP_OPTS_MAX (__LWTUNNEL_IP_OPTS_MAX - 1) |
63 | |
64 | enum { |
65 | LWTUNNEL_IP_OPT_GENEVE_UNSPEC, |
66 | LWTUNNEL_IP_OPT_GENEVE_CLASS, |
67 | LWTUNNEL_IP_OPT_GENEVE_TYPE, |
68 | LWTUNNEL_IP_OPT_GENEVE_DATA, |
69 | __LWTUNNEL_IP_OPT_GENEVE_MAX, |
70 | }; |
71 | |
72 | #define LWTUNNEL_IP_OPT_GENEVE_MAX (__LWTUNNEL_IP_OPT_GENEVE_MAX - 1) |
73 | |
74 | enum { |
75 | LWTUNNEL_IP_OPT_VXLAN_UNSPEC, |
76 | LWTUNNEL_IP_OPT_VXLAN_GBP, |
77 | __LWTUNNEL_IP_OPT_VXLAN_MAX, |
78 | }; |
79 | |
80 | #define LWTUNNEL_IP_OPT_VXLAN_MAX (__LWTUNNEL_IP_OPT_VXLAN_MAX - 1) |
81 | |
82 | enum { |
83 | LWTUNNEL_IP_OPT_ERSPAN_UNSPEC, |
84 | LWTUNNEL_IP_OPT_ERSPAN_VER, |
85 | LWTUNNEL_IP_OPT_ERSPAN_INDEX, |
86 | LWTUNNEL_IP_OPT_ERSPAN_DIR, |
87 | LWTUNNEL_IP_OPT_ERSPAN_HWID, |
88 | __LWTUNNEL_IP_OPT_ERSPAN_MAX, |
89 | }; |
90 | |
91 | #define LWTUNNEL_IP_OPT_ERSPAN_MAX (__LWTUNNEL_IP_OPT_ERSPAN_MAX - 1) |
92 | |
93 | enum { |
94 | LWT_BPF_PROG_UNSPEC, |
95 | LWT_BPF_PROG_FD, |
96 | LWT_BPF_PROG_NAME, |
97 | __LWT_BPF_PROG_MAX, |
98 | }; |
99 | |
100 | #define LWT_BPF_PROG_MAX (__LWT_BPF_PROG_MAX - 1) |
101 | |
102 | enum { |
103 | LWT_BPF_UNSPEC, |
104 | LWT_BPF_IN, |
105 | LWT_BPF_OUT, |
106 | LWT_BPF_XMIT, |
107 | LWT_BPF_XMIT_HEADROOM, |
108 | __LWT_BPF_MAX, |
109 | }; |
110 | |
111 | #define LWT_BPF_MAX (__LWT_BPF_MAX - 1) |
112 | |
113 | #define LWT_BPF_MAX_HEADROOM 256 |
114 | |
115 | enum { |
116 | LWT_XFRM_UNSPEC, |
117 | LWT_XFRM_IF_ID, |
118 | LWT_XFRM_LINK, |
119 | __LWT_XFRM_MAX, |
120 | }; |
121 | |
122 | #define LWT_XFRM_MAX (__LWT_XFRM_MAX - 1) |
123 | |
124 | #endif /* _UAPI_LWTUNNEL_H_ */ |
125 | |