Hello everyone, I bought the GL-SF1200 router about three weeks ago.
Although it ships a quite old OpenWRT version, the device is nice. I got it to improve customization on my connection since my Italian ISP forces me to use their bad modem in which I can’t even set the DNS.
Anyway I chose the SF1200 also for traffic shaping, trying to distribute and limit some of the bandwidth between the various devices connected to the Internet. Unfortunately the router in this stage is only good if you have a 100 Mbps downstream connection. If you have more, like my case, the bandwidth is capped around 100 Mbps and you can’t have more throughput.
In the original GL.iNet interface, the user is warned about the fact that this feature is CPU intensive, but it’s weird that you can use only 100 Mbps. Since it’s a Gigabit router, if you have a FTTH 1 Gbps connection, you can only use 10% of your advertised full speed (and that’s not my case, I have a VDSL 200 Mbps).
I tried to discover more and found interesting things. The router by default has the software and the hardware flow offloading enabled which can provide a big throughput the to device: I can saturate my downstream connection and maybe I could also achieve 1 Gbps. Never tried the latter, I don’t have a FTTH connection, but I assume it’s possibile since the CPU during high transfer in not employed because of the flow offloading.
Anyway, if I disable the flow offloading by the firewall service, just touching the 100 Mbps, one single core hits 100% of CPU usage and the device can’t go upper speeds. I think it’s also bad optimized because during transfer only one core goes to 100% while the three others stay low. I tried also using irqbalance, but got no better results.
Experimenting with custom tc qdiscs
did not change much of this situation, so even installing SQM package from Luci is useless. If you want to shape the traffic on this device, you have to cap you connection at around 100 Mbit. If you have more, you can’t use it just because the CPU can’t handle the high traffic.
I also changed the frequency, which by default is 800 MHz. It can be modified to maximum 1GHz. Anyway, not big changes, the device simply can’t handle high traffic. So if you want more throughput, you can enable the flow soft/hardware offloading, but at that point you can’t do traffic shaping because all the transfer is delegated to the hardware with all the bufferbloat that is usually seen under heavy bandwidth usage.
Did someone experience the same behavior? Is there a workaround to overtake this issue?