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.
Details
Details
- Reviewers
rscheff rrs - Group Reviewers
transport - Commits
- rS364754: RFC 3465 defines a limit L used in TCP slow start for limiting the number
Diff Detail
Diff Detail
- Repository
- rS FreeBSD src repository - subversion
- Lint
Lint Not Applicable - Unit
Tests Not Applicable
Event Timeline
Comment Actions
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?