Page MenuHomeFreeBSD

Add PRR 6937bis heuristic and remove prr_conservative sysctl
Needs ReviewPublic

Authored by rscheff on Feb 21 2021, 12:43 AM.

Details

Summary

Proportional Rate Reduction (RFC6937) is in the process
of becoming a standard. The difference to the experimental
RFC is a heuristic, which automatically chooses between
CRB and SSRB schema. Only when snd_una advances (a partial
ACK), SSRB may be used. Also, that ACK must not have
any indication of ongoing loss - using the addition of
new holes into the scoreboard as proxy for such an
event.

Now based off D29441.

MFC after: 2 weeks

Diff Detail

Repository
rS FreeBSD src repository - subversion
Lint
Lint OK
Unit
No Unit Test Coverage
Build Status
Buildable 39090
Build 35979: arc lint + arc unit

Event Timeline

This revision is now accepted and ready to land.Feb 25 2021, 6:23 PM

The code above is my current understanding of the 6927bis draft. Note that this will make PRR loss recovery slightly less aggressive especially under heavy loss.

Also, this change probably doesn't change much in the pathological instance discueed in the draft, as the base stack has no capability at the moment, to retransmit lost retransmissions, and will instead run into an RTO and slow-start thereafter.

This revision now requires review to proceed.Feb 25 2021, 7:16 PM
  • use PRR-SSRB and PRR-CRB per -bis heuristic
  • update comment to include ACK split attack

no magic numbers in sack-changed.

  • rebase without D29441
  • make magic values human-readable