/**************************************************************************** **************************************************************************** *** *** 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. *** **************************************************************************** ****************************************************************************/ #ifndef _IP_QUEUE_H #define _IP_QUEUE_H #include <net/if.h> typedef struct ipq_packet_msg { unsigned long packet_id; unsigned long mark; long timestamp_sec; long timestamp_usec; unsigned int hook; char indev_name[IFNAMSIZ]; char outdev_name[IFNAMSIZ]; unsigned short hw_protocol; unsigned short hw_type; unsigned char hw_addrlen; unsigned char hw_addr[8]; size_t data_len; unsigned char payload[0]; } ipq_packet_msg_t; typedef struct ipq_mode_msg { unsigned char value; size_t range; } ipq_mode_msg_t; typedef struct ipq_verdict_msg { unsigned int value; unsigned long id; size_t data_len; unsigned char payload[0]; } ipq_verdict_msg_t; typedef struct ipq_peer_msg { union { ipq_verdict_msg_t verdict; ipq_mode_msg_t mode; } msg; } ipq_peer_msg_t; enum { IPQ_COPY_NONE, IPQ_COPY_META, IPQ_COPY_PACKET }; #define IPQ_COPY_MAX IPQ_COPY_PACKET #define IPQM_BASE 0x10 #define IPQM_MODE (IPQM_BASE + 1) #define IPQM_VERDICT (IPQM_BASE + 2) #define IPQM_PACKET (IPQM_BASE + 3) #define IPQM_MAX (IPQM_BASE + 4) #endif