diff options
author | yongari <yongari@FreeBSD.org> | 2009-12-22 20:11:56 +0000 |
---|---|---|
committer | yongari <yongari@FreeBSD.org> | 2009-12-22 20:11:56 +0000 |
commit | 036ec4b1ff6b99a6f3c3df922a4eb744d68e1c62 (patch) | |
tree | 3ff804719ab32ac5f5d12fca3622cde563fd926a /sys/netinet6/mld6.c | |
parent | 4822b84df379c1e8a850868c8bfdb42e70249f76 (diff) | |
download | FreeBSD-src-036ec4b1ff6b99a6f3c3df922a4eb744d68e1c62.zip FreeBSD-src-036ec4b1ff6b99a6f3c3df922a4eb744d68e1c62.tar.gz |
Reimplement miibus_statchg method. Don't rely on link state change
interrupt. If we want to use link state change interrupt ste(4)
should also implement auto-negotiation complete handler as well as
various PHY access handling. Now link state change is handled by
mii(4) polling so it will automatically update link state UP/DOWN
events which in turn make ste(4) usable with lagg(4).
r199559 added a private timer to drive watchdog and the timer also
used to drive MAC statistics update. Because the MAC statistics
update is called whenever statistics counter reaches near-full, it
drove watchdog timer too fast such that it caused false watchdog
timeouts under heavy TX traffic conditions.
Fix the regression by separating ste_stats_update() from driving
watchdog timer and introduce a new function ste_tick() that handles
periodic job such as driving watchdog, MAC statistics update and
link state check etc.
While I'm here clear armed watchdog timer in ste_stop().
Diffstat (limited to 'sys/netinet6/mld6.c')
0 files changed, 0 insertions, 0 deletions