reassembly.c (48d60056387c37a17a46feda48613587a90535e5) reassembly.c (c95477090a2ace6d241c184adc3fbfcab9c61ceb)
1/*
2 * IPv6 fragment reassembly
3 * Linux INET6 implementation
4 *
5 * Authors:
6 * Pedro Roque <roque@di.fc.ul.pt>
7 *
8 * $Id: reassembly.c,v 1.26 2001/03/07 22:00:57 davem Exp $

--- 161 unchanged lines hidden (view full) ---

170 struct ip6_create_arg *arg = a;
171
172 fq->id = arg->id;
173 ipv6_addr_copy(&fq->saddr, arg->src);
174 ipv6_addr_copy(&fq->daddr, arg->dst);
175}
176EXPORT_SYMBOL(ip6_frag_init);
177
1/*
2 * IPv6 fragment reassembly
3 * Linux INET6 implementation
4 *
5 * Authors:
6 * Pedro Roque <roque@di.fc.ul.pt>
7 *
8 * $Id: reassembly.c,v 1.26 2001/03/07 22:00:57 davem Exp $

--- 161 unchanged lines hidden (view full) ---

170 struct ip6_create_arg *arg = a;
171
172 fq->id = arg->id;
173 ipv6_addr_copy(&fq->saddr, arg->src);
174 ipv6_addr_copy(&fq->daddr, arg->dst);
175}
176EXPORT_SYMBOL(ip6_frag_init);
177
178static void ip6_frag_free(struct inet_frag_queue *fq)
179{
180 kfree(container_of(fq, struct frag_queue, q));
181}
182
183/* Destruction primitives. */
184
185static __inline__ void fq_put(struct frag_queue *fq)
186{
187 inet_frag_put(&fq->q, &ip6_frags);
188}
189
190/* Kill fq entry. It is not destroyed immediately,

--- 449 unchanged lines hidden (view full) ---

640void __init ipv6_frag_init(void)
641{
642 if (inet6_add_protocol(&frag_protocol, IPPROTO_FRAGMENT) < 0)
643 printk(KERN_ERR "ipv6_frag_init: Could not register protocol\n");
644
645 ip6_frags.ctl = &ip6_frags_ctl;
646 ip6_frags.hashfn = ip6_hashfn;
647 ip6_frags.constructor = ip6_frag_init;
178/* Destruction primitives. */
179
180static __inline__ void fq_put(struct frag_queue *fq)
181{
182 inet_frag_put(&fq->q, &ip6_frags);
183}
184
185/* Kill fq entry. It is not destroyed immediately,

--- 449 unchanged lines hidden (view full) ---

635void __init ipv6_frag_init(void)
636{
637 if (inet6_add_protocol(&frag_protocol, IPPROTO_FRAGMENT) < 0)
638 printk(KERN_ERR "ipv6_frag_init: Could not register protocol\n");
639
640 ip6_frags.ctl = &ip6_frags_ctl;
641 ip6_frags.hashfn = ip6_hashfn;
642 ip6_frags.constructor = ip6_frag_init;
648 ip6_frags.destructor = ip6_frag_free;
643 ip6_frags.destructor = NULL;
649 ip6_frags.skb_free = NULL;
650 ip6_frags.qsize = sizeof(struct frag_queue);
651 ip6_frags.match = ip6_frag_match;
652 ip6_frags.frag_expire = ip6_frag_expire;
653 inet_frags_init(&ip6_frags);
654}
644 ip6_frags.skb_free = NULL;
645 ip6_frags.qsize = sizeof(struct frag_queue);
646 ip6_frags.match = ip6_frag_match;
647 ip6_frags.frag_expire = ip6_frag_expire;
648 inet_frags_init(&ip6_frags);
649}