tcp mss MCLBYTES restriction

Andre Oppermann andre at freebsd.org
Tue Jan 20 12:42:05 PST 2004


Andrew Gallatin wrote:
> 
> For the case where the mtu is larger than MCLBYTES (2048), FreeBSD's
> TCP implementation restricts the mss to a multiple of MCLBYTES.  This
> appears to have been inherited from 4.4BSD-lite.
> 
> On adapters with 9000 byte jumbo frames, this limits the mss to 8192
> bytes, and wastes nearly 1KB out of each frame.  This is especially
> annoying because many drivers for adapters which support 9000 byte mtus
> allocate their own 9000 byte receive buffers and don't even use mbufs
> which are MCLBYTES in length.  In this case, the mss restriction guarantees
> a nearly 1000 byte wastage per frame.

When I was implementing the tcp_hostcache I reorganized/redid the
tcp_mss() function and wondered about that too.  I don't know if
this rounding to MCLBYTES is still the right thing to do.

> Would it be OK if I made this code optional via a sysctl?

Could you run some bechmarks with the current MCLBYTES rounding
and without it on 100Mbit 1.5kMTU and GigE with 9k MTU?

-- 
Andre


More information about the freebsd-net mailing list