text: /* SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note */
  #ifndef _LWTUNNEL_H_
  #define _LWTUNNEL_H_
  
  #include <linux/types.h>
  
  enum lwtunnel_encap_types {
  	LWTUNNEL_ENCAP_NONE,
  	LWTUNNEL_ENCAP_MPLS,
  	LWTUNNEL_ENCAP_IP,
  	LWTUNNEL_ENCAP_ILA,
  	LWTUNNEL_ENCAP_IP6,
  	LWTUNNEL_ENCAP_SEG6,
  	LWTUNNEL_ENCAP_BPF,
  	LWTUNNEL_ENCAP_SEG6_LOCAL,
  	LWTUNNEL_ENCAP_RPL,
  	__LWTUNNEL_ENCAP_MAX,
  };
  
  #define LWTUNNEL_ENCAP_MAX (__LWTUNNEL_ENCAP_MAX - 1)
  
  enum lwtunnel_ip_t {
  	LWTUNNEL_IP_UNSPEC,
  	LWTUNNEL_IP_ID,
  	LWTUNNEL_IP_DST,
  	LWTUNNEL_IP_SRC,
  	LWTUNNEL_IP_TTL,
  	LWTUNNEL_IP_TOS,
  	LWTUNNEL_IP_FLAGS,
  	LWTUNNEL_IP_PAD,
  	LWTUNNEL_IP_OPTS,
  	__LWTUNNEL_IP_MAX,
  };
  
  #define LWTUNNEL_IP_MAX (__LWTUNNEL_IP_MAX - 1)
  
  enum lwtunnel_ip6_t {
  	LWTUNNEL_IP6_UNSPEC,
  	LWTUNNEL_IP6_ID,
  	LWTUNNEL_IP6_DST,
  	LWTUNNEL_IP6_SRC,
  	LWTUNNEL_IP6_HOPLIMIT,
  	LWTUNNEL_IP6_TC,
  	LWTUNNEL_IP6_FLAGS,
  	LWTUNNEL_IP6_PAD,
  	LWTUNNEL_IP6_OPTS,
  	__LWTUNNEL_IP6_MAX,
  };
  
  #define LWTUNNEL_IP6_MAX (__LWTUNNEL_IP6_MAX - 1)
  
  enum {
  	LWTUNNEL_IP_OPTS_UNSPEC,
  	LWTUNNEL_IP_OPTS_GENEVE,
  	LWTUNNEL_IP_OPTS_VXLAN,
  	LWTUNNEL_IP_OPTS_ERSPAN,
  	__LWTUNNEL_IP_OPTS_MAX,
  };
  
  #define LWTUNNEL_IP_OPTS_MAX (__LWTUNNEL_IP_OPTS_MAX - 1)
  
  enum {
  	LWTUNNEL_IP_OPT_GENEVE_UNSPEC,
  	LWTUNNEL_IP_OPT_GENEVE_CLASS,
  	LWTUNNEL_IP_OPT_GENEVE_TYPE,
  	LWTUNNEL_IP_OPT_GENEVE_DATA,
  	__LWTUNNEL_IP_OPT_GENEVE_MAX,
  };
  
  #define LWTUNNEL_IP_OPT_GENEVE_MAX (__LWTUNNEL_IP_OPT_GENEVE_MAX - 1)
  
  enum {
  	LWTUNNEL_IP_OPT_VXLAN_UNSPEC,
  	LWTUNNEL_IP_OPT_VXLAN_GBP,
  	__LWTUNNEL_IP_OPT_VXLAN_MAX,
  };
  
  #define LWTUNNEL_IP_OPT_VXLAN_MAX (__LWTUNNEL_IP_OPT_VXLAN_MAX - 1)
  
  enum {
  	LWTUNNEL_IP_OPT_ERSPAN_UNSPEC,
  	LWTUNNEL_IP_OPT_ERSPAN_VER,
  	LWTUNNEL_IP_OPT_ERSPAN_INDEX,
  	LWTUNNEL_IP_OPT_ERSPAN_DIR,
  	LWTUNNEL_IP_OPT_ERSPAN_HWID,
  	__LWTUNNEL_IP_OPT_ERSPAN_MAX,
  };
  
  #define LWTUNNEL_IP_OPT_ERSPAN_MAX (__LWTUNNEL_IP_OPT_ERSPAN_MAX - 1)
  
  enum {
  	LWT_BPF_PROG_UNSPEC,
  	LWT_BPF_PROG_FD,
  	LWT_BPF_PROG_NAME,
  	__LWT_BPF_PROG_MAX,
  };
  
  #define LWT_BPF_PROG_MAX (__LWT_BPF_PROG_MAX - 1)
  
  enum {
  	LWT_BPF_UNSPEC,
  	LWT_BPF_IN,
  	LWT_BPF_OUT,
  	LWT_BPF_XMIT,
  	LWT_BPF_XMIT_HEADROOM,
  	__LWT_BPF_MAX,
  };
  
  #define LWT_BPF_MAX (__LWT_BPF_MAX - 1)
  
  #define LWT_BPF_MAX_HEADROOM 256
  
  #endif /* _LWTUNNEL_H_ */
  