NetBSD Problem Report #34748

From yamt@mwd.biglobe.ne.jp  Sat Oct  7 21:43:12 2006
Return-Path: <yamt@mwd.biglobe.ne.jp>
Received: from mail.netbsd.org (mail.netbsd.org [204.152.190.11])
	by narn.NetBSD.org (Postfix) with ESMTP id 895A263BB50
	for <gnats-bugs@gnats.NetBSD.org>; Sat,  7 Oct 2006 21:43:12 +0000 (UTC)
Message-Id: <20061007200922.3DEE411705@yamt.dyndns.org>
Date: Sun,  8 Oct 2006 05:09:22 +0900 (JST)
From: yamt@mwd.biglobe.ne.jp
Reply-To: yamt@mwd.biglobe.ne.jp
To: gnats-bugs@NetBSD.org
Subject: our tcp stack can enter fast recovery due to DSACKs
X-Send-Pr-Version: 3.95

>Number:         34748
>Category:       kern
>Synopsis:       our tcp stack can enter fast recovery due to DSACKs
>Confidential:   no
>Severity:       non-critical
>Priority:       medium
>Responsible:    kern-bug-people
>State:          open
>Class:          sw-bug
>Submitter-Id:   net
>Arrival-Date:   Sat Oct 07 21:45:02 +0000 2006
>Closed-Date:    
>Last-Modified:  Tue Jan 29 12:36:04 +0000 2008
>Originator:     YAMAMOTO Takashi <yamt@mwd.biglobe.ne.jp>
>Release:        NetBSD 4.99.3
>Organization:

>Environment:


System: NetBSD 4.99.3
Architecture: i386
Machine: i386
>Description:
	our tcp stack can treat DSACKs as pure dupacks and enter fast recovery
	erroneously.
>How-To-Repeat:
	code inspection.
>Fix:

Index: netinet/tcp_input.c
===================================================================
--- netinet/tcp_input.c	(revision 1807)
+++ netinet/tcp_input.c	(revision 1808)
@@ -2276,7 +2276,8 @@ after_listen:
 				    th->th_ack != tp->snd_una)
 					tp->t_dupacks = 0;
 				else if (tp->t_partialacks < 0 &&
-					 (++tp->t_dupacks == tcprexmtthresh ||
+					 ((!TCP_SACK_ENABLED(tp) &&
+					 ++tp->t_dupacks == tcprexmtthresh) ||
 					 TCP_FACK_FASTRECOV(tp))) {
 					tcp_seq onxt;


>Release-Note:

>Audit-Trail:
From: YAMAMOTO Takashi <yamt@netbsd.org>
To: gnats-bugs@NetBSD.org
Cc: 
Subject: PR/34748 CVS commit: src/sys/netinet
Date: Tue, 17 Oct 2006 09:31:17 +0000 (UTC)

 Module Name:	src
 Committed By:	yamt
 Date:		Tue Oct 17 09:31:17 UTC 2006

 Modified Files:
 	src/sys/netinet: tcp_input.c

 Log Message:
 tcp_input: if we have SACK, don't enter fastrecovery on three dupacks.
 otherwise, we can enter fastrecovery due to DSACKs, which we treat
 as dupacks here.  PR/34748.  reviewed by Rui Paulo.


 To generate a diff of this commit:
 cvs rdiff -r1.252 -r1.253 src/sys/netinet/tcp_input.c

 Please note that diffs are not public domain; they are subject to the
 copyright notices on the relevant files.

State-Changed-From-To: open->closed
State-Changed-By: yamt@netbsd.org
State-Changed-When: Tue, 17 Oct 2006 11:13:13 +0000
State-Changed-Why:
fixed.


State-Changed-From-To: closed->open
State-Changed-By: yamt@narn.netbsd.org
State-Changed-When: Tue, 29 Jan 2008 12:36:04 +0000
State-Changed-Why:
the fix was reverted.


>Unformatted:

NetBSD Home
NetBSD PR Database Search

(Contact us) $NetBSD: query-full-pr,v 1.39 2013/11/01 18:47:49 spz Exp $
$NetBSD: gnats_config.sh,v 1.8 2006/05/07 09:23:38 tsutsui Exp $
Copyright © 1994-2007 The NetBSD Foundation, Inc. ALL RIGHTS RESERVED.