Skip site navigation (1)Skip section navigation (2)
Date:      Sun, 12 Jan 2003 23:32:12 +0100
From:      Gary Jennejohn <garyj@jennejohn.org>
To:        G Hasse <gh@raditex.se>
Cc:        freebsd-isdn@FreeBSD.ORG
Subject:   Re: Problem with "no bufferspace" 
Message-ID:  <200301122232.h0CMWCs5042107@peedub.jennejohn.org>
In-Reply-To: Your message of "Sun, 12 Jan 2003 23:18:58 GMT." <20030112230724.P51762-100000@gandalf.raditex.se> 

next in thread | previous in thread | raw e-mail | index | archive | help
G Hasse writes:
> If I have one connection to one site the othere sites will be
> blocked (offcourse). And there will be a message "no bufferspace
> available". This is offcourse correct.
> 
> But after a while when the first connection goes away this
> condition will persist, and I cant connect to any other site.
> 
> I have to restart the interface
> 
> ifconfig isp3 delete -link1 down
> ..
> ifconfig isp3 inet 192.168.63.1 192.168.63.2 netmask 0xffffffff link1
> etc
> 
> And it all works again.
> 

OK, I don't know whether my analysis is correct, but here goes:

The kernel limits the number of packets queued for transmission to
(normally) 50, see the _IF_QFULL macro. Once that many packets are
in a queue there's no way to add more to it.

You are apparently running into this limitation, although I don't
understand how packets are being sent to non-active interfaces.
You must be doing something weird.

Since only one connection can be active at a time, and the "full"
interfaces have no active connection, there is no way for the kernel
to drain the full queues. And because the queues are full, there's no
way for the kernel to add more packets to them to establish the connection.
It's a real circus vitiosus.

ifconfig'ing the interface down throws away all the queued packets, which
is why the interface starts working again.

Stop sending packets to interfaces which have no active connection.

---
Gary Jennejohn / garyj@jennejohn.org gj@freebsd.org gj@denx.de


To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe freebsd-isdn" in the body of the message




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200301122232.h0CMWCs5042107>