Page MenuHomeFreeBSD

D26060.id75969.diff
No OneTemporary

D26060.id75969.diff

Index: head/sys/netinet/cc/cc_cubic.c
===================================================================
--- head/sys/netinet/cc/cc_cubic.c
+++ head/sys/netinet/cc/cc_cubic.c
@@ -131,16 +131,11 @@
cubic_record_rtt(ccv);
/*
- * Regular ACK and we're not in cong/fast recovery and we're cwnd
- * limited and we're either not doing ABC or are just coming out
- * from slow-start or were application limited or are slow starting
- * or are doing ABC and we've sent a cwnd's worth of bytes.
+ * For a regular ACK and we're not in cong/fast recovery and
+ * we're cwnd limited, always recalculate cwnd.
*/
if (type == CC_ACK && !IN_RECOVERY(CCV(ccv, t_flags)) &&
- (ccv->flags & CCF_CWND_LIMITED) && (!V_tcp_do_rfc3465 ||
- (cubic_data->flags & (CUBICFLAG_IN_SLOWSTART | CUBICFLAG_IN_APPLIMIT)) ||
- CCV(ccv, snd_cwnd) <= CCV(ccv, snd_ssthresh) ||
- (V_tcp_do_rfc3465 && (ccv->flags & CCF_ABC_SENTAWND)))) {
+ (ccv->flags & CCF_CWND_LIMITED)) {
/* Use the logic in NewReno ack_received() for slow start. */
if (CCV(ccv, snd_cwnd) <= CCV(ccv, snd_ssthresh) ||
cubic_data->min_rtt_ticks == TCPTV_SRTTBASE) {
@@ -193,15 +188,8 @@
* cwnd growth.
* Only update snd_cwnd, if it doesn't shrink.
*/
- if (V_tcp_do_rfc3465)
- CCV(ccv, snd_cwnd) = ulmin(w_cubic_next,
- INT_MAX);
- else
- CCV(ccv, snd_cwnd) += ulmax(1,
- ((ulmin(w_cubic_next, INT_MAX) -
- CCV(ccv, snd_cwnd)) *
- CCV(ccv, t_maxseg)) /
- CCV(ccv, snd_cwnd));
+ CCV(ccv, snd_cwnd) = ulmin(w_cubic_next,
+ INT_MAX);
}
/*

File Metadata

Mime Type
text/plain
Expires
Sun, Mar 8, 1:23 AM (14 h, 4 m)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
29389500
Default Alt Text
D26060.id75969.diff (1 KB)

Event Timeline