From: Thomas Falcon <tlfal...@linux.ibm.com>
Date: Tue, 16 Jul 2019 17:25:10 -0500

> The following scenario was encountered during testing of logical
> partition mobility on pseries partitions with bonded ibmvnic
> adapters in LACP mode.
> 
> 1. Driver receives a signal that the device has been
>    swapped, and it needs to reset to initialize the new
>    device.
> 
> 2. Driver reports loss of carrier and begins initialization.
> 
> 3. Bonding driver receives NETDEV_CHANGE notifier and checks
>    the slave's current speed and duplex settings. Because these
>    are unknown at the time, the bond sets its link state to
>    BOND_LINK_FAIL and handles the speed update, clearing
>    AD_PORT_LACP_ENABLE.
> 
> 4. Driver finishes recovery and reports that the carrier is on.
> 
> 5. Bond receives a new notification and checks the speed again.
>    The speeds are valid but miimon has not altered the link
>    state yet.  AD_PORT_LACP_ENABLE remains off.
> 
> Because the slave's link state is still BOND_LINK_FAIL,
> no further port checks are made when it recovers. Though
> the slave devices are operational and have valid speed
> and duplex settings, the bond will not send LACPDU's. The
> simplest fix I can see is to force another speed check
> in bond_miimon_commit. This way the bond will update
> AD_PORT_LACP_ENABLE if needed when transitioning from
> BOND_LINK_FAIL to BOND_LINK_UP.
> 
> CC: Jarod Wilson <ja...@redhat.com>
> CC: Jay Vosburgh <j.vosbu...@gmail.com>
> CC: Veaceslav Falico <vfal...@gmail.com>
> CC: Andy Gospodarek <a...@greyhouse.net>
> Signed-off-by: Thomas Falcon <tlfal...@linux.ibm.com>

Applied, thanks Thomas.

Reply via email to