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} |