/****************************************************************************
 ****************************************************************************
 ***
 ***   This header was automatically generated from a Linux kernel header
 ***   of the same name, to make information necessary for userspace to
 ***   call into the kernel available to libc.  It contains only constants,
 ***   structures, and macros generated from the original header, and thus,
 ***   contains no copyrightable information.
 ***
 ***   To edit the content of this header, modify the corresponding
 ***   source file (e.g. under external/kernel-headers/original/) then
 ***   run bionic/libc/kernel/tools/update_all.py
 ***
 ***   Any manual change here will be lost the next time this script will
 ***   be run. You've been warned!
 ***
 ****************************************************************************
 ****************************************************************************/
#ifndef _UAPI_LWTUNNEL_H_
#define _UAPI_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_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_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_MAX,
};
#define LWTUNNEL_IP6_MAX (__LWTUNNEL_IP6_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
