ip_queue.h
01:
02:
03:
04:
05:
06:
07: #ifndef _IP_QUEUE_H
08: #define _IP_QUEUE_H
09:
10: #include <net/if.h>
11:
12:
13: typedef struct ipq_packet_msg {
14: unsigned long packet_id;
15: unsigned long mark;
16: long timestamp_sec;
17: long timestamp_usec;
18: unsigned int hook;
19: char indev_name[IFNAMSIZ];
20: char outdev_name[IFNAMSIZ];
21: __be16 hw_protocol;
22: unsigned short hw_type;
23: unsigned char hw_addrlen;
24: unsigned char hw_addr[8];
25: size_t data_len;
26: unsigned char payload[0];
27: } ipq_packet_msg_t;
28:
29:
30: typedef struct ipq_mode_msg {
31: unsigned char value;
32: size_t range;
33: } ipq_mode_msg_t;
34:
35: typedef struct ipq_verdict_msg {
36: unsigned int value;
37: unsigned long id;
38: size_t data_len;
39: unsigned char payload[0];
40: } ipq_verdict_msg_t;
41:
42: typedef struct ipq_peer_msg {
43: union {
44: ipq_verdict_msg_t verdict;
45: ipq_mode_msg_t mode;
46: } msg;
47: } ipq_peer_msg_t;
48:
49:
50: enum {
51: IPQ_COPY_NONE,
52: IPQ_COPY_META,
53: IPQ_COPY_PACKET
54: };
55: #define IPQ_COPY_MAX IPQ_COPY_PACKET
56:
57:
58: #define IPQM_BASE 0x10
59: #define IPQM_MODE (IPQM_BASE + 1)
60: #define IPQM_VERDICT (IPQM_BASE + 2)
61: #define IPQM_PACKET (IPQM_BASE + 3)
62: #define IPQM_MAX (IPQM_BASE + 4)
63:
64: #endif
65:
© Andrew Scott 2006 -
2025,
All Rights Reserved