0001
0002 #ifndef _UAPI_LWTUNNEL_H_
0003 #define _UAPI_LWTUNNEL_H_
0004
0005 #include <linux/types.h>
0006
0007 enum lwtunnel_encap_types {
0008 LWTUNNEL_ENCAP_NONE,
0009 LWTUNNEL_ENCAP_MPLS,
0010 LWTUNNEL_ENCAP_IP,
0011 LWTUNNEL_ENCAP_ILA,
0012 LWTUNNEL_ENCAP_IP6,
0013 LWTUNNEL_ENCAP_SEG6,
0014 LWTUNNEL_ENCAP_BPF,
0015 LWTUNNEL_ENCAP_SEG6_LOCAL,
0016 LWTUNNEL_ENCAP_RPL,
0017 LWTUNNEL_ENCAP_IOAM6,
0018 __LWTUNNEL_ENCAP_MAX,
0019 };
0020
0021 #define LWTUNNEL_ENCAP_MAX (__LWTUNNEL_ENCAP_MAX - 1)
0022
0023 enum lwtunnel_ip_t {
0024 LWTUNNEL_IP_UNSPEC,
0025 LWTUNNEL_IP_ID,
0026 LWTUNNEL_IP_DST,
0027 LWTUNNEL_IP_SRC,
0028 LWTUNNEL_IP_TTL,
0029 LWTUNNEL_IP_TOS,
0030 LWTUNNEL_IP_FLAGS,
0031 LWTUNNEL_IP_PAD,
0032 LWTUNNEL_IP_OPTS,
0033 __LWTUNNEL_IP_MAX,
0034 };
0035
0036 #define LWTUNNEL_IP_MAX (__LWTUNNEL_IP_MAX - 1)
0037
0038 enum lwtunnel_ip6_t {
0039 LWTUNNEL_IP6_UNSPEC,
0040 LWTUNNEL_IP6_ID,
0041 LWTUNNEL_IP6_DST,
0042 LWTUNNEL_IP6_SRC,
0043 LWTUNNEL_IP6_HOPLIMIT,
0044 LWTUNNEL_IP6_TC,
0045 LWTUNNEL_IP6_FLAGS,
0046 LWTUNNEL_IP6_PAD,
0047 LWTUNNEL_IP6_OPTS,
0048 __LWTUNNEL_IP6_MAX,
0049 };
0050
0051 #define LWTUNNEL_IP6_MAX (__LWTUNNEL_IP6_MAX - 1)
0052
0053 enum {
0054 LWTUNNEL_IP_OPTS_UNSPEC,
0055 LWTUNNEL_IP_OPTS_GENEVE,
0056 LWTUNNEL_IP_OPTS_VXLAN,
0057 LWTUNNEL_IP_OPTS_ERSPAN,
0058 __LWTUNNEL_IP_OPTS_MAX,
0059 };
0060
0061 #define LWTUNNEL_IP_OPTS_MAX (__LWTUNNEL_IP_OPTS_MAX - 1)
0062
0063 enum {
0064 LWTUNNEL_IP_OPT_GENEVE_UNSPEC,
0065 LWTUNNEL_IP_OPT_GENEVE_CLASS,
0066 LWTUNNEL_IP_OPT_GENEVE_TYPE,
0067 LWTUNNEL_IP_OPT_GENEVE_DATA,
0068 __LWTUNNEL_IP_OPT_GENEVE_MAX,
0069 };
0070
0071 #define LWTUNNEL_IP_OPT_GENEVE_MAX (__LWTUNNEL_IP_OPT_GENEVE_MAX - 1)
0072
0073 enum {
0074 LWTUNNEL_IP_OPT_VXLAN_UNSPEC,
0075 LWTUNNEL_IP_OPT_VXLAN_GBP,
0076 __LWTUNNEL_IP_OPT_VXLAN_MAX,
0077 };
0078
0079 #define LWTUNNEL_IP_OPT_VXLAN_MAX (__LWTUNNEL_IP_OPT_VXLAN_MAX - 1)
0080
0081 enum {
0082 LWTUNNEL_IP_OPT_ERSPAN_UNSPEC,
0083 LWTUNNEL_IP_OPT_ERSPAN_VER,
0084 LWTUNNEL_IP_OPT_ERSPAN_INDEX,
0085 LWTUNNEL_IP_OPT_ERSPAN_DIR,
0086 LWTUNNEL_IP_OPT_ERSPAN_HWID,
0087 __LWTUNNEL_IP_OPT_ERSPAN_MAX,
0088 };
0089
0090 #define LWTUNNEL_IP_OPT_ERSPAN_MAX (__LWTUNNEL_IP_OPT_ERSPAN_MAX - 1)
0091
0092 enum {
0093 LWT_BPF_PROG_UNSPEC,
0094 LWT_BPF_PROG_FD,
0095 LWT_BPF_PROG_NAME,
0096 __LWT_BPF_PROG_MAX,
0097 };
0098
0099 #define LWT_BPF_PROG_MAX (__LWT_BPF_PROG_MAX - 1)
0100
0101 enum {
0102 LWT_BPF_UNSPEC,
0103 LWT_BPF_IN,
0104 LWT_BPF_OUT,
0105 LWT_BPF_XMIT,
0106 LWT_BPF_XMIT_HEADROOM,
0107 __LWT_BPF_MAX,
0108 };
0109
0110 #define LWT_BPF_MAX (__LWT_BPF_MAX - 1)
0111
0112 #define LWT_BPF_MAX_HEADROOM 256
0113
0114 #endif