freebsd-dev/sys/dev/dc
Bill Paul e7be9f9a1a Deal with the condition where we lose link in the middle of transmitting
a bunch of frames. In this case, the dc_link flag is cleared, and dc_start()
stops draining the if_snd send queue, which results in lots of 'no buffers
available' errors being reported to applications. The whole idea behind
not draining the send queue until the link comes up was to avoid having
the gratuitous ARP being lost while we're waiting for autoneg to complete
after the interface is first brought up. As an optimization, change the
test in dc_start() so that we only bail if dc_link is not set _and_ there
are less than 10 packets in the send queue. If the queue has many frames
in it, we need to drain them. If the queue has a small number of frames
in it, we can hold off on sending them until the link comes up.

MFC after: 1 week
2001-07-12 22:51:59 +00:00
..
dcphy.c Catch up to header include changes: 2001-03-28 09:17:56 +00:00
if_dc.c Deal with the condition where we lose link in the middle of transmitting 2001-07-12 22:51:59 +00:00
if_dcreg.h Apply patch to allow TX underrun handling without issuing a complete 2001-02-22 19:26:55 +00:00
pnphy.c Catch up to header include changes: 2001-03-28 09:17:56 +00:00