On Sep 2, 2020, at 1:05 AM, Frank Kardel <kardel%netbsd.org@localhost> wrote:
The path taken that leads to SND.WL2 being starved out is the pure ACK
section
which adjusts the send buffer, updates SND.UNA, SND.FACK, SND.HIGH,
frees mbuf
, send more data if available and returns.
SND.WL2 is never touched here an so a longer sequence can leave SND.WL2
far enough
behind for the stuck zero window size to occur.
Proposed fix:
Frank --
This analysis looks right to me, and your proposed fix looks correct. It looks like FreeBSD also has an equivalent assignment to SND.WL2 in the same spot for quite a while now, so I would say the change has had some solid bake time already. Ship it!
-- thorpej