[ovs-dev] [PATCH v2 2/2] Don't send or receive LACP PDUs when carrier state of slave is down

Ben Pfaff blp at ovn.org
Tue Jun 4 18:32:50 UTC 2019


On Sun, Jun 02, 2019 at 04:14:34PM +0000, Nitin Katiyar wrote:
> Problem:
> ========
> On certain Fortville NICs it has been observed that PHY UP detection can
> get delayed (sometimes up to 4-5 secs). When the driver fails to fetch
> PHY status as UP even though its actually UP, LACP packets can get
> exchanged and LACP slave brought UP. In such a case, the remote end
> would start sending traffic on that slave, but OVS drops it, as the
> bond-slave is not yet enabled due to PHY DOWN.
> 
> Fix:
> ====
> The main intention here is delay LACP negotiation until carrier (PHY)
> status is read as UP.
> 
> 1. When carrier state is DOWN, do not send any LACP PDUs and
>   drop any received LACP PDUs.
> 
> 2. When LACP PDU is received, trigger re-checking
>   of carrier-state (in port_run()) by incrementing the connectivity
>   sequence number to find out the true carrier state as fast as
>   possible.

I had to read this patch and the above description a few times.  Maybe I
understand it now.  Please let me try to re-state it and let me know if
I've got it right.

Fortville NICs (or perhaps their drivers) do not consistently send an
immediate notification when the PHY comes up.  However, packets can
still be received.  Until now, OVS drops traffic until the notification
that the PHY is up arrives.  This patch changes OVS to respond to
receiving a LACP packet on a device, for which it has not yet been
notified that carrier is up, by immediately polling carrier state.  This
polling can bypass the Fortville delayed notification and allow OVS to
bring up the bond slave faster.


More information about the dev mailing list