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