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 { | |
98a4a861 | 19 | __be16 hw_protocol; /* hw protocol (network order) */ |
0597f268 HW |
20 | u_int8_t hook; /* netfilter hook */ |
21 | u_int8_t _pad; | |
53e26658 | 22 | }; |
0597f268 HW |
23 | |
24 | struct nfulnl_msg_packet_hw { | |
98a4a861 | 25 | __be16 hw_addrlen; |
0597f268 HW |
26 | u_int16_t _pad; |
27 | u_int8_t hw_addr[8]; | |
53e26658 | 28 | }; |
0597f268 HW |
29 | |
30 | struct nfulnl_msg_packet_timestamp { | |
98a4a861 AV |
31 | aligned_be64 sec; |
32 | aligned_be64 usec; | |
53e26658 | 33 | }; |
0597f268 | 34 | |
0597f268 HW |
35 | enum nfulnl_attr_type { |
36 | NFULA_UNSPEC, | |
37 | NFULA_PACKET_HDR, | |
38 | NFULA_MARK, /* u_int32_t nfmark */ | |
39 | NFULA_TIMESTAMP, /* nfulnl_msg_packet_timestamp */ | |
40 | NFULA_IFINDEX_INDEV, /* u_int32_t ifindex */ | |
41 | NFULA_IFINDEX_OUTDEV, /* u_int32_t ifindex */ | |
fbcd923c HW |
42 | NFULA_IFINDEX_PHYSINDEV, /* u_int32_t ifindex */ |
43 | NFULA_IFINDEX_PHYSOUTDEV, /* u_int32_t ifindex */ | |
0597f268 HW |
44 | NFULA_HWADDR, /* nfulnl_msg_packet_hw */ |
45 | NFULA_PAYLOAD, /* opaque data payload */ | |
46 | NFULA_PREFIX, /* string prefix */ | |
47 | NFULA_UID, /* user id of socket */ | |
0af5f6c1 HW |
48 | NFULA_SEQ, /* instance-local sequence number */ |
49 | NFULA_SEQ_GLOBAL, /* global sequence number */ | |
0597f268 HW |
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 { | |
98a4a861 | 68 | __be32 copy_range; |
0597f268 HW |
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 */ | |
0af5f6c1 | 80 | NFULA_CFG_FLAGS, /* u_int16_t */ |
0597f268 HW |
81 | __NFULA_CFG_MAX |
82 | }; | |
83 | #define NFULA_CFG_MAX (__NFULA_CFG_MAX -1) | |
84 | ||
85 | #define NFULNL_COPY_NONE 0x00 | |
86 | #define NFULNL_COPY_META 0x01 | |
87 | #define NFULNL_COPY_PACKET 0x02 | |
88 | ||
0af5f6c1 HW |
89 | #define NFULNL_CFG_F_SEQ 0x0001 |
90 | #define NFULNL_CFG_F_SEQ_GLOBAL 0x0002 | |
91 | ||
0597f268 | 92 | #endif /* _NFNETLINK_LOG_H */ |