blob: 6deb8867c5fc000f357b959065076fdbf5082486 [file] [log] [blame]
Harald Welte080774a2005-08-09 19:32:58 -07001#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,
Pablo Neira Ayuso392025f2012-06-26 20:27:09 +020010 IPCTNL_MSG_CT_GET_STATS_CPU,
11 IPCTNL_MSG_CT_GET_STATS,
Pablo Neira Ayusod871bef2012-11-27 14:49:42 +010012 IPCTNL_MSG_CT_GET_DYING,
13 IPCTNL_MSG_CT_GET_UNCONFIRMED,
Harald Welte080774a2005-08-09 19:32:58 -070014
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,
Pablo Neira Ayuso392025f2012-06-26 20:27:09 +020022 IPCTNL_MSG_EXP_GET_STATS_CPU,
Harald Welte080774a2005-08-09 19:32:58 -070023
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,
Patrick McHardy3726add2006-05-29 18:24:39 -070035 CTA_NAT_SRC,
36#define CTA_NAT CTA_NAT_SRC /* backwards compatibility */
Harald Welte080774a2005-08-09 19:32:58 -070037 CTA_TIMEOUT,
38 CTA_MARK,
39 CTA_COUNTERS_ORIG,
40 CTA_COUNTERS_REPLY,
41 CTA_USE,
Harald Welte080774a2005-08-09 19:32:58 -070042 CTA_ID,
Patrick McHardy3726add2006-05-29 18:24:39 -070043 CTA_NAT_DST,
Pablo Neira Ayuso5faa1f42007-09-28 14:43:53 -070044 CTA_TUPLE_MASTER,
Patrick McHardy41d73ec2013-08-27 08:50:12 +020045 CTA_SEQ_ADJ_ORIG,
46 CTA_NAT_SEQ_ADJ_ORIG = CTA_SEQ_ADJ_ORIG,
47 CTA_SEQ_ADJ_REPLY,
48 CTA_NAT_SEQ_ADJ_REPLY = CTA_SEQ_ADJ_REPLY,
Eric Paris1cc63242010-10-13 16:24:54 -040049 CTA_SECMARK, /* obsolete */
Patrick McHardyef00f892010-02-15 18:14:57 +010050 CTA_ZONE,
Eric Paris1cc63242010-10-13 16:24:54 -040051 CTA_SECCTX,
Pablo Neira Ayusoa992ca22011-01-19 16:00:07 +010052 CTA_TIMESTAMP,
Pablo Neira Ayuso0f298a22012-02-24 14:41:50 +000053 CTA_MARK_MASK,
Florian Westphal0ceabd82013-01-11 06:30:45 +000054 CTA_LABELS,
Florian Westphal9b21f6a2013-01-11 06:30:46 +000055 CTA_LABELS_MASK,
Harald Welte080774a2005-08-09 19:32:58 -070056 __CTA_MAX
57};
58#define CTA_MAX (__CTA_MAX - 1)
59
60enum ctattr_tuple {
61 CTA_TUPLE_UNSPEC,
62 CTA_TUPLE_IP,
63 CTA_TUPLE_PROTO,
Daniel Borkmanndeedb592015-08-14 16:03:39 +020064 CTA_TUPLE_ZONE,
Harald Welte080774a2005-08-09 19:32:58 -070065 __CTA_TUPLE_MAX
66};
67#define CTA_TUPLE_MAX (__CTA_TUPLE_MAX - 1)
68
69enum ctattr_ip {
70 CTA_IP_UNSPEC,
71 CTA_IP_V4_SRC,
72 CTA_IP_V4_DST,
73 CTA_IP_V6_SRC,
74 CTA_IP_V6_DST,
75 __CTA_IP_MAX
76};
77#define CTA_IP_MAX (__CTA_IP_MAX - 1)
78
79enum ctattr_l4proto {
80 CTA_PROTO_UNSPEC,
81 CTA_PROTO_NUM,
82 CTA_PROTO_SRC_PORT,
83 CTA_PROTO_DST_PORT,
84 CTA_PROTO_ICMP_ID,
85 CTA_PROTO_ICMP_TYPE,
86 CTA_PROTO_ICMP_CODE,
Pablo Neira Ayusoc1d10ad2006-01-05 12:19:05 -080087 CTA_PROTO_ICMPV6_ID,
88 CTA_PROTO_ICMPV6_TYPE,
89 CTA_PROTO_ICMPV6_CODE,
Harald Welte080774a2005-08-09 19:32:58 -070090 __CTA_PROTO_MAX
91};
92#define CTA_PROTO_MAX (__CTA_PROTO_MAX - 1)
93
94enum ctattr_protoinfo {
95 CTA_PROTOINFO_UNSPEC,
Pablo Neira Ayusoe1c73b72005-10-10 20:55:49 -070096 CTA_PROTOINFO_TCP,
Patrick McHardy2bc78042008-03-20 15:15:55 +010097 CTA_PROTOINFO_DCCP,
Pablo Neira Ayusoa2588602008-06-09 15:56:39 -070098 CTA_PROTOINFO_SCTP,
Harald Welte080774a2005-08-09 19:32:58 -070099 __CTA_PROTOINFO_MAX
100};
101#define CTA_PROTOINFO_MAX (__CTA_PROTOINFO_MAX - 1)
102
Pablo Neira Ayusoe1c73b72005-10-10 20:55:49 -0700103enum ctattr_protoinfo_tcp {
104 CTA_PROTOINFO_TCP_UNSPEC,
105 CTA_PROTOINFO_TCP_STATE,
Pablo Neira Ayusoc8e20782007-03-14 16:45:19 -0700106 CTA_PROTOINFO_TCP_WSCALE_ORIGINAL,
107 CTA_PROTOINFO_TCP_WSCALE_REPLY,
108 CTA_PROTOINFO_TCP_FLAGS_ORIGINAL,
109 CTA_PROTOINFO_TCP_FLAGS_REPLY,
Pablo Neira Ayusoe1c73b72005-10-10 20:55:49 -0700110 __CTA_PROTOINFO_TCP_MAX
111};
112#define CTA_PROTOINFO_TCP_MAX (__CTA_PROTOINFO_TCP_MAX - 1)
113
Patrick McHardy2bc78042008-03-20 15:15:55 +0100114enum ctattr_protoinfo_dccp {
115 CTA_PROTOINFO_DCCP_UNSPEC,
116 CTA_PROTOINFO_DCCP_STATE,
Pablo Neira Ayuso71951b62009-04-24 16:58:41 +0200117 CTA_PROTOINFO_DCCP_ROLE,
Pablo Neira Ayusoa17c8592009-05-27 17:50:35 +0200118 CTA_PROTOINFO_DCCP_HANDSHAKE_SEQ,
Nicolas Dichtelb46f6de2016-04-22 17:31:18 +0200119 CTA_PROTOINFO_DCCP_PAD,
Patrick McHardy2bc78042008-03-20 15:15:55 +0100120 __CTA_PROTOINFO_DCCP_MAX,
121};
122#define CTA_PROTOINFO_DCCP_MAX (__CTA_PROTOINFO_DCCP_MAX - 1)
123
Pablo Neira Ayusoa2588602008-06-09 15:56:39 -0700124enum ctattr_protoinfo_sctp {
125 CTA_PROTOINFO_SCTP_UNSPEC,
126 CTA_PROTOINFO_SCTP_STATE,
127 CTA_PROTOINFO_SCTP_VTAG_ORIGINAL,
128 CTA_PROTOINFO_SCTP_VTAG_REPLY,
129 __CTA_PROTOINFO_SCTP_MAX
130};
131#define CTA_PROTOINFO_SCTP_MAX (__CTA_PROTOINFO_SCTP_MAX - 1)
132
Harald Welte080774a2005-08-09 19:32:58 -0700133enum ctattr_counters {
134 CTA_COUNTERS_UNSPEC,
Krzysztof Piotr Oledzki58401572008-07-21 10:01:34 -0700135 CTA_COUNTERS_PACKETS, /* 64bit counters */
136 CTA_COUNTERS_BYTES, /* 64bit counters */
137 CTA_COUNTERS32_PACKETS, /* old 32bit counters, unused */
138 CTA_COUNTERS32_BYTES, /* old 32bit counters, unused */
Nicolas Dichtelb46f6de2016-04-22 17:31:18 +0200139 CTA_COUNTERS_PAD,
Harald Welte080774a2005-08-09 19:32:58 -0700140 __CTA_COUNTERS_MAX
141};
142#define CTA_COUNTERS_MAX (__CTA_COUNTERS_MAX - 1)
143
Pablo Neira Ayusoa992ca22011-01-19 16:00:07 +0100144enum ctattr_tstamp {
145 CTA_TIMESTAMP_UNSPEC,
146 CTA_TIMESTAMP_START,
147 CTA_TIMESTAMP_STOP,
Nicolas Dichtelb46f6de2016-04-22 17:31:18 +0200148 CTA_TIMESTAMP_PAD,
Pablo Neira Ayusoa992ca22011-01-19 16:00:07 +0100149 __CTA_TIMESTAMP_MAX
150};
151#define CTA_TIMESTAMP_MAX (__CTA_TIMESTAMP_MAX - 1)
152
Harald Welte080774a2005-08-09 19:32:58 -0700153enum ctattr_nat {
154 CTA_NAT_UNSPEC,
Patrick McHardyc7232c92012-08-26 19:14:06 +0200155 CTA_NAT_V4_MINIP,
156#define CTA_NAT_MINIP CTA_NAT_V4_MINIP
157 CTA_NAT_V4_MAXIP,
158#define CTA_NAT_MAXIP CTA_NAT_V4_MAXIP
Harald Welte080774a2005-08-09 19:32:58 -0700159 CTA_NAT_PROTO,
Patrick McHardy58a317f2012-08-26 19:14:12 +0200160 CTA_NAT_V6_MINIP,
161 CTA_NAT_V6_MAXIP,
Harald Welte080774a2005-08-09 19:32:58 -0700162 __CTA_NAT_MAX
163};
164#define CTA_NAT_MAX (__CTA_NAT_MAX - 1)
165
166enum ctattr_protonat {
167 CTA_PROTONAT_UNSPEC,
168 CTA_PROTONAT_PORT_MIN,
169 CTA_PROTONAT_PORT_MAX,
170 __CTA_PROTONAT_MAX
171};
172#define CTA_PROTONAT_MAX (__CTA_PROTONAT_MAX - 1)
173
Patrick McHardy41d73ec2013-08-27 08:50:12 +0200174enum ctattr_seqadj {
175 CTA_SEQADJ_UNSPEC,
176 CTA_SEQADJ_CORRECTION_POS,
177 CTA_SEQADJ_OFFSET_BEFORE,
178 CTA_SEQADJ_OFFSET_AFTER,
179 __CTA_SEQADJ_MAX
180};
181#define CTA_SEQADJ_MAX (__CTA_SEQADJ_MAX - 1)
182
Pablo Neira Ayuso13eae152007-12-17 22:28:00 -0800183enum ctattr_natseq {
Pablo Neira Ayuso092cab72008-12-16 01:19:41 -0800184 CTA_NAT_SEQ_UNSPEC,
Pablo Neira Ayuso13eae152007-12-17 22:28:00 -0800185 CTA_NAT_SEQ_CORRECTION_POS,
186 CTA_NAT_SEQ_OFFSET_BEFORE,
187 CTA_NAT_SEQ_OFFSET_AFTER,
188 __CTA_NAT_SEQ_MAX
189};
190#define CTA_NAT_SEQ_MAX (__CTA_NAT_SEQ_MAX - 1)
191
Harald Welte080774a2005-08-09 19:32:58 -0700192enum ctattr_expect {
193 CTA_EXPECT_UNSPEC,
Harald Welte1444fc52005-08-09 20:04:07 -0700194 CTA_EXPECT_MASTER,
Harald Welte080774a2005-08-09 19:32:58 -0700195 CTA_EXPECT_TUPLE,
196 CTA_EXPECT_MASK,
197 CTA_EXPECT_TIMEOUT,
198 CTA_EXPECT_ID,
Harald Welte1444fc52005-08-09 20:04:07 -0700199 CTA_EXPECT_HELP_NAME,
Patrick McHardyef00f892010-02-15 18:14:57 +0100200 CTA_EXPECT_ZONE,
Pablo Neira Ayuso8b008fa2010-09-22 08:36:59 +0200201 CTA_EXPECT_FLAGS,
Pablo Neira Ayusob8c5e522012-02-05 03:21:12 +0100202 CTA_EXPECT_CLASS,
Pablo Neira Ayuso076a0ca2012-02-05 03:41:52 +0100203 CTA_EXPECT_NAT,
Pablo Neira Ayuso544d5c72012-02-05 03:44:51 +0100204 CTA_EXPECT_FN,
Harald Welte080774a2005-08-09 19:32:58 -0700205 __CTA_EXPECT_MAX
206};
207#define CTA_EXPECT_MAX (__CTA_EXPECT_MAX - 1)
208
Pablo Neira Ayuso076a0ca2012-02-05 03:41:52 +0100209enum ctattr_expect_nat {
210 CTA_EXPECT_NAT_UNSPEC,
211 CTA_EXPECT_NAT_DIR,
212 CTA_EXPECT_NAT_TUPLE,
213 __CTA_EXPECT_NAT_MAX
214};
215#define CTA_EXPECT_NAT_MAX (__CTA_EXPECT_NAT_MAX - 1)
216
Harald Welte080774a2005-08-09 19:32:58 -0700217enum ctattr_help {
218 CTA_HELP_UNSPEC,
219 CTA_HELP_NAME,
Pablo Neira Ayusoae243be2012-06-07 14:19:42 +0200220 CTA_HELP_INFO,
Harald Welte080774a2005-08-09 19:32:58 -0700221 __CTA_HELP_MAX
222};
223#define CTA_HELP_MAX (__CTA_HELP_MAX - 1)
224
Eric Paris1cc63242010-10-13 16:24:54 -0400225enum ctattr_secctx {
226 CTA_SECCTX_UNSPEC,
227 CTA_SECCTX_NAME,
228 __CTA_SECCTX_MAX
229};
230#define CTA_SECCTX_MAX (__CTA_SECCTX_MAX - 1)
231
Pablo Neira Ayuso392025f2012-06-26 20:27:09 +0200232enum ctattr_stats_cpu {
233 CTA_STATS_UNSPEC,
Florian Westphal8e8118f2016-09-11 22:55:53 +0200234 CTA_STATS_SEARCHED, /* no longer used */
Pablo Neira Ayuso392025f2012-06-26 20:27:09 +0200235 CTA_STATS_FOUND,
Florian Westphal8e8118f2016-09-11 22:55:53 +0200236 CTA_STATS_NEW, /* no longer used */
Pablo Neira Ayuso392025f2012-06-26 20:27:09 +0200237 CTA_STATS_INVALID,
238 CTA_STATS_IGNORE,
Florian Westphal8e8118f2016-09-11 22:55:53 +0200239 CTA_STATS_DELETE, /* no longer used */
240 CTA_STATS_DELETE_LIST, /* no longer used */
Pablo Neira Ayuso392025f2012-06-26 20:27:09 +0200241 CTA_STATS_INSERT,
242 CTA_STATS_INSERT_FAILED,
243 CTA_STATS_DROP,
244 CTA_STATS_EARLY_DROP,
245 CTA_STATS_ERROR,
246 CTA_STATS_SEARCH_RESTART,
247 __CTA_STATS_MAX,
248};
249#define CTA_STATS_MAX (__CTA_STATS_MAX - 1)
250
251enum ctattr_stats_global {
252 CTA_STATS_GLOBAL_UNSPEC,
253 CTA_STATS_GLOBAL_ENTRIES,
254 __CTA_STATS_GLOBAL_MAX,
255};
256#define CTA_STATS_GLOBAL_MAX (__CTA_STATS_GLOBAL_MAX - 1)
257
258enum ctattr_expect_stats {
259 CTA_STATS_EXP_UNSPEC,
260 CTA_STATS_EXP_NEW,
261 CTA_STATS_EXP_CREATE,
262 CTA_STATS_EXP_DELETE,
263 __CTA_STATS_EXP_MAX,
264};
265#define CTA_STATS_EXP_MAX (__CTA_STATS_EXP_MAX - 1)
266
Harald Welte080774a2005-08-09 19:32:58 -0700267#endif /* _IPCONNTRACK_NETLINK_H */