calculate prr_out correctly when pipe < ssthresh

Reviewed By:	#transport, tuexen
MFC after:	3 days
Sponsored by:	NetApp, Inc.
Differential Revision:	https://reviews.freebsd.org/D28998
This commit is contained in:
Richard Scheffenegger 2021-03-01 16:25:46 +01:00
parent 066dab17e7
commit 0b0f8b359d

View file

@ -2600,10 +2600,12 @@ tcp_do_segment(struct mbuf *m, struct tcphdr *th, struct socket *so,
} else {
if (V_tcp_do_prr_conservative)
limit = tp->sackhint.prr_delivered -
tp->sackhint.sack_bytes_rexmit;
(tp->sackhint.sack_bytes_rexmit +
(tp->snd_nxt - tp->snd_recover));
else
limit = imax(tp->sackhint.prr_delivered -
tp->sackhint.sack_bytes_rexmit,
(tp->sackhint.sack_bytes_rexmit +
(tp->snd_nxt - tp->snd_recover)),
del_data) + maxseg;
snd_cnt = imin(tp->snd_ssthresh - pipe, limit);
}
@ -3976,10 +3978,12 @@ tcp_prr_partialack(struct tcpcb *tp, struct tcphdr *th)
} else {
if (V_tcp_do_prr_conservative)
limit = tp->sackhint.prr_delivered -
tp->sackhint.sack_bytes_rexmit;
(tp->sackhint.sack_bytes_rexmit +
(tp->snd_nxt - tp->snd_recover));
else
limit = imax(tp->sackhint.prr_delivered -
tp->sackhint.sack_bytes_rexmit,
(tp->sackhint.sack_bytes_rexmit +
(tp->snd_nxt - tp->snd_recover)),
del_data) + maxseg;
snd_cnt = imin((tp->snd_ssthresh - pipe), limit);
}