What's new

AutoBW: Automatically set QoS bandwidth using spdMerlin

  • SNBForums Code of Conduct

    SNBForums is a community for everyone, no matter what their level of experience.

    Please be tolerant and patient of others, especially newcomers. We are all here to share and learn!

    The rules are simple: Be patient, be nice, be helpful or be gone!

squidbilly

Occasional Visitor
AutoBW
Automatically set QoS BandWidth

Last Updated on 4/5/2020 to v1.5
Set QoS upload/download bandwidth using spdMerlin (via Ookla speedtests)
Requires bc and spdMerlin (v3.3.2 or greater)

Execute the following command to download:
Code:
curl "https://raw.githubusercontent.com/squidbillyms/AutoBW/master/AutoBW" -o /jffs/scripts/AutoBW && chmod 755 AutoBW

v1.0 (3/25/2020): Initial Release
v1.1 (4/01/2020): Complete rewrite
-No longer requires bash
-Checks that bc is installed & QoS enabled & upload traffic is directed to unthrottled class
-No need to stop/start QoS
-Class rates/ceils are scaled
v1.2 (4/03/2020): More changes
-Check for spdMerlin
-Formatted logger message concerning new BW
-Check for appropriate iptable rules that ensure spdMerlin traffic in unaffected by QoS
v1.3 (4/03/2020): Changed an important check
-Check for spdMerlin v3.3.2 or greater to ensure that QoS will not interfere with calculated speeds
v1.4 (4/03/2020): Added option for automatic updates (Thanks maghuro)
-If turned on, check for updates. If found then update.
-AutoUpdate is off by default and must be turned on
-TestMode is on by default and must be turned off
-Fixed scenario where previous bandwidths were zero. In this case, just set the scale factors to 1 since we cannot divide by zero
v1.5 (4/05/2020): Now handles VPN and Gbps|Mbps|Kbps rates/ceils
-Use VPN values, if defined (thanks maghuro)
-Handle rate/ceil units other than just Kbps (thanks peepsnet)


Thanks to:
FreshJR: Some of the functionality was either taken directly or adapted from the excellent work found in the Adaptive QoS script.
Jack Yaz: For spdMerlin and other input.
Merlin
Creating this small, minor script has shown me just how much time and effort must be devoted to the larger projects that I routinely use.
 
Last edited:
AutoBW
Automatically set QoS BandWidth

Last Updated on 4/03/2020 to v1.2
Set QoS upload/download bandwidth using spdMerlin (via Ookla speedtests)
Requires bc and spdMerlin

Execute the following command to download (chmod 755 AutoBW if necessary):
Code:
curl "https://raw.githubusercontent.com/squidbillyms/AutoBW/master/AutoBW" -o /jffs/scripts/AutoBW

v1.0 (3/25/2020): Initial Release
v1.1 (4/01/2020): Complete rewrite
-No longer requires bash
-Checks that bc is installed & QoS enabled & upload traffic is directed to unthrottled class
-No need to stop/start QoS
-Class rates/ceils are scaled
v1.2 (4/03/2020): More changes
-Check for spdMerlin
-Formatted logger message concerning new BW
-Check for appropriate iptable rules that ensure spdMerlin traffic in unaffected by QoS


Thanks to:
FreshJR: Some of the functionality was either taken directly or adapted from the excellent work found in the Adaptive QoS script.
Jack Yaz: For spdMerlin and other input.
Merlin
Creating this minor small script has shown me just how much time and effort must be devoted to the larger projects that I routinely use.
This is awesome work....will def try it out. Thanks for this cool and nifty script !!!
 
@squidbilly
I always stayed with amtm available options and transmission from entware external options
This project looks promising as always felt qos bandwidth limits should be auto set
Huge thanks
Can someone share "bc" needed in addition to spdmerlin, so i try this out
"bc" entware install command or "bc" github link , appreciate
 
@immi803 installing bc when u have entware it is as simple as:
Code:
opkg install bc
 
Just updated so that AutoBW will now check to make sure you have spdMerlin v3.3.2 or greater. This will ensure calculated speeds are not influenced (and are thus rendered inaccurate) by QoS.
 
See "no such file or directory"

