Page MenuHomeFreeBSD

TCP Cubic: Recalculate cubic cwnd for every ack.
ClosedPublic

Authored by rscheff on Aug 13 2020, 8:17 PM.
Tags
None
Referenced Files
Unknown Object (File)
Wed, Mar 20, 7:39 PM
Unknown Object (File)
Wed, Mar 20, 7:39 PM
Unknown Object (File)
Feb 10 2024, 6:29 PM
Unknown Object (File)
Jan 29 2024, 10:43 AM
Unknown Object (File)
Jan 6 2024, 7:26 PM
Unknown Object (File)
Jan 6 2024, 7:26 PM
Unknown Object (File)
Dec 11 2023, 7:37 AM
Unknown Object (File)
Oct 28 2023, 9:55 PM
Subscribers

Details

Summary

Since cubic calculates cwnd based on absolute
time, retaining RFC3465 (ABC) once-per-window updates
can lead to dramatic changes of cwnd in the convex
region. Updating cwnd for each incoming ack minimizes
this delta, preventing unintentional line-rate bursts.

Diff Detail

Lint
Lint Passed
Unit
No Test Coverage
Build Status
Buildable 32979
Build 30371: arc lint + arc unit

Event Timeline

This revision is now accepted and ready to land.Aug 13 2020, 8:21 PM
cc requested changes to this revision.Aug 14 2020, 1:49 PM
cc added inline comments.
sys/netinet/cc/cc_cubic.c
135–137

Shall have the comment updated accordingly.

This revision now requires changes to proceed.Aug 14 2020, 1:49 PM
  • always use absolute cubic_cwnd value
  • update cubic cwnd comment to reflect new logic
sys/netinet/cc/cc_cubic.c
138–140

The SUMMARY part of this change already says this.

Can we remove this sentence "During the convex region of the cubic curve, cwnd steps can otherwise become very large and cause dramatic line-rate bursts." ?

  • straighten comment further

Looks good. Thanks for picking this up.

This revision is now accepted and ready to land.Aug 18 2020, 7:05 PM
This revision was automatically updated to reflect the committed changes.