master
  1/* SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note */
  2#ifndef _LWTUNNEL_H_
  3#define _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 /* _LWTUNNEL_H_ */