Skip site navigation (1)Skip section navigation (2)
Date:      Tue, 11 Aug 2009 22:26:10 +0000 (UTC)
From:      Lawrence Stewart <lstewart@FreeBSD.org>
To:        src-committers@freebsd.org, svn-src-projects@freebsd.org
Subject:   svn commit: r196107 - projects/tcp_ffcaia2008_8.x/sys/netinet
Message-ID:  <200908112226.n7BMQAPU043709@svn.freebsd.org>

next in thread | raw e-mail | index | archive | help
Author: lstewart
Date: Tue Aug 11 22:26:10 2009
New Revision: 196107
URL: http://svn.freebsd.org/changeset/base/196107

Log:
  Tweak the accounting math in my previous commit so that it actually calculates
  the correct values. The sack_hole_bytes variable should now be ready to use to
  influence SACK recovery behaviour.
  
  Sponsored by:	FreeBSD Foundation

Modified:
  projects/tcp_ffcaia2008_8.x/sys/netinet/tcp_sack.c

Modified: projects/tcp_ffcaia2008_8.x/sys/netinet/tcp_sack.c
==============================================================================
--- projects/tcp_ffcaia2008_8.x/sys/netinet/tcp_sack.c	Tue Aug 11 22:09:43 2009	(r196106)
+++ projects/tcp_ffcaia2008_8.x/sys/netinet/tcp_sack.c	Tue Aug 11 22:26:10 2009	(r196107)
@@ -352,7 +352,7 @@ tcp_sackhole_remove(struct tcpcb *tp, st
 #endif
 	*/
 	if (TAILQ_EMPTY(&tp->snd_holes) && tp->sack_hole_bytes != 0) {
-		printf("tp->sack_hole_bytes is %d instead of 0", tp->sack_hole_bytes);
+		printf("conn (%p) tp->sack_hole_bytes is %d instead of 0\n", tp, tp->sack_hole_bytes);
 		tp->sack_hole_bytes = 0;
 	}
 }
@@ -524,7 +524,7 @@ tcp_sack_doack(struct tcpcb *tp, struct 
 			/* Data acks at least the end of hole. */
 			if (SEQ_GEQ(sblkp->end, cur->end)) {
 				/* Shrink hole: slide end of hole backward. */
-				tp->sack_hole_bytes -= sblkp->start - cur->end;
+				tp->sack_hole_bytes -= cur->end - sblkp->start;
 				cur->end = sblkp->start;
 				cur->rxmit = SEQ_MIN(cur->rxmit, cur->end);
 			} else {
@@ -552,8 +552,6 @@ tcp_sack_doack(struct tcpcb *tp, struct 
 					 * sblkp->end-sblkp->start
 					 */
 					tp->sack_hole_bytes -=	cur->end -
-								sblkp->end -
-								sblkp->end +
 								sblkp->start;
 					cur->end = sblkp->start;
 					cur->rxmit = SEQ_MIN(cur->rxmit,



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