svn commit: r196107 - projects/tcp_ffcaia2008_8.x/sys/netinet
Lawrence Stewart
lstewart at FreeBSD.org
Tue Aug 11 22:26:11 UTC 2009
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,
More information about the svn-src-projects
mailing list