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