]>
Commit | Line | Data |
---|---|---|
6f52b16c | 1 | /* SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note */ |
0597f268 HW |
2 | #ifndef _NFNETLINK_LOG_H |
3 | #define _NFNETLINK_LOG_H | |
4 | ||
5 | /* This file describes the netlink messages (i.e. 'protocol packets'), | |
6 | * and not any kind of function definitions. It is shared between kernel and | |
7 | * userspace. Don't put kernel specific stuff in here */ | |
8 | ||
0ba2c6e8 | 9 | #include <linux/types.h> |
0597f268 HW |
10 | #include <linux/netfilter/nfnetlink.h> |
11 | ||
12 | enum nfulnl_msg_types { | |
13 | NFULNL_MSG_PACKET, /* packet from kernel to userspace */ | |
14 | NFULNL_MSG_CONFIG, /* connect to a particular queue */ | |
15 | ||
16 | NFULNL_MSG_MAX | |
17 | }; | |
18 | ||
19 | struct nfulnl_msg_packet_hdr { | |
98a4a861 | 20 | __be16 hw_protocol; /* hw protocol (network order) */ |
60c195c7 AB |
21 | __u8 hook; /* netfilter hook */ |
22 | __u8 _pad; | |
53e26658 | 23 | }; |
0597f268 HW |
24 | |
25 | struct nfulnl_msg_packet_hw { | |
98a4a861 | 26 | __be16 hw_addrlen; |
60c195c7 AB |
27 | __u16 _pad; |
28 | __u8 hw_addr[8]; | |
53e26658 | 29 | }; |
0597f268 HW |
30 | |
31 | struct nfulnl_msg_packet_timestamp { | |
b51bdad6 MF |
32 | __aligned_be64 sec; |
33 | __aligned_be64 usec; | |
53e26658 | 34 | }; |
0597f268 | 35 | |
0597f268 HW |
36 | enum nfulnl_attr_type { |
37 | NFULA_UNSPEC, | |
38 | NFULA_PACKET_HDR, | |
60c195c7 | 39 | NFULA_MARK, /* __u32 nfmark */ |
0597f268 | 40 | NFULA_TIMESTAMP, /* nfulnl_msg_packet_timestamp */ |
60c195c7 AB |
41 | NFULA_IFINDEX_INDEV, /* __u32 ifindex */ |
42 | NFULA_IFINDEX_OUTDEV, /* __u32 ifindex */ | |
43 | NFULA_IFINDEX_PHYSINDEV, /* __u32 ifindex */ | |
44 | NFULA_IFINDEX_PHYSOUTDEV, /* __u32 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 */ | |
0af5f6c1 HW |
49 | NFULA_SEQ, /* instance-local sequence number */ |
50 | NFULA_SEQ_GLOBAL, /* global sequence number */ | |
76aa1ce1 | 51 | NFULA_GID, /* group id of socket */ |
72961ecf EL |
52 | NFULA_HWTYPE, /* hardware type */ |
53 | NFULA_HWHEADER, /* hardware header */ | |
54 | NFULA_HWLEN, /* hardware header length */ | |
a29a9a58 KM |
55 | NFULA_CT, /* nf_conntrack_netlink.h */ |
56 | NFULA_CT_INFO, /* enum ip_conntrack_info */ | |
0597f268 HW |
57 | |
58 | __NFULA_MAX | |
59 | }; | |
60 | #define NFULA_MAX (__NFULA_MAX - 1) | |
61 | ||
62 | enum nfulnl_msg_config_cmds { | |
63 | NFULNL_CFG_CMD_NONE, | |
64 | NFULNL_CFG_CMD_BIND, | |
65 | NFULNL_CFG_CMD_UNBIND, | |
66 | NFULNL_CFG_CMD_PF_BIND, | |
67 | NFULNL_CFG_CMD_PF_UNBIND, | |
68 | }; | |
69 | ||
70 | struct nfulnl_msg_config_cmd { | |
60c195c7 | 71 | __u8 command; /* nfulnl_msg_config_cmds */ |
0597f268 HW |
72 | } __attribute__ ((packed)); |
73 | ||
74 | struct nfulnl_msg_config_mode { | |
98a4a861 | 75 | __be32 copy_range; |
60c195c7 AB |
76 | __u8 copy_mode; |
77 | __u8 _pad; | |
0597f268 HW |
78 | } __attribute__ ((packed)); |
79 | ||
80 | enum nfulnl_attr_config { | |
81 | NFULA_CFG_UNSPEC, | |
82 | NFULA_CFG_CMD, /* nfulnl_msg_config_cmd */ | |
83 | NFULA_CFG_MODE, /* nfulnl_msg_config_mode */ | |
60c195c7 AB |
84 | NFULA_CFG_NLBUFSIZ, /* __u32 buffer size */ |
85 | NFULA_CFG_TIMEOUT, /* __u32 in 1/100 s */ | |
86 | NFULA_CFG_QTHRESH, /* __u32 */ | |
87 | NFULA_CFG_FLAGS, /* __u16 */ | |
0597f268 HW |
88 | __NFULA_CFG_MAX |
89 | }; | |
90 | #define NFULA_CFG_MAX (__NFULA_CFG_MAX -1) | |
91 | ||
92 | #define NFULNL_COPY_NONE 0x00 | |
93 | #define NFULNL_COPY_META 0x01 | |
94 | #define NFULNL_COPY_PACKET 0x02 | |
cca5cf91 | 95 | /* 0xff is reserved, don't use it for new copy modes. */ |
0597f268 | 96 | |
0af5f6c1 HW |
97 | #define NFULNL_CFG_F_SEQ 0x0001 |
98 | #define NFULNL_CFG_F_SEQ_GLOBAL 0x0002 | |
a29a9a58 | 99 | #define NFULNL_CFG_F_CONNTRACK 0x0004 |
0af5f6c1 | 100 | |
0597f268 | 101 | #endif /* _NFNETLINK_LOG_H */ |