28-March-2021: Beta 3 is now available. Changes since Beta 2:
20-March-2021: Beta 2 is now available. Changes since Beta 1:
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:
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:
Things in need of testing:
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.
Code:
ebfec843d1 Updated documentation
89ddc423a0 webui: fix duplicate variable introduced with 73e5ec95e2
73e5ec95e2 webui: Fix timezone detection (#729)
a8b66a50f3 webui: move main content down on index page when the disabled wifi warning banner is shown
60bcbe7027 webui: allow changing https LAN port while in AP mode
0bbc055140 build: no longer explicitely disable NFCM
ce8af5c05d Bumped revision to beta 3
2f7a878aad kernel: proper fix for wlan accumulating stats issue
cd7c5b268b openssl: update to 1.1.1k
9c5335994d rc: make entries in passwd and shadow be in the same order
f0b7578887 webui: fix display of connected IPSEC clients on VPNStatus page; added display of IKEv2 clients
29c13bc4e5 Merge pull request #725 from dave14305/patch-1
e618da48ba rc: do not use dnsfilter_custom when querying the server table for an IPv6
e45995ce66 rc: Rearrange Cake variable positions
20-March-2021: Beta 2 is now available. Changes since Beta 1:
Code:
1cf08f7d10 Updated documentation
86aae14fcb httpd: fix ouiDB.json location for browser caching
c402f3c108 tools: exclude web files that cause the optimizing tool to crash and leave temp files in the /www directory
bf6559ab5f shared: match with rx/tx var types for backup_rx/backup_tx in netdev_calc()
fe677008a5 webui: remove OpenVPN server Windows FAQ as it's missing from the Asus website
d57130c437 webui: store local copies of online json files; add code to refresh them
0d62444ab8 httpd: fix openvpn/pptpd account list getting truncated after one entry
1e6831e65a rc: make qos-start run in blocking mode
3b449faf84 rc: revert static DNS routes added with GPL 42095
9311e1661b webui: QoS Classification page: add warning in Cake mode; harmonise qos type handling with nvram value
592448890b rc: rewritten dnsfilter server table management
7577702a81 rc: fix pointer corruption in filter_setting()
4ffb00efed Merge branch 'master' of github.com:RMerl/asuswrt-merlin.ng
c5087ce589 Merge pull request #718 from sadoneli/master
1788f2ea14 add .dummy file for wlcsm to make sure GT-AX11000 passing fw build
7d85c4c849 Bumped revision to beta 2
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.
Last edited: