Intermittent wifi performance issues (2G & 5G) - WRT1900ACS

I've been having intermittent wifi throughput issues for a while now - and I'm not entirely sure how to continue debugging.

I've found (especially when using zoom) one client (MacBook) may get awful throughput (500kbps tested via fast.com), when another right next to it may get full throughput (~70mbps).

This first started happening after upgrading to a more recent snapshot from https://dc502wrt.org/

Any thoughts / ideas on what it could be greatly appreciated!

Running iperf3 normally:

After reconnecting to 5g a few times - same as before now tests at 72mbps via fast.com Tx rate 975mbps

[I] ➜ iperf3 -c 192.168.1.1 
Connecting to host 192.168.1.1, port 5201
[  5] local 192.168.1.3 port 55463 connected to 192.168.1.1 port 5201
[ ID] Interval           Transfer     Bitrate
[  5]   0.00-1.00   sec  60.2 MBytes   505 Mbits/sec                  
[  5]   1.00-2.00   sec  66.9 MBytes   562 Mbits/sec                  
[  5]   2.00-3.00   sec  68.6 MBytes   575 Mbits/sec                  
[  5]   3.00-4.00   sec  68.8 MBytes   578 Mbits/sec                  
[  5]   4.00-5.00   sec  69.9 MBytes   587 Mbits/sec                  
[  5]   5.00-6.00   sec  70.5 MBytes   591 Mbits/sec                  
[  5]   6.00-7.00   sec  67.3 MBytes   565 Mbits/sec                  
[  5]   7.00-8.00   sec  69.3 MBytes   580 Mbits/sec                  
[  5]   8.00-9.00   sec  70.4 MBytes   591 Mbits/sec                  
[  5]   9.00-10.00  sec  65.5 MBytes   549 Mbits/sec                  
- - - - - - - - - - - - - - - - - - - - - - - - -
[ ID] Interval           Transfer     Bitrate
[  5]   0.00-10.00  sec   678 MBytes   568 Mbits/sec                  sender
[  5]   0.00-10.02  sec   677 MBytes   567 Mbits/sec                  receiver

iperf Done.

and when everything is slow:

Tx still 975mbps, results way off. Client in same place

[I] ➜ iperf3 -c 192.168.1.1 
Connecting to host 192.168.1.1, port 5201
[  5] local 192.168.1.3 port 55304 connected to 192.168.1.1 port 5201
[ ID] Interval           Transfer     Bitrate
[  5]   0.00-1.00   sec  1.61 MBytes  13.5 Mbits/sec                  
[  5]   1.00-2.00   sec  1.79 MBytes  15.0 Mbits/sec                  
[  5]   2.00-3.00   sec  2.47 MBytes  20.7 Mbits/sec                  
[  5]   3.00-4.00   sec  2.33 MBytes  19.5 Mbits/sec                  
[  5]   4.00-5.00   sec  1.91 MBytes  16.1 Mbits/sec                  
[  5]   5.00-6.00   sec  9.06 MBytes  76.0 Mbits/sec                  
[  5]   6.00-7.00   sec  10.5 MBytes  87.9 Mbits/sec                  
[  5]   7.00-8.00   sec  8.59 MBytes  72.1 Mbits/sec                  
[  5]   8.00-9.00   sec  7.68 MBytes  64.4 Mbits/sec                  
[  5]   9.00-10.00  sec  9.27 MBytes  77.8 Mbits/sec                  
- - - - - - - - - - - - - - - - - - - - - - - - -
[ ID] Interval           Transfer     Bitrate
[  5]   0.00-10.00  sec  55.2 MBytes  46.3 Mbits/sec                  sender
[  5]   0.00-10.19  sec  54.8 MBytes  45.1 Mbits/sec                  receiver

I think I've disabled all QoS and SQM running, although this still feels like one client is being penalised for some reason? I'm not too sure how to validate this. I think it may be dnscrypt-proxy - so I've removed it and will keep an eye on it...

