> -----Original Message----- > From: David Miller [mailto:[email protected]] > Sent: 2019年8月28日 6:05 > To: zhangsha (A) <[email protected]> > Cc: [email protected]; [email protected]; [email protected]; > [email protected]; [email protected]; yuehaibing > <[email protected]>; hunongda <[email protected]>; > Chenzhendong (alex) <[email protected]> > Subject: Re: [PATCH v2] bonding: force enable lacp port after link state > recovery for 802.3ad > > From: <[email protected]> > Date: Fri, 23 Aug 2019 11:42:09 +0800 > > > - If speed/duplex getting failed here, the link status > > will be changed to BOND_LINK_FAIL; > > How does it fail at this step? I suspect this is a driver specific problem.
Hi, David, I'm really sorry for the delayed email and appreciated for your feedback. I was testing in kernel 4.19 with a Huawei hinic card when the problem occurred. I checked the dmesg and got the logs in the following order: 1) link status definitely down for interface eth6, disabling it 2) link status up again after 0 ms for interface eth6 3) the paterner's system mac becomes to "00:00:00:00:00:00". By reading the codes, I think that the link status of the slave should be changed to BOND_LINK_FAIL from BOND_LINK_DOWN. As this problem has only occurred once only, I am not very sure about whether this is a driver specific problem or not at the moment. But I find the commit 4d2c0cda, its log says " Some NIC drivers don't have correct speed/duplex settings at the time they send NETDEV_UP notification ...", so I prefer to believe it's not. To my problem I think it is not enough that link-monitoring (miimon) only set SPEED/DUPLEX right, the lacp port should be enabled too at the same time.

