1#ifndef _IPCONNTRACK_NETLINK_H
2#define _IPCONNTRACK_NETLINK_H
3#include <linux/netfilter/nfnetlink.h>
4
5enum cntl_msg_types {
6 IPCTNL_MSG_CT_NEW,
7 IPCTNL_MSG_CT_GET,
8 IPCTNL_MSG_CT_DELETE,
9 IPCTNL_MSG_CT_GET_CTRZERO,
10 IPCTNL_MSG_CT_GET_STATS_CPU,
11 IPCTNL_MSG_CT_GET_STATS,
12 IPCTNL_MSG_CT_GET_DYING,
13 IPCTNL_MSG_CT_GET_UNCONFIRMED,
14
15 IPCTNL_MSG_MAX
16};
17
18enum ctnl_exp_msg_types {
19 IPCTNL_MSG_EXP_NEW,
20 IPCTNL_MSG_EXP_GET,
21 IPCTNL_MSG_EXP_DELETE,
22 IPCTNL_MSG_EXP_GET_STATS_CPU,
23
24 IPCTNL_MSG_EXP_MAX
25};
26
27
28enum ctattr_type {
29 CTA_UNSPEC,
30 CTA_TUPLE_ORIG,
31 CTA_TUPLE_REPLY,
32 CTA_STATUS,
33 CTA_PROTOINFO,
34 CTA_HELP,
35 CTA_NAT_SRC,
36#define CTA_NAT CTA_NAT_SRC
37 CTA_TIMEOUT,
38 CTA_MARK,
39 CTA_COUNTERS_ORIG,
40 CTA_COUNTERS_REPLY,
41 CTA_USE,
42 CTA_ID,
43 CTA_NAT_DST,
44 CTA_TUPLE_MASTER,
45 CTA_NAT_SEQ_ADJ_ORIG,
46 CTA_NAT_SEQ_ADJ_REPLY,
47 CTA_SECMARK,
48 CTA_ZONE,
49 CTA_SECCTX,
50 CTA_TIMESTAMP,
51 CTA_MARK_MASK,
52 CTA_LABELS,
53 CTA_LABELS_MASK,
54 __CTA_MAX
55};
56#define CTA_MAX (__CTA_MAX - 1)
57
58enum ctattr_tuple {
59 CTA_TUPLE_UNSPEC,
60 CTA_TUPLE_IP,
61 CTA_TUPLE_PROTO,
62 __CTA_TUPLE_MAX
63};
64#define CTA_TUPLE_MAX (__CTA_TUPLE_MAX - 1)
65
66enum ctattr_ip {
67 CTA_IP_UNSPEC,
68 CTA_IP_V4_SRC,
69 CTA_IP_V4_DST,
70 CTA_IP_V6_SRC,
71 CTA_IP_V6_DST,
72 __CTA_IP_MAX
73};
74#define CTA_IP_MAX (__CTA_IP_MAX - 1)
75
76enum ctattr_l4proto {
77 CTA_PROTO_UNSPEC,
78 CTA_PROTO_NUM,
79 CTA_PROTO_SRC_PORT,
80 CTA_PROTO_DST_PORT,
81 CTA_PROTO_ICMP_ID,
82 CTA_PROTO_ICMP_TYPE,
83 CTA_PROTO_ICMP_CODE,
84 CTA_PROTO_ICMPV6_ID,
85 CTA_PROTO_ICMPV6_TYPE,
86 CTA_PROTO_ICMPV6_CODE,
87 __CTA_PROTO_MAX
88};
89#define CTA_PROTO_MAX (__CTA_PROTO_MAX - 1)
90
91enum ctattr_protoinfo {
92 CTA_PROTOINFO_UNSPEC,
93 CTA_PROTOINFO_TCP,
94 CTA_PROTOINFO_DCCP,
95 CTA_PROTOINFO_SCTP,
96 __CTA_PROTOINFO_MAX
97};
98#define CTA_PROTOINFO_MAX (__CTA_PROTOINFO_MAX - 1)
99
100enum ctattr_protoinfo_tcp {
101 CTA_PROTOINFO_TCP_UNSPEC,
102 CTA_PROTOINFO_TCP_STATE,
103 CTA_PROTOINFO_TCP_WSCALE_ORIGINAL,
104 CTA_PROTOINFO_TCP_WSCALE_REPLY,
105 CTA_PROTOINFO_TCP_FLAGS_ORIGINAL,
106 CTA_PROTOINFO_TCP_FLAGS_REPLY,
107 __CTA_PROTOINFO_TCP_MAX
108};
109#define CTA_PROTOINFO_TCP_MAX (__CTA_PROTOINFO_TCP_MAX - 1)
110
111enum ctattr_protoinfo_dccp {
112 CTA_PROTOINFO_DCCP_UNSPEC,
113 CTA_PROTOINFO_DCCP_STATE,
114 CTA_PROTOINFO_DCCP_ROLE,
115 CTA_PROTOINFO_DCCP_HANDSHAKE_SEQ,
116 __CTA_PROTOINFO_DCCP_MAX,
117};
118#define CTA_PROTOINFO_DCCP_MAX (__CTA_PROTOINFO_DCCP_MAX - 1)
119
120enum ctattr_protoinfo_sctp {
121 CTA_PROTOINFO_SCTP_UNSPEC,
122 CTA_PROTOINFO_SCTP_STATE,
123 CTA_PROTOINFO_SCTP_VTAG_ORIGINAL,
124 CTA_PROTOINFO_SCTP_VTAG_REPLY,
125 __CTA_PROTOINFO_SCTP_MAX
126};
127#define CTA_PROTOINFO_SCTP_MAX (__CTA_PROTOINFO_SCTP_MAX - 1)
128
129enum ctattr_counters {
130 CTA_COUNTERS_UNSPEC,
131 CTA_COUNTERS_PACKETS,
132 CTA_COUNTERS_BYTES,
133 CTA_COUNTERS32_PACKETS,
134 CTA_COUNTERS32_BYTES,
135 __CTA_COUNTERS_MAX
136};
137#define CTA_COUNTERS_MAX (__CTA_COUNTERS_MAX - 1)
138
139enum ctattr_tstamp {
140 CTA_TIMESTAMP_UNSPEC,
141 CTA_TIMESTAMP_START,
142 CTA_TIMESTAMP_STOP,
143 __CTA_TIMESTAMP_MAX
144};
145#define CTA_TIMESTAMP_MAX (__CTA_TIMESTAMP_MAX - 1)
146
147enum ctattr_nat {
148 CTA_NAT_UNSPEC,
149 CTA_NAT_V4_MINIP,
150#define CTA_NAT_MINIP CTA_NAT_V4_MINIP
151 CTA_NAT_V4_MAXIP,
152#define CTA_NAT_MAXIP CTA_NAT_V4_MAXIP
153 CTA_NAT_PROTO,
154 CTA_NAT_V6_MINIP,
155 CTA_NAT_V6_MAXIP,
156 __CTA_NAT_MAX
157};
158#define CTA_NAT_MAX (__CTA_NAT_MAX - 1)
159
160enum ctattr_protonat {
161 CTA_PROTONAT_UNSPEC,
162 CTA_PROTONAT_PORT_MIN,
163 CTA_PROTONAT_PORT_MAX,
164 __CTA_PROTONAT_MAX
165};
166#define CTA_PROTONAT_MAX (__CTA_PROTONAT_MAX - 1)
167
168enum ctattr_natseq {
169 CTA_NAT_SEQ_UNSPEC,
170 CTA_NAT_SEQ_CORRECTION_POS,
171 CTA_NAT_SEQ_OFFSET_BEFORE,
172 CTA_NAT_SEQ_OFFSET_AFTER,
173 __CTA_NAT_SEQ_MAX
174};
175#define CTA_NAT_SEQ_MAX (__CTA_NAT_SEQ_MAX - 1)
176
177enum ctattr_expect {
178 CTA_EXPECT_UNSPEC,
179 CTA_EXPECT_MASTER,
180 CTA_EXPECT_TUPLE,
181 CTA_EXPECT_MASK,
182 CTA_EXPECT_TIMEOUT,
183 CTA_EXPECT_ID,
184 CTA_EXPECT_HELP_NAME,
185 CTA_EXPECT_ZONE,
186 CTA_EXPECT_FLAGS,
187 CTA_EXPECT_CLASS,
188 CTA_EXPECT_NAT,
189 CTA_EXPECT_FN,
190 __CTA_EXPECT_MAX
191};
192#define CTA_EXPECT_MAX (__CTA_EXPECT_MAX - 1)
193
194enum ctattr_expect_nat {
195 CTA_EXPECT_NAT_UNSPEC,
196 CTA_EXPECT_NAT_DIR,
197 CTA_EXPECT_NAT_TUPLE,
198 __CTA_EXPECT_NAT_MAX
199};
200#define CTA_EXPECT_NAT_MAX (__CTA_EXPECT_NAT_MAX - 1)
201
202enum ctattr_help {
203 CTA_HELP_UNSPEC,
204 CTA_HELP_NAME,
205 CTA_HELP_INFO,
206 __CTA_HELP_MAX
207};
208#define CTA_HELP_MAX (__CTA_HELP_MAX - 1)
209
210enum ctattr_secctx {
211 CTA_SECCTX_UNSPEC,
212 CTA_SECCTX_NAME,
213 __CTA_SECCTX_MAX
214};
215#define CTA_SECCTX_MAX (__CTA_SECCTX_MAX - 1)
216
217enum ctattr_stats_cpu {
218 CTA_STATS_UNSPEC,
219 CTA_STATS_SEARCHED,
220 CTA_STATS_FOUND,
221 CTA_STATS_NEW,
222 CTA_STATS_INVALID,
223 CTA_STATS_IGNORE,
224 CTA_STATS_DELETE,
225 CTA_STATS_DELETE_LIST,
226 CTA_STATS_INSERT,
227 CTA_STATS_INSERT_FAILED,
228 CTA_STATS_DROP,
229 CTA_STATS_EARLY_DROP,
230 CTA_STATS_ERROR,
231 CTA_STATS_SEARCH_RESTART,
232 __CTA_STATS_MAX,
233};
234#define CTA_STATS_MAX (__CTA_STATS_MAX - 1)
235
236enum ctattr_stats_global {
237 CTA_STATS_GLOBAL_UNSPEC,
238 CTA_STATS_GLOBAL_ENTRIES,
239 __CTA_STATS_GLOBAL_MAX,
240};
241#define CTA_STATS_GLOBAL_MAX (__CTA_STATS_GLOBAL_MAX - 1)
242
243enum ctattr_expect_stats {
244 CTA_STATS_EXP_UNSPEC,
245 CTA_STATS_EXP_NEW,
246 CTA_STATS_EXP_CREATE,
247 CTA_STATS_EXP_DELETE,
248 __CTA_STATS_EXP_MAX,
249};
250#define CTA_STATS_EXP_MAX (__CTA_STATS_EXP_MAX - 1)
251
252#endif
253