Subject: Re: [RFC PATCH] net/core: fix skb handling on netif serves for both bridge and vlan

From: Nicolas de Pesloüan<[email-masked]>
Date: Thu, 03 Mar 2011 22:42:24 +0100

Le 03/03/2011 14:53, Ben Hutchings a écrit :
> On Thu, 2011-03-03 at 18:55 +0800, Xiaotian Feng wrote:
>> Consider network topology as follows:
>>
>> eth0  eth1
>>   |_____|
>>      |
>>    bond0 --- br0
>>      |
>>    vlan0 --- br1
>>
>> bond0 serves for both br0 and vlan0, if a vlan tagged packet was sent
>> to br1 through bond0, bridge handling code is seeing the packet on bond0
>> and handing it off to my "legacy" bridge before vlan_tx_tag_present
>> and vlan_hwaccel_do_receive even haven't a chance to look at it.
> [...]
>
> This used to work if the underlying device (bond0 in your example)
> implemented VLAN tag extraction, because the VLAN group would be checked
> before the bridge.  But it never worked for devices without VLAN tag
> extraction.  Perhaps we should just prevent this configuration.

If Jiri Pirko eventually move vlan processing to rx_handler, then the setup won't be possible, 
because bond0 would require two rx_handlers : one for bridge (-> br0) and one for vlan (-> vlan0).

Or we need several rx_handlers per net_device, if the above setup is a real one.

	Nicolas.