Skip site navigation (1)Skip section navigation (2)
Date:      Sun, 25 Feb 2007 06:41:55 -0800
From:      "Kip Macy" <kip.macy@gmail.com>
To:        "Andre Oppermann" <andre@freebsd.org>
Cc:        freebsd-net <freebsd-net@freebsd.org>
Subject:   Re: improved TSO interface needed
Message-ID:  <b1fa29170702250641w3b365a97u62f066087d1bffe8@mail.gmail.com>
In-Reply-To: <45E19B54.9060007@freebsd.org>
References:  <b1fa29170702242255i323077e8t3e5cfe696431c50b@mail.gmail.com> <45E19B54.9060007@freebsd.org>

next in thread | previous in thread | raw e-mail | index | archive | help
On 2/25/07, Andre Oppermann <andre@freebsd.org> wrote:
> Kip Macy wrote:
> > Evidently FreeBSD violates the LSO spec by sending down up to socket
> > buffer sized TSO segments to the network card. Is there a way to set
> > this other than reducing net.inet.tcp.sendbuf_max to a compliant value
> > (64k)? And is there a way to for a device to communicate to the stack
> > the maximum length of an mbuf chain?
>
>  From netinet/ip_output.c:
>
>           * When doing TSO limit a burst to TCP_MAXWIN minus the
>           * IP, TCP and Options length to keep ip->ip_len from
>           * overflowing.  Prevent the last segment from being
>           * fractional thus making them all equal sized and set
>           * the flag to continue sending.
>
> TCP_MAXWIN is 64K.

It is good to know that this how it is supposed to work even if it
doesn't. You didn't directly answer my last question, since they're
all supposed to be equal does that mean the max should be 32?

         -Kip



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