Skip site navigation (1)Skip section navigation (2)
Date:      Tue, 23 Mar 2010 16:38:40 -0700
From:      Marcel Moolenaar <xcllnt@mac.com>
To:        pyunyh@gmail.com
Cc:        powerpc@freebsd.org, embedded@freebsd.org, "M. Warner Losh" <imp@bsdimp.com>
Subject:   Re: Anyone using BOOTP with latest current (Book-E)?
Message-ID:  <00BE3C94-8C04-4E00-9617-1DB07C7FAF42@mac.com>
In-Reply-To: <20100323230351.GI1278@michelle.cdnetworks.com>
References:  <B7BAFA66-33DF-4EAB-835D-50BEEF7919D0@mac.com> <4BA8CF0E.50201@freebsd.org> <20100323.094126.787670930724128348.imp@bsdimp.com> <E210061E-5EE8-42C9-9B20-9788AB6F836B@mac.com> <20100323230351.GI1278@michelle.cdnetworks.com>

next in thread | previous in thread | raw e-mail | index | archive | help

On Mar 23, 2010, at 4:03 PM, Pyun YongHyeon wrote:
>> I looked at whether we restart autoneg if the PHY is in autoneg already because
>> I've seen at Juniper how that can contribute to excessive link flaps and even
>> excessive autoneg completion times (>40 seconds) depending on the switch and
>> did this:
>> 
>> Index: dev/mii/ciphy.c
>> ===================================================================
>> --- dev/mii/ciphy.c	(revision 205451)
>> +++ dev/mii/ciphy.c	(working copy)
>> @@ -176,13 +176,11 @@
>> 
>> 		switch (IFM_SUBTYPE(ife->ifm_media)) {
>> 		case IFM_AUTO:
>> -#ifdef foo
>> 			/*
>> 			 * If we're already in auto mode, just return.
>> 			 */
>> 			if (PHY_READ(sc, CIPHY_MII_BMCR) & CIPHY_BMCR_AUTOEN)
>> 				return (0);
>> -#endif
>> 			(void) mii_phy_auto(sc);
>> 			break;
>> 		case IFM_1000_T:
>> 
>> 
>> Apparently the author already considered the same and it does resolve the issue.
>> Anyone see any concerns with my applying this patch?
>> 
> 
> I'm not sure but I guess the #ifdef foo block could be completely
> nuked. The auto-negotiation timeout is set to 17 seconds for
> gigabit link and ciphy(4) will reprogram BMCR if auto-negotiation
> was not resolved after that timeout.

That's besides the point. calling mii_phy_auto() while autoneg is
ongoing aborts the autoneg and restarts it. This causes a link flap
and makes some switches cranky.

What the patch does is to not enable autoneg when autoneg is already
enabled so that we don't interfere with the autoneg handshake.

-- 
Marcel Moolenaar
xcllnt@mac.com






Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?00BE3C94-8C04-4E00-9617-1DB07C7FAF42>