reassembly.c (97eb3f24352ec6632c2127b35d8087d2a809a9b9) | reassembly.c (b71d1d426d263b0b6cb5760322efebbfc89d4463) |
---|---|
1/* 2 * IPv6 fragment reassembly 3 * Linux INET6 implementation 4 * 5 * Authors: 6 * Pedro Roque <roque@di.fc.ul.pt> 7 * 8 * Based on: net/ipv4/ip_fragment.c --- 210 unchanged lines hidden (view full) --- 219out_rcu_unlock: 220 rcu_read_unlock(); 221out: 222 spin_unlock(&fq->q.lock); 223 fq_put(fq); 224} 225 226static __inline__ struct frag_queue * | 1/* 2 * IPv6 fragment reassembly 3 * Linux INET6 implementation 4 * 5 * Authors: 6 * Pedro Roque <roque@di.fc.ul.pt> 7 * 8 * Based on: net/ipv4/ip_fragment.c --- 210 unchanged lines hidden (view full) --- 219out_rcu_unlock: 220 rcu_read_unlock(); 221out: 222 spin_unlock(&fq->q.lock); 223 fq_put(fq); 224} 225 226static __inline__ struct frag_queue * |
227fq_find(struct net *net, __be32 id, struct in6_addr *src, struct in6_addr *dst) | 227fq_find(struct net *net, __be32 id, const struct in6_addr *src, const struct in6_addr *dst) |
228{ 229 struct inet_frag_queue *q; 230 struct ip6_create_arg arg; 231 unsigned int hash; 232 233 arg.id = id; 234 arg.user = IP6_DEFRAG_LOCAL_DELIVER; 235 arg.src = src; --- 294 unchanged lines hidden (view full) --- 530 rcu_read_unlock(); 531 return -1; 532} 533 534static int ipv6_frag_rcv(struct sk_buff *skb) 535{ 536 struct frag_hdr *fhdr; 537 struct frag_queue *fq; | 228{ 229 struct inet_frag_queue *q; 230 struct ip6_create_arg arg; 231 unsigned int hash; 232 233 arg.id = id; 234 arg.user = IP6_DEFRAG_LOCAL_DELIVER; 235 arg.src = src; --- 294 unchanged lines hidden (view full) --- 530 rcu_read_unlock(); 531 return -1; 532} 533 534static int ipv6_frag_rcv(struct sk_buff *skb) 535{ 536 struct frag_hdr *fhdr; 537 struct frag_queue *fq; |
538 struct ipv6hdr *hdr = ipv6_hdr(skb); | 538 const struct ipv6hdr *hdr = ipv6_hdr(skb); |
539 struct net *net = dev_net(skb_dst(skb)->dev); 540 541 IP6_INC_STATS_BH(net, ip6_dst_idev(skb_dst(skb)), IPSTATS_MIB_REASMREQDS); 542 543 /* Jumbo payload inhibits frag. header */ 544 if (hdr->payload_len==0) 545 goto fail_hdr; 546 --- 223 unchanged lines hidden --- | 539 struct net *net = dev_net(skb_dst(skb)->dev); 540 541 IP6_INC_STATS_BH(net, ip6_dst_idev(skb_dst(skb)), IPSTATS_MIB_REASMREQDS); 542 543 /* Jumbo payload inhibits frag. header */ 544 if (hdr->payload_len==0) 545 goto fail_hdr; 546 --- 223 unchanged lines hidden --- |