Page MenuHomeFreeBSD

TCP Cubic: Recalculate cubic cwnd for every ack.
ClosedPublic

Authored by rscheff on Aug 13 2020, 8:17 PM.

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 OK
Unit
No Unit 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
chengc_netapp.com 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
137–139

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.