blob: 568a4303ccce3d82bc88cfd8e7bf30eaface14cf [file] [log] [blame]
Andrew Scullb4b6d4a2019-01-02 15:54:55 +00001/* 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,
Olivier Deprez157378f2022-04-04 15:47:50 +020016 LWTUNNEL_ENCAP_RPL,
Andrew Scullb4b6d4a2019-01-02 15:54:55 +000017 __LWTUNNEL_ENCAP_MAX,
18};
19
20#define LWTUNNEL_ENCAP_MAX (__LWTUNNEL_ENCAP_MAX - 1)
21
22enum 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,
Olivier Deprez157378f2022-04-04 15:47:50 +020031 LWTUNNEL_IP_OPTS,
Andrew Scullb4b6d4a2019-01-02 15:54:55 +000032 __LWTUNNEL_IP_MAX,
33};
34
35#define LWTUNNEL_IP_MAX (__LWTUNNEL_IP_MAX - 1)
36
37enum 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,
Olivier Deprez157378f2022-04-04 15:47:50 +020046 LWTUNNEL_IP6_OPTS,
Andrew Scullb4b6d4a2019-01-02 15:54:55 +000047 __LWTUNNEL_IP6_MAX,
48};
49
50#define LWTUNNEL_IP6_MAX (__LWTUNNEL_IP6_MAX - 1)
51
52enum {
Olivier Deprez157378f2022-04-04 15:47:50 +020053 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
62enum {
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
72enum {
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
80enum {
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
91enum {
Andrew Scullb4b6d4a2019-01-02 15:54:55 +000092 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
100enum {
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_ */