Router config & debug info (I've dumped anything I think may be relevant):

===== ./getstats.sh at Mon Jan 18 10:46:39 UTC 2021 =====
[ cat /etc/banner ]
  _______                     ________        __
 |       |.-----.-----.-----.|  |  |  |.----.|  |_
 |   -   ||  _  |  -__|     ||  |  |  ||   _||   _|
 |_______||   __|_____|__|__||________||__|  |____|
          |__| W I R E L E S S   F R E E D O M
 -----------------------------------------------------
 OpenWrt SNAPSHOT, r13342-e35e40ad82
 -----------------------------------------------------


[ date ]
Mon Jan 18 10:46:39 UTC 2021


[ cat /etc/openwrt_release ]
DISTRIB_ID='OpenWrt'
DISTRIB_RELEASE='SNAPSHOT'
DISTRIB_REVISION='r13342-e35e40ad82'
DISTRIB_TARGET='mvebu/cortexa9'
DISTRIB_ARCH='arm_cortex-a9_vfpv3-d16'
DISTRIB_DESCRIPTION='OpenWrt SNAPSHOT r13342-e35e40ad82'
DISTRIB_TAINTS='busybox'


[ uname -a ]
Linux OpenWrt 5.4.42 #0 SMP Sat May 23 11:38:12 2020 armv7l GNU/Linux


[ uptime ]
 10:46:39 up  7:45,  load average: 0.02, 0.01, 0.00


[ top -b | head -n 20 ]
Mem: 151824K used, 358096K free, 3916K shrd, 13724K buff, 49736K cached
CPU:   0% usr   0% sys   0% nic 100% idle   0% io   0% irq   0% sirq
Load average: 0.02 0.02 0.00 2/92 5610
  PID  PPID USER     STAT   VSZ %VSZ %CPU COMMAND
 1838     1 root     S     786m 158%   0% /usr/sbin/dnscrypt-proxy -config /etc/dnscrypt-proxy2/dnscrypt-proxy.toml
 4240     1 root     S    32900   6%   0% /usr/sbin/smbd -F
 4851  4240 root     S    31508   6%   0% {cleanupd} /usr/sbin/smbd -F
 4850  4240 root     S    31504   6%   0% {smbd-notifyd} /usr/sbin/smbd -F
 4241     1 root     S    19476   4%   0% /usr/sbin/nmbd -F
 4971     1 dnsmasq  S     8048   2%   0% /usr/sbin/dnsmasq -C /var/etc/dnsmasq.conf.cfg01411c -k -x /var/run/dnsmasq/dnsmasq.cfg01411c.pid
 3407     1 nobody   S     2008   0%   0% avahi-daemon: running [OpenWrt.local]
 3320     1 root     S     1972   0%   0% /usr/sbin/uhttpd -f -h /www -r OpenWrt -x /cgi-bin -u /ubus -t 60 -T 30 -k 20 -A 1 -n 3 -N 100 -R -p 0.0.0.0:80 -p [::]:80 -C /etc/uhttpd.crt -K /etc/uhttpd.key -s 0.0.0.0:443 -s [::]:443 -q
 1813     1 root     S     1872   0%   0% /sbin/rpcd
 2030     1 root     S     1784   0%   0% /usr/sbin/hostapd -s -g /var/run/hostapd/global
 2031     1 root     S     1716   0%   0% /usr/sbin/wpa_supplicant -n -s -g /var/run/wpa_supplicant/global
 1183     1 root     S     1624   0%   0% /usr/sbin/haveged -F -w 1024 -d 32 -i 32 -v 1
 2097     1 root     S     1604   0%   0% /sbin/netifd
    1     0 root     S     1416   0%   0% /sbin/procd
 3384     1 root     S     1376   0%   0% /usr/bin/dbus-daemon --system
 2187     1 root     S     1272   0%   0% /usr/sbin/odhcpd


[ du -sh / ; du -sh /* ]
149.6M	/
649.0K	/bin
0	/dev
1.6M	/etc
7.7M	/lib
0	/mnt
4.0M	/overlay
0	/proc
68.9M	/rom
32.0K	/root
545.5K	/sbin
0	/sys
4.1M	/tmp
58.4M	/usr
0	/var
3.8M	/www


[ User-installed packages ]
luci-app-argon-config
luci-theme-argon
netperf


[ ifconfig ]
br-lan    Link encap:Ethernet  HWaddr 14:91:82:31:89:C7  
          inet addr:192.168.1.1  Bcast:192.168.1.255  Mask:255.255.255.0
          inet6 addr: fe80::1691:82ff:fe31:89c7/64 Scope:Link
          inet6 addr: fdff:1e4f:d98a::1/60 Scope:Global
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:904502 errors:0 dropped:0 overruns:0 frame:0
          TX packets:2761091 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000 
          RX bytes:276033578 (263.2 MiB)  TX bytes:2493789633 (2.3 GiB)

br-wan    Link encap:Ethernet  HWaddr 16:91:82:31:89:C7  
          inet6 addr: fe80::1491:82ff:fe31:89c7/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:2749506 errors:0 dropped:0 overruns:0 frame:0
          TX packets:857744 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000 
          RX bytes:2478518027 (2.3 GiB)  TX bytes:285333620 (272.1 MiB)

eth0      Link encap:Ethernet  HWaddr 14:91:82:31:89:C7  
          inet6 addr: fe80::1691:82ff:fe31:89c7/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:898033 errors:0 dropped:0 overruns:0 frame:0
          TX packets:2069134 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1024 
          RX bytes:287850979 (274.5 MiB)  TX bytes:1650425671 (1.5 GiB)
          Interrupt:38 

eth0.1    Link encap:Ethernet  HWaddr 14:91:82:31:89:C7  
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:862503 errors:0 dropped:0 overruns:0 frame:0
          TX packets:2069076 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000 
          RX bytes:270173646 (257.6 MiB)  TX bytes:1642133556 (1.5 GiB)

eth1      Link encap:Ethernet  HWaddr 16:91:82:31:89:C7  
          inet6 addr: fe80::1491:82ff:fe31:89c7/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:2749506 errors:0 dropped:0 overruns:0 frame:0
          TX packets:857765 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1024 
          RX bytes:2528009135 (2.3 GiB)  TX bytes:288768641 (275.3 MiB)
          Interrupt:37 

eth1.2    Link encap:Ethernet  HWaddr 16:91:82:31:89:C7  
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:2749506 errors:0 dropped:0 overruns:0 frame:0
          TX packets:857744 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000 
          RX bytes:2478518027 (2.3 GiB)  TX bytes:285333620 (272.1 MiB)

lo        Link encap:Local Loopback  
          inet addr:127.0.0.1  Mask:255.0.0.0
          inet6 addr: ::1/128 Scope:Host
          UP LOOPBACK RUNNING  MTU:65536  Metric:1
          RX packets:71 errors:0 dropped:0 overruns:0 frame:0
          TX packets:71 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000 
          RX bytes:14360 (14.0 KiB)  TX bytes:14360 (14.0 KiB)

pppoe-wan Link encap:Point-to-Point Protocol  
          inet addr:194.75.17.253  P-t-P:172.16.11.242  Mask:255.255.255.255
          UP POINTOPOINT RUNNING NOARP MULTICAST  MTU:1492  Metric:1
          RX packets:2743022 errors:0 dropped:0 overruns:0 frame:0
          TX packets:851238 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:3 
          RX bytes:2456253229 (2.2 GiB)  TX bytes:266407634 (254.0 MiB)

wlan0     Link encap:Ethernet  HWaddr 16:91:82:31:89:C9  
          inet6 addr: fe80::1491:82ff:fe31:89c9/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:229169 errors:0 dropped:0 overruns:0 frame:0
          TX packets:305951 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000 
          RX bytes:45214783 (43.1 MiB)  TX bytes:115319185 (109.9 MiB)

wlan1     Link encap:Ethernet  HWaddr 16:91:82:31:89:C8  
          inet6 addr: fe80::1491:82ff:fe31:89c8/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:605572 errors:0 dropped:0 overruns:0 frame:0
          TX packets:1304975 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000 
          RX bytes:75015018 (71.5 MiB)  TX bytes:910762135 (868.5 MiB)

[ logread] 
(omitted because long)
See: https://termbin.com/qd8dl

[ dmesg ]
(omitted because it's very long)
See https://termbin.com/qd8dl

===== end of ./getstats.sh =====
root@OpenWrt:~# cat /etc/config/dhcp 

config dnsmasq
        option domainneeded '1'
        option localise_queries '1'
        option rebind_protection '1'
        option rebind_localhost '1'
        option local '/lan/'
        option domain 'lan'
        option expandhosts '1'
        option authoritative '1'
        option readethers '1'
        option leasefile '/tmp/dhcp.leases'
        option localservice '1'
        option serversfile '/tmp/adb_list.overall'
        option noresolv '1'
        option confdir '/tmp/dnsmasq.d'
        list server '8.8.8.8'
        list server '8.8.4.4'

config dhcp 'lan'
        option interface 'lan'
        option start '100'
        option limit '150'
        option leasetime '12h'
        option dhcpv6 'server'
        option ra 'server'
        option ra_management '1'

config dhcp 'wan'
        option interface 'wan'
        option ignore '1'

config odhcpd 'odhcpd'
        option maindhcp '0'
        option leasefile '/tmp/hosts/odhcpd'
        option leasetrigger '/usr/sbin/odhcpd-update'
        option loglevel '4'
root@OpenWrt:~# cat /etc/config/network

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

config globals 'globals'
        option ula_prefix 'fdff:1e4f:d98a::/48'

config interface 'lan'
        option type 'bridge'
        option ifname 'eth0.1'
        option proto 'static'
        option ipaddr '192.168.1.1'
        option netmask '255.255.255.0'
        option ip6assign '60'
        option igmp_snooping '1'
        list dns '8.8.8.8'
        list dns '8.8.4.4'

config interface 'wan'
        option ifname 'eth1.2'
        option proto 'pppoe'
        option type 'bridge'
        option ipv6 'auto'
        option peerdns '0'
        list dns '8.8.8.8'
        list dns '8.8.4.4'
        option username 'XXX'
        option password 'XXX'

config interface 'wan6'
        option ifname 'eth1.2'
        option proto 'dhcpv6'
        option type 'bridge'

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

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

config switch_vlan
        option device 'switch0'
        option vlan '2'
        option ports '4 6t'

config wifi-device 'radio0'
	option type 'mac80211'
	option hwmode '11a'
	option bursting '1'
	option ff '1'
	option compression '1'
	option turbo '1'
	option path 'soc/soc:pcie/pci0000:00/0000:00:01.0/0000:01:00.0'
	option htmode 'VHT80'
	option country 'GB'
	option distance '101'
	option channel '44'

config wifi-iface 'default_radio0'
	option device 'radio0'
	option mode 'ap'
	option macaddr '16:91:82:31:89:c9'
	option wpa_disable_eapol_key_retries '1'
	option ssid 'OpenWrt_5G'
	option key 'xxx'
	option encryption 'psk-mixed'
	option network 'lan'
	option ieee80211r '1'
	option nasid '1691823189c9'
	option mobility_domain '4f67'
	option reassociation_deadline '10000'
	option ft_over_ds '1'
	option ft_psk_generate_local '1'
	option ieee80211w '1'

config wifi-device 'radio1'
	option type 'mac80211'
	option hwmode '11g'
	option disabled '0'
	option htmode 'HT40'
	option country 'GB'
	option path 'soc/soc:pcie/pci0000:00/0000:00:02.0/0000:02:00.0'
	option channel 'auto'
	option distance '101'

config wifi-iface 'default_radio1'
	option device 'radio1'
	option network 'lan'
	option mode 'ap'
	option ssid 'OpenWrt'
	option macaddr '16:91:82:31:89:c8'
	option encryption 'psk2'
	option wpa_disable_eapol_key_retries '1'
	option bursting '1'
	option ff '1'
	option compression '1'
	option noscan '1'
	option turbo '1'
	option key 'xxx'
	option ieee80211w '1'
	option ieee80211r '1'
	option nasid '1691823189c8'
	option mobility_domain '67c5'
	option reassociation_deadline '10000'
	option ft_over_ds '1'
	option ft_psk_generate_local '1'

I remember some versions of the drivers had issues with some client chipsets (intel based, if my memory serves right). You can try current stock OpenWrt, or even older versions, and see which one works for you.

Ah - that's particularly annoying :frowning: . Do you know where I could find the versions of the drivers that have the issues, or how I would go about comparing them across openwrt versions?

1 Like