Skip site navigation (1)Skip section navigation (2)
Date:      Tue, 20 Jan 2004 21:41:21 +0100
From:      Andre Oppermann <andre@freebsd.org>
To:        Andrew Gallatin <gallatin@cs.duke.edu>
Cc:        freebsd-net@freebsd.org
Subject:   Re: tcp mss MCLBYTES restriction
Message-ID:  <400D9271.1259CBC8@freebsd.org>
References:  <16397.36782.415899.626311@grasshopper.cs.duke.edu>

next in thread | previous in thread | raw e-mail | index | archive | help
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



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?400D9271.1259CBC8>