[ARGUS] BSD argus/Linux ra problems?

Peter Van Epp vanepp at sfu.ca
Tue Nov 23 23:58:05 EST 2004


On Tue, Nov 23, 2004 at 03:57:04PM -0500, Carter Bullard wrote:
> Hey Michael,
>    Well that will cause a problem if a ra* client gets less than 128
> bytes, as we do a single read for 128 bytes and if we don't get it we
> exit.  There were a lot of reasons for this, but most were/are
> historical. I can modify it to get into a loop to read until we
> get 128 bytes, but it will not be pretty.
> 
>     I'm gonna be somewhat depressed by this, as it will introduce
> some delay in getting started when we've got multiple endpoints
> to manage.  Any way we can get BSD to change its IP stack? ;o)

	Unfortuntaly it looks to me like the Linux stack is in fact broken. It
shouldn't be ignoring and over writing the window size, the BSD box is doing 
the right thing which makes a "fix" unlikely :-).

> 
> On the serious side, I wonder if I can force the starting window
> size on the client side to ensure that I have 128 bytes to start
> with?

	That would probably be the profitable course of action. I would have
thought this violated the Nagle slowstart algorithm. As I understand it (which
could well be wrong :-)), it should start with the maximum window size and 
back off as congestion causes packet loss.
	I should note as well that the SUSE kernel is one of our HPC machines 
and may well have a kernel with an odd sense of window size (i.e. because it
is on a high speed high latency link the window size multiplication RFC may
be in use and "47" may be 47 times a largish number as the actual window size
on this machine and thus it is acting correctly by its lights since it doesn't
think 47 is 47 bytes as BSD will but perhaps something like 47K :-)). It also 
has 64 Meg kernel memory limit allocated rather than the standard (1 meg? 600K?
something like that), it may be that your driver selection is pressing up 
against the compiled limit of kernel memory and causing too few buffers to be 
allocated (although I'm far from a Linux expert :-)). I remember being suprised 
at how low the kernel memory limit was when Lixon boosted it for the ringbuffer
kernel. On BSD netstat -m displays kernel network buffer stats but that doesn't
seem to be the same on Linux.

Peter Van Epp / Operations and Technical Support 
Simon Fraser University, Burnaby, B.C. Canada




More information about the argus mailing list