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
Unknown Object (File)
Jan 27 2024, 9:42 PM
Unknown Object (File)
Jan 27 2024, 9:42 PM
Unknown Object (File)
Jan 27 2024, 9:38 PM
Unknown Object (File)
Jan 27 2024, 9:37 PM
Unknown Object (File)
Jan 27 2024, 9:37 PM
Unknown Object (File)
Jan 27 2024, 9:30 PM
Unknown Object (File)
Jan 27 2024, 3:24 AM
Unknown Object (File)
Jan 9 2024, 3:37 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
rS FreeBSD src repository - subversion
Lint
Lint Passed
Unit
No Test Coverage
Build Status
Buildable 46871
Build 43760: arc lint + arc unit

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