1 /* SPDX-License-Identifier: GPL-2.0 WITH Linux 1 /* SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note */ 2 #ifndef _UAPI_LWTUNNEL_H_ 2 #ifndef _UAPI_LWTUNNEL_H_ 3 #define _UAPI_LWTUNNEL_H_ 3 #define _UAPI_LWTUNNEL_H_ 4 4 5 #include <linux/types.h> 5 #include <linux/types.h> 6 6 7 enum lwtunnel_encap_types { 7 enum lwtunnel_encap_types { 8 LWTUNNEL_ENCAP_NONE, 8 LWTUNNEL_ENCAP_NONE, 9 LWTUNNEL_ENCAP_MPLS, 9 LWTUNNEL_ENCAP_MPLS, 10 LWTUNNEL_ENCAP_IP, 10 LWTUNNEL_ENCAP_IP, 11 LWTUNNEL_ENCAP_ILA, 11 LWTUNNEL_ENCAP_ILA, 12 LWTUNNEL_ENCAP_IP6, 12 LWTUNNEL_ENCAP_IP6, 13 LWTUNNEL_ENCAP_SEG6, 13 LWTUNNEL_ENCAP_SEG6, 14 LWTUNNEL_ENCAP_BPF, 14 LWTUNNEL_ENCAP_BPF, 15 LWTUNNEL_ENCAP_SEG6_LOCAL, 15 LWTUNNEL_ENCAP_SEG6_LOCAL, 16 LWTUNNEL_ENCAP_RPL, 16 LWTUNNEL_ENCAP_RPL, 17 LWTUNNEL_ENCAP_IOAM6, 17 LWTUNNEL_ENCAP_IOAM6, 18 LWTUNNEL_ENCAP_XFRM, 18 LWTUNNEL_ENCAP_XFRM, 19 __LWTUNNEL_ENCAP_MAX, 19 __LWTUNNEL_ENCAP_MAX, 20 }; 20 }; 21 21 22 #define LWTUNNEL_ENCAP_MAX (__LWTUNNEL_ENCAP_M 22 #define LWTUNNEL_ENCAP_MAX (__LWTUNNEL_ENCAP_MAX - 1) 23 23 24 enum lwtunnel_ip_t { 24 enum lwtunnel_ip_t { 25 LWTUNNEL_IP_UNSPEC, 25 LWTUNNEL_IP_UNSPEC, 26 LWTUNNEL_IP_ID, 26 LWTUNNEL_IP_ID, 27 LWTUNNEL_IP_DST, 27 LWTUNNEL_IP_DST, 28 LWTUNNEL_IP_SRC, 28 LWTUNNEL_IP_SRC, 29 LWTUNNEL_IP_TTL, 29 LWTUNNEL_IP_TTL, 30 LWTUNNEL_IP_TOS, 30 LWTUNNEL_IP_TOS, 31 LWTUNNEL_IP_FLAGS, 31 LWTUNNEL_IP_FLAGS, 32 LWTUNNEL_IP_PAD, 32 LWTUNNEL_IP_PAD, 33 LWTUNNEL_IP_OPTS, 33 LWTUNNEL_IP_OPTS, 34 __LWTUNNEL_IP_MAX, 34 __LWTUNNEL_IP_MAX, 35 }; 35 }; 36 36 37 #define LWTUNNEL_IP_MAX (__LWTUNNEL_IP_MAX - 1 37 #define LWTUNNEL_IP_MAX (__LWTUNNEL_IP_MAX - 1) 38 38 39 enum lwtunnel_ip6_t { 39 enum lwtunnel_ip6_t { 40 LWTUNNEL_IP6_UNSPEC, 40 LWTUNNEL_IP6_UNSPEC, 41 LWTUNNEL_IP6_ID, 41 LWTUNNEL_IP6_ID, 42 LWTUNNEL_IP6_DST, 42 LWTUNNEL_IP6_DST, 43 LWTUNNEL_IP6_SRC, 43 LWTUNNEL_IP6_SRC, 44 LWTUNNEL_IP6_HOPLIMIT, 44 LWTUNNEL_IP6_HOPLIMIT, 45 LWTUNNEL_IP6_TC, 45 LWTUNNEL_IP6_TC, 46 LWTUNNEL_IP6_FLAGS, 46 LWTUNNEL_IP6_FLAGS, 47 LWTUNNEL_IP6_PAD, 47 LWTUNNEL_IP6_PAD, 48 LWTUNNEL_IP6_OPTS, 48 LWTUNNEL_IP6_OPTS, 49 __LWTUNNEL_IP6_MAX, 49 __LWTUNNEL_IP6_MAX, 50 }; 50 }; 51 51 52 #define LWTUNNEL_IP6_MAX (__LWTUNNEL_IP6_MAX - 52 #define LWTUNNEL_IP6_MAX (__LWTUNNEL_IP6_MAX - 1) 53 53 54 enum { 54 enum { 55 LWTUNNEL_IP_OPTS_UNSPEC, 55 LWTUNNEL_IP_OPTS_UNSPEC, 56 LWTUNNEL_IP_OPTS_GENEVE, 56 LWTUNNEL_IP_OPTS_GENEVE, 57 LWTUNNEL_IP_OPTS_VXLAN, 57 LWTUNNEL_IP_OPTS_VXLAN, 58 LWTUNNEL_IP_OPTS_ERSPAN, 58 LWTUNNEL_IP_OPTS_ERSPAN, 59 __LWTUNNEL_IP_OPTS_MAX, 59 __LWTUNNEL_IP_OPTS_MAX, 60 }; 60 }; 61 61 62 #define LWTUNNEL_IP_OPTS_MAX (__LWTUNNEL_IP_OP 62 #define LWTUNNEL_IP_OPTS_MAX (__LWTUNNEL_IP_OPTS_MAX - 1) 63 63 64 enum { 64 enum { 65 LWTUNNEL_IP_OPT_GENEVE_UNSPEC, 65 LWTUNNEL_IP_OPT_GENEVE_UNSPEC, 66 LWTUNNEL_IP_OPT_GENEVE_CLASS, 66 LWTUNNEL_IP_OPT_GENEVE_CLASS, 67 LWTUNNEL_IP_OPT_GENEVE_TYPE, 67 LWTUNNEL_IP_OPT_GENEVE_TYPE, 68 LWTUNNEL_IP_OPT_GENEVE_DATA, 68 LWTUNNEL_IP_OPT_GENEVE_DATA, 69 __LWTUNNEL_IP_OPT_GENEVE_MAX, 69 __LWTUNNEL_IP_OPT_GENEVE_MAX, 70 }; 70 }; 71 71 72 #define LWTUNNEL_IP_OPT_GENEVE_MAX (__LWTUNNEL 72 #define LWTUNNEL_IP_OPT_GENEVE_MAX (__LWTUNNEL_IP_OPT_GENEVE_MAX - 1) 73 73 74 enum { 74 enum { 75 LWTUNNEL_IP_OPT_VXLAN_UNSPEC, 75 LWTUNNEL_IP_OPT_VXLAN_UNSPEC, 76 LWTUNNEL_IP_OPT_VXLAN_GBP, 76 LWTUNNEL_IP_OPT_VXLAN_GBP, 77 __LWTUNNEL_IP_OPT_VXLAN_MAX, 77 __LWTUNNEL_IP_OPT_VXLAN_MAX, 78 }; 78 }; 79 79 80 #define LWTUNNEL_IP_OPT_VXLAN_MAX (__LWTUNNEL_ 80 #define LWTUNNEL_IP_OPT_VXLAN_MAX (__LWTUNNEL_IP_OPT_VXLAN_MAX - 1) 81 81 82 enum { 82 enum { 83 LWTUNNEL_IP_OPT_ERSPAN_UNSPEC, 83 LWTUNNEL_IP_OPT_ERSPAN_UNSPEC, 84 LWTUNNEL_IP_OPT_ERSPAN_VER, 84 LWTUNNEL_IP_OPT_ERSPAN_VER, 85 LWTUNNEL_IP_OPT_ERSPAN_INDEX, 85 LWTUNNEL_IP_OPT_ERSPAN_INDEX, 86 LWTUNNEL_IP_OPT_ERSPAN_DIR, 86 LWTUNNEL_IP_OPT_ERSPAN_DIR, 87 LWTUNNEL_IP_OPT_ERSPAN_HWID, 87 LWTUNNEL_IP_OPT_ERSPAN_HWID, 88 __LWTUNNEL_IP_OPT_ERSPAN_MAX, 88 __LWTUNNEL_IP_OPT_ERSPAN_MAX, 89 }; 89 }; 90 90 91 #define LWTUNNEL_IP_OPT_ERSPAN_MAX (__LWTUNNEL 91 #define LWTUNNEL_IP_OPT_ERSPAN_MAX (__LWTUNNEL_IP_OPT_ERSPAN_MAX - 1) 92 92 93 enum { 93 enum { 94 LWT_BPF_PROG_UNSPEC, 94 LWT_BPF_PROG_UNSPEC, 95 LWT_BPF_PROG_FD, 95 LWT_BPF_PROG_FD, 96 LWT_BPF_PROG_NAME, 96 LWT_BPF_PROG_NAME, 97 __LWT_BPF_PROG_MAX, 97 __LWT_BPF_PROG_MAX, 98 }; 98 }; 99 99 100 #define LWT_BPF_PROG_MAX (__LWT_BPF_PROG_MAX - 100 #define LWT_BPF_PROG_MAX (__LWT_BPF_PROG_MAX - 1) 101 101 102 enum { 102 enum { 103 LWT_BPF_UNSPEC, 103 LWT_BPF_UNSPEC, 104 LWT_BPF_IN, 104 LWT_BPF_IN, 105 LWT_BPF_OUT, 105 LWT_BPF_OUT, 106 LWT_BPF_XMIT, 106 LWT_BPF_XMIT, 107 LWT_BPF_XMIT_HEADROOM, 107 LWT_BPF_XMIT_HEADROOM, 108 __LWT_BPF_MAX, 108 __LWT_BPF_MAX, 109 }; 109 }; 110 110 111 #define LWT_BPF_MAX (__LWT_BPF_MAX - 1) 111 #define LWT_BPF_MAX (__LWT_BPF_MAX - 1) 112 112 113 #define LWT_BPF_MAX_HEADROOM 256 113 #define LWT_BPF_MAX_HEADROOM 256 114 114 115 enum { 115 enum { 116 LWT_XFRM_UNSPEC, 116 LWT_XFRM_UNSPEC, 117 LWT_XFRM_IF_ID, 117 LWT_XFRM_IF_ID, 118 LWT_XFRM_LINK, 118 LWT_XFRM_LINK, 119 __LWT_XFRM_MAX, 119 __LWT_XFRM_MAX, 120 }; 120 }; 121 121 122 #define LWT_XFRM_MAX (__LWT_XFRM_MAX - 1) 122 #define LWT_XFRM_MAX (__LWT_XFRM_MAX - 1) 123 123 124 #endif /* _UAPI_LWTUNNEL_H_ */ 124 #endif /* _UAPI_LWTUNNEL_H_ */ 125 125
Linux® is a registered trademark of Linus Torvalds in the United States and other countries.
TOMOYO® is a registered trademark of NTT DATA CORPORATION.