[<prev] [next>] [<thread-prev] [day] [month] [year] [list]
Message-ID: <20110310210556.GF2837@psychotron.redhat.com>
Date: Thu, 10 Mar 2011 22:05:56 +0100
From: Jiri Pirko <jpirko@...hat.com>
To: Nicolas de Pesloüan
<nicolas.2p.debian@...il.com>
Cc: netdev@...r.kernel.org
Subject: Re: [patch net-next-2.6] net: reinject arps into bonding slave
instead of master
Thu, Mar 10, 2011 at 09:44:53PM CET, nicolas.2p.debian@...il.com wrote:
>Le 10/03/2011 07:48, Jiri Pirko a écrit :
>>>But for all others setups, where there exist some net_devices before
>>>the "untagging" one, you would face some troubles. For example, with
>>>eth0+eth1 -> br0 -> br0.100, you cannot untag before entering
>>>__netif_receive_skb. If you do so, the bridge would receive untagged
>>>frame and if the frame is not for the local host, the bridge would
>>>forward an untagged frame while it is expected to forward a tagged
>>>one. Even if the bridge is in a position to know the frame *was*
>>>tagged, we cannot expect the bridge to do special processing to
>>>handle this situation. Doing so would break layering.
>>
>>I disagree.
>>eth0 -> untag on early __netif_receive_skb (sets up skb->vlan_tci)
>> ->rx_handler of bridge
>>->br0 -> tag is detected by vlan_tx_tag_present()
>> -> reinject to __netif_receive_skb with skb->dev == br0.100
>
>For local delivery, is should work.
>
>But if the bridge must forward the frame to another host (bridges are
>designed for such things :-)), it will have to insert the vlan header
>back into the frame. I don't understand how it could work
>automagically in this situation.
See dev_hard_start_xmit and search for vlan :)
--
To unsubscribe from this list: send the line "unsubscribe netdev" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Powered by blists - more mailing lists