Asuswrt-Merlin 386.2 Beta is now available for all supported models. This release introduces support for the GT-AX11000 and the RT-AX68U, and also adds a new QoS mode based on the Cake packet scheduler.
The highlights:
- Merged with GPL 386_42095
- Added support for the RT-AX68U and GT-AX11000 (VPN Fusion and other ROG-only features not supported).
- Added Cake to the list of QoS modes. This is only available on HND models (RT-AC86U or newer), and will also disable NAT acceleration, so it can't be used if you have a fast Internet connection (300-350 Mbps is probably the max speed possible on an RT-AX88U). See below for more details.
- Updated components: OpenVPN (2.5.1), OpenSSL (1.1.1j), iproute2 (5.11.0, HND models only).
- Added jittertimer-rngd to HND models, to improve entropy for cryptographic use (SSL key generation, etc...)
Please see the Changelogs for the details.
Cake:
Cake is a queue scheduler used by Linux to manage how packets are received/sent over the Internet. More intelligent management can greatly improve the user experience by ensuring that a large data stream (like a large download) will not impact smaller streams that are more timing-sensitive, like VoIP.
See
https://www.bufferbloat.net/projects/codel/wiki/Cake/ for more info on Cake.
Cake is only available for kernels 4.1.xx, so that means the RT-AC86U and newer models, who are based on Broadcom's HND platform. It is also not compatible with NAT acceleration, just like Traditionnal QoS, so that means it cannot be used on Internet connections faster than around 300-350 Mbps (that limit may vary based on the router model and the amount of traffic).
The current implementation uses a diffserv3 queuing scheme for uploads (meaning that services like VoIP can get higher priority), and a single besteffort queue for download (as priority mapping of traffic coming from the Internet cannot be relied upon). On startup, Cake QoS will create two files:
/etc/cake-qos.conf, which contains the variables with parameters
/tmp/qos, which is the script that sets/removes the tc rules, based on the parameters retrieved from cake-qos.conf
cake-qos.conf can be overridden through the use of a /jffs/configs/cake-qos.conf.add file, which will be appended at the end of it. If you define any variable in the .add file, these will replace the values already defined in the router-generated cake-qos.conf.
You can also use the qos-start script that gets run before the /tmp/qos script to completely replace /tmp/qos with your own script, for more advanced customization of your Cake setup.
Make sure you configure the correct overhead when enabling Cake QoS, by selecting a preset from the list (by click on the red arrow). Selecting a preset will automatically configure the appropriate overhead, PMU and mode. If unsure, then select the Conservative option as a general safe value.
For upload/download, I recommend setting these to roughly 95% of your maximum speed. Setting it to "Automatic" will configure Cake for "unlimited bandwidth", which is generally not optimal.
A few additional notes for developers:
- The rc_support feature list will contain "cake" on models that supports it.
- The new iproute2 available on these same models now also supports outputting info in json format. Try "tc -s -json qdisc show dev eth0" for example.
- dual-dsthost/dual-srchost was used instead of the default triple-isolate, as this should in theory provide better traffic management when multiple hosts are using the Internet at once
- Various tc options were added to iproute2, like "ipset", "ematch" and "skbedit" support, allowing for more advanced tc filter rules to be defined.
- Cake QoS has a qos_type of 9 (so not to create conflicts if in the future Asus were to implement a new QoS mode and used qos_type 4, the first available number). Make sure to check for it when creating a qos-start script.
Things in need of testing:
- Cake in general. When testing, don't just rely on bufferbloat scores from DSLReports, but also test performance for example while doing a large file transfert or running a torrent at the same time you are trying to either ping a remote server or doing general web browsing
- If you are skilled enough at it, experiment Cake with different queue priorities, like besteffort on both ingress/egress, triple-isolate, etc...
- When reporting feedback, make sure you mention the following: Router model, connection speed, the type of connection (cable, VDSL2, etc...).
Please review the changelog for the complete list of changes as well as important upgrade informations.
Also, please limit discussions in this thread to this specific release. General support questions should be posted in a separate thread.
Downloads are
here.
Changelog is
here.