ASUSWRT-Merlin RT-AC88U 384.16_beta3 Tue Mar 31 15:42:15 UTC 2020
thunder@RT-AC88U-5940:/tmp/home/root# curl "https://raw.githubusercontent.com/squidbillyms/AutoBW/master/AutoBW" -o /jffs/scripts/AutoBW && chmod 755 AutoBW
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed 0 0 0 0 0 0 0 0 --:--:-- --:--:-- --:--:-- 0 0 0 0 0 0 0 0 --:--:-- --:--:-- --:--:-- 100 12551 100 12551 0 0 19132 0 --:--:-- --:--:-- --:--:-- 31299
chmod: AutoBW: No such file or directory
thunder@RT-AC88U-5940:/tmp/home/root#
 
See "no such file or directory"

ASUSWRT-Merlin RT-AC88U 384.16_beta3 Tue Mar 31 15:42:15 UTC 2020
thunder@RT-AC88U-5940:/tmp/home/root# curl "https://raw.githubusercontent.com/squidbillyms/AutoBW/master/AutoBW" -o /jffs/scripts/AutoBW && chmod 755 AutoBW
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed 0 0 0 0 0 0 0 0 --:--:-- --:--:-- --:--:-- 0 0 0 0 0 0 0 0 --:--:-- --:--:-- --:--:-- 100 12551 100 12551 0 0 19132 0 --:--:-- --:--:-- --:--:-- 31299
chmod: AutoBW: No such file or directory
thunder@RT-AC88U-5940:/tmp/home/root#
Try
Code:
curl "https://raw.githubusercontent.com/squidbillyms/AutoBW/master/AutoBW" -o /jffs/scripts/AutoBW && chmod 755 /jffs/scripts/AutoBW && sh /jffs/scripts/AutoBW
 
ASUSWRT-Merlin RT-AC88U 384.16_beta3 Tue Mar 31 15:42:15 UTC 2020
thunder@RT-AC88U-5940:/tmp/home/root# curl "https://raw.githubusercontent.com/squidbillyms/AutoBW/master/AutoBW" -o /jffs/scripts/AutoBW && chmod 755 AutoBW
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed 0 0 0 0 0 0 0 0 --:--:-- --:--:-- --:--:-- 0 12551 0 0 0 0 0 0 --:--:-- --:--:-- --:--:-- 100 12551 100 12551 0 0 15927 0 --:--:-- --:--:-- --:--:-- 17904
chmod: AutoBW: No such file or directory
thunder@RT-AC88U-5940:/tmp/home/root# curl "https://raw.githubusercontent.com/squidbillyms/AutoBW/master/AutoBW" -o /jffs/scripts/AutoBW && chmod 755 /jffs/scripts/AutoBW && sh /jffs/scripts/AutoBW
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed 0 0 0 0 0 0 0 0 --:--:-- --:--:-- --:--:-- 100 12551 100 12551 0 0 14426 0 --:--:-- --:--:-- --:--:-- 21865

TEST MODE: No changes will be made.

----------- SPDMERLIN --------
Download (Kbps) Upload (Kbps)
--------------- -------------
Test 1 of 1 40212.5 41482.2
Scale Factors 0.85 0.85
Scaled Speeds 34180.6 35259.9

------------- QOS ------------
Download (Kbps) Upload (Kbps)
--------------- -------------
Previous 0.0 0.0
New (from above) 34180.6 35259.9
Runtime error (func=(main), adr=30): Divide by zero
Runtime error (func=(main), adr=30): Divide by zero
Scaling by 0.000 0.000

