What's new

CakeQOS CakeQOS-Merlin

  • SNBForums Code of Conduct

    SNBForums is a community for everyone, no matter what their level of experience.

    Please be tolerant and patient of others, especially newcomers. We are all here to share and learn!

    The rules are simple: Be patient, be nice, be helpful or be gone!

Here are my results running the following:

Code:
/jffs/scripts/cake-qos start 150Mbit 15Mbit "diffserv8 docsis ack-filter" # cake-qos

Code:
qdisc cake 800f: root refcnt 2 bandwidth 150Mbit diffserv8 triple-isolate nat wash ingress ack-filter split-gso rtt 100.0ms noatm overhead 18 mpu 64 no-sce
 Sent 309122 bytes 3259 pkt (dropped 1, overlimits 32 requeues 0)
 backlog 0b 0p requeues 0
 memory used: 9536b of 7500000b
 capacity estimate: 150Mbit
 min/max network layer size:           46 /    1500
 min/max overhead-adjusted size:       64 /    1518
 average network hdr offset:           14

                  Tin 0        Tin 1        Tin 2        Tin 3        Tin 4        Tin 5        Tin 6        Tin 7
  thresh        150Mbit   131250Kbit   114843Kbit   100488Kbit    87927Kbit    76936Kbit    67319Kbit    58904Kbit
  target          5.0ms        5.0ms        5.0ms        5.0ms        5.0ms        5.0ms        5.0ms        5.0ms
  interval      100.0ms      100.0ms      100.0ms      100.0ms      100.0ms      100.0ms      100.0ms      100.0ms
  pk_delay          0us          0us        4.3ms          0us          0us          0us          0us          5us
  av_delay          0us          0us        133us          0us          0us          0us          0us          1us
  sp_delay          0us          0us          3us          0us          0us          0us          0us          0us
  backlog            0b           0b           0b           0b           0b           0b           0b           0b
  pkts                0            0          632            0            0            0            0         2628
  bytes               0            0       152956            0            0            0            0       157680
  way_inds            0            0            0            0            0            0            0            0
  way_miss            0            0           48            0            0            0            0            1
  way_cols            0            0            0            0            0            0            0            0
  marks               0            0            0            0            0            0            0            0
  drops               0            0            1            0            0            0            0            0
  ack_drop            0            0            0            0            0            0            0            0
  sp_flows            0            0            0            0            0            0            0            1
  bk_flows            0            0            1            0            0            0            0            0
  un_flows            0            0            0            0            0            0            0            0
  max_len             0            0         1514            0            0            0            0           60
  quantum          1514         1514         1514         1514         1514         1514         1514         1514

Seeing 8 "tins" now. Also running line speed. I'll advise on performance. Great work @jackiechun

Speedtests results (remains same as besteffort)
upload_2020-6-21_8-51-1.png


Need to do some Teams/S4B calling while loading this bad boy up!
 
Last edited:
Pleased to announce v0.0.3 has been released (I had time to hammer through most of the roadmap):

- update and uninstall options added
- install option will automatically check the repository for the latest and greatest cake binaries
- added support for users to use any other prioritization queue they like (e.g. diffserv3, diffserv4, diffserv8, besteffort). If none are explicitly specified it will default to besteffort.

To update/install: https://github.com/ttgapers/cakeqos-merlin#cakeqos-merlin

After updating/installing, if you want to use for example diffserv4 you can run: /jffs/scripts/cake-qos enable 135Mbit 13Mbit "diffserv4 docsis ack-filter" (assuming 135Mbit and 13Mbit download/upload speed + docsis ack-filter parameters)

I think I'd like to ask that any donations go towards @RMerlin ;) https://www.snbforums.com/threads/the-rmerlin-donation-thread.17285/

Thanks boss, 1st post updated!
 
I'd prefer the least amount of scripts to avoid creating the possibility of more areas to investigate if something goes wrong. If I can avoid installing other scripts, that would be great. If that link provides enough for what Cake would need to run then for me that's what I would prefer.

to put it bluntly, i'm not interested in amtm
 
Just FYI, I've gone back to:

Code:
cake-qos enable 145Mbit 14Mbit "besteffort docsis ack-filter"

Need to watch EPL lol. Testing later on....
 
Just FYI, I've gone back to:

Code:
cake-qos enable 145Mbit 14Mbit "besteffort docsis ack-filter"
better results than diffserv?
 
better results than diffserv?

Well not enough tests as yet. I suspect my maxing of my line speed contributed. I just put it back to besteffort so I can watch the games :)

I'll play with diffserv4 and 8 later on to see what I experience. Today I have Father's Day stuff to attend to after lunch so will be out of commission.
 
Here are my results running the following:

