Sending CWR after an RTO is according to RFC 3168 generally required
and not only for the DCTCP congestion control. Submitted by: Richard Scheffenegger Reviewed by: rgrimes, tuexen@, Cheng Cui MFC after: 1 week Differential Revision: https://reviews.freebsd.org/D23119
This commit is contained in:
parent
47e2c17c12
commit
9cc711c9ff
@ -284,7 +284,6 @@ dctcp_cong_signal(struct cc_var *ccv, uint32_t type)
|
|||||||
dctcp_data->ece_curr = 1;
|
dctcp_data->ece_curr = 1;
|
||||||
break;
|
break;
|
||||||
case CC_RTO:
|
case CC_RTO:
|
||||||
CCV(ccv, t_flags2) |= TF2_ECN_SND_CWR;
|
|
||||||
dctcp_update_alpha(ccv);
|
dctcp_update_alpha(ccv);
|
||||||
dctcp_data->save_sndnxt += CCV(ccv, t_maxseg);
|
dctcp_data->save_sndnxt += CCV(ccv, t_maxseg);
|
||||||
dctcp_data->num_cong_events++;
|
dctcp_data->num_cong_events++;
|
||||||
|
@ -460,6 +460,8 @@ cc_cong_signal(struct tcpcb *tp, struct tcphdr *th, uint32_t type)
|
|||||||
tp->snd_ssthresh = max(2, min(tp->snd_wnd, tp->snd_cwnd) / 2 /
|
tp->snd_ssthresh = max(2, min(tp->snd_wnd, tp->snd_cwnd) / 2 /
|
||||||
maxseg) * maxseg;
|
maxseg) * maxseg;
|
||||||
tp->snd_cwnd = maxseg;
|
tp->snd_cwnd = maxseg;
|
||||||
|
if (tp->t_flags2 & TF2_ECN_PERMIT)
|
||||||
|
tp->t_flags2 |= TF2_ECN_SND_CWR;
|
||||||
break;
|
break;
|
||||||
case CC_RTO_ERR:
|
case CC_RTO_ERR:
|
||||||
TCPSTAT_INC(tcps_sndrexmitbad);
|
TCPSTAT_INC(tcps_sndrexmitbad);
|
||||||
|
@ -1813,6 +1813,8 @@ rack_cong_signal(struct tcpcb *tp, struct tcphdr *th, uint32_t type)
|
|||||||
tp->snd_ssthresh = max(2, min(tp->snd_wnd, tp->snd_cwnd) / 2 /
|
tp->snd_ssthresh = max(2, min(tp->snd_wnd, tp->snd_cwnd) / 2 /
|
||||||
ctf_fixed_maxseg(tp)) * ctf_fixed_maxseg(tp);
|
ctf_fixed_maxseg(tp)) * ctf_fixed_maxseg(tp);
|
||||||
tp->snd_cwnd = ctf_fixed_maxseg(tp);
|
tp->snd_cwnd = ctf_fixed_maxseg(tp);
|
||||||
|
if (tp->t_flags2 & TF2_ECN_PERMIT)
|
||||||
|
tp->t_flags2 |= TF2_ECN_SND_CWR;
|
||||||
break;
|
break;
|
||||||
case CC_RTO_ERR:
|
case CC_RTO_ERR:
|
||||||
TCPSTAT_INC(tcps_sndrexmitbad);
|
TCPSTAT_INC(tcps_sndrexmitbad);
|
||||||
|
Loading…
Reference in New Issue
Block a user