Changeset View
Changeset View
Standalone View
Standalone View
sys/netinet/cc/cc_cubic.c
Show First 20 Lines • Show All 126 Lines • ▼ Show 20 Lines | cubic_ack_received(struct cc_var *ccv, uint16_t type) | ||||
unsigned long w_tf, w_cubic_next; | unsigned long w_tf, w_cubic_next; | ||||
int ticks_since_cong; | int ticks_since_cong; | ||||
cubic_data = ccv->cc_data; | cubic_data = ccv->cc_data; | ||||
cubic_record_rtt(ccv); | cubic_record_rtt(ccv); | ||||
/* | /* | ||||
* Regular ACK and we're not in cong/fast recovery and we're cwnd | * 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 | * limited and we're either not doing ABC or are just coming out | ||||
* from slow-start or were application limited or are slow starting | * 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. | * or are doing ABC and we've sent a cwnd's worth of bytes. | ||||
cc: Shall have the comment updated accordingly. | |||||
*/ | */ | ||||
if (type == CC_ACK && !IN_RECOVERY(CCV(ccv, t_flags)) && | if (type == CC_ACK && !IN_RECOVERY(CCV(ccv, t_flags)) && | ||||
(ccv->flags & CCF_CWND_LIMITED) && (!V_tcp_do_rfc3465 || | (ccv->flags & CCF_CWND_LIMITED)) { | ||||
Done Inline ActionsThe SUMMARY part of this change already says this. Can we remove this sentence "During the convex region of the cubic curve, cwnd steps can otherwise become very large and cause dramatic line-rate bursts." ? cc: The SUMMARY part of this change already says this.
Can we remove this sentence "During the… | |||||
(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)))) { | |||||
/* Use the logic in NewReno ack_received() for slow start. */ | /* Use the logic in NewReno ack_received() for slow start. */ | ||||
if (CCV(ccv, snd_cwnd) <= CCV(ccv, snd_ssthresh) || | if (CCV(ccv, snd_cwnd) <= CCV(ccv, snd_ssthresh) || | ||||
cubic_data->min_rtt_ticks == TCPTV_SRTTBASE) { | cubic_data->min_rtt_ticks == TCPTV_SRTTBASE) { | ||||
cubic_data->flags |= CUBICFLAG_IN_SLOWSTART; | cubic_data->flags |= CUBICFLAG_IN_SLOWSTART; | ||||
newreno_cc_algo.ack_received(ccv, type); | newreno_cc_algo.ack_received(ccv, type); | ||||
} else { | } else { | ||||
if (cubic_data->flags & (CUBICFLAG_IN_SLOWSTART | | if (cubic_data->flags & (CUBICFLAG_IN_SLOWSTART | | ||||
CUBICFLAG_IN_APPLIMIT)) { | CUBICFLAG_IN_APPLIMIT)) { | ||||
▲ Show 20 Lines • Show All 330 Lines • Show Last 20 Lines |
Shall have the comment updated accordingly.