File: /usr/src/linux/net/ipv4/netfilter/ip_conntrack_proto_generic.c
1 #include <linux/types.h>
2 #include <linux/sched.h>
3 #include <linux/timer.h>
4 #include <linux/netfilter.h>
5 #include <linux/netfilter_ipv4/ip_conntrack_protocol.h>
6
7 #define GENERIC_TIMEOUT (600*HZ)
8
9 static int generic_pkt_to_tuple(const void *datah, size_t datalen,
10 struct ip_conntrack_tuple *tuple)
11 {
12 tuple->src.u.all = 0;
13 tuple->dst.u.all = 0;
14
15 return 1;
16 }
17
18 static int generic_invert_tuple(struct ip_conntrack_tuple *tuple,
19 const struct ip_conntrack_tuple *orig)
20 {
21 tuple->src.u.all = 0;
22 tuple->dst.u.all = 0;
23
24 return 1;
25 }
26
27 /* Print out the per-protocol part of the tuple. */
28 static unsigned int generic_print_tuple(char *buffer,
29 const struct ip_conntrack_tuple *tuple)
30 {
31 return 0;
32 }
33
34 /* Print out the private part of the conntrack. */
35 static unsigned int generic_print_conntrack(char *buffer,
36 const struct ip_conntrack *state)
37 {
38 return 0;
39 }
40
41 /* Returns verdict for packet, or -1 for invalid. */
42 static int established(struct ip_conntrack *conntrack,
43 struct iphdr *iph, size_t len,
44 enum ip_conntrack_info conntrackinfo)
45 {
46 ip_ct_refresh(conntrack, GENERIC_TIMEOUT);
47 return NF_ACCEPT;
48 }
49
50 /* Called when a new connection for this protocol found. */
51 static int
52 new(struct ip_conntrack *conntrack, struct iphdr *iph, size_t len)
53 {
54 return 1;
55 }
56
57 struct ip_conntrack_protocol ip_conntrack_generic_protocol
58 = { { NULL, NULL }, 0, "unknown",
59 generic_pkt_to_tuple, generic_invert_tuple, generic_print_tuple,
60 generic_print_conntrack, established, new, NULL };
61
62