Page MenuHomeFreeBSD

Keep doing SACK loss recovery when ACKs suddenly lack SACK blocks
ClosedPublic

Authored by rscheff on Aug 4 2022, 6:48 PM.
Tags
None
Referenced Files
F160319044: D36046.id108892.diff
Tue, Jun 23, 5:45 AM
Unknown Object (File)
Mon, Jun 22, 12:25 PM
Unknown Object (File)
Sat, Jun 13, 2:01 AM
Unknown Object (File)
Tue, Jun 9, 5:49 AM
Unknown Object (File)
May 17 2026, 12:56 AM
Unknown Object (File)
May 16 2026, 8:41 AM
Unknown Object (File)
May 15 2026, 10:39 PM
Unknown Object (File)
May 15 2026, 12:29 PM
Subscribers

Details

Summary

While a receiver should continue sending SACK blocks for the
duration of a SACK loss recovery, if for some reason the
TCP options no longer contain these SACK blocks, but we
already started maintaining the Scoreboard, keep on handling
incoming ACKs (without SACK) as belonging to the SACK recovery.

This should mitigate an issue with some clients.

Diff Detail

Repository
rG FreeBSD src repository
Lint
Lint Not Applicable
Unit
Tests Not Applicable

Event Timeline

  • missed closing bracket, and PRR conditional
This revision is now accepted and ready to land.Aug 11 2022, 3:27 PM

Will modify the 3 conditionals to an inline function, with added comments to the two corner cases (RTO when only pure non-SACK dupacks get received; RTO when client renegs receive buffer - and stops sending SACK blocks

  • make logic check an static inline function throughout
This revision now requires review to proceed.Aug 12 2022, 12:00 AM
This revision is now accepted and ready to land.Aug 25 2022, 4:51 PM
This revision now requires review to proceed.Aug 31 2022, 12:06 PM
This revision is now accepted and ready to land.Aug 31 2022, 12:12 PM