Page MenuHomeFreeBSD

D22438.id65297.diff
No OneTemporary

D22438.id65297.diff

Index: sys/netinet/cc/cc_newreno.c
===================================================================
--- sys/netinet/cc/cc_newreno.c
+++ sys/netinet/cc/cc_newreno.c
@@ -213,9 +213,16 @@
* wirespeed, overloading router and switch buffers along the way.
*
* See RFC5681 Section 4.1. "Restarting Idle Connections".
+ *
+ * In addition, per RFC2861 Section 2, the ssthresh is set to the
+ * maximum of the former ssthresh or 3/4 of the old cwnd, to
+ * not exit slow-start prematurely.
*/
rw = tcp_compute_initwnd(tcp_maxseg(ccv->ccvc.tcp));
+ CCV(ccv, snd_ssthresh) = max(CCV(ccv, snd_ssthresh),
+ CCV(ccv, snd_cwnd)-(CCV(ccv, snd_cwnd)>>2));
+
CCV(ccv, snd_cwnd) = min(rw, CCV(ccv, snd_cwnd));
}

File Metadata

Mime Type
text/plain
Expires
Wed, Apr 22, 8:22 PM (8 h, 14 m)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
31998266
Default Alt Text
D22438.id65297.diff (725 B)

Event Timeline