ftp://ftp.kernel.org/pub/linux/kernel/v2.6/linux-2.6.6.tar.bz2
[linux-2.6.git] / include / linux / netfilter_ipv4 / ipt_conntrack.h
1 /* Header file for kernel module to match connection tracking information.
2  * GPL (C) 2001  Marc Boucher (marc@mbsi.ca).
3  */
4
5 #ifndef _IPT_CONNTRACK_H
6 #define _IPT_CONNTRACK_H
7
8 #define IPT_CONNTRACK_STATE_BIT(ctinfo) (1 << ((ctinfo)%IP_CT_IS_REPLY+1))
9 #define IPT_CONNTRACK_STATE_INVALID (1 << 0)
10
11 #define IPT_CONNTRACK_STATE_SNAT (1 << (IP_CT_NUMBER + 1))
12 #define IPT_CONNTRACK_STATE_DNAT (1 << (IP_CT_NUMBER + 2))
13 #define IPT_CONNTRACK_STATE_UNTRACKED (1 << (IP_CT_NUMBER + 3))
14
15 /* flags, invflags: */
16 #define IPT_CONNTRACK_STATE     0x01
17 #define IPT_CONNTRACK_PROTO     0x02
18 #define IPT_CONNTRACK_ORIGSRC   0x04
19 #define IPT_CONNTRACK_ORIGDST   0x08
20 #define IPT_CONNTRACK_REPLSRC   0x10
21 #define IPT_CONNTRACK_REPLDST   0x20
22 #define IPT_CONNTRACK_STATUS    0x40
23 #define IPT_CONNTRACK_EXPIRES   0x80
24
25 struct ipt_conntrack_info
26 {
27         unsigned int statemask, statusmask;
28
29         struct ip_conntrack_tuple tuple[IP_CT_DIR_MAX];
30         struct in_addr sipmsk[IP_CT_DIR_MAX], dipmsk[IP_CT_DIR_MAX];
31
32         unsigned long expires_min, expires_max;
33
34         /* Flags word */
35         u_int8_t flags;
36         /* Inverse flags */
37         u_int8_t invflags;
38 };
39 #endif /*_IPT_CONNTRACK_H*/