2 * inet fragments management
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.
9 * Authors: Pavel Emelyanov <xemul@openvz.org>
10 * Started as consolidation of ipv4/ip_fragment.c,
11 * ipv6/reassembly. and ipv6 nf conntrack reassembly
14 #include <linux/list.h>
15 #include <linux/spinlock.h>
16 #include <linux/module.h>
17 #include <linux/timer.h>
20 #include <net/inet_frag.h>
22 void inet_frags_init(struct inet_frags *f)
26 for (i = 0; i < INETFRAGS_HASHSZ; i++)
27 INIT_HLIST_HEAD(&f->hash[i]);
29 INIT_LIST_HEAD(&f->lru_list);
30 rwlock_init(&f->lock);
32 f->rnd = (u32) ((num_physpages ^ (num_physpages>>7)) ^
33 (jiffies ^ (jiffies >> 6)));
36 atomic_set(&f->mem, 0);
39 EXPORT_SYMBOL(inet_frags_init);
41 void inet_frags_fini(struct inet_frags *f)
44 EXPORT_SYMBOL(inet_frags_fini);