[Cake] triple flow isolation

moeller0 moeller0 at gmx.de
Thu Jan 14 09:20:15 EST 2016

Hi Kevin,

> On Jan 11, 2016, at 21:33 , Kevin Darbyshire-Bryant <kevin at darbyshire-bryant.me.uk> wrote:
> On 11/01/16 18:16, moeller0 wrote:
>> Hi Kevin,
>> I agree the triple mode seems under-documented ;)
> Yes that's true but it is experimental after all - and I'm experimenting
> with it :-)
>>> On Jan 11, 2016, at 18:40 , Kevin Darbyshire-Bryant <kevin at darbyshire-bryant.me.uk> wrote:
>>> Hello List,
>>> I've been looking at latest 'triple flow isolation' features in latest
>>> cake git and find myself confused.  It's very likely to be a
>>> misunderstanding on my part, although if I'm confused I'm sure others
>>> will, sooner or later, fall into the same trap.
>>> I thought that triple flow was a solution such that a host with many
>>> elephant flows couldn't dominate the bandwidth consumption thus starving
>>> another host with just one elephant flow.  I guess the typical example
>>> is a 'bittorrent' host pulling data from many places vs a host pulling
>>> data from a single place.  My recent 'test' example was a host doing 4
>>> simulatenous pulls of 9GByte+ files vs my wife downloading a movie via
>>> the TV box downstairs.  The bandwidth was evenly divided by the 5 flows,
>>> however my host got 4/5ths of the share.  I didn't think this was
>>> supposed to happen with triple flow isolation?  Ideally we'd both get
>>> 50% of the ISP bandwidth managed by my router (cake is running on the
>>> WAN facing interface to the ISP modem with appropriate bandwidth limits set)
>> 	I believe you would want src_host on egress and (post-NAT) dat-host on ingress, assuming your goal is fairness by internal host, not external hosts ;). Now the challenges are to get the post-NAT IP addresses on ingress and how to counteract IPv6’s tendency to grow incredible amounts of addresses by host. In theory all of this could be solved with fairness by internal MAC addresses, except these will only work in a shallow networks (as far as I understand). I would argue that wifi aggregation has the same issue regarding IPv6, but I digress...
> Ah, yes, silly me - NAT.  As you say pre-NAT internal source address on
> egress and post-NAT internal destination address on ingress.  So the
> shaping to work, cake needs to be on the wan interface but that's too
> late to obtain the internal pre-NATed addresses.  Oh dear.  Help!

	So a quick and dirty test would be to set up sqm with cake on the interface connecting the router SoC with its switch (aka LAN) then you have access to the internal addresses for both egress and ingress. Note that ingress and egress will be switched as compared to sqm on the wan interface so adjust the shaper settings accordingly (ingress egress are always from the view of the router, and on a LAN interface the egress direction of the interface is the ingress/download direction from the WAN). So, I would guess, destination address on egress and source address on ingress as seen by sqm should do the trick then.
	This test will obviously only work if no additional traffic hits the router besided WAN ans LAN, so no WLAN on the router for this test… Or leave everything as is an run pure IPv6 tests, since I believe openwrt does not do NAT6 by default…
	I am really curious how cake behaves in that setting...

Best Regards

> _______________________________________________
> Cake mailing list
> Cake at lists.bufferbloat.net
> https://lists.bufferbloat.net/listinfo/cake

More information about the Cake mailing list