blob: 5d17a545e71dd9406e889c4f040dd5231fbce251 [file] [log] [blame]
/****************************************************************************
****************************************************************************
***
*** 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