============================ DOWNLOAD =============================
------------- RATE ----------- ------------- CEIL -----------
Class Previous (Kbps) New (Kbps) Previous (Kbps) New (Kbps)
----- --------------- ------------- --------------- -------------
(standard_in) 1: illegal character: M
(standard_in) 1: syntax error
(standard_in) 1: illegal character: M
(standard_in) 1: syntax error
11 printf: invalid number '1895Mbit'
0.0 printf: invalid number 'ceil'
0.0 printf: invalid number '1895Mbit'
0.0 printf: invalid number 'burst'
0.0
printf: invalid number '1249348b'
0 printf: invalid number 'cburst'
0.0 printf: invalid number '1249348b'
0.0 0.0 0.0
(standard_in) 2: syntax error
(standard_in) 1: illegal character: M
(standard_in) 1: syntax error
10 524288.0 printf: invalid number '1895Mbit'
0.0 printf: invalid number 'burst'
0.0 printf: invalid number '654311b'
0.0
printf: invalid number 'cburst'
0 printf: invalid number '1249348b'
0.0 0.0 0.0 0.0
(standard_in) 2: syntax error
(standard_in) 1: illegal character: M
(standard_in) 1: syntax error
13 524288.0 printf: invalid number '1895Mbit'
0.0 printf: invalid number 'burst'
0.0 printf: invalid number '654311b'
0.0
printf: invalid number 'cburst'
0 printf: invalid number '1249348b'
0.0 0.0 0.0 0.0
(standard_in) 1: illegal character: M
(standard_in) 1: syntax error
(standard_in) 1: illegal character: M
(standard_in) 1: syntax error
12 printf: invalid number '1048Mbit'
0.0 printf: invalid number 'ceil'
0.0 printf: invalid number '1895Mbit'
0.0 printf: invalid number 'burst'
0.0
printf: invalid number '1249378b'
0 printf: invalid number 'cburst'
0.0 printf: invalid number '1249348b'
0.0 0.0 0.0
(standard_in) 2: syntax error
(standard_in) 1: illegal character: M
(standard_in) 1: syntax error
15 314568.0 printf: invalid number '1895Mbit'
0.0 printf: invalid number 'burst'
0.0 printf: invalid number '391951b'
0.0
printf: invalid number 'cburst'
0 printf: invalid number '1249348b'
0.0 0.0 0.0 0.0
(standard_in) 2: syntax error
(standard_in) 1: illegal character: M
(standard_in) 1: syntax error
14 419424.0 printf: invalid number '1895Mbit'
0.0 printf: invalid number 'burst'
0.0 printf: invalid number '523126b'
0.0
printf: invalid number 'cburst'
0 printf: invalid number '1249348b'
0.0 0.0 0.0 0.0
(standard_in) 2: syntax error
(standard_in) 1: illegal character: M
(standard_in) 1: syntax error
17 104856.0 printf: invalid number '1895Mbit'
0.0 printf: invalid number 'burst'
0.0 printf: invalid number '129575b'
0.0
printf: invalid number 'cburst'
0 printf: invalid number '1249348b'
0.0 0.0 0.0 0.0
(standard_in) 2: syntax error
(standard_in) 1: illegal character: M
(standard_in) 1: syntax error
16 209712.0 printf: invalid number '1895Mbit'
0.0 printf: invalid number 'burst'
0.0 printf: invalid number '260750b'
0.0
printf: invalid number 'cburst'
0 printf: invalid number '1249348b'
0.0 0.0 0.0 0.0

============================= UPLOAD =============================
------------- RATE ----------- ------------- CEIL -----------
Class Previous (Kbps) New (Kbps) Previous (Kbps) New (Kbps)
----- --------------- ------------- --------------- -------------
(standard_in) 1: illegal character: M
(standard_in) 1: syntax error
(standard_in) 1: illegal character: M
(standard_in) 1: syntax error
11 printf: invalid number '1895Mbit'
0.0 printf: invalid number 'ceil'
0.0 printf: invalid number '1895Mbit'
0.0 printf: invalid number 'burst'
0.0
printf: invalid number '1249348b'
0 printf: invalid number 'cburst'
0.0 printf: invalid number '1249348b'
0.0 0.0 0.0
(standard_in) 2: syntax error
(standard_in) 1: illegal character: M
(standard_in) 1: syntax error
10 524288.0 printf: invalid number '1895Mbit'
0.0 printf: invalid number 'burst'
0.0 printf: invalid number '654311b'
0.0
printf: invalid number 'cburst'
0 printf: invalid number '1249348b'
0.0 0.0 0.0 0.0
(standard_in) 2: syntax error
(standard_in) 1: illegal character: M
(standard_in) 1: syntax error
13 524288.0 printf: invalid number '1895Mbit'
0.0 printf: invalid number 'burst'
0.0 printf: invalid number '654311b'
0.0
printf: invalid number 'cburst'
0 printf: invalid number '1249348b'
0.0 0.0 0.0 0.0
(standard_in) 1: illegal character: M
(standard_in) 1: syntax error
(standard_in) 1: illegal character: M
(standard_in) 1: syntax error
12 printf: invalid number '1048Mbit'
0.0 printf: invalid number 'ceil'
0.0 printf: invalid number '1895Mbit'
0.0 printf: invalid number 'burst'
0.0
printf: invalid number '1249378b'
0 printf: invalid number 'cburst'
0.0 printf: invalid number '1249348b'
0.0 0.0 0.0
(standard_in) 2: syntax error
(standard_in) 1: illegal character: M
(standard_in) 1: syntax error
15 314568.0 printf: invalid number '1895Mbit'
0.0 printf: invalid number 'burst'
0.0 printf: invalid number '391951b'
0.0
printf: invalid number 'cburst'
0 printf: invalid number '1249348b'
0.0 0.0 0.0 0.0
(standard_in) 2: syntax error
(standard_in) 1: illegal character: M
(standard_in) 1: syntax error
14 419424.0 printf: invalid number '1895Mbit'
0.0 printf: invalid number 'burst'
0.0 printf: invalid number '523126b'
0.0
printf: invalid number 'cburst'
0 printf: invalid number '1249348b'
0.0 0.0 0.0 0.0
(standard_in) 2: syntax error
(standard_in) 1: illegal character: M
(standard_in) 1: syntax error
17 104856.0 printf: invalid number '1895Mbit'
0.0 printf: invalid number 'burst'
0.0 printf: invalid number '129575b'
0.0
printf: invalid number 'cburst'
0 printf: invalid number '1249348b'
0.0 0.0 0.0 0.0
(standard_in) 2: syntax error
(standard_in) 1: illegal character: M
(standard_in) 1: syntax error
16 209712.0 printf: invalid number '1895Mbit'
0.0 printf: invalid number 'burst'
0.0 printf: invalid number '260750b'
0.0
printf: invalid number 'cburst'
0 printf: invalid number '1249348b'
0.0 0.0 0.0 0.0
 
