Linux 6.7-rc7
[linux-modified.git] / include / uapi / linux / lwtunnel.h
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_ */