Code:
/jffs/scripts/cake-qos start 150Mbit 15Mbit "diffserv8 docsis ack-filter" # cake-qos

Code:
qdisc cake 800f: root refcnt 2 bandwidth 150Mbit diffserv8 triple-isolate nat wash ingress ack-filter split-gso rtt 100.0ms noatm overhead 18 mpu 64 no-sce
 Sent 309122 bytes 3259 pkt (dropped 1, overlimits 32 requeues 0)
 backlog 0b 0p requeues 0
 memory used: 9536b of 7500000b
 capacity estimate: 150Mbit
 min/max network layer size:           46 /    1500
 min/max overhead-adjusted size:       64 /    1518
 average network hdr offset:           14

                  Tin 0        Tin 1        Tin 2        Tin 3        Tin 4        Tin 5        Tin 6        Tin 7
  thresh        150Mbit   131250Kbit   114843Kbit   100488Kbit    87927Kbit    76936Kbit    67319Kbit    58904Kbit
  target          5.0ms        5.0ms        5.0ms        5.0ms        5.0ms        5.0ms        5.0ms        5.0ms
  interval      100.0ms      100.0ms      100.0ms      100.0ms      100.0ms      100.0ms      100.0ms      100.0ms
  pk_delay          0us          0us        4.3ms          0us          0us          0us          0us          5us
  av_delay          0us          0us        133us          0us          0us          0us          0us          1us
  sp_delay          0us          0us          3us          0us          0us          0us          0us          0us
  backlog            0b           0b           0b           0b           0b           0b           0b           0b
  pkts                0            0          632            0            0            0            0         2628
  bytes               0            0       152956            0            0            0            0       157680
  way_inds            0            0            0            0            0            0            0            0
  way_miss            0            0           48            0            0            0            0            1
  way_cols            0            0            0            0            0            0            0            0
  marks               0            0            0            0            0            0            0            0
  drops               0            0            1            0            0            0            0            0
  ack_drop            0            0            0            0            0            0            0            0
  sp_flows            0            0            0            0            0            0            0            1
  bk_flows            0            0            1            0            0            0            0            0
  un_flows            0            0            0            0            0            0            0            0
  max_len             0            0         1514            0            0            0            0           60
  quantum          1514         1514         1514         1514         1514         1514         1514         1514

Seeing 8 "tins" now. Also running line speed. I'll advise on performance. Great work @jackiechun

Speedtests results (remains same as besteffort)
View attachment 24201

Need to do some Teams/S4B calling while loading this bad boy up!

Note, this was posted for those asking about "categorization", so quickly enabled and ran the stats on my download interface to show the stats table as opposed to besteffort aka "1 tin".
 
Is there an explanation somewhere that describes the difference between the classes covered in 'diffserv4' and 'divserv8' or 'precedence'? All I found is info on 'diffserv3' and 'divserve4', but nothing on 'diffserv8' or how it handles classes compared to 'precedence' which also covers 8 classes.
 
Is there an explanation somewhere that describes the difference between the classes covered in 'diffserv4' and 'divserv8' or 'precedence'? All I found is info on 'diffserv3' and 'divserve4', but nothing on 'diffserv8' or how it handles classes compared to 'precedence' which also covers 8 classes.

I have noted the same @Mutzli and that's straight from the manual page....
 
A few questions:
  • Apparently the Trend Micro-based options such as Traffic Analyzer can continue to run, correct? Will Trend Micro impact the performance of Cake?
  • Are Runner and Flow Cache disabled when Cake is running?
  • I have a Comcast Gigabit connection, but as is common in the USA, the speeds are strongly asymmetric. Can Cake be set to operate only on the slower outbound connection?
  • How can Cake effectively prioritize incoming/outgoing data when there are no user options to specify priorities? If I understand the man page correctly, it sounds like besteffort simply keeps bandwidth below the threshold where latency starts to increase with no attempt to prioritize traffic types? And apparently diffserv4 has the following groupings: voice, video, bulk, and best effort? I'm pretty interested in prioritization because I do a lot of file transfer in both directions, but I don't want it to interfere with streaming or of course live communications.
 
A few questions:
  • Apparently the Trend Micro-based options such as Traffic Analyzer can continue to run, correct? Will Trend Micro impact the performance of Cake?
  • I have a Comcast Gigabit connection, but as is common in the USA, the speeds are strongly asymmetric. Can Cake be set to operate only on the slower outbound connection?
  • How can Cake effectively prioritize incoming/outgoing data when there are no user options to specify priorities? If I understand the man page correctly, it sounds like besteffort simply keeps bandwidth below the threshold where latency starts to increase with no attempt to prioritize traffic types? And apparently diffserv4 has the following groupings: voice, video, bulk, and best effort? I'm pretty interested in prioritization because I do a lot of file transfer in both directions, but I don't want it to interfere with streaming or of course live communications.