Code:
ASUSWRT-Merlin RT-AC88U 384.16_beta3 Tue Mar 31 15:42:15 UTC 2020
thunder@RT-AC88U-5940:/tmp/home/root# curl "https://raw.githubusercontent.com/squidbillyms/AutoBW/master/AutoBW" -o /jffs/scripts/AutoBW && chmod 755 AutoBW
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed  0     0    0     0    0     0      0      0 --:--:-- --:--:-- --:--:--       0 12551    0     0    0     0      0      0 --:--:-- --:--:-- --:--:--     100 12551  100 12551    0     0  15927      0 --:--:-- --:--:-- --:--:-- 17904
chmod: AutoBW: No such file or directory
thunder@RT-AC88U-5940:/tmp/home/root# curl "https://raw.githubusercontent.com/squidbillyms/AutoBW/master/AutoBW" -o /jffs/scripts/AutoBW && chmod 755 /jffs/scripts/AutoBW && sh /jffs/scripts/AutoBW
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed  0     0    0     0    0     0      0      0 --:--:-- --:--:-- --:--:--     100 12551  100 12551    0     0  14426      0 --:--:-- --:--:-- --:--:-- 21865

 TEST MODE: No changes will be made.

               ----------- SPDMERLIN --------
               Download (Kbps)  Upload (Kbps)
               ---------------  -------------
Test  1 of  1      40212.5         41482.2
Scale Factors          0.85            0.85
Scaled Speeds      34180.6         35259.9

               ------------- QOS ------------
               Download (Kbps)  Upload (Kbps)
               ---------------  -------------
Previous               0.0             0.0
New (from above)   34180.6         35259.9
Runtime error (func=(main), adr=30): Divide by zero
Runtime error (func=(main), adr=30): Divide by zero
Scaling by             0.000           0.000

              ============================ DOWNLOAD =============================
               ------------- RATE -----------    ------------- CEIL -----------
Class          Previous (Kbps)    New (Kbps)     Previous (Kbps)    New (Kbps)
-----          ---------------  -------------    ---------------  -------------
(standard_in) 1: illegal character: M
(standard_in) 1: syntax error
(standard_in) 1: illegal character: M
(standard_in) 1: syntax error
11                 printf: invalid number '1895Mbit'
    0.0         printf: invalid number 'ceil'
    0.0           printf: invalid number '1895Mbit'
    0.0         printf: invalid number 'burst'
    0.0
printf: invalid number '1249348b'
 0                 printf: invalid number 'cburst'
    0.0         printf: invalid number '1249348b'
    0.0               0.0             0.0
(standard_in) 2: syntax error
(standard_in) 1: illegal character: M
(standard_in) 1: syntax error
10                 524288.0         printf: invalid number '1895Mbit'
    0.0           printf: invalid number 'burst'
    0.0         printf: invalid number '654311b'
    0.0
printf: invalid number 'cburst'
 0                 printf: invalid number '1249348b'
    0.0             0.0               0.0             0.0
