[Cake] cake target corner cases?
alan.christopher.jenkins at gmail.com
Sun Nov 1 19:20:51 EST 2015
On 01/11/2015, Kevin Darbyshire-Bryant <kevin at darbyshire-bryant.me.uk> wrote:
> Can't give full explanation now but the bytes per ns calculation which is
> used as a basis for target on 'slow' links uses mtu*1.5
Right. And mtu*1.5 matches better than my math, if I look at Sebs
figures again. Oops :).
I thought SQM works fine with mtu * 1.0. But cake has been like this
since at least April, and I didn't notice an extra 7ms when I tried
Sebs 12.5% is indeed 1/8th. (See last line).
u32 byte_target = mtu + (mtu >> 1); /* MTU * 1.5 */
byte_target_ns = (byte_target * rate_ns) >> rate_shft;
b->cparams.target = max(byte_target_ns, ns_target);
b->cparams.interval = max(rtt_est_ns +
b->cparams.target - ns_target,
b->cparams.target * 8);
Maybe this keeps the target/interval ratio from going too far over the
recommended 10%. Though that's not what CoDel says to do.
In the CoDel draft you just don't drop below 1 MTU. You don't adjust
target for the rate. There's no suggestion to increase interval
either. It makes sense that long transmission times add to the
expected rtt (SQM does this too). I can't see what the justification
is for `target * 8` though. If there's a good reason maybe it could
use a comment.
More information about the Cake