On Thu, Mar 15, 2007 at 05:42:48PM +0100, Walter Doerr wrote:
> Hello,
> 
> I am using an OpenBSD 4.0 box connected to a 2Mbit SDSL line in
> Germany (using user space PPP).
> 
> When pinging a host across the SDSL line, I get an occasional
> "sendto: No buffer space available" message:
> 
> 
> 64 bytes from xxx.xxx.xxx.xxx: icmp_seq=566 ttl=254 time=62.674 ms
> 64 bytes from xxx.xxx.xxx.xxx: icmp_seq=568 ttl=254 time=38.090 ms
> ping: sendto: No buffer space available
> ping: wrote xxx.xxx.xx 64 chars, ret=-1
> 64 bytes from xxx.xxx.xxx.xxx: icmp_seq=569 ttl=254 time=1320.651 ms
> 64 bytes from xxx.xxx.xxx.xxx: icmp_seq=571 ttl=254 time=35.792 ms
> 
> Does this message point to a problem within OpenBSD or is this a
> problem with the SDSL line?
> 
> Why is the ping packet not simply dropped but rather delayed?
> 
> I have googled for the error message and some replies indicated that
> it is a problem within some ethernet card drivers, so I switched from
> fxp to em but the problem persists.
> 

I think I mentionened this already a few times but I'll do it again.
"sendto: No buffer space available" means an ENOBUF error was returned.
On modern systems ENOBUF is almost only generated by the interfaces and
their queues (e.g. if you enable a too restrictive altq limit).
So if you have altq enabled I would look at the pfctl -sq -vv output.

I doubt it is the fxp/em card -- your pinging the other side of the SDSL
line so the traffic flows first through tun(4).
The interface queue on tun(4) can get full because userland ppp fails to
read fast enough or blocks for some time.

As the ping is delayed by 1 second I think ppp blocked and stopped reading
/dev/tun0 for around 1 second. The 1 Mio. Dollar question is why did it
block.

A possible workaround is to switch to the kernel pppoe(4) version.
-- 
:wq Claudio

Reply via email to