Here you go in-between footie

  • I don't use Traffic Analyser, but if it has any dependency on Stock Traditional/Adaptive/FreshJr/Daves QoS then I don't expect it to work as this should be switched off
  • I do not believe it can, as you must specify up/down or it just uses line speed. I referenced that in an earlier post. I would say give it whirl, the script is seemless now from a install, stop, disable, uninstall perspective.
  • This is where the detailed reading about Cake in the first post, it's a shift in thinking on how it queues/prioritizes traffic. I've been running besteffort over a week on a pretty saturated connection - internal web server hosting media center, 2x VPN servers, Teams/Skype, Zoom, WebEx web conferencing etc. and I've seen a remarkable change in stability and quality overall. My stats back it, without having to "tweak" based on app, port, protocol etc....as mentioned I've never had consistent "meaning anytime I feel like running tests" buffer bloat straight A+s as I have seen with Cake.
Hope that helps!
 
Referenced from a post by @RMerlin in 2018: "This requires the 4.x kernel, which means only possible with the RT-AC86U..."

So technically anything with it, however we only have builds for the two routers mentioned. If there are individuals interested in building/testing support for additional models, I'd say please speak up!

The builds we have were developed by @Odkrys and here (for reference - use the installer from this thread ONLY).

Interested in perhaps giving it a go w/ the RT-AX3000 (RT-AX58U), as it appears to have kernel version 4.1.52
 
@ttgapers / @jackiechun


Not sure if this might be useful.

Here is my method for auto detecting compatible routers, so ...assuming cake has been compiled for both HND and the newer AX models.

Code:
Get_Router_Model() {
    local HARDWARE_MODEL
    [ -z "$(nvram get odmpid)" ] && HARDWARE_MODEL=$(nvram get productid) || HARDWARE_MODEL=$(nvram get odmpid)
    echo $HARDWARE_MODEL
    return 0
}
Is_HND() {
    [ -n "$(uname -m | grep "aarch64")" ] && { echo Y; return 0; } || { echo N; return 1; }
}
Is_AX() {
    # Kernel is '4.1.52+' (i.e. isn't '2.6.36*') and it isn't HND
    [ -n "$(uname -r | grep "^4")" ] && [ -z "$(uname -m | grep "aarch64")" ] && { echo Y; return 0; } || { echo N; return 1; }
}


### Check Requirements

FAIL="0"
if [ "$(nvram get jffs2_scripts)" -ne 1 ]; then
    echo "ERROR: Custom JFFS Scripts must be enabled."
    FAIL="1"
fi
if [ ! -f "/opt/bin/opkg" ]; then
    echo "ERROR: Entware must be installed."
    FAIL="1"
fi
#################### Martineau Hack #############################
HARDWARE_MODEL="$(Get_Router_Model)"
if [ "$(Is_HND)" == "N" ] && [ "$(Is_AX)" == "N" ];then
    echo -e "\a\t[✖] ***ERROR Router $HARDWARE_MODEL isn't supported (Only HND-models RT-AC86U,RT-AX88U or RT-AX56U,RT-AX58U)"
    FAIL=1
fi
#################################################################
if [ "${FAIL}" = "1" ]; then
    return 1
fi
Hopefully you can also modify the script to auto-detect the compatible router model and eliminate the need for the user to explicitly specify the model number as the first argument passed to the script for the initial install.

@Martineau & @jackiechun created issue: https://github.com/ttgapers/cakeqos-merlin/issues/3 for this one. Thanks all!
 
Interested in perhaps giving it a go w/ the RT-AX3000 (RT-AX58U), as it appears to have kernel version 4.1.52

Yes indeed. Currently we have builds for only 2 HND models (RT-AC86U & RT-AX88U) however I am curious from more experienced peeps in here around how we can expand on builds/support for other HND models (current HND-models RT-AC86U,RT-AX88U or RT-AX56U,RT-AX58U). If we can sort that out, it increases model support by 100% :D
 
Which options should I use for a LTE 40/10 connection?

Right now I'm using
Code:
/jffs/scripts/cake-qos enable 40Mbit 9.5Mbit "ack-filter besteffort"
Anyone? Should I have to use docsis or similar?
 
No such thing as a southern Canadian. I live 180 miles north of the US line so I would be a southern Canadian... jus saying!
it never ceases to amaze me that my countrymen from the west have a hard time wrapping their heads around the fact that a significant proportion of our population resides SOUTH of the 49th: I, myself, live at just above the 43rd...but having spent time north of 60, you're right, we're both Southern.
 

Similar threads

Sign Up For SNBForums Daily Digest

Get an update of what's new every day delivered to your mailbox. Sign up here!
Top