Even if scaled those down by, say 20, to account for roughly the relevant size vs the other drop size, it's still a pretty amazing amount of ack-drops in my case.
And I guess the ecn advocates can always hope the ecn mark goes up.
Yes, I'm certain the ack-drop stat is right. It could, actually, end up higher on this 10x1 connection, if the algorithm for dropping acks was improved a bit. (as best as I recall it didn't do a virtual drop from drr) You wanna see it go really high, try something with a 50x1 down/up ratio....
I pushed an update to master for rrdtool1, collectd & luci-app-statistics to include a script based collector for cake & mq qdiscs if anyone interested.
The installation is possible in master branch (but not in 19.07.x), and the steps are:
install collectd-mod-sqm which also installs collectd-mod-exec.
install updated version of collectd itself (5.11.0-3), so that the init script has the correct logic
additionally, you should install the updated rrdtool1 (1.0.50-3), so that the log scale is shown more beautifully.
and naturally you also need up-to-date LuCI statistics, so that the graph definitions are there. luci-app-statistics_git-20.126.39721-9c4f345 or newer
The SQM monitor plugin (just a script) is actually executed by the collectd exec plugin (real collectd plugin).
You enable exec plugin in luci_statistics config, and also add a "exec" section for running the script /usr/libexec/collectd/sqm_collectd.sh with interface list as nobody. You can do that in exec plugin config.
NOTE: the collectd part has been backported to the 19.07 branch, so the data collection will work also there, but the LuCI graphs have not been backported, so the visualisation of that data needs to be done elsewhere.
Wed May 6 22:22:48 2020 daemon.err collectd[2403]: exec plugin: exec_read_one: error = sh: -want0: out of range
Wed May 6 22:22:48 2020 daemon.err collectd[2403]: exec plugin: exec_read_one: error = /usr/libexec/collectd/sqm_collectd.sh: eval: line 1: osppppoe-want0=1: not found
Wed May 6 22:22:48 2020 daemon.err collectd[2403]: exec plugin: exec_read_one: error = sh: -want1: out of range
Wed May 6 22:22:48 2020 daemon.err collectd[2403]: exec plugin: exec_read_one: error = /usr/libexec/collectd/sqm_collectd.sh: eval: line 1: osppppoe-want1=2506: not found
Wed May 6 22:22:48 2020 daemon.err collectd[2403]: exec plugin: exec_read_one: error = sh: -want2: out of range
Wed May 6 22:22:48 2020 daemon.err collectd[2403]: exec plugin: exec_read_one: error = /usr/libexec/collectd/sqm_collectd.sh: eval: line 1: osppppoe-want2=2: not found
According to the bash manuals the syntax looks fine.
I tried it and it does indeed work with this single line.
I note that [-.] might be safer for further additions, as - denotes a character range unless at the end or beginning of a pattern, and I assume new members to the set of to be substituted taboo characters would naturally be added to the end...
Wed May 6 23:23:12 2020 daemon.err collectd[2403]: Sleeping only 2s because the next interval is 1737.746 seconds in the past!
Wed May 6 23:23:14 2020 daemon.err collectd[2403]: rrdtool plugin: rrd_update_r failed: /tmp/rrd/nacktmulle/sqmcake-ifb4pppoe-wan/qdisct_latencyus-BK.rrd: opening '/tmp/rrd/nacktmulle/sqmcake-ifb4pppoe-wan/qdisct_latencyus-BK.rrd': No such file or directory
after a reboot, yet the plots display nicely (albeit starting from scratch as I do not use persistent backing for the data bases). I assume this is just cosmetic....
As I said, I tested it under OpenWrt with the default BusyBox/ash shell. The ash manpage is pretty mum about this though...
I realized that I can add multiple lines to the collected exec configuration to monitor multiple interfaces. Tip of the hat to @ldir, thanks a lot!