Page MenuHomeFreeBSD

Let congestion control algorithms decide congestion window.
Needs ReviewPublic

Authored by hiren on Oct 12 2016, 6:19 AM.
Tags
None
Referenced Files
Unknown Object (File)
Sat, Dec 14, 7:48 AM
Unknown Object (File)
Wed, Dec 4, 3:26 PM
Unknown Object (File)
Thu, Nov 28, 9:39 AM
Unknown Object (File)
Mon, Nov 25, 6:50 PM
Unknown Object (File)
Sun, Nov 24, 9:25 PM
Unknown Object (File)
Sun, Nov 24, 6:56 PM
Unknown Object (File)
Sun, Nov 24, 9:10 AM
Unknown Object (File)
Sat, Nov 23, 10:47 PM

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

Lint
Lint Passed
Unit
No Test Coverage
Build Status
Buildable 5673
Build 5958: arc lint + arc unit

Event Timeline

hiren retitled this revision from to Let congestion control algorithms decide congestion window..
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.

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.

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.

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 added a subscriber: sbruno.

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