Subject: Re: ping: sendto: no buffer space available (1.4.2/Alpha)
To: Erik E. Fair <fair@clock.org>
From: Kevin P. Neal <kpneal@pobox.com>
List: tech-net
Date: 12/09/2000 18:34:42
On Sat, Dec 09, 2000 at 01:45:30PM -0800, Erik E. Fair wrote:
> The interesting display to look at when you get "no buffer space
> available" is the output from:
>
> netstat -m
>
> However, I will bet a whole lot that it will show no requests for
> buffers refused. This is because there is another, distinct error
> condition which returns that error code: network interface queue full.
Correct.
183 mbufs in use:
125 mbufs allocated to data
57 mbufs allocated to packet headers
1 mbufs allocated to socket names and addresses
52/60 mapped pages in use
184 Kbytes allocated to network (81% in use)
0 requests for memory denied
0 requests for memory delayed
0 calls to protocol drain routines
> When a network interface cannot transmit, for whatever reason, the
> kernel will limit the number of packets that can be queued for
> transmit on that interface. However, when that queue fills up, the
> error returned is ENOBUFS.
Opinion: returning a single number when a problem happens is really
not enough. I wish there was a better way of reporting problems.
> There is an open PR suggesting that a new error code be allocated for
> this case.
What does it take to clear the error condition? I mean, how come pppd
stops being able to transmit once some particular error happens? How
come pppd doesn't notice the error and at least drop the connection?
I once had lcp-echo-interval and -failure set, but I had to take them
out because I came home one day to find my connection bouncing up and
down for no apparent reason.
--
Kevin P. Neal http://www.pobox.com/~kpn/
"Nonbelievers found it difficult to defend their position in \
the presense of a working computer." -- a DEC Jensen paper