[OpenAFS-devel] rx mtu

Harald Barth haba@pdc.kth.se
Mon, 27 Jan 2003 19:00:56 +0100 (CET)


Hi Jim,

> How many other systypes support path mtu?  If I put code in to use this on
> OpenBSD, how many other arch maintainers would be willing to add the
> necessary code and do the testing for it to work on your systype?

I do not know if it is worth to do. Today rx sends typically packets
that are 4*MTU which evaluates mostly to something around 6000 bytes.
Noone has been able to explain why _four_ (and not five or three)
times MTU size. I would appreciate if the code would not send
fragments at all as you loose big on lossy links and gain almost
nothing on today's CPUs. I do not know why fragmenting in the IP layer
is cheaper that in the rx layer, but on a 40Mhz SPARC, it is
muchfaster. On an 800Mhz PC it is not. I do not think we should make
design descicions that care about 40Mhz SPARCs any more.

Suggestion: Om systypes with easy MTU discovery support, do the
discovery and then send packets that fit that size. On systypes
without, either look at the interface or just guess 1500.

> If I do this, is it useful?  I'm not even sure what pp->ifMTU is used for.
> It does not seem to limit the size of udp packets sent.  Maybe it's not used
> for anything.

I think packet sent is RX_NUM_FRAGS * pp->ifMTU, but the MTU code is
very mangled together with the mumbo-jumbo packet code, so I doubt
either can be sanitized alone. I frequently think that I'm brave and
look at the rx code again and then it comes back to me why I gave up in
the first place ;-]

Harald.