'no buffer space available' after switch goes down on freeBSD 7.3

Adrian Chadd adrian at freebsd.org
Tue Dec 25 03:08:21 UTC 2012


On 24 December 2012 17:59, Mike Karels <mike at karels.net> wrote:

>> [adrian]
>> I think we may need another if_* method which specifically attempts to
>> service the TX queue again; versus just waiting for if_transmit() to
>> make some progress.

> In my opinion, it is wrong of the drivers to queue packets while link
> is down.  The packets are delayed indefinitely, and are useless at best.
> In my company's product (McAfee firewall), we had problems with state-sharing
> packets that were way out of date in a cluster.  We changed the drivers to
> empty the queue and discard subsequent packets when link was down.  No
> special change is needed to restart: the next time a packet is transmitted
> after link comes up, that packet is sent.  Our change is not necessarily
> done the way I'd do it for FreeBSD, but it minimizes changes.  Patch
> available on request.

I think that's a good way to treat it.


Adrian


More information about the freebsd-net mailing list