CAKE w/ Adaptive Bandwidth [October 2021 to September 2022]

Ah, sorry, I was unclear, I really just wanted to express that I think that they (in spite of the patent) belong to the good guys here. I was unsure about your "well played" comment, and instead of asking for clarification went for a statement. Which was a bad idea, so apologies to you, for "not playing it well" from my side here :wink:

More or less, except they do not simply deploy default OpenWrt builds, but as far as I understand add quite a lot of their own code and documentation on top (a use-case that OpenWrt invites and is not opposed to IIUC). And as I said before do this not based on periodic maintenance fees but (similar to apple) based on the hardware purchase price. Their founder was and probably still is active in this forum and on the wider bufferbloat mailing lists and is often willing to share information and details that are hard to come by. But enough of my evenroute fan-fiction :wink: (disclaimer, I never used their routers so have no first hand experience).

2 Likes

(I changed my mind).

I agree, in my opinion it sounds like the dslreports speed test might be prior art. The end user runs a speed test in which some delay probes are sent to the dslreports server and then the dslreports server sends back a graph of the delay which is information you use to optimize the speed setting for sqm

Also I think "a web service that does X" when X itself is not an innovation is so blatantly obvious it's like saying "calling someone on the phone to talk to them about X"

2 Likes

Your post on this thread tipped me over the edge.

Good point and agreed.

Third party observations:

@_FailSafe my first finding with testing the port form shell is as follows. For some reason my deltas stay high.

root@OpenWrt:~# lua ./sqm-autorate.lua
                      log_time;             rx_load;             tx_load;  min_downlink_delta;    min_uplink_delta;         cur_dl_rate;         cur_ul_rate;
                1640030038.973;                0.02;                0.01;               16.98;               24.00;                9900;                9900;
                         1.485;                0.02;                0.01;               16.96;               28.96;                9801;                9801;
                          2.96;                0.01;                0.01;               16.94;               25.93;                9702;                9702;
                         2.696;                0.01;                0.01;               16.92;               24.92;                9604;                9604;
                         3.209;                0.02;                0.01;               16.91;               24.83;                9507;                9507;
                         3.811;                0.02;                0.01;               16.88;               23.81;                9411;                9411;
                         4.417;                0.01;                0.01;               16.85;               21.79;                9316;                9316;
                          5.29;                0.02;                0.01;               16.84;               22.73;                9222;                9222;
                         5.626;                0.01;                0.01;               16.82;               29.71;                9129;                9129;
                         6.139;                0.02;                0.01;               16.80;               28.70;                9037;                9037;
                         6.656;                0.02;                0.01;               16.78;               28.64;                8946;                8946;
                         7.256;                0.02;                0.01;               16.79;               27.59;                8856;                8856;
                         7.855;                0.02;                0.01;               16.75;               21.54;                8767;                8767;
                         8.368;                0.02;                0.01;               16.73;               22.52;                8679;                8679;
                         8.979;                0.02;                0.01;               16.72;               25.49;                8592;                8592;
                         9.579;                0.01;                0.01;               16.71;               23.44;                8506;                8506;
                        10.187;                0.02;                0.01;               16.66;               22.44;                8420;                8420;
                        10.698;                0.02;                0.01;               16.67;               21.38;                8335;                8335;
                        11.299;                0.02;                0.00;               16.66;               23.35;                8251;                8251;
                        11.809;                0.02;                0.01;               16.61;               22.37;                8168;                8168;
                        12.417;                0.02;                0.01;               16.59;               25.29;                8086;                8086;
                         13.18;                0.02;                0.01;               16.57;               22.23;                8005;                8005;
                        13.617;                0.01;                0.01;               16.54;               21.21;                7924;                7924;
                        14.138;                0.02;                0.01;               16.55;               22.21;                7844;                7844;
^Clua: ./sqm-autorate.lua:538: interrupted!

Any idea why my baseline deltas stay so high, resulting in perpetual rate decrease?

This is with:

https://raw.githubusercontent.com/Fail-Safe/sqm-autorate/port-from-shell/sqm-autorate.lua

Sidebar...

Since the DSLReports speed test is now badly broken, it makes me wonder what they plan to replace it with.

Their website speed test still uses it.

1 Like

Not to take this thread too far off track, but this is somewhat relevant to the overall theme here...

I have been using these in place of DSLReports as of late:

I'll take a look at it this evening and see what might need adjusting.

I mentioned Waveform in the DSLReports thread.

Waveform actually uses the Cloudflare speed tests.

1 Like

Got an answer from Evenroute...

They are changing out the DSLReports speed test on their website.

The routers do not use DSLR for self-optimization.

