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