Page MenuHomeFreeBSD

tcp: update "cubic_k" with the new formula from RFC8312bis.
Needs RevisionPublic

Authored by rscheff on Aug 31 2023, 9:29 AM.
Tags
None
Referenced Files
F83139636: D41667.id126724.diff
Mon, May 6, 9:02 PM
Unknown Object (File)
Sat, May 4, 1:16 PM
Unknown Object (File)
Fri, May 3, 9:16 AM
Unknown Object (File)
Wed, May 1, 8:40 PM
Unknown Object (File)
Fri, Apr 26, 8:54 AM
Unknown Object (File)
Tue, Apr 23, 11:08 PM
Unknown Object (File)
Mon, Apr 22, 6:39 AM
Unknown Object (File)
Sun, Apr 14, 5:32 PM
Subscribers

Details

Reviewers
cc
tuexen
jtl
rrs
glebius
lstewart
Group Reviewers
transport
Summary

2nd patch in series to update Cubic in conformation with RFC8312bis.

This updates the calculation of K using the formula from this RFC document.

The new formula additionally uses "cwnd_epoch" for calculating K.

(1st in series: D40436)

This Diff is sliced from a summary patch provided by VMware to improve short RTT performance of Cubic.
Once all patches have been prepared and reviewed, they will go in together to make an atomic change
to cubic from pre-RFC status, to 8312bis status.

Test Plan

Submitted By: Bhaskar Pardeshi, VMware Inc.

Diff Detail

Repository
rG FreeBSD src repository
Lint
Lint Passed
Unit
No Test Coverage
Build Status
Buildable 53371
Build 50262: arc lint + arc unit

Event Timeline

cc requested changes to this revision.Sep 1 2023, 9:39 PM
cc added inline comments.
sys/netinet/cc/cc_cubic.c
334

Here, we are mixing the usage of "CUBICFLAG_CONG_EVENT" flag with the usage of "num_cong_events" variable below in the cases of cubic_cong_signal().

We shall not use both. Suggest remove the usage of "num_cong_events" as in commit 6907bbae187e

This revision now requires changes to proceed.Sep 1 2023, 9:39 PM
sys/netinet/cc/cc_cubic.c
334

Yes; I'm not done yet in dissecting the summary patch into smaller snippets; the flags will all be removed and only the num_cong_events remaining...

If you think it is unneccessary to split up the patch into logical subunits - which compile but may contain logic shortcomings, I can simply discard these (currently 2, probably will be 6-9) diffs and provide a single summary Diff?

sys/netinet/cc/cc_cubic.c
334

Reading probably 6 to 9 patches and looking up connecting logics may also be a challenge. Also test the single patch by emulation is easier. I prefer to a single patch on top of the 1st patch which is committed as eb5bfdd06565.

Others thoughts?