From owner-freebsd-current@FreeBSD.ORG Sun Nov 18 00:19:34 2007 Return-Path: Delivered-To: freebsd-current@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 7FB8516A46C for ; Sun, 18 Nov 2007 00:19:34 +0000 (UTC) (envelope-from kip.macy@gmail.com) Received: from wa-out-1112.google.com (wa-out-1112.google.com [209.85.146.181]) by mx1.freebsd.org (Postfix) with ESMTP id 4977813C461 for ; Sun, 18 Nov 2007 00:19:32 +0000 (UTC) (envelope-from kip.macy@gmail.com) Received: by wa-out-1112.google.com with SMTP id k17so1565002waf for ; Sat, 17 Nov 2007 16:19:25 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=beta; h=domainkey-signature:received:received:message-id:date:from:to:subject:cc:in-reply-to:mime-version:content-type:content-transfer-encoding:content-disposition:references; bh=UIPmPRnhZcyEDiMLj8WemyFhpXr65XpETVNVH9WfFx4=; b=MwXovAc7rfZMin+H5/SkYgsIsBm3oZHSdFeEGHHMk9d1aDNvT7dlObBybibYbBcHuZjd+UBmX9IEKc8on5poGXc5k9fUS1rsmJ/dwYyI9SYNgwXz9e9C+xHn5jyj2hkMu0cekY4HkyrXyG9INXuw6GCcPsMyQdv352iEHPeSSng= DomainKey-Signature: a=rsa-sha1; c=nofws; d=gmail.com; s=beta; h=received:message-id:date:from:to:subject:cc:in-reply-to:mime-version:content-type:content-transfer-encoding:content-disposition:references; b=noE8bYfvRp0w4quV2X/vqRKCB/vtUIDEyIzXFSya1xNTNNNPRXn9t3ZI+wTxaX1kmGcvT97VKiJ2xOzgYh4EkKEm7RNsgXY1yMm9mea1cQ8a0K9TefUVK5/YGBBkZTurs1DbiocA+qsSkEZMMrV49V8FIQuktmQrQ0AY365DbRA= Received: by 10.114.196.1 with SMTP id t1mr486550waf.1195345165348; Sat, 17 Nov 2007 16:19:25 -0800 (PST) Received: by 10.114.13.15 with HTTP; Sat, 17 Nov 2007 16:19:25 -0800 (PST) Message-ID: Date: Sat, 17 Nov 2007 16:19:25 -0800 From: "Kip Macy" To: "Mike Andrews" In-Reply-To: <20071117182232.T59492@mindcrime.int.bit0.com> MIME-Version: 1.0 Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 7bit Content-Disposition: inline References: <20071117003504.R31357@mindcrime.int.bit0.com> <20071117213316.499be43b@vlink.ru> <20071117170537.F59492@mindcrime.int.bit0.com> <20071117182232.T59492@mindcrime.int.bit0.com> Cc: Denis Shaposhnikov , Mike Silbersack , Andre Oppermann , freebsd-current@freebsd.org Subject: Re: bizarre em + TSO + MSS issue in RELENG_7 X-BeenThere: freebsd-current@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Discussions about the use of FreeBSD-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 18 Nov 2007 00:19:34 -0000 On Nov 17, 2007 3:23 PM, Mike Andrews wrote: > > On Sat, 17 Nov 2007, Kip Macy wrote: > > > On Nov 17, 2007 2:33 PM, Mike Andrews wrote: > >> On Sat, 17 Nov 2007, Kip Macy wrote: > >> > >>> On Nov 17, 2007 10:33 AM, Denis Shaposhnikov wrote: > >>>> On Sat, 17 Nov 2007 00:42:54 -0500 (EST) > >>>> Mike Andrews wrote: > >>>> > >>>>> Has anyone run into problems with MSS not being respected when using > >>>>> TSO, specifically on em cards? > >>>> > >>>> Yes, I wrote about this problem on the beginning of 2007, see > >>>> > >>>> http://tinyurl.com/3e5ak5 > >>>> > >>> > >>> if_em.c:3502 > >>> /* > >>> * Payload size per packet w/o any headers. > >>> * Length of all headers up to payload. > >>> */ > >>> TXD->tcp_seg_setup.fields.mss = htole16(mp->m_pkthdr.tso_segsz); > >>> TXD->tcp_seg_setup.fields.hdr_len = hdr_len; > >>> > >>> > >>> Please print out the value of tso_segsz here. It appears to be being > >>> set correctly. The only thing I can think of is that t_maxopd is not > >>> correct. As tso_segsz is correct here: > >> > >> > >> It repeatedly prints 1368 during a 1 meg file transfer over a connection > >> with a 1380 MSS. Any other printf's I can add? I'm working on a web page > >> with tcpdump / firewall log output illustrating the issue... > > > > Mike - > > Denis' tcpdump output doesn't show oversized segments, something else > > appears to be happening there. Can you post your tcpdump output > > somewhere? > > > URL sent off-list. if (tso) { m->m_pkthdr.csum_flags = CSUM_TSO; m->m_pkthdr.tso_segsz = tp->t_maxopd - optlen; } Please print the value of maxopd and optlen under "if (tso)" in tcp_output. I think the calculated optlen may be too small. -Kip