blob: d1366f05d1b26076945e0a2cc791c6d0909347ad [file] [log] [blame]
Jan Engelhardt370786f2007-07-14 20:47:26 -07001#ifndef _XT_CONNLIMIT_H
2#define _XT_CONNLIMIT_H
3
Jan Engelhardt06988b02011-01-20 17:50:17 +01004#include <linux/types.h>
Ben Hutchings5740bb52011-08-24 18:45:42 +00005#include <linux/netfilter.h>
Jan Engelhardt06988b02011-01-20 17:50:17 +01006
Jan Engelhardt370786f2007-07-14 20:47:26 -07007struct xt_connlimit_data;
8
Jan Engelhardtcc4fc022011-01-18 17:32:40 +01009enum {
10 XT_CONNLIMIT_INVERT = 1 << 0,
11 XT_CONNLIMIT_DADDR = 1 << 1,
12};
13
Jan Engelhardt370786f2007-07-14 20:47:26 -070014struct xt_connlimit_info {
15 union {
Jan Engelhardt22c2d8b2007-12-17 22:44:47 -080016 union nf_inet_addr mask;
17#ifndef __KERNEL__
18 union {
19 __be32 v4_mask;
20 __be32 v6_mask[4];
21 };
22#endif
Jan Engelhardt370786f2007-07-14 20:47:26 -070023 };
Jan Engelhardtba12b132011-01-20 14:01:12 +010024 unsigned int limit;
Jan Engelhardtcc4fc022011-01-18 17:32:40 +010025 union {
26 /* revision 0 */
27 unsigned int inverse;
28
29 /* revision 1 */
30 __u32 flags;
31 };
Jan Engelhardt370786f2007-07-14 20:47:26 -070032
Jan Engelhardt8b6f3f62008-01-14 23:33:14 -080033 /* Used internally by the kernel */
Jan Engelhardt370786f2007-07-14 20:47:26 -070034 struct xt_connlimit_data *data __attribute__((aligned(8)));
35};
36
37#endif /* _XT_CONNLIMIT_H */