I use a GL-AR300M as my home router. It’s worked well for me for several years, although I occasionally have stability issues, some of which seem to have been fixed by firmware updates. To me, the ability to use OpenWRT (and customize it) outweighs the instability. However, I’d like to fix a remaining issue.
There is a repeating issue with quality of service that I am in the middle of troubleshooting. I believe I’ve narrowed it down to the router (I’ll provide evidence below). I’d appreciate any insight the community can offer.
- gl-inet firmware: 3.024
- packages: tmux, adblock (maybe a few others). The issue began before these were installed.
- no modifications
The issue is episodic; first I notice that web pages start to load slowly, sometimes timing out and not loading at all. This happens regardless of distance from the router, and on all devices in the house, including three Apple mobile devices and a Linux laptop. It also happens when I am certain there is not a high-bandwidth application running on a client. Eventually the connection stops completely. Cycling the power fixes the issue. It seems to return roughly every three days.
I’m in the habit of quickly inspecting these episodes as they develop. I’d love to get advice about this. I begin by checking the network status on my Laptop (such as
dmesg | grep ath10k; the Dell 9360 has been known to have driver issues). After seeing nothing obviously wrong with the laptop, I simultaneously ping the router and Cloudflare DNS for several minutes. These sessions exhibit high jitter and round-trip time (up to 48 seconds!). Some sessions have no packet loss, others get as high as 80-100%. Sometimes buffers fill up, or the destination becomes unreachable. The ping sessions seem to be correlated, which suggests a problem in the router, as it is the common point (aside from the laptop).
I also SSH into the router and usually have a poor-quality connection that makes observation slow. CPU load is unremarkable (0.7 and constant) and free memory is roughly 50%. I observe nothing obviously wrong in logread.
I have read that bufferbloat can cause high jitter and latency, but the issue occurs even when I’m not using a high-bandwidth application. I have done nothing to change the packet scheduling configuration of the router:
root@GL-AR300M:~# tc -s qdisc qdisc noqueue 0: dev lo root refcnt 2 Sent 0 bytes 0 pkt (dropped 0, overlimits 0 requeues 0) backlog 0b 0p requeues 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 511635358 bytes 4849936 pkt (dropped 0, overlimits 0 requeues 640) backlog 0b 0p requeues 640 maxpacket 1514 drop_overlimit 0 new_flow_count 427 ecn_mark 0 new_flows_len 0 old_flows_len 0 qdisc fq_codel 0: dev eth1 root refcnt 2 limit 10240p flows 1024 quantum 1514 target 5.0ms interval 100.0ms memory_limit 4Mb ecn Sent 0 bytes 0 pkt (dropped 0, overlimits 0 requeues 0) backlog 0b 0p requeues 0 maxpacket 0 drop_overlimit 0 new_flow_count 0 ecn_mark 0 new_flows_len 0 old_flows_len 0 qdisc noqueue 0: dev br-lan root refcnt 2 Sent 0 bytes 0 pkt (dropped 0, overlimits 0 requeues 0) backlog 0b 0p requeues 0 qdisc noqueue 0: dev wlan0 root refcnt 2 Sent 0 bytes 0 pkt (dropped 0, overlimits 0 requeues 0) backlog 0b 0p requeues 0
Note that the router is using fq_codel (my laptop does too), which was supposed to solve bufferbloat in any case. I see a high number of “requeues” but haven’t been able to figure out what that means. I find it curious that the wlan interface has no buffering.
I can’t provide an attachment as a new user, but I would be able to provide a zip archive containing a directory for two recent episodes, each containing shell sessions and notes.