From mboxrd@z Thu Jan 1 00:00:00 1970 From: Declan Doherty Subject: Re: active_backup link bonding and mac address Date: Fri, 12 May 2017 16:46:52 +0100 Message-ID: <8f0580c1-532c-83c5-df4b-68bdbb3a5a05@intel.com> References: <9aabdec0-81b2-689d-9f2e-838d93c67ccb@intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset=utf-8; format=flowed Content-Transfer-Encoding: 7bit To: Kyle Larose , "users@dpdk.org" , "dev@dpdk.org" Return-path: In-Reply-To: List-Id: DPDK patches and discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dev-bounces@dpdk.org Sender: "dev" On 12/05/2017 4:34 PM, Kyle Larose wrote: > > >> -----Original Message----- >> From: Declan Doherty [mailto:declan.doherty@intel.com] >> Sent: Friday, May 12, 2017 10:56 AM >> To: Kyle Larose; users@dpdk.org; dev@dpdk.org >> Subject: Re: active_backup link bonding and mac address >> >> On 12/05/2017 3:31 PM, Kyle Larose wrote: >>> I'm adding the dev mailing list/link bonding maintainer, because I've done >> some more investigation and I'm beginning to think something is wrong. >>> >> >> Kyle, sorry I didn't see the post in the users list. I think the issue is >> that the new primary is missing the bond MAC address on it's valid MACs >> list, hence it is dropping the ingress packets after a fail-over event, >> placing the all the slave devices into promiscuous mode as you suggest in >> option 2 would probably make the issue go away but I don't think it's the >> correct solution. I think we should just be adding the bond MAC to each >> slaves devices valid MAC list. As only one bond slave is only active at any >> time this won't cause any issues to the network, and will mean that fail >> over is transparent to your application and there is no need for MAC >> rewrites, which would invalidate existing ARP table entries at downstream >> end points. > > Hey Declan, > > Thanks for the prompt response. > > I agree with your suggestion. Does this MAC list propagate to the slave NICs' hardware layers? > That is, even if a slave isn't in promiscuous mode, if it receives a frame addressed to any > MAC in its list, it will accept it and deliver it to the software? Or, does it mean we need to > put the slave into promiscuous mode, but filter any MACs not in its list (unless the bond > interface itself is in promiscuous mode)? > > Thanks, > > Kyle > Yes it would be into the hw tables, rte_eth_dev_mac_addr_add() on each slave port should achieve this, so there will be no need to run in promiscuous mode. I'll try and setup a test for this on Monday morning in our lab. Declan