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>