(standard_in) 2: syntax error
(standard_in) 1: illegal character: M
(standard_in) 1: syntax error
13                 524288.0         printf: invalid number '1895Mbit'
    0.0           printf: invalid number 'burst'
    0.0         printf: invalid number '654311b'
    0.0
printf: invalid number 'cburst'
 0                 printf: invalid number '1249348b'
    0.0             0.0               0.0             0.0
(standard_in) 1: illegal character: M
(standard_in) 1: syntax error
(standard_in) 1: illegal character: M
(standard_in) 1: syntax error
12                 printf: invalid number '1048Mbit'
    0.0         printf: invalid number 'ceil'
    0.0           printf: invalid number '1895Mbit'
    0.0         printf: invalid number 'burst'
    0.0
printf: invalid number '1249378b'
 0                 printf: invalid number 'cburst'
    0.0         printf: invalid number '1249348b'
    0.0               0.0             0.0
(standard_in) 2: syntax error
(standard_in) 1: illegal character: M
(standard_in) 1: syntax error
15                 314568.0         printf: invalid number '1895Mbit'
    0.0           printf: invalid number 'burst'
    0.0         printf: invalid number '391951b'
    0.0
printf: invalid number 'cburst'
 0                 printf: invalid number '1249348b'
    0.0             0.0               0.0             0.0
(standard_in) 2: syntax error
(standard_in) 1: illegal character: M
(standard_in) 1: syntax error
14                 419424.0         printf: invalid number '1895Mbit'
    0.0           printf: invalid number 'burst'
    0.0         printf: invalid number '523126b'
    0.0
printf: invalid number 'cburst'
 0                 printf: invalid number '1249348b'
    0.0             0.0               0.0             0.0
(standard_in) 2: syntax error
(standard_in) 1: illegal character: M
(standard_in) 1: syntax error
17                 104856.0         printf: invalid number '1895Mbit'
    0.0           printf: invalid number 'burst'
    0.0         printf: invalid number '129575b'
    0.0
printf: invalid number 'cburst'
 0                 printf: invalid number '1249348b'
    0.0             0.0               0.0             0.0
(standard_in) 2: syntax error
(standard_in) 1: illegal character: M
(standard_in) 1: syntax error
16                 209712.0         printf: invalid number '1895Mbit'
    0.0           printf: invalid number 'burst'
    0.0         printf: invalid number '260750b'
    0.0
printf: invalid number 'cburst'
 0                 printf: invalid number '1249348b'
    0.0             0.0               0.0             0.0

              ============================= UPLOAD =============================
               ------------- RATE -----------    ------------- CEIL -----------
Class          Previous (Kbps)    New (Kbps)     Previous (Kbps)    New (Kbps)
-----          ---------------  -------------    ---------------  -------------
(standard_in) 1: illegal character: M
(standard_in) 1: syntax error
(standard_in) 1: illegal character: M
(standard_in) 1: syntax error
11                 printf: invalid number '1895Mbit'
    0.0         printf: invalid number 'ceil'
    0.0           printf: invalid number '1895Mbit'
    0.0         printf: invalid number 'burst'
    0.0
printf: invalid number '1249348b'
 0                 printf: invalid number 'cburst'
    0.0         printf: invalid number '1249348b'
    0.0               0.0             0.0
(standard_in) 2: syntax error
(standard_in) 1: illegal character: M
(standard_in) 1: syntax error
10                 524288.0         printf: invalid number '1895Mbit'
    0.0           printf: invalid number 'burst'
    0.0         printf: invalid number '654311b'
    0.0
printf: invalid number 'cburst'
 0                 printf: invalid number '1249348b'
    0.0             0.0               0.0             0.0
(standard_in) 2: syntax error
(standard_in) 1: illegal character: M
(standard_in) 1: syntax error
13                 524288.0         printf: invalid number '1895Mbit'
    0.0           printf: invalid number 'burst'
    0.0         printf: invalid number '654311b'
    0.0
printf: invalid number 'cburst'
 0                 printf: invalid number '1249348b'
    0.0             0.0               0.0             0.0
(standard_in) 1: illegal character: M
(standard_in) 1: syntax error
(standard_in) 1: illegal character: M
(standard_in) 1: syntax error
12                 printf: invalid number '1048Mbit'
    0.0         printf: invalid number 'ceil'
    0.0           printf: invalid number '1895Mbit'
    0.0         printf: invalid number 'burst'
    0.0
printf: invalid number '1249378b'
 0                 printf: invalid number 'cburst'
    0.0         printf: invalid number '1249348b'
    0.0               0.0             0.0
