Page MenuHomeFreeBSD

D25065.id.diff
No OneTemporary

D25065.id.diff

Index: head/sys/netinet/cc/cc_cubic.c
===================================================================
--- head/sys/netinet/cc/cc_cubic.c
+++ head/sys/netinet/cc/cc_cubic.c
@@ -94,6 +94,7 @@
uint32_t flags;
#define CUBICFLAG_CONG_EVENT 0x00000001 /* congestion experienced */
#define CUBICFLAG_IN_SLOWSTART 0x00000002 /* in slow start */
+#define CUBICFLAG_IN_APPLIMIT 0x00000004 /* application limited */
/* Minimum observed rtt in ticks. */
int min_rtt_ticks;
/* Mean observed rtt between congestion epochs. */
@@ -153,8 +154,10 @@
cubic_data->t_last_cong = ticks - INT_MAX;
}
- if (cubic_data->flags & CUBICFLAG_IN_SLOWSTART) {
- cubic_data->flags &= ~CUBICFLAG_IN_SLOWSTART;
+ if (cubic_data->flags & (CUBICFLAG_IN_SLOWSTART |
+ CUBICFLAG_IN_APPLIMIT)) {
+ cubic_data->flags &= ~(CUBICFLAG_IN_SLOWSTART |
+ CUBICFLAG_IN_APPLIMIT);
cubic_data->t_last_cong = ticks;
cubic_data->K = 0;
}
@@ -214,6 +217,9 @@
CCV(ccv, t_maxseg));
}
}
+ } else if (type == CC_ACK && !IN_RECOVERY(CCV(ccv, t_flags)) &&
+ !(ccv->flags & CCF_CWND_LIMITED)) {
+ cubic_data->flags |= CUBICFLAG_IN_APPLIMIT;
}
}

File Metadata

Mime Type
text/plain
Expires
Wed, Nov 20, 8:32 AM (2 h, 53 m)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
14734067
Default Alt Text
D25065.id.diff (1 KB)

Event Timeline