SQM= no change in dslreports test

I have the same results in the dslreports speed test with SQM enabled and not.
I have cable and tried 22 and 38 for the link layer overhead.
The bloat goes into the red on the upload. the Download is none or minor latency. This is for both on and off for the SQM.
using router GL-AR750S. please let me know what other data you need.
it is really strange as my upload for example is 3+ Mbps even though I have set it as low as 2000Kbps

Your values are slightly off, use this for overhead: 18 mpu 64 atm

I'm not sure how you do this in luci as I set it from the command line. You can also use the docsis keyword for cable.

I find the dslreports speed test speeds are kind of off as I have to set them higher than my actual speed to not have a significant speed drop with cake enabled.

Edit: I just looked and you can probably set it under: "Advanced option string to pass to the ingress queueing disciplines; no error checking, use very carefully."

make sure set set ingress and egress.

thanks, I see where to enter those option strings but I do not know how to format them. Can you give me insight on your use of the CLI to do this.
I just did a change and even though my WAN is eth0.2 the changes that said to be applied listed eth1.
sqm.eth1
sqm.eth1.download= 27000
sqm.eth1.upload= 4000

nevertheless it does have the correct state file

root@GL-AR750S:/etc/sqm# ls /var/run/sqm
available_qdiscs  eth0.2.state

Please have a look at https://openwrt.org/docs/guide-user/network/traffic-shaping/sqm for instructions and at https://openwrt.org/docs/guide-user/network/traffic-shaping/sqm-details for the details.

Also please follow the recommendations given in https://forum.openwrt.org/t/sqm-qos-recommended-settings-for-the-dslreports-speedtest-bufferbloat-testing/2803 for how to configure the dslreports Speedtests and how to link in the results here.

If you have anymore specific questions I am happy to help....

I would actively recommend to not (I accidentally omitted this initially, thanks to @SlotTech for noticing) use the ATM keyword as this will cost you >= 9% Goodput, without meaningfully configuring sqm correctly. The goal is to get link layer accounting right so all you need to adjust to your liking is the bandwidth fields.

Also, please note that you configure the gross shaper throughput while Speedtests typically report TCP/ip-goodput which by necessity is smaller than the grossrate.

With settings typically for a non ds-lite DOCSIS/cable link you can expect the Goodput to be:
100 * (1500-20-20) / (1518) = 96.18 %
of the shaper grossrate, due to the unavoidable per-packet overhead.

philopenwrt here are command line settings. Just SSH into the router and copy and past each line
upload:

tc qdisc add dev eth0.2 root cake bandwidth 4mbit dual-srchost nat overhead 18 mpu 64 noatm

download:

line1: ip link add name ifb4eth0.2 type ifb
line2: tc qdisc add dev eth0.2 handle ffff: ingress
line3: tc qdisc add dev ifb4eth0.2 root cake bandwidth 27mbit dual-dsthost nat overhead 18 mpu 64 noatm
line4: ifconfig ifb4eth0.2 up
line5: tc filter add dev eth0.2 parent ffff: protocol all prio 10 u32 match u32 0 0 flowid 1:1 action mirred egress redirect dev ifb4eth0.2

Let me know how it works. Hopefully I didn't mess anything up I just woke up.

edit: made it clear what's on each line for download settings

moeller0 if I'm not mistaken ATM is for ADSL. philopnewrt has cable that's why i suggested noatm, in fact the setting I gave is equivalent to the docsis keyword.

edit: I need glasses and din't actually suggest noatm.

1 Like

Well, your intention was/is alright, but let me cite what made it into your first posting:

But I see I made the same typo in my recommendation, by omitting the word not :wink:

I would not do this completely by hand, as this will not survive a simple ifdown ifup cycle, it is really not that hard to configure sqm even via the command line, but for the OP I recommend the GUI...

Good catch moeller0 I didn't notice that. :+1:

I looked for a high five emoji but didn't see one so that will have to do.

1 Like

Well moeller0 I just noticed I was still running ATM, I was messing with that setting about a month ago and it probably been there since.

1 Like

I had done all that before I posted but I rechecked and did some more tests. ButI may have missed or changed things in my experimenting.

I also went extreme of 10000 dn and1000 up and ctill ā€˜Cā€™ bufferbloat

Using cake...piece of cake script

Without sqm enabled

Noobs can only post one image

After setting sqm 24000 down 2500 up

Okay, so this looks like either sqm-scripts does not fully start or is instantiated on the wrong interface.

Please post the output of the following commands executed on your routers command line:

  1. cat /etc/config/sqm
  2. ifstatus wan
  3. tc -s qdisc
  4. tc -d qdisc
  5. SQM_DEBUG=1 SQM_VERBOSITY_MAX=8 /etc/init.d/sqm stop
  6. SQM_DEBUG=1 SQM_VERBOSITY_MAX=8 /etc/init.d/sqm start

Feel free to post the resuls into individual posts, and make sure to use the <> button to paste the result as preformatted text, otherwise it will get hard to read.

Thanks!

here's the output but I deleted most of the ifstatus wan output. I can copy other if needed

root@GL-AR750S:~# cat /etc/config/sqm

config queue 'eth1'
	option debug_logging '0'
	option verbosity '5'
	option qdisc 'cake'
	option script 'piece_of_cake.qos'
	option linklayer 'ethernet'
	option overhead '22'
	option interface 'eth0.2'
	option qdisc_advanced '1'
	option squash_dscp '1'
	option squash_ingress '1'
	option ingress_ecn 'ECN'
	option egress_ecn 'NOECN'
	option qdisc_really_really_advanced '0'
	option download '25000'
	option enabled '1'
	option upload '2400'

