Page MenuHomeFreeBSD

update cwnd in both convex and concave regions like comment stated.
ClosedPublic

Authored by rscheff on May 1 2020, 9:05 PM.

Details

Summary

The current cubic code has an oversight that it missed updating cwnd
in the convex region. However, the comment in the code states, that
cwnd should be updated similarly in both convex and concave regions.

This has been reported by Vidhi Goel in Bug Report 238478.

Test Plan

Track the evolution of cwnd throuhg tcp friendly, concave
and convex regions and verify the behavior matches what RFC8312
(TCP Cubic) prescribes.

Diff Detail

Repository
rS FreeBSD src repository
Lint
Automatic diff as part of commit; lint not applicable.
Unit
Automatic diff as part of commit; unit tests not applicable.

Event Timeline

So, is FreeBSD getting close to a proper Cubic yet?

sys/netinet/cc/cc_cubic.c
179 ↗(On Diff #71254)

I am only going to "NOTE" a style 9 issue here, I do not expect it fixed, as it was an existing issue, and it may be the whole file is this way, but we usually write "} else {" or "} else if {" and I am not sure why these extra new lines are here.

This revision is now accepted and ready to land.Jun 23 2020, 5:03 AM
This revision now requires review to proceed.Jun 23 2020, 5:03 AM

Re-inspecting the suggested fix. The concave region is where cubic_wnd < cwnd_max, and the convex region is cubic_cwnd > cwnd_max.

However, this if bracket is only preventing snd_cwnd from shrinking.

Will adjust the style and make a comment.

  • only update style and comment. logic was ok before.
This revision is now accepted and ready to land.Jul 21 2020, 12:47 PM