brummygit
Very Senior Member
I think that I probably misunderstood your post, but if you set the bandwidth to 0 there is no need to specify unlimited in the extra options- cake interprets 0 as unlimitedIdeally, the band should be "0", on unlimited.
I think that I probably misunderstood your post, but if you set the bandwidth to 0 there is no need to specify unlimited in the extra options- cake interprets 0 as unlimitedIdeally, the band should be "0", on unlimited.
I think that I probably misunderstood your post, but if you set the bandwidth to 0 there is no need to specify unlimited in the extra options- cake interprets 0 as unlimited
Absolutely, that's what my earlier post tried to explain. Unlimited has it's uses in some cases, but the majority of people are better off setting their bandwidth values at 90-95% of actuals.Setting bandwidth to zero won’t benefit all use cases.
For me, setting zero on up, or down, or both, gives results way worse than no ‘Cake’ at all.![]()
Setting bandwidth to zero won’t benefit all use cases.
For me, setting zero on up, or down, or both, gives results way worse than no ‘Cake’ at all.![]()
[1] --> Download Speed | [285 Mbit]
[2] --> Upload Speed | [0 Mbit]
[3] --> Queue Priority | [besteffort]
[4] --> Extra Download Options | [docsis ack-filter dual-dsthost]
[5] --> Extra Upload Options | [docsis ack-filter dual-srchost]
on my download speed, with cake, i can get as fast as 320Mbps.
I tried: "unlimited"/"0", "320", "300", "285"
the only one that makes dslreports happy is "285"
(the others allow latency swings during first few seconds (~5s) of the download test)
for upload i still use "unlimited" because my upload speed changes during the day
Code:[1] --> Download Speed | [285 Mbit] [2] --> Upload Speed | [0 Mbit] [3] --> Queue Priority | [besteffort] [4] --> Extra Download Options | [docsis ack-filter dual-dsthost] [5] --> Extra Upload Options | [docsis ack-filter dual-srchost]
More recently Cake switched to triple-isolate, which will first make sure that no internal _or_ internal host will hog too much bandwidth and then will still guarantee for fairness for each host. In that mode, Cake mostly does the right thing. It would ensure that no single stream and no single host could hog all the capacity of the WAN link. However, it can't prevent a BitTorrent client - with multiple connections - from monopolizing most of the capacity. And running speedtests from multiple internal hosts to the same speedtest server can give unpredictable results.
[1] --> Download Speed | [285 Mbit]
[2] --> Upload Speed | [0 Mbit]
[3] --> Queue Priority | [diffserv4]
[4] --> Extra Download Options | [docsis dual-dsthost]
[5] --> Extra Upload Options | [docsis ack-filter dual-srchost]
thanks for the link! very educative.
my new settings:
Code:[1] --> Download Speed | [285 Mbit] [2] --> Upload Speed | [0 Mbit] [3] --> Queue Priority | [diffserv4] [4] --> Extra Download Options | [docsis dual-dsthost] [5] --> Extra Upload Options | [docsis ack-filter dual-srchost]
thanks for the link! very educative.
my new settings:
Code:[1] --> Download Speed | [285 Mbit] [2] --> Upload Speed | [0 Mbit] [3] --> Queue Priority | [diffserv4] [4] --> Extra Download Options | [docsis dual-dsthost] [5] --> Extra Upload Options | [docsis ack-filter dual-srchost]
I've been running diffserv4 for quite a while and your post prompted me to swap back to besteffort and test again - I would tend to agree that DSLReports results seemed better assuming my traffic remained consistent between the tests.Thanks! I was curious so I just tested besteffort vs diffserv4; it seems besteffort results in better test results on DSLReports for me. But each connection/circumstance is different so this might not be the case for everyone.
I've been running diffserv4 for quite a while and your post prompted me to swap back to besteffort and test again - I would tend to agree that DSLReports results seemed better assuming my traffic remained consistent between the tests.
Having tested diffserv since last weekend I can say that I'm seeing very little traffic outside of the besteffort tin anyway, so unless a way is found to improve the traffic categorisation, I am better off sticking with besteffort.
Agreed, at the very least with besteffort + dual-src/dsthost you're ensuring flow + host fairness and control (as detailed on the OpenWRT page) which makes a huge difference; an added benefit is less CPU usage with besteffort compared to using diffserv4. diffserv4 has traffic classification as a bonus but this is only effective if the categorization is accurate. I guess for anyone who has this (traffic categorization) as a requirement, FlexQoS is a good thing to look into.
Agreed that you need to see enough traffic categorised into the other tins, but after a week of our busy house with people working from home, gaming and calling we have seen so little traffic that unless we find a way to improve that aspect, the overhead of diffserv4 doesn't seem worthwhile.i don't think dslreports would show differences between besteffort and diffserv4 (if your network is not busy)
to compare these two you need to have video, voice, speed test, webex, etc all going at same time
I don't have any understanding of how it all works, but what I can see is that because I haven't withdrawn consent from Trend Micro services, the Trend engine is still classifying traffic for the bandwidth monitor and traffic analyser while Asus adaptive QoS is turned off. There must be someone with a magic wand on the forums?OVERRIDING CLASSIFICATION WITH TC FILTERS top
CAKE supports overriding of its internal classification of packets
through the tc filter mechanism. Packets can be assigned to different
priority tins by setting the priority field on the skb, and the flow
hashing can be overridden by setting the classid parameter.
Tin override
To assign a priority tin, the major number of the priority
field needs to match the qdisc handle of the cake instance; if it
does, the minor number will be interpreted as the tin index. For
example, to classify all ICMP packets as 'bulk', the following filter
can be used:
# tc qdisc replace dev eth0 handle 1: root cake diffserv3
# tc filter add dev eth0 parent 1: protocol ip prio 1 \
u32 match icmp type 0 0 action skbedit priority 1:1
Flow hash override
To override flow hashing, the classid can be set. CAKE will
interpret the major number of the classid as the host hash used in
host isolation mode, and the minor number as the flow hash used for
flow-based queueing. One or both of those can be set, and will be
used if the relevant flow isolation parameter is set (i.e., the major
number will be ignored if CAKE is not configured in hosts mode, and
the minor number will be ignored if CAKE is not configured in flows
mode).
This example will assign all ICMP packets to the first queue:
# tc qdisc replace dev eth0 handle 1: root cake
# tc filter add dev eth0 parent 1: protocol ip prio 1 \
u32 match icmp type 0 0 classid 0:1
If only one of the host and flow overrides is set, CAKE will compute
the other hash from the packet as normal. Note, however, that the
host isolation mode works by assigning a host ID to the flow queue;
so if overriding both host and flow, the same flow cannot have more
than one host assigned. In addition, it is not possible to assign
different source and destination host IDs through the override
mechanism; if a host ID is assigned, it will be used as both source
and destination host.
EXAMPLES top
# tc qdisc delete root dev eth0
# tc qdisc add root dev eth0 cake bandwidth 100Mbit ethernet
# tc -s qdisc show dev eth0
qdisc cake 1: root refcnt 2 bandwidth 100Mbit diffserv3 triple-
isolate rtt 100.0ms noatm overhead 38 mpu 84
Sent 0 bytes 0 pkt (dropped 0, overlimits 0 requeues 0)
backlog 0b 0p requeues 0
memory used: 0b of 5000000b
capacity estimate: 100Mbit
min/max network layer size: 65535 / 0
min/max overhead-adjusted size: 65535 / 0
average network hdr offset: 0
Bulk Best Effort Voice
thresh 6250Kbit 100Mbit 25Mbit
target 5.0ms 5.0ms 5.0ms
interval 100.0ms 100.0ms 100.0ms
pk_delay 0us 0us 0us
av_delay 0us 0us 0us
sp_delay 0us 0us 0us
pkts 0 0 0
bytes 0 0 0
way_inds 0 0 0
way_miss 0 0 0
way_cols 0 0 0
drops 0 0 0
marks 0 0 0
ack_drop 0 0 0
sp_flows 0 0 0
bk_flows 0 0 0
un_flows 0 0 0
max_len 0 0 0
quantum 300 1514 762
After some use:
# tc -s qdisc show dev eth0
qdisc cake 1: root refcnt 2 bandwidth 100Mbit diffserv3 triple-
isolate rtt 100.0ms noatm overhead 38 mpu 84
Sent 44709231 bytes 31931 pkt (dropped 45, overlimits 93782 requeues
0)
backlog 33308b 22p requeues 0
memory used: 292352b of 5000000b
capacity estimate: 100Mbit
min/max network layer size: 28 / 1500
min/max overhead-adjusted size: 84 / 1538
average network hdr offset: 14
Bulk Best Effort Voice
thresh 6250Kbit 100Mbit 25Mbit
target 5.0ms 5.0ms 5.0ms
interval 100.0ms 100.0ms 100.0ms
pk_delay 8.7ms 6.9ms 5.0ms
av_delay 4.9ms 5.3ms 3.8ms
sp_delay 727us 1.4ms 511us
pkts 2590 21271 8137
bytes 3081804 30302659 11426206
way_inds 0 46 0
way_miss 3 17 4
way_cols 0 0 0
drops 20 15 10
marks 0 0 0
ack_drop 0 0 0
sp_flows 2 4 1
bk_flows 1 2 1
un_flows 0 0 0
max_len 1514 1514 1514
quantum 300 1514 762
Do you have any examples that are getting categorised in the voice and video tins?Each user is going to be unique. I use diffserv4. I'm a live video nut though and it seems this works the best for my setup. Again my setup is unique in it's own right.
A question I asked previously but didn't get a reply is why it's been chosen to enforce the wash option on download traffic within the script as a hard coded default?
I'm keen to understand the reasoning rather than saying it shouldn't be that way, and again for my use case I found manually editing the script to leave it set to the cake default of nowash had little if any effect.

Welcome To SNBForums
SNBForums is a community for anyone who wants to learn about or discuss the latest in wireless routers, network storage and the ins and outs of building and maintaining a small network.
If you'd like to post a question, simply register and have at it!
While you're at it, please check out SmallNetBuilder for product reviews and our famous Router Charts, Ranker and plenty more!