nfnetlink_queue.h
01: #ifndef _NFNETLINK_QUEUE_H
02: #define _NFNETLINK_QUEUE_H
03:
04: #include <linux/types.h>
05: #include <linux/netfilter/nfnetlink.h>
06:
07: enum nfqnl_msg_types {
08: NFQNL_MSG_PACKET,
09: NFQNL_MSG_VERDICT,
10: NFQNL_MSG_CONFIG,
11: NFQNL_MSG_VERDICT_BATCH,
12:
13: NFQNL_MSG_MAX
14: };
15:
16: struct nfqnl_msg_packet_hdr {
17: __be32 packet_id;
18: __be16 hw_protocol;
19: __u8 hook;
20: } __attribute__ ((packed));
21:
22: struct nfqnl_msg_packet_hw {
23: __be16 hw_addrlen;
24: __u16 _pad;
25: __u8 hw_addr[8];
26: };
27:
28: struct nfqnl_msg_packet_timestamp {
29: __aligned_be64 sec;
30: __aligned_be64 usec;
31: };
32:
33: enum nfqnl_attr_type {
34: NFQA_UNSPEC,
35: NFQA_PACKET_HDR,
36: NFQA_VERDICT_HDR,
37: NFQA_MARK,
38: NFQA_TIMESTAMP,
39: NFQA_IFINDEX_INDEV,
40: NFQA_IFINDEX_OUTDEV,
41: NFQA_IFINDEX_PHYSINDEV,
42: NFQA_IFINDEX_PHYSOUTDEV,
43: NFQA_HWADDR,
44: NFQA_PAYLOAD,
45:
46: __NFQA_MAX
47: };
48: #define NFQA_MAX (__NFQA_MAX - 1)
49:
50: struct nfqnl_msg_verdict_hdr {
51: __be32 verdict;
52: __be32 id;
53: };
54:
55:
56: enum nfqnl_msg_config_cmds {
57: NFQNL_CFG_CMD_NONE,
58: NFQNL_CFG_CMD_BIND,
59: NFQNL_CFG_CMD_UNBIND,
60: NFQNL_CFG_CMD_PF_BIND,
61: NFQNL_CFG_CMD_PF_UNBIND,
62: };
63:
64: struct nfqnl_msg_config_cmd {
65: __u8 command;
66: __u8 _pad;
67: __be16 pf;
68: };
69:
70: enum nfqnl_config_mode {
71: NFQNL_COPY_NONE,
72: NFQNL_COPY_META,
73: NFQNL_COPY_PACKET,
74: };
75:
76: struct nfqnl_msg_config_params {
77: __be32 copy_range;
78: __u8 copy_mode;
79: } __attribute__ ((packed));
80:
81:
82: enum nfqnl_attr_config {
83: NFQA_CFG_UNSPEC,
84: NFQA_CFG_CMD,
85: NFQA_CFG_PARAMS,
86: NFQA_CFG_QUEUE_MAXLEN,
87: __NFQA_CFG_MAX
88: };
89: #define NFQA_CFG_MAX (__NFQA_CFG_MAX-1)
90:
91: #endif
92:
© Andrew Scott 2006 -
2025,
All Rights Reserved