root@GL-AR750S:~# ifstatus wan
	"l3_device": "eth0.2",

root@GL-AR750S:~# tc -s qdisc
qdisc noqueue 0: dev lo root refcnt 2 
 Sent 0 bytes 0 pkts (dropped 0, overlimits 0) 
qdisc fq_codel 0: dev eth0 root refcnt 2 limit 10240p flows 1024 quantum 1514 target 5.0ms interval 100.0ms memory_limit 4Mb ecn 
 Sent 58004788 bytes 249192 pkts (dropped 0, overlimits 0) 
  maxpacket 1514 drop_overlimit 0 new_flow_count 20 ecn_mark 0
  new_flows_len 0 old_flows_len 0
qdisc noqueue 0: dev br-lan root refcnt 2 
 Sent 0 bytes 0 pkts (dropped 0, overlimits 0) 
qdisc noqueue 0: dev eth0.1 root refcnt 2 
 Sent 0 bytes 0 pkts (dropped 0, overlimits 0) 
qdisc cake 802b: dev eth0.2 root refcnt 2 besteffort flowblind rtt 5.0ms raw overhead 22 
 Sent 20523794 bytes 85090 pkt (dropped 0, overlimits 0 requeues 0) 
 backlog 0b 0p requeues 0
 memory used: 14b of 35520b
 capacity estimate: 534098Tbit
 min/max network layer size:         1514 /      42
 min/max overhead-adjusted size:     1514 /11534337
 average network hdr offset:           42


qdisc ingress ffff: dev eth0.2 parent ffff:fff1 ---------------- 
 Sent 11893991 bytes 59003 pkt (dropped 0, overlimits 0 requeues 0) 
 backlog 0b 0p requeues 0
qdisc noqueue 0: dev wlan1 root refcnt 2 
 Sent 0 bytes 0 pkts (dropped 0, overlimits 0) 
qdisc noqueue 0: dev wlan0 root refcnt 2 
 Sent 0 bytes 0 pkts (dropped 0, overlimits 0) 
qdisc cake 802c: dev ifb4eth0.2 root refcnt 2 besteffort flowblind wash rtt 5.0ms raw overhead 22 
 Sent 12720033 bytes 59003 pkt (dropped 0, overlimits 0 requeues 0) 
 backlog 0b 0p requeues 0
 memory used: 14b of 1984b
 capacity estimate: 532691Tbit
 min/max network layer size:         1514 /      60
 min/max overhead-adjusted size:     1514 /11534337
 average network hdr offset:           60


root@GL-AR750S:~# tc -d qdisc
qdisc noqueue 0: dev lo root refcnt 2 
qdisc fq_codel 0: dev eth0 root refcnt 2 limit 10240p flows 1024 quantum 1514 target 5.0ms interval 100.0ms memory_limit 4Mb ecn 
qdisc noqueue 0: dev br-lan root refcnt 2 
qdisc noqueue 0: dev eth0.1 root refcnt 2 
qdisc cake 802b: dev eth0.2 root refcnt 2 besteffort flowblind rtt 5.0ms raw overhead 22 
qdisc ingress ffff: dev eth0.2 parent ffff:fff1 ---------------- 
qdisc noqueue 0: dev wlan1 root refcnt 2 
qdisc noqueue 0: dev wlan0 root refcnt 2 
qdisc cake 802c: dev ifb4eth0.2 root refcnt 2 besteffort flowblind wash rtt 5.0ms raw overhead 22 
root@GL-AR750S:~# SQM_DEBUG=1 SQM_VERBOSITY_MAX=8 /etc/init.d/sqm stop
SQM: Stopping SQM on eth0.2
root@GL-AR750S:~# SQM_DEBUG=1 SQM_VERBOSITY_MAX=8 /etc/init.d/sqm start
SQM: Starting SQM script: piece_of_cake.qos on eth0.2, in: 25000 Kbps, out: 2400 Kbps
SQM: QDISC cake is useable.
SQM: Starting piece_of_cake.qos
SQM: ifb associated with interface eth0.2: 
SQM: Currently no ifb is associated with eth0.2, this is normal during starting of the sqm system.
SQM: egress
SQM: LLA: default link layer adjustment method for cake is cake
SQM: cake link layer adjustments:  overhead 22 mpu 0
SQM: egress shaping activated
SQM: QDISC ingress is useable.
SQM: ingress
SQM: LLA: default link layer adjustment method for cake is cake
SQM: cake link layer adjustments:  overhead 22 mpu 0
SQM: ingress shaping activated
SQM: piece_of_cake.qos was started on eth0.2 successfully
root@GL-AR750S:~#

this is really academic as I don't game. But I had to keep testing when I couldn't find a cure for the bloat.

here is result of using fq_codel and simple.qos
the others above were pieceofcake.qos.

This is odd, as these are not the cake defaults, nor are these values expected from your /etc/config/sqm; did you by any chance pay with calling tc add/replace/change dev eth02.root cake with some options on the command line? If so, could you post the current output of tc -s qdisc as the sqm stop/ sqm start pair should have set up cake in alignment with the configuration in /etc/config/sqm.

Also:

and

Show that cake was not configured with any actual shaper limit at all, no wonder that this does not shape... How did you change these values in /etc/config/sqm during testing?

Let me note, I can not rule out any bug in sqm-scripts so I really want to learn the steps you took to get where you are to see whether I can recreate this.

I note that this gets you reasonable uplink ...

I will do that later but to reply about the steps, I just input on the luci web interface. The limits and selected cake pieceofcake. But no other options. No other qos is installed.