From mboxrd@z Thu Jan 1 00:00:00 1970 From: Jiri Pirko Subject: Re: [patch net-next-2.6] net: reinject arps into bonding slave instead of master Date: Thu, 10 Mar 2011 22:05:56 +0100 Message-ID: <20110310210556.GF2837@psychotron.redhat.com> References: <20110308134247.GW11864@gospo.rdu.redhat.com> <4D76A345.9040200@gmail.com> <20110309074547.GA2808@psychotron.redhat.com> <4D77938D.3080408@gmail.com> <20110309150939.GA9013@psychotron.brq.redhat.com> <4D779CA2.1050302@gmail.com> <20110309171100.GA2842@psychotron.redhat.com> <4D77FCC1.5050904@gmail.com> <20110310064829.GA3261@psychotron.redhat.com> <4D793845.1060702@gmail.com> Mime-Version: 1.0 Content-Type: text/plain; charset=iso-8859-1 Content-Transfer-Encoding: QUOTED-PRINTABLE Cc: netdev@vger.kernel.org To: Nicolas de =?iso-8859-1?Q?Peslo=FCan?= Return-path: Received: from mx1.redhat.com ([209.132.183.28]:22762 "EHLO mx1.redhat.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1753508Ab1CJVF7 (ORCPT ); Thu, 10 Mar 2011 16:05:59 -0500 Content-Disposition: inline In-Reply-To: <4D793845.1060702@gmail.com> Sender: netdev-owner@vger.kernel.org List-ID: Thu, Mar 10, 2011 at 09:44:53PM CET, nicolas.2p.debian@gmail.com wrote: >Le 10/03/2011 07:48, Jiri Pirko a =E9crit : >>>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 =3D=3D = 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 :)