[Cake] Using cake to shape 1000’s of users.

Jonathan Morton chromatix99 at gmail.com
Thu Jul 26 17:38:13 EDT 2018

> On 27 Jul, 2018, at 12:09 am, Toke Høiland-Jørgensen <toke at toke.dk> wrote:
>>>> I haven't had time to try Cake in this context yet but hope to get to
>>>> that in the next couple months. I believe this will require one Cake
>>>> instance per-subscriber like we do with FQ-CoDel today.
>>> Yup, currently it would. It might be possible to extend CAKE's
>>> architecture to not require this, though. If you are interested in
>>> pursuing this in the future, let us know; having someone actually
>>> using it would be quite useful if we were to pursue development of this :)
>> Yes, I'm very interested in this. A single QDisc would simplify things
>> quite a bit and hopefully be a perf win.
>> I'm happy to test this locally and with real subscribers once it is
>> stable enough.
> Cool. No promises as to when (or even if) I get around to looking at
> this; but will ping you when/if I do :)

Alternatively, I could look into it.  I have time, but funding would be nice.  Perhaps if several organisations have some commercial interest in the idea, they could pool some resources to keep my fridge stocked and a roof over my head?

It would also be valuable to have a firmer handle on the actual requirements in the field.  For example, if it is feasible to focus only on current Linux kernels, then a lot of backwards compatibility cruft can be excised when importing existing code from Cake.  If all users will have the same link-layer technology (with the same overhead parameters), then these can be set globally - or if not, they can be set per-tier.  Is the Diffserv support from Cake likely to be useful, and if so how flexible should the configuration be?  And are there only a few discrete settings for bandwidth per user, or do we have to be more flexible to handle a BRAS environment?  Is it also necessary to account per-user traffic accurately, or will an external tool be used for that?

Many other low-level considerations can be adjusted on the fly during the conversion, so they are not in themselves a problem.  In this category are questions like "how many simultaneous users and flows can be supported".  There are ways to design the code so that it scales up much more nicely in these dimensions than Cake does, at the expense of a few extra CPU cycles per packet.

 - Jonathan Morton

More information about the Cake mailing list