Changeset View
Changeset View
Standalone View
Standalone View
sys/netinet/cc/cc_cubic.c
Show First 20 Lines • Show All 264 Lines • ▼ Show 20 Lines | if (CCV(ccv, snd_cwnd) <= CCV(ccv, snd_ssthresh) || | ||||
cubic_log_hystart_event(ccv, cubic_data, 11, CCV(ccv, snd_ssthresh)); | cubic_log_hystart_event(ccv, cubic_data, 11, CCV(ccv, snd_ssthresh)); | ||||
} | } | ||||
if ((cubic_data->flags & CUBICFLAG_RTO_EVENT) && | if ((cubic_data->flags & CUBICFLAG_RTO_EVENT) && | ||||
(cubic_data->flags & CUBICFLAG_IN_SLOWSTART)) { | (cubic_data->flags & CUBICFLAG_IN_SLOWSTART)) { | ||||
/* RFC8312 Section 4.7 */ | /* RFC8312 Section 4.7 */ | ||||
cubic_data->flags &= ~(CUBICFLAG_RTO_EVENT | | cubic_data->flags &= ~(CUBICFLAG_RTO_EVENT | | ||||
CUBICFLAG_IN_SLOWSTART); | CUBICFLAG_IN_SLOWSTART); | ||||
cubic_data->W_max = CCV(ccv, snd_cwnd); | cubic_data->W_max = CCV(ccv, snd_cwnd); | ||||
cubic_data->t_epoch = ticks; | |||||
cubic_data->K = 0; | cubic_data->K = 0; | ||||
} else if (cubic_data->flags & (CUBICFLAG_IN_SLOWSTART | | } else if (cubic_data->flags & (CUBICFLAG_IN_SLOWSTART | | ||||
CUBICFLAG_IN_APPLIMIT)) { | CUBICFLAG_IN_APPLIMIT)) { | ||||
cubic_data->flags &= ~(CUBICFLAG_IN_SLOWSTART | | cubic_data->flags &= ~(CUBICFLAG_IN_SLOWSTART | | ||||
CUBICFLAG_IN_APPLIMIT); | CUBICFLAG_IN_APPLIMIT); | ||||
cubic_data->t_epoch = ticks; | cubic_data->t_epoch = ticks; | ||||
cubic_data->K = cubic_k(cubic_data->W_max / | cubic_data->K = cubic_k(cubic_data->W_max / | ||||
CCV(ccv, t_maxseg)); | CCV(ccv, t_maxseg)); | ||||
▲ Show 20 Lines • Show All 461 Lines • Show Last 20 Lines |