Page MenuHomeFreeBSD

Don't apply L in congestion avoidance
ClosedPublic

Authored by tuexen on Aug 19 2020, 8:13 AM.
Tags
None
Referenced Files
F81641024: D26120.id76193.diff
Fri, Apr 19, 9:06 AM
Unknown Object (File)
Mar 9 2024, 11:48 PM
Unknown Object (File)
Mar 7 2024, 8:55 PM
Unknown Object (File)
Mar 3 2024, 10:51 PM
Unknown Object (File)
Jan 13 2024, 8:51 AM
Unknown Object (File)
Dec 27 2023, 11:37 PM
Unknown Object (File)
Dec 22 2023, 10:11 PM
Unknown Object (File)
Dec 12 2023, 2:13 AM
Subscribers

Details

Summary

RFC 3465 defines a limit L used in slow start for limiting the number of acked bytes as described in Section 2.2. This patch ensures that this limit is not also applied in congestion avoidance.
Applying this limit also in congestion avoidance can result in using less bandwidth than allowed.
This issue was reported by l.tian.email@gmail.com on the net mailing list.

Diff Detail

Repository
rS FreeBSD src repository - subversion
Lint
Lint Not Applicable
Unit
Tests Not Applicable

Event Timeline

Looks good - t_bytes_acked is already a "corrected" value to deal with ACK duplication / ACK splitting; During CA, cwnd should grow by 1 MSS every window, and accounting when a window was transferred is t_bytes_acked.

Having had this cap here was certainly not correct, as that prevents proper operation with ACK thinning / ACK suppression (also common in DOCSIS / WLAN environments).

Which makes me wonder, do we have any other aspects of the pluggable congestion control framework, where ACK thinning is not dealt with correctly?

This revision is now accepted and ready to land.Aug 19 2020, 9:06 AM