Ethernet MTU
Michael Hamel
mhamel at adi.co.nz
Wed Apr 8 21:56:17 UTC 2009
>
>
> So, if I change the interface MTU to 9000 before any packets get sent
> or routes come up, I get route MTU's of 9000 as well. I have the
> driver receiving packets of this size successfully into multiple
> mbufs, so all is well on that side. My remaining problem is that the
> BSD stack won't hand my driver data across multiple mbufs. The most it
> will give me is a 56-byte header in one mbuf and a 2048-byte data
> mbuf, so the outgoing packet size tops out at 2102 bytes. I'm calling
> write() with buffers of up to 32K, and they always get split up in
> this manner.
Following up on this; I have found that the 2102-byte limit isn't a
settings problem, it appears to be a feature of sosend() in
uipc_socket.c, which will only pass single mbufs across to
tcp_usr_send(). There is some discussion of this on the NetBSD lists;
they added an SS_MORETOCOME flag some time after RTEMS split off.
However they mostly seem to be addressing a different fragmentation
issue and I don't understand all the implications, so I'm not going to
pursue the matter any further.
---
Wi not trei a holiday in Sweden this yer?
Michael Hamel
ADInstruments Ltd, Dunedin, NZ
More information about the users
mailing list