diff options
Diffstat (limited to 'net/ipv4/inet_fragment.c')
-rw-r--r-- | net/ipv4/inet_fragment.c | 44 |
1 files changed, 44 insertions, 0 deletions
diff --git a/net/ipv4/inet_fragment.c b/net/ipv4/inet_fragment.c new file mode 100644 index 000000000000..69623ff4e4c6 --- /dev/null +++ b/net/ipv4/inet_fragment.c | |||
@@ -0,0 +1,44 @@ | |||
1 | /* | ||
2 | * inet fragments management | ||
3 | * | ||
4 | * This program is free software; you can redistribute it and/or | ||
5 | * modify it under the terms of the GNU General Public License | ||
6 | * as published by the Free Software Foundation; either version | ||
7 | * 2 of the License, or (at your option) any later version. | ||
8 | * | ||
9 | * Authors: Pavel Emelyanov <xemul@openvz.org> | ||
10 | * Started as consolidation of ipv4/ip_fragment.c, | ||
11 | * ipv6/reassembly. and ipv6 nf conntrack reassembly | ||
12 | */ | ||
13 | |||
14 | #include <linux/list.h> | ||
15 | #include <linux/spinlock.h> | ||
16 | #include <linux/module.h> | ||
17 | #include <linux/timer.h> | ||
18 | #include <linux/mm.h> | ||
19 | |||
20 | #include <net/inet_frag.h> | ||
21 | |||
22 | void inet_frags_init(struct inet_frags *f) | ||
23 | { | ||
24 | int i; | ||
25 | |||
26 | for (i = 0; i < INETFRAGS_HASHSZ; i++) | ||
27 | INIT_HLIST_HEAD(&f->hash[i]); | ||
28 | |||
29 | INIT_LIST_HEAD(&f->lru_list); | ||
30 | rwlock_init(&f->lock); | ||
31 | |||
32 | f->rnd = (u32) ((num_physpages ^ (num_physpages>>7)) ^ | ||
33 | (jiffies ^ (jiffies >> 6))); | ||
34 | |||
35 | f->nqueues = 0; | ||
36 | atomic_set(&f->mem, 0); | ||
37 | |||
38 | } | ||
39 | EXPORT_SYMBOL(inet_frags_init); | ||
40 | |||
41 | void inet_frags_fini(struct inet_frags *f) | ||
42 | { | ||
43 | } | ||
44 | EXPORT_SYMBOL(inet_frags_fini); | ||