I'm not too sure what is going on there. I see this on mine... does this look more like what you would expect?

                      log_time;             rx_load;             tx_load;  min_downlink_delta;    min_uplink_delta;         cur_dl_rate;         cur_ul_rate
                       134.534;                0.00;                0.00;               -0.11;                1.93;              462500;               25750;
                        135.36;                0.00;                0.00;               -0.00;                0.99;              462500;               25750;
                       135.548;                0.00;                0.00;               -0.00;                4.53;              462500;               25750;
                        136.50;                0.00;                0.00;               -0.00;                4.97;              462500;               25750;
                       136.556;                0.00;                0.00;               -0.00;                2.82;              462500;               25750;
                        137.62;                0.00;                0.00;               -0.00;                4.90;              462500;               25750;
                       137.570;                0.00;                0.01;               -0.00;               -0.05;              462500;               25750;
                        138.79;                0.00;                0.02;               -0.00;                3.79;              462500;               25750;
                       138.614;                0.00;                0.01;               -0.01;                3.88;              462500;               25750;
                       139.135;                0.00;                0.01;               -1.00;                3.87;              462500;               25750;
                       139.667;                0.00;                0.01;               -0.00;                5.52;              462500;               25750;
                       140.174;                0.00;                0.01;               -0.00;                3.95;              462500;               25750;
                       140.682;                0.00;                0.00;               -0.10;                3.75;              462500;               25750;
                       141.186;                0.00;                0.00;               -0.00;                3.93;              462500;               25750;
                       141.691;                0.00;                0.00;               -0.00;                2.74;              462500;               25750;
                       142.198;                0.00;                0.00;               -1.00;                2.83;              462500;               25750;
                       142.705;                0.00;                0.00;               -0.01;                2.47;              462500;               25750;
                       143.211;                0.00;                0.00;               -0.00;                2.39;              462500;               25750;
                       143.719;                0.00;                0.00;                1.00;                1.72;              462500;               25750;
                       144.221;                0.00;                0.00;               -0.01;                3.81;              462500;               25750;
                       144.726;                0.00;                0.00;               -0.01;                1.86;              462500;               25750;
                       145.231;                0.00;                0.00;               -1.00;                3.80;              462500;               25750;
                       145.752;                0.00;                0.00;               -0.00;                2.80;              462500;               25750;
                       146.255;                0.00;                0.00;               -0.00;                4.85;              462500;               25750;
                       146.762;                0.00;                0.01;                0.89;                0.33;              462500;               25750;
                       147.291;                0.00;                0.00;               -0.00;                3.82;              462500;               25750;
                       147.805;                0.00;                0.00;               -0.11;                3.77;              462500;               25750;
                       148.309;                0.00;                0.00;               -0.01;                6.32;              462500;               25750;
                       148.814;                0.00;                0.00;               -0.00;                1.64;              462500;               25750;
                       149.322;                0.00;                0.00;               -0.00;                3.36;              462500;               25750;
                       149.826;                0.00;                0.00;               -0.00;                5.29;              462500;               25750;
                       150.330;                0.00;                0.00;               -0.00;                3.67;              462500;               25750;
                       150.840;                0.00;                0.00;               -0.01;                3.35;              462500;               25750;
                       151.343;                0.00;                0.00;               -0.00;                3.72;              462500;               25750;
                       151.859;                0.00;                0.00;               -0.11;                1.72;              462500;               25750;
                       152.359;                0.00;                0.00;               -0.00;                4.25;              462500;               25750;
                       152.909;                0.00;                0.00;               -0.00;                3.73;              462500;               25750;
                       153.418;                0.00;                0.00;               -0.00;                5.24;              462500;               25750;
                       153.923;                0.00;                0.00;               -0.00;                3.23;              462500;               25750;
                       154.429;                0.09;                0.00;               -0.00;                4.71;              462500;               25750;
                       154.940;                0.00;                0.00;               -0.00;                1.66;              462500;               25750;
                       155.443;                0.00;                0.00;               -0.00;                8.52;              462500;               25750;
                       155.944;                0.00;                0.00;               -0.02;                5.25;              462500;               25750;
                       156.455;                0.00;                0.00;               -0.00;                6.18;              462500;               25750;
                       156.958;                0.00;                0.00;               -0.00;                0.24;              462500;               25750;
                       157.464;                0.00;                0.00;               -0.00;                3.66;              462500;               25750;
                       157.968;                0.01;                0.00;               -0.00;                2.48;              462500;               25750;
                       158.475;                0.15;                0.00;               -0.00;                3.64;              462500;               25750;
                       158.978;                0.00;                0.00;               -0.00;                4.21;              462500;               25750;
                       159.486;                0.00;                0.00;               -0.00;               -2.54;              462500;               25750;
                       159.989;                0.00;                0.00;               -1.00;                5.19;              462500;               25750;
                       160.500;                0.00;                0.02;                0.90;                1.59;              462500;               25750;
                         161.6;                0.00;                0.02;                0.90;                6.59;              462500;               25750;
                       161.510;                0.00;                0.01;               -0.00;                5.48;              462500;               25750;
                        162.15;                0.00;                0.00;                0.90;                3.07;              462500;               25750;
                       162.525;                0.00;                0.00;               -0.10;                4.07;              462500;               25750;
                        163.28;                0.00;                0.01;               -0.01;               -0.31;              462500;               25750;
                       163.538;                0.00;                0.01;               -0.00;                5.55;              462500;               25750;
                        164.40;                0.00;                0.00;               -0.00;                4.05;              462500;               25750;
                       164.545;                0.00;                0.00;               -0.00;                8.12;              462500;               25750;
                        165.49;                0.00;                0.00;                1.00;                3.43;              462500;               25750;
                       165.559;                0.00;                0.00;               -0.00;                5.10;              462500;               25750;
                       166.108;                0.00;                0.00;               -0.00;                2.51;              462500;               25750;
                       166.609;                0.00;                0.00;                0.99;                7.09;              462500;               25750;
                       167.113;                0.00;                0.00;               -0.00;                3.50;              462500;               25750;
                       167.622;                0.00;                0.00;               -0.00;                2.50;              462500;               25750;
                       168.124;                0.00;                0.00;               -0.02;                5.49;              462500;               25750;
                       168.630;                0.00;                0.00;               -0.00;                0.48;              462500;               25750;
                       169.138;                0.00;                0.00;               -0.00;                1.48;              462500;               25750;
                       169.642;                0.00;                0.00;               -0.03;                4.48;              462500;               25750;
                       170.143;                0.00;                0.00;               -0.00;                3.94;              462500;               25750;
                       170.650;                0.00;                0.00;               -0.00;                3.79;              462500;               25750;
                       171.159;                0.00;                0.00;               -0.00;                4.03;              462500;               25750;
                       171.662;                0.00;                0.00;               -0.01;                2.45;              462500;               25750;
                       172.173;                0.00;                0.00;               -0.00;                4.33;              462500;               25750;
                       172.673;                0.00;                0.00;               -0.00;                4.44;              462500;               25750;
                       173.197;                0.00;                0.00;               -0.00;                6.43;              462500;               25750;
                       173.719;                0.00;                0.00;               -0.00;                5.42;              462500;               25750;
                       174.224;                0.00;                0.02;               -0.00;               -0.02;              462500;               25750;
                       174.729;                0.00;                0.01;               -1.00;                5.41;              462500;               25750;
                       175.236;                0.03;                0.01;               -0.00;                4.99;              462500;               25750;
                       175.741;                0.00;                0.00;               -0.10;                4.28;              462500;               25750;
                       176.244;                0.00;                0.00;               -0.00;               -0.73;              462500;               25750;
                       176.754;                0.00;                0.00;               -0.00;                2.85;              462500;               25750;
                       177.256;                0.00;                0.00;                0.00;                2.38;              462500;               25750;