(standard_in) 2: syntax error
(standard_in) 1: illegal character: M
(standard_in) 1: syntax error
15                 314568.0         printf: invalid number '1895Mbit'
    0.0           printf: invalid number 'burst'
    0.0         printf: invalid number '391951b'
    0.0
printf: invalid number 'cburst'
 0                 printf: invalid number '1249348b'
    0.0             0.0               0.0             0.0
(standard_in) 2: syntax error
(standard_in) 1: illegal character: M
(standard_in) 1: syntax error
14                 419424.0         printf: invalid number '1895Mbit'
    0.0           printf: invalid number 'burst'
    0.0         printf: invalid number '523126b'
    0.0
printf: invalid number 'cburst'
 0                 printf: invalid number '1249348b'
    0.0             0.0               0.0             0.0
(standard_in) 2: syntax error
(standard_in) 1: illegal character: M
(standard_in) 1: syntax error
17                 104856.0         printf: invalid number '1895Mbit'
    0.0           printf: invalid number 'burst'
    0.0         printf: invalid number '129575b'
    0.0
printf: invalid number 'cburst'
 0                 printf: invalid number '1249348b'
    0.0             0.0               0.0             0.0
(standard_in) 2: syntax error
(standard_in) 1: illegal character: M
(standard_in) 1: syntax error
16                 209712.0         printf: invalid number '1895Mbit'
    0.0           printf: invalid number 'burst'
    0.0         printf: invalid number '260750b'
    0.0
printf: invalid number 'cburst'
 0                 printf: invalid number '1249348b'
    0.0             0.0               0.0             0.0
