16f52b16cSGreg Kroah-Hartman /* SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note */ 2499a2425SRoopa Prabhu #ifndef _UAPI_LWTUNNEL_H_ 3499a2425SRoopa Prabhu #define _UAPI_LWTUNNEL_H_ 4499a2425SRoopa Prabhu 5499a2425SRoopa Prabhu #include <linux/types.h> 6499a2425SRoopa Prabhu 7499a2425SRoopa Prabhu enum lwtunnel_encap_types { 8499a2425SRoopa Prabhu LWTUNNEL_ENCAP_NONE, 9499a2425SRoopa Prabhu LWTUNNEL_ENCAP_MPLS, 103093fbe7SThomas Graf LWTUNNEL_ENCAP_IP, 1165d7ab8dSTom Herbert LWTUNNEL_ENCAP_ILA, 1232a2b002SJiri Benc LWTUNNEL_ENCAP_IP6, 136c8702c6SDavid Lebrun LWTUNNEL_ENCAP_SEG6, 143a0af8fdSThomas Graf LWTUNNEL_ENCAP_BPF, 15d1df6fd8SDavid Lebrun LWTUNNEL_ENCAP_SEG6_LOCAL, 16a7a29f9cSAlexander Aring LWTUNNEL_ENCAP_RPL, 173edede08SJustin Iurman LWTUNNEL_ENCAP_IOAM6, 18*2c2493b9SEyal Birger LWTUNNEL_ENCAP_XFRM, 19499a2425SRoopa Prabhu __LWTUNNEL_ENCAP_MAX, 20499a2425SRoopa Prabhu }; 21499a2425SRoopa Prabhu 22499a2425SRoopa Prabhu #define LWTUNNEL_ENCAP_MAX (__LWTUNNEL_ENCAP_MAX - 1) 23499a2425SRoopa Prabhu 24a1c234f9SJiri Benc enum lwtunnel_ip_t { 25a1c234f9SJiri Benc LWTUNNEL_IP_UNSPEC, 26a1c234f9SJiri Benc LWTUNNEL_IP_ID, 27a1c234f9SJiri Benc LWTUNNEL_IP_DST, 28a1c234f9SJiri Benc LWTUNNEL_IP_SRC, 29a1c234f9SJiri Benc LWTUNNEL_IP_TTL, 30a1c234f9SJiri Benc LWTUNNEL_IP_TOS, 31a1c234f9SJiri Benc LWTUNNEL_IP_FLAGS, 32b46f6dedSNicolas Dichtel LWTUNNEL_IP_PAD, 334ece4778SXin Long LWTUNNEL_IP_OPTS, 34a1c234f9SJiri Benc __LWTUNNEL_IP_MAX, 35a1c234f9SJiri Benc }; 36a1c234f9SJiri Benc 37a1c234f9SJiri Benc #define LWTUNNEL_IP_MAX (__LWTUNNEL_IP_MAX - 1) 38499a2425SRoopa Prabhu 3932a2b002SJiri Benc enum lwtunnel_ip6_t { 4032a2b002SJiri Benc LWTUNNEL_IP6_UNSPEC, 4132a2b002SJiri Benc LWTUNNEL_IP6_ID, 4232a2b002SJiri Benc LWTUNNEL_IP6_DST, 4332a2b002SJiri Benc LWTUNNEL_IP6_SRC, 4432a2b002SJiri Benc LWTUNNEL_IP6_HOPLIMIT, 4532a2b002SJiri Benc LWTUNNEL_IP6_TC, 4632a2b002SJiri Benc LWTUNNEL_IP6_FLAGS, 47b46f6dedSNicolas Dichtel LWTUNNEL_IP6_PAD, 484ece4778SXin Long LWTUNNEL_IP6_OPTS, 4932a2b002SJiri Benc __LWTUNNEL_IP6_MAX, 5032a2b002SJiri Benc }; 5132a2b002SJiri Benc 5232a2b002SJiri Benc #define LWTUNNEL_IP6_MAX (__LWTUNNEL_IP6_MAX - 1) 5332a2b002SJiri Benc 543a0af8fdSThomas Graf enum { 554ece4778SXin Long LWTUNNEL_IP_OPTS_UNSPEC, 564ece4778SXin Long LWTUNNEL_IP_OPTS_GENEVE, 57edf31cbbSXin Long LWTUNNEL_IP_OPTS_VXLAN, 58b0a21810SXin Long LWTUNNEL_IP_OPTS_ERSPAN, 594ece4778SXin Long __LWTUNNEL_IP_OPTS_MAX, 604ece4778SXin Long }; 614ece4778SXin Long 624ece4778SXin Long #define LWTUNNEL_IP_OPTS_MAX (__LWTUNNEL_IP_OPTS_MAX - 1) 634ece4778SXin Long 644ece4778SXin Long enum { 654ece4778SXin Long LWTUNNEL_IP_OPT_GENEVE_UNSPEC, 664ece4778SXin Long LWTUNNEL_IP_OPT_GENEVE_CLASS, 674ece4778SXin Long LWTUNNEL_IP_OPT_GENEVE_TYPE, 684ece4778SXin Long LWTUNNEL_IP_OPT_GENEVE_DATA, 694ece4778SXin Long __LWTUNNEL_IP_OPT_GENEVE_MAX, 704ece4778SXin Long }; 714ece4778SXin Long 724ece4778SXin Long #define LWTUNNEL_IP_OPT_GENEVE_MAX (__LWTUNNEL_IP_OPT_GENEVE_MAX - 1) 734ece4778SXin Long 744ece4778SXin Long enum { 75edf31cbbSXin Long LWTUNNEL_IP_OPT_VXLAN_UNSPEC, 76edf31cbbSXin Long LWTUNNEL_IP_OPT_VXLAN_GBP, 77edf31cbbSXin Long __LWTUNNEL_IP_OPT_VXLAN_MAX, 78edf31cbbSXin Long }; 79edf31cbbSXin Long 80edf31cbbSXin Long #define LWTUNNEL_IP_OPT_VXLAN_MAX (__LWTUNNEL_IP_OPT_VXLAN_MAX - 1) 81edf31cbbSXin Long 82edf31cbbSXin Long enum { 83b0a21810SXin Long LWTUNNEL_IP_OPT_ERSPAN_UNSPEC, 84b0a21810SXin Long LWTUNNEL_IP_OPT_ERSPAN_VER, 85b0a21810SXin Long LWTUNNEL_IP_OPT_ERSPAN_INDEX, 86b0a21810SXin Long LWTUNNEL_IP_OPT_ERSPAN_DIR, 87b0a21810SXin Long LWTUNNEL_IP_OPT_ERSPAN_HWID, 88b0a21810SXin Long __LWTUNNEL_IP_OPT_ERSPAN_MAX, 89b0a21810SXin Long }; 90b0a21810SXin Long 91b0a21810SXin Long #define LWTUNNEL_IP_OPT_ERSPAN_MAX (__LWTUNNEL_IP_OPT_ERSPAN_MAX - 1) 92b0a21810SXin Long 93b0a21810SXin Long enum { 943a0af8fdSThomas Graf LWT_BPF_PROG_UNSPEC, 953a0af8fdSThomas Graf LWT_BPF_PROG_FD, 963a0af8fdSThomas Graf LWT_BPF_PROG_NAME, 973a0af8fdSThomas Graf __LWT_BPF_PROG_MAX, 983a0af8fdSThomas Graf }; 993a0af8fdSThomas Graf 1003a0af8fdSThomas Graf #define LWT_BPF_PROG_MAX (__LWT_BPF_PROG_MAX - 1) 1013a0af8fdSThomas Graf 1023a0af8fdSThomas Graf enum { 1033a0af8fdSThomas Graf LWT_BPF_UNSPEC, 1043a0af8fdSThomas Graf LWT_BPF_IN, 1053a0af8fdSThomas Graf LWT_BPF_OUT, 1063a0af8fdSThomas Graf LWT_BPF_XMIT, 1073a0af8fdSThomas Graf LWT_BPF_XMIT_HEADROOM, 1083a0af8fdSThomas Graf __LWT_BPF_MAX, 1093a0af8fdSThomas Graf }; 1103a0af8fdSThomas Graf 1113a0af8fdSThomas Graf #define LWT_BPF_MAX (__LWT_BPF_MAX - 1) 1123a0af8fdSThomas Graf 1133a0af8fdSThomas Graf #define LWT_BPF_MAX_HEADROOM 256 1143a0af8fdSThomas Graf 115*2c2493b9SEyal Birger enum { 116*2c2493b9SEyal Birger LWT_XFRM_UNSPEC, 117*2c2493b9SEyal Birger LWT_XFRM_IF_ID, 118*2c2493b9SEyal Birger LWT_XFRM_LINK, 119*2c2493b9SEyal Birger __LWT_XFRM_MAX, 120*2c2493b9SEyal Birger }; 121*2c2493b9SEyal Birger 122*2c2493b9SEyal Birger #define LWT_XFRM_MAX (__LWT_XFRM_MAX - 1) 123*2c2493b9SEyal Birger 124499a2425SRoopa Prabhu #endif /* _UAPI_LWTUNNEL_H_ */ 125