From owner-freebsd-net@FreeBSD.ORG Wed Oct 23 03:32:45 2013 Return-Path: Delivered-To: freebsd-net@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [8.8.178.115]) (using TLSv1 with cipher ADH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTP id 7F44E794; Wed, 23 Oct 2013 03:32:45 +0000 (UTC) (envelope-from julian@freebsd.org) Received: from vps1.elischer.org (vps1.elischer.org [204.109.63.16]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mx1.freebsd.org (Postfix) with ESMTPS id 351362D52; Wed, 23 Oct 2013 03:32:44 +0000 (UTC) Received: from jre-mbp.elischer.org (ppp121-45-246-96.lns20.per2.internode.on.net [121.45.246.96]) (authenticated bits=0) by vps1.elischer.org (8.14.7/8.14.7) with ESMTP id r9N3WYNX093777 (version=TLSv1/SSLv3 cipher=DHE-RSA-CAMELLIA256-SHA bits=256 verify=NO); Tue, 22 Oct 2013 20:32:36 -0700 (PDT) (envelope-from julian@freebsd.org) Message-ID: <5267434E.7050901@freebsd.org> Date: Wed, 23 Oct 2013 11:32:30 +0800 From: Julian Elischer User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.8; rv:24.0) Gecko/20100101 Thunderbird/24.0.1 MIME-Version: 1.0 To: Andre Oppermann , Colin Percival , 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> <52659569.8090301@freebsd.org> <526630C3.4090008@freebsd.org> In-Reply-To: <526630C3.4090008@freebsd.org> Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit 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: Wed, 23 Oct 2013 03:32:45 -0000 On 10/22/13 4:01 PM, Andre Oppermann wrote: > On 21.10.2013 22:58, Colin Percival wrote: >> 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! > > I committed it to my staging branch pending review: > http://svnweb.freebsd.org/changeset/base/256879 > > It should go into HEAD later this week and the MFC to 10.x then depends > on re@'s take on it. > I think it's true for 9.2 as well. not sure about 8 or 9.1