Not applying :(
 
Code:
ASUSWRT-Merlin RT-AC88U 384.16_beta3 Tue Mar 31 15:42:15 UTC 2020
thunder@RT-AC88U-5940:/tmp/home/root# curl "https://raw.githubusercontent.com/squidbillyms/AutoBW/master/AutoBW" -o /jffs/scripts/AutoBW && chmod 755 AutoBW
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed  0     0    0     0    0     0      0      0 --:--:-- --:--:-- --:--:--       0 12551    0     0    0     0      0      0 --:--:-- --:--:-- --:--:--     100 12551  100 12551    0     0  15927      0 --:--:-- --:--:-- --:--:-- 17904
chmod: AutoBW: No such file or directory
thunder@RT-AC88U-5940:/tmp/home/root# curl "https://raw.githubusercontent.com/squidbillyms/AutoBW/master/AutoBW" -o /jffs/scripts/AutoBW && chmod 755 /jffs/scripts/AutoBW && sh /jffs/scripts/AutoBW
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed  0     0    0     0    0     0      0      0 --:--:-- --:--:-- --:--:--     100 12551  100 12551    0     0  14426      0 --:--:-- --:--:-- --:--:-- 21865

 TEST MODE: No changes will be made.

               ----------- SPDMERLIN --------
               Download (Kbps)  Upload (Kbps)
               ---------------  -------------
Test  1 of  1      40212.5         41482.2
Scale Factors          0.85            0.85
Scaled Speeds      34180.6         35259.9

               ------------- QOS ------------
               Download (Kbps)  Upload (Kbps)
               ---------------  -------------
Previous               0.0             0.0
New (from above)   34180.6         35259.9
Runtime error (func=(main), adr=30): Divide by zero
Runtime error (func=(main), adr=30): Divide by zero
Scaling by             0.000           0.000

              ============================ DOWNLOAD =============================
               ------------- RATE -----------    ------------- CEIL -----------
Class          Previous (Kbps)    New (Kbps)     Previous (Kbps)    New (Kbps)
-----          ---------------  -------------    ---------------  -------------
(standard_in) 1: illegal character: M
(standard_in) 1: syntax error
(standard_in) 1: illegal character: M
(standard_in) 1: syntax error
11                 printf: invalid number '1895Mbit'
    0.0         printf: invalid number 'ceil'
    0.0           printf: invalid number '1895Mbit'
    0.0         printf: invalid number 'burst'
    0.0
printf: invalid number '1249348b'
 0                 printf: invalid number 'cburst'
    0.0         printf: invalid number '1249348b'
    0.0               0.0             0.0
(standard_in) 2: syntax error
(standard_in) 1: illegal character: M
(standard_in) 1: syntax error
10                 524288.0         printf: invalid number '1895Mbit'
    0.0           printf: invalid number 'burst'
    0.0         printf: invalid number '654311b'
    0.0
printf: invalid number 'cburst'
 0                 printf: invalid number '1249348b'
    0.0             0.0               0.0             0.0
(standard_in) 2: syntax error
(standard_in) 1: illegal character: M
(standard_in) 1: syntax error
13                 524288.0         printf: invalid number '1895Mbit'
    0.0           printf: invalid number 'burst'
    0.0         printf: invalid number '654311b'
    0.0
printf: invalid number 'cburst'
 0                 printf: invalid number '1249348b'
    0.0             0.0               0.0             0.0
(standard_in) 1: illegal character: M
(standard_in) 1: syntax error
(standard_in) 1: illegal character: M
(standard_in) 1: syntax error
12                 printf: invalid number '1048Mbit'
    0.0         printf: invalid number 'ceil'
    0.0           printf: invalid number '1895Mbit'
    0.0         printf: invalid number 'burst'
    0.0
printf: invalid number '1249378b'
 0                 printf: invalid number 'cburst'
    0.0         printf: invalid number '1249348b'
    0.0               0.0             0.0
(standard_in) 2: syntax error
(standard_in) 1: illegal character: M
(standard_in) 1: syntax error
15                 314568.0         printf: invalid number '1895Mbit'
    0.0           printf: invalid number 'burst'
    0.0         printf: invalid number '391951b'
    0.0
printf: invalid number 'cburst'
 0                 printf: invalid number '1249348b'
    0.0             0.0               0.0             0.0
(standard_in) 2: syntax error
(standard_in) 1: illegal character: M
(standard_in) 1: syntax error
14                 419424.0         printf: invalid number '1895Mbit'
    0.0           printf: invalid number 'burst'
    0.0         printf: invalid number '523126b'
    0.0
printf: invalid number 'cburst'
 0                 printf: invalid number '1249348b'
    0.0             0.0               0.0             0.0
(standard_in) 2: syntax error
(standard_in) 1: illegal character: M
(standard_in) 1: syntax error
17                 104856.0         printf: invalid number '1895Mbit'
    0.0           printf: invalid number 'burst'
    0.0         printf: invalid number '129575b'
    0.0
printf: invalid number 'cburst'
 0                 printf: invalid number '1249348b'
    0.0             0.0               0.0             0.0
(standard_in) 2: syntax error
(standard_in) 1: illegal character: M
(standard_in) 1: syntax error
16                 209712.0         printf: invalid number '1895Mbit'
    0.0           printf: invalid number 'burst'
    0.0         printf: invalid number '260750b'
    0.0
printf: invalid number 'cburst'
 0                 printf: invalid number '1249348b'
    0.0             0.0               0.0             0.0

              ============================= UPLOAD =============================
               ------------- RATE -----------    ------------- CEIL -----------
Class          Previous (Kbps)    New (Kbps)     Previous (Kbps)    New (Kbps)
-----          ---------------  -------------    ---------------  -------------
(standard_in) 1: illegal character: M
(standard_in) 1: syntax error
(standard_in) 1: illegal character: M
(standard_in) 1: syntax error
11                 printf: invalid number '1895Mbit'
    0.0         printf: invalid number 'ceil'
    0.0           printf: invalid number '1895Mbit'
    0.0         printf: invalid number 'burst'
    0.0
printf: invalid number '1249348b'
 0                 printf: invalid number 'cburst'
    0.0         printf: invalid number '1249348b'
    0.0               0.0             0.0
(standard_in) 2: syntax error
(standard_in) 1: illegal character: M
(standard_in) 1: syntax error
10                 524288.0         printf: invalid number '1895Mbit'
    0.0           printf: invalid number 'burst'
    0.0         printf: invalid number '654311b'
    0.0
printf: invalid number 'cburst'
 0                 printf: invalid number '1249348b'
    0.0             0.0               0.0             0.0
(standard_in) 2: syntax error
(standard_in) 1: illegal character: M
(standard_in) 1: syntax error
13                 524288.0         printf: invalid number '1895Mbit'
    0.0           printf: invalid number 'burst'
    0.0         printf: invalid number '654311b'
    0.0
printf: invalid number 'cburst'
 0                 printf: invalid number '1249348b'
    0.0             0.0               0.0             0.0
(standard_in) 1: illegal character: M
(standard_in) 1: syntax error
(standard_in) 1: illegal character: M
(standard_in) 1: syntax error
12                 printf: invalid number '1048Mbit'
    0.0         printf: invalid number 'ceil'
    0.0           printf: invalid number '1895Mbit'
    0.0         printf: invalid number 'burst'
    0.0
printf: invalid number '1249378b'
 0                 printf: invalid number 'cburst'
    0.0         printf: invalid number '1249348b'
    0.0               0.0             0.0
(standard_in) 2: syntax error
(standard_in) 1: illegal character: M
(standard_in) 1: syntax error
15                 314568.0         printf: invalid number '1895Mbit'
    0.0           printf: invalid number 'burst'
    0.0         printf: invalid number '391951b'
    0.0
printf: invalid number 'cburst'
 0                 printf: invalid number '1249348b'
    0.0             0.0               0.0             0.0
(standard_in) 2: syntax error
(standard_in) 1: illegal character: M
(standard_in) 1: syntax error
14                 419424.0         printf: invalid number '1895Mbit'
    0.0           printf: invalid number 'burst'
    0.0         printf: invalid number '523126b'
    0.0
printf: invalid number 'cburst'
 0                 printf: invalid number '1249348b'
    0.0             0.0               0.0             0.0
(standard_in) 2: syntax error
(standard_in) 1: illegal character: M
(standard_in) 1: syntax error
17                 104856.0         printf: invalid number '1895Mbit'
    0.0           printf: invalid number 'burst'
    0.0         printf: invalid number '129575b'
    0.0
printf: invalid number 'cburst'
 0                 printf: invalid number '1249348b'
    0.0             0.0               0.0             0.0
(standard_in) 2: syntax error
(standard_in) 1: illegal character: M
(standard_in) 1: syntax error
16                 209712.0         printf: invalid number '1895Mbit'
    0.0           printf: invalid number 'burst'
    0.0         printf: invalid number '260750b'
    0.0
printf: invalid number 'cburst'
 0                 printf: invalid number '1249348b'
    0.0             0.0               0.0             0.0
Not applying :(
Thanks!
Just pulled request to author to correct this issue
 
@Jack Yaz and @squidbilly just my 2 cents - why don't you guys work together and implement this great ideia inside your spdMerlin script?
As this script is totally dependent of your spmerlin, you can work together and implement it. Mantained mostly by squidbilly, but together.
What do you think?
 
It has been updated to v1.4 which addresses the issue maghuro posted about earlier.
Quick question: why are upload speeds limited to 100 Mbps? I have 400/20 connection...
Code:
 TEST MODE: No changes will be made.

               ----------- SPDMERLIN --------
               Download (Kbps)  Upload (Kbps)
               ---------------  -------------
Test  1 of  2      459950.1         23705.6
Test  2 of  2      346695.7         23408.6
Average            403322.9         23557.1
Scale Factors          0.85            0.85
Scaled Speeds      342824.4         20023.6
* Download speed (342824.4 Kbps) > upper limit (102400.0 Kbps)
Corrected Speeds   102400.0         20023.6
 
@maghuro @squidbilly
Noticed you set auto configuration to 85% of total bandwidth, can we have option to set at 90% or something whatever available total bandwidth recorded by spdmerlin ? I hope such option will help alot
 
@maghuro @squidbilly
Noticed you set auto configuration to 85% of total bandwidth, can we have option to set at 90% or something whatever available total bandwidth recorded by spdmerlin ? I hope such option will help alot
Sure, just change it in the top (configuration part) of the AutoBW script to whatever works for you.
Code:
#Scale average values by this factor
# Adjust to optimize bufferbloat and quality grade at DSLreports.com
down_scale_factor=0.85
up_scale_factor=0.85
 
Quick question: why are upload speeds limited to 100 Mbps? I have 400/20 connection...
Code:
 TEST MODE: No changes will be made.

               ----------- SPDMERLIN --------
               Download (Kbps)  Upload (Kbps)
               ---------------  -------------
Test  1 of  2      459950.1         23705.6
Test  2 of  2      346695.7         23408.6
Average            403322.9         23557.1
Scale Factors          0.85            0.85
Scaled Speeds      342824.4         20023.6
* Download speed (342824.4 Kbps) > upper limit (102400.0 Kbps)
Corrected Speeds   102400.0         20023.6
You can manually change for everything you want
 
Hi, I'm afraid there's something I'm missing. How do I make it run "for real"

Code:
 TEST MODE: No changes were made.
 

Latest threads

Sign Up For SNBForums Daily Digest

Get an update of what's new every day delivered to your mailbox. Sign up here!
Top