Subject: Re: [PATCH] core/dev: set pkt_type after eth_type_trans() in dev_forward_skb()

From: Nicolas Dichtel <[email-masked]>
Date: Wed, 03 Jul 2013 16:53:52 +0200

Le 03/07/2013 01:00, David Miller a écrit :
> From: Isaku Yamahata <[email-masked]>
> Date: Tue,  2 Jul 2013 20:30:10 +0900
>
>> The dev_forward_skb() assignment of pkt_type should be done
>> after the call to eth_type_trans().
>>
>> ip-encapsulated packets can be handled by localhost. But skb->pkt_type
>> can be PACKET_OTHERHOST when packet comes via veth into ip tunnel device.
>> In that case, the packet is dropped by ip_rcv().
>> Although this example uses gretap. l2tp-eth also has same issue.
>> For l2tp-eth case, add dummy device for ip address and ip l2tp command.
>   ...
>> Signed-off-by: Isaku Yamahata <[email-masked]>
>
> Applied, but I had to adjust the patch because in net-next we use
> a new helper function (skb_scrub_packet()) to clear things out from
> dev_forward_skb().
What about calling skb_scrub_packet() after eth_type_trans()?

I wonder if the same problem may happen the day gre will support x-netns,
because skb_scrub_packet() is also called before eth_type_trans() in
ip_tunnel_rcv().