[Cake] overhead and mpu

Ryan Mounce ryan at mounce.com.au
Mon Sep 4 23:26:02 EDT 2017


Hi Dennis,

I am probably qualified to answer your question as I have done
extensive testing for this case with DOCSIS modems, indeed I was
prompted to contribute the 'mpu' option to cake in order to optimise
this case.

Short answer: just use the 'docsis' keyword for cake which configures
the correct overhead and mpu, then it is just a matter of tuning the
bandwidth.

e.g. this is my command for cake on a DOCSIS connection advertised as
2Mbps upstream but actually shaped to 2.5Mbps:
tc qdisc add dev eth0.2 root cake dual-srchost nat oceanic docsis
bandwidth 2496Kbit


The shaper in DOCSIS modems for upstream traffic (and I believe also
in the CMTS for downstream traffic) works with ethernet frames
including the 14-byte MAC header and 4-byte CRC and excluding any
preamble / inter-packet gap, for 18 bytes total. Cake rounds runt
frames up to the MPU after the overhead has been added, thus 64 bytes
is our MPU for DOCSIS.

It doesn't matter what packet size cake 'sees' on an interface, the
overhead specified at the command line (directly or via keywords) is
always interpreted relative to IP packets rather than relative to the
PDU of a given interface.

Regards,
Ryan Mounce

On 5 September 2017 at 12:16, Dennis Fedtke <dennisfedtke at gmail.com> wrote:
> Hi!
>
> what values should be used for an Ethernet connection running over docsis
> modem?
>
> I think cake automatically accounts for the Ethernet header.
> But how large is the ethernet header? Some sites say 1514 some other sites
> say 1518.
> So we have the mac header (14bytes) + the crc checksum (4 bytes) + max
> payload 1500bytes = 1518 bytes?
>
> I looked at the code and there is hard_header_len used.
>
> After some quick googling i found this info:
> The value ofhard_header_lenis14(ETH_HLEN) for Ethernet interfaces.
>
> Which "packets size(1500 or 1514 or 1518)" does cake really see and work
> with when running on an Ethernet interface?
> Minimum Ethernet payload size is 46 bytes. So should i use mpu 46, mpu 60 or
> mpu 64 setting for an Ethernet interface?
>
> Thanks
>
> _______________________________________________
> Cake mailing list
> Cake at lists.bufferbloat.net
> https://lists.bufferbloat.net/listinfo/cake


More information about the Cake mailing list