tcp: rack fails to send out a TLP after a MTU change

When rack sends out a TLP it sets up various state to make sure
it avoids the cwnd (its been more than 1 RTT since our last send) and
it may at times send new data. If an MTU change as occurred
and our cwnd has collapsed we can have a situation where must_retran
flag is set and we obey the cwnd thus never sending the TLP and then
sitting stuck.

This one line fix addresses that problem
Reviewed by: Michael Tuexen
Sponsored by: Netflix Inc.
Differential Revision: https://reviews.freebsd.org/D33231
This commit is contained in:
Randall Stewart 2021-12-06 09:56:09 -05:00
parent e43d081f35
commit dadbc04250

View File

@ -17139,6 +17139,7 @@ rack_output(struct tcpcb *tp)
len = cwin;
}
if (rack->r_must_retran &&
(doing_tlp == 0) &&
(rsm == NULL)) {
/*
* Non-Sack and we had a RTO or Sack/non-Sack and a