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