Commit | Line | Data |
---|---|---|
0597f268 HW |
1 | #ifndef _NFNETLINK_LOG_H |
2 | #define _NFNETLINK_LOG_H | |
3 | ||
4 | /* This file describes the netlink messages (i.e. 'protocol packets'), | |
5 | * and not any kind of function definitions. It is shared between kernel and | |
6 | * userspace. Don't put kernel specific stuff in here */ | |
7 | ||
8 | #include <linux/netfilter/nfnetlink.h> | |
9 | ||
10 | enum nfulnl_msg_types { | |
11 | NFULNL_MSG_PACKET, /* packet from kernel to userspace */ | |
12 | NFULNL_MSG_CONFIG, /* connect to a particular queue */ | |
13 | ||
14 | NFULNL_MSG_MAX | |
15 | }; | |
16 | ||
17 | struct nfulnl_msg_packet_hdr { | |
18 | u_int16_t hw_protocol; /* hw protocol (network order) */ | |
19 | u_int8_t hook; /* netfilter hook */ | |
20 | u_int8_t _pad; | |
21 | } __attribute__ ((packed)); | |
22 | ||
23 | struct nfulnl_msg_packet_hw { | |
24 | u_int16_t hw_addrlen; | |
25 | u_int16_t _pad; | |
26 | u_int8_t hw_addr[8]; | |
27 | } __attribute__ ((packed)); | |
28 | ||
29 | struct nfulnl_msg_packet_timestamp { | |
30 | u_int64_t sec; | |
31 | u_int64_t usec; | |
32 | } __attribute__ ((packed)); | |
33 | ||
34 | #define NFULNL_PREFIXLEN 30 /* just like old log target */ | |
35 | ||
36 | enum nfulnl_attr_type { | |
37 | NFULA_UNSPEC, | |
38 | NFULA_PACKET_HDR, | |
39 | NFULA_MARK, /* u_int32_t nfmark */ | |
40 | NFULA_TIMESTAMP, /* nfulnl_msg_packet_timestamp */ | |
41 | NFULA_IFINDEX_INDEV, /* u_int32_t ifindex */ | |
42 | NFULA_IFINDEX_OUTDEV, /* u_int32_t ifindex */ | |
fbcd923c HW |
43 | NFULA_IFINDEX_PHYSINDEV, /* u_int32_t ifindex */ |
44 | NFULA_IFINDEX_PHYSOUTDEV, /* u_int32_t ifindex */ | |
0597f268 HW |
45 | NFULA_HWADDR, /* nfulnl_msg_packet_hw */ |
46 | NFULA_PAYLOAD, /* opaque data payload */ | |
47 | NFULA_PREFIX, /* string prefix */ | |
48 | NFULA_UID, /* user id of socket */ | |
49 | ||
50 | __NFULA_MAX | |
51 | }; | |
52 | #define NFULA_MAX (__NFULA_MAX - 1) | |
53 | ||
54 | enum nfulnl_msg_config_cmds { | |
55 | NFULNL_CFG_CMD_NONE, | |
56 | NFULNL_CFG_CMD_BIND, | |
57 | NFULNL_CFG_CMD_UNBIND, | |
58 | NFULNL_CFG_CMD_PF_BIND, | |
59 | NFULNL_CFG_CMD_PF_UNBIND, | |
60 | }; | |
61 | ||
62 | struct nfulnl_msg_config_cmd { | |
63 | u_int8_t command; /* nfulnl_msg_config_cmds */ | |
64 | } __attribute__ ((packed)); | |
65 | ||
66 | struct nfulnl_msg_config_mode { | |
67 | u_int32_t copy_range; | |
68 | u_int8_t copy_mode; | |
69 | u_int8_t _pad; | |
70 | } __attribute__ ((packed)); | |
71 | ||
72 | enum nfulnl_attr_config { | |
73 | NFULA_CFG_UNSPEC, | |
74 | NFULA_CFG_CMD, /* nfulnl_msg_config_cmd */ | |
75 | NFULA_CFG_MODE, /* nfulnl_msg_config_mode */ | |
76 | NFULA_CFG_NLBUFSIZ, /* u_int32_t buffer size */ | |
77 | NFULA_CFG_TIMEOUT, /* u_int32_t in 1/100 s */ | |
78 | NFULA_CFG_QTHRESH, /* u_int32_t */ | |
79 | __NFULA_CFG_MAX | |
80 | }; | |
81 | #define NFULA_CFG_MAX (__NFULA_CFG_MAX -1) | |
82 | ||
83 | #define NFULNL_COPY_NONE 0x00 | |
84 | #define NFULNL_COPY_META 0x01 | |
85 | #define NFULNL_COPY_PACKET 0x02 | |
86 | ||
87 | #endif /* _NFNETLINK_LOG_H */ |