From owner-freebsd-net@FreeBSD.ORG Mon Oct 21 20:59:29 2013 Return-Path: Delivered-To: freebsd-net@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) (using TLSv1 with cipher ADH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTP id A79E72A3 for ; Mon, 21 Oct 2013 20:59:29 +0000 (UTC) (envelope-from bounces+73574-866e-freebsd-net=freebsd.org@sendgrid.me) Received: from o3.shared.sendgrid.net (o3.shared.sendgrid.net [208.117.48.85]) by mx1.freebsd.org (Postfix) with SMTP id 391D025AC for ; Mon, 21 Oct 2013 20:59:28 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha1; c=relaxed; d=sendgrid.info; h=from:mime-version:to:subject:references:in-reply-to:content-type:content-transfer-encoding; s=smtpapi; bh=q3//Gt3EDmh2JVCh8h5XXPrDqSQ=; b=HlOI+g+66792c0A5rs nf8qC2c25KNe/kxdtBw/VJbBUJRaDHDWMjZaDn9qnGIUdTEx6CH7yHct3ozf9fhi ScsdqlV7uoWyniBHSNRpEMFC7NvVog+ealpwYf/YEKlHhlC0Fvq7ymrfJW5IYNX6 PhmkF5a2ww8EtS1OPnnA9VkXs= Received: by mf68.sendgrid.net with SMTP id mf68.17008.526595AC6 Mon, 21 Oct 2013 20:59:24 +0000 (GMT) Received: from mail.tarsnap.com (unknown [10.60.208.15]) by mi19 (SG) with ESMTP id 141dcd0a635.19b5.24f26ac for ; Mon, 21 Oct 2013 20:59:23 +0000 (UTC) Received: (qmail 23378 invoked from network); 21 Oct 2013 20:59:22 -0000 Received: from unknown (HELO clamshell.daemonology.net) (127.0.0.1) by ec2-107-20-205-189.compute-1.amazonaws.com with ESMTP; 21 Oct 2013 20:59:22 -0000 Received: (qmail 2552 invoked from network); 21 Oct 2013 20:58:17 -0000 Received: from unknown (HELO clamshell.daemonology.net) (127.0.0.1) by clamshell.daemonology.net with SMTP; 21 Oct 2013 20:58:17 -0000 Message-ID: <52659569.8090301@freebsd.org> Date: Mon, 21 Oct 2013 13:58:17 -0700 From: Colin Percival User-Agent: Mozilla/5.0 (X11; FreeBSD amd64; rv:24.0) Gecko/20100101 Thunderbird/24.0 MIME-Version: 1.0 To: Andre Oppermann , Julian Elischer , freebsd-net@freebsd.org Subject: Re: LRO causing stretch ACK violations interacts badly with delayed ACKing References: <52605EC9.6090406@freebsd.org> <526478D0.1000601@freebsd.org> <5264869E.4000308@freebsd.org> <5265450C.1060601@freebsd.org> <526558D2.3010505@freebsd.org> <52658726.4030106@freebsd.org> <52658A79.6070705@freebsd.org> In-Reply-To: <52658A79.6070705@freebsd.org> X-Enigmail-Version: 1.5.2 Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 7bit X-SG-EID: ISGKkmHlRE12gnWy0TjFyGQSFR1WnpjQdICm3qu6YxEPn0wRwSHzIPisqQSDBEelTYC5H5HWKw4NsLSHPP/hO2upTof4UXUPLSdEvWgS/+/wqWDLS780QS+XPN+QB5CK7FW+uWTRHSxOijdnwo5sKO/Z79Du1tgPDWPvK0EPZsM= X-BeenThere: freebsd-net@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: Networking and TCP/IP with FreeBSD List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 21 Oct 2013 20:59:29 -0000 On 10/21/13 13:11, Andre Oppermann wrote: > On 21.10.2013 21:57, Andre Oppermann wrote: >> This is an excellent observation! Our tcp doesn't know about LRO >> and I prepared the mbuf header to carry information about the number >> of merged LRO segments. That's not done yet again. However a small >> heuristic in tcp_input looking for segment > mss should be sufficient >> for now. Let me have a look at patching it into a suitable place. > > Please check out the patch below. Haven't tested it myself yet though. Yes, this works: > 00:00:00.000000 IP 10.148.229.78.24405 > 176.32.98.166.443: Flags [S], seq 3220740500, win 65535, options [mss 1460,nop,wscale 6,sackOK,TS val 350742 ecr 0], length 0 > 00:00:00.000613 IP 176.32.98.166.443 > 10.148.229.78.24405: Flags [S.], seq 1783557911, ack 3220740501, win 8190, options [mss 1460,nop,wscale 6], length 0 > 00:00:00.000657 IP 10.148.229.78.24405 > 176.32.98.166.443: Flags [.], ack 1, win 1026, length 0 > 00:00:00.001842 IP 176.32.98.166.443 > 10.148.229.78.24405: Flags [.], ack 1, win 127, length 0 > 00:00:00.032269 IP 10.148.229.78.24405 > 176.32.98.166.443: Flags [P.], seq 1:318, ack 1, win 1026, length 317 > 00:00:00.033080 IP 176.32.98.166.443 > 10.148.229.78.24405: Flags [.], ack 318, win 108, length 0 > 00:00:00.033115 IP 176.32.98.166.443 > 10.148.229.78.24405: Flags [.], seq 1:4097, ack 318, win 108, length 4096 > 00:00:00.033129 IP 10.148.229.78.24405 > 176.32.98.166.443: Flags [.], ack 4097, win 962, length 0 Please commit this fix and get it merged for 10.0-RELEASE! -- Colin Percival Security Officer Emeritus, FreeBSD | The power to serve Founder, Tarsnap | www.tarsnap.com | Online backups for the truly paranoid