Yes indeed deltas stay low under no load. Weird. I tried changing the addresses but same issue for me.

Can we include the output data from the individual reflectors?

Did you try toggling this (line 16) to true? local enable_verbose_baseline_output = false

If that's not the output you're looking for we can definitely add more output.

I posted another another GitHub PR, this time to create and use an external settings file. This PR definitely needs review and change before merging, for several reasons.

  1. Naming of the settings inside the external config file. These should be thought through in terms of what users can easily understand. Perhaps the settings file should be commented
  2. Choosing which settings should be in the external settings file and which advanced settings should be left in the lua script
  3. Error handling and defaults for if there is a missing settings file
  4. Add readme instructions to move sqm-autorate.config to /etc/config/sqm-autorate
  5. deciding if this is even wanted

Is it sensible to add an option to switch between the custom reflectors and the ICMP reflectors?

The background is that since the custom reflectors were implemented, I've not noticed the script change the interface 'speeds'. I suspect that the cause is that variations on transcontinental internet connections (I'm in Singapore) is swamping any change in RTTs due to loadings while running speedtests.
I also suspect that there may be some dynamic routing for ICMP reflectors such as 8.8.8.8 so that they are routed to different regional data centers or servers based on (for example) location criteria or some least cost formula

I will take a look at this today and see what we can do. I do like the ideas you've proposed and think they make a lot of sense!

Which branch are you running? The reason I ask is that the custom reflectors are not used in the port-from-shell branch. Those are still ICMP so as to stick closely to the behavior of the shell OWD version.

The branch that is functionally equivalent to the port-from-shell branch, but uses the custom UDP reflectors is:
https://raw.githubusercontent.com/Fail-Safe/sqm-autorate/udp/sqm-autorate.lua

I'm using the dansbranch version, which is where the bulk of the innovation seems to be happening and where I'm making the PRs

1 Like

Ah, yes. That makes more sense now. :slight_smile: @dlakelan's branch is the one I have also been running and collaborating with him on for many days now and it's pretty slick.

it will only change them when delay is actually detected. When it does change them, it changes them in fairly large jumps so there isn't a pressing need to slowly decay down to a "safe" value.

Here are some pics of what happened in a long run on @_FailSafe connection:

A timeseries of bandwidth and delay:

A time history of the learned distribution of "safe rates"

downhist
uphist

CDF of the delay:
delayupecdf

delaydownecdf

As you can see, the up delay was less than 1 second per hour above about 33ms delay, and the down delay less than 1 second per hour above about 22ms.

Of course there are several factors that go into delay. Whether the set point was above or below the real available speed, but also whether the demand placed on the connection was above or below the true available speed. So it depends on utilization as well as set point.

2 Likes