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