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