CakeQOS CakeQOS-Merlin

dave14305

Part of the Furniture
I'm not sure that is valid. The base ping is well within the limits for good online gaming. The servers and gaming PC's are clearly able to handle the data because they run smooth as butter without QoS enabled, if there is no other local network traffic - e.g. after my wife has gone to bed.

The problem appears to be one of traffic prioritisation - gaming data should definitely be marked as EF. Is Dave's Learning From Home 'catch all bucket' accidentally hoovering up the wrong traffic and marking it with the lowest priority?
I'm not certain what QoS you're talking about in this context, since this is the CAKE thread, but you're referring to FlexQoS rules which would not be active if CAKE is enabled. And DSCP marks have no significance to how Adaptive QoS works. So we're probably mixing topics here.

The FlexQoS Game Transferring class (aka Learn-From-Home) uses a mark (3FFFFF) that is unused by trend micro today, so the only way to get picked up in that class is to have it explicitly defined in an iptables rule.
 

Morris

Very Senior Member
Hi Morris,

I suspect that the buffer bloat score is based upon an average buffer bloat delay and not the maximum variance in ping.

If you watch the videos you can see major spikes in the buffer bloat - e.g. 350ms. I think I once read a Cisco VOIP document that stated the maximum 'functional' jitter that can be accommodated is 300ms - and that has to be accounted for in the network/voice config. When online gaming, it results in the game stuttering and player actions being 'reversed' - e.g. you're running towards a door and suddenly you're back in the centre of the room. If this happens more than once or twice every 30 minutes, the game is effectively unplayable.

I think this may have been what Askan7 was experiencing with earlier versions of CakeQoS.

https://www.snbforums.com/search/75009/

I appreciate the effort and time that everybody is putting into a working QoS solution, but it seems that the most time sensitive applications (e.g. gaming and VOIP) aren't quite getting the rock solid connections that they need.

FlexQoS (1.04) was awesome when I first installed it and managed to eliminate the lag spikes associated with my wife watching Netflix (Netflix on Roku appears to download a large chunk of data every 10-15 seconds, rather than a constant stream of media). More recently (1.05 & 1.06), it was prone to large lag spikes (500ms that would last for 20+ seconds), games freezing, being kicked from servers because the 'connection dropped', etc. DNS requests also seemed to be very slow and web pages would be very sluggish. This would happen after my wife was in bed and the connection had almost zero traffic. I helped a friend install FlexQoS and he also experienced the same issues - great at first and not so great now. I don't know if Dave actually changed anything in the backend between releases, but that's what we've experienced as (freeloading) end users.

I really want to emphasise that I do appreciate all the work everybody is putting into this code and I'm trying to be constructive in my feedback. Are there any logs that I could provide you guys to help investigate these niggling issues?

I watched your video and noted that. You appear to have ISP issues. Rather than use a web based test, do the test your self.
- Start a constant ping of your next hop router
- load your link to 100% with a bunch of downloads, video's, what ever
- The ping time may increase a little yet should remain relatively steady. Small changes don't matter. Order of magnitude changes are an issue and this is buffer bloat.

Morris
 

heysoundude

Very Senior Member
I'm a casual, but keen gamer. It's just very frustrating when the connection is less than optimal. Before I upgraded my router, it was impossible to game when anybody was streaming media in the house. Things are definitely improved, but are still a bit glitchy.



I'm not sure that is valid. The base ping is well within the limits for good online gaming. The servers and gaming PC's are clearly able to handle the data because they run smooth as butter without QoS enabled, if there is no other local network traffic - e.g. after my wife has gone to bed.

The problem appears to be one of traffic prioritisation - gaming data should definitely be marked as EF. Is Dave's Learning From Home 'catch all bucket' accidentally hoovering up the wrong traffic and marking it with the lowest priority?
If you've diffserv set in cake, you're gumming up the works - the necessary tags aren't always attached correctly, or at all at the current time as I understand it. besteffort, especially when you're the only device active on the network, should work just fine.
Does your ISP offer ipv6? you should set your router up for that if it isnt already, and then make the necessary adjustment to Cake-QoS if that's what you're currently using
Those two adjustments might make more of a difference than you might currently think
 

dave14305

