/****************************************************************************
 ****************************************************************************
 ***
 ***   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 _NFNETLINK_LOG_H
#define _NFNETLINK_LOG_H
#include <linux/types.h>
#include <linux/netfilter/nfnetlink.h>
enum nfulnl_msg_types {
  NFULNL_MSG_PACKET,
  NFULNL_MSG_CONFIG,
  NFULNL_MSG_MAX
};
struct nfulnl_msg_packet_hdr {
  __be16 hw_protocol;
  __u8 hook;
  __u8 _pad;
};
struct nfulnl_msg_packet_hw {
  __be16 hw_addrlen;
  __u16 _pad;
  __u8 hw_addr[8];
};
struct nfulnl_msg_packet_timestamp {
  __aligned_be64 sec;
  __aligned_be64 usec;
};
enum nfulnl_attr_type {
  NFULA_UNSPEC,
  NFULA_PACKET_HDR,
  NFULA_MARK,
  NFULA_TIMESTAMP,
  NFULA_IFINDEX_INDEV,
  NFULA_IFINDEX_OUTDEV,
  NFULA_IFINDEX_PHYSINDEV,
  NFULA_IFINDEX_PHYSOUTDEV,
  NFULA_HWADDR,
  NFULA_PAYLOAD,
  NFULA_PREFIX,
  NFULA_UID,
  NFULA_SEQ,
  NFULA_SEQ_GLOBAL,
  NFULA_GID,
  NFULA_HWTYPE,
  NFULA_HWHEADER,
  NFULA_HWLEN,
  NFULA_CT,
  NFULA_CT_INFO,
  __NFULA_MAX
};
#define NFULA_MAX (__NFULA_MAX - 1)
enum nfulnl_msg_config_cmds {
  NFULNL_CFG_CMD_NONE,
  NFULNL_CFG_CMD_BIND,
  NFULNL_CFG_CMD_UNBIND,
  NFULNL_CFG_CMD_PF_BIND,
  NFULNL_CFG_CMD_PF_UNBIND,
};
struct nfulnl_msg_config_cmd {
  __u8 command;
} __attribute__((packed));
struct nfulnl_msg_config_mode {
  __be32 copy_range;
  __u8 copy_mode;
  __u8 _pad;
} __attribute__((packed));
enum nfulnl_attr_config {
  NFULA_CFG_UNSPEC,
  NFULA_CFG_CMD,
  NFULA_CFG_MODE,
  NFULA_CFG_NLBUFSIZ,
  NFULA_CFG_TIMEOUT,
  NFULA_CFG_QTHRESH,
  NFULA_CFG_FLAGS,
  __NFULA_CFG_MAX
};
#define NFULA_CFG_MAX (__NFULA_CFG_MAX - 1)
#define NFULNL_COPY_NONE 0x00
#define NFULNL_COPY_META 0x01
#define NFULNL_COPY_PACKET 0x02
#define NFULNL_CFG_F_SEQ 0x0001
#define NFULNL_CFG_F_SEQ_GLOBAL 0x0002
#define NFULNL_CFG_F_CONNTRACK 0x0004
#endif
