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
7enum 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
24enum 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
39enum 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
54enum {
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
64enum {
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
74enum {
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
82enum {
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
93enum {
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
102enum {
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
115enum {
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

source code of linux/include/uapi/linux/lwtunnel.h