Пример #1
0
int ip6_rcv_finish( struct sk_buff *skb)
{
	if (skb_dst(skb) == NULL)
		ip6_route_input(skb);

	return dst_input(skb);
}
Пример #2
0
static inline int ip6_rcv_finish( struct sk_buff *skb) 
{
	if (skb->dst == NULL)
		ip6_route_input(skb);

	return dst_input(skb);
}
Пример #3
0
int ip6_rcv_finish(struct sk_buff *skb)
{
	if (sysctl_ip_early_demux && !skb_dst(skb)) {
		const struct inet6_protocol *ipprot;

		ipprot = rcu_dereference(inet6_protos[ipv6_hdr(skb)->nexthdr]);
		if (ipprot && ipprot->early_demux)
			ipprot->early_demux(skb);
	}
	if (!skb_dst(skb))
		ip6_route_input(skb);

	return dst_input(skb);
}
Пример #4
0
static void ip6_rcv_finish_core(struct net *net, struct sock *sk,
				struct sk_buff *skb)
{
	void (*edemux)(struct sk_buff *skb);

	if (net->ipv4.sysctl_ip_early_demux && !skb_dst(skb) && skb->sk == NULL) {
		const struct inet6_protocol *ipprot;

		ipprot = rcu_dereference(inet6_protos[ipv6_hdr(skb)->nexthdr]);
		if (ipprot && (edemux = READ_ONCE(ipprot->early_demux)))
			edemux(skb);
	}
	if (!skb_valid_dst(skb))
		ip6_route_input(skb);
}
Пример #5
0
inline int ip6_rcv_finish( struct sk_buff *skb)
{
    /* <DTS2012092706169 w00211169 2012-10-20 begin */
    /* <DTS2012082701764 w00211169 2012-9-17 begin */
#if 0    
    if (skb->dst == NULL)
        ip6_fakesrc_process(skb);
#endif    
    /* DTS2012082701764 w00211169 2012-9-17 end> */
    /* DTS2012092706169 w00211169 2012-10-20 end> */
    
	if (skb->dst == NULL)
		ip6_route_input(skb);

	return dst_input(skb);
}
Пример #6
0
int ip6_rcv_finish(struct net *net, struct sock *sk, struct sk_buff *skb)
{
    /* if ingress device is enslaved to an L3 master device pass the
     * skb to its handler for processing
     */
    skb = l3mdev_ip6_rcv(skb);
    if (!skb)
        return NET_RX_SUCCESS;

    if (net->ipv4.sysctl_ip_early_demux && !skb_dst(skb) && skb->sk == NULL) {
        const struct inet6_protocol *ipprot;

        ipprot = rcu_dereference(inet6_protos[ipv6_hdr(skb)->nexthdr]);
        if (ipprot && ipprot->early_demux)
            ipprot->early_demux(skb);
    }
    if (!skb_valid_dst(skb))
        ip6_route_input(skb);

    return dst_input(skb);
}