Page MenuHomeFreeBSD

PRR: Avoid accounting left-edge twice in partial ACK.
ClosedPublic

Authored by rscheff on Feb 20 2021, 6:39 PM.
Tags
None
Referenced Files
F83722752: D28819.id84349.diff
Tue, May 14, 12:36 AM
F83722732: D28819.id.diff
Tue, May 14, 12:35 AM
F83722729: D28819.id84337.diff
Tue, May 14, 12:35 AM
F83722725: D28819.id84687.diff
Tue, May 14, 12:35 AM
Unknown Object (File)
Sat, May 11, 1:12 AM
Unknown Object (File)
Mon, May 6, 10:23 PM
Unknown Object (File)
Wed, May 1, 5:37 PM
Unknown Object (File)
Tue, Apr 23, 6:46 PM
Subscribers

Details

Summary

After D18624, accounting the advance of the left edge
in a partial ack is already included in
sackhint.delivered_data.

Therefore this is a cumulative error of the
prr_delivered bytes, over the course of multiple
partial acks while lost packets get acknowledged in
sequence.

Test Plan

Corrected behavior, maximum of 2 segments per ACK:

Incorrect behavior due to double-accounting (counterintutively, being more agressive pushing data out - 3 segments per ACK):

Diff Detail

Repository
rS FreeBSD src repository - subversion
Lint
Lint Passed
Unit
No Test Coverage
Build Status
Buildable 37226
Build 34115: arc lint + arc unit

Event Timeline

rscheff retitled this revision from PRR: avoid accounting left-edge twice in parital ack to PRR: Avoid accounting left-edge twice in partial ACK..Feb 20 2021, 7:42 PM
This revision is now accepted and ready to land.Feb 21 2021, 12:01 AM