svn commit: r186469 - projects/tcp_ffcaia2008_8.x/sys/netinet
Lawrence Stewart
lstewart at FreeBSD.org
Tue Dec 23 18:41:36 PST 2008
Author: lstewart
Date: Wed Dec 24 02:41:35 2008
New Revision: 186469
URL: http://svn.freebsd.org/changeset/base/186469
Log:
Ensure that slow starting after an RTO when ABC is enabled enforces
abc_l_var = 1 until we've recovered from any lingering badness.
I believe this commit pretty much wraps up the ABC implementation.
Inspired by: NetBSD
Sponsored by: FreeBSD Foundation
Modified:
projects/tcp_ffcaia2008_8.x/sys/netinet/tcp_input.c
Modified: projects/tcp_ffcaia2008_8.x/sys/netinet/tcp_input.c
==============================================================================
--- projects/tcp_ffcaia2008_8.x/sys/netinet/tcp_input.c Wed Dec 24 01:08:18 2008 (r186468)
+++ projects/tcp_ffcaia2008_8.x/sys/netinet/tcp_input.c Wed Dec 24 02:41:35 2008 (r186469)
@@ -2151,8 +2151,14 @@ process_ACK:
}
else
incr = max((incr * incr / cw), 1);
- /* In slow-start with ABC enabled? */
- } else if (V_tcp_do_rfc3465)
+ /*
+ * In slow-start with ABC enabled and no RTO in sight?
+ * (Must not use abc_l_var > 1 if slow starting after an
+ * RTO. On RTO, snd_nxt = snd_una, so the snd_nxt !=
+ * snd_max check is sufficient to handle this).
+ */
+ } else if (V_tcp_do_rfc3465 &&
+ tp->snd_nxt != tp->snd_max)
incr = min(acked,
V_tcp_abc_l_var * tp->t_maxseg);
/* ABC is on by default, so (incr == 0) frequently. */
More information about the svn-src-projects
mailing list