From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mail.toke.dk (mail.toke.dk [IPv6:2001:470:dc45:1000::1]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by lists.bufferbloat.net (Postfix) with ESMTPS id 828D23B2A4 for ; Thu, 6 Apr 2017 09:42:03 -0400 (EDT) Received: from mail.toke.dk (localhost.localdomain [127.0.0.1]) by mail.toke.dk (Postfix) with ESMTPS id 4A02FB39F9; Thu, 6 Apr 2017 15:42:02 +0200 (CEST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=toke.dk; s=20161023; t=1491486122; bh=yNzS3S4MJFmk9KVUkY71Ua3YYdLp6S5M/H8le0jjOOg=; h=From:To:Cc:Subject:References:Date:In-Reply-To:From; b=mRqmOi3YMnsiDf+yOx57XKGhlsP8GC0EYl5UmR6tmzOemEVV9juxwCgn7RTC7Q1Y8 RMj3XLc1PN2TvOTStORdqW662ZYbuZdV61p3mExRG97tZPK/uIlanwYp+jWTcTFq81 8ZJWOjuU3fRM7sGUeJBfIFiVyEHxvjcE1zOYVFig8B7NLcplqo35zd1Q/K847ywfiU YwH/m5IRUYq9T3MtZoZ6OFJFtGKc9Py4qV6S1mm6dFxQjcpTp8WTVoO/BrUAKtjXug 4Jtq2kdCN6HbU//Hcu9/fRx9avS2szSOhqFitxm/aKwzsbZ1uB11rItrBWj+I7jRNS m3ReLA8Rl5zxA== Received: by alrua-kau.kau.toke.dk (Postfix, from userid 1000) id 01ED1C40271; Thu, 6 Apr 2017 15:42:01 +0200 (CEST) From: =?utf-8?Q?Toke_H=C3=B8iland-J=C3=B8rgensen?= To: Pete Heist Cc: cake@lists.bufferbloat.net References: <2FD59D30-3102-4A3E-A38E-050E438DABF0@gmail.com> <87ziftubgy.fsf@alrua-kau> <8E96329F-A57D-49C7-A7EE-60BD165B4D5C@gmail.com> <87r315u7xe.fsf@alrua-kau> <87mvbtu419.fsf@alrua-kau> <94AF2A61-6D02-4F68-B4B4-688EED722A0B@gmail.com> Date: Thu, 06 Apr 2017 15:42:01 +0200 In-Reply-To: <94AF2A61-6D02-4F68-B4B4-688EED722A0B@gmail.com> (Pete Heist's message of "Thu, 6 Apr 2017 15:30:00 +0200") X-Clacks-Overhead: GNU Terry Pratchett Message-ID: <87r315r6ty.fsf@alrua-kau> MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable Subject: Re: [Cake] flow isolation for ISPs X-BeenThere: cake@lists.bufferbloat.net X-Mailman-Version: 2.1.20 Precedence: list List-Id: Cake - FQ_codel the next generation List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 06 Apr 2017 13:42:03 -0000 Pete Heist writes: > On Apr 6, 2017, at 2:14 PM, Toke H=C3=B8iland-J=C3=B8rgensen wrote: > > Pete Heist writes: > > but I=E2=80=99m still a little confused. Is fq_codel actually a classful > qdisc? > > Yup. The hash buckets are the classes, basically. You can get per-flow > stats by doing `tc -s class show dev eth0` (only works when a flow has > built a queue). > > I see now, never knew that=E2=80=A6 :) Well, it's not a terribly well-published feature ;) > I get the part about matching with tc-filter and the u32 selector (as > intuitive as that is :), but am not sure of the action the filter > needs to take. However, I do see the example towards the bottom of the > tc-u32 man page where a hash table is created and filters move packets > into the right buckets. Perhaps it will be eventually decipherable > from this=E2=80=A6 :) > > The filter classifies a packet into a class. The 'minor number' of this > is the queue number (so needs to be less than the number of flows you > configured for fq_codel - 1024 by default). > > It=E2=80=99s clearer to me now how to split traffic by member (using thei= r MAC > addresses- and by clear I mean not totally clear yet but should become > clear :) but to get both per-member and per-flow hashing together > isn=E2=80=99t as clear yet (which I think is what Cake=E2=80=99s dual-src= host does). > Maybe a separate table per-member could be created. =E2=80=98u32=E2=80=99= looks > arcane, but flexible... Ah, right; you can't get the two-level scheduling that Cake does with just FQ-CoDel. Didn't realise you were looking for that, sorry... You could assign a fixed number of hash buckets to each member (i.e. member #1 gets buckets 1-10, say, hashing flows into those). But the FQ-CoDel scheduler would be oblivious to the hierarchy, so a member with 10 active queues would get service for each of those each time another member with just one active queue gets service for his queue. To get the hierarchical sub-division, you'd need to have a two-level scheme where you have a separate instance of fq-codel per member. -Toke