Linux-2.6.12-rc2
[linux-2.6/linux-acpi-2.6/ibm-acpi-2.6.git] / include / linux / netfilter_ipv4 / ipt_conntrack.h
blob413c5658bd3adc7b2041107abc53b4b9f1ad48b6
1 /* Header file for kernel module to match connection tracking information.
2 * GPL (C) 2001 Marc Boucher (marc@mbsi.ca).
3 */
5 #ifndef _IPT_CONNTRACK_H
6 #define _IPT_CONNTRACK_H
8 #define IPT_CONNTRACK_STATE_BIT(ctinfo) (1 << ((ctinfo)%IP_CT_IS_REPLY+1))
9 #define IPT_CONNTRACK_STATE_INVALID (1 << 0)
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))
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
25 /* This is exposed to userspace, so remains frozen in time. */
26 struct ip_conntrack_old_tuple
28 struct {
29 __u32 ip;
30 union {
31 __u16 all;
32 } u;
33 } src;
35 struct {
36 __u32 ip;
37 union {
38 __u16 all;
39 } u;
41 /* The protocol. */
42 u16 protonum;
43 } dst;
46 struct ipt_conntrack_info
48 unsigned int statemask, statusmask;
50 struct ip_conntrack_old_tuple tuple[IP_CT_DIR_MAX];
51 struct in_addr sipmsk[IP_CT_DIR_MAX], dipmsk[IP_CT_DIR_MAX];
53 unsigned long expires_min, expires_max;
55 /* Flags word */
56 u_int8_t flags;
57 /* Inverse flags */
58 u_int8_t invflags;
60 #endif /*_IPT_CONNTRACK_H*/