GL.inet Method (fq_codel/Cake)

As of 2022 I can’t recommend the GL.inet method anymore because they run on an older version of openWrt and getting to the new version comes with compatibility issues.

I’d recommend a GL.inet GL-BL1300 ($80) as it has a quad core CPU (IPQ4028) and will perform best.

This will also work for a GL.inet AR750S-EXT ($84) but that’s a portable router and has a single core CPU so it doesn’t perform was great.

Instructions

Start off by hooking up your router to your modem via Ethernet cable and powering it on. Then connect to it’s WiFi using the default settings printed on the modem or manual. You can go through these screenshots or my video here (for GL.inet): https://www.youtube.com/watch?v=_fNGnPjQ2HY

1) Login to your GL.inet router (default address is 192.168.8.1). Enter in a password when prompted. Then click on “Advanced Settings” after logging in and click “ok” when prompted.
Advanced settings takes you to another login page. This is the openWrt interface. Enter in the same password you entered earlier and leave username as “root”
Navigate to System > Software
Scroll down and remove any packages containing “qos”
Assuming your router is hooked up to the internet with an Ethernet wire. Click “Update lists”
Click the “Available Packages” tab
Find “luci-app-sqm” and click Install to install the package. This is the package that will solve bufferbloat….
After the sqm package is installed navigate to System > Startup
Find sqm and click on “Start”
After the sqm package is started. Navigate to Network > SQM QoS
Here check Enable SQM interface. For Interface name choose your WAN inteface (usually eth0 be default you can navigate to Network > Interfaces to make sure). For the Gl.inet router you should choose eth0. After that set “Download speed” to 85% of your max download speed. Do the same for “Upload speed”. For example if your max DL speed is 100 Mbits (then your Download Speed should be set to 85000 kbits)
Click on the Queue Discipline tab. You have two choices here. 1) Leave it as default with “fq_codel” and “simple.qos”or 2) Set it as “cake” and “piece_of_cake.qos”… Cake is better but consumes more resources so stick with the defaults if you have a low-end model.

For this last screenshot I will quote the wiki on https://wiki.openwrt.org/doc/howto/sqm

In the Link Layer Adaptation tab, choose the kind of link you have:
  • For VDSL – Choose Ethernet, and set per packet overhead to 8
  • For DSL of any other type – Choose ATM, and set per packet overhead to 44
  • For Cable or other kinds of connections – Choose none (default)

After all these steps press “Save & Apply” and now you will never lag due to bufferbloat again! You can test it by visiting www.dslreports.com/speedtest

Calibration and Testing

Run “ping www.google.com -t” in command prompt and then run the speedtest.

If you still have an A rating, with low pings during the speedtest. You can incrementally increase your total bandwidth above the 85% you initially set until pings start to spike higher than desired.

Otherwise if your rating is not good or you are getting bad pings try reducing the max bandwidth limits. (Ex. If 85% is still lagging try 80%.)

Doing this allows you find the sweet spot between getting max bandwidth vs experiencing high pings.