Part of the Furniture
Learned something new about the tc-adv functionality...JSON output. Just going to dangle the possibilities in front of @Jack Yaz...
Bash:
$ /opt/sbin/tc -json -s qdisc ls
[{"kind":"cake","handle":"8031:","dev":"eth0","root":true,"refcnt":2,"options":{"bandwidth":2750000,"diffserv":"besteffort","flowmode":"triple-isolate","nat":true,"wash":false,"ingress":false,"ack-filter":"ena
bled","split_gso":true,"rtt":100000,"raw":true,"overhead":0,"fwmark":"0","sce":0},"bytes":13026830,"packets":46231,"drops":474,"overlimits":15776,"requeues":0,"backlog":0,"qlen":0,"memory_used":134912,"memory_
limit":4194304,"capacity_estimate":2750000,"min_network_size":42,"max_network_size":1514,"min_adj_size":42,"max_adj_size":1514,"avg_hdr_offset":14,"tins":[{"threshold_rate":2750000,"sent_bytes":13107307,"backl
og_bytes":0,"target_us":5000,"interval_us":100000,"peak_delay_us":12415,"avg_delay_us":668,"base_delay_us":1,"sent_packets":46705,"way_indirect_hits":15421,"way_misses":984,"way_collisions":0,"drops":43,"ecn_m
ark":0,"ack_drops":431,"sparse_flows":1,"bulk_flows":1,"unresponsive_flows":0,"max_pkt_len":1514,"flow_quantum":671}]},{"kind":"ingress","handle":"ffff:","dev":"eth0","parent":"ffff:fff1","options":{},"bytes":
52216004,"packets":77111,"drops":0,"overlimits":0,"requeues":0,"backlog":0,"qlen":0},{"kind":"pfifo_fast","handle":"0:","dev":"eth1","root":true,"refcnt":2,"options":{"bands":3,"priomap ":[1,2,2,2,1,2,0,0,1,1,
1,1,1,1,1,1],"multiqueue":false},"bytes":1038644527,"packets":1053169,"drops":0,"overlimits":0,"requeues":0,"backlog":0,"qlen":0},{"kind":"pfifo_fast","handle":"0:","dev":"eth2","root":true,"refcnt":2,"options
":{"bands":3,"priomap ":[1,2,2,2,1,2,0,0,1,1,1,1,1,1,1,1],"multiqueue":false},"bytes":0,"packets":0,"drops":0,"overlimits":0,"requeues":0,"backlog":0,"qlen":0},{"kind":"pfifo_fast","handle":"0:","dev":"eth3","
root":true,"refcnt":2,"options":{"bands":3,"priomap ":[1,2,2,2,1,2,0,0,1,1,1,1,1,1,1,1],"multiqueue":false},"bytes":7310302493,"packets":5557040,"drops":0,"overlimits":0,"requeues":3,"backlog":0,"qlen":0},{"ki
nd":"pfifo_fast","handle":"0:","dev":"eth4","root":true,"refcnt":2,"options":{"bands":3,"priomap ":[1,2,2,2,1,2,0,0,1,1,1,1,1,1,1,1],"multiqueue":false},"bytes":173610596,"packets":1071542,"drops":0,"overlimit
s":0,"requeues":0,"backlog":0,"qlen":0},{"kind":"pfifo_fast","handle":"0:","dev":"spu_us_dummy","root":true,"refcnt":2,"options":{"bands":3,"priomap ":[1,2,2,2,1,2,0,0,1,1,1,1,1,1,1,1],"multiqueue":false},"byt
es":0,"packets":0,"drops":0,"overlimits":0,"requeues":0,"backlog":0,"qlen":0},{"kind":"pfifo_fast","handle":"0:","dev":"spu_ds_dummy","root":true,"refcnt":2,"options":{"bands":3,"priomap ":[1,2,2,2,1,2,0,0,1,1
,1,1,1,1,1,1],"multiqueue":false},"bytes":0,"packets":0,"drops":0,"overlimits":0,"requeues":0,"backlog":0,"qlen":0},{"kind":"pfifo_fast","handle":"0:","dev":"eth5","root":true,"refcnt":2,"options":{"bands":3,"
priomap ":[1,2,2,2,1,2,0,0,1,1,1,1,1,1,1,1],"multiqueue":false},"bytes":7971494811,"packets":9195312,"drops":0,"overlimits":0,"requeues":0,"backlog":0,"qlen":0},{"kind":"pfifo_fast","handle":"0:","dev":"eth6",
"root":true,"refcnt":2,"options":{"bands":3,"priomap ":[1,2,2,2,1,2,0,0,1,1,1,1,1,1,1,1],"multiqueue":false},"bytes":29077108368,"packets":29971941,"drops":0,"overlimits":0,"requeues":0,"backlog":0,"qlen":0},{
"kind":"cake","handle":"8032:","dev":"ifb9eth0","root":true,"refcnt":2,"options":{"bandwidth":37500000,"diffserv":"besteffort","flowmode":"triple-isolate","nat":true,"wash":true,"ingress":true,"ack-filter":"di
sabled","split_gso":true,"rtt":100000,"raw":true,"overhead":0,"fwmark":"0","sce":0},"bytes":53281265,"packets":77083,"drops":16,"overlimits":21123,"requeues":0,"backlog":0,"qlen":0,"memory_used":458304,"memory_limit":15000000,"capacity_estimate":37500000,"min_network_size":60,"max_network_size":1514,"min_adj_size":60,"max_adj_size":1514,"avg_hdr_offset":14,"tins":[{"threshold_rate":37500000,"sent_bytes":53291364,"backlog_bytes":0,"target_us":5000,"interval_us":100000,"peak_delay_us":6513,"avg_delay_us":1225,"base_delay_us":2,"sent_packets":77099,"way_indirect_hits":1691,"way_misses":1029,"way_collisions":0,"drops":16,"ecn_mark":0,"ack_drops":0,"sparse_flows":2,"bulk_flows":1,"unresponsive_flows":0,"max_pkt_len":1514,"flow_quantum":1514}]}]
JSON:
[
{
"kind": "cake",
"handle": "8031:",
"dev": "eth0",
"root": true,
"refcnt": 2,
"options": {
"bandwidth": 2750000,
"diffserv": "besteffort",
"flowmode": "triple-isolate",
"nat": true,
"wash": false,
"ingress": false,
"ack-filter": "enabled",
"split_gso": true,
"rtt": 100000,
"raw": true,
"overhead": 0,
"fwmark": "0",
"sce": 0
},
"bytes": 13026830,
"packets": 46231,
"drops": 474,
"overlimits": 15776,
"requeues": 0,
"backlog": 0,
"qlen": 0,
"memory_used": 134912,
"memory_limit": 4194304,
"capacity_estimate": 2750000,
"min_network_size": 42,
"max_network_size": 1514,
"min_adj_size": 42,
"max_adj_size": 1514,
"avg_hdr_offset": 14,
"tins": [
{
"threshold_rate": 2750000,
"sent_bytes": 13107307,
"backlog_bytes": 0,
"target_us": 5000,
"interval_us": 100000,
"peak_delay_us": 12415,
"avg_delay_us": 668,
"base_delay_us": 1,
"sent_packets": 46705,
"way_indirect_hits": 15421,
"way_misses": 984,
"way_collisions": 0,
"drops": 43,
"ecn_mark": 0,
"ack_drops": 431,
"sparse_flows": 1,
"bulk_flows": 1,
"unresponsive_flows": 0,
"max_pkt_len": 1514,
"flow_quantum": 671
}
]
},
{
"kind": "ingress",
"handle": "ffff:",
"dev": "eth0",
"parent": "ffff:fff1",
"options": [],
"bytes": 52216004,
"packets": 77111,
"drops": 0,
"overlimits": 0,
"requeues": 0,
"backlog": 0,
"qlen": 0
},
{
"kind": "pfifo_fast",
"handle": "0:",
"dev": "eth1",
"root": true,
"refcnt": 2,
"options": {
"bands": 3,
"priomap ": [
1,
2,
2,
2,
1,
2,
0,
0,
1,
1,
1,
1,
1,
1,
1,
1
],
"multiqueue": false
},
"bytes": 1038644527,
"packets": 1053169,
"drops": 0,
"overlimits": 0,
"requeues": 0,
"backlog": 0,
"qlen": 0
},
{
"kind": "pfifo_fast",
"handle": "0:",
"dev": "eth2",
"root": true,
"refcnt": 2,
"options": {
"bands": 3,
"priomap ": [
1,
2,
2,
2,
1,
2,
0,
0,
1,
1,
1,
1,
1,
1,
1,
1
],
"multiqueue": false
},
"bytes": 0,
"packets": 0,
"drops": 0,
"overlimits": 0,
"requeues": 0,
"backlog": 0,
"qlen": 0
},
{
"kind": "pfifo_fast",
"handle": "0:",
"dev": "eth3",
"root": true,
"refcnt": 2,
"options": {
"bands": 3,
"priomap ": [
1,
2,
2,
2,
1,
2,
0,
0,
1,
1,
1,
1,
1,
1,
1,
1
],
"multiqueue": false
},
"bytes": 7310302493,
"packets": 5557040,
"drops": 0,
"overlimits": 0,
"requeues": 3,
"backlog": 0,
"qlen": 0
},
{
"kind": "pfifo_fast",
"handle": "0:",
"dev": "eth4",
"root": true,
"refcnt": 2,
"options": {
"bands": 3,
"priomap ": [
1,
2,
2,
2,
1,
2,
0,
0,
1,
1,
1,
1,
1,
1,
1,
1
],
"multiqueue": false
},
"bytes": 173610596,
"packets": 1071542,
"drops": 0,
"overlimits": 0,
"requeues": 0,
"backlog": 0,
"qlen": 0
},
{
"kind": "pfifo_fast",
"handle": "0:",
"dev": "spu_us_dummy",
"root": true,
"refcnt": 2,
"options": {
"bands": 3,
"priomap ": [
1,
2,
2,
2,
1,
2,
0,
0,
1,
1,
1,
1,
1,
1,
1,
1
],
"multiqueue": false
},
"bytes": 0,
"packets": 0,
"drops": 0,
"overlimits": 0,
"requeues": 0,
"backlog": 0,
"qlen": 0
},
{
"kind": "pfifo_fast",
"handle": "0:",
"dev": "spu_ds_dummy",
"root": true,
"refcnt": 2,
"options": {
"bands": 3,
"priomap ": [
1,
2,
2,
2,
1,
2,
0,
0,
1,
1,
1,
1,
1,
1,
1,
1
],
"multiqueue": false
},
"bytes": 0,
"packets": 0,
"drops": 0,
"overlimits": 0,
"requeues": 0,
"backlog": 0,
"qlen": 0
},
{
"kind": "pfifo_fast",
"handle": "0:",
"dev": "eth5",
"root": true,
"refcnt": 2,
"options": {
"bands": 3,
"priomap ": [
1,
2,
2,
2,
1,
2,
0,
0,
1,
1,
1,
1,
1,
1,
1,
1
],
"multiqueue": false
},
"bytes": 7971494811,
"packets": 9195312,
"drops": 0,
"overlimits": 0,
"requeues": 0,
"backlog": 0,
"qlen": 0
},
{
"kind": "pfifo_fast",
"handle": "0:",
"dev": "eth6",
"root": true,
"refcnt": 2,
"options": {
"bands": 3,
"priomap ": [
1,
2,
2,
2,
1,
2,
0,
0,
1,
1,
1,
1,
1,
1,
1,
1
],
"multiqueue": false
},
"bytes": 29077108368,
"packets": 29971941,
"drops": 0,
"overlimits": 0,
"requeues": 0,
"backlog": 0,
"qlen": 0
},
{
"kind": "cake",
"handle": "8032:",
"dev": "ifb9eth0",
"root": true,
"refcnt": 2,
"options": {
"bandwidth": 37500000,
"diffserv": "besteffort",
"flowmode": "triple-isolate",
"nat": true,
"wash": true,
"ingress": true,
"ack-filter": "disabled",
"split_gso": true,
"rtt": 100000,
"raw": true,
"overhead": 0,
"fwmark": "0",
"sce": 0
},
"bytes": 53281265,
"packets": 77083,
"drops": 16,
"overlimits": 21123,
"requeues": 0,
"backlog": 0,
"qlen": 0,
"memory_used": 458304,
"memory_limit": 15000000,
"capacity_estimate": 37500000,
"min_network_size": 60,
"max_network_size": 1514,
"min_adj_size": 60,
"max_adj_size": 1514,
"avg_hdr_offset": 14,
"tins": [
{
"threshold_rate": 37500000,
"sent_bytes": 53291364,
"backlog_bytes": 0,
"target_us": 5000,
"interval_us": 100000,
"peak_delay_us": 6513,
"avg_delay_us": 1225,
"base_delay_us": 2,
"sent_packets": 77099,
"way_indirect_hits": 1691,
"way_misses": 1029,
"way_collisions": 0,
"drops": 16,
"ecn_mark": 0,
"ack_drops": 0,
"sparse_flows": 2,
"bulk_flows": 1,
"unresponsive_flows": 0,
"max_pkt_len": 1514,
"flow_quantum": 1514
}
]
}
]
 

Kingp1n

Very Senior Member
Learned something new about the tc-adv functionality...JSON output. Just going to dangle the possibilities in front of @Jack Yaz...
Bash:
$ /opt/sbin/tc -json -s qdisc ls
[{"kind":"cake","handle":"8031:","dev":"eth0","root":true,"refcnt":2,"options":{"bandwidth":2750000,"diffserv":"besteffort","flowmode":"triple-isolate","nat":true,"wash":false,"ingress":false,"ack-filter":"ena
bled","split_gso":true,"rtt":100000,"raw":true,"overhead":0,"fwmark":"0","sce":0},"bytes":13026830,"packets":46231,"drops":474,"overlimits":15776,"requeues":0,"backlog":0,"qlen":0,"memory_used":134912,"memory_
limit":4194304,"capacity_estimate":2750000,"min_network_size":42,"max_network_size":1514,"min_adj_size":42,"max_adj_size":1514,"avg_hdr_offset":14,"tins":[{"threshold_rate":2750000,"sent_bytes":13107307,"backl
og_bytes":0,"target_us":5000,"interval_us":100000,"peak_delay_us":12415,"avg_delay_us":668,"base_delay_us":1,"sent_packets":46705,"way_indirect_hits":15421,"way_misses":984,"way_collisions":0,"drops":43,"ecn_m
ark":0,"ack_drops":431,"sparse_flows":1,"bulk_flows":1,"unresponsive_flows":0,"max_pkt_len":1514,"flow_quantum":671}]},{"kind":"ingress","handle":"ffff:","dev":"eth0","parent":"ffff:fff1","options":{},"bytes":
52216004,"packets":77111,"drops":0,"overlimits":0,"requeues":0,"backlog":0,"qlen":0},{"kind":"pfifo_fast","handle":"0:","dev":"eth1","root":true,"refcnt":2,"options":{"bands":3,"priomap ":[1,2,2,2,1,2,0,0,1,1,
1,1,1,1,1,1],"multiqueue":false},"bytes":1038644527,"packets":1053169,"drops":0,"overlimits":0,"requeues":0,"backlog":0,"qlen":0},{"kind":"pfifo_fast","handle":"0:","dev":"eth2","root":true,"refcnt":2,"options
":{"bands":3,"priomap ":[1,2,2,2,1,2,0,0,1,1,1,1,1,1,1,1],"multiqueue":false},"bytes":0,"packets":0,"drops":0,"overlimits":0,"requeues":0,"backlog":0,"qlen":0},{"kind":"pfifo_fast","handle":"0:","dev":"eth3","
root":true,"refcnt":2,"options":{"bands":3,"priomap ":[1,2,2,2,1,2,0,0,1,1,1,1,1,1,1,1],"multiqueue":false},"bytes":7310302493,"packets":5557040,"drops":0,"overlimits":0,"requeues":3,"backlog":0,"qlen":0},{"ki
nd":"pfifo_fast","handle":"0:","dev":"eth4","root":true,"refcnt":2,"options":{"bands":3,"priomap ":[1,2,2,2,1,2,0,0,1,1,1,1,1,1,1,1],"multiqueue":false},"bytes":173610596,"packets":1071542,"drops":0,"overlimit
s":0,"requeues":0,"backlog":0,"qlen":0},{"kind":"pfifo_fast","handle":"0:","dev":"spu_us_dummy","root":true,"refcnt":2,"options":{"bands":3,"priomap ":[1,2,2,2,1,2,0,0,1,1,1,1,1,1,1,1],"multiqueue":false},"byt
es":0,"packets":0,"drops":0,"overlimits":0,"requeues":0,"backlog":0,"qlen":0},{"kind":"pfifo_fast","handle":"0:","dev":"spu_ds_dummy","root":true,"refcnt":2,"options":{"bands":3,"priomap ":[1,2,2,2,1,2,0,0,1,1
,1,1,1,1,1,1],"multiqueue":false},"bytes":0,"packets":0,"drops":0,"overlimits":0,"requeues":0,"backlog":0,"qlen":0},{"kind":"pfifo_fast","handle":"0:","dev":"eth5","root":true,"refcnt":2,"options":{"bands":3,"
priomap ":[1,2,2,2,1,2,0,0,1,1,1,1,1,1,1,1],"multiqueue":false},"bytes":7971494811,"packets":9195312,"drops":0,"overlimits":0,"requeues":0,"backlog":0,"qlen":0},{"kind":"pfifo_fast","handle":"0:","dev":"eth6",
"root":true,"refcnt":2,"options":{"bands":3,"priomap ":[1,2,2,2,1,2,0,0,1,1,1,1,1,1,1,1],"multiqueue":false},"bytes":29077108368,"packets":29971941,"drops":0,"overlimits":0,"requeues":0,"backlog":0,"qlen":0},{
"kind":"cake","handle":"8032:","dev":"ifb9eth0","root":true,"refcnt":2,"options":{"bandwidth":37500000,"diffserv":"besteffort","flowmode":"triple-isolate","nat":true,"wash":true,"ingress":true,"ack-filter":"di
sabled","split_gso":true,"rtt":100000,"raw":true,"overhead":0,"fwmark":"0","sce":0},"bytes":53281265,"packets":77083,"drops":16,"overlimits":21123,"requeues":0,"backlog":0,"qlen":0,"memory_used":458304,"memory_limit":15000000,"capacity_estimate":37500000,"min_network_size":60,"max_network_size":1514,"min_adj_size":60,"max_adj_size":1514,"avg_hdr_offset":14,"tins":[{"threshold_rate":37500000,"sent_bytes":53291364,"backlog_bytes":0,"target_us":5000,"interval_us":100000,"peak_delay_us":6513,"avg_delay_us":1225,"base_delay_us":2,"sent_packets":77099,"way_indirect_hits":1691,"way_misses":1029,"way_collisions":0,"drops":16,"ecn_mark":0,"ack_drops":0,"sparse_flows":2,"bulk_flows":1,"unresponsive_flows":0,"max_pkt_len":1514,"flow_quantum":1514}]}]
JSON:
[
{
"kind": "cake",
"handle": "8031:",
"dev": "eth0",
"root": true,
"refcnt": 2,
"options": {
"bandwidth": 2750000,
"diffserv": "besteffort",
"flowmode": "triple-isolate",
"nat": true,
"wash": false,
"ingress": false,
"ack-filter": "enabled",
"split_gso": true,
"rtt": 100000,
"raw": true,
"overhead": 0,
"fwmark": "0",
"sce": 0
},
"bytes": 13026830,
"packets": 46231,
"drops": 474,
"overlimits": 15776,
"requeues": 0,
"backlog": 0,
"qlen": 0,
"memory_used": 134912,
"memory_limit": 4194304,
"capacity_estimate": 2750000,
"min_network_size": 42,
"max_network_size": 1514,
"min_adj_size": 42,
"max_adj_size": 1514,
"avg_hdr_offset": 14,
"tins": [
{
"threshold_rate": 2750000,
"sent_bytes": 13107307,
"backlog_bytes": 0,
"target_us": 5000,
"interval_us": 100000,
"peak_delay_us": 12415,
"avg_delay_us": 668,
"base_delay_us": 1,
"sent_packets": 46705,
"way_indirect_hits": 15421,
"way_misses": 984,
"way_collisions": 0,
"drops": 43,
"ecn_mark": 0,
"ack_drops": 431,
"sparse_flows": 1,
"bulk_flows": 1,
"unresponsive_flows": 0,
"max_pkt_len": 1514,
"flow_quantum": 671
}
]
},
{
"kind": "ingress",
"handle": "ffff:",
"dev": "eth0",
"parent": "ffff:fff1",
"options": [],
"bytes": 52216004,
"packets": 77111,
"drops": 0,
"overlimits": 0,
"requeues": 0,
"backlog": 0,
"qlen": 0
},
{
"kind": "pfifo_fast",
"handle": "0:",
"dev": "eth1",
"root": true,
"refcnt": 2,
"options": {
"bands": 3,
"priomap ": [
1,
2,
2,
2,
1,
2,
0,
0,
1,
1,
1,
1,
1,
1,
1,
1
],
"multiqueue": false
},
"bytes": 1038644527,
"packets": 1053169,
"drops": 0,
"overlimits": 0,
"requeues": 0,
"backlog": 0,
"qlen": 0
},
{
"kind": "pfifo_fast",
"handle": "0:",
"dev": "eth2",
"root": true,
"refcnt": 2,
"options": {
"bands": 3,
"priomap ": [
1,
2,
2,
2,
1,
2,
0,
0,
1,
1,
1,
1,
1,
1,
1,
1
],
"multiqueue": false
},
"bytes": 0,
"packets": 0,
"drops": 0,
"overlimits": 0,
"requeues": 0,
"backlog": 0,
"qlen": 0
},
{
"kind": "pfifo_fast",
"handle": "0:",
"dev": "eth3",
"root": true,
"refcnt": 2,
"options": {
"bands": 3,
"priomap ": [
1,
2,
2,
2,
1,
2,
0,
0,
1,
1,
1,
1,
1,
1,
1,
1
],
"multiqueue": false
},
"bytes": 7310302493,
"packets": 5557040,
"drops": 0,
"overlimits": 0,
"requeues": 3,
"backlog": 0,
"qlen": 0
},
{
"kind": "pfifo_fast",
"handle": "0:",
"dev": "eth4",
"root": true,
"refcnt": 2,
"options": {
"bands": 3,
"priomap ": [
1,
2,
2,
2,
1,
2,
0,
0,
1,
1,
1,
1,
1,
1,
1,
1
],
"multiqueue": false
},
"bytes": 173610596,
"packets": 1071542,
"drops": 0,
"overlimits": 0,
"requeues": 0,
"backlog": 0,
"qlen": 0
},
{
"kind": "pfifo_fast",
"handle": "0:",
"dev": "spu_us_dummy",
"root": true,
"refcnt": 2,
"options": {
"bands": 3,
"priomap ": [
1,
2,
2,
2,
1,
2,
0,
0,
1,
1,
1,
1,
1,
1,
1,
1
],
"multiqueue": false
},
"bytes": 0,
"packets": 0,
"drops": 0,
"overlimits": 0,
"requeues": 0,
"backlog": 0,
"qlen": 0
},
{
"kind": "pfifo_fast",
"handle": "0:",
"dev": "spu_ds_dummy",
"root": true,
"refcnt": 2,
"options": {
"bands": 3,
"priomap ": [
1,
2,
2,
2,
1,
2,
0,
0,
1,
1,
1,
1,
1,
1,
1,
1
],
"multiqueue": false
},
"bytes": 0,
"packets": 0,
"drops": 0,
"overlimits": 0,
"requeues": 0,
"backlog": 0,
"qlen": 0
},
{
"kind": "pfifo_fast",
"handle": "0:",
"dev": "eth5",
"root": true,
"refcnt": 2,
"options": {
"bands": 3,
"priomap ": [
1,
2,
2,
2,
1,
2,
0,
0,
1,
1,
1,
1,
1,
1,
1,
1
],
"multiqueue": false
},
"bytes": 7971494811,
"packets": 9195312,
"drops": 0,
"overlimits": 0,
"requeues": 0,
"backlog": 0,
"qlen": 0
},
{
"kind": "pfifo_fast",
"handle": "0:",
"dev": "eth6",
"root": true,
"refcnt": 2,
"options": {
"bands": 3,
"priomap ": [
1,
2,
2,
2,
1,
2,
0,
0,
1,
1,
1,
1,
1,
1,
1,
1
],
"multiqueue": false
},
"bytes": 29077108368,
"packets": 29971941,
"drops": 0,
"overlimits": 0,
"requeues": 0,
"backlog": 0,
"qlen": 0
},
{
"kind": "cake",
"handle": "8032:",
"dev": "ifb9eth0",
"root": true,
"refcnt": 2,
"options": {
"bandwidth": 37500000,
"diffserv": "besteffort",
"flowmode": "triple-isolate",
"nat": true,
"wash": true,
"ingress": true,
"ack-filter": "disabled",
"split_gso": true,
"rtt": 100000,
"raw": true,
"overhead": 0,
"fwmark": "0",
"sce": 0
},
"bytes": 53281265,
"packets": 77083,
"drops": 16,
"overlimits": 21123,
"requeues": 0,
"backlog": 0,
"qlen": 0,
"memory_used": 458304,
"memory_limit": 15000000,
"capacity_estimate": 37500000,
"min_network_size": 60,
"max_network_size": 1514,
"min_adj_size": 60,
"max_adj_size": 1514,
"avg_hdr_offset": 14,
"tins": [
{
"threshold_rate": 37500000,
"sent_bytes": 53291364,
"backlog_bytes": 0,
"target_us": 5000,
"interval_us": 100000,
"peak_delay_us": 6513,
"avg_delay_us": 1225,
"base_delay_us": 2,
"sent_packets": 77099,
"way_indirect_hits": 1691,
"way_misses": 1029,
"way_collisions": 0,
"drops": 16,
"ecn_mark": 0,
"ack_drops": 0,
"sparse_flows": 2,
"bulk_flows": 1,
"unresponsive_flows": 0,
"max_pkt_len": 1514,
"flow_quantum": 1514
}
]
}
]
What is all this gibberish stuff here? haha. Im excited either way. Thanks a lot for looking into cake stuff.
 

L&LD

Part of the Furniture
Flour, water, eggs, mix in a bowl and...

Er, what? :)

It does QoS very effectively, particularly for lower speed ISP service.
 

heysoundude

Very Senior Member
Flour, water, eggs, mix in a bowl and...

Er, what? :)

It does QoS very effectively, particularly for lower speed ISP service.
and makes it so easy...as in, "a piece of cake!"

Seriously though, I think the question was more "what does Quality of Service do for me?" and the answer is...well, I think it's like air traffic control at a major airport: There are ground controllers orchestrating taxiing aircraft to and from their gates and hangars and runways, there are arrival controllers getting everyone to the runway safely spaced apart, there are departure controllers telling planes it's safe to take off because the airspace ahead of them is clear on their projected flight path, and everyone pulls together in the case of an emergency or when the weather goes crazy to keep everyone moving smoothly at the best speed and safely. Believe it or not, similar things are happening on a router - data is coming in, data is leaving, things are moving around on the LAN side...and it's all moving at the speed of light and getting where it's going smoothly and transparently and safely and without getting lost...QoS like cake makes sure you get that experience on your internet connection, without you being aware of all the work it takes.
 
Last edited:

jata

Regular Contributor
has anyone got cake working on an AX58U running merlin 386 (beta)?

I have just done a full clean factory reset, format USB, new swap, entware etc... with minimum config (dhcp) but cake stops internet from working after install

only way to get internet back is to uninstall cake and reboot router...
 

brummygit

Very Senior Member
can anybody explain in basic words what cake is?
To add to previous explanations, Cake is a form of Quality Of Service implementation but differs from the built-in QoS in Asus firmware in a couple of ways:
  • Quality Of Service is a collection of measures that aim to ensure multiple connections sharing the same internet service all work happily together, and that one big consumer can't spoil the experience for all others. Have you ever been in the shower when someone turns on a tap near to where the water supply enters the house? It's the same problem for networking.
  • Asus QoS uses older queue techniques which have been around for a long time, and relies on sharing the available connection between all consumers and giving priority to important network traffic. Tradition QoS relies on you definition the different traffic types and their priority, Asus Adaptive QoS uses a database of known traffic to make those decisions. This is effective but requires effort from you to set it correctly and many people find it's a constant tasks to keep on top of QoS
  • Cake is a new initiative with some key differences. Firstly it uses newer, more efficient queue techniques to dramatically improve it's effectiveness. Secondly, by default and instead of prioritising one connection over another with a set of rules, it fairly shares the bandwidth between the consumers in ways that provide an excellent experience for most use cases. This means you can usually set it up, configure your maximum bandwidth values, then just leave it alone to do it's thing.
 

Similar threads

Latest threads

Sign Up For SNBForums Daily Digest

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