Dr Andrew Scott G7VAV

My photo
 
June 2025
Mo Tu We Th Fr Sa Su
26 27 28 29 30 31 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 1 2 3 4 5 6


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,               /* packet from kernel to userspace */
09:         NFQNL_MSG_VERDICT,              /* verdict from userspace to kernel */
10:         NFQNL_MSG_CONFIG,               /* connect to a particular queue */
11:         NFQNL_MSG_VERDICT_BATCH,        /* batchv from userspace to kernel */
12: 
13:         NFQNL_MSG_MAX
14: };
15: 
16: struct nfqnl_msg_packet_hdr {
17:         __be32          packet_id;      /* unique ID of packet in queue */
18:         __be16          hw_protocol;    /* hw protocol (network order) */
19:         __u8    hook;           /* netfilter 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,               /* nfqnl_msg_verdict_hrd */
37:         NFQA_MARK,                      /* __u32 nfmark */
38:         NFQA_TIMESTAMP,                 /* nfqnl_msg_packet_timestamp */
39:         NFQA_IFINDEX_INDEV,             /* __u32 ifindex */
40:         NFQA_IFINDEX_OUTDEV,            /* __u32 ifindex */
41:         NFQA_IFINDEX_PHYSINDEV,         /* __u32 ifindex */
42:         NFQA_IFINDEX_PHYSOUTDEV,        /* __u32 ifindex */
43:         NFQA_HWADDR,                    /* nfqnl_msg_packet_hw */
44:         NFQA_PAYLOAD,                   /* opaque data 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;        /* nfqnl_msg_config_cmds */
66:         __u8    _pad;
67:         __be16          pf;             /* AF_xxx for PF_[UN]BIND */
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;      /* enum nfqnl_config_mode */
79: } __attribute__ ((packed));
80: 
81: 
82: enum nfqnl_attr_config {
83:         NFQA_CFG_UNSPEC,
84:         NFQA_CFG_CMD,                   /* nfqnl_msg_config_cmd */
85:         NFQA_CFG_PARAMS,                /* nfqnl_msg_config_params */
86:         NFQA_CFG_QUEUE_MAXLEN,          /* __u32 */
87:         __NFQA_CFG_MAX
88: };
89: #define NFQA_CFG_MAX (__NFQA_CFG_MAX-1)
90: 
91: #endif /* _NFNETLINK_QUEUE_H */
92: 


for client (none)
© Andrew Scott 2006 - 2025,
All Rights Reserved
http://www.andrew-scott.uk/
Andrew Scott
http://www.andrew-scott.co.uk/