ip6_input.c (29a26a56803855a79dbd028cd61abee56237d6e5) ip6_input.c (0c4b51f0054ce85c0ec578ab818f0631834573eb)
1/*
2 * IPv6 input
3 * Linux INET6 implementation
4 *
5 * Authors:
6 * Pedro Roque <roque@di.fc.ul.pt>
7 * Ian P. Morris <I.P.Morris@soton.ac.uk>
8 *

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

42#include <net/rawv6.h>
43#include <net/ndisc.h>
44#include <net/ip6_route.h>
45#include <net/addrconf.h>
46#include <net/xfrm.h>
47#include <net/inet_ecn.h>
48#include <net/dst_metadata.h>
49
1/*
2 * IPv6 input
3 * Linux INET6 implementation
4 *
5 * Authors:
6 * Pedro Roque <roque@di.fc.ul.pt>
7 * Ian P. Morris <I.P.Morris@soton.ac.uk>
8 *

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

42#include <net/rawv6.h>
43#include <net/ndisc.h>
44#include <net/ip6_route.h>
45#include <net/addrconf.h>
46#include <net/xfrm.h>
47#include <net/inet_ecn.h>
48#include <net/dst_metadata.h>
49
50int ip6_rcv_finish(struct sock *sk, struct sk_buff *skb)
50int ip6_rcv_finish(struct net *net, struct sock *sk, struct sk_buff *skb)
51{
52 if (sysctl_ip_early_demux && !skb_dst(skb) && skb->sk == NULL) {
53 const struct inet6_protocol *ipprot;
54
55 ipprot = rcu_dereference(inet6_protos[ipv6_hdr(skb)->nexthdr]);
56 if (ipprot && ipprot->early_demux)
57 ipprot->early_demux(skb);
58 }

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

194 return NET_RX_DROP;
195}
196
197/*
198 * Deliver the packet to the host
199 */
200
201
51{
52 if (sysctl_ip_early_demux && !skb_dst(skb) && skb->sk == NULL) {
53 const struct inet6_protocol *ipprot;
54
55 ipprot = rcu_dereference(inet6_protos[ipv6_hdr(skb)->nexthdr]);
56 if (ipprot && ipprot->early_demux)
57 ipprot->early_demux(skb);
58 }

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

194 return NET_RX_DROP;
195}
196
197/*
198 * Deliver the packet to the host
199 */
200
201
202static int ip6_input_finish(struct sock *sk, struct sk_buff *skb)
202static int ip6_input_finish(struct net *net, struct sock *sk, struct sk_buff *skb)
203{
203{
204 struct net *net = dev_net(skb_dst(skb)->dev);
205 const struct inet6_protocol *ipprot;
206 struct inet6_dev *idev;
207 unsigned int nhoff;
208 int nexthdr;
209 bool raw;
210
211 /*
212 * Parse extension headers

--- 152 unchanged lines hidden ---
204 const struct inet6_protocol *ipprot;
205 struct inet6_dev *idev;
206 unsigned int nhoff;
207 int nexthdr;
208 bool raw;
209
210 /*
211 * Parse extension headers

--- 152 unchanged lines hidden ---