[ovs-dev] [RFC] bridge: Keep bond active slave selection across OVS restart

Ben Pfaff blp at nicira.com
Fri Oct 3 21:44:17 UTC 2014


On Fri, Oct 03, 2014 at 01:28:07AM -0700, Andy Zhou wrote:
> Whenever OVS restarts, it pseudo-randomly picks an interface
> of a bond port to be the active slave. This can cause traffic
> disruption in case the upstream switch does not support LACP, or
> in case of multi-chassis switches that do not support mLACP.
> 
> This patch helps the situation by always record the last active
> slave into ovsdb. When OVS restarts, the stored last active slave
> has the highest priority to be selected again. In case this interface
> is available, due to configuration changes or being offline, OVS then
> consider other interfaces with the bond as it does today.
> 
> In a nutshell, this patch makes the active slave selection stickier
> across OVS restart.
> 
> VMware-BZ:  1332235

I think there might be a problem with IDL transactions; are you sure
that a transaction is being opened and committed around setting the
column?

I see some missing {} around single-statement blocks.

Do you think that the MAC address is the best way to identify a slave?
I am not sure that it is necessarily unique.  Other options include a
weak reference to the interface or the name of the interface.

I am not sure what you mean by "Openvswitch internal use only."  Maybe
you mean that only ovs-vswitchd should write to the column, and other
clients should only read it.  Usually we say that by saying that a
column "reports" information or that it is a "status" column.

> +      <column name="bond_last_active_iface">
> +          For a bonded port, record the mac address of the last active slave.
> +          Openvswitch internal use only.
> +      </column>



More information about the dev mailing list