Page MenuHomeFreeBSD

tcp: ensure that SACK hole->rxmit never ends up left of the hole with LRD
ClosedPublic

Authored by rscheff on Aug 4 2025, 7:34 PM.
Tags
None
Referenced Files
Unknown Object (File)
Sun, Mar 15, 5:46 AM
Unknown Object (File)
Thu, Mar 12, 10:53 AM
Unknown Object (File)
Wed, Mar 11, 6:58 AM
Unknown Object (File)
Wed, Mar 11, 6:58 AM
Unknown Object (File)
Thu, Mar 5, 3:54 AM
Unknown Object (File)
Mon, Mar 2, 8:06 AM
Unknown Object (File)
Sun, Mar 1, 1:28 PM
Unknown Object (File)
Sun, Mar 1, 7:29 AM

Details

Summary

When a RTO happens during SACK loss recovery, snd_recover can possibly pulled left.
With Lost Retransmission Detection (LRD) this can lead to rxmit of a hole to end up
pointing to the left of the hole, which is unexpected and leads to complications.

Diff Detail

Repository
rG FreeBSD src repository
Lint
Lint Passed
Unit
No Test Coverage
Build Status
Buildable 65950
Build 62833: arc lint + arc unit

Event Timeline

This revision is now accepted and ready to land.Aug 4 2025, 7:52 PM

I am ok with this patch. But I want to be sure how snd_recover shrinks. Is it because tp->snd_recover = tp->snd_recover_prev in CC_RTO_ERR? But that shall not be in SACK recovery.