When SQM is enabled, Windows task manager upload gauge shows 2x upload traffic

Hi, I have ZTE MF286R as my main router, taking my VDSL and LTE* with mwan3 for failover mostly, doing guest networks, SQM etc and I am pretty happy with it so far, considering it is a rather weak device.

Turk Telekom gives ~40% downlink overhead(my package is 50/8), completely obliterating any buffer bloat AND any bandwidth loss from their IPTV solution, so I didn't really though of using SQM most of the time but especially at night when devices were all rushing to backup WhatsApp etc. to the cloud it was problematic to browse the web, let alone play comp in valorant with that sweet sweet 4ms Istanbul ping. So I enabled SQM on my device to fix the buffer bloat issues I had during upload. It did. I am happy and using it for a while. But today, I came across this.

image

I knew it was NOT going through LTE because I pulled out the SIM card two days ago to give it to my friend who was going to the recent earthquake region as a volunteer. And although I would love to have it(I can't even pay for it!), I know my internet was NOT uploading at 15 megabits per second. OpenWRT kinda confirms, with peaks of upload graph showing around 7-8Mbps.

(my WAN side is br-lan and my LAN side is br-ballan, some weird ass config I did but it works so don't worry about it. if it ain't broke don't fix it)

image
image

I know I gave a bit too much info but hopefully, it helps. Basically my question is, why and how? Is windows and netlimiter broken, or my config, or is it just queueing up packets on the routers RAM or sth? My configs are below.

cat /etc/config/sqm

config queue 'eth1'
        option qdisc 'cake'
        option script 'piece_of_cake.qos'
        option interface 'br-lan'
        option debug_logging '0'
        option verbosity '5'
        option linklayer 'ethernet'
        option overhead '38'
        option enabled '1'
        option download '51200'
        option upload '7132'

config queue
        option interface 'usb1'
        option debug_logging '0'
        option verbosity '5'
        option qdisc 'cake'
        option script 'piece_of_cake.qos'
        option linklayer 'ethernet'
        option overhead '44'
        option linklayer_advanced '1'
        option tcMTU '2047'
        option tcTSIZE '128'
        option tcMPU '0'
        option linklayer_adaptation_mechanism 'default'
        option enabled '1'
        option download '8192'
        option upload '8192'
cat /etc/config/network

config interface 'loopback'
        option device 'lo'
        option proto 'static'
        option ipaddr '127.0.0.1'
        option netmask '255.0.0.0'

config globals 'globals'
        option ula_prefix 'fdda:831a:12bc::/48'
        option packet_steering '1'

config device
        option name 'br-lan'
        option type 'bridge'
        list ports 'eth0.1'

config interface 'lan'
        option device 'br-lan'
        option proto 'dhcp'
        option peerdns '0'
        list dns '1.1.1.2'
        list dns '1.0.0.2'
        option metric '10'

config switch
        option name 'switch0'
        option reset '1'
        option enable_vlan '1'

config switch_vlan
        option device 'switch0'
        option vlan '1'
        option vid '1'
        option description 'default'
        option ports '0t 5 1t'

config interface 'ltewan'
        option proto 'ncm'
        option device '/dev/ttyACM0'
        option apn 'internet'
        option ipv6 '0'
        option delay '30'
        option peerdns '0'
        list dns '1.1.1.1'
        option metric '12'
        option pdptype 'IP'

config switch_vlan
        option device 'switch0'
        option vlan '2'
        option vid '2'
        option description 'balancedlan'
        option ports '0t 5t 3 1'

config interface 'lanbal'
        option proto 'static'
        option ipaddr '192.168.69.1'
        option netmask '255.255.255.0'
        option device 'br-ballan'
        list dns '1.1.1.2'
        list dns '1.0.0.2'
        list dns '2606:4700:4700::1111'
        list dns '2606:4700:4700::1001'
        option metric '5'
        option ip6assign '64'

config device
        option type 'bridge'
        option name 'br-ballan'
        list ports 'eth0.2'
        option mtu '1500'
        option macaddr 'redacted'

config interface 'guestlan'
        option proto 'static'
        option ipaddr '192.168.131.1'
        option netmask '255.255.255.0'
        option device 'eth0.3'

config switch_vlan
        option device 'switch0'
        option vlan '3'
        option vid '3'
        option description 'guest'
        option ports '0t 5t 1t'

config interface 'mgmt'
        option proto 'wireguard'
        option private_key 'redacted'
        list addresses '10.7.0.2/24'
        option peerdns '0'
        list dns '1.1.1.1'

config wireguard_mgmt
        option description 'Imported peer configuration'
        option public_key 'redacted'
        option preshared_key 'redacted'
        option persistent_keepalive '25'
        option endpoint_host 'redacted'
        option endpoint_port 'redacted'
        list allowed_ips '10.7.0.0/24'
cat /etc/config/mwan3

config globals 'globals'
        option mmx_mask '0x3F00'
        list rt_table_lookup '220'

config rule 'https'
        option family 'ipv4'
        option proto 'tcp'
        option dest_ip '0.0.0.0/0'
        option dest_port '443'
        option sticky '0'
        option logging '1'
        option use_policy 'httpslb'

config rule 'default_rule_v4'
        option dest_ip '0.0.0.0/0'
        option family 'ipv4'
        option proto 'all'
        option sticky '0'
        option use_policy 'main'

config interface 'lan'
        option family 'ipv4'
        option track_method 'ping'
        option count '1'
        option size '56'
        option max_ttl '60'
        option check_quality '1'
        option failure_latency '150'
        option failure_loss '20'
        option recovery_latency '50'
        option recovery_loss '5'
        option interval '1'
        option failure_interval '1'
        option recovery_interval '1'
        option down '2'
        option initial_state 'offline'
        option enabled '1'
        option timeout '1'
        option up '1'
        list track_ip '1.1.1.1'
        list track_ip '8.8.8.8'
        list track_ip '195.175.39.50' #turk telekom DNS server
        option reliability '2'

config member 'lanbp'
        option interface 'lan'
        option metric '10'
        option weight '10'

config policy 'lanbypass'
        list use_member 'lanbp'
        option last_resort 'unreachable'

config policy 'ltebypass'
        option last_resort 'unreachable'
        list use_member 'lte'

config policy 'main'
        option last_resort 'unreachable'
        list use_member 'lanbp'
        list use_member 'lte'

config member 'lte'
        option interface 'ltewan'
        option metric '15'
        option weight '10'

config member 'lanhttps'
        option interface 'lan'
        option metric '25'
        option weight '100'

config member 'ltehttps'
        option interface 'ltewan'
        option metric '25'
        option weight '100'

config policy 'httpslb'
        option last_resort 'unreachable'
        list use_member 'lanhttps'

config interface 'ltewan'
        option enabled '1'
        option initial_state 'online'
        option family 'ipv4'
        option track_method 'ping'
        option count '1'
        option size '56'
        option max_ttl '60'
        list track_ip '1.1.1.1'
        list track_ip '8.8.8.8'
        list track_ip '195.175.39.50' #turk telekom dns
        option reliability '2'
        option timeout '1'
        option interval '1'
        option failure_interval '1'
        option recovery_interval '1'
        option down '2'
        option up '1'
cat /etc/config/system

config system
        option hostname 'OpenWrt'
        option timezone 'UTC'
        option ttylogin '0'
        option log_size '64'
        option urandom_seed '0'

config timeserver 'ntp'
        option enabled '1'
        option enable_server '0'
        list server '0.openwrt.pool.ntp.org'
        list server '1.openwrt.pool.ntp.org'
        list server '2.openwrt.pool.ntp.org'
        list server '3.openwrt.pool.ntp.org'

config gpio_switch 'power_btn_block'
        option name 'Power button blocker'
        option gpio_pin '20'
        option value '0'

*lte speedtest is made with another device since I don't want to disrupt my home network just for a speedtest, that supports upload carrier aggregation. mf286r does not, and it can only get up to 50 megs of upload.

Perhaps SQM is discarding packets - maybe these are re-transmits.

2 Likes

Yes, SQM works by dropping packets instead of letting them get caught up in a buffer. In a crunch situation, not all of the packets that leave the PC will enter the modem(*). The PC is supposed to react by sending more slowly, but some applications are better at this than others.

  • The real complicated science here is to decide which packets to drop. A game needs every packet to go through, but it never sends them densely like a file upload does. The SQM algorithms try to recognize this and not drop game packets.
1 Like

Thanks for the answer, I think sqm does a great job at that since I do not have any problem doing full blast file uploads and gaming at the same time. Maybe I get like +10ms.

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