[dpdk-dev] active_backup link bonding and mac address

Kyle Larose klarose at sandvine.com
Fri May 12 16:31:45 CEST 2017


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.

> -----Original Message-----
> From: Kyle Larose
> Sent: Thursday, May 11, 2017 4:55 PM
> To: users at dpdk.org
> Subject: active_backup link bonding and mac address
> 
> Hey fellow DPDK users,
> 
> I have a question about the link bond pmd.
> 
> I am running  4 X710 interfaces in a link bond pmd for my application. In
> LACP mode, everything works fine. But, in active_backup mode, if the primary
> link fails, my application stops working. The reason is that I'm still
> sending packets with the original MAC address of the link bond pmd, which is
> that of the original primary slave. However, the new primary is not in
> promiscuous mode, so traffic coming back with that MAC address drops.
> 
> What should I be doing here:
> 
> 1) Should I be listening for the changes in the state of the primary, and
> updating the MAC address I use to send? (I have it cached for efficiency)
> 2) Should the driver be placing the interface into promiscuous mode to allow
> for this, similar to what LACP does?
> 3) Should the driver be overwriting the MAC on egress, similar to what the
> tlb driver seems to do (in bond_ethdev_tx_burst_tlb)
> 
> I'm fine with #1, but it seems to break the goal of having the link bond pmd
> be transparent to the application.
> 

I checked the mac address of the link bond interface after the failover, and it did not change.
It still had the MAC address of the first slave that was added. This seems incompatible with
solution number 1 that I suggested above, which means either it the link bond device should
update its address, or it should be promiscuous at the slave level.

FWIW, I'm using 16.07. I have reproduced this on testpmd by looking at port state. (with some
fiddling -- needed to prevent it from starting the slave interfaces, and turn off its default
promiscuous mode.)

Does anyone have any input on this problem?

Thanks,

Kyle


More information about the dev mailing list