Lines Matching defs:cubicd

107 cubic_log_hystart_event(struct cc_var *ccv, struct cubic *cubicd, uint8_t mod, uint32_t flex1)
135 log.u_bbr.flex2 = cubicd->css_current_round_minrtt;
136 log.u_bbr.flex3 = cubicd->css_lastround_minrtt;
137 log.u_bbr.flex4 = cubicd->css_rttsample_count;
138 log.u_bbr.flex5 = cubicd->css_entered_at_round;
139 log.u_bbr.flex6 = cubicd->css_baseline_minrtt;
141 log.u_bbr.flex7 = cubicd->flags & 0x0000ffff;
143 log.u_bbr.epoch = cubicd->css_current_round;
145 log.u_bbr.lt_epoch = cubicd->css_fas_at_css_entry;
146 log.u_bbr.pkts_out = cubicd->css_last_fas;
147 log.u_bbr.delivered = cubicd->css_lowrtt_fas;
158 cubic_does_slow_start(struct cc_var *ccv, struct cubic *cubicd)
175 cubicd->flags |= CUBICFLAG_IN_SLOWSTART;
181 (cubicd->flags & CUBICFLAG_HYSTART_ENABLED) &&
182 ((cubicd->flags & CUBICFLAG_HYSTART_IN_CSS) == 0)) {
188 if ((cubicd->css_rttsample_count >= hystart_n_rttsamples) &&
189 (cubicd->css_current_round_minrtt != 0xffffffff) &&
190 (cubicd->css_lastround_minrtt != 0xffffffff)) {
194 rtt_thresh = (cubicd->css_lastround_minrtt >> 3);
199 cubic_log_hystart_event(ccv, cubicd, 1, rtt_thresh);
201 if (cubicd->css_current_round_minrtt >= (cubicd->css_lastround_minrtt + rtt_thresh)) {
203 cubicd->flags |= CUBICFLAG_HYSTART_IN_CSS;
204 cubicd->css_fas_at_css_entry = cubicd->css_lowrtt_fas;
212 cubicd->css_baseline_minrtt = cubicd->css_current_round_minrtt;
213 cubicd->css_entered_at_round = cubicd->css_current_round;
214 cubic_log_hystart_event(ccv, cubicd, 2, rtt_thresh);
225 if (cubicd->flags & CUBICFLAG_HYSTART_IN_CSS) {
227 cubic_log_hystart_event(ccv, cubicd, 3, incr);
667 struct cubic *cubicd;
669 cubicd = ccv->cc_data;
676 cubicd->css_rttsample_count++;
677 cubicd->css_last_fas = fas;
678 if (cubicd->css_current_round_minrtt > usec_rtt) {
679 cubicd->css_current_round_minrtt = usec_rtt;
680 cubicd->css_lowrtt_fas = cubicd->css_last_fas;
682 if ((cubicd->css_rttsample_count >= hystart_n_rttsamples) &&
683 (cubicd->css_current_round_minrtt != 0xffffffff) &&
684 (cubicd->css_current_round_minrtt < cubicd->css_baseline_minrtt) &&
685 (cubicd->css_lastround_minrtt != 0xffffffff)) {
690 cubicd->flags &= ~CUBICFLAG_HYSTART_IN_CSS;
691 cubic_log_hystart_event(ccv, cubicd, 8, cubicd->css_baseline_minrtt);
692 cubicd->css_baseline_minrtt = 0xffffffff;
694 if (cubicd->flags & CUBICFLAG_HYSTART_ENABLED)
695 cubic_log_hystart_event(ccv, cubicd, 5, usec_rtt);
701 struct cubic *cubicd;
703 cubicd = ccv->cc_data;
705 cubicd->css_lastround_minrtt = cubicd->css_current_round_minrtt;
706 cubicd->css_current_round_minrtt = 0xffffffff;
707 cubicd->css_rttsample_count = 0;
708 cubicd->css_current_round = round_cnt;
709 if ((cubicd->flags & CUBICFLAG_HYSTART_IN_CSS) &&
710 ((round_cnt - cubicd->css_entered_at_round) >= hystart_css_rounds)) {
720 CCV(ccv, snd_ssthresh) = ((cubicd->css_lowrtt_fas + cubicd->css_fas_at_css_entry) / 2);
722 CCV(ccv, snd_ssthresh) = cubicd->css_lowrtt_fas;
724 CCV(ccv, snd_cwnd) = cubicd->css_fas_at_css_entry;
725 cubicd->css_entered_at_round = round_cnt;
729 cubicd->flags &= ~CUBICFLAG_HYSTART_IN_CSS;
731 cubicd->flags &= ~CUBICFLAG_HYSTART_ENABLED;
733 cubic_log_hystart_event(ccv, cubicd, 6, CCV(ccv, snd_ssthresh));
735 if (cubicd->flags & CUBICFLAG_HYSTART_ENABLED)
736 cubic_log_hystart_event(ccv, cubicd, 4, round_cnt);