On Sun, Jun 09, 2019 at 01:27:22PM +0000, Nitin Katiyar wrote: > > > > -----Original Message----- > > From: Ben Pfaff [mailto:[email protected]] > > Sent: Friday, June 07, 2019 11:03 PM > > To: Nitin Katiyar <[email protected]> > > Cc: [email protected]; Manohar Krishnappa Chidambaraswamy > > <[email protected]> > > Subject: Re: [ovs-dev] [PATCH v2 2/2] Don't send or receive LACP PDUs when > > carrier state of slave is down > > > > On Thu, Jun 06, 2019 at 06:34:21AM +0000, Nitin Katiyar wrote: > > > > > > > > > > -----Original Message----- > > > > From: Ben Pfaff [mailto:[email protected]] > > > > Sent: Wednesday, June 05, 2019 12:03 AM > > > > To: Nitin Katiyar <[email protected]> > > > > Cc: [email protected]; Manohar Krishnappa Chidambaraswamy > > > > <[email protected]> > > > > Subject: Re: [ovs-dev] [PATCH v2 2/2] Don't send or receive LACP > > > > PDUs when carrier state of slave is down > > > > > > > > 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. > > > It is other way. Until now, OVS (and connected switch) may see LACP in > > negotiated state but OVS may have link/carrier state as DOWN due to > > NIC/driver issue. > > > In this case, NIC/driver didn't update the link UP state for few seconds > > although link had come up and started carrying traffic. This brought up the > > LACP slave and remote end started traffic on this slave. OVS dropped the > > packets as slave status was down. > > > To avoid this situation we propose this patch for not sending/receiving > > > LACP > > PDUs till link is reported UP. In short, we delay LACP negotiation till > > carrier > > status is UP. Additionally, if PMD is receiving LACP PDU when carrier state > > is > > down it triggers checking of state by changing connectivity sequence number. > > > > OK, let me try again. Is the following correct? > > > > --8<--------------------------cut here-------------------------->8-- > > > > Fortville NICs (or their drivers) can get into an inconsistent state, in > > which the > > NIC can actually transmit and receive packets even though they report "PHY > > down". In such a state, OVS can exchange and process LACP messages and > > enable a bond slave. However, further packet exchange over the slave fails > > because OVS sees that the PHY is down. > > > > This commit fixes the problem by making OVS ignore received LACP PDUs and > > suppress transmitting LACP PDUs when carrier is down. In addition, when a > > LACP PDU is received with carrier down, this commit triggers rechecking the > > carrier status (by incrementing the connectivity sequence > > number) to ensure that it is updated as quickly as possible. > This is correct Ben. I will update the patch description.
Thanks for your patience! _______________________________________________ dev mailing list [email protected] https://mail.openvswitch.org/mailman/listinfo/ovs-dev
