U/D Speed with SQM

I have an FTTH with PPPoE connection, which is 330/330 Mbps as tested by Speedtest.net app over a wired connection. SQM d/u is set at 320Mbps with overhead 50 bytes, but my actual speed over Ethernet is 301..303Mbps (not 320Mbps as configured): is that normal? Is the overhead window configured too big?
The router is wrt3200acm, so there is plenty of CPU available for SQM.

config queue 'eth1'
	option qdisc 'cake'
	option script 'piece_of_cake.qos'
	option qdisc_advanced '0'
	option ingress_ecn 'ECN'
	option egress_ecn 'ECN'
	option qdisc_really_really_advanced '0'
	option itarget 'auto'
	option etarget 'auto'
	option enabled '1'
	option interface 'pppoe-wan'
	option download '320000'
	option upload '320000'
	option linklayer 'ethernet'
	option overhead '50'

SQM rates are gross rates, so the achievable goodput* given your SQM configuration is going to be smaller to the tune of:

320 * ((1500-8-20-20)/(1500-8+50)) = 301.32Mbps

assuming IPv4 and TCP and no options/extras....

*) goodput rate, or IP/TCP/HTTP payload rate is what speedtests typically try to measure.

1 Like

Unclear, that really depends on your ISP. However it is likely that the real overhead is somewhat smaller. For bufferbloat countermeasures overestimating the overhead is fine.

Thx, so it looks like what I am seeing makes sense. If I set overhead to zero, I see 309..310 Mbps with a theoretical max of 311.42 Mbps as per your example. If I remove the overhead and set linklayer to none, I still see the same 309..310 Mbps. In both cases a parallel ping of 8.8.8.8 stayed the same during the test.
Without SQM, the ping of 8.8.8.8 doubles from 3.5..4ms to 7..8ms, so SQM is still helpful when the link is saturated.

Are both d/u & overhead trying to optimize the same thing? Based on what I am seeing, I can just use one nob d/u to control the bufferbloat. Is that not correct?

1 Like

Not really, have a look at https://openwrt.org/docs/guide-user/network/traffic-shaping/sqm-details#sqmlink_layer_adaptation_tab on how overhead accounting, gross shaper rate and packet size interact with each other.
However, if you use an adaptive/reactive approach like cake-autorate then the controller will adapt and work reasonably well even if configured with incorrect overhead values.

1 Like

This topic was automatically closed 10 days after the last reply. New replies are no longer allowed.