1#ifndef _NFNETLINK_QUEUE_H
2#define _NFNETLINK_QUEUE_H
3
4#include <linux/types.h>
5#include <linux/netfilter/nfnetlink.h>
6
7enum nfqnl_msg_types {
8 NFQNL_MSG_PACKET,
9 NFQNL_MSG_VERDICT,
10 NFQNL_MSG_CONFIG,
11 NFQNL_MSG_VERDICT_BATCH,
12
13 NFQNL_MSG_MAX
14};
15
16struct nfqnl_msg_packet_hdr {
17 __be32 packet_id;
18 __be16 hw_protocol;
19 __u8 hook;
20} __attribute__ ((packed));
21
22struct nfqnl_msg_packet_hw {
23 __be16 hw_addrlen;
24 __u16 _pad;
25 __u8 hw_addr[8];
26};
27
28struct nfqnl_msg_packet_timestamp {
29 __aligned_be64 sec;
30 __aligned_be64 usec;
31};
32
33enum nfqnl_vlan_attr {
34 NFQA_VLAN_UNSPEC,
35 NFQA_VLAN_PROTO,
36 NFQA_VLAN_TCI,
37 __NFQA_VLAN_MAX,
38};
39#define NFQA_VLAN_MAX (__NFQA_VLAN_MAX - 1)
40
41enum nfqnl_attr_type {
42 NFQA_UNSPEC,
43 NFQA_PACKET_HDR,
44 NFQA_VERDICT_HDR,
45 NFQA_MARK,
46 NFQA_TIMESTAMP,
47 NFQA_IFINDEX_INDEV,
48 NFQA_IFINDEX_OUTDEV,
49 NFQA_IFINDEX_PHYSINDEV,
50 NFQA_IFINDEX_PHYSOUTDEV,
51 NFQA_HWADDR,
52 NFQA_PAYLOAD,
53 NFQA_CT,
54 NFQA_CT_INFO,
55 NFQA_CAP_LEN,
56 NFQA_SKB_INFO,
57 NFQA_EXP,
58 NFQA_UID,
59 NFQA_GID,
60 NFQA_SECCTX,
61 NFQA_VLAN,
62 NFQA_L2HDR,
63
64 __NFQA_MAX
65};
66#define NFQA_MAX (__NFQA_MAX - 1)
67
68struct nfqnl_msg_verdict_hdr {
69 __be32 verdict;
70 __be32 id;
71};
72
73
74enum nfqnl_msg_config_cmds {
75 NFQNL_CFG_CMD_NONE,
76 NFQNL_CFG_CMD_BIND,
77 NFQNL_CFG_CMD_UNBIND,
78 NFQNL_CFG_CMD_PF_BIND,
79 NFQNL_CFG_CMD_PF_UNBIND,
80};
81
82struct nfqnl_msg_config_cmd {
83 __u8 command;
84 __u8 _pad;
85 __be16 pf;
86};
87
88enum nfqnl_config_mode {
89 NFQNL_COPY_NONE,
90 NFQNL_COPY_META,
91 NFQNL_COPY_PACKET,
92};
93
94struct nfqnl_msg_config_params {
95 __be32 copy_range;
96 __u8 copy_mode;
97} __attribute__ ((packed));
98
99
100enum nfqnl_attr_config {
101 NFQA_CFG_UNSPEC,
102 NFQA_CFG_CMD,
103 NFQA_CFG_PARAMS,
104 NFQA_CFG_QUEUE_MAXLEN,
105 NFQA_CFG_MASK,
106 NFQA_CFG_FLAGS,
107 __NFQA_CFG_MAX
108};
109#define NFQA_CFG_MAX (__NFQA_CFG_MAX-1)
110
111
112#define NFQA_CFG_F_FAIL_OPEN (1 << 0)
113#define NFQA_CFG_F_CONNTRACK (1 << 1)
114#define NFQA_CFG_F_GSO (1 << 2)
115#define NFQA_CFG_F_UID_GID (1 << 3)
116#define NFQA_CFG_F_SECCTX (1 << 4)
117#define NFQA_CFG_F_MAX (1 << 5)
118
119
120
121#define NFQA_SKB_CSUMNOTREADY (1 << 0)
122
123#define NFQA_SKB_GSO (1 << 1)
124
125#define NFQA_SKB_CSUM_NOTVERIFIED (1 << 2)
126
127#endif
128