[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Ethernet MTU
- Date: Thu, 9 Apr 2009 09:56:17 +1200
- From: mhamel at adi.co.nz (Michael Hamel)
- Subject: Ethernet MTU
>
>
> 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