/****************************************************************************
 ****************************************************************************
 ***
 ***   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 __LINUX_TC_EM_META_H
#define __LINUX_TC_EM_META_H
#include <linux/types.h>
#include <linux/pkt_cls.h>
/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
enum {
  TCA_EM_META_UNSPEC,
  TCA_EM_META_HDR,
  TCA_EM_META_LVALUE,
/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
  TCA_EM_META_RVALUE,
  __TCA_EM_META_MAX
};
#define TCA_EM_META_MAX (__TCA_EM_META_MAX - 1)
/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
struct tcf_meta_val {
  __u16 kind;
  __u8 shift;
  __u8 op;
/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
};
#define TCF_META_TYPE_MASK (0xf << 12)
#define TCF_META_TYPE(kind) (((kind) & TCF_META_TYPE_MASK) >> 12)
#define TCF_META_ID_MASK 0x7ff
/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
#define TCF_META_ID(kind) ((kind) & TCF_META_ID_MASK)
enum {
  TCF_META_TYPE_VAR,
  TCF_META_TYPE_INT,
/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
  __TCF_META_TYPE_MAX
};
#define TCF_META_TYPE_MAX (__TCF_META_TYPE_MAX - 1)
enum {
/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
  TCF_META_ID_VALUE,
  TCF_META_ID_RANDOM,
  TCF_META_ID_LOADAVG_0,
  TCF_META_ID_LOADAVG_1,
/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
  TCF_META_ID_LOADAVG_2,
  TCF_META_ID_DEV,
  TCF_META_ID_PRIORITY,
  TCF_META_ID_PROTOCOL,
/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
  TCF_META_ID_PKTTYPE,
  TCF_META_ID_PKTLEN,
  TCF_META_ID_DATALEN,
  TCF_META_ID_MACLEN,
/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
  TCF_META_ID_NFMARK,
  TCF_META_ID_TCINDEX,
  TCF_META_ID_RTCLASSID,
  TCF_META_ID_RTIIF,
/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
  TCF_META_ID_SK_FAMILY,
  TCF_META_ID_SK_STATE,
  TCF_META_ID_SK_REUSE,
  TCF_META_ID_SK_BOUND_IF,
/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
  TCF_META_ID_SK_REFCNT,
  TCF_META_ID_SK_SHUTDOWN,
  TCF_META_ID_SK_PROTO,
  TCF_META_ID_SK_TYPE,
/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
  TCF_META_ID_SK_RCVBUF,
  TCF_META_ID_SK_RMEM_ALLOC,
  TCF_META_ID_SK_WMEM_ALLOC,
  TCF_META_ID_SK_OMEM_ALLOC,
/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
  TCF_META_ID_SK_WMEM_QUEUED,
  TCF_META_ID_SK_RCV_QLEN,
  TCF_META_ID_SK_SND_QLEN,
  TCF_META_ID_SK_ERR_QLEN,
/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
  TCF_META_ID_SK_FORWARD_ALLOCS,
  TCF_META_ID_SK_SNDBUF,
  TCF_META_ID_SK_ALLOCS,
  __TCF_META_ID_SK_ROUTE_CAPS,
/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
  TCF_META_ID_SK_HASH,
  TCF_META_ID_SK_LINGERTIME,
  TCF_META_ID_SK_ACK_BACKLOG,
  TCF_META_ID_SK_MAX_ACK_BACKLOG,
/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
  TCF_META_ID_SK_PRIO,
  TCF_META_ID_SK_RCVLOWAT,
  TCF_META_ID_SK_RCVTIMEO,
  TCF_META_ID_SK_SNDTIMEO,
/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
  TCF_META_ID_SK_SENDMSG_OFF,
  TCF_META_ID_SK_WRITE_PENDING,
  TCF_META_ID_VLAN_TAG,
  TCF_META_ID_RXHASH,
/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
  __TCF_META_ID_MAX
};
#define TCF_META_ID_MAX (__TCF_META_ID_MAX - 1)
struct tcf_meta_hdr {
/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
  struct tcf_meta_val left;
  struct tcf_meta_val right;
};
#endif
/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
