[Cake] cake target corner cases?

Alan Jenkins 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
> --
> Cheers,

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
it.  Confusing.

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 mailing list