Page MenuHomeFreeBSD

D17614.id49302.diff
No OneTemporary

D17614.id49302.diff

Index: /head/sys/netinet/cc/cc_htcp.c
===================================================================
--- /head/sys/netinet/cc/cc_htcp.c
+++ /head/sys/netinet/cc/cc_htcp.c
@@ -366,7 +366,12 @@
pipe = CCV(ccv, snd_max) - ccv->curack;
if (pipe < CCV(ccv, snd_ssthresh))
- CCV(ccv, snd_cwnd) = pipe + CCV(ccv, t_maxseg);
+ /*
+ * Ensure that cwnd does not collapse to 1 mss under
+ * adverse conditions. RFC6582 (Std)
+ */
+ CCV(ccv, snd_cwnd) = max(pipe, CCV(ccv, t_maxseg)) +
+ CCV(ccv, t_maxseg);
else
CCV(ccv, snd_cwnd) = max(1, ((htcp_data->beta *
htcp_data->prev_cwnd / CCV(ccv, t_maxseg))
Index: /head/sys/netinet/cc/cc_newreno.c
===================================================================
--- /head/sys/netinet/cc/cc_newreno.c
+++ /head/sys/netinet/cc/cc_newreno.c
@@ -299,9 +299,14 @@
pipe = tcp_compute_pipe(ccv->ccvc.tcp);
else
pipe = CCV(ccv, snd_max) - ccv->curack;
-
+
if (pipe < CCV(ccv, snd_ssthresh))
- CCV(ccv, snd_cwnd) = pipe + CCV(ccv, t_maxseg);
+ /*
+ * Ensure that cwnd does not collapse to 1 mss under
+ * adverse conditions. RFC6582 (Std)
+ */
+ CCV(ccv, snd_cwnd) = max(pipe, CCV(ccv, t_maxseg) +
+ CCV(ccv, t_maxseg);
else
CCV(ccv, snd_cwnd) = CCV(ccv, snd_ssthresh);
}
Index: sys/netinet/cc/cc_cubic.c
===================================================================
--- sys/netinet/cc/cc_cubic.c
+++ sys/netinet/cc/cc_cubic.c
@@ -349,7 +349,12 @@
pipe = CCV(ccv, snd_max) - ccv->curack;
if (pipe < CCV(ccv, snd_ssthresh))
- CCV(ccv, snd_cwnd) = pipe + CCV(ccv, t_maxseg);
+ /*
+ * Ensure that cwnd does not collapse to 1 mss under
+ * adverse conditions. RFC6582 (Std)
+ */
+ CCV(ccv, snd_cwnd) = max(pipe, CCV(ccv, t_maxseg)) +
+ CCV(ccv, t_maxseg);
else
/* Update cwnd based on beta and adjusted max_cwnd. */
CCV(ccv, snd_cwnd) = max(1, ((CUBIC_BETA *

File Metadata

Mime Type
text/plain
Expires
Thu, Jul 30, 8:30 AM (6 h, 1 m)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
35736575
Default Alt Text
D17614.id49302.diff (1 KB)

Event Timeline