Page MenuHomeFreeBSD

Rework initial congestion window calculation.
Needs RevisionPublic

Authored by hiren on Feb 2 2016, 10:23 PM.
Tags
None
Referenced Files
Unknown Object (File)
Sun, Apr 21, 11:45 PM
Unknown Object (File)
Jan 19 2024, 8:43 PM
Unknown Object (File)
Jan 11 2024, 12:37 AM
Unknown Object (File)
Dec 20 2023, 12:23 AM
Unknown Object (File)
Dec 15 2023, 2:31 AM
Unknown Object (File)
Dec 15 2023, 2:31 AM
Unknown Object (File)
Dec 4 2023, 5:21 AM
Unknown Object (File)
Oct 11 2023, 7:02 PM
Subscribers

Details

Reviewers
rrs
lstewart
gnn
rwatson
Group Reviewers
transport
Summary

Rework initial congestion window calculation.

The patch is my first (barely compiling) attempt at:

  1. add ability to specify initcwnd in number of bytes
  2. move entire calculation into a separate function
  3. add a new sysctl to enable RFC6928 which is ON by default
  4. D5124's fix included.

Approach here is, user can specify initcwnd of choice in number of segments or bytes. If none is present, we default to RFC6928 and have initcwnd as 10 segments.

AFAIK, this is not changing the default behavior of what we have in FreeBSD-head right now. OR at least, that is the plan.
This change also makes enabling RFC3390 (to get initcwnd at 4 segments) more obvious/easier. (You just have to disable RFC6928.)

Suggestions?

(I need to remember to do any manpage updates with this.)

Test Plan

I'll work on it once we have a general consensus on the approach.

Diff Detail

Repository
rS FreeBSD src repository - subversion
Lint
Lint Passed
Unit
No Test Coverage
Build Status
Buildable 2457
Build 2474: arc lint + arc unit

Event Timeline

hiren retitled this revision from to Rework initial congestion window calculation..
hiren updated this object.
hiren edited the test plan for this revision. (Show Details)
hiren added a reviewer: lstewart.
hiren added a subscriber: transport.
hiren edited the test plan for this revision. (Show Details)
hiren edited reviewers, added: gnn, rwatson; removed: transport.

Bump!
I'd appreciate any feedback on the approach taken so I can move this forward.

hiren planned changes to this revision.Feb 8 2016, 8:47 AM

Talked to Lawrence on IRC and need to make a bunch of changes. bbib

hiren updated this object.
hiren edited the test plan for this revision. (Show Details)
    • Rework initial congestion window calculation.
    • Rework the rework after talking to lstewart@. :-) Let's see if this is something people like, if so, I'd do more testing.

      An obvious problem I am seeing is,
  1. sysctl net.inet.tcp.rfc3390=1

net.inet.tcp.rfc3390: 0 -> 0

instead of what I want: 0 -> 1.

You're a bit "warmer" with the revised changes but still a fair ways off the mark. Apologies to anyone watching but I'm too time poor at the moment to engage in the proper but protracted back-and-forth public Phabricator discussion to resolve all the problems with this work. Perhaps another brief sync on IRC is in order and you can always summarise the chat logs here as context for others.

hiren edited edge metadata.
  • Rework initial congestion window calculation.
  • Rework the rework after talking to lstewart@. :-)
  • Sysctl handlers now work as expected.

    Lawrence and I need to talk before making further changes here.
rrs requested changes to this revision.Jul 5 2016, 1:30 PM
rrs added a reviewer: rrs.
rrs added a subscriber: rrs.

Should there not be a check to the experimental setting to allow a IW of 10?

This revision now requires changes to proceed.Jul 5 2016, 1:30 PM