[OpenAFS-devel] RX_MAX_FRAGS (yet again)

Nickolai Zeldovich kolya@MIT.EDU
Tue, 02 Oct 2001 03:37:28 -0400


> >I think Solaris is broken in some ways (in particular, ADAPT_MTU isn't
> >enabled in kernel code), so the cache manager doesn't look at the kernel
> >MTUs and always advertises an ifMTU of 1444.
> 
> well that does seem a bit broken.  ever tried with ADAPT_MTU set?

It looks like that would require implementing rxi_GetIFInfo()
and rxi_FindIfnet() in rx/SOLARIS/rx_knet.c, which are missing
right now.  Shouldn't be too hard -- I'll see if I can come up
with something tomorrow..

> >I think it actually never sends a packet bigger than maxMTU, where
> >maxMTU is approximately RX_MAX_FRAGS*natMTU, and natMTU is
> >MIN(our ifMTU, peer ifMTU).
> 
> this would seem to be a bad idea though.

I think the motivation for this might've been to reduce the number
of syscalls being made to transfer Rx data.  With a 1500 byte MTU
and an uncongested network, it doesn't matter too much if you send
four 1500 byte packets or four fragments of a single 6000 byte IP
packet, but it reduces the number of syscalls from Rx by 4 times.

(TCP wins in this regard, since it can send huge amounts of data
with a single write syscall..)

-- kolya