HomeFreeBSD

tcp: fix duplicate retransmissions when RTO happens during SACK loss recovery

Description

tcp: fix duplicate retransmissions when RTO happens during SACK loss recovery

When snd_nxt doesn't track snd_max, partial SACK ACKs may elicit
unexpected duplicate retransmissions. This is usually masked by
LRO not necessarily ACKing every individual segment, and prior
to RFC6675 SACK loss recovery, harder to trigger even when an
RTO happens while SACK loss recovery is ongoing.

Address this by improving the logic when to start a SACK loss recovery
and how to deal with a RTO, as well as improvements to the adjusted
congestion window during transmission selection.

Reviewed By: tuexen, cc, transport
Sponsored by: NetApp, Inc.
MFC after: 1 week
Differential Revision: https://reviews.freebsd.org/D43355

(cherry picked from commit 440f4ba18e3ab7be912858bbcb96a419fcf14809)

Details

Provenance
rscheffAuthored on Oct 10 2024, 10:50 AM
Reviewer
transport
Differential Revision
D43355: tcp: fix erroneous transmission selection after RTO w/ SACK incoming
Parents
rG6b151ad1c83a: timeout(1): Update STANDARDS section
Branches
Unknown
Tags
Unknown