Page MenuHomeFreeBSD

Let congestion control algorithms decide congestion window.
Needs ReviewPublic

Authored by hiren on Oct 12 2016, 6:19 AM.

Details

Summary

First draft of the idea we've been discussing for quite some time to fix
stack overwriting cwnd value set by CC algos.

  • Prevent stack from changing cwnd value when CC is present.
  • Update CCs to set cwnd on NDUPACKS.
  • Update CCs to have RTO handling.

This work is in collaboration with Matt Macy.

As I mentioned, this is the first draft and review is cretaed to discuss/refine
how to best fix this.

Test Plan

Local dummynet setup and later with LLNW prod traffic.

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

hiren retitled this revision from to Let congestion control algorithms decide congestion window..Oct 12 2016, 6:19 AM
hiren updated this object.
hiren edited the test plan for this revision. (Show Details)
hiren added reviewers: rrs, lstewart, jtl.
hiren added a subscriber: transport.
hiren updated this revision to Diff 21290.
jtl edited edge metadata.EditedOct 20 2016, 4:43 PM

Summary of verbal feedback today:

  1. If it can be done without major surgery, please consider changing (u_)long to (u)int32_t.
  2. Because this changes the assumption about who sets snd_cwnd, please verify that all the congestion control modules follow the new assumption.

With that said, I think this is a great idea! :-)

hiren edited edge metadata.Oct 21 2016, 6:36 AM
hiren updated this revision to Diff 21575.

Changing snd_cwnd tracking variable's name from win to cwin and its type to uint32_t.
I'll run all my tests tomorrow and update here with results.

hiren added a comment.Oct 22 2016, 8:01 AM

I tried running a few loss scenarios with various available CC algos and nothing seem broken. Loss scenarios include : dropping a single packet, dropping a bunch of packets, dropping a lot of packets to create severe loss situation, ack loss, etc.

This revision was automatically updated to reflect the committed changes.
sbruno reopened this revision.Jul 25 2017, 3:09 PM
sbruno added a subscriber: sbruno.

This was reverted at svn R321480. I